Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Nieves Crespo Montoya Modificado hace 7 años
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.