0% encontró este documento útil (0 votos)
280 vistas28 páginas

Programas en Pascal para Principiantes

Los documentos presentan varios programas en Pascal para resolver diferentes ejercicios. Los programas leen datos de entrada, realizan cálculos y comparaciones con operadores lógicos, y escriben resultados. Los ejercicios incluyen detectar caracteres y números, determinar si números son pares o impares, comparar números con valores fijos, y convertir calificaciones entre sistemas alfanuméricos y numéricos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
280 vistas28 páginas

Programas en Pascal para Principiantes

Los documentos presentan varios programas en Pascal para resolver diferentes ejercicios. Los programas leen datos de entrada, realizan cálculos y comparaciones con operadores lógicos, y escriben resultados. Los ejercicios incluyen detectar caracteres y números, determinar si números son pares o impares, comparar números con valores fijos, y convertir calificaciones entre sistemas alfanuméricos y numéricos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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.

También podría gustarte