Programas ejemplo Lenguaje de Programación PASCAL Miguel Murguía
Programas ejemplo Lenguaje de Programación PASCAL Miguel Murguía ABACo, A.C. Asociación de Biólogos Amigos de la Computación, A. C. www.abacoac.org.mx México, D.F. 1996 Miguel Murguía pág. 2
Contenido PROGRAMA 1: BLOQUE PRINCIPAL DE UN PROGRAMA PASCAL PROGRAMA 2: SUMA DOS NUMEROS PROGRAMA 3: DECLARACION DE VARIABLE ENTERA PROGRAMA 4: DOS VARIABLES PARA SUMAR PROGRAMA 5: ECUACION DE UNA RECTA PROGRAMA 6: INTERSECCION DE DOS RECTAS PROGRAMA 7: INTERSECCION DE DOS RECTAS NO PARALELAS PROGRAMA 8: ECUACION GENERAL CUADRATICA PROGRAMA 9: ECUACION CUADRATICA VERIFICANDO RAICES REALES PROGRAMA 10: EJEMPLIFICA EL USO DE LA INSTRUCCION IF PROGRAMA 11: EJEMPLIFICA EL USO DE LA INSTRUCCION IF... ELSE PROGRAMA 12: EJEMPLIFICA EL USO DE LA INSTRUCCION "CASE" PROGRAMA 13: EJEMPLIFICA EL USO DE LA INSTRUCCION "CASE... ELSE" PROGRAMA 14: EJEMPLIFICA EL USO DE LA INSTRUCCION "FOR" PROGRAMA 15: EJEMPLIFICA EL USO DE LA INSTRUCCION "FOR" PROGRAMA 16: EJEMPLIFICA EL USO DE LA INSTRUCCION "While" PROGRAMA 17: EJEMPLIFICA EL USO DE LA INSTRUCCION "Repeat" PROGRAMA 18: EJEMPLIFICA EL USO DE LA INSTRUCCION "FOR" ANIDADA PROGRAMA 19: EJEMPLIFICA EL USO DE LA INSTRUCCION "WHILE" ANIDADA PROGRAMA 20: EJEMPLIFICA EL USO DE LA INSTRUCCION "Repeat" ANIDADA PROGRAMA 21: MENU CON "CASE" PROGRAMA 22: ECUACION CUADRATICA CON MENU PROGRAMA 23: Ordena por burbuja Miguel Murguía pág. 3
PROGRAMA 1: BLOQUE PRINCIPAL DE UN PROGRAMA PASCAL Ultima actualización: 24/SEP/96 Program prg001; writeln('nombre del alumno: JUAN SINMIEDO'); writeln('carrera: Matemáticas'); writeln; writeln; writeln(' Septiembre, 1996'); Miguel Murguía pág. 4
PROGRAMA 2: SUMA DOS NUMEROS Ultima actualización: 24/SEP/96 Program prg002; writeln('nombre del alumno: JUAN SINMIEDO'); writeln('carrera: Matemáticas'); writeln('septiembre, 1996'); write('5 + 8 = '); write(5 + 8); Miguel Murguía pág. 5
PROGRAMA 3: DECLARACION DE VARIABLE ENTERA Ultima actualización: 24/SEP/96 Program prg003; Sumando: Integer; writeln('programa 003: Tabla de sumar del 5'); write('sumando: '); readln(sumando); write('5 + '); write(sumando); write(' = '); writeln(5 + Sumando); Miguel Murguía pág. 6
PROGRAMA 4: DOS VARIABLES PARA SUMAR Ultima actualización: 24/SEP/96 Program prg004; Sumando1, Sumando2: Integer; writeln('programa 003: Suma dos números'); write('primer sumando : '); readln(sumando1); write('segundo sumando : '); readln(sumando2); writeln; write(sumando1); write(' + '); write(sumando2); write(' = '); writeln(sumando1 + Sumando2); Miguel Murguía pág. 7
PROGRAMA 5: ECUACION DE UNA RECTA Ultima actualización: 24/SEP/96 Program prg005; X,M,B: Integer; (* Y = M * X + B *) M := 6; B := 10; write('x : '); readln(x); write('y = '); write(m*x + B); Miguel Murguía pág. 8
PROGRAMA 6: INTERSECCION DE DOS RECTAS Ultima actualización: 27/SEP/96 Program prg006; uses crt; M1,B1, M2,B2: Real; C: Char; (* Y = M * X + B *) writeln('este programa encuentra el punto de intersección'); writeln('de dos rectas.'); writeln('datos de la primera recta:'); write('m: '); readln(m1); write('b: '); readln(b1); writeln('datos de la segunda recta:'); write('m: '); readln(m2); write('b: '); readln(b2); writeln('intersección:'); write('x = '); writeln((b2-b1)/(m1-m2):10:5); write('y = '); writeln(m1*(b2-b1)/(m1-m2)+b1:10:5); C:=readkey; Miguel Murguía pág. 9
PROGRAMA 7: INTERSECCION DE DOS RECTAS NO PARALELAS Ultima actualización: 27/SEP/96 Program prg007; uses crt; M1,B1, M2,B2: Real; C: Char; (* Y = M * X + B *) writeln('este programa encuentra el punto de intersección'); writeln('de dos rectas.'); writeln('datos de la primera recta:'); write('m: '); readln(m1); write('b: '); readln(b1); writeln('datos de la segunda recta:'); write('m: '); readln(m2); write('b: '); readln(b2); If M1 <>M2 then writeln('intersección:'); write('x = '); writeln((b2-b1)/(m1-m2):10:5); write('y = '); writeln(m1*(b2-b1)/(m1-m2)+b1:10:5); end { del If...} else writeln('las rectas son paralelas.'); C:=readkey; Miguel Murguía pág. 10
PROGRAMA 8: ECUACION GENERAL CUADRATICA Ultima actualización: 24/SEP/96 Program prg008; A,B,C: Integer; write('a:'); readln(a); write('b:'); readln(b); write('c:'); readln(c); write('el resultado es: '); writeln('el resultado es: '); writeln('r1 = ',-B + SQRT( (SQR(B)-4*A*C)) / (2*A) : 10:5); writeln('r2 = ',-B - SQRT( (SQR(B)-4*A*C)) / (2*A) : 10:5); Miguel Murguía pág. 11
PROGRAMA 9: ECUACION CUADRATICA VERIFICANDO RAICES REALES Program prg009; A,B,C: Integer; write('a:'); readln(a); write('b:'); readln(b); write('c:'); readln(c); { Ojo verificar que sea la ecuacion correcta } if SQR(B)-4*A*C > 0 then writeln('el resultado es: '); writeln('r1 = ',-B + SQRT( (SQR(B)-4*A*C)) / (2*A) : 10:5); writeln('r2 = ',-B - SQRT( (SQR(B)-4*A*C)) / (2*A) : 10:5); end else writeln('raices imaginarias...'); Miguel Murguía pág. 12
PROGRAMA 10: EJEMPLIFICA EL USO DE LA INSTRUCCION IF Program prg010; Calif: Real; write('cuál es la calificación: '); readln(calif); if Calif < 6 then writeln('na'); if (Calif >= 6) AND (Calif < 8) then writeln('s'); if Calif >= 8 AND Calif < 9 then writeln('b'); if Calif > 9 then writeln('mb'); Miguel Murguía pág. 13
PROGRAMA 11: EJEMPLIFICA EL USO DE LA INSTRUCCION IF... ELSE Program prg011; Calif: Real; write('cuál es la calificación: '); readln(calif); if (Calif < 0) or (Calif > 10) then writeln('error: la calificacion debe estar entre 0 y 10.') else if Calif < 6 then writeln('na'); if (Calif >= 6) AND (Calif < 8) then writeln('s'); if (Calif >= 8) AND (Calif < 9) then writeln('b'); if (Calif >= 9) AND (Calif <=10) then writeln('mb'); Miguel Murguía pág. 14
PROGRAMA 12: EJEMPLIFICA EL USO DE LA INSTRUCCION "CASE" Program prg012; Calif: Byte; write('cuál es la calificación: '); readln(calif); Case Calif of 0..5: writeln('na'); 6, 7: writeln('s'); 8, 9: writeln('b'); 10 : writeln('mb'); { Case } Miguel Murguía pág. 15
PROGRAMA 13: EJEMPLIFICA EL USO DE LA INSTRUCCION "CASE... ELSE" Program prg013; Calif: Byte; write('cuál es la calificación: '); readln(calif); Case Calif of 0..5: writeln('na'); 6, 7: writeln('s'); 8, 9: writeln('b'); 10 : writeln('mb'); else writeln('error: la calificacion debe estar entre 0 y 10.') { Case } Miguel Murguía pág. 16
PROGRAMA 14: EJEMPLIFICA EL USO DE LA INSTRUCCION "FOR" Program prg014; N: Byte; For N:=1 to 10 do writeln('5 x ',N,' = ', 5 * N); Miguel Murguía pág. 17
PROGRAMA 15: EJEMPLIFICA EL USO DE LA INSTRUCCION "FOR" Program prg015; T,N: Byte; Write('Presentar la tabla del : '); readln(t); For N:=1 to 10 do writeln(t, ' x ', N, ' = ', T * N); Miguel Murguía pág. 18
PROGRAMA 16: EJEMPLIFICA EL USO DE LA INSTRUCCION "While" Program prg016; T,N: Byte; Write('Presentar la tabla del : '); readln(t); N:=1; While N <=10 do writeln(t, ' x ', N, ' = ', T * N); N:=N+1; Miguel Murguía pág. 19
PROGRAMA 17: EJEMPLIFICA EL USO DE LA INSTRUCCION "Repeat" Program prg017; T,N: Byte; Write('Presentar la tabla del : '); readln(t); N:=1; Repeat writeln(t, ' x ', N, ' = ', T * N); N:=N+1 Until N>10; Miguel Murguía pág. 20
PROGRAMA 18: EJEMPLIFICA EL USO DE LA INSTRUCCION "FOR" ANIDADA Program prg018; T,N: Byte; Writeln('Presenta las tabla del 1 al 10'); writeln; For T:=1 to 10 do For N:=1 to 10 do writeln(t, ' x ', N, ' = ', T * N); Miguel Murguía pág. 21
PROGRAMA 19: EJEMPLIFICA EL USO DE LA INSTRUCCION "WHILE" ANIDADA Program prg019; uses crt; T,N: Byte; Writeln('Presenta las tabla del 1 al 10'); writeln; T:=1; while T <= 10 do while N <= 10 do writeln(t, ' x ', N, ' = ', T * N); inc(n); writeln('---------------'); N:=1; Inc(T); Miguel Murguía pág. 22
PROGRAMA 20: EJEMPLIFICA EL USO DE LA INSTRUCCION "Repeat" ANIDADA Program prg020; uses crt; T,N: Byte; Writeln('Presenta las tabla del 1 al 10'); writeln; T:=1; Repeat Repeat writeln(t, ' x ', N, ' = ', T * N); inc(n); until N > 10; writeln('---------------'); N:=1; Inc(T); until T > 10; Miguel Murguía pág. 23
PROGRAMA 21: MENU CON "CASE" Program prg021; uses crt; Opcion: Byte; C : Char; Repeat ClrScr; writeln('pequeño menú'); writeln('-------------'); writeln('1) La opción uno'); writeln('2) Seguna opción'); writeln('3) Opción 3'); writeln('4) Fin'); writeln('-------------'); write('su opción: '); readln(opcion); writeln; Case Opcion of 1: writeln('se eligió a la opción 1'); 2: writeln('se eligió a la opción 2'); 3: writeln('se eligió a la opción 3'); writeln; Writeln('Presione una tecla para continuar...'); C:=readkey; Until Opcion = 4; Miguel Murguía pág. 24
PROGRAMA 22: ECUACION CUADRATICA CON MENU Program prg022; uses crt; A, B, C: real; Opcion: Byte; Car: Char; Repeat ClrScr; writeln('ecuación cuadrática'); writeln('-------------------'); writeln('1) Explicación'); writeln('2) Lee coeficientes'); writeln('3) Muestra resultados'); writeln('4) Fin'); writeln('-------------------'); write('su opción: '); readln(opcion); writeln; Case Opcion of 1: writeln('este programa calcula las raíces de una'); writeln('ecuación cuadrática.'); writeln('es un ejemplo de cómo puede organizarse'); writeln('un programa mediante un menú.'); 2: writeln('se eligió a la opción 2'); 3: writeln('se eligió a la opción 3'); writeln; Writeln('Presione una tecla para continuar...'); Car:=readkey; Until Opcion = 4; Miguel Murguía pág. 25
PROGRAMA 23 al 29: Arreglos (falta escribirlos) Program prg023; Miguel Murguía pág. 26
PROGRAMA 23: Ordena por burbuja Ultima actualización: 7/NOV/96 Program prg030; uses crt; const MaxDato = 10; type TArreglo = array [1..MaxDato] of word; Dato : TArreglo; Opcion : Char; I,J, Temp : Word; (****************** Procedimiento Espera **************************) (* Aqui se muestra cómo declarar procedimientos. Observa que dentro del procedimiento pueden declararse iables "locales". *) Procedure Espera; C: Char; Writeln; Write('Presione una tecla para continuar...'); C:=Readkey; (* Este es el bloque principal *) Repeat ClrScr; writeln;writeln;writeln;writeln; writeln(' Prg030: Ordena Por Burbuja.'); writeln(' (((((((((((((((((((((((((((((('); writeln(' ( 1) Explicación ('); writeln(' ( 2) Lee datos ('); writeln(' ( 3) Ordena ('); writeln(' ( 4) Muestra resultados ('); writeln(' ( 5) Fin ('); writeln(' (((((((((((((((((((((((((((((('); writeln; write(' Su opción: '); Opcion:=Readkey; ClrScr; writeln; Case Opcion of Miguel Murguía pág. 27
'1': writeln('este programa ordena un arreglo de MaxDato'); writeln('por el método de la "burbuja".'); writeln('el método es fácil de implementar mediante'); writeln('dos "fors" anidados.'); '2': writeln('introduzca los ',MaxDato,' datos:'); for I:=1 to MaxDato do write('dato ',I,':'); readln(dato[i]); Writeln('Datos leidos.'); '3': writeln('ordenando datos...'); for I:=1 to MaxDato do For J:=1 to MaxDato-1 do if Dato[J]>Dato[J+1] then Temp:=Dato[J]; Dato[J]:=Dato[J+1]; Dato[J+1]:=Temp; writeln('datos ordenados.'); '4': Writeln('Los datos ordenados son:'); Writeln; For I:=1 to MaxDato do Writeln(I,') ',Dato[I]); '5': writeln('gracias por usar este programa.') else writeln('opcion no válida (elija 1 a 5)'); (* fin del Case *) Espera (* Esta es una llamada al procedimiento "Espera" *) Until Opcion = '5'; Miguel Murguía pág. 28