Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Resolución de problemas y algoritmos
Dra. Jessica Andrea Carballido Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR
2
Recursividad Ampliar a impares un número consiste en duplicar cada uno de sus dígitos impares. EJ. N=2134 , N=127 11277 Ampliar a impares N CB: Si N tiene un dígito, ampliar a impares N es duplicar el dígito N si es impar, o es N si es par. CG: Si N > 9, ampliar a impares N es ampliar a impares N’ y agregarle al final el último dígito de N duplicado solo si el mismo es impar o agregar el último digito si es par. N’ es N sin su último dígito.
3
Recursividad Ampliar a impares un número consiste en duplicar cada uno de sus dígitos impares. function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) Ampliar:=Ampliar(N div 10)*10+N mod 10; end;
4
Num 361 N 361 Ampliar N 36 Ampliar program transformaNumero;
var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, Ampliar(Num)); end. Ingrese numero positivo: 361 El numero transformado es: Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end;
5
Num 361 N 361 Ampliar N 36 Ampliar N 3 Ampliar
Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar N 3 Ampliar
6
Num 361 N 361 Ampliar N 36 Ampliar N 3 Ampliar 33
Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar N 3 Ampliar 33
7
Num 361 N 361 Ampliar N 36 Ampliar N 3 Ampliar 33
Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar N 3 Ampliar 33
8
seguimos evaluando la expresión
Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:= *10+N mod 10; end; Num 361 seguimos evaluando la expresión N 361 Ampliar N 36 Ampliar
9
seguimos evaluando la expresión
program transformaNumero; var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, Ampliar(Num)); end. Ingrese numero positivo: 361 El numero transformado es: Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:= 33 *10+N mod 10; end; seguimos evaluando la expresión
10
seguimos evaluando la expresión
program transformaNumero; var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, Ampliar(Num)); end. Ingrese numero positivo: 361 El numero transformado es: Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:= *100 + (N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; seguimos evaluando la expresión
11
Num 361 program transformaNumero; var Num: integer;
function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, ); end. Ingrese numero positivo: 361 El numero transformado es: Num 361
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.