Escribir un programa en Pascal
Enviado por YELIBETHDV • 14 de Marzo de 2018 • Tarea • 69.628 Palabras (279 Páginas) • 403 Visitas
Página 1 de 279
- Escribir un programa en Pascal que sume dos números:
- a = 4 b = 3
- PROGRAM EJER01;
- var a,b,c:INTEGER;
- BEGIN
- {Empezamos con lo básico, un programa que escribe la suma de 2 numeros
- en pantalla}
- a:=4;
- b:=3;
- {Se asigna un valor cualquiera a las variables "a" y "b"}
- c:=a+b;
- WRITE (c); {Muestra en pantalla el valor de la suma}
- END.
- PROGRAM EJER1B;
- USES CRT;
- VAR a,b,c:INTEGER;
- BEGIN
- ClrScr;
- WRITELN ('Este programa suma dos numeros:');
- WRITELN (' ');
- WRITE ('Introduzca un numero: '); READLN (a);
- WRITE ('Introduzca otro numero: ' ); READLN (b);
- WRITELN (' ');
- c:=a+b;
- WRITE ('EL RESULTADO ES: ');
- WRITE (c);
- END.
- Escribir un programa en Pascal que sume, reste, multiplique y divida
- dos números:
- x = 10 y = 2
- PROGRAM EJER02;
- USES CRT; {Nos va a permitir limpiar la pantalla junto con
- ClrScr}
- VAR x,y:INTEGER;
- VAR suma,rest,mult,divi:INTEGER;
- BEGIN
- x:=10;
- y:=2;
- suma:=x + y;
- rest:=x - y;
- mult:=x * y;
- divi:=x div y;
- {Con estas 4 variables realizamos las cuatro operaciones aritméticas
- fundamentales:
- suma, resta, multiplicación y división}
- ClrScr; {Limpia la pantalla}
- WRITE ('SUMA:'); WRITELN (suma);
- WRITE ('RESTA:'); WRITELN (rest);
- WRITE ('MULTIPLICACION:'); WRITELN (mult);
- WRITE ('DIVISION:'); WRITE (divi);
- END.
- PROGRAM EJER2B;
- USES CRT;
- VAR x,y:REAL;
- VAR suma,rest,mult:REAL;
- VAR divi:REAL;
- {suma, resta, multiplica y divide 2 numeros reales}
- BEGIN
- WRITELN ('Este programa suma,resta,multiplica y divide:');
- WRITELN ('Escriba dos numeros reales');
- WRITELN (' ');
- READ (x);
- READ (y);
- suma:=x + y;
- rest:=x - y;
- mult:=x * y;
- divi:=x / y;
- ClrScr;
- WRITE ('SUMA:'); WRITELN (suma:3:0);
- WRITE ('RESTA:'); WRITELN (rest:3:0);
- WRITE ('MULTIPLICACION:'); WRITELN (mult:3:0);
- WRITE ('DIVISION:'); WRITE (divi:5:2);
- END.
- Escribir un programa en Pascal que calcule el área de un
- rectángulo:
- lado1 = 3 lado2 = 4
- área del rectángulo=lado1 * lado2
- PROGRAM EJER03;
- USES CRT;
- VAR lado1,lado2:INTEGER;
- VAR area:INTEGER;
- BEGIN
- {Este programa nos va a servir para calcular el area de un rectángulo}
- lado1:=3;
- lado2:=4;
- {Damos valores para las variables}
- area:=lado1*lado2; {Calculamos el area}
- ClrScr;
- WRITE ('AREA DEL RECTANGULO: '); WRITE (area); {Lo mostramos
- en pantalla}
- END.
- PROGRAM EJER3B;
- USES CRT;
- VAR lado1,lado2:REAL;
- VAR area:REAL;
- BEGIN
- {Este programa calcula el area de un rectangulo}
- ClrScr;
- WRITELN ('Escriba los lados del rectangulo');
- READ (lado1);
- READ (lado2);
- WRITELN (' ');
- area:=lado1*lado2;
- WRITE ('AREA DEL RECTANGULO:'); WRITE (area:5:2);
- END.
- Escribir un programa en Pascal que calcule el área de un
- triángulo:
- base = 7 altura = 4 área del triángulo = (base * altura)/2
- PROGRAM EJER04;
- USES CRT;
- VAR base,altura:REAL;
- VAR area:REAL;
- BEGIN
- base:=7;
- altura:=4;
- area:=(base * altura) / 2;
- ClrScr;
- WRITE ('AREA DEL TRIANGULO: '); WRITE (area:5:2);
- {:5:2 sirve para dar el formato de salida al numero, 5
- posiciones y 2 decimales}
- END.
- PROGRAM EJER4B;
- USES CRT;
- VAR base,altura:REAL;
- VAR area:REAL;
- BEGIN
- {Este programa sirve para calcular el area de un triangulo}
- ClrScr;
- WRITELN ('PARA CALCULAR EL AREA DE UN TRIANGULO:');
- WRITELN (' ');
- WRITE ('ESCRIBE LA BASE: '); READLN (base);
- WRITE ('ESCRIBE LA ALTURA: '); READLN (altura);
- WRITELN (' ');
- area:=(base * altura) / 2;
- WRITE ('EL AREA DEL TRIANGULO ES: '); WRITE (area:5:2);
- END.
- Escribir un programa que calcule la longitud y el área de una
- circunferencia:
- radio = 4 longitud de la circunferencia = 2 * PI * radio
- área de la circunferencia = PI * radio2
- PROGRAM EJER05;
- USES CRT;
- VAR radio:REAL;
- VAR longitud,area:REAL;
- BEGIN
- longitud:=2*3.1416*radio;
- area:=3.1416*radio*radio;
- ClrScr;
- WRITE ('LONGITUD DE LA CIRCUNFERENCIA:'); WRITELN
- (longitud:5:2);
- WRITE ('AREA DE LA CIRCUNFERENCIA:'); WRITE (area:5:2);
- END.
- PROGRAM EJER5B;
- USES CRT;
- VAR radio:REAL;
- VAR longitud,area:REAL;
- BEGIN
- {Este programa calcula la longitud y el area de una
- circunferencia}
- ClrScr;
- WRITELN ('LONGITUD Y AREA DE UNA CIRCUNFERENCIA');
- WRITELN (' ');
- WRITE ('Escriba el radio: '); READLN (radio);
- WRITELN (' ');
- longitud:=2*3.1416*radio;
- area:=3.1416*radio*radio;
- WRITE ('LONGITUD DE LA CIRCUNFERENCIA: '); WRITELN
- (longitud:5:2);
- WRITE ('AREA DE LA CIRCUNFERENCIA: '); WRITE (area:5:2);
- END.
- Escribir un programa en Pascal que calcule la velocidad de un proyectil
- que recorre 2 Km en 5 minutos. Expresar el resultado en metros/segundo.
- Velocidad = espacio/tiempo
- PROGRAM EJER06;
- USES CRT;
- VAR espacio,tiempo:REAL;
- VAR velocidad:REAL;
- BEGIN
- espacio:=2;
- tiempo:=5;
- velocidad:=(espacio*1000)/(tiempo*60);
- ClrScr;
- WRITE ('VELOCIDAD DEL PROYECTIL:');
- WRITE (velocidad:5:2); WRITE ('m/s');
- END.
- PROGRAM EJER6B;
- USES CRT;
- VAR espacio,tiempo,espacio2,tiempo2:REAL;
- VAR velocidad,velocidad2:REAL;
- BEGIN
- {Este programa calcula la velocidad de un cuerpo}
- ClrScr;
- WRITE ('Para calcular la velocidad debe escribirlo en
- unidades ');
- WRITE ('del sistema internacional');
- WRITELN (' ');
- WRITE ('Escriba el espacio recorrido: '); READLN (espacio);
- WRITE ('Escriba el tiempo transcurrido: '); READLN (tiempo);
- WRITELN (' ');
- velocidad:=(espacio)/(tiempo);
- WRITE ('VELOCIDAD DEL PROYECTIL: ');
- WRITE (velocidad:5:2); WRITELN (' m/s');
- WRITELN (' ');
- WRITELN ('Si lo desea en Km/h introduzca los datos: ');
- WRITELN (' ');
- WRITE ('Escriba el espacio recorrido: '); READLN (espacio2);
- WRITE ('Escriba el tiempo transcurrido: '); READLN (tiempo2);
- WRITELN (' ');
- velocidad2:=(espacio2)/(tiempo2);
- WRITE (velocidad2:5:2); WRITE (' Km/h ');
- END.
- Escribir un programa en Pascal que calcule el volumen de una esfera:
- radio = 3 volumen de la esfera = 4/3 * PI * radio3
- PROGRAM EJER07;
- USES CRT;
- VAR radio:REAL;
- VAR volumen:REAL;
- BEGIN
- radio:=3;
- volumen:=(4/3)*3.1416*(radio*radio*radio);
- ClrScr;
- WRITE ('VOLUMEN DE LA ESFERA:'); WRITE(volumen);
- END.
- PROGRAM EJER7B;
- USES CRT;
- VAR radio:REAL;
- VAR volumen:REAL;
- BEGIN
- {Este programa calcula el volumen de una esfera}
- ClrScr;
- WRITELN ('PARA CALCULAR EL VOLUMEN DE LA ESFERA ESCRIBA EL
- RADIO: ');
- READLN (radio);
- volumen:=(4/3)*3.1416*(radio*radio*radio);
- WRITE ('VOLUMEN DE LA ESFERA: '); WRITE(volumen:5:2);
- END.
- Escribir un programa en Pascal que evalúe la siguiente expresión:
- (a+7*c)/(b+2-a)+2*b a = 3,b = 6,c = 4
- PROGRAM EJER08;
- USES CRT;
- VAR a,b,c:REAL;
- VAR resultado:REAL;
- BEGIN
- a:=3;
- b:=6;
- c:=4;
- resultado:=(a+7*c)/(b+2-a)+2*b;
- ClrScr;
- WRITE ('RESULTADO:'); WRITE (resultado:5);
- END.
- PROGRAM EJER8B;
- USES CRT;
- VAR a,b,c:REAL;
- VAR resultado:REAL;
- BEGIN
- {Este programa calcula una expresion algebraica}
- ClrScr;
- WRITELN ('Este programa sirve para calcular la siguiente
- expresion:');
- WRITELN ('(a+7*c)/(b+2-a)+2*b');
- WRITELN (' ');
- WRITE ('Introduzca a: '); READLN (a);
- WRITE ('Introduzca b: '); READLN (b);
- WRITE ('Introduzca c: '); READLN (c);
- resultado:=(a+7*c)/(b+2-a)+2*b;
- WRITELN (' ');
- WRITE ('RESULTADO: '); WRITE (resultado:5:2);
- END.
- Escribir un programa en Pascal que evalúe la siguiente expresión:
- (a+5) * 3 / 2 * b - b a = 3,b = 6
- PROGRAM EJER09;
- USES CRT;
- VAR a,b:REAL;
- VAR resultado:REAL;
- BEGIN
- a:=3;
- b:=6;
- resultado:=((a+5)*3) / (2*b-b);
- ClrScr;
- WRITE ('RESULTADO: '); WRITE(resultado:5:2);
- END.
- PROGRAM EJER9B;
- USES CRT;
- VAR a,b:REAL;
- VAR resultado:REAL;
- BEGIN
- {Este programa calcula el resultado de una expresion algebraica}
- ClrScr;
- WRITE ('PARA CALCULAR LA SIGUIENTE EXPRESION: ');
- WRITELN ('((a+5)*3) / (2*b-b)');
- WRITELN (' ');
- WRITE ('Escriba a: '); READ (a);
- WRITE ('Escriba b: '); READ (b);
- WRITELN (' ');
- resultado:=((a+5)*3) / (2*b-b);
- WRITE ('RESULTADO: '); WRITE(resultado:5:2);
- END.
- Escribir un programa en Pascal que evalúe la siguiente expresión:
- (-b + raízcuadrada(b2-4*a*c)/(2*a)
- (es la solución positiva de una ecuación de 2º grado)
- PROGRAM EJER10;
- USES CRT;
- VAR a,b,c:REAL;
- VAR resultado:REAL;
- BEGIN
- a:=6;
- b:=6;
- c:=1;
- resultado:=(-b+sqrt(sqr (b) - 4*a*c))/(2*a);
- ClrScr;
- WRITE ('RESULTADO:'); WRITE(resultado:5:2);
- END.
- PROGRAM EJER10B;
- USES CRT;
- VAR a,b,c:REAL;
- VAR resultado:REAL;
- BEGIN
- {Calcula la incognita positiva de una ecuacion de 2º grado}
- ClrScr;
- WRITE ('Para calcular la incognita positiva de una ecuacion');
- WRITE (' de segundo grado escriba todas las variables:');
- WRITELN (' ');
- WRITELN (' ');
- WRITE ('Escriba a: '); READLN (a);
- WRITE ('Escriba b; '); READLN (b);
- WRITE ('Escriba c; '); READLN (c);
- WRITELN (' ');
- resultado:=(-b +sqrt(sqr (b) - 4*a*c))/(2*a);
- WRITE ('RESULTADO: '); WRITE(resultado:5:2);
- END.
- Escribir un programa en Pascal que calcule el área y el volumen
- de un cilindro:
- A = (2 * (PI * r2)) + ((2 * PI * r) * h)
- V = (PI * r2) * h
- PROGRAM EJER11;
- USES CRT;
- VAR radio,altura:REAL;
- VAR area,volumen:REAL;
- BEGIN
- radio:=3;
- altura:=6;
- area:= (2 * (3.1416 * radio * radio)) + ((2 * 3.1416 *
- radio) * altura);
- volumen:= (3.1416 * radio * radio) * altura;
- {podriamos cambiar "radio*radio" por "sqr(radio)" para hacer el
- cuadrado del radio}
- ClrScr;
- WRITE ('AREA DEL CILINDRO:'); WRITE (area); WRITELN (' m2');
- WRITE ('VOLUMEN DEL CILINDRO:'); WRITE (volumen); WRITE (' m3');
- END.
- PROGRAM EJER11B;
- USES CRT;
- VAR radio,altura:REAL;
- VAR area,volumen:REAL;
- BEGIN
- {Calcula el area y el volumen de un cilindro}
- ClrScr;
- WRITELN ('CALCULA EL AREA Y VOLUMEN DE UN CILINDRO');
- WRITELN (' ');
- WRITE ('Escriba el radio: '); READLN (radio);
- WRITE ('Escriba la altura: '); READLN (altura);
- WRITELN (' ');
- area:= (2 * (3.1416 * radio * radio)) + ((2 * 3.1416 *
- radio) * altura);
- volumen:= (3.1416 * radio * radio) * altura;
- WRITE ('AREA DEL CILINDRO: '); WRITE (area:5:2); WRITELN
- (' m2');
- WRITE ('VOLUMEN DEL CILINDRO: '); WRITE (volumen:5:2); WRITE
- (' m3');
- END.
- PROGRAM EJER11;
- USES CRT;
- VAR r,h:REAL;
- VAR a,v:REAL;
- BEGIN
- {AREA Y VOLUMEN DE UN CILINDRO}
- ClrScr;
- WRITE('RADIO DEL CILINDRO: '); READLN(r);
- WRITE('ALTURA DEL CILINDRO: '); READLN(h);
- a:=(2*(3.1416*sqr(r))) + ((2*3.1416*r)*h);
- v:=(3.1416*sqr(2))*h;
- ClrScr;
- WRITE('AREA DEL CILINDRO: '); WRITELN(a:5:2);
- WRITE('VOLUMEN DEL CILINDRO: '); WRITELN(v:5:2);
- END.
- Escribir un programa en Pascal que calcule el área y el volumen
- de un hexaedro
- A = (l*l) * 6
- V = l3
- PROGRAM EJER12;
- USES CRT;
- VAR lado:REAL;
- VAR area,volumen:REAL;
- BEGIN
- lado:=4;
- area:= (lado * lado) * 6;
- volumen:= sqr(lado) * lado;
- ClrScr;
- WRITE ('AREA DEL HEXAEDRO:'); WRITE (area); WRITELN
- (' m2');
- WRITE ('VOLUMEN DEL HEXAEDRO:'); WRITE (volumen); WRITE (' m3');
- END.
- PROGRAM EJER12B;
- USES CRT;
- VAR lado:REAL;
- VAR area,volumen:REAL;
- BEGIN
- ClrScr;
- WRITE ('INTRODUCE EL LADO DEL HEXAEDRO: ');
- READLN (lado);
- WRITELN (' ');
- area:= (lado * lado) * 6;
- volumen:= sqr(lado) * lado;
- WRITE ('AREA DEL HEXAEDRO: '); WRITE (area:5:2); WRITELN
- (' m2');
- WRITE ('VOLUMEN DEL HEXAEDRO: '); WRITE (volumen:5:2); WRITE
- (' m3');
- END.
- Escribir un programa en Pascal que calcule el área y el volumen
- de un prisma
- A = (2 *(l1 * l2)) + (2 * (l1 * l3)) + (2*(l2 * l3))
- V = l1 * l2 * l3
- PROGRAM EJER13;
- USES CRT;
- VAR l1,l2,l3:REAL;
- VAR area,volumen:REAL;
- BEGIN
- l1:=3;
- l2:=6;
- l3:=4;
- area:=2 * (l1 * l2)+(2 * (l1 * l3)) + (2* (l2 * l3));
- volumen:= l1 * l2 * l3;
- ClrScr;
- WRITE ('AREA DEL PRISMA:'); WRITELN(area);
- WRITE ('VOLUMEN DEL PRISMA:'); WRITE (volumen);
- END.
- PROGRAM EJER13B;
- USES CRT;
- VAR l1,l2,l3:REAL;
- VAR area,volumen:REAL;
- BEGIN
- {Calcula el area y volumen de un prisma}
- ClrScr;
- WRITELN ('PARA CALCULAR EL AREA Y EL VOLUMEN DEL PRISMA,
- ESCRIBA: ');
- WRITELN (' ');
- WRITE ('Lado1: '); READLN (l1);
- WRITE ('Lado2: '); READLN (l2);
- WRITE ('Lado3: '); READLN (l3);
- WRITELN (' ');
- area:=2 * (l1 * l2)+(2 * (l1 * l3)) + (2* (l2 * l3));
- volumen:= l1 * l2 * l3;
- WRITE ('AREA DEL PRISMA: '); WRITELN (area:5:2);
- WRITE ('VOLUMEN DEL PRISMA: '); WRITE (volumen:5:2);
- END.
- Escribir un programa en Pascal que calcule el área y el volumen
- de un tetraedro
- A = a2 * raízcuadrada(3)
- V = (a3/12) * raízcuadrada (2)
- PROGRAM EJER14;
- USES CRT;
- VAR arista:REAL;
- VAR area, volumen:REAL;
- BEGIN
- arista:=5;
- area:= sqr(arista) * sqrt(3);
- volumen:= ((sqr(arista) * arista) / 12) * sqrt(2);
- WRITE ('AREA DEL TETRAEDRO: '); WRITELN (area);
- WRITE ('VOLUMEN DEL TETRAEDRO: '); WRITE (volumen);
- END.
- PROGRAM EJER14B;
- USES CRT;
- VAR arista:REAL;
- VAR area, volumen:REAL;
- BEGIN
- {Calcula el area y el volumen de un octaedro}
- WRITELN ('SI DESEA CALCULAR EL AREA Y EL VOLUMEN DE UN
- TETRAEDRO: ');
- WRITELN (' ');
- WRITE ('INTRODUZCA EL VALOR DE SU ARISTA: '); READLN (arista);
- WRITELN (' ');
- area:= sqr(arista) * sqrt(3);
- volumen:= ((sqr(arista) * arista) / 12) * sqrt(2);
- WRITE ('AREA DEL TETRAEDRO: '); WRITELN (area:5:2);
- WRITE ('VOLUMEN DEL TETRAEDRO: '); WRITE (volumen:5:2);
- END.
- Escribir un programa en Pascal que calcule el área y el volumen de
- un octaedro
- A = 2 * a2 * raízcuadrada(3)
- V=(a3/3) * raízcuadrada(2)
- PROGRAM EJER15;
- USES CRT;
- VAR arista:REAL;
- VAR area, volumen:REAL;
- BEGIN
- arista:=4;
- area:= 2 * sqr(arista) * sqrt(3);
- volumen:= ((sqr(arista) * arista) / 3) * sqrt(2);
- WRITE ('AREA DEL OCTAEDRO: '); WRITELN(area);
- WRITE ('VOLUMEN DEL OCTAEDRO: '); WRITE(volumen);
- END.
- PROGRAM EJER15B;
- USES CRT;
- VAR arista:REAL;
- VAR area, volumen:REAL;
- BEGIN
- {Sirve para calcular el area y el volumen de un tetraedro}
- WRITELN ('PARA CALCULAR EL AREA Y VOLUMEN DE UN TETRAEDRO: ');
- WRITE ('ESCRIBA EL VALOR DE LA ARISTA: '); READLN (arista);
- WRITELN (' ');
- area:= 2 * sqr(arista) * sqrt(3);
- volumen:= ((sqr(arista) * arista) / 3) * sqrt(2);
- WRITE ('AREA DEL OCTAEDRO: '); WRITELN (area:5:2);
- WRITE ('VOLUMEN DEL OCTAEDRO: '); WRITE (volumen:5:2);
- END.
- Escribir un programa en Pascal que calcule el área y el volumen
- de un cono
- A = (PI * r * l)+ (PI * r2)
- V = (PI * r2 * h)/3
- PROGRAM EJER16;
- USES CRT;
- VAR radio,lado,altura:REAL;
- VAR area,volumen:REAL;
- BEGIN
- radio:=6;
- lado:=3;
- altura:=8;
- area:= (3.1416 * radio * lado) + (3.1416 * sqr(radio));
- volumen:= (3.1416 * sqr(radio) * altura) / 3;
- WRITE ('AREA DEL CONO: '); WRITELN (area);
- WRITE ('VOLUMEN DEL CONO: '); WRITE (volumen);
- END.
- PROGRAM EJER16B;
- USES CRT;
- VAR radio,lado,altura:REAL;
- VAR area,volumen:REAL;
- BEGIN
- {Se utiliza para calcular el area y volumen de un cono}
- WRITELN ('Para calcular el area y el volumen de un cono: ');
- WRITELN (' ');
- WRITE ('Escriba el valor del radio: '); READLN (radio);
- WRITE ('Escriba el valor del lado: '); READLN (lado);
- WRITE ('Escriba el valor de la altura: '); READLN (altura);
- WRITELN (' ');
- area:= (3.1416 * radio * lado) + (3.1416 * sqr(radio));
- volumen:= (3.1416 * sqr(radio) * altura) / 3;
- WRITE ('AREA DEL CONO: '); WRITELN (area:5:2);
- WRITE ('VOLUMEN DEL CONO: '); WRITE (volumen:5:2);
- END.
- Escribir un programa en Pascal que calcule el volumen de un elipsoide
- V = (4/3) * PI * a * b *c
- PROGRAM EJER17;
- USES CRT;
- VAR a,b,c:REAL;
- VAR volumen:REAL;
- BEGIN
- a:=3;
- b:=5;
- c:=4;
- volumen:= (4/3) * 3.1416 * a * b * c;
- WRITE ('VOLUMEN DEL ELIPSOIDE:'); WRITE (volumen);
- END.
- PROGRAM EJER17B;
- USES CRT;
- VAR a,b,c:REAL;
- VAR volumen:REAL;
- BEGIN
- {Calcula el volumen de un elipsoide}
- ClrScr;
- WRITELN ('PARA CALCULAR EL VOLUMEN DE UN ELIPSOIDE ESCRIBA: ');
- WRITELN (' ');
- WRITE ('A: '); READLN (a);
- WRITE ('B: '); READLN (b);
- WRITE ('C: '); READLN (c);
- volumen:= (4/3) * 3.1416 * a * b * c;
- WRITE ('VOLUMEN DEL ELIPSOIDE: '); WRITE (volumen:5:2);
- END.
- Escribir un programa en Pascal que calcule las raíces de una
- ecuación de 2º grado
- PROGRAM EJER18;
- USES CRT;
- VAR a,b,c:REAL;
- VAR x1,x2:REAL;
- BEGIN
- a:=6;
- b:=6;
- c:=1;
- x1:= (-b + sqrt(sqr(b) - (4 * a * c))) / 2 * a;
- x2:= (-b - sqrt(sqr(b) - (4 * a * c))) / 2 * a;
- WRITE ('SOLUCION 1:'); WRITELN (x1);
- WRITE ('SOLUCION 2:'); WRITE (x2);
- END.
- PROGRAM EJER18B;
- USES CRT;
- VAR a,b,c:REAL;
- VAR resultado1,resultado2:REAL;
- BEGIN
- {Calcula ecuaciones de segundo grado}
- ClrScr;
- WRITE ('ESTE PROGRAMA SIRVE PARA CALCULAR ECUACIONES ');
- WRITELN ('DE SEGUNDO GRADO');
- WRITELN (' ');
- WRITELN ('Introduzca: a, b y c: ');
- WRITELN (' ');
- READLN (a);
- READLN (b);
- READLN (c);
- resultado1:=(-b + sqrt(sqr(b) - 4*a*c)) / (2*a);
- resultado2:=(-b - sqrt(sqr(b) - 4*a*c)) / (2*a);
- WRITELN ('RESULTADO DE LA EXPRESION: ');
- WRITE ('VALOR 1: '); WRITELN (resultado1:5:2);
- WRITE ('VALOR 2; '); WRITE (resultado2:5:2);
- END.
- Escribir un programa en Pascal que calcule el área y el volumen
- de un cilindro:
- radio = 3
- altura = 4
- PROGRAM EJER19;
- USES CRT;
- VAR radio, altura:REAL;
- VAR area, volumen:REAL;
- BEGIN
- radio:=3;
- altura:=4;
- area:= 2 * (3.1416 * sqr(radio)) + ((2 * 3.1416 * radio)
- * altura);
- volumen:= (3.1416 * sqr(radio)) * altura;
- ClrScr;
- WRITE ('EL AREA DEL CILINDRO ES: '); WRITELN (area:6:2);
- WRITE ('EL VOLUMEN ES: '); WRITE (volumen:6:2);
- END.
- PROGRAM EJER19B;
- USES CRT;
- VAR radio, altura:REAL;
- VAR area, volumen:REAL;
- BEGIN
- {Con este programa podremos calcular el area y el volumen
- de un cilindro}
- ClrScr;
- WRITELN ('PARA CALCULAR EL AREA Y VOLUMEN DE UN CILINDRO: ');
- WRITELN (' ');
- WRITE ('ESCRIBA EL RADIO- '); READLN (radio);
- WRITE ('ESCRIBA LA ALTURA- '); READLN (altura);
- WRITELN (' ');
- area:= 2 * (3.1416 * sqr(radio)) + ((2 * 3.1416 * radio)
- * altura);
- volumen:= (3.1416 * sqr(radio)) * altura;
- WRITE ('EL AREA DEL CILINDRO ES: '); WRITELN (area:6:2);
- WRITE ('EL VOLUMEN ES: '); WRITE (volumen:6:2);
- END.
- Escribir un programa en Pascal que calcule la hipotenusa de un triángulo
- rectángulo
- cateto 1 = 5
- cateto 2 = 5
- PROGRAM EJER20;
- USES CRT;
- VAR cateto1,cateto2:REAL;
- VAR hipotenusa:REAL;
- BEGIN
- cateto1:=5;
- cateto2:=5;
- hipotenusa:= sqrt(sqr(cateto1) + sqr(cateto2));
- ClrScr;
- WRITE ('HIPOTENUSA DEL TRIANGULO: ');
- WRITE (hipotenusa:5:2); WRITE (' cm');
- END.
- PROGRAM EJER20B;
- USES CRT;
- VAR cateto1,cateto2:REAL;
- VAR hipotenusa:REAL;
- BEGIN
- {Con este programa podremos calcular la hipotenusa de un
- triangulo}
- ClrScr;
- WRITE ('PARA CALCULAR LA HIPOTENUSA DEL TRIANGULO ');
- WRITELN ('ESCRIBA LOS CATETOS: ');
- WRITELN (' ');
- WRITE ('Cateto1: '); READLN (cateto1);
- WRITE ('Cateto2: '); READLN (cateto2);
- WRITELN (' ');
- hipotenusa:= sqrt(sqr(cateto1) + sqr(cateto2));
- WRITE ('HIPOTENUSA DEL TRIANGULO: ');
- WRITE (hipotenusa:5:2);
- END.
- PROGRAM EJER20;
- USES CRT;
- VAR c1,c2,h:REAL;
- BEGIN
- ClrScr;
- WRITE('Introduzca cateto_1: '); READLN (c1);
- WRITE('Introduzca cateto_2: '); READLN (c2);
- h:=sqrt(sqr(c1)+sqr(c2));
- WRITE('Cateto_1 ------> '); WRITELN (c1:5:2);
- WRITE('Cateto_2 ------> '); WRITELN (c2:5:2);
- WRITE('Hipotenusa ----> '); WRITELN (h:5:2);
- END.
Escribir un programa en Pascal que calcula el equivalente en grados- Fahrenheit o Celsius de las siguientes temperaturas.
- Temperatura 1 = 32º Fahrenheit
- Temperatura 2 = 10 º Celsius
- {Regla de 3: Celsius / 5 = (Fahrenheit – 32) / 9}
- PROGRAM EJER21;
- USES CRT;
- VAR T1,T2:REAL;
- VAR T1C,T2F:REAL;
- BEGIN
- T1:=32;
- T2:=10;
- T1C:=T1 - 32;
- T2F:=T2 + 32;
- ClrScr;
- WRITE ('TEMPERATURA EQUIVALENTE: ');
- WRITE (T1:3:0); WRITE ('º Fahrenheit - ');
- WRITE (T1C:3:0); WRITELN ('º Celsius');
- WRITE ('TEMPERATURA EQUIVALENTE: ');
- WRITE (T2:3:0); WRITE ('º Celsius - ');
- WRITE (T2F:3:0); WRITE ('º Fahrenheit');
- END.
- PROGRAM EJER21B;
- USES CRT;
- VAR Fahrenheit, Celsius:REAL;
- VAR T1C,T2F:REAL;
- VAR respuesta:CHAR;
- BEGIN
- ClrScr;
- REPEAT
- BEGIN
- WRITE ('¨DESEA PASARLO A FAHRENHEIT O CELSIUS? F/C: ');
- READLN (respuesta); WRITELN ('');
- END;
- UNTIL (respuesta='C') OR (respuesta='F') OR
- (respuesta='c') OR (respuesta='f');
- IF UPCASE(respuesta)='F' THEN
- BEGIN
- WRITELN ('Introduzca los grados para pasar a Fahrenheit: ');
- WRITE ('Celsius: '); READLN (Celsius);
- Fahrenheit:= ((9 * Celsius) / 5) + 32;
- WRITE (Fahrenheit:5:2,' grados Fahrenheit.');
- WRITELN (' ');
- END
- ELSE IF UPCASE (respuesta)='C' THEN
- BEGIN
- WRITELN ('Introduzca los grados para pasar a Celsius: ');
- WRITE ('Fahrenheit: '); READLN (Fahrenheit);
- Celsius:= ((Fahrenheit - 32) / 9) * 5;
- WRITE (Celsius:5:2,' grados Celsius.');
- END;
- END.
- PROGRAM EJER21;
- USES CRT;
- VAR t_C,t_F:REAL;
- BEGIN
- ClrScr;
- WRITE('Introduzca temperatura: (ºCelsius): ');
- READLN(t_C);
- t_F:=((t_C*9)/5)+32;
- ClrScr;
- WRITE(t_C:5:2); WRITE(' ºCelsius equivalen a ');
- WRITE(t_F:5:2); WRITE(' ºFahrenheit');
- END.
- Escribir un programa en Pascal que calcule el número de
- horas, minutos y segundos que hay en 3700 segundos.
- PROGRAM EJER22;
- USES CRT;
- VAR horas, minutos, segundos:INTEGER;
- BEGIN
- horas:= 3700 div 3600;
- minutos:= (3700 mod 3600) div 60;
- segundos:= (3700 mod 3600) - (minutos * 60);
- ClrScr;
- WRITELN ('EN 3700 SEGUNDOS HAY: ');
- WRITE (horas,' hora',' y ',minutos,' minutos ', segundos,
- ' segundos');
- END.
- PROGRAM EJER22B;
- USES CRT;
- VAR horas, minutos, segundos:INTEGER;
- VAR cantidad:INTEGER;
- BEGIN
- ClrScr;
- WRITE ('Escriba los segundos para transformarlo a horas,');
- WRITELN (' minutos y segundos');
- READLN (cantidad); {Es el numero de segundos que se introducen}
- WRITELN ('');
- horas:= cantidad div 3600;
- minutos:= (cantidad mod 3600) div 60;
- segundos:= (cantidad mod 3600) - (minutos * 60);
- {Los segundos son: las horas - los minutos pasados a segundos}
- WRITELN ('EN ' ,cantidad, ' SEGUNDOS HAY: ');
- WRITE (horas,' horas ',minutos,' minutos ',segundos,'
- segundos');
- END.
- PROGRAM EJER22;
- USES CRT;
- VAR h,m,s1,s2:INTEGER;
- BEGIN
- ClrScr;
- WRITE('Introduzca segundos: '); READLN(s1);
- h:=s1 div 3600;
- s2:=s1 mod 3600;
- m:=s2 div 60;
- s2:=s2 mod 60;
- ClrScr;
- WRITE(s1); WRITE(' segundos son -----> ');
- WRITE(h); WRITE(' horas ');
- WRITE(m); WRITE(' minutos ');
- WRITE(s2); WRITE( 'segundos ');
- END.
- Escribir un programa en Pascal que calcule el capital producido
- por un capital de 1.000.000 de pesetas, al cabo de un año depositado a
- un interés del 2%.
- PROGRAM EJER23;
- USES CRT;7
- VAR capital,tiempo,interes:REAL;
- VAR capitalproducido:REAL;
- BEGIN
- capital:=1000000;
- tiempo:=1;
- interes:=2;
- capitalproducido:= capital * 0.02;
- ClrScr;
- WRITE ('En un año se producira un capital de ');
- WRITE (capitalproducido:5:2); WRITE (' pesetas');
- END.
- PROGRAM EJER23B;
- USES CRT;
- VAR capital,tiempo,interes:REAL;
- VAR capitalproducido:REAL;
- BEGIN
- ClrScr;
- WRITELN ('PARA CALCULAR EL CAPITAL PRODUCIDO INTRODUZCA ');
- WRITELN ('');
- WRITE ('Capital: '); READLN (capital);
- WRITE ('Tiempo: '); READLN (tiempo);
- WRITE ('Interes:'); READLN (interes);
- WRITELN ('');
- capitalproducido:= (capital * (interes/100) * tiempo);
- WRITE ('En estos años se producira un capital de ');
- WRITE (capitalproducido:5:2); WRITE (' pesetas.');
- END.
- PROGRAM EJER23;
- USES CRT;
- VAR capital,interes,intereses:REAL;
- BEGIN
- ClrScr;
- WRITE('Capital: '); READLN(capital);
- WRITE('Intefes: '); READLN(interes);
- intereses:=capital*(interes/100);
- ClrScr;
- WRITE('Capital: '); WRITELN(capital:5:2);
- WRITE('Interes: '); WRITELN(interes:5:2);
- WRITE('Intereses: '); WRITELN(intereses:5:2);
- END.
- Escribir un programa en Pascal que calcula la siguiente
- expresión trigonométrica para un valor angular de 90º
- (sen x * cos x)/(tan x)
- PROGRAM EJER24B;
- USES CRT;
- VAR resultado, resultado2, x:REAL;
- BEGIN
- WRITE ('PARA CALCULAR LA EXPRESION: (sin(x) * cos(x)) /
- tan(x)');
- WRITELN (' INTRODUZCA EL VALOR DE X EN RADIANES: ');
- READLN (x);
- WRITELN ('');
- resultado:=(sin(x) * cos(x)) / (sin(x) / cos(x));
- bienvenido
- WRITE ('El resultado de la expresion (sinx * cosx /tgx) es
- igual a: ');
- WRITE (resultado:5:2);
- END.
- PROGRAM EJER24;
- USES CRT;
- VAR angulo:REAL;
- VAR val_exp:REAL;
- BEGIN
- ClrScr;
- WRITE('introduzca el valor del angulo (grados): ');
- READLN (angulo);
- angulo:=angulo*(6.28/360);
- WRITE('Valor de la expresion: ');
- WRITE( (sin(angulo)*cos(angulo) )/( (sin(angulo)/cos(angulo)
- ) ):5:2);
- END.
- Escribir un programa en Pascal que calcule el equivalente en
- pies de una longitud de 10 metros.
- 1 metro ------------- 39.27 pulgadas
- 12 pulgadas -------- 1 pie
- PROGRAM EJER25;
- USES CRT;
- VAR metros,pulgadas,pies:REAL;
- BEGIN
- metros:=10;
- pulgadas:=metros * 39.27;
- pies:=((1 * metros) * pulgadas) / (12 * metros);
- ClrScr;
- WRITE ('El equivalente en pies a una distancia de 10m es
- de: ');
- WRITE (pies:3:2); WRITE (' pies');
- END.
- PROGRAM EJER25B;
- USES CRT;
- VAR metros,pies:REAL;
- BEGIN
- {Para calcular la equivalencia entre pies y metros}
- ClrScr;
- WRITELN ('INTRODUZCA LOS METROS PARA PASARLOS A PIES: ');
- WRITELN (' ');
- WRITE ('Metros: '); READLN (metros);
- pies:= metros / (12/39.27);
- { 1 pie = 0.3048 metros}
- { 1 pulgada = 25.4 mm}
- WRITE ('El equivalente en pies es de: ');
- WRITE (pies:3:2); WRITE (' pies');
- END.
- PROGRAM EJER25;
- USES CRT;
- VAR longitud:REAL;
- BEGIN
- ClrScr;
- WRITE('Longitud (metros): '); READLN(longitud);
- WRITE((longitud*39.27)/12:5:2); WRITE( 'pies');
- END.
- Escribir un programa en Pascal que calcule el área de un
- rectángulo a partir de sus coordenadas:
- x1 = 10 x2 = 20
- y1 = 10 y2 = 20
- PROGRAM EJER26;
- USES CRT;
- VAR lado1,lado2:REAL;
- VAR area:REAL;
- BEGIN
- lado1:=10;
- lado2:=10;
- area:= lado1 * lado2;
- ClrScr;
- WRITE ('El area del rectangulo es de: '); WRITE (area:5:2);
- END.
- PROGRAM EJER26B;
- USES CRT;
- VAR x1,x2,y1,y2:REAL;
- VAR area:REAL;
- BEGIN
- {Sirve para calcular el area de un rectangulo a partir de
- coordenadas}
- WRITELN ('Para calcular el area del rectangulo ');
- WRITELN ('introduzca el valor de las coordenadas');
- WRITELN (' ');
- WRITE ('x1: '); READLN (x1);
- WRITE ('y1: '); READLN (y1);
- WRITE ('x2: '); READLN (x2);
- WRITE ('y2: '); READLN (y2);
- WRITELN (' ');
- area:= (x2 - x1) * (y2 - y1);
- {Se restan las coordenadas de X e Y para sacar los lados y
- luego se multiplican}
- WRITE ('El area del rectangulo es de: '); WRITE (area:5:2);
- END.
- PROGRAM EJER26;
- USES CRT;
- VAR x1,y1,x2,y2:REAL;
- BEGIN
- ClrScr;
- WRITE('Introduaca coordenada x1: '); READLN(x1);
- WRITE('Introduzca coordenada y1: '); READLN(y1);
- WRITE('Introduzca coordenada x2: '); READLN(x2);
- WRITE('Introduzca coordenada y2: '); READLN(y2);
- WRITE('Area del resctangulo: '); WRITE((x2-x1)*(y2-y1):5:2);
- END.
- Un coche se mueve, partiendo del reposo, con una
- aceleración constante de 8 m/s2.
- Escribir un programa en Pascal que calcule:
- a) La velocidad instantánea al cabo de5 segundos.
- b) La velocidad media durante los primeros 5 segundos del recorrido.
- velocidad instantánea = velocidad inicial + aceleración
- * tiempo velocidad media = (velocidad inicial + velocidad final)/2
- PROGRAM EJER27;
- USES CRT;
- VAR velocidad0,aceleracion,tiempo:REAL;
- VAR velocidad5,velocmedia5:REAL;
- BEGIN
- velocidad0:=0;
- aceleracion:=8;
- tiempo:=5;
- velocidad5:=velocidad0 + (aceleracion * tiempo);
- velocmedia5:= (velocidad0 + velocidad5) / 2;
- ClrScr;
- WRITE ('LA VELOCIDAD AL CABO DE 5 s ES DE: '); WRITE
- (velocidad5:2:0);
- WRITELN (' m/s');
- END.
- PROGRAM EJER27B;
- USES CRT;
- VAR velocidad0,aceleracion,tiempo,velocidadfinal:REAL;
- VAR vinstantanea,vmedia:REAL;
- BEGIN
- ClrScr;
- WRITE ('ESCRIBA EL VALOR DE LA VELOCIDAD INICIAL, LA
- ACELERACION');
- WRITE (' Y EL TIEMPO, EN UNIDADES DEL SISTEMA
- INTERNACIONAL,');
- WRITE (' PARA CALCULAR LA VELOCIDAD INSTANTANEA');
- WRITELN (' '); WRITELN (' ');
- WRITE ('Velocidad inicial: '); READLN (velocidad0);
- WRITE ('Aceleracion: '); READLN (aceleracion);
- WRITE ('Tiempo: '); READLN (tiempo);
- WRITELN ('');
- vinstantanea:=velocidad0 + (aceleracion * tiempo);
- IF vinstantanea > 0 THEN
- WRITE ('LA VELOCIDAD INSTANTANEA ES DE: ',
- vinstantanea:5:2,' m/s')
- ELSE
- WRITE ('EL COCHE ESTA PARADO.');
- WRITELN ('');
- IF vinstantanea < 0 THEN
- WRITE ('NO SE PUEDE HALLAR AL ESTAR PARADO');
- IF vinstantanea > 0 THEN
- WRITE ('Si desea saber la velocidad media introduzca la
- velocidad final: ');
- READLN (velocidadfinal);
- WRITE ('');
- WRITELN ('');
- vmedia:= (velocidad0 + velocidadfinal) / 2;
- WRITE ('LA VELOCIDAD MEDIA ES DE: ',vmedia:5:2);
- WRITELN (' m/s');
- END.
- PROGRAM EJE27;
- USES CRT;
- VAR v,a,t:REAL;
- BEGIN
- ClrScr;
- WRITE('Velocidad inicial (m/s) -> '); READLN(v);
- WRITE('Aceleracion (m/s2) ------> '); READLN(a);
- WRITE('Tiempo (s) --------------> '); READLN(t);
- WRITE('Velocidad instantanea: '); WRITELN(v+a*t:5:2);
- WRITE('Velocidad media: '); WRITELN
- ((v+(v+a*t))/2:5:2);
- END.
- Un cohete se lanza verticalmente con una velocidad de 500 m/s
- calcular la velocidad al cabo de 40 segundos mediante un programa en
- Pascal
- velocidad instantánea = (velocidad inicial) –
- (aceleración de la gravedad * tiempo)
- PROGRAM EJER28;
- USES CRT;
- CONST gravedad = 9.81;
- VAR velocidad0, tiempo, velocidadfinal:REAL;
- BEGIN
- velocidad0:=500;
- tiempo:=40;
- velocidadfinal:=velocidad0 - (gravedad * 40);
- ClrScr;
- WRITE ('La velocidad a los 40 s es de: ');
- WRITE (velocidadfinal:4:2,' m/s');
- END.
- PROGRAM EJER28B;
- USES CRT;
- CONST gravedad = 9.81;
- VAR velocidad0, tiempo, velocidadfinal:REAL;
- BEGIN
- {Este programa sirve para calcular la velocidad instantanea
- de un cohete}
- ClrScr;
- WRITE ('PARA CALCULAR LA VELOCIDAD DE UN COHETE EN UN
- INSTANTE, ');
- WRITELN ('INTRODUZCA LOS DATOS:');
- WRITELN (' ');
- WRITE ('INTRODUZCA LA VELOCIDAD INICIAL: '); READLN
- (velocidad0);
- WRITE ('INTRODUZCA EL TIEMPO:'); READLN (tiempo);
- WRITELN (' ');
- velocidadfinal:=velocidad0 - (gravedad * tiempo);
- IF velocidadfinal <= 0 THEN
- WRITE ('El cohete ya se ha parado.');
- IF velocidadfinal > 0 THEN
- WRITE ('La velocidad final es de: ');
- IF velocidadfinal > 0 THEN
- WRITE (velocidadfinal:4:2);
- IF velocidadfinal > 0 THEN
- WRITE (' m/s.');
- END.
- PROGRAM EJER28;
- USES CRT;
- VAR v,g,t:REAL;
- BEGIN
- ClrScr;
- g:=9.8;
- WRITE('Velocidad inicial (m/s) -> '); READLN(v);
- WRITE('Tiempo (s) --------------> '); READLN(t);
- WRITE('Velocidad instantanea: '); WRITELN(v-(g*t):5:2);
- END.
- Escribir un programa en Pascal que detecte si un número
- introducido desde le teclado es positivo o negativo.
- PROGRAM EJER29;
- USES CRT;
- VAR num:INTEGER;
- BEGIN
- ClrScr;
- WRITE ('Introduzca un numero entero: '); READLN (num);
- IF num > 0 THEN
- WRITE ('El numero es positivo')
- ELSE IF num < 0 THEN
- WRITE ('El numero es negativo')
- ELSE
- WRITE ('El numero no es positivo ni negativo, es 0');
- END.
- Escribir un programa en Pascal que detecte si se han introducido en
- orden creciente tres números introducidos por el usuario.
- PROGRAM EJER30;
- USES CRT;
- VAR num1,num2,num3:INTEGER;
- BEGIN
- ClrScr;
- WRITE ('Introduzca un numero (1) : '); READLN (num1);
- WRITE ('Introduzca un numero (2) : '); READLN (num2);
- WRITE ('Introduzca un numero (3) : '); READLN (num3);
- IF ((num1 < num2) AND (num2 < num3)) THEN
- WRITE ('Los numeros se han introducido en orden creciente')
- ELSE
- WRITE ('Los numeros no se han introducido en orden
- creciente');
- END.
- PROGRAM EJER30;
- USES CRT;
- VAR num1,num2,num3:INTEGER;
- BEGIN
- ClrScr;
- WRITE('Introduzca un numero (1) : '); READLN(num1);
- WRITE('Introduzca un numero (2) : '); READLN(num2);
- WRITE('Introduzca un numero (3) : '); READLN(num3);
- IF ((num1 < num2) AND (num2 < num3)) THEN
- WRITE('Los numeros se han introducido en orden creciente')
- ELSE
- WRITE('Los numeros no se han introducido en orden creciente');
- END.
- Escribir un programa que lea dos números enteros A y B, y obtenga
- los valores A div B, A mod B.
- PROGRAM EJERDIV;
- Uses Crt;
- Var A,B: Integer;
- Var soluc: Integer;
- Begin
- ClrScr;
- WRITELN('Introduzca dos numeros:');
- WRITELN;
- WRITE('A: '); READLN(A);
- WRITE('B: '); READLN(B);
- WRITELN;
- WRITE('A div B = ');
- soluc := A div B; {div hace la division de 2 numeros
- enteros}
- WRITELN(soluc);
- WRITELN;
- WRITE('A mod B = ');
- soluc := A mod B; {mod muestra el resto de una
- division de 2 numeros enteros}
- WRITELN(soluc);
- End.
- Escribir un programa en Pascal que muestre un mensaje afirmativo si el numero introducido es múltiplo de 5.
- PROGRAM EJER32;
- USES CRT;
- var num:Integer;
- Begin
- ClrScr;
- WRITE('Introduzca un numero : '); READLN(num);
- IF num mod 5 = 0 THEN
- WRITE('El numero introducido es múltiplo de 5')
- ELSE
- WRITE('El numero introducido no es múltiplo de 5');
- End.
- Escribir un programa en Pascal que lea un numero y lo devuelva multiplicado por 5 y dividido por 7.
- PROGRAM EJER34;
- USES CRT;
- var num, soluc:Real;
- Begin
- ClrScr;
- WRITE('Introduzca un numero: ');
- READLN(num);
- WRITELN;
- {multiplicamos y dividimos el numero obtenido}
- soluc := (num * 5) / 7;
- WRITE('(',num:5:2,' * 5) / 7) = ',soluc:5:2);
- {Poniendo ":5:2" le decimos el formato de salida del numero,
- 5 posiciones y 2 decimales - Prueba a cambiarlo como mas te guste}
- End.
- Escribir un programe en Pascal que resuelva una matriz 3 x (sin bucles).
- PROGRAM DETER3;
- USES CRT;
- VAR a11,a12,a13,a21,a22,a23,a31,a32,a33:REAL;
- VAR M:REAL;
- BEGIN
- ClrScr;
- WRITELN ('Introduzca los valores de la matriz 3x3');
- WRITELN (' ');
- WRITE ('a11: '); READLN (a11);
- WRITE ('a12: '); READLN (a12);
- WRITE ('a13: '); READLN (a13);
- WRITE ('a21: '); READLN (a21);
- WRITE ('a22: '); READLN (a22);
- WRITE ('a23: '); READLN (a23);
- WRITE ('a31: '); READLN (a31);
- WRITE ('a32: '); READLN (a32);
- WRITE ('a33: '); READLN (a33);
- WRITELN (' ');
- M:=(a11*a22*a33)+(a21*a32*a13)+(a31*a12*a23)
- -(a13*a22*a31)-(a11*a23*a32)-(a12*a21*a33);
- WRITE ('El resultado es: '); WRITE (M:5:2);
- END.
- Escribir un programa que convierta un número de segundos en su equivalente en minutos y segundos.
- PROGRAM EJERSEG;
- Uses Crt;
- var seg0,seg,min: Integer;
- Begin
- ClrScr;
- WRITE('Introduzca los segundos: '); READLN(seg0);
- WRITELN;
- min := seg0 div 60;
- seg := seg0 mod 60;
- WRITE(seg0,' segundos son ',min,' minutos y ',seg,'
- segundos.');
- End.
- Imprimir la media de los elementos que se encuentran en las posiciones pares y la media de los elementos que se encuentran en las posiciones impares de un vector numérica.
- PROGRAM EJEMEDIA;
- Uses Crt;
- var sumapar,sumaimp,n_par,n_imp: Integer;
- var i: Integer;
- var media_p,media_i: Real;
- const num=10;
- var numeros: Array[1..num] of Real;
- Begin
- ClrScr;
- WRITELN('Introduzca los ',num,' numeros');
- WRITELN;
- sumapar := 0;
- sumaimp := 0;
- n_par := 0;
- n_imp := 0; {Inicializamos las variables a 0 para evitar
- sorpresas}
- For i := 1 to 10 do
- Begin
- WRITE('Introduzca el numero ',i,' : '); READLN
- (numeros[i]);
- If num mod 2 = 0 then {para que sea par, el
- resto de una division debe ser 0}
- Begin
- n_par := n_par + 1; {tambien se puede
- hacer con "inc(n_par)"}
- sumapar := sumapar + num;
- End
- Else {si no es par, DEBE ser impar}
- Begin
- n_imp := n_imp + 1;
- sumaimp := sumaimp + num;
- End;
- End;
- {Vamos a hallar la media de los pares y los impares}
- WRITELN;
- media_p := sumapar / n_par;
- media_i := sumaimp / n_imp;
- WRITELN('La media de los numeros pares es: ',media_p:5:2);
- WRITELN;
- WRITELN('La media de los numeros impares es: ',media_i:5:2);
- End.
- Escribir un programa que muestre en pantalla VS2 realizado por nosotros (usar PROCEDURE).
- PROGRAM VS2 (INPUT, OUTPUT);
- Uses Crt;
- PROCEDURE letra_V;
- BEGIN WRITELN('V V');
- WRITELN(' V V ');
- WRITELN(' V V ');
- WRITELN(' V V ');
- WRITELN(' V ');
- END;
- PROCEDURE letra_S;
- BEGIN
- WRITELN('SSSSSSS');
- WRITELN('S ');
- WRITELN('SSSSSSS');
- WRITELN(' S');
- WRITELN('SSSSSSS');
- END;
- PROCEDURE num_2;
- BEGIN
- WRITELN('2222222');
- WRITELN(' 2');
- WRITELN('2222222');
- WRITELN('2 ');
- WRITELN('2222222');
- END;
- BEGIN {empezamos el programa principal}
- ClrScr;
- letra_V; WRITELN;
- letra_S; WRITELN;
- num_2;
- REPEAT Until Keypressed; {mantenemos la pantalla viendo la
- solución hasta que se pulse una tecla}
- END.
- Hacer un programa que incremente un número usando un PROCEDURE.
- PROGRAM incrementar (INPUT, OUTPUT);
- Uses Crt;
- VAR num: INTEGER;
- PROCEDURE incremento;
- BEGIN
- num := num + 1;
- END;
- BEGIN
- ClrScr;
- WRITE('Introduzca un numero para incrementarle: '); READLN(num);
- WRITELN;
- incremento;
- WRITE('El numero, incrementado en una unidad, es: ',num);
- REPEAT Until Keypressed;
- END.
- Escribir un programa que, utilizando procedimientos con parámetros, lea desde el teclado las unidades y el precio que quiere comprar, y en funcion de las unidades introducidas le haga un descuento o no.
- PROGRAM productos (INPUT, OUTPUT);
- Uses Crt;
- CONST
- Desc = 15; {le haremos un 15% de descuento}
- VAR
- Unidades, precio: INTEGER;
- Total, cantDesc: REAL;
- PROCEDURE descuento (VAR cantidad, descuento: REAL; porciento: INTEGER);
- BEGIN
- Descuento := cantidad * porciento/100; {el descuento es
- el 15% del total}
- Cantidad := cantidad - descuento; {la cantidad final
- es la cantidad - el descuento}
- END;
- BEGIN
- ClrScr;
- WRITE('Introduzca el numero de unidades: ');
- READLN(unidades);
- WRITELN;
- WRITE('Introduzca el precio: ');
- READLN(precio);
- WRITELN;
- Total := precio * unidades; {Calculamos el total}
- IF (unidades > 5) THEN descuento (total, cantDesc, desc) {aplicamos
- el descuento}
- ELSE cantDesc := 0;
- WRITELN('Total: ',total:5:2,' Descuento: ',cantdesc:5:2); {
- escribimos en pantalla el total y el descuento}
- REPEAT Until Keypressed;
- END.
- Hacer un programa que calcule el area de un círculo (usar un PROCEDURE).
- PROGRAM area (INPUT, OUTPUT);
- Uses Crt;
- VAR radiocirc, resultado: REAL;
- PROCEDURE areacirculo (radio: REAL; VAR area: REAL);
- CONST pi = 3.1415926535;
- BEGIN
- area := pi * SQR(radio);
- END;
- BEGIN
- ClrScr;
- WRITE('Introduzca el radio del circulo: '); READLN
- (radiocirc);
- WRITELN;
- IF (radiocirc > 0) THEN
- BEGIN
- areacirculo(radiocirc, resultado); {radiocirc se
- corresponde con radio y resultado con area}
- GOTOXY(20,5);
- WRITELN('El area del circulo es: ',resultado:8:2);
- END
- ELSE
- WRITE('No puede introducir un radio negativo.');
- REPEAT Until Keypressed;
END.
- Escribir un programa que lea tres números enteros e indique
- si están o no, en orden numérico ascendente o descendente.
- PROGRAM EJER_001;
- Uses Crt;
- var num1,num2,num3:Integer;
- Begin
- ClrScr;
- WRITELN('Introduzca tres numeros:');
- WRITE('Numero 1: '); READLN(num1);
- WRITE('Numero 2: '); READLN(num2);
- WRITE('Numero 3: '); READLN(num3);
- WRITELN;
- WRITELN;
- If (num1 > num2) and (num2 > num3) then
- WRITELN('Ha introducido los numeros en orden decreciente.')
- Else if (num1 < num2) and (num2 < num3) then
- WRITELN('Ha introducido los numeros en orden creciente.')
- Else
- WRITELN('No ha introducido los numeros en orden.');
- End.
- Escribir un programa que lea 5 valores de temperatura, y escriba el
- número de veces que estuvo bajo 0º.
- PROGRAM EJER_002;
- Uses Crt;
- var temp,i,cont:Integer;
- Begin
- WRITELN ('Introduzca 5 valores de temperatura:');
- WRITELN;
- cont := 0;
- For i := 0 to 4 do
- Begin
- WRITE('Valor ',i + 1,' : '); {i + 1 mostrará valores
- del 1 al 5}
- Readln(temp);
- If temp < 0 Then
- inc(cont); {cont = cont + 1}
- End;
- WRITELN;
- WRITE('La temperatura ha estado ',cont);
- If cont = 1 then
- WRITE (' vez bajo 0')
- Else
- WRITE (' veces bajo 0');
- End.
- Se realiza un examen, se piden las notas del número de alumnos
- introducidos por el usuario, las cuales pueden ser únicamente enteras
- entre 0 y 10. Debe decirse cuantos 0, 5 y 10 han aparecido. También
- deben decirse las notas introducidas que no sean 0, 5 o 10.
- PROGRAM EJER_003;
- Uses Crt;
- var cero, cinco, diez: Integer;
- var nota, i, alumnos: Integer;
- var notas_no: Array [1..30] of Integer;
- Begin
- ClrScr;
- WRITE('Introduzca el numero de alumnos: '); READLN(alumnos);
- WRITELN;
- WRITELN('Introduzca las calificaciones: (en valores enteros) ');
- WRITELN;
- For i := 1 to alumnos do
- Begin
- WRITE('Alumno: '); READLN(nota);
- If nota = 0 then inc(cero)
- else if nota = 5 then inc(cinco)
- else if nota = 10 then inc(diez)
- else
- notas_no[i] := nota;
- End;
- WRITELN;
- WRITE('Ha habido ',cero);
- If cero = 1 then WRITELN(' cero.') else WRITELN
- (' ceros.');
- WRITE('Ha habido ',cinco);
- If cinco = 1 then WRITELN(' cinco.') else WRITELN
- (' cincos.');
- WRITE('Ha habido ',diez);
- If diez = 1 then WRITELN(' diez.') else WRITELN
- (' dieces.');
- WRITELN;
- WRITELN('Las notas aparecidas que no son 0, 5 o 10 son: ');
- For i := 1 to i DO
- IF notas_no[i] <> 0 then WRITE(notas_no[i],', ');
- END.
- Decir el numero de vocales que aparecen en una frase introducida por
- el usuario. Debe acabar con un punto.
- PROGRAM EJER_004;
- Uses Crt;
- Const vocales: Set of Char = (['A','E','I','O','U']);
- {Poniendolas en mayusculas conseguimos unificar el valor de las vocales
- y evitamos decir al usuario que las introduzca en mayusculas o
- minusculas}
- var cont, i:Integer;
- var letra: Char;
- var frase: Array[1..85] of Char;
- Begin
- ClrScr;
- WRITELN('Escriba una frase, acabando con un punto'); WRITELN;
- i:=0;
- cont:=0;
- REPEAT
- letra := Readkey;{Readkey no mostrará los caracteres
- en pantalla}
- WRITE (letra); {Debemos incluirlo para que nos muestre los
- caracteres}
- if UPCASE(letra) in vocales then {pregutamos si la letra introducida
- es una vocal}
- inc(cont);
- frase[i]:=letra; {guardamos el valor de la letra en el array frase}
- UNTIL letra = '.';
- WRITELN;
- WRITELN;
- WRITE ('El numero de vocales introducidas es ',cont);
- End.
- PROGRAM EJER_004_2;
- Uses Crt;
- Const vocales: Set of Char = (['A','E','I','O','U']);
- {Poniendolas en mayusculas conseguimos unificar el valor de las vocales
- y evitamos decir al usuario que las introduzca en mayusculas o
- minusculas}
- var cont, i:Integer;
- var letra: Char;
- var frase: String;{Es lo unico que cambia con respecto a la otra version}
- Begin
- ClrScr;
- WRITELN('Escriba una frase, acabando con un punto'); WRITELN;
- i:=0;
- cont:=0;
- REPEAT
- letra := Readkey; {Readkey no mostrara los caracteres en pantalla}
- WRITE (letra); {Debemos incluirlo para que nos muestre los
- caracteres}
- if UPCASE(letra) in vocales then {pregutamos si la letra introducida
- es una vocal}
- inc(cont);
- frase[i]:=letra; {guardamos el valor de la letra en el array frase}
- UNTIL letra = '.';
- WRITELN;
- WRITELN;
- WRITE ('El numero de vocales introducidas es ',cont);
- End.
- Pedir que se introduzca una frase, acabada con un punto en la que se
- lean las letras del abecedario introducidas y se muestren posteriormente.
- PROGRAM EJER005;
- Uses Crt;
- var caracter : Char;
- var abc : String;
- var i, longitud: Integer;
- Begin
- ClrScr;
- WRITELN('Escriba una frase, terminando con un punto');
- WRITELN;
- i := 0;
- longitud := 0;
- REPEAT
- caracter := Upcase(Readkey);
- WRITE(caracter);
- If caracter in ['A'..'Z'] then
- Begin
- abc[i] := caracter;
- {el array abc quedara con espacios vacios,los
- que no sean letras del abedecario, si no se pone
- el incremento de i dentro+ de este begin-end.
- Prueba a quitar el begin-end si tienes curiosidad
- en verlo}
- inc(i);
- End;
- UNTIL caracter = '.';
- longitud := i;
- WRITELN;
- WRITELN;
- WRITELN('Las letras del abecedario introducidas son: ');
- WRITELN;
- For i := 0 To longitud Do
- WRITE(abc[i],' ');
- End.
- Escribir un programa en Pascal que lea una frase introducida
- desde el teclado y la escriba al revés.
- PROGRAM EJ006;
- Uses Crt;
- var frase: String; {Se puede hacer con arrays}
- var f_inv: String; {Cada uno debe elegir la manera que
- mejor entida, y controle, eso si, siempre hay que dominar
- las dos formas.}
- var i: Integer;
- Begin
- ClrScr;
- i := 0;
- WRITELN('Escriba una frase:');
- READLN(frase);
- WRITELN;
- WRITELN;
- For i := 0 to length(frase) do {desde la primera posicion de
- la frase hasta la ultima almacenamos la frase en una variable}
- f_inv[i] := frase[i];
- FOR i := length(frase) downto 0 do
- WRITE(f_inv[i]);
- End.
- PROGRAM EJER006_2;
- Uses Crt;
- var frase: String;
- var i: Integer;
- Begin
- ClrScr;
- i := 0;
- WRITELN('Escriba una frase:');
- WRITELN;
- READLN(frase);
- WRITELN;
- FOR i := length(frase) downto 1 do {Si ponemos "downto 0" nos
- pasariamos en un caracter}
- WRITE(frase[i]);
- {Si lo unico que quieres es mostrar la cadena de caracteres a la
- inversa, en esta version lo hemos hecho unicamente con una
- variable}
- End.
- Escribir un programa que compare dos arrays de caracteres y
- nos diga si son idénticos o no.
- PROGRAM EJER007;
- Uses Crt;
- var frase1, frase2: String;
- var index,long1,long2: Integer; {long1 y long2 son la
- longitud de las cadenas}
- var letra: Char;
- var iguales: Boolean;
- Begin
- ClrScr;
- WRITELN ('Introduzca la primera cadena de caracteres,
- finalizando con un punto');
- WRITELN;
- index := 0;
- long1 := 0;
- long2 := 0;
- REPEAT
- Begin
- letra := Readkey;
- write(letra); {Readkey no muestra los caracteres en
- pantalla, write si}
- frase1[index] := letra; {vamos almacenando cada letra
- en la variable}
- index := index + 1;
- End;
- UNTIL letra='.';
- long1 := index; {medimos la longitud de la cadena}
- WRITELN;
- WRITELN;
- WRITE('Introduzca la segunda cadena de caracteres, finalizando
- con un punto');
- WRITELN;
- WRITELN;
- letra := ' ';
- index := 0;
- REPEAT
- Begin
- letra := Readkey;
- write(letra);
- frase2[index] := letra; {vamos almacenando cada letra en
- la variable}
- index := index + 1;
- End;
- UNTIL letra='.';
- long2 := index; {medidos la longitud de la cadena}
- WRITELN;
- WRITELN;
- If long1 <> long2 then {Si la longitud es distinta, SEGURO que
- no son iguales}
- WRITELN ('Las cadenas de caracteres son distintas')
- {*Pongo dos mensajes distintos para que veamos en que bucle
- ha entrado en los diferentes casos que se pueden dar}
- Else
- Begin
- For index := 0 to long1 do
- Begin
- if frase1[index] <> frase2[index] then
- Begin
- WRITE('Las cadenas de caracteres no son iguales');
- {*Pongo dos mensajes distintos para que veamos
- en que bucle ha entrado
- en los diferentes casos que se pueden dar}
- exit;
- End
- else
- iguales := true; {almacenamos en una variable que
- las cadenas son iguales}
- End;
- End;
- If iguales = true then WRITELN ('Las cadenas de caracteres
- son iguales');
- End.
- Escribir un programa en Pascal que sume los valores que hay por encima
- de la diagonal principal. Los valores se pueden asignar como una
- constante.
- PROGRAM EJER008;
- Uses Crt;
- Const N = 4; {Numero de filas y columnas de la matriz}
- Const matriz: Array [1..N,1..N] of Integer = ((1, 2, 3, 4),
- ( 5, 6, 7, 8),
- ( 9,10,11,12),
- (13,14,15,16));
- {Declaramos la matriz}
- var i, j, suma: Integer;
- {i se corresponde con las filas y j con las columnas}
- Begin
- ClrScr; {limpiamos la pantalla}
- {los valores de la diagonal principal son (1,1) (2,2)
- (3,3) (4,4).
- Como este ejercicio consiste en sumar los valores que hay
- encima de la diagonal principal, sumares: 2 + 3 + 4 + 7 + 8 + 12}
- {Escribimos la matriz original y coloreamos los valores que
- necesitamos}
- For i := 1 to N Do
- Begin
- For j := 1 to N Do
- Begin
- If j > i then
- Textcolor(9) {Cambiando el numero
- elegiremos el color}
- Else
- TextColor(7);
- WRITE(matriz[i,j]:3);
- End;
- WRITELN(' ');
- End;
- WRITELN;{Suma de los valores de la primera fila de la matriz}
- i := 1;
- FOR j := 2 to N do
- Begin
- suma := suma + matriz[i,j];
- WRITELN(suma); {Lo escribimos para chequear los valores,
- podriamos escribir un write al final y seria suficiente}
- End;
- {Suma de los valores de la segunda fila}
- i := 2;
- FOR j := 3 to N do
- Begin
- suma := suma + matriz[i,j];
- WRITELN(suma);
- End;
- WRITELN;{Suma de los valores de la tercera fila}
- i := 3;
- FOR j := 4 to N do {N ya vale 4, por lo que solo se realiza
- 1 vez el bucle}
- Begin
- suma := suma + matriz[i,j];
- WRITELN('El resultado final es: ',suma);
- End;
- End.
- Escribir un programa en Pascal que almacene en un array de registros
- los nombres de los alumnos, sus notas parciales y finales. Hallar la
- nota media y mostrar un mensaje de APTO si el alumno supera o iguala la
- calificación de 5 o NO APTO si no lo alcanza. Hacerlo para un
- número de 5 alumnos.
- PROGRAM EJER009;
- Uses Crt;
- Const numalumnos = 5;
- Type tnotas = record
- nombre2 : String;
- n_parcial2, n_final2: Real; {Nota parcial y final}
- end;
- {Hacemos una fila dividida en 4 partes:tnotas, nombre2,
- n_parcial2, n_final2. Es como una tabla de Word, la cual
- iremos rellenando con los datos obtenidos}
- notas = Array[1..numalumnos] of tnotas;
- {Ahora la copiamos tantas veces como numero de alumnos hay,
- es decir, obtenemos 5 filas iguales}
- var clase : notas;
- var nombre: String;
- var n_parcial, n_final, n_media: Real;
- var i: Integer;
- Begin
- ClrScr;
- For i := 1 to numalumnos Do
- Begin
- WRITE('Introduzca el nombre del alumno ',i,' : ');
- READLN(nombre);
- WRITE('Introduzca su nota parcial: ');
- READLN(n_parcial);
- WRITE('Introduzca su nota final: ');
- READLN(n_final);
- WRITELN;
- With clase[i] Do
- Begin
- n_parcial2 := n_parcial;
- n_final2 := n_final;
- nombre2 := nombre;
- End;
- End;
- ClrScr;
- WRITELN('NOMBRE':25,'Parcial':8,'Final':8,'Media':8,
- 'CALIFICACION':15);
- WRITELN;
- For i := 1 to numalumnos do
- With clase[i] do
- Begin
- n_media := (n_parcial2 + n_final2) / 2;
- WRITE(nombre2:25,n_parcial2:8:2,n_final2:8:2);
- textcolor(14); WRITE(n_media:8:2);
- If n_media >= 5 then
- Begin
- textcolor(11);
- WRITELN ('APTO :-)':15);
- End
- Else
- Begin
- textcolor(1);
- WRITELN ('NO APTO :-(':15);
- End;
- textcolor(7);
- End;
- End.
- Escribir un programa en Pascal que almacene en un array de registros
- las características de cada persona: nombre, sexo, edad, peso, color
- de pelo, color de piel, color de ojos, nacionalidad y teléfono.
- PROGRAM EJER_010;
- Uses Crt;
- Const numpersonas = 1; {Cambiando este valor lo podremos
- hacer para
- el numero de personas que deseemos}
- Type caracteristicas = record
- nombre2, nacionalidad2: String;
- edad2: Integer;
- sexo2, c_pelo2, c_ojos2: Char;
- tf2: Longint;
- {Creamos una fila con diferentes apartados}
- end;
- personas = Array[1..numpersonas] of caracteristicas;
- {La copiamos tantas veces como personas haya}
- var persons : personas;
- nombre, nacionalidad: String;
- edad, i: Integer;
- sexo, c_pelo, c_ojos: Char;
- tf: Longint;
- Begin
- ClrScr;
- For i := 1 to numpersonas do
- Begin
- WRITELN('Introduzca los datos de la persona numero ',i,
- ' : ');
- WRITELN;
- WRITE('Nombre: '); READLN(nombre);
- WRITE('Edad: '); READLN(edad);
- WRITE('Nacionalidad: '); READLN(nacionalidad);
- Repeat
- WRITE('Sexo (H, M): '); READLN(sexo);
- Until (sexo = 'H') or (sexo = 'M');
- WRITE('Telefono: '); READLN(tf);
- Repeat
- WRITE('Color de ojos (A, V, M): '); READLN(c_ojos);
- Until (c_ojos = 'A') or (c_ojos = 'V') or (c_ojos = 'M');
- Repeat
- WRITE('Color de pelo (R, M, C): '); READLN(c_pelo);
- Until (c_pelo = 'R') or (c_pelo = 'M') or (c_pelo = 'C');
- WRITELN;
- With persons[i] do
- Begin
- nombre2 := nombre;
- edad2 := edad;
- nacionalidad2 := nacionalidad;
- sexo2 := sexo;
- tf2 := tf;
- c_ojos2 := (c_ojos);
- c_pelo2 := (c_pelo);
- {Almacenamos los datos dentro del array de registro}
- End;
- End;
- textcolor(11);
- WRITELN('Nombre':15,'Edad':6,'Nacionalidad':15,'Sexo':6,
- 'Telefono':12,'Color ojos':12,'Color pelo':12);
- textcolor(7);
- For i := 1 to numpersonas do
- Begin
- with persons[i] do
- Begin
- WRITE(nombre2:15,edad2:6,Nacionalidad2:15,
- sexo2:6,tf2:12,c_ojos2:12,c_pelo2:12);
- End;
- End;
- {Las caracteristicas que se piden al usuario para obtener
- informacion de las diferentes personas son simples ejemplos. Si se
- quieren cambiar, y poner por ejemplo, si esta casado o soltero, sus
- estudios, etc., unicamente habra que crear nuevas variables o
- sustituir las existentes.}
- End.
Escribir un programa en Pascal que determine la posición de- la siguiente matriz en la que se encuentra el valor máximo.
- 23 45 68
- 34 99 12
- 25 78 89
- PROGRAM EJER91B;
- USES CRT;
- CONST arr_num:ARRAY[1..3,1..3] of INTEGER=( (23,45,68),
- (34,99,12),
- (25,78,89) );
- VAR i,j,val_max,pos_max_i,pos_max_j:INTEGER;
- BEGIN
- ClrScr;
- val_max:=arr_num[1,1];
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 3 DO
- BEGIN
- IF arr_num[i,j] > val_max THEN
- BEGIN
- val_max:=arr_num[i,j];
- pos_max_i:=i;
- pos_max_j:=j;
- END;
- END;
- END;
- WRITELN( 'VALOR MAXIMO: ', val_max:3,
- ' POSICION: ', pos_max_i:3,pos_max_i:3);
- END.
- Escribir un programa en Pascal que sume, independientemente, los
- elementos positivos y negativos de la siguiente matriz:
- -12 23 32
- 45 -56 -10
- 25 78 89
- PROGRAM EJER92;
- USES CRT;
- CONST arr_num:ARRAY [1..3,1..3] of INTEGER=( (-12,23,-32),
- (45,-56,-10),
- (25,78,89) );
- VAR i,j,suma_p,suma_i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:= 1 TO 3 DO
- BEGIN
- IF arr_num[i,j] >=0 THEN
- suma_p:= suma_p + arr_num[i,j]
- ELSE
- suma_i:= suma_i + arr_num[i,j];
- END;
- END;
- WRITELN ('La suma de los numeros pares es: ',suma_p);
- WRITELN ('La suma de los numeros impares es: ',suma_i);
- END.
- PROGRAM EJER92;
- USES CRT;
- CONST arr_num:ARRAY[1..3,1..3] of INTEGER=( (-12,23,-32),
- (45,-56,-10),
- (25,78,89));
- VAR i,j,suma_pos,suma_neg:INTEGER;
- BEGIN
- suma_pos:=0;
- suma_neg:=0;
- ClrScr;
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 3 DO
- BEGIN
- IF arr_num[i,j] < 0 THEN
- suma_neg:=suma_neg+arr_num[i,j]
- ELSE
- suma_pos:=suma_pos+arr_num[i,j]
- END;
- END;
- WRITELN('SUMA POSITIVOS: ', suma_pos:5);
- WRITELN('SUMA NEGATIVOS: ', suma_neg:5);
- END.
- Escribir un programa en Pascal que multiplique por dos los
- elementos de la siguiente matriz:
- 4 7 8
- 6 9 1
- 5 0 3
- PROGRAM EJER93;
- USES CRT;
- CONST arr_num:ARRAY [1..3,1..3] of INTEGER=( (4,7,8),
- (6,9,1),
- (5,0,3));
- VAR mult,i,j:INTEGER;
- BEGIN
- ClrScr;
- FOR i:= 1 TO 3 DO
- BEGIN
- FOR j:=1 TO 3 DO
- BEGIN
- mult:=arr_num[i,j] * 2;
- WRITELN('Elemento (',i,',',j,') multiplicado por 2:
- ',mult:3);
- END;
- END;
- END.
- PROGRAM EJER93;
- USES CRT;
- CONST arr_num:ARRAY[1..3,1..3] of INTEGER=( (4,7,8),
- (6,9,1),
- (5,0,3));
- VAR i,j:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 3 DO
- FOR j:=1 TO 3 DO
- arr_num[i,j]:=arr_num[i,j]*2;
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 3 DO
- WRITE(arr_num[i,j]:3);
- WRITELN (' ');
- END;
- END.
- Escribir un programa en Pascal que almacene en la segunda fila
- de la siguiente matriz los cuadrados de los datos de la primera fila:
- 3 6 7 8 9
- 0 0 0 0 0
- PROGRAM EJER94;
- USES CRT;
- CONST arr_num:ARRAY [1..2,1..5] of INTEGER=( (3,6,7,8,9),
- (0,0,0,0,0));
- VAR i,j,cuad:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- FOR j:=1 TO 5 DO
- BEGIN
- FOR i:=1 TO 1 DO
- BEGIN
- cuad:=sqr(arr_num[i,j]);
- arr_num[2,j]:= cuad;
- WRITELN (arr_num[2,j]);
- END;
- END;
- END.
- PROGRAM EJER94;
- USES CRT;
- CONST arr_num:ARRAY[1..2,1..5] of INTEGER=( (3,6,7,8,9),
- (0,0,0,0,0));
- VAR i,j:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 1 DO
- FOR j:=1 TO 5 DO
- arr_num[i+1,j]:=sqr(arr_num[i,j]);
- FOR i:=1 TO 2 DO
- BEGIN
- FOR j:=1 TO 5 DO
- WRITE(arr_num[i,j]:3);
- WRITELN(' ');
- END;
- END.
- Escribir un programa en Pascal que sume los datos de cada una
- de las filas de la siguiente matriz; el resultado se almacenará
- en la última posición de cada fila:
- 3 6 7 8 9 0
- 1 4 3 2 7 0
- PROGRAM EJER95;
- USES CRT;
- CONST arr_num:ARRAY [1..2,1..6] of INTEGER=( (3,6,9,7,8,0),
- (1,4,3,2,7,0));
- VAR i,j,suma1, suma2:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 2 DO
- BEGIN
- FOR j:=1 TO 6 DO
- BEGIN
- IF i=1 THEN suma1:= suma1 + arr_num[1,j];
- IF i=2 THEN suma2:= suma2 + arr_num[2,j];
- END;
- END;
- WRITELN ('La suma de la fila 1 es: ',suma1);
- WRITELN ('La suma de la fila 2 es: ',suma2);
- END.
- PROGRAM EJER95;
- USES CRT;
- CONST arr_num:ARRAY[1..2,1..6] of INTEGER=( (3,6,9,7,8,0),
- (1,4,3,2,7,0));
- VAR suma_fila,i,j:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 2 DO
- BEGIN
- suma_fila:=0;
- FOR j:=1 TO 6 DO
- suma_fila:=suma_fila+arr_num[i,j];
- arr_num[i,j]:=suma_fila;
- END;
- FOR i:=1 TO 2 DO
- BEGIN
- FOR j:=1 TO 6 DO
- WRITE(arr_num[i,j]:3);
- WRITELN(' ');
- END;
- END.
- Escribir un programa en Pascal que sume los datos de cada una
- de las columnas de la siguiente matriz; el resultado se almacenará
- en la última posición de cada columna:
- 3 2
- 4 6
- 8 9
- 0 0
- PROGRAM EJER96;
- USES CRT;
- CONST arr_num:ARRAY [1..4,1..2] of INTEGER=( (3,2),(4,6),
- (8,9),(0,0));
- VAR i,j,suma1,suma2:INTEGER;
- BEGIN
- ClrScr;
- FOR j:=1 TO 2 DO
- BEGIN
- FOR i:=1 TO 4 DO
- BEGIN
- IF j=1 THEN suma1:= suma1 + arr_num[i,j];
- IF j=2 THEN suma2:= suma2 + arr_num[i,j];
- END;
- END;
- WRITELN ('El resultado de la suma 1 es: ',suma1);
- WRITELN ('El resultado de la suma 2 es: ',suma2);
- END.
- Escribir un programa en Pascal que sume los elementos de cada
- una de las filas y de las columnas de la siguiente matriz; el resultado
- de cada suma se almacenará en la última posición
- de la fila o columna correspondiente. Además la suma total
- de todos los elementos de la matriz se almacenará en el
- elemento de la esquina inferior derecha de la matriz:
- 1 7 0
- 5 6 0
- 6 4 0
- 7 3 0
- 0 0 0
- PROGRAM EJER97;
- USES CRT;
- CONST arr_num:ARRAY [1..5,1..3] of INTEGER=( (1,7,0),(5,6,0),
- (6,4,0),(7,3,0),
- (0,0,0) );
- VAR i,j,total:INTEGER;
- VAR suma_h,suma_v:INTEGER; {Es la suma horizontal y vertical}
- BEGIN
- ClrScr;
- FOR i:=1 TO 5 DO
- BEGIN
- FOR j:=1 TO 3 DO
- BEGIN
- suma_h:= suma_h + arr_num[i,j];
- END;
- WRITELN ('La suma de la fila ',i,' es: ',suma_h:3);
- total:=total + suma_h;
- suma_h:=0;
- END; WRITELN ('');
- FOR j:=1 TO 2 DO
- BEGIN
- FOR i:=1 TO 5 DO
- BEGIN
- suma_v:= suma_v + arr_num[i,j];
- END;
- WRITELN ('La suma de la columna ',j,' es: ',suma_v:3);
- suma_v:=0;
- total:=total + suma_v;
- END; WRITELN ('');
- WRITELN ('La suma total es: ',total);
- END.
- PROGRAM EJER97;
- USES CRT;
- CONST arr_num:ARRAY[1..5,1..3] of INTEGER=( (1,7,0),
- (5,6,0),
- (6,4,0),
- (7,3,0),
- (0,0,0) );
- VAR suma_fila,suma_colu,suma_tota,i,j:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 4 DO
- BEGIN
- suma_fila:=0;
- FOR j:=1 TO 2 DO
- BEGIN
- suma_fila:=suma_fila+arr_num[i,j];
- suma_tota:=suma_tota+arr_num[i,j];
- END;
- arr_num[i,j+1]:=suma_fila;
- END;
- arr_num[i+1,j+1]:=suma_tota;
- FOR j:=1 TO 2 DO
- BEGIN
- suma_colu:=0;
- FOR i:=1 TO 4 DO
- BEGIN
- suma_colu:=suma_colu+arr_num[i,j];
- END;
- arr_num[i+1,j]:=suma_colu;
- END;
- FOR i:=1 TO 5 DO
- BEGIN
- FOR j:=1 TO 3 DO
- WRITE(arr_num[i,j]:3);
- WRITELN(' ');
- END;
- END.
- Escribir un programa en Pascal que divida todos los elementos de
- una matriz M (3,4) por el elemento situado en la posición 2,2.
- PROGRAM EJER98;
- USES CRT;
- CONST arr_num:ARRAY[1..3,1..4] of INTEGER=( (23,45,-68,99),
- (45,65,-76,34),
- (56,-75,34,98));
- VAR i,j:INTEGER;
- VAR divi:REAL;
- BEGIN
- ClrScr;
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 4 DO
- BEGIN
- divi:= arr_num[i,j] / arr_num[2,2];
- WRITE ('Dividido ',arr_num[i,j]:3,' por el numero ');
- WRITELN (arr_num[2,2]:3,': ',divi:5:2);
- END;
- END;
- END.
- PROGRAM EJER98;
- USES CRT;
- CONST matriz_m:ARRAY[1..3,1..4] OF REAL = ((2,3,4,12),
- (7,9,8,11),
- (5,6,1,19));
- VAR i,j:INTEGER;
- VAR ele_22:REAL;
- BEGIN
- ele_22:=matriz_m[2,2];
- ClrScr;
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 4 DO
- WRITE(matriz_m[i,j]:5:2,' ');
- WRITELN(' ');
- END;
- FOR i:=1 TO 3 DO
- FOR j:=1 TO 4 DO
- matriz_m[i,j]:=matriz_m[i,j]/ele_22;
- WRITELN(' ');
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 4 DO
- WRITE(matriz_m[i,j]:5:2,' ');
- WRITELN(' ');
- END;
- END.
- Escribir un programa en Pascal que almacene en un array los números
- primos comprendidos entre 1 y 100.
- PROGRAM EJER99;
- USES CRT;
- VAR arr_num:ARRAY [1..100] of INTEGER;
- VAR flag:INTEGER;
- VAR i,num:INTEGER;
- BEGIN
- ClrScr;
- num:=1;
- WHILE num < 100 DO
- BEGIN
- FOR i:=2 TO (num-1) DO
- BEGIN
- IF (num mod i)=0 THEN
- flag:=1;
- END;
- IF flag<>1 THEN
- WRITELN (num:3,' es un n£mero primo.');
- num:= num + 1;
- flag:=0;
- END;
- END.
- PROGRAM EJER99;
- USES CRT;
- VAR arra_prim:ARRAY[1..100] OF INTEGER;
- VAR i,divisor:INTEGER;
- VAR flag,num:INTEGER;
- BEGIN
- i:=1;
- FOR num:=2 TO 100 DO
- BEGIN
- flag:=1;
- FOR divisor:=2 TO num-1 DO
- BEGIN
- IF num MOD divisor = 0 THEN
- flag:=0;
- END;
- IF flag=1 THEN
- BEGIN
- arra_prim[i]:=num;
- i:=i+1;
- END;
- END;
- arra_prim[i]:=0;
- i:=1;
- WHILE(arra_prim[i]<>0) DO
- BEGIN
- WRITE(arra_prim[i],' ');
- i:=i+1;
- END;
- END.
- Escribir un programa en Pascal que genera la matriz transpuesta
- de una matriz de 3 filas y 4 columnas. La matriz transpuesta de una
- matriz M(m,n) se obtiene intercambiando filas por columnas y viceversa;
- el resultado se tiene que almacenar en una nueva matriz M_TRANS(n,m).
- PROGRAM EJERC100;
- USES CRT;
- CONST matriz:ARRAY [1..3,1..4] of INTEGER=( (12,67,-23,-45),
- (45,-34,23,-12),
- (-34,22,88,-10));
- VAR m_tra:ARRAY [1..4,1..3] of INTEGER;
- VAR f,c:INTEGER;
- BEGIN
- ClrScr;
- FOR c:=1 TO 3 DO
- BEGIN
- FOR f:=1 TO 4 DO
- BEGIN
- m_tra[f,c]:=matriz[c,f];
- WRITE ('(',f,',',c,') ');
- WRITELN (m_tra[f,c]:3);
- END;
- END;
- END.
- PROGRAM EJERC100;
- USES CRT;
- CONST m_orig:ARRAY[1..3,1..4] OF REAL = ((2,3,4,12),
- (7,9,8,11),
- (5,6,1,19));
- VAR m_tran:ARRAY[1..4,1..3] OF REAL;
- VAR i,j:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 3 DO
- FOR j:=1 TO 4 DO
- m_tran[j,i]:=m_orig[i,j];
- FOR i:=1 TO 3 DO
- BEGIN
- FOR j:=1 TO 4 DO
- WRITE(m_orig[i,j]:5:2,' ');
- WRITELN(' ');
- END;
- WRITELN(' ');
- FOR i:=1 TO 4 DO
- BEGIN
- FOR j:=1 TO 3 DO
- WRITE(m_tran[i,j]:5:2,' ');
- WRITELN(' ');
- END;
- END.
- 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 num: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 número
- 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 (num);
- WRITELN ('');
- IF num < 100 THEN
- WRITE ('El numero que ha escrito es menor de 100')
- ELSE 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 O IGUAL A 100 ')
- ELSE
- WRITE('NUMERO MAYOR DE 100')
- END.
- Escribir un programa en Pascal que dado un 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 corresponde: ');
- 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.
- N
- PROGRAM EJER36;
- USES CRT;
- VAR num_dia_sem:INTEGER;
- 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); WRITE (''); READLN (num2);
- WRITELN ('');
- IF num1 > num2 THEN
- BEGIN
- WRITE(num2,' ',num1,'. El primer numero introducido
- es mayor.');
- WRITE(' Se cambia el orden.');
- END
- 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,temp: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 ó 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 -> sin descuento
- · Importe bruto mayor de 20.000 -> 15% de descuento
- 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.
- 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:INTEGER;
- VAR h2,m2,s2:INTEGER;
- {Son las horas, minutos y seguntos 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 = 60 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(m2); WRITE(' mm ');
- WRITE(s2); WRITE(' ss ');
- END.
- Escribir un programa en Pascal que calcule el salario semanal de un
- trabajador en base a las horas trabajadas y el pago por hora trabajada.
- · Horas ordinarias (40 primeras horas de trabajo) – 2.000 Pts/hora
- · 1.5 veces precio hora ordinaria
- PROGRAM EJER41;
- USES CRT;
- VAR htrab, ptsh:REAL; {Horas trabajadas y pts hora}
- VAR nhextra, hextra:REAL; {Numero de horas extra y horas extra}
- VAR salario_semanal:REAL;
- BEGIN
- ClrScr;
- WRITE ('Introduzca las horas trabajadas y las pts/hora que se
- cobran ');
- WRITELN ('para calcular el salario semanal.');
- WRITELN ('');
- WRITE ('Horas trabajadas: '); READLN (htrab);
- WRITE ('Pts/hora: '); READLN (ptsh);
- WRITE ('Horas extra: '); READLN (nhextra);
- WRITELN ('');
- hextra:=nhextra * (ptsh * 1.5);
- Salario_semanal:= (htrab) * (ptsh) + hextra;
- WRITE ('El salario semanal son ',salario_semanal:5:0,' pts.');
- END.
- PROGRAM EJER41;
- USES CRT;
- VAR pre_hor,hor_tra,hor_ext,sal_sem:REAL;
- BEGIN
- ClrScr;
- pre_hor:=2000;
- WRITE('Horas trabajadas '); READLN(hor_tra);
- IF hor_tra<=40 THEN
- sal_sem:=hor_tra*pre_hor
- ELSE
- BEGIN
- hor_ext:=hor_tra-40;
- sal_sem:=(40*pre_hor)+(hor_ext*(pre_hor*1.5));
- END;
- WRITE('Salario semanal: '); WRITELN(sal_sem:5:2);
- END.
- Escribir un programa en Pascal que realice un bucle con While y muestre
- en pantalla del 1 al 10.
- PROGRAM EJER42;
- USES CRT;
- VAR x:INTEGER;
- BEGIN
- x:=0;
- ClrScr;
- WHILE X <= 10 DO
- BEGIN
- WRITELN (x);
- x:=x+1;
- END;
- END.
- Escribir un programa en Pascal que realice un bucle con Repeat y muestre
- en pantalla del 1 al 10.
- PROGRAM EJER43;
- USES CRT;
- VAR x:INTEGER;
- BEGIN
- x:=0;
- ClrScr;
- REPEAT
- WRITELN (x);
- x:=x+1;
- UNTIL x=10;
- END.
- Escribir un programa en Pascal que realice un bucle con For y muestre en
- pantalla del 1 al 10.
- PROGRAM EJER44;
- USES CRT;
- VAR x:INTEGER;
- BEGIN
- ClrScr;
- FOR x:=0 TO 10 DO
- WRITELN (x);
- END.
- Escribir un programa en Pascal que visualice en pantalla los números
- pares entre 1 y 25.
- PROGRAM EJER45;
- USES CRT;
- VAR num:INTEGER;
- BEGIN
- num:=2;
- ClrScr;
- REPEAT
- WRITELN (num);
- num:= num + 2;
- UNTIL num= 26;
- END.
- PROGRAM EJER45;
- USES CRT;
- VAR sem:INTEGER;
- BEGIN
- ClrScr;
- sem:=1;
- WHILE sem <= 25 DO
- BEGIN
- IF sem mod 2=0 THEN
- WRITELN(sem);
- sem:=sem + 1;
- END;
- END.
- Escribir un programa en Pascal que visualice en pantalla los números
- múltiplos de 5 comprendidos entre 1 y 100.
- PROGRAM EJER46;
- USES CRT;
- VAR num:INTEGER;
- BEGIN
- num:= 5;
- ClrScr;
- WHILE num <= 100 DO
- BEGIN
- WRITELN (num);
- num:= num + 5;
- END;
- END.
- PROGRAM EJER46;
- USES CRT;
- VAR sem:INTEGER;
- BEGIN
- ClrScr;
- FOR sem:= 1 TO 100 DO
- BEGIN
- IF sem mod 5=0 THEN
- WRITELN(sem);
- END;
- END.
- Escribir un programa en Pascal que sume los números comprendidos
- entre 1 y 10.
- PROGRAM EJER47;
- USES CRT;
- VAR num, x:INTEGER;
- BEGIN
- ClrScr;
- num:=1;
- x:=1;
- WHILE num <= 10 DO
- BEGIN
- WRITELN (x);
- num:= num + 1;
- x:= x + num;
- END;
- END.
- Escribir un programa en Pascal que genere la tabla de multiplicar
- de un número introducido por el teclado.
- PROGRAM EJER48;
- USES CRT;
- VAR tabla, x, num:INTEGER;
- BEGIN
- ClrScr;
- WRITE ('Introduzca un numero para hacer su tabla de
- multiplicar: ');
- READLN (num); WRITELN ('');
- REPEAT
- WRITELN (tabla);
- x:= x + 1;
- tabla:= num * x;
- UNTIL x=11;
- END.
- PROGRAM EJER48;
- USES CRT;
- VAR num,sem:INTEGER;
- BEGIN
- ClrScr;
- WRITE('Introduzca un numero entero: '); READLN(num);
- FOR sem:=1 TO 10 DO
- BEGIN
- WRITE(num); WRITE(' * '); WRITE(sem); WRITE(' = ');
- WRITELN(num*sem);
- END;
- END.
- Escribir un programa en Pascal que realice la pregunta ¿Desea
- continuar S/N? y que no deje de hacerla hasta que el usuario teclee N.
- PROGRAM EJER49;
- USES CRT;
- VAR respuesta:CHAR;
- BEGIN
- ClrScr;
- REPEAT
- WRITELN ('DESEA CONTINUAR: S/N '); READLN (respuesta);
- UNTIL respuesta='N';
- END.
- PROGRAM EJER49B;
- USES CRT;
- VAR respuesta:STRING;
- BEGIN
- ClrScr;
- REPEAT
- WRITELN ('DESEA CONTINUAR: SI/NO '); READLN (respuesta);
- UNTIL respuesta='NO';
- END.
- PROGRAM EJER49;
- USES CRT;
- VAR resp:CHAR;
- BEGIN
- ClrScr;
- resp:='S';
- WHILE UPCASE(resp)='S' DO
- BEGIN
- WRITE('Desea continuar? '); READLN(resp);
- END;
- END.
- Escribir un programa en Pascal que calcule cuantos años tarda en
- duplicarse un capital depositado al 5% de interés anual.
- PROGRAM EJER50;
- USES CRT;
- VAR tiempo:REAL;
- VAR cap_ini,cap_fin:REAL;
- CONST interes = 0.05;
- BEGIN
- ClrScr;
- WRITE ('Intruduzca el capital para calcular cuanto tardara ');
- WRITE ('en duplicarse, con un interes del 5%: ');
- READLN (cap_ini);
- WRITELN ('');
- IF cap_ini < 0 THEN
- BEGIN
- WRITE ('No se puede incluir un capital negativo');
- EXIT;
- END;
- tiempo:=0;
- cap_fin:= cap_ini;
- REPEAT
- cap_fin:=cap_fin + (cap_fin * interes);
- tiempo:= tiempo + 1;
- UNTIL cap_fin > (cap_ini * 2);
- WRITELN ('Tardara',tiempo:3:0,' años en duplicarse');
- WRITELN ('Capital final: ',cap_fin:5:2,' pts');
- END.
- PROGRAM EJER50;
- USES CRT;
- VAR cap_ini,cap_fin:REAL;
- VAR num_year:INTEGER;
- const INTERES=0.05;
- BEGIN
- ClrScr;
- num_year:=0;
- WRITE('Capital inicial -----: '); READLN(cap_ini);
- cap_fin:=cap_ini;
- WHILE cap_fin < (cap_ini*2) DO
- BEGIN
- cap_fin:=cap_fin+(cap_fin*interes);
- num_year:=num_year + 1;
- END;
- WRITE('Capital inicial -----: '); WRITELN(cap_ini:5:2);
- WRITE('Capital final -------: '); WRITELN(cap_fin:5:2);
- WRITE('Capital duplicado en '); WRITE(num_year); WRITE
- (' años');
- END.
- Escribir un programa que calcule la suma de los números hasta un
- número dado (introducido por el usuario).
- PROGRAM EJER51;
- USES CRT;
- VAR x, y, num:INTEGER;
- BEGIN
- ClrScr;
- WRITE ('Este programa calcula la suma de los numeros
- hasta uno ');
- WRITE ('introducido por el usuario: ');
- READLN (num); WRITELN ('');
- x:=0;
- WHILE num >= 0 DO
- BEGIN
- WRITELN (x);
- x:= x + num;
- num:=num - 1;
- END;
- END.
- PROGRAM EJER51;
- USES CRT;
- VAR i,num:INTEGER;
- VAR suma:LONGINT;
- BEGIN
- ClrScr;
- WRITE('Introduzca un numero -> '); READLN(num);
- FOR i:=0 TO num DO
- suma:=suma+ i;
- WRITE('Suma '); WRITE('0-'); WRITE(num);
- WRITE('---->'); WRITE(suma);
- END.
- Escribir un programa que pida un número y si el que se introduce
- por el teclado es menor de 100 que vuelva a solicitarlo.
- PROGRAM EJER52;
- USES CRT;
- VAR num:INTEGER;
- BEGIN
- {Este programa no finaliza hasta que se escribe un numero mayor a 100}
- ClrScr;
- REPEAT
- WRITELN ('Introduzca un numero: ');
- READLN (num);
- UNTIL num > 100;
- END.
- PROGRAM EJER52;
- USES CRT;
- VAR num:INTEGER;
- BEGIN
- ClrScr;
- WRITE('Introduzca un numero -> '); READLN(num);
- WHILE num<=100 DO
- BEGIN
- WRITE('Introduzca un numero -> '); READLN(num);
- END;
- END.
- Escribir un programa en Pascal que calcule el factorial de un número.
- PROGRAM EJER53;
- USES CRT;
- VAR factorial, x, num, y:REAL;
- BEGIN
- {Este programa hace el factorial de un numero}
- ClrScr;
- WRITE ('Introduzca un numero para hacer su factorial: ');
- READLN (num); WRITELN ('');
- x:=1;
- WHILE num > 1 DO
- BEGIN
- x:=x * num;
- num:=num - 1;
- WRITELN (x);
- END;
- END.
- PROGRAM EJER53;
- USES CRT;
- VAR temp,num,fac:LONGINT;
- BEGIN
- ClrScr;
- fac:=1;
- temp:=num;
- WRITE('Introduzca un numero -> '); READLN(num);
- temp:=num;
- WHILE num>=1 DO
- BEGIN
- fac:=fac*num;
- num:=num-1;
- END;
- WRITE('El factorial de '); WRITE(temp); WRITE(' es '); WRITE(fac);
- END.
- Escribir un programa en Pascal que calcule la media de 5 números
- introducidos por el teclado.
- PROGRAM EJER54;
- USES CRT;
- VAR n1, n2, n3, n4, n5:REAL;
- VAR resultado:REAL;
- BEGIN
- ClrScr;
- WRITELN ('Introduzca 5 numeros para hacer su media');
- WRITELN ('');
- WRITE ('Nø 1: '); READLN (n1);
- WRITE ('Nø 2: '); READLN (n2);
- WRITE ('Nø 3: '); READLN (n3);
- WRITE ('Nø 4: '); READLN (n4);
- WRITE ('Nø 5: '); READLN (n5);
- WRITELN ('');
- resultado:= (n1 + n2 + n3 + n4 + n5) / 2;
- WRITE (resultado:5:2);
- END.
- PROGRAM EJER54;
- USES CRT;
- VAR i:INTEGER;
- VAR num,suma:REAL;
- BEGIN
- ClrScr;
- i:=0;
- REPEAT
- WRITE('Introduzca un numero: '); READLN(num);
- suma:=suma+num;
- i:=i+1;
- UNTIL i=5;
- WRITE('La media es: '); WRITELN(suma/i:5:2);
- END.
- Escribir un programa en Pascal que calcule el salario neto semanal
- de un trabajador en función del número de horas trabajadas
- y la tasa de impuestos de acuerdo a las siguientes hipótesis.
- · Las primeras 35 horas se pagan a tarifa normal
- · Las horas que pasen de 35 se pagan 1.5 veces la tarifa normal
- · Las tasas de impuestos son:
- a: Los primeros 50 dólares son libres de impuestos
- b: Los siguientes 40 dólares tienen un 25% de impuestos
- c: Los restantes de 45% de impuestos
- PROGRAM EJER55;
- USES CRT;
- VAR sns:REAL; {salario neto semanal}
- VAR h_trabajadas, h_extra:REAL;
- VAR precio_h, precio_h_extra:REAL;
- VAR total:REAL;
- VAR impuestos0,impuestos25,impuestos45:REAL;
- {Impuestos con cada % correspondiente}
- BEGIN
- ClrScr;
- WRITELN ('INTRODUZCA LOS DATOS PARA CALCULAR EL SALARIO
- NETO SEMANAL');
- WRITELN ('');
- WRITE ('Las horas trabajadas semanales son 35, las demas
- debe ');
- WRITELN ('considerarlas como horas extra. Escriba en
- dolares.');
- WRITELN ('');
- WRITE ('Horas trabajadas: '); READLN (h_trabajadas);
- WRITE ('Horas extra: '); READLN (h_extra);
- WRITE ('Precio por cada hora: '); READLN (precio_h);
- WRITELN ('');
- precio_h_extra:=precio_h * 1.5;
- sns:=(h_trabajadas * precio_h) + (h_extra * precio_h_extra);
- impuestos0:=0;
- impuestos25:=sns - ((sns - 50) * 0.25);
- impuestos45:=sns - ((sns - 90) * 0.45);
- IF sns <= 50 THEN
- WRITELN ('El salario neto semanal es: ',sns:5:2)
- ELSE IF sns < 90 THEN
- WRITELN ('El salario neto semanal es: ',impuestos25:5:2)
- ELSE IF sns > 90 THEN
- WRITELN ('El salario neto semanal es: ',impuestos45:5:2);
- END.
- PROGRAM EJER55;
- USES CRT;
- VAR hor_tra,sal_bru,tas_imp,sal_net:real;
- CONST tar_hor=2;
- CONST tasa_imp1=0.25;
- CONST tasa_imp2=0.45;
- BEGIN
- ClrScr;
- WRITE('Numero de horas trabajadas: '); READLN(hor_tra);
- {Calculo del salario bruto}
- IF hor_tra <= 35 THEN
- sal_bru:=hor_tra*tar_hor
- ELSE
- sal_bru:=(35*tar_hor)+((hor_tra-35)*(1.5*tar_hor));
- {Calculo de impuestos}
- IF sal_bru <= 50 THEN
- tas_imp:=0
- ELSE IF sal_bru <= 90 THEN
- tas_imp:=(sal_bru-50)*tasa_imp1
- ELSE
- tas_imp:=(40*tasa_imp1)+((sal_bru-90)*tasa_imp2);
- {Calculo salario neto}
- sal_net:=sal_bru-tas_imp;
- WRITE('Horas trabajadas -------> '); WRITELN(hor_tra:5:2);
- WRITE('Salario bruto-----------> '); WRITELN(sal_bru:5:2);
- WRITE('Impuestos---------------> '); WRITELN(tas_imp:5:2);
- WRITE('Salario neto------------> '); WRITELN(sal_net:5:2);
- END.
- Escribir un programa en Pascal que detecte si un número es primo o no.
- Un número es primo si sólo es divisible por sí mismo y por la unidad.
- Ejemplo: 2,3,4,7,11,17,19 son números primos
- 9 no es número primo, es divisible por 1, 9, 3
- El algoritmo para resolver este problema pasa por dividir
- sucesivamente el número estudiado por 2,3,4, etc., hasta
- el propio número.
- {Se puede hacer únicamente dividiento por 2,3 y 5. El 4
- tambien se hace en el ejercicio, no se quita para no liar el
- ejercicio, ya que son ejercicios para aprender, ya habra
- tiempo de perfeccionar nuestro codigo}
- PROGRAM EJER56;
- USES CRT;
- VAR num, x:INTEGER;
- VAR primo:INTEGER;
- BEGIN
- ClrScr;
- WRITELN ('Introduzca un numero para comprobar si es primo.');
- WRITELN ('');
- x:=1;
- WRITE ('Introduzca el numero: '); READLN (num);
- WRITELN ('');
- REPEAT
- x:= x + 1;
- primo:= num mod x;
- WRITELN (primo);
- UNTIL x = 5; WRITELN ('');
- WRITELN ('Si ninguno de los resultados es 0, el numero es primo.');
- WRITELN ('Si alguno es 0, el numero no es primo.');
- END.
- PROGRAM EJER56;
- USES CRT;
- VAR i,num,flag:INTEGER;
- BEGIN
- ClrScr;
- flag:=0;
- WRITE('Introduzca un numero -> '); READLN(num);
- FOR i:=2 TO (num-1) DO
- BEGIN
- IF (num mod i)=0 THEN
- flag:=1;
- END;
- IF flag=1 THEN
- BEGIN
- WRITE(num); WRITE(' no es un numero primo');
- END
- ELSE
- BEGIN
- WRITE(num); WRITE(' es un numero primo');
- END;
- END.
- Escribir un programa en Pascal que calcule la depreciación de un
- objeto según el métodode la línea recta. Calcular el número
- de años que tarda en hacerse 0.
- En este método el valor original del objeto se divide por su vida
- (número de años).
- El cociente resultanteserá la cantidad en la que el objeto se deprecia
- anualmente. Por ejemplo, si un objeto se deprecia 8000 dólares en diez
- años, entonces la depreciaciónanual será 8000/10=800 dólares.
- Por tanto, el valor del objeto habrá disminuido en 800 dólares cada
- año.
- Nótese que la depreciación anual es la misma cada año cuando se
- utiliza este método.
- PROGRAM EJER57;
- USES CRT;
- VAR annos, valor:REAL;
- VAR depreciacionanno:REAL;
- VAR x:INTEGER;
- BEGIN
- ClrScr;
- WRITELN ('Escriba los datos para conocer la depreciacion anual');
- WRITELN ('');
- WRITE ('Valor original: '); READLN (valor);
- WRITE ('Numero de años: '); READLN (annos);
- WRITELN ('');
- depreciacionanno:= valor / annos;
- x:=0;
- WHILE valor > 0.1 DO
- BEGIN
- valor:=valor - depreciacionanno;
- x:= x + 1;
- WRITELN ('AÑO ',x:2,': ',valor:8:0,' pts.');
- END;
- END.
- PROGRAM EJER57;
- USES CRT;
- VAR val_ini,val_dep,tas_dep:REAL;
- VAR i,anios:INTEGER;
- BEGIN
- ClrScr;
- WRITE('Valor inicial -----> '); READLN(val_ini);
- WRITE('Numero de años ----> '); READLN(anios);
- tas_dep:=val_ini/anios;;
- val_dep:=val_ini-tas_dep;
- FOR I:=1 TO anios DO
- BEGIN
- WRITE('A¤o ');
- WRITE(i:3);
- WRITE(' ------ ');
- WRITELN(val_dep:10:2);
- val_dep:=val_dep-tas_dep;
- END;
- END.
- Escribir un programa en Pascal que calcule la depreciación de
- un objeto según el método del balance doblemente declinante.
- En este método, el valor del objeto disminuye cada año en un
- porcentaje constante.
- Por tanto, la verdadera cantidad depreciada, en dólares, variara de
- un año al siguiente.
- Para obtener el factor de depreciación, dividimos por dos la vida del
- objeto. Este factor se multiplica por el valor del objeto al comienzo
- de cada año (y no el valor del original del objeto) para obtener la
- depreciación anual. Supongamos, por ejemplo que deseamos
- depreciar un objeto de 8000 dólares por diez años; el factor
- de depreciación será 2/10=0.2.Por tanto, la depreciación
- el primer año será 0,2 X 8000 = 1600 dólares, la
- depreciación del segundo año será 0,2 X 6400=1280
- dólares; la depreciación del tercer año será 0,2
- X 5120 = 1024 dólares, y así sucesivamente.
- PROGRAM EJER58;
- USES CRT;
- VAR fdd:REAL; {Factor de depreciacion}
- VAR vidaobj:REAL; {Vida del objeto = años}
- VAR depreciacionanno:REAL;
- VAR valorobj:REAL; {Valor del objeto}
- VAR x:INTEGER;
- BEGIN
- ClrScr;
- WRITE ('PARA CALCULAR LA DEPRECIACION POR EL METODO DEL
- BALANCE ');
- WRITELN ('DOBLEMENTE DECLINANTE ESCRIBA LOS DATOS:');
- WRITELN ('');
- WRITE ('VALOR DEL OBJETO: '); READLN (valorobj);
- WRITE ('AñOS: '); READLN (vidaobj);
- WRITELN ('');
- fdd:= 2 / vidaobj;
- x:=1;
- REPEAT
- depreciacionanno:= fdd * valorobj;
- valorobj:=valorobj - depreciacionanno;
- WRITELN ('AñO ',x:2,': ',valorobj:8:2,' pts.');
- x:= x + 1;
- UNTIL x > vidaobj;
- WRITELN ('');
- x:= x - 1;
- WRITELN ('EL VALOR A LOS ',x,' AñOS SERA DE: ',
- valorobj:6:2,' pts.');
- END.
- PROGRAM EJER58;
- USES CRT;
- VAR val_ini,val_dep,coe_dep,tas_dep:REAL;
- VAR i,anios:INTEGER;
- BEGIN
- ClrScr;
- WRITE('Valor inicial ----->'); READLN(val_ini);
- WRITE('Numero de años ----> '); READLN(anios);
- coe_dep:=2/anios;
- tas_dep:=val_ini*coe_dep;
- val_dep:=val_ini-tas_dep;
- FOR i:=1 TO anios DO
- BEGIN
- WRITE('A¤o ');
- WRITE(i:3);
- WRITE(' ------ ');
- WRITELN(val_dep:10:2);
- val_dep:=val_dep-(val_dep*coe_dep);
- END;
- END.
- Escribir un programa que calcule las raíces de la
- ecuación (ax2 + bx + c = 0) teniendo en cuenta los siguientes casos:
- a. Si a es igual a 0 y b es igual a 0, imprimiremos un mensaje diciendo
- que la ecuación es degenerada.
- b. Si a es igual a 0 y b no es igual a 0, existe una raíz
- única con valor –c/b.
- c. En los demás casos, utilizaremos la fórmula siguiente:
- xi = (-b ± raizcuadrada(b2 – 4ac))/(2a)
- La expresión d = b2 – 4ac se denomina discriminante.
- · Si d es mayor o igual que 0 entonces hay dos raíces reales
- · Si d es menor que 0 entonces hay dos raíces complejas de la
- forma: x+yi,x-yi.
- Siendo x el valor –b/2a e y el valor absoluto de
- raizcuadrada(b2-4ac)/(2a)
- PROGRAM EJER59;
- USES CRT;
- VAR a, b ,c:REAL;
- VAR sp, sn:REAL; {Solucion positiva y negativa}
- VAR d:REAL; {Discriminante}
- BEGIN
- ClrScr;
- WRITELN ('Introduzca los valores para calcular la ecuacion de 2º
- grado');
- WRITELN ('');
- WRITE ('a: '); READLN (a);
- WRITE ('b: '); READLN (b);
- WRITE ('c: '); READLN (c);
- WRITELN ('');
- IF (a=0) and (b=0) THEN
- WRITELN ('La ecuacion es degenerada.')
- ELSE IF (a=0) and (b<>0) THEN
- WRITELN ('Existe una raiz con valor -c/b: ',-c/b:5:2)
- ELSE
- BEGIN
- sp:=(-b + sqrt(sqr(b) - (4 * a * c))) / 2 * a;
- sn:=(-b - sqrt(sqr(b) - (4 * a * c))) / 2 * a;
- d:=sqr(b) - (4 * a * c);
- WRITE ('La solucion positiva es: '); WRITELN (sp:5:2);
- WRITE ('La solucion negativa es: '); WRITELN (sn:5:2);
- END;
- END.
- PROGRAM EJER59;
- USES CRT;
- VAR a,b,c,d,r1,r2,x,y:REAL;
- BEGIN
- ClrScr;
- WRITE('Coeficiente a -> '); READLN(a);
- WRITE('Coeficiente b -> '); READLN(b);
- WRITE('Coeficiente c -> '); READLN(c);
- IF (a=0) AND (b=0) THEN
- BEGIN
- WRITE('La ecuacion es degenerada');
- EXIT;
- END
- ELSE IF (a=0) AND (b<>0) THEN
- BEGIN
- r1:=c/b;
- WRITE('r1 = '); WRITELN(r1:5:2);
- EXIT;
- END
- ELSE
- BEGIN
- d:=sqr(b)-4*a*c;
- IF (d>=0) THEN
- BEGIN
- r1:=(-b+sqrt(sqr(b)-4*a*c))/(2*a);
- r2:=(-b-sqrt(sqr(b)-4*a*c))/(2*a);
- WRITE('r1 = '); WRITELN(r1:5:2);
- WRITE('r2 = '); WRITELN(r2:5:2);
- END
- ELSE
- BEGIN
- x:=-b/(2*a);
- y:=-b-sqrt(abs(sqr(b)-4*a*c));
- WRITE('r1 = '); WRITE(x:5:2); WRITE(' + '); WRITE(y:5:2);
- WRITELN('i');
- WRITE('r2 = '); WRITE(x:5:2); WRITE(' - '); WRITE(y:5:2);
- WRITELN('i');
- END;
- END;
- END.
- Escribir un programa en Pascal que sume dos cadenas. (los datos vienen en
- el cuerpo del ejercicio).
- PROGRAM EJER60;
- USES CRT;
- VAR tit_pel1:STRING;
- VAR tit_pel2:STRING;
- VAR tit_pel3:STRING;
- BEGIN
- tit_pel1:='Alien';
- tit_pel2:='Blade ';
- tit_pel3:='Runner';
- ClrScr;
- WRITELN ('TITULOS DE PELICULAS');
- WRITELN (tit_pel1);
- WRITELN (tit_pel2 + tit_pel3);
- END.
- PROGRAM EJER60;
- USES CRT;
- VAR tit_pel1:STRING;
- VAR tit_pel2:STRING;
- VAR tit_pel3:STRING;
- BEGIN
- tit_pel1:='Alien';
- tit_pel2:='Blade';
- tit_pel3:='Runner';
- ClrScr;
- WRITELN('TITULOS DE PELICULAS');
- WRITELN(tit_pel1);
- WRITELN(tit_pel2 + tit_pel3);
- END.
- A partir de las cadenas de caracteres 70809207 y Q, construir y
- visualizar en la pantalla la cadena 70809207-Q.
- PROGRAM EJER61;
- USES CRT;
- VAR numero:LONGINT;
- VAR letra:STRING;
- BEGIN
- ClrScr;
- numero:=56789312;
- letra:='F';
- WRITE ('EL NUMERO DEL DNI ES: ');
- WRITE (numero,'-',+ letra);
- END.
- PROGRAM EJER61;
- USES CRT;
- VAR cad1,cad2:STRING;
- BEGIN
- cad1:='56789312';
- cad2:='X';
- ClrScr;
- WRITE('NIF:' + cad1 + '-' + cad2);
- END.
- Transformar la cadena "Esto es una prueba", en la cadena "Esto es
- prueba".
- Utilizar la función DELETE(S,P,N) que elimina N caracteres de la
- cadena S, a partir de la posición P.
- PROGRAM EJER62;
- USES CRT;
- VAR frase:STRING;
- BEGIN
- ClrScr;
- {Transforma la cadena "Esto es una prueba" en "Esto es prueba"}
- WRITELN ('Este programa suprime un numero determinado de
- letras');
- WRITELN ('');
- frase:='Esto es una prueba';
- WRITELN (frase);
- DELETE (frase,9,4);
- WRITELN (frase);
- END.
- PROGRAM EJER62;
- USES CRT;
- VAR cad1,cad2:STRING;
- BEGIN
- cad1:='Esto es una prueba';
- ClrScr;
- WRITELN(cad1);
- DELETE(cad1,9,4);
- WRITELN(cad1);
- END.
- Transformar la cadena Curso de Pascal en la cadena Curso de
- Programación en Pascal.
- Utilizar la función INSERT(SO,SD,P) que inserta la cadena SO en
- la cadena SD a partir de la posición P.
- PROGRAM EJER63;
- USES CRT;
- VAR frase1:STRING;
- VAR frase2:STRING;
- BEGIN
- ClrScr;
- {Este programa inserta la frase2 en la frase1}
- WRITELN ('Se introducira la frase2 en la frase1');
- WRITELN ('');
- frase1:='Curso de Pascal';
- frase2:='Programacion en ';
- WRITE ('Frase1: '); WRITELN (frase1);
- WRITE ('Frase2: '); WRITELN (frase2);
- WRITELN ('');
- insert (frase2,frase1,10);
- WRITELN (frase1);
- END.
- PROGRAM EJER63;
- USES CRT;
- VAR cad1,cad2:STRING;
- BEGIN
- cad1:='Curso de Pascal';
- cad2:='Programacion en ';
- ClrScr;
- WRITELN(cad1);
- INSERT(cad2,cad1,10);
- WRITELN(cad1);
- END.
- Transformar los valores 91 y 8631217 almacenados en dos variables
- de tipo REAL en la cadena 91-8631217. Previamente transformar los dos
- valores numéricos a variables tipo cadena con la función STR(X,S)
- que almacena en S, como una cadena alfanumérica, el valor X.
- PROGRAM EJER64;
- USES CRT;
- VAR valor1, valor2:REAL;
- VAR valor_1, valor_2:STRING;
- BEGIN
- ClrScr;
- valor1:=91;
- valor2:=5550908;
- STR(valor1:5:2, valor_1);
- STR(valor2:10:2, valor_2);
- WRITELN (valor_1,' - ', + valor_2);
- END.
- PROGRAM EJER64;
- USES CRT;
- VAR val1,val2:REAL;
- VAR cad1,cad2:STRING;
- BEGIN
- val1:=91;
- val2:=5550908;
- STR(val1,cad1);
- STR(val2,cad2);
- ClrScr;
- WRITELN(cad1 + '-' + cad2);
- END.
- Concatenar las cadenas El, hombre, invisible en una sola el hombre
- invisible.
- Utilizar la función CONCAT (S1,S2,S3...) que retorna la concatenación
- de todas las cadenas pasadas como parámetros.
- PROGRAM EJER65;
- USES CRT;
- VAR S1, S2, S3:STRING;
- VAR cadena_final:STRING;
- BEGIN
- ClrScr;
- S1:='El';
- S2:=' hombre';
- S3:=' invisible';
- cadena_final:=CONCAT(S1,S2,S3);
- WRITE (cadena_final);
- END.
- PROGRAM EJER65;
- USES CRT;
- VAR cad1,cad2,cad3,cad4,esp:STRING;
- BEGIN
- cad1:='el';
- cad2:='hombre';
- cad3:='invisible';
- esp:=' ';
- cad4:=CONCAT(cad1,esp,cad2,esp,cad3);
- ClrScr;
- WRITELN(cad1);
- WRITELN(cad2);
- WRITELN(cad3);
- WRITELN(cad4);
- END.
- Extraer la cadena SOFIA de la cadena FILOSOIA. Utilizar la función
- COPY(S,P,N), que devuelve una subcadena de S, de N caracteres, el
- primero de los cuales ocupa la posición P de S.
- PROGRAM EJER66;
- USES CRT;
- VAR S1,S2:STRING;
- BEGIN
- ClrScr;
- S1:='FILOSOFIA';
- S1:=COPY (S1,5,5); {'SOFIA'}
- WRITE (S1);
- END.
- PROGRAM EJER66;
- USES CRT;
- VAR cad1,cad2:STRING;
- BEGIN
- cad1:='FILOSOFIA';
- cad2:=COPY(cad1,5,5);
- ClrScr;
- WRITELN(cad1);
- WRITELN(cad2);
- END.
- Obtener la longitud de la cadena esternocleidomastoideo, utilizando
- la función LENGTH(S), que devuelve la longitud de la cadena S.
- PROGRAM EJER67;
- USES CRT;
- VAR cadena:STRING;
- BEGIN
- ClrScr;
- WRITELN ('Introduzca una cadena para saber su longitud:');
- WRITELN ('');
- READLN (cadena);
- WRITELN (''); WRITE ('La longitud de la cadena es de: ');
- WRITE (LENGTH(cadena),' caracteres');
- END.
- Obtener la primera posición en la que comienza la subcadena fragi
- en la cadena supercalifragilisticoexpialidoso. Utilizar la función
- POS(SB,S) que devuelve la posición de la primera aparición de
- la subcadena SB en la cadena S.
- PROGRAM EJER68;
- USES CRT;
- VAR cadena:STRING;
- VAR subcadena:STRING;
- VAR posi:INTEGER;
- BEGIN
- ClrScr;
- cadena:='supercalifragilisticoexpialidoso';
- subcadena:='fragi';
- posi:=POS(subcadena,cadena);
- WRITE (posi);
- END.
- PROGRAM EJER68;
- USES CRT;
- VAR cad1,cad2:STRING;
- VAR posi:INTEGER;
- BEGIN
- cad1:='supercalifragilisticoexpialidoso';
- cad2:='fragi';
- posi:=POS(cad2,cad1);
- ClrScr;
- WRITE('Posicion: '); WRITELN(posi);
- END.
- Transformar la cadena Lenguaje Pascal en la cadena LENGUAJE PASCAL.
- Utilizar la función UPCASE(C) que transforma un carácter C a
- mayúscula.
- PROGRAM EJER69;
- USES CRT;
- VAR cadena:STRING;
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- cadena:='Lenguaje Pascal';
- i:=0;
- FOR i:=1 TO LENGTH(cadena) DO
- cadena[i]:=UPCASE(cadena[i]);
- WRITE (cadena);
- i:= i + 1;
- END.
- PROGRAM EJER69;
- USES CRT;
- VAR i:INTEGER;
- VAR cad1:STRING;
- BEGIN
- i:=0;
- cad1:='Lenguaje Pascal';
- ClrScr;
- WRITELN(cad1);
- WHILE i <= LENGTH(cad1) DO
- BEGIN
- cad1[i]:=UPCASE(cad1[i]);
- i:=i+1;
- END;
- WRITELN(cad1);
- END.
- Transformar la cadena "VACA" en la cadena "vaca".
- PROGRAM EJER70;
- USES CRT;
- VAR cadena:STRING;
- VAR i, v_ascii:INTEGER;
- BEGIN
- ClrScr;
- cadena:='VACA';
- FOR i:=1 TO LENGTH (cadena) DO
- BEGIN
- v_ascii:=ORD (cadena[i]);
- cadena[i]:=(CHR(v_ascii+32));
- END;
- WRITE (cadena);
- END.
- PROGRAM EJER70;
- USES CRT;
- VAR i,val_asc:INTEGER;
- VAR cad1:STRING;
- BEGIN
- i:=0;
- cad1:='VACA';
- ClrScr;
- WRITELN(cad1);
- WHILE i <= LENGTH(cad1) DO
- BEGIN
- val_asc:=ORD(cad1[i]);
- cad1[i]:=(CHR(val_asc+32));
- i:=i+1;
- END;
- WRITELN(cad1);
- END.
- Escribir un programa en Pascal que lea 4 datos, calcule y visualice
- en pantalla su producto, suma y media aritmética.
- PROGRAM EJER71;
- USES CRT;
- VAR a,b,c,d:REAL;
- VAR producto,suma,media:REAL;
- BEGIN
- ClrScr;
- WRITELN('Introduzca 4 datos para calcular las soluciones:');
- WRITELN ('');
- WRITE ('a: '); READLN (a);
- WRITE ('b: '); READLN (b);
- WRITE ('c: '); READLN (c);
- WRITE ('d: '); READLN (d);
- WRITELN ('');
- producto:= a * b * c * d;
- suma:= a + b + c + d;
- media:= suma / 2;
- WRITELN ('El valor del producto de los numeros es: ',
- producto:10:2);
- WRITELN ('El valor de la suma de los numeros es: ',
- suma:10:2);
- WRITELN ('El valor de la media de los numero ses: ',
- media:10:2);
- END.
- PROGRAM EJER71;
- USES CRT;
- VAR i:INTEGER;
- VAR dato,producto,suma,media:REAL;
- BEGIN
- ClrScr;
- producto:=1;
- suma:=0;
- FOR i:=1 TO 4 DO
- BEGIN
- WRITE('Dato '); WRITE(i); WRITE('-> ');
- READLN(dato);
- producto:=producto*dato;
- suma:=suma+dato;
- END;
- media:=suma/i;
- WRITE('Producto: '); WRITELN(producto:5:2);
- WRITE('Suma: '); WRITELN(suma:5:2);
- WRITE('Media: '); WRITELN(media:5:2);
- END.
- Escribir un programa en Pascal que lea un peso en libras y a
- continuación visualice su equivalente en kilos y en gramos.
- 1 libra = 0.45 Kg
- PROGRAM EJER72;
- USES CRT;
- VAR libras,kilos,gramos:REAL;
- BEGIN
- ClrScr;
- WRITE ('Introduzca el numero de libras para pasarlo a kilos y
- gramos: ');
- READLN (libras);
- WRITELN ('');
- kilos:= libras * 0.45;
- gramos:= kilos * 1000;
- WRITELN ('Son ',kilos:5:2,' kilos y ',gramos:5:2,' gramos.');
- END.
- PROGRAM EJER72;
- USES CRT;
- VAR libras:REAL;
- BEGIN
- ClrScr;
- WRITE('Libras -> '); READLN(libras);
- WRITE('Kilogramos -> '); WRITELN(libras*0.45:7:2);
- WRITE('Gramos -> '); WRITELN((libras*0.45)/1000:7:4);
- END.
- Escribir un programa en Pascal que calcule y escriba el cuadrado de
- 821.
- PROGRAM EJER73;
- USES CRT;
- VAR numero, cuadrado:REAL;
- BEGIN
- ClrScr;
- WRITE ('Escriba un numero para hacer su cuadrado: ');
- READLN (numero);
- WRITELN ('');
- cuadrado:= sqr(numero);
- WRITELN ('El cuadrado es: ',cuadrado:5:2)
- END.
- PROGRAM EJER73;
- USES CRT;
- VAR numero:LONGINT;
- BEGIN
- ClrScr;
- numero:=821;
- WRITE('Cuadrado de 821: '); WRITE(sqr(numero));
- END.
- Escribir un programa en Pascal que escriba los números comprendidos
- entre 1 y 1000.
- El programa escribirá en la pantalla los números en grupos de20,
- solicitando al usuario si quiere o no continuar visualizando el
- siguiente grupo de números.
- PROGRAM EJER74;
- USES CRT;
- VAR num, flag, x:INTEGER;
- VAR resp:CHAR;
- BEGIN
- ClrScr;
- num:=0;
- x:=1;
- FOR num:=1 TO 100 DO
- BEGIN
- IF (num mod 20)= 0 THEN
- flag := x;
- WRITELN (num);
- IF flag = x THEN
- BEGIN
- WRITE('DESEA CONTINUAR: S/N --> '); READLN(resp);
- IF UPCASE (resp)<>'S' THEN
- BEGIN
- WRITE ('Este programa ha finalizado'); EXIT
- END;
- END;
- x:= x + 20;
- END;
- END.
- PROGRAM EJER74;
- USES CRT;
- VAR fila,i:INTEGER;
- VAR resp:CHAR;
- BEGIN
- fila:=1;
- ClrScr;
- FOR i:=1 TO 1000 DO
- BEGIN
- WRITELN(i);
- fila:=fila+1;
- IF fila = 21 THEN
- BEGIN
- WRITE('Desea continuar (S/N)?');
- READLN(resp);
- IF UPCASE(resp)='S' THEN
- BEGIN
- ClrScr;
- fila:=0;
- CONTINUE;
- END
- ELSE
- EXIT;
- END;
- END;
- END.
- Escribir un programa en Pascal que calcule, independientemente,
- la suma y la media de los números pares e impares comprendidos entre
- 1 y 200.
- PROGRAM EJER75;
- USES CRT;
- VAR media_p, media_i:REAL;
- VAR suma_p, suma_i:LONGINT;
- VAR i, total_p, total_i:LONGINT;
- BEGIN
- ClrScr;
- FOR i:=1 TO 200 DO
- BEGIN
- IF (i mod 2)=0 THEN
- BEGIN
- suma_p:=suma_p + i;
- total_p:=total_p + 1;
- END
- ELSE
- BEGIN
- suma_i:=suma_i + i;
- total_i:=total_i + 1;
- END;
- END;
- media_i:= suma_i / total_i;
- media_p:= suma_p / total_p;
- WRITELN ('La suma de los impares es: ',suma_i);
- WRITELN ('La suma de los pares es : ',suma_p);
- WRITELN ('La media de los impares es: ',media_i:5:2);
- WRITELN ('La media de los pares es: ',media_p:5:2);
- END.
- PROGRAM EJER75;
- USES CRT;
- VAR i,conpar,conimp,sumapar,sumaimp:INTEGER;
- BEGIN
- ClrScr;
- sumapar:=0; sumaimp:=0; conpar:=0; conimp:=0;
- FOR i:=1 TO 200 DO
- BEGIN
- IF (i mod 2) = 0 THEN
- BEGIN
- sumapar:=sumapar+i;
- conpar:=conpar+1;
- END
- ELSE
- BEGIN
- sumaimp:=sumaimp+i;
- conimp:=conimp+1;
- END;
- END;
- WRITE('Suma pares: '); WRITELN(sumapar:7);
- WRITE('Media pares: '); WRITELN(sumapar div conpar:7);
- WRITE('Suma impares: '); WRITELN(sumaimp:7);
- WRITE('Media impares: '); WRITELN(sumaimp div conimp:7);
- END.
- Escribir un programa en Pascal que calcule el importe de una factura
- sabiendo que el IVA a aplicar es del 12% y que si el importe bruto de
- la factura es superior a 50.000 pts se debe realizar un descuento del 5%.
- PROGRAM EJER76;
- USES CRT;
- VAR i_bruto, i_neto, importe:REAL;
- CONST IVA=0.12;
- BEGIN
- ClrScr;
- WRITE ('Escriba el importe bruto: '); READLN (i_bruto);
- WRITELN ('');
- i_bruto:= i_bruto + (IVA * i_bruto);
- IF i_bruto > 50000 THEN
- BEGIN
- i_neto:= i_bruto - (i_bruto * 0.05);
- WRITE ('El importe neto con descuento del 5% es de: ',
- i_neto:5:2,' pts')
- END
- ELSE
- BEGIN
- i_neto:= i_bruto;
- WRITE ('El importe bruto sin descuento es de: ',i_neto:5:2,
- ' pts.');
- END;
- END.
- PROGRAM EJER76;
- USES CRT;
- VAR imp_bruto:REAL;
- BEGIN
- ClrScr;
- WRITE('Importe bruto -> '); READLN(imp_bruto);
- IF imp_bruto <= 50000 THEN
- BEGIN
- WRITE('Importe neto: ');
- WRITELN(imp_bruto+(imp_bruto*0.12):9:2);
- END
- ELSE
- BEGIN
- WRITE('Importe neto -> ');
- imp_bruto:=imp_bruto-(imp_bruto*0.05);
- WRITELN(imp_bruto+(imp_bruto*0.12):9:2);
- END;
- END.
- Escribir un programa en Pascal que calcule la suma de los cuadrados
- de los 100 primeros números enteros.
- PROGRAM EJER77;
- USES CRT;
- VAR x:INTEGER;
- VAR suma:REAL;
- BEGIN
- ClrScr;
- FOR x:=1 TO 100 DO
- BEGIN
- suma:= suma + (sqr(x));
- END;
- WRITE (suma);
- END.
- PROGRAM EJER77;
- USES CRT;
- VAR i:INTEGER;
- VAR sumacuad:LONGINT;
- BEGIN
- ClrScr;
- FOR i:=1 TO 100 DO
- sumacuad:=sumacuad+sqr(i);
- WRITE('Suma de Cuadrados (1-100) ---> '); WRITE(sumacuad);
- END.
- Escribir un programa en Pascal que visualice una tabla de conversión de
- kilómetros a millas marinas y millas terrestres:
- 1 milla marina = 1852 metros
- 1 milla terrestre = 1609 metros
- PROGRAM EJER78;
- USES CRT;
- VAR m, m_mar, m_terr:REAL; {metros, millas marinas y
- terrestres}
- BEGIN
- ClrScr;
- WRITE ('Introduzca el numero de metros: '); READLN (m);
- WRITELN ('');
- m_mar:=m/1852;
- m_terr:=m/1609;
- WRITE (m:5:2,' metros son: ',m_mar:5:2,' millas marinas y ');
- WRITE (m_terr:5:2,' millas terrestres');
- END.
- PROGRAM EJER78;
- USES CRT;
- VAR milla_marina:REAL;
- VAR milla_terrestre:REAL;
- VAR kilometros:INTEGER;
- BEGIN
- ClrScr;
- WRITELN('Kilometros' + ' ---- ' + 'Millas M.' + ' ---- '
- + 'Millas T.');
- FOR kilometros:=1 TO 10 DO
- BEGIN
- WRITE(kilometros:6);
- WRITE(kilometros/1.852:15:2);
- WRITELN(kilometros/1.609:15:2);
- END;
- END.
- Escribir un programa en Pascal que lea 10 datos desde el teclado y sume
- sólo aquellos que sean negativos.
- PROGRAM EJER79;
- USES CRT;
- VAR y, suma:REAL;
- VAR x:INTEGER;
- BEGIN
- ClrScr;
- WRITELN ('Debe introducir 10 datos, se sumaran solo los
- negativos:');
- WRITELN ('');
- FOR x:=1 TO 10 DO
- BEGIN
- WRITE('Introduzca el dato ',x:2,': '); READLN (y);
- IF y < 0 THEN suma := suma + y;
- END;
- WRITELN ('');
- WRITE ('El resultado de la suma de los numeros negativos es: ');
- WRITELN (suma:5:2);
- END.
- PROGRAM EJER79;
- USES CRT;
- VAR i:INTEGER;
- VAR num,sumaneg:REAL;
- BEGIN
- ClrScr;
- sumaneg:=0;
- FOR i:=1 TO 10 DO
- BEGIN
- WRITE('Numero '); WRITE(i); WRITE(' -> '); READLN(num);
- IF num < 0 THEN
- sumaneg:=sumaneg+num;
- END;
- WRITE('Suma de negativos: '); WRITE(sumaneg);
- END.
- Escribir un programa en Pascal que calcule el sueldo semanal de un
- trabajador a partir del número de horas trabajadas por día y
- las siguientes tarifas:
- 600 pts/hora Turno de mañana
- 800 pts/hora Turno de noche
- 1000 pts/hora Turno de días festivos
- PROGRAM EJER80;
- USES CRT;
- VAR t_mannana, t_noche, t_festivos:INTEGER;
- VAR total:LONGINT;
- BEGIN
- ClrScr;
- WRITE ('Introduzca las horas trabajadas por dia, en cada
- turno, ');
- WRITELN (' para calcular el sueldo semanal.'); WRITELN ('');
- WRITE ('Horas del turno de ma¤ana: '); READLN
- (t_mannana);
- WRITE ('Horas del turno de noche: '); READLN
- (t_noche);
- WRITE ('Horas del turno de dias festivos: '); READLN
- (t_festivos);
- WRITELN ('');
- total:=(600 * t_mannana) + (800 * t_noche) + (1000 * t_festivos);
- WRITE ('El sueldo semanal es de: ',total);
- END.
- PROGRAM EJER80;
- USES CRT;
- VAR turno,resp:CHAR;
- VAR numhoras:REAL;
- BEGIN
- ClrScr;
- resp:='S';
- WRITE('Turno ? (M/N/F) ---> '); READLN(turno);
- WRITE('Numero de horas (dia) ---> '); READLN(numhoras);
- WHILE UPCASE(resp) = 'S' DO
- BEGIN
- IF UPCASE(turno) = 'M' THEN
- BEGIN
- WRITE('Salario neto: '); WRITELN(numhoras*5*600:7:2);
- END
- ELSE IF UPCASE(turno) = 'N' THEN
- BEGIN
- WRITE('Salario neto: '); WRITELN(numhoras*5*800:7:2);
- END
- ELSE IF UPCASE (turno) = 'F' THEN
- BEGIN
- WRITE('Salario neto: '); WRITELN(numhoras*5*1000:7:2);
- END
- ELSE
- WRITELN('Turno incorrecto');
- WRITE('¨Desea continuar (S/N)? ---> ');
- READLN(resp);
- IF UPCASE(resp) = 'S' THEN
- BEGIN
- ClrScr;
- WRITE('Turno ? (M/N/F) --->'); READLN(turno);
- WRITE('Numero de horas (dia) --->'); READLN(numhoras);
- END
- ELSE
- EXIT;
- END;
- END.
- Escribir un programa en Pascal que rellene un array con los números
- enteros comprendidos entre 4 y 14.
- PROGRAM EJER81;
- USES CRT;
- VAR arr_num:ARRAY [4..14] of INTEGER;
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=4 TO 14 DO
- arr_num[i]:=i;
- FOR i:=4 TO 14 DO
- BEGIN
- WRITELN('Numero: ',arr_num[i]);
- END;
- END.
- PROGRAM EJER81;
- USES CRT;
- VAR arr_num:ARRAY[1..11] of INTEGER;
- VAR i,num:INTEGER;
- BEGIN
- ClrScr;
- num:=4;
- FOR i:=1 TO 11 DO
- BEGIN
- arr_num[i]:=num;
- num:=num+1;
- END;
- FOR i:=1 TO 11 DO
- BEGIN
- WRITE('Posici¢n ',i:2, ': '); WRITELN(arr_num[i]:5);
- END;
- END.
- Escribir un programa en Pascal que rellene un array con los números
- pares comprendidos entre 1 y 10.
- PROGRAM EJER82;
- USES CRT;
- VAR arr_num:ARRAY [1..10] of INTEGER;
- VAR i, b:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- WHILE i <= 10 DO
- BEGIN
- arr_num[i]:=i;
- IF (i mod 2)=0 THEN
- BEGIN
- WRITELN(arr_num[i]);
- END;
- i:= i + 1;
- END;
- END.
- PROGRAM EJER82;
- USES CRT;
- VAR arr_num:ARRAY[1..10] of INTEGER;
- VAR i,num:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- num:=1;
- WHILE num<=10 DO
- BEGIN
- IF num mod 2 = 0 THEN
- BEGIN
- arr_num[i]:=num;
- i:=i+1;
- END;
- num:=num+1;
- END;
- arr_num[i]:=3;
- i:=1;
- WHILE arr_num[i] <> 3 DO
- BEGIN
- WRITE('Posicion ',i:2,' : '); WRITELN(arr_num[i]:5);
- i:=i+1;
- END;
- END.
- Escribir un programa en Pascal que rellene un array con los números
- comprendidos entre 25 y 35 divididos por 3.
- PROGRAM EJER83;
- USES CRT;
- VAR arr_num:ARRAY [1..11] of REAL;
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=25 TO 35 DO
- arr_num[i]:=i;
- FOR i:=25 TO 35 DO
- WRITELN(arr_num[i] / 3:5:2);
- END.
- PROGRAM EJER83;
- USES CRT;
- VAR arr_num:ARRAY[1..11] of REAL;
- VAR i,num:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- num:=025;
- FOR i:=1 TO 10 DO
- BEGIN
- arr_num[i]:=num/3;
- num:=num+1;
- END;
- i:=1;
- WHILE i <= 10 DO
- BEGIN
- WRITE('Posicion ',i:2, ': '); WRITELN(arr_num[i]:5);
- i:=i+1;
- END;
- END.
- Escribir un programa en Pascal que rellene un array con cinco
- números enteros consecutivos y haga una copia de ese array en otro.
- PROGRAM EJER84;
- USES CRT;
- VAR arr_num1,arr_num2:ARRAY [5..10] of INTEGER;
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=5 TO 10 DO
- BEGIN
- arr_num1[i]:=i;
- arr_num2[i]:=arr_num1[i];
- END;
- FOR i:=5 TO 10 DO
- WRITELN (arr_num2[i]);
- END.
- PROGRAM EJER84;
- USES CRT;
- VAR arr_num1,arr_num2:ARRAY[1..5] of INTEGER;
- VAR i,num:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- num:=100;
- FOR i:=1 TO 5 DO
- BEGIN
- arr_num1[i]:=num;
- num:=num+1;
- END;
- FOR i:=1 TO 5 DO
- arr_num2[i]:=arr_num1[i];
- i:=1;
- WRITELN('ARRAY 1 ARRAY 2':30);
- WHILE i <= 5 DO
- BEGIN
- WRITE('Posicion ',i:2, ': ');
- WRITE(arr_num1[i]:5);
- WRITELN(arr_num2[i]:10);
- i:=i+1;
- END;
- END.
- Escribir un programa en Pascal que rellene un array de 10 elementos
- con los números comprendidos entre 23 y 32 y copie en otro array esos
- números multiplicados por 0.35.
- PROGRAM EJER85;
- USES CRT;
- VAR arr_num1, arr_num2:ARRAY [23..32] of REAL;
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=23 TO 32 DO
- BEGIN
- arr_num1[i]:=i;
- arr_num2[i]:=(arr_num1[i] * 0.35);
- END;
- FOR i:=23 TO 32 DO
- WRITELN(arr_num2[i]:5:2);
- END.
- PROGRAM EJER85;
- USES CRT;
- VAR arr_num1,arr_num2:ARRAY[1..10] of REAL;
- VAR i,num:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- num:=23;
- FOR i:=1 TO 10 DO
- BEGIN
- arr_num1[i]:=num;
- num:=num+1;
- END;
- FOR i:=1 TO 10 DO
- arr_num2[i]:=arr_num1[i]*0.35;
- i:=1;
- WRITELN('ARRAY 1 ARRAY 2':30);
- WHILE i <= 10 DO
- BEGIN
- WRITE('Posicion ',i:2, ': ');
- WRITE(arr_num1[i]:5:2);
- WRITELN(arr_num2[i]:10:2);
- i:=i+1;
- END;
- END.
- Escribir un programa en Pascal que rellene un array con los veinte
- primeros números pares y calcule su suma.
- PROGRAM EJER86;
- USES CRT;
- VAR arr_pares:ARRAY [1..40] of INTEGER;
- VAR i, suma:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- FOR i:= 1 TO 40 DO
- BEGIN
- IF (i mod 2) = 0 THEN
- BEGIN
- arr_pares[i]:=i;
- suma:= suma + i;
- END;
- END;
- WRITELN('La suma de los 20 primeros numeros pares es: ',suma);
- END.
- PROGRAM EJER86;
- USES CRT;
- VAR arr_num:ARRAY[1..25] of INTEGER;
- VAR i,num,suma_par:INTEGER;
- BEGIN
- ClrScr;
- i:=1;
- num:=1;
- suma_par:=0;
- WHILE i<=20 DO
- BEGIN
- IF num mod 2 = 0 THEN
- BEGIN
- arr_num[i]:=num;
- i:=i+1;
- suma_par:=suma_par+num;
- END;
- num:=num+1;
- END;
- i:=1;
- WHILE i <= 20 DO
- BEGIN
- WRITE('Posici¢n ',i:2, ': ');
- WRITELN(arr_num[i]:5);
- i:=i+1;
- END;
- WRITE('SUMA: ', suma_par:12);
- END.
- Escribir un programa en Pascal que solicite cinco números, los
- almacene en un array y luego calcule la media aritmética de esos números.
- PROGRAM EJER87;
- USES CRT;
- VAR arr_num:ARRAY [1..5] of REAL;
- VAR i, num:INTEGER;
- VAR media:REAL;
- BEGIN
- ClrScr;
- WRITELN ('Escriba 5 numeros para hacer su media aritmetica: ');
- FOR i := 1 TO 5 DO
- BEGIN
- READLN(num);
- arr_num[i]:=num;
- END;
- FOR i:=1 TO 5 DO
- media:= media + arr_num[i];
- media:= media / i;
- WRITELN ('La media aritmetica es: ',media:5:2);
- END.
- PROGRAM EJER87;
- USES CRT;
- VAR arr_num:ARRAY[1..10] of REAL;
- VAR num,suma,media:REAL;
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- i:=0;
- suma:=0;
- media:=0;
- WHILE i<5 DO
- BEGIN
- WRITE('Numero ',i+1,'--->'); READLN(num);
- arr_num[i]:=num;
- suma:=suma+num;
- i:=i+1;
- END;
- media:=(suma/i);
- WRITE('Media: ', media:5:2);
- END.
- Escribir un programa en Pascal que tras asignar los números,
- 23, 45, 68, 99, 10, 15 y 4 a un array, determine la posición del array
- en la que se encuentra el máximo valor.
- PROGRAM EJER88;
- USES CRT;
- CONST arr_num:ARRAY [1..7] of INTEGER=(23,45,68,99,10,15,4);
- VAR i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 7 DO
- BEGIN
- IF arr_num[i]=99 THEN
- WRITE ('La posicion del mayor numero (',arr_num[i],') es:
- ',i);
- END;
- END.
- PROGRAM EJER88;
- USES CRT;
- CONST arr_num:ARRAY[1..7] of INTEGER=(23,45,68,99,10,15,4);
- VAR i,posi_max,val_max:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 7 DO
- BEGIN
- IF arr_num[i] > val_max THEN
- BEGIN
- val_max:=arr_num[i];
- posi_max:=i;
- END;
- END;
- WRITE('VALOR MAXIMO: ', val_max, ' POSICION: ', posi_max);
- END.
- Escribir un programa en Pascal que tras asignar los números,
- -2, 5, 8, -9, 10, 15 y -4 a un array calcule, independientemente, la suma
- de los elementos positivos y negativos.
- PROGRAM EJER89;
- USES CRT;
- CONST arr_num:ARRAY [1..7] of INTEGER=(-2,5,8,-9,10,15,-4);
- VAR i:INTEGER;
- VAR suma_p, suma_i:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 7 DO
- BEGIN
- IF arr_num[i] >= 0 THEN
- suma_p:= suma_p + arr_num[i]
- ELSE IF arr_num[i] < 0 THEN
- suma_i:= suma_i + arr_num[i];
- END;
- WRITELN ('La suma de los numeros pares es: ',suma_p);
- WRITELN ('La suma de los numeros impares es: ',suma_i);
- END.
- PROGRAM EJER89;
- USES CRT;
- CONST arr_num:ARRAY[1..7] of INTEGER=(-2,5,8,-9,10,15,-4);
- VAR i,suma_pos,suma_neg:INTEGER;
- BEGIN
- ClrScr;
- FOR i:=1 TO 7 DO
- BEGIN
- IF arr_num[i] > 0 THEN
- suma_pos:=suma_pos+arr_num[i]
- ELSE
- suma_neg:=suma_neg+arr_num[i];
- END;
- WRITELN('SUMA POSITIVOS: ', suma_pos);
- WRITELN('SUMA NEGATIVOS: ', suma_neg);
- END.
- Escribir un programa en Pascal que tras asignar los números,
- 23, 45, 68, 99, 10, 15 y 4 a un array, determine las posiciones del array
- en las que se encuentran el máximo y el mínimo valor.
- PROGRAM EJER90;
- USES CRT;
- CONST arr: ARRAY [1..7] of INTEGER=(23,45,68,99,10,15,4);
- VAR i, mayor, menor,posi_mayor,posi_menor:INTEGER;
- BEGIN
- ClrScr;
- mayor:= arr[1];
- menor:= arr[1];
- FOR i:=2 TO 7 DO
- BEGIN
- IF arr[i] >= mayor THEN
- BEGIN
- mayor:= arr[i];
- posi_mayor:=i;
- END
- ELSE
- CONTINUE;
- END;
- WRITELN ('El numero mayor es: ',mayor:3);
- WRITELN ('Su posicion es: ',posi_mayor:3);
- WRITELN ('');
- FOR i:=2 TO 7 DO
- BEGIN
- IF arr[i] <= menor THEN
- BEGIN
- menor:= arr[i];
- posi_menor:=i;
- END
- ELSE
- CONTINUE;
- END;
- WRITELN ('El numero menor es: ',menor:3);
- WRITELN ('Su posicion es: ',posi_menor:3);
- END.
- PROGRAM EJER90;
- USES CRT;
- CONST arr_num:ARRAY[1..7] of INTEGER=(23,45,68,99,10,15,4);
- VAR i,val_max,val_min,pos_max,pos_min:INTEGER;
- BEGIN
- ClrScr;
- val_min:=arr_num[1];
- val_max:=arr_num[1];
- FOR i:=1 TO 7 DO
- BEGIN
- IF arr_num[i] > val_max THEN
- BEGIN
- val_max:=arr_num[i];
- pos_max:=i;
- END;
- IF arr_num[i] < val_min THEN
- BEGIN
- val_min:=arr_num[i];
- pos_min:=i;
- END;
- END;
- WRITELN('VALOR MAXIMO: ', val_max:3, ' POSICIàN: ', pos_max:3);
- WRITELN('VALOR MINIMO: ', val_min:3, ' POSICIàN: ', pos_min:3);
- END.
Cajero Automático en Pascal
PROGRAM CAJERO;
USES wincrt;
var
can,a,b,c,d,e,f,g,h,i,j,k:integer;
begin
writeln('Que cantidad deseas retirar');
readln(can);
a:=can div 100;
b:=can mod 100;
c:=b div 50;
d:=b mod 50;
e:=d div 20;
f:=d mod 20;
g:=f div 10;
h:=f mod 10;
i:=h div 5;
j:=h mod 5;
k:=j div 2;
writeln('La Cantidad en Bs es ');
writeln(a,' de 100');
writeln(c,' de 50');
writeln(e,' de 20');
writeln(g,' de 10');
writeln(i,' de 5');
writeln(k,' de 2');
readln;
end.
PUBLICADO POR RAFA
ETIQUETAS: PASCAL LOGICADEPROGRAMACION
...
Disponible sólo en Clubensayos.com