Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e...

29
Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina

Transcript of Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e...

Page 1: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Resolución de Problemas y Algoritmos

Uso de iteración con secuencias

Departamento de Ciencias e Ingeniería de la ComputaciónUniversidad Nacional del Sur

Bahía Blanca - Argentina

Page 2: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

SecuenciasUn tipo particular de problemas para el cual resulta adecuada la iteración es el procesamiento de secuencias de valores.

Los valores pueden ser leídos por consola (utilizando el buffer), o a través de algún otro dispositivo, como veremos más adelante.

Conocer la cantidad de valores antes de comenzar a leerlosUtilizar un valor específico para indicar fin de la secuencia. Preguntarle al usuario luego de leer cada valor, si desea ingresar otro.

Cuando los valores se ingresan por consola es posible:

Page 3: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias

Ingrese los valores:23Desea Ingresar otro (S/N):S4Desea Ingresar otro (S/N):S7……

Conocer la cantidad de valores antes de comenzar a leerlos

Ingrese la cantidad de valores: 4Ingrese los valores: 23 4 7 12 9

Utilizar un valor específico para indicar fin de la secuencia. Ingrese los valores, para finalizar ingrese 023 4 7 12 9 6 31 0

Preguntarle al usuario luego de leer cada valor, si desea ingresar otro.

Page 4: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Escribir un programa que lea una secuencia de n valores reales y muestre cada uno de ellos seguido de su cuadrado.

En este caso antes de comenzar a procesar la secuencia, se conoce el número de valores que van a leerse y procesarse.

Secuencias

Page 5: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias

Escribir un programa que lea una secuencia de n valores reales y muestre cada uno de ellos seguido de su cuadrado. for i := 1 to n dobegin read (x); writeln (x,sqr(x)); end

Observemos que en esta solución la variable de control no se usa en el bloque iterativo.

Page 6: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias

program cuadrados;

{Muestra el cuadrado de cada número leído}

var i,n : integer;

x : real;

begin

write (‘Ingrese el valor de n ‘);

readln (n); for i := 1 to n do begin read (x); writeln (x,sqr(x)); end;

end.

Page 7: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias

En este caso no conocemos antes de comenzar a iterar la cantidad de valores que forman la secuencia. Un valor específico termina la secuencia, sin formar parte de ella.

Escriba un programa que lea una secuencia de números enteros terminada con un 0 y muestre los que son múltiplos de n y mayores que 0.

Page 8: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias

repeat read(s); if (s > 0 ) and (s mod n = 0) then write (s,’ ‘);

until (s = 0);

La secuencia de valores ingresada por el usuario se mantiene en un área de memoria llamada buffer. La instrucción read consume el buffer.

Escriba un programa que lea una secuencia de números enteros terminada con un 0 y muestre los que son múltiplos de n y mayores que 0.

Page 9: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Escriba un programa que lea una secuencia de números positivos terminada en 0 y devuelva el mayor.

Por ejemplo, dada la secuencia

3 11 5 8 8 11 2 19 13 0

El mayor es 19

Secuencias

Page 10: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

El usuario ingresa la secuencia completa.

Secuencias

Page 11: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

El programa lee 3

Por el momento es el mayor

Secuencias

Page 12: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

El programa lee el 3

Por el momento es el mayor

El programa lee el 11

Se compara el 11 con el 3

Secuencias

Page 13: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

El programa lee el 3

Por el momento es el mayor

El programa lee el 11

Se compara el 11 con el 3

El 11 es el mayor

Secuencias

Page 14: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

El programa lee el 3

Por el momento es el mayor

El programa lee el 11

Se compara el 11 con el 3

El 11 es el mayor

El programa lee el 5

Se compara el 5 con el 11

El mayor sigue siendo el 11

Secuencias

Page 15: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero);mayor := numero;

El programa lee un valor

Por el momento es el mayor

Necesitamos dos variables numero y mayor

Secuencias

Page 16: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero);mayor := numero;read (numero);if (numero > mayor)

El programa lee el segundo valor

Se compara el mayor con el último leído

Secuencias

Page 17: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero);mayor := numero;read (numero);if (numero > mayor) then mayor := numero;

El segundo es el mayor

Secuencias

Page 18: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero)mayor := numero;read (numero);if (numero > mayor) then mayor := numero;

read (numero);if (numero > mayor) then mayor := numero;

El programa lee el tercer valor Se compara el mayor con el último leído, si el último es mayor se actualiza

Secuencias

Page 19: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero)mayor := numero;read (numero);if (numero > mayor) then mayor := numero;

read (numero)if (numero > mayor) then mayor := numero;

Secuencias

Page 20: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero);mayor := numero;

read (numero); if (numero > mayor) then mayor := numero;while ( ) dobegin

end

Secuencias

Page 21: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

3 11 5 8 8 11 2 19 13 0

read (numero);mayor := numero;

read (numero); if (numero > mayor) then mayor := numero;while (numero <> 0) dobegin

end

Secuencias

Considere qué pasaría si la secuencia es: 0

Page 22: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Escriba un programa que lea una secuencia de números positivos terminada en 0 y devuelva la posición del mayor.

Por ejemplo, dada la secuencia

3 11 5 8 8 11 2 19 13 0

La posición del mayor es 8

Secuencias

Page 23: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Escriba un programa que genere un archivo de n números enteros ingresados por el usuario

Secuencias y archivos

Supongamos n= 4

Leer el 1er número de la secuenciaAgregarlo al archivo

Leer el 2er número de la secuenciaAgregarlo al archivo

Leer el 3er número de la secuenciaAgregarlo al archivo

Leer el 4er número de la secuenciaAgregarlo al archivo

Page 24: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Escriba un programa que genere un archivo de n números enteros ingresados por el usuario

Secuencias y archivos

Leer la cantidad de números (n) que se van a ingresar

Repetir n vecesLeer un número enteroAlmacenar el número en el archivo

Page 25: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Escriba un programa que genere un archivo de n números enteros ingresados por el usuario

Secuencias y archivos

Writeln(‘Ingrese la cantidad de elementos ‘);Readln(n);For i:=1 to n do begin

end

Read(num);Write(F,num)

Assign(F,’arch.dat’);Rewrite(F);

Close(F);

Program GeneraArch;Var F: File of integer; i,n,num:integer;Begin

End.

Page 26: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Por ejemplo, dada la secuencia ingresada por consola

3 11 5 8 8 300 2 0

El archivo deberá quedar formado así

Secuencias y archivosEscriba un programa que lea una secuencia de números enteros terminada en 0 y genere un archivo con esos números.

3 11 5 8 8 300 2 <eof>Arch.dat

Page 27: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias y archivosEscriba un programa que lea una secuencia de números enteros terminada en 0 y genere un archivo con esos números.

Repetir mientras el numero sea distinto de 0

Leer un número enteroAlmacenar el número en el archivo

Leer un número entero

Page 28: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Secuencias y archivos

Writeln(‘Ingrese la secuencia terminada en 0‘);Read(num);While (num <> 0) do begin

endRead(num);Write(F,num)

Assign(F,’arch.dat’);Rewrite(F);

Close(F);

Program GeneraArch;Var F: File of integer; num:integer;Begin

End.

Escriba un programa que lea una secuencia de números enteros terminada en 0 y genere un archivo con esos números.

Page 29: Resolución de Problemas y Algoritmos Uso de iteración con secuencias Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del.

Generador de Archivos