Codificacion de pascal

Solo disponible en BuenasTareas
  • Páginas : 4 (779 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de septiembre de 2010
Leer documento completo
Vista previa del texto
Problema 5.1. Codifica un programa PASCAL que calcule el factorial de un número entero positivo, comprendido entre 0−7. El valor se introduce por teclado y se muestra el resultado por pantalla.Define un subprograma recursivo. NOTA: Factorial de 0 es 1 Ejemplos de entradas: • Introduce Número (0−7): 2 • Introduce Número (0−7): −2 • Introduce Número (0−7): 8 Ejemplos de Salidas correspondientes: •El factorial de 2 es 4 • El número debe ser positivo Introduce Número (0−7): • El número debe estar en el intervalo [0,7] Introduce Número (0−7): Solución program FactorialRecursivo (input,output);{Calcula el factorial de un número entero positivo de forma recursiva }uses crt;var x, f:integer; procedure TomaDato (var x:integer); {Postcondicion: Input=n y n>=0 y x=n } begin {Precondicion: −−}repeat write ('Introduce Número Entero Positivo (0−7): '); readln (x); {Asegura la salida del bucle} if x7 then writeln ('El número ha de ser menor que 8');

1

writeln; until (x>=0) and (x0 thenbegin {Ley de Recurrencia} Pasar (n−1,Ini,Aux,Fin); 5

writeln('Mover disco ',n:3, ' desde ',ini:3, ' a', fin:3); Pasar (n−1,Aux,Fin,Ini) end end; {de Pasar} begin {Programa Principal} write('Introduce n£mero de discos: '); readln(n); Pasar(n,Torre1,Torre2,Torre3); end. Problema 5.6. Escribe un subprograma versión recursiva del MCD de dos números enteros por el método de Euclides. Estudia ycompara la solución iterativa con la solución recursiva. program CalculaMCD (input,output); {Calcula el máximo común divisor de dos n£meros enteros, positivos, y distintos tomados por teclado. Utiliza unaversión Recursiva} uses crt; var {Globales} x1,x2,MCD:integer; procedure TomaDatos (var x1,x2:integer); {Postcondicion: Input=[m,n], m>0 y n>0, x e y >0} begin repeat writeln; write('Introduzca elentero: '); read(x1) ; write('Introduzca el entero: '); 6

read(x2) ; until (x1>0)and( x2>0) end; function Calcula (x1,x2:integer):integer; {Precondición de Calcula: x1 >0 y x2 > 0} begin if x2=0...
tracking img