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 Problema: A partir de una secuencia de números enteros ingresada por teclado, computar la suma de los pares y la suma de los impares. La longitud es dato de entrada. Suma pares y Suma impares de S Caso trivial: Si S está vacía, Suma pares es 0 y Suma impares es 0. Caso recursivo: Si S tiene al menos un elemento, y el 1er elemento de S es par, Suma pares de S es Suma pares de S’+ el 1er elemento de S. Suma impares de S es Suma impares de S’. Si el 1er elemento de S es impar, Suma impares de S es Suma impares de S’+ el 1er elemento de S. Suma pares de S es Suma pares de S’. Donde S’ es S sin su 1er elemento.

3 procedure sumaSecuencia(N: integer; var spa, sim: integer);
var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(N-1, sumPsub, sumIsub); if (odd(elem)) begin sim := sumIsub + elem; spa:= sumPsub; end begin sim:= sumIsub; spa := sumPsub + elem; end; end;

4 Ingrese la long de la sec 3 Secuencia: 12 5 6
program p; var long, sp,si: integer; procedure sumaSecuencia(…. begin writeln(‘Ingrese la long de la sec’); readln(long); writeln(‘Secuencia: ‘); sumaSecuencia(long, sp, si); writeln(‘La suma de pares es: ‘,sp); writeln(‘La suma de impares es: ‘,si); end. Ingrese la long de la sec 3 Secuencia: 12 5 6 Long 3 Sp Si N 3 Spa Sim Elem sumPsub sumIsub procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end;

5 12 5 6 5 6 Long 3 Sp Si N 3 Spa Sim Elem 12 N 2 Spa Sim Elem 5 6
Long 3 Sp Si procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 3 Spa Sim Elem 12 sumPsub sumIsub 5 6 N 2 Spa Sim Elem sumPsub sumIsub 5 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end;

6 5 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; 6 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 1 Spa Sim Elem sumPsub sumIsub

7 6 N 1 Spa Sim Elem 6 N Spa Sim Elem
procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 1 Spa Sim Elem 6 sumPsub sumIsub procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N Spa Sim Elem sumPsub sumIsub

8 6 N 1 Spa Sim Elem 6 N Spa Sim Elem
procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 1 Spa Sim Elem 6 sumPsub sumIsub procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N Spa Sim Elem sumPsub sumIsub

9 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 1 Spa Sim Elem 6 sumPsub sumIsub

10 5 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; 6 N 1 Spa Sim Elem 6 sumPsub sumIsub

11 5 6 6 procedure sumaSecuencia(N: integer; var spa, sim: integer);
5 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; 6

12 12 5 6 5 6 Long 3 Sp Si N 3 Spa Sim Elem 12 6 5 N 2 Spa Sim Elem 5 6
Long 3 Sp Si procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 3 Spa Sim Elem 12 sumPsub sumIsub 6 5 N 2 Spa Sim Elem 5 sumPsub sumIsub 5 6 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; 6

13 Long 3 Sp Si procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end; N 3 Spa Sim Elem 12 sumPsub sumIsub 6 5

14 Ingrese la long de la sec 3 Secuencia: 12 5 6
program p; var long, sp,si: integer; procedure sumaSecuencia(…. begin writeln(‘Ingrese la long de la sec’); readln(long); writeln(‘Secuencia: ‘); sumaSecuencia(long, sp, si); writeln(‘La suma de pares es: ‘,sp); writeln(‘La suma de impares es: ‘,si); end. Ingrese la long de la sec 3 Secuencia: 12 5 6 Long 3 Sp Si 18 5 N 3 Spa Sim Elem 12 sumPsub 6 sumIsub 5 procedure sumaSecuencia(N: integer; var spa, sim: integer); var elem: integer; sumPsub, sumIsub: integer; begin if (n = 0) then begin spa:= 0; sim:= 0; end else read(elem); sumaSecuencia(n-1, sumPsub, sumIsub); if (odd(elem)) then begin sim := sumIsub + elem; spa:= sumPsub; end else begin sim:= sumIsub; spa := sumPsub + elem; end; end;

15 Ingrese la long de la sec 3 Secuencia: 12 5 6
program p; var long, sp,si: integer; procedure sumaSecuencia(…. begin writeln(‘Ingrese la long de la sec’); readln(long); writeln(‘Secuencia: ‘); sumaSecuencia(long, sp, si); writeln(‘La suma de pares es: ‘,sp); writeln(‘La suma de impares es: ‘,si); end. Ingrese la long de la sec 3 Secuencia: 12 5 6 Long 3 Sp Si 18 5


Descargar ppt "Resolución de problemas y algoritmos"

Presentaciones similares


Anuncios Google