1. PROGRAM EJER01; var a,b,c:INTEGER; BEGIN {Empezamos con lo bsico, 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. PROGRAM EJER01; var a,b,c:INTEGER; BEGIN a:=4; b:=3; c:=a+b; WRITE(c); END. 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 aritmticas fundamentales: suma, resta, multiplicacin y divisin} 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. PROGRAM EJER02; USES CRT; 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; ClrScr; WRITE('SUMA:'); WRITELN(suma); WRITE('RESTA:'); WRITELN(rest); WRITE('MULTIPLICACION:'); WRITELN(mult); WRITE('DIVISION:'); WRITELN(divi); END. 3. PROGRAM EJER03; USES CRT; VAR lado1,lado2:INTEGER; VAR area:INTEGER; BEGIN {Este programa nos va a servir para calcular el area de un rectngulo} 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. PROGRAM EJER03; USES CRT; VAR lado1,lado2:INTEGER; VAR area:INTEGER; BEGIN lado1:=3; lado2:=4; area:=lado1*lado2; ClrScr; WRITE('AREA DEL RECTANGULO: '); WRITE(area); END. 4. 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. 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); END. 5. PROGRAM EJER05; USES CRT; VAR radio:REAL; VAR longitud,area:REAL; BEGIN radio:=4; 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. PROGRAM EJER05; USES CRT; VAR radio:REAL; VAR longitud,area:REAL; BEGIN radio:=4; 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. 6. 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. 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. 7. 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. 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. 8. 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. 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. 9. 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. 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. 10. 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. 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. 11. 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. Autor: Vctor Snchez Snchez 11 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. 12. 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. 13. 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. 14. 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. 15. 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. 16. 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. 17. 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. 18. 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. 19. 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. 20. 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. 21. 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. 22. 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. 23. 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 anio 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 anios se producira un capital de '); WRITE (capitalproducido:5:2); WRITE (' pesetas.'); END. Autor: Vctor Snchez Snchez 21 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. 24. 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)); 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. Autor: Vctor Snchez Snchez 22 25. 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. 26. 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. 27. 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. Autor: Vctor Snchez Snchez 25 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. 28. 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. Autor: Vctor Snchez Snchez 26 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. 29. 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. 30. 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. 31. 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. 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. 32. PROGRAM EJER32; 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 EJER32; 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. 33. PROGRAM EJER33; 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 EJER33; 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. 34. PROGRAM EJER34; 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. PROGRAM EJER34; 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. 35. PROGRAM EJER35; 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 EJER35; 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. 36. PROGRAM EJER36; 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. 37. PROGRAM EJER37; 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; 1 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. 38. PROGRAM EJER38; 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 EJER38; 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. 39. PROGRAM EJER39; 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. 3 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. 40. PROGRAM EJER40; USES CRT; VAR x:INTEGER; BEGIN x:=0; ClrScr; WHILE X <= 10 DO BEGIN WRITELN (x); x:=x+1; END; END. PROGRAM EJER42; USES CRT; VAR x:INTEGER; BEGIN x:=0; ClrScr; WHILE x <= 10 DO BEGIN WRITELN(x); x:=x+1; END; END. 41. PROGRAM EJER41; USES CRT; VAR x:INTEGER; BEGIN x:=0; ClrScr; REPEAT WRITELN (x); x:=x+1; UNTIL x=10; END. 4 PROGRAM EJER41; USES CRT; VAR x:INTEGER; BEGIN x:=0; ClrScr; REPEAT WRITELN(x); x:=x + 1; UNTIL x=10; END. 42. PROGRAM EJER42; USES CRT; VAR x:INTEGER; BEGIN ClrScr; FOR x:=0 TO 10 DO WRITELN (x); END. PROGRAM EJER44; USES CRT; VAR x:INTEGER; BEGIN ClrScr; FOR x:=0 TO 10 DO WRITELN(x); END. 43. Escribir un programa en Pascal que visualice en pantalla los n£meros pares entre 1 y 25. PROGRAM EJER43; USES CRT; VAR num:INTEGER; BEGIN num:=2; ClrScr; REPEAT WRITELN (num); num:= num + 2; UNTIL num= 26; END. PROGRAM EJER43; 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. 44. PROGRAM EJER44; 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. 45. PROGRAM EJER45; 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. 46. PROGRAM EJER46; 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 EJER46; 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. 47. PROGRAM EJER47; 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 EJER47; USES CRT; VAR resp:CHAR; BEGIN ClrScr; resp:='S'; WHILE UPCASE(resp)='S' DO BEGIN WRITE('Desea continuar? '); READLN(resp); END; END. 48. PROGRAM EJER48; 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 EJER48; 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. 49. PROGRAM EJER49; 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. 50. PROGRAM EJER50; 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 EJER50; 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. 51. PROGRAM EJER51; 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. 52. PROGRAM EJER52; 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 EJER52; 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. 53. PROGRAM EJER53; 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 EJER53; 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. 54. PROGRAM EJER54; 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 EJER54; 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. 55. PROGRAM EJER55; 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 anios: '); READLN (annos); WRITELN (''); depreciacionanno:= valor / annos; x:=0; WHILE valor > 0.1 DO BEGIN valor:=valor - depreciacionanno; x:= x + 1; WRITELN ('ANIO ',x:2,': ',valor:8:0,' pts.'); END; END. PROGRAM EJER55; 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 anios ----> '); 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. 56. PROGRAM EJER56; USES CRT; VAR fdd:REAL; {Factor de depreciacion} VAR vidaobj:REAL; {Vida del objeto = anios} 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 ('ANIOS: '); READLN (vidaobj); WRITELN (''); fdd:= 2 / vidaobj; x:=1; REPEAT depreciacionanno:= fdd * valorobj; valorobj:=valorobj - depreciacionanno; WRITELN ('ANIO ',x:2,': ',valorobj:8:2,' pts.'); x:= x + 1; UNTIL x > vidaobj; WRITELN (''); x:= x - 1; WRITELN ('EL VALOR A LOS ',x,' ANIOS SERA DE: ',valorobj:6:2,' pts.'); END. PROGRAM EJER56; 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 anios ----> '); 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. 57. PROGRAM EJER57; 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 EJER57; 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. 60. 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. 61. 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. 62. 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. Autor: Vctor Snchez Snchez 47 PROGRAM EJER62; USES CRT; VAR cad1,cad2:STRING; BEGIN cad1:='Esto es una prueba'; ClrScr; WRITELN(cad1); DELETE(cad1,9,4); WRITELN(cad1); END. 63. 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. 64. 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. 65. 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. 66. 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. 67. 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. 68. 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. 69. 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. 70. 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. 104. PROGRAM EJERC104; USES CRT; CONST cadena:STRING=('EstO es PROGraMAcion'); VAR i, mayus:INTEGER; BEGIN ClrScr; FOR i:=1 TO LENGTH(cadena) DO BEGIN IF cadena[i] = UPCASE(cadena[i]) THEN mayus:=mayus + 1; IF cadena[i]=' ' THEN mayus:=mayus - 1; END; WRITELN ('El numero de mayusculas es: ', mayus); END. PROGRAM EJERC104; USES CRT; CONST cad_orig:STRING='Archipielago de Cabo Verde'; VAR i,nc,n_may:INTEGER; BEGIN ClrScr; nc:=LENGTH(cad_orig); n_may:=0; FOR i:=1 TO nc DO BEGIN IF (ORD(cad_orig[i]) >= 65) AND (ORD(cad_orig[i]) <= 90) THEN n_may:=n_may+1; END; WRITELN(cad_orig); WRITELN('MAYUSCULAS: ',n_may); END. 105. PROGRAM EJERC105; USES CRT; VAR cadena:STRING; VAR v_ascii,i:INTEGER; BEGIN ClrScr; {Este programa cambia las mayusculas a minusculas y viceversa} cadena:='ViCtOr'; FOR i:=1 TO LENGTH(cadena) DO BEGIN IF cadena[i] = UPCASE (cadena[i]) THEN BEGIN v_ascii:=ORD(cadena[i]); cadena[i]:=(CHR(v_ascii+32)); END ELSE BEGIN cadena[i]:=UPCASE (cadena[i]); END; WRITE (cadena[i]); END; END. PROGRAM EJERC105; USES CRT; CONST cad_orig:STRING='Archipielago de Cabo Verde'; VAR i,nc:INTEGER; BEGIN ClrScr; WRITELN(cad_orig); nc:=LENGTH(cad_orig); FOR i:=1 TO nc DO BEGIN IF (ORD(cad_orig[i]) >= 65) AND (ORD(cad_orig[i]) <= 90) THEN cad_orig[i]:=CHR(ORD(cad_orig[i]) + 32) ELSE IF (ORD(cad_orig[i]) >= 97) AND (ORD(cad_orig[i]) <= 122) THEN cad_orig[i]:=CHR(ORD(cad_orig[i])-32); END; WRITELN(cad_orig); END. 106. PROGRAM EJERC106; USES CRT; VAR cadena:STRING; VAR encrip:INTEGER; VAR i:INTEGER; BEGIN ClrScr; WRITE ('Introduzca una cadena para encriptarla: '); READLN (cadena); WRITELN(''); FOR i:=1 TO LENGTH(cadena) DO BEGIN encrip:=ORD(cadena[i]); cadena[i]:=(CHR(encrip + 2)); WRITE(cadena[i]); END; END. PROGRAM EJERC106; USES CRT; CONST cad_orig:STRING='Archipielago de Cabo Verde'; VAR i,nc:INTEGER; BEGIN ClrScr; WRITELN(cad_orig); nc:=LENGTH(cad_orig); FOR i:=1 TO nc DO cad_orig[i]:=CHR(ORD(cad_orig[i])+2); WRITELN(cad_orig); END. 107. PROGRAM EJERC107; USES CRT; VAR cadena:STRING; VAR encrip, i:INTEGER; BEGIN ClrScr; WRITE ('Introduzca una cadena para encriptarla: '); READLN (cadena); WRITELN (''); FOR i:=1 TO LENGTH (cadena) DO BEGIN IF (i mod 2)=0 THEN BEGIN encrip:=ORD(cadena[i]); cadena[i]:= (CHR(encrip + 2)); END ELSE BEGIN encrip:=ORD(cadena[i]); cadena[i]:= (CHR(encrip + 3)); END; WRITE(cadena[i]); END; END. 71. 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. 72. 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. 73. 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. 74.. 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. 75. 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. 76. 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. Autor: Vctor Snchez Snchez 56 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. 77. 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. 78. 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. 79. 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. 80. 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. 81. 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. Autor: Vctor Snchez Snchez 60 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. 82. 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. 83. 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. 84. 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. 85. 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; Autor: Vctor Snchez Snchez 63 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. 86. 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. 87. 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. 88. 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. 89. 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. 90. 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 MæXIMO: ', val_max:3, ' POSICI…N: ', pos_max:3); WRITELN('VALOR M™NIMO: ', val_min:3, ' POSICI…N: ', pos_min:3); END. 89. PROGRAM EJER89; 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 EJER89; 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. 101. PROGRAM EJERC101; USES CRT; VAR original: ARRAY [1..4] of STRING; VAR invertida:ARRAY [1..4] of STRING; VAR cadena:STRING; VAR i:INTEGER; BEGIN ClrScr; cadena:='hola'; FOR i:=1 TO LENGTH(cadena) DO BEGIN original[i]:= cadena[i]; WRITE (original[i]); END; WRITELN (''); FOR i:=LENGTH(cadena) DOWNTO 1 DO BEGIN invertida[i]:=cadena[i]; WRITE (invertida[i]); END; END. PROGRAM EJERC101; USES CRT; CONST cad_orig:ARRAY[1..9] of CHAR='GUAYABITA'; VAR cad_copi:STRING; VAR i,j:INTEGER; BEGIN ClrScr; WRITELN(cad_orig); j:=9; FOR i:=1 TO 9 DO BEGIN cad_copi[j]:=cad_orig[i]; j:=j-1; END; FOR i:=1 TO 9 DO BEGIN WRITE(cad_copi[i]); END; END. 103. PROGRAM EJERC103; USES CRT; VAR cad_tra:ARRAY [1..20] of STRING; CONST cad_ori:STRING='la casa es azul'; VAR i:INTEGER; BEGIN ClrScr; FOR i:=1 TO LENGTH(cad_ori) DO BEGIN IF cad_ori[i]<>' ' THEN BEGIN cad_tra[i]:=cad_ori[i]; WRITE (cad_tra[i]); END; END; END. PROGRAM EJERC103; USES crt; CONST cad_orig:STRING='Archipielago de Cabo Verde'; VAR cad_tran:STRING; VAR i,j,nc:INTEGER; BEGIN ClrScr; i:=1; nc:=LENGTH(cad_orig); j:=1; FOR i:=1 TO nc DO BEGIN IF cad_orig[i] <> ' ' THEN BEGIN cad_tran[j]:=cad_orig[i]; j:=j+1; END END; WRITELN(cad_orig); FOR i:=1 TO j-1 DO BEGIN WRITE(cad_tran[i]); END; END. 91. 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. 92. 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. 93. 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. 94. 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. 95. 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. 96. 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. 97. 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 (''); Autor: Vctor Snchez Snchez 72 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. 98. 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. 100. 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. 102. PROGRAM EJERC102; USES CRT; CONST m1:ARRAY [1..2,1..2] of INTEGER=( (3,1),(4,5) ); CONST m2:ARRAY [1..2,1..2] of INTEGER=( (1,3),(4,2) ); VAR m3: ARRAY [1..2,1..2] of INTEGER; VAR f, c:INTEGER; BEGIN ClrScr; FOR f:=1 TO 2 DO FOR c:=1 TO 2 DO BEGIN m3[f,c]:=(m1[f,c] + m2[f,c]); WRITE ('(',f,',',c,') '); {Muestra la posicion} WRITELN (m3[f,c]); END; END. PROGRAM EJERC102; USES CRT; CONST m_1:ARRAY[1..3,1..4] OF REAL= ( (12,13,14,10), (15,16,17,10), (18,19,20,10) ); CONST m_2:ARRAY[1..3,1..4] OF REAL= ( (1,1,1,1), (1,1,1,1), (1,1,1,1) ); VAR m_suma:ARRAY[1..3,1..4] OF REAL; VAR i,j:INTEGER; BEGIN ClrScr; FOR i:=1 TO 3 DO FOR j:=1 TO 4 DO m_suma[i,j]:=m_1[i,j]+m_2[i,j]; FOR i:=1 TO 3 DO BEGIN FOR j:=1 TO 4 DO WRITE(m_1[i,j]:5:2,' '); WRITELN(' '); END; WRITELN(' '); FOR i:=1 TO 3 DO BEGIN FOR j:=1 TO 4 DO WRITE(m_2[i,j]:5:2,' '); WRITELN(' '); END; WRITELN(' '); FOR i:=1 TO 3 DO BEGIN FOR j:=1 TO 4 DO WRITE(m_suma[i,j]:5:2,' '); WRITELN(' '); END; END.