La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.

Presentaciones similares


Presentación del tema: "Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones."— Transcripción de la presentación:

1 Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones puede quedar determinada por una variable de control que toma valores dentro de un rango escalar o por una expresión lógica. En el primer caso hablamos de iteración con contador en el segundo de iteración con condición.

2 Iteración: for Escriba un programa en Pascal que lea dos valores enteros x y n y calcule y muestre: 𝑘=0 𝑛 𝑘.𝑥 −𝑥 n = 3 y x =5 Computa 0x5 – 5 + 1x5 – 5 + 2x5 – 5 + 3x5 – 5

3 Iteración: for Realizar una traza para dos casos de prueba.
program Sigma1; var k,n: integer; x,suma:integer; begin suma := 0; for k := 0 to n do suma := suma + k*x - x; writeln ('Suma ',suma:10); end. 𝑘=0 𝑛 𝑘.𝑥 −𝑥 Realizar una traza para dos casos de prueba.

4 Iteración: for Escriba un programa en Pascal que lea un valor entero n seguido por una secuencia de n enteros y compute: 𝑘=1 𝑛 𝑘.𝑥𝑘 n = 3 y la secuencia es Computa 1x2 + 2x-5 + 3x7

5 Iteración: for program Sigma2; var k,n: integer; x,suma:integer; begin
writeln('Ingrese una secuencia de ',n:4,' elementos '); for k := 1 to n do readln(x); suma := suma + k*x ; end; writeln ('Suma ',suma:10); end. 𝑘=1 𝑛 𝑘.𝑥𝑘

6 Iteración: for Escriba un programa en Pascal que lea los valores de x, m y n y calcule y muestre: 𝑗=0 𝑚 𝑘=0 𝑛−1 (𝑚−𝑗). 𝑥 −𝑘.𝑥 Por ejemplo si m=2, n=3y x=5 (2x5 – 0x5)+ (2x5 – 1x5)+(2x5 – 2x5)+ (1x5 – 0x5)+ (1x5 – 1x5)+(1x5 – 2x5)+ (0x5 – 0x5)+ (0x5 – 1x5)+(0x5 – 2x5)

7 Iteración: for Realizar una traza para dos casos de prueba.
program Sigma3; var j,k,n,m: integer; x,suma:integer; begin suma := 0; for j := 0 to m do for k := 0 to n-1 do suma := suma + (m-j)*x - k*x; writeln ('Suma ',suma:10); end. 𝑗=0 𝑚 𝑘=0 𝑛−1 (𝑚−𝑗). 𝑥 −𝑘.𝑥 Realizar una traza para dos casos de prueba.

8 Iteración: for Escriba un programa en Pascal que lea un valor n y una secuencia de n ternas de valores y compute: 𝑗=1 𝑛 𝑘=1 3 𝑥𝑗,𝑘 𝑗=1 𝑛 𝑥𝑗,1 . 𝑥 𝑗,2 . 𝑥𝑗,3

9 Iteración: for program Sigma4; … suma:=0; 𝑗=1 𝑛 𝑘=1 3 𝑥𝑗,𝑘
for j := 1 to n do begin prod := 1; for k := 1 to 3 do read(x); prod := prod * x ; end; readln(); suma := suma + prod; end. 𝑗=1 𝑛 𝑘=1 3 𝑥𝑗,𝑘

10 Iteración: for Realizar una traza para dos casos de prueba.
program Sigma4; var j,k,n: integer; x,suma,prod:integer; begin end. Realizar una traza para dos casos de prueba.

11 Iteración: for Una fábrica asigna a cada artículo un código formado por tres caracteres. El primero es una letra A, B o C, el segundo carácter es un dígito 3, 4, 5 o 6, el tercer es nuevamente una letra x o y. Escriba un segmento de programa que muestre una tabla con todos los códigos posibles, agrupando los dos códigos que coinciden en los dos primeros caracteres en una misma línea.

12 A 3 x A 3 y A 4 x A 4 y A 5 x A 5 y A 6 x A 6 y B 3 x B 3 y
Iteración: for A 3 x A 3 y A 4 x A 4 y A 5 x A 5 y A 6 x A 6 y B 3 x B 3 y writeln (letra,digito,’x’,’ ‘, letra,digito,’y’);

13 Iteración: for A 3 x A 3 y A 4 x A 4 y A 5 x A 5 y A 6 x A 6 y
for digito := 3 to 6 do writeln (letra,digito,’x’,’ ‘, letra,digito,’y’);

14 Iteración: for A 3 x A 3 y A 4 x A 4 y A 5 x A 5 y A 6 x A 6 y
B 3 x B 3 y B 4 x B 4 y B 5 x B 5 y B 6 x B 6 y

15 Iteración: for for letra := ‘A´ to ‘C’ do for digito := 3 to 6
writeln (letra,digito,’x’,’ ‘, letra,digito,’y’);

16 Iteración: for Una fábrica asigna a cada artículo un código formado por tres caracteres. El primero es una letra A, B o C, el segundo carácter es un dígito 3, 4, 5 o 6, el tercer es nuevamente una letra v, w, x, y y z. Escriba un segmento de programa que muestre una tabla con todos los códigos posibles, agrupando los cinco códigos que coinciden en los dos primeros caracteres en una misma línea.

17 Iteración: for for letra := ‘A´ to ‘C’ do for digito := 3 to 6 begin
for tercer := ‘x’ to ‘z’ write(letra,digito,tercero, ’ ‘); writeln ; end

18 Escriba un programa que decida si un número N es primo.
Iteración while Escriba un programa que decida si un número N es primo. Un números natural N es un número primo si tiene solo dos divisores, 1 y N. Una alternativa intuitiva para decidir si un número primo es hallar el conjunto de divisores. Una alternativa más eficiente es hallar un divisor distinto a 1 y a N porque en ese caso podemos asegurar que N no es primo.

19 Escriba un programa que decida si un número N es primo.
Iteración while Escriba un programa que decida si un número N es primo. Si 2 es un divisor de N entonces N no es primo, no importa si tiene o no otros divisores. Análogamente si 3, 4, …, son divisores de N, entonces N no tiene divisores. Una alternativa aun más eficiente es saltear los números pares que no son primos, pero por el momento el principal objetivo es la iteración.

20 Iteración while Escriba un programa que decida si un número N entero positivo es primo. N mod 2 = 0 si computa true N no es primo N mod 3 = 0 si computa true N no es primo Para generalizar podemos usar dos variables, una variable entera y una variable booleana.

21 Iteración while {Procesamiento} d:=2; esPrimo := true; while (d < N) and (esPrimo = true) do if N mod d = 0 then esPrimo := false else d := d + 1;

22 Iteración while program NEsPrimo; {Decide si un número N ingresado por consola es primo, asumiendo N > 1} var N,d : integer; esPrimo : boolean; begin {Entrada} write ('Ingrese N '); readln (N); {Procesamiento} … {Salida} … end.

23 Iteración while program NEsPrimo; … begin {Entrada} … {Procesamiento} … {Salida} if esPrimo then writeln(n:4,' es primo ') else writeln(n:4,' no es primo') ; end.

24 Iteración while Hacemos la traza para N 4 19 45

25 Iteración while expresión while do lógica instrucción
La instrucción del while es el bloque iterativo. Cuando la expresión lógica es falsa se produce la condición de corte de la iteración. En el bloque iterativo debe modificarse al menos una de las variables de la expresión lógica, para permitir que la expresión lógica se haga falsa y el bucle termine.

26 Iteración while Escriba un programa que muestre la suma de los dígitos de un número entero positivo N. Por ejemplo si N= 605 la suma es 11.

27 Iteración while Realizar una traza para dos casos de prueba.
{Procesamiento} M:=N; suma := 0; while (M > 0) do begin suma := suma + M mod 10; M := M div 10; end; Realizar una traza para dos casos de prueba.

28 Iteración while Escriba un programa que decida si un dígito entre 1 y 9 está en un número entero positivo N. Por ejemplo si d=3 y N= 605 d no está en N. si d=3 y N= 305 d está en N. si d=3 y N= 6035 d está en N. si d=3 y N= 6053 d está en N. si d=3 y N= 6303 d está en N.

29 Iteración while {Procesamiento} esta:= false; M:=N;
while (M > 0) and (esta = false) do if M mod 10 = d then esta := true else M := M div 10;

30 Iteración while program dEstaenN; {Decide si un dígito d está en N }
var N,M,d : integer; esta : boolean; begin {Entrada} write ('Ingrese N '); readln (N); write ('Ingrese el dígito '); readln (d);

31 Iteración while program dEstaenN; … begin {Entrada} {Procesamiento}
{Salida} if esta then writeln(d:4,' está en ',N:4) else writeln(d:4,' no está en ',N:4) ; end.

32 Iteración while Escriba un programa que muestre la posición menos significativa en la que aparece un dígito d en un número N. Si d no está en N, muestra 0. Por ejemplo si d=3 y N= la salida es 0. si d=3 y N= la salida es 3. si d=3 y N= la salida es 2.


Descargar ppt "Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones."

Presentaciones similares


Anuncios Google