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: n = 3 y x =5 Computa 0x5 – 5 + 1x5 – 5 + 2x5 – 5 + 3x5 – 5

3 Iteración: for 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. 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: 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 suma := 0; writeln('Ingrese una secuencia de ',n:4,' elementos '); for k := 1 to n do begin readln(x); suma := suma + k*x ; end; writeln ('Suma ',suma:10); end.

6 Iteración: for Escriba un programa en Pascal que lea los valores de x, m y n y calcule y muestre: 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 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. 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:

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

10 Iteración: for 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 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 do 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 do begin for tercer := x to z do write(letra,digito,tercero, ); writeln ; end

18 Escriba un programa que decida si un número N es primo. Iteración while 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 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 Escriba un programa que decida si un número N entero positivo es primo. Iteración while N mod 2 = 0si 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 {Procesamiento} d:=2; esPrimo := true; while (d < N) and (esPrimo = true) do if N mod d = 0 then esPrimo := false else d := d + 1; Iteración while

22 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. Iteración while

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

24 Hacemos la traza para N

25 Iteración while expresión lógica while do 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 Escriba un programa que muestre la suma de los dígitos de un número entero positivo N. Iteración while Por ejemplo si N= 605 la suma es 11.

27 Iteración while {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 Escriba un programa que decida si un dígito entre 1 y 9 está en un número entero positivo N. Iteración while 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 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. Iteración while Por ejemplo si d=3 y N= 605 la salida es 0. si d=3 y N= 1305 la salida es 3. si d=3 y N= 6035 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