Ejercicios pascal.
Escribir un programa en pascal que detecte el carácter
introducido por el usuario.
PROGRAM EJER31;
Uses CRT;
VAR pato_donald:CHAR;
BEGIN
Clrscr;
WRITE ('Introduzca un caracter alfanumerico: ');
READLN
(pato_donald);
WRITE ('El caracter introducido es -----> ' +
pato_donald)
END.
Escribir un programa en pascal que determine si un número leído
desde el teclado es par o impar
PROGRAM EJER34;
USES CRT;
VAR nun:INTEGER;
BEGIN
ClrScr;
WRITE ('Introduzca un numero entero: '); READLN
(num);
IF num = 0 THEN
WRITE ('El numero introducido no es par ni
impar, es 0')
ELSE IF ((num mod 2 = 0)) THEN
WRITE ('El numero introducido es par')
ELSE
WRITE ('El numero introducido es impar')
END.
PROGRAM EJER34;
USES CRT;
VAR num:INTEGER;
BEGIN
Clrscr;
WRITE('Introduzca un numero: ');
READLN (num);
IF (num mod 2 = 0) THEN
WRITE ('Numero PAR')
ELSE
WRITE('Numero IMPAR');
END.
Escribir un programa en pascal que detecte si un numero
leído desde el teclado es mayor o menor que 100.
PROGRAM EJER35;
USES CRT;
VAR num:INTEGER;
BEGIN
ClrScr;
WRITE ('Escriba un numero entero:') READLN
WRITELN ('');
IF num < 100 THEN
WRITE ('El numero que ha escrito es menor de 100')
ELSSE IF num > 100 THEN
WRITE ('El numero que ha escrito es mayor de 100')
ELSE
WRITE ('El numero es 100 ')
END.
PROGRAM EJER35
USES CRT;
VAR num:REAL;
BEGIN
ClrScr;
WRITE ('Introduzca un numero : '); READLN(num);
IF (num <= 100) THEN
WRITE ('NUMERO MENOR 0 IGUAL A 100 ')
ELSE
WRITE('NUMERO MAYOR DE 100 ')
END.
Escribir un programa en pascal que dado número del 1 a 7
escriba el correspondiente nombre del día de la semana.
PROGRAM EJER36;
USES CRT;
VAR num : INTEGER;
BEGIN
ClrScr;
WRITE ('Escriba un numero para ver con que dia
correspondiente: ');
READLN (num);
IF num=1 THEN
WRITE ('Lunes');
IF num=2 THEN
WRITE ('Martes');
IF num=3 THEN
WRITE ('Miercoles')
IF num=4 THEN
WRITE ('Jueves')
IF num=5 THEN
WRITE ('Viernes');
IF num=6 THEN
WRITE ('Sabado');
IF num=7 THEN
WRITE ('Domingo');
END.
PROGRAM EJER36
USES CRT;
VAR num_dia_sem:INTERGER;
BEGIN
ClrScr;
WRITE ('Dia de la semana (numero) -> ');
READLN(num_dia_sem);
CASE num_dia_sem OF
1:WRITELN ('Lunes');
2:WRITELN ('Martes');
3:WRITELN ('Miercoles');
4:WRITELN ('Jueves');
5:WRITELN ('Viernes');
6:WRITELN ('Sabado');
7:WRITELN ('Domingo')
ELSE
WRITELN ('No es un dia de la semana');
END;
END.
Escribir un programa en pascal que lea dos números desde el
teclado y si el primero es mayor que el segundo intercambie sus
valores.
PROGRAM EJER37;
USES CRT;
VAR num1, num2: Integer;
BEGIN
ClrScr;
WRITELN ('Escriba dos numeros: ');
READLN (num1); WRIITE (''); READLN (num2);
WRITELN ('');
IF num1 > num2 THEN
BEGIN
WRITE (num2, ' ',num1,'. El primer numero introducido
es mayor.');
WRITE('se cambia el orden.');
ENDE
ELSE
BEGIN
WRITE (num1,' ',num2,'. El segundo numero introducido es
mayor. ') ;
WRITE(' No se cambia el orden.');
END;
END.
PROGRAM EJER37;
USES CRT;
VAR num1,num2,temo:INTEGER;
BEGIN
ClrScr;
WRITE('Numero 1: '); READLN(num1);
WRITE('Numero 2: '); READLN(num2);
IF (num1 > num2) THEN
BEGIN
temp:=num1;
num1:=num2;
num2:=temp;
WRITELN('Numero intercambiados');
WRITE('Numero 1: '); WRITELN(num1);
WRITE('Numero 2: '); WRITELN(num2);
END
ELSE
BEGIN
WRITELN('Numeros sin intercambiar');
WRITE('Numero 1: '); WRITELN(num1);
WRITE('Numero 2: '); WRITELN(num2);
END;
END.
Escribir un programa en pascal que dada una calificación en valor
alfabético (A, B, C, D O E) indique su equivalente en valor
numérico (4, 5, 6, 7, u 8).
PROGRAM EJER38:
USES CRT;
VAR VALOR:CHAR;
BEGIN
ClrScr;
WRITE ('Escriba una calificacion entre a y e: ');
READLN (valor);
WRITELN ('');
CASE UPCASE(valor) OF
'A': WRITE ('El valor correspondiente es: 4');
'B': WRITE ('El valor correspondiente es: 5');
'C': WRITE ('El valor correspondiente es: 6');
'D': WRITE ('El valor correspondiente es: 7');
'E': WRITE ('El valor correspondiente es: 8');
ELSE
WRITE ('La calificacion no existe');
END;
END.
PROGRAM EJER38
USES CRT;
VAR Cal:CHAR;
BEGIN
ClrScr;
WRITE('Introduzca una calificacion (A-E) :');
READLN (cal);
CASE cal OF
'A': Writeln('Calificacion numerica --> 4');
'B': Writeln('calificacion numerica --> 5');
'C': Writeln('calificacion numerica --> 6');
'D': Writeln('Calificacion numerica --> 7');
'E': Writeln('Calificacion numerica --> 8'):
ELSE
Writeln ('Calificacion incorrecta');
END;
END.
Escribir un programa en pascal que lea desde teclado el importe
bruto de una factura y determine el importe neto según los
siguientes criterios.
Importe bruto menor de 20.000 ->
Importe bruto mayor de 20.000 ->
PROGRAM EJER39;
USES CRT;
VAR importe_bruto:REAL;
VAR descuento, total:REAL;
BEGIN
ClrScr;
WRITE ('Indique el importe de su factura para ver ');
WRITELN ('si le "descontamos" algo');
WRITELN ('');
READLN(importe_bruto);
WRITELN ('');
{calcula el importe bruto con descuento del 15%}
descuento:=importe_bruto * 0.15;
IF importe_bruto > 20000 THEN
BEGIN
WRITELN ('SE MERECE UN DESCUENTO DE: ',descuento:5:2,
' PTS ');
total:= importe_bruto - descuento;
WRITELN ('El total es de la factura es de:
',total':5:2,
' pts')
END
ELSE
WRITE ('CON ESE DINERO NO SE MERECE UN DESCUENTO')
END.
Importe bruto menor de 20.000 ->
Importe bruto mayor de 20.000 ->
PROGRAM EJER39;
USES CRT;
VAR importe_bruto:REAL;
VAR descuento, total:REAL;
BEGIN
ClrScr;
WRITE ('Indique el importe de su factura para ver ');
WRITELN ('si le "descontamos" algo');
WRITELN ('');
READLN(importe_bruto);
PROGRAM EJER39;
USES CRT;
VAR imp_bru, imp_net_:REAL;
BEGIN
ClrScr;
WRITE ('Importe Bruto -> '); READLN(imp_bru);
IF imp_bru <= 20000 THEN
imp_net:=imp_bru
ELSE
imp_net:=imp_bru-(0.15*imp_bru);
WRITE('importe a pagar: '); WRITE(imp_net:5:2)
END.
Escribir un programa en pascal que una vez leída una hora en
formato (horas, minutos, segundos) indique cual será el
tiempo dentro de un segundo.
PROGRAM EJER40
USES CRT;
{Las Variables son: horas, minutos y segundos}
{son las horas, minutos y segundos introducidos por el
usuario}
VAR h, m, s: INEGER;
VAR h2, m2, s2:INTEGER;
(son las horas, minutos, y segundos a los que se les sumara}
BEGIN
ClrScr;
WRITE ('Escriba en formato horas, minutos y segundos');
WRITELN ('');
WRITE ('Horas '); READLN (h);
WRITE ('Minutos '); READLN (m);
WRITE ('Segundos '); READLN (s);
WRITELN ('');
WRITELN ('Se Le sumara un segundo a la hora actual.');
WRITELN ('');
s:= s + 1;
IF s = 6O THEN
s2 := 0
ELSE
s2 := s;
m:= ((m * 60) + s) div 60;
IF m = 60 THEN
m2 := 0
ELSE
m2 := m;
h2:=((h * 60) + m) div 60;
IF h2 = 24 THEN
h2 :=0;
WRITELN (h2,':',m2,':',s2);
END.
PROGRAM EJER40;
USES CRT;
VAR h1,m1,s1:INTEGER;
VAR h2,m2,s2:INTEGER;
BEGIN
Clrscr;
WRITE('Horas ----- > '); READLN(h1);
WRITE('Minutos ---- > '); READLN(m1);
WRITE('Segundos ---> '): READLN(s1);
s2:=s1+1;
IF s2=60 THEN
BEGIN
s2:=0;
m2:=m1+1;
END;
IF m2=60 THEN
BEGIN
m2:=0;
h2:=h1+1
END;
IF h2=24 THEN
BEGIN
s2:=0;
m2:=0;
h2:=0;
END;
WRITE(h1); WRITE(' hh ');
WRITE(m1); WRITE(' mm ');
WRITE(s1); WRITE(' ss ');
WRITE(' + 1 segundo son: ');
WRITE(h2); WRITE(' hh ');
WRITE(h2); WRITE(' mm ');
WRITE(h2); WRITE(' ss ');
END.
(MODIFICANDO ATRIBUTOS DE PANTALLA)
Program ferr8;
uses
crt,dos;
begin
clrscr;
Textcolor(0+128); (caracteres en negro y parpadeando)
Textebackground(15);(fondo blanco del texto)
gotoxy(10,10);
writeln('hola, pulse <ENTER> para terminar')
gotoxy(12,12);
writeln('Neldo Enmanuel Ortega Vasquez');
(mensaje sale en fondo blanco y parpadeando)
readln;
normvideo; (responde los atributos normales de la pantalla)
clrscr;
end.
(MODIFICANDO TRIBUTOS DE PANTALLA 2)
program neort
uses crt;
var
a,b,c:integr;
begin
clrscr
gotoxy(23,5);
textocolor(20);
write('Universidad Tenologica de Santiago');
gotoxy(32,6);
textecolor(3);
write('turbo pascal 5.5')
readln;
end.
(PROGRAMA QUE IMPRIME EN PANTALLA LA CANTIDAD DE CAJAS
PARA EMPACAR UN PRODUCTO)
program neort
uses crt;
var
a,b,c:integr;
begin
clrscr
gotoxy(23,5);
textocolor(20);
write('Universidad Tenologica de Santiago');
gotoxy(32,6);
textecolor(3);
write('turbo pascal 5.5')
readln;
end
(PROGRAMA EN PANTALLA LA BASE Y EL EXPONENTE E IMPRIME LA
POTENCIA DE ESTOS)
program f210;
uses crt;
Label Captura;
var
b,ex,potencia2: ral;
error: integer;
rep: char;
procedure CaptuaDatos(var base,exponente:real);
begin
clrscr;
write('Entre la base : '); Readln(b); writeln;
write('Entre el exponente: '); Readln(ex ; writeln;
end;
Procedure CapturaDatos (var base,exponente:real);
begin
Potencia:=Exp (exponente*In(base));
end;
Begin
repeat
CapturaDatos(b,ex);
if b> 0 then
begin
CalculaPotencia(b,ex,Potencia2);
writeln('El valor de la potencia es ', potenci[Link])
end
else
begin
writeln('El valo de la base debe ser mayor que cero');
writeln('pulse <ENTER> para continuar'); readln;
CaptuaDatos;
end;
writeln; write('Otra potencia calcular?'); read(resp);
until upcase(resp)='N'; clrscr;
(PROGRAMA QUE IMPRIME EN PANTALLA LOS NUMEROS PARES Y
IMPRIME LA SUMA DE ESTOS)
program prog4
uses crt;
var
s,n:integer
begin
clrscr;
n:=0;
s:=;
repeat
inc(n);
s:=s+n
writeln (n);
until n=25;
writeln('LA SUMATORAIA ES=',S);
writeln('FIN DEL PROGRAMA');
readln
end.
(PROGRAMA QUE IMPRIME EN PANTALLA LOS DATOS DE UNA AGENDA)
PROGRAM REFERE;
VAR
N,T,D,:CHAR
BEGIN
WRITE('NOMBRE=');
READLN(N);
WRITE('TELEFONO=');
READLN(T);
WRITE('DIRECCION=');
READLN(D);WRITELN;
WRITELN('TABLA DE RESLTADOS');
WRITELN(` ';
WRITELN;
WRITELN('NOMBRE','TELEF.'; 'DIRECCION');
WRITELN;
WRITELN(N);WRITELN(T);WRITE(D);
READLN
END.
(MODIFICANDO ATRIBUTOS DE PANTALLA 3)
Program generador;
uses crt;
var
x1,x2,y1,y2: byte;
begin
gotoxy(20,10);
writeln('RECUERDE: pulse cualquier tecla para terminar');
writeln;gotoxy(20,13);
writeln('para ver el efecto generador pulse *ENTER*);
gotoxy(40,15);readln;
(Apartir de aqui el codigo que produce el generador)
Textebackground(black);
clrscr;
repeat
x1:=succ(random(80));
y1:=succ(random(25));
x2:=x1+random(25);
y2:=y19random(15);
window(x1,y1,x2,y2);
textbackground(random(16));
clrscr
until repressed; (Si se presiona cualquier tecla termina)
textmode(lasmode); (Regresa a la pantalla normal)
end.
(Programa que imprime en pantalla los números pares)
program prog2
uses crt;
var
i: integer;
begin(inicio)
clrscr;
for i:=4 to 40 do
begin
ifi mod 2=0 then writeln(i);
end.
writeln ('fin del programa');
readln
end.
(Programa que imprime en pantalla la resta y la suma de dos
números)
PROGRAM SUMADIF;
VAR
I,J:INTEGER;
BEGIN
WRITE('INTRODUZCA #1');
READLN(I);
WRITE('INTRODUZCA #2');
READLN(J);
WRITELN('LA SUMA=',I`J);
WRITELN('LA RESTA=',I-J);
READLN;
READLN
END.
(Programa que captura por teclado uno a uno, una serie
de números)
(Presenta la sumatoria de los numeros y la cantidad de
numeros introducidos
PROGRAM NUMEROS;
USES
CRT;
VAR
Contador:Integer;
Numero,Total:longint;
BEGIN
ClrScr;Contador:=0;Total:=0;Numero:0;
While Numero <> 99999 do
BEGIN
Write('Introduzca un numero : ',''); READ(Numero);
Contador := Contado + 1;
Total := Total + Numero;
End;
Writeln('El Total de numeros introducidos es:',' ',Contador);
Writeln('El Total Acumulado es :',' ',Total);
End.
(Programa que encuentra el conjunto de todas las vocales y de
todas las consonantes que aparecen en una línea de texto de no m
s de 75 caracteres)
PROGRAM Vocales_Consonantes;
USES
Crt;
LABEL
Imprime_Vocal,Imprime_Constante;
TYPE
Vocales = (a,e,i,o,u);
Consonantes = (b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z);
VAR
Contador: Integer;
Cadena: String[75];
Vocal: Vocales;
Consn: Consonantes;
BEGIN
ClrScr;
Write('Introduzca una cadena de caracteres de no m s de 75
caracteres
Longitud') ;Readlnl (Cadena);
for Contador := 1 to 76 do
if (Cadena [Cadena[contador] IN (Vocales) THEN Goto
Imprime_Vocal
ELSE
if (Cadena[contador] IN (contadores)) Goto
Imprime_Consonante;
Imprime_Vocal:
Vocal:=Cadenal[Contador];
Writeln('Vocales :');
Writeln(Vocal);
Imprime_Consonante:
Consn:=Cadena[Contador];
Writeln('Consonante :');
Writeln(Consn);
END.
(Programa que lee una cadena de caracteres y visualiza todas las
Mayúsculas)
PROGRAM Vocales_Consonantes;
USES
Crt;
LABEL
Imprime_Vocal,Imprime_Constante;
TYPE
Vocales = (a,e,i,o,u);
Consonantes = (b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z);
VAR
Contador: Integer;
Cadena: String[75];
Vocal: Vocales;
Consn: Consonantes;
BEGIN
ClrScr;
Write('Introduzca una cadena de caracteres de no m s de 75
caracteres
Longitud') ;Readlnl (Cadena);
for Contador := 1 to 76 do
if (Cadena [Cadena[contador] IN (Vocales) THEN Goto
Imprime_Vocal
ELSE
if (Cadena[contador] IN (contadores)) Goto
Imprime_Consonante;
Imprime_Vocal:
Vocal:=Cadenal[Contador];
Writeln('Vocales :');
Writeln(Vocal);
Imprime_Consonante:
Consn:=Cadena[Contador];
Writeln('Consonante :');
Writeln(Consn);
END.
PROGRAM Mayusculas;
USES
Crt;
LABEL
Introduce_Cadena,Transforma;
TYPE
Rango = 0..255;
Mayusc = Set of RANGO;
VAR
I: Integer;
Cadena1:Stringr;
Charmayusc:Chart;
Vasci:Rango;
Vascimayus:Mayusc;
TamCadena:Integer;
BEGIN
ClrScr;
Vascimayus := [60..90];
Introduce_Cadena:
Write('Introduzca una cadena de caracteres mayus y minus:','
);Readln(Cadenal);
TamCadena:=(Length(Cadenal));I:=;
Repeate
Repeate
Begin
vasci:=(ord(Cadenal[I]));
if Vasci IN VasciMayus THEN Charmayusc := (CHR(Vasci));
Write(Charmayusc);Charmayusc:= '';
END;
Until I = TamCadena;
END.
(Programa que calcula las n potencias de 2, las visualiza y la
imprime)
PROGRAM N_POTENCIAS;
USES
Crt,Dos;
VAR
potencia:Real;
N:Integer;
I:longint;
NUM:Longint;
BEGIN
num := 2; fffff
ClrScr;
write('Introduzca un valor para N:','');reade(N);
for I := 1 to do n do
BEGIN
potencial := EXP(I*(In(Num));
writeln('2 a la ',' ',I,' ',',' ','=',' ',potencia);
END;
END.