La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Resolución de problemas y algoritmos

Presentaciones similares


Presentación del tema: "Resolución de problemas y algoritmos"— Transcripción de la presentación:

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


Descargar ppt "Resolución de problemas y algoritmos"

Presentaciones similares


Anuncios Google