Está en la página 1de 7

Universidad Autónoma Gabriel René Moreno

Facultad de Ciencias de la Computación

Materia: Programación I, Grupo SD.

Tema: Ciclos, un Problema, Múltiples Algoritmos.

Docente: Lic. Edwin Vargas Yapura.


Ciclos, Instrucciones Repetitivas.
El objetivo es implementar funciones y/o procedimientos que resuelven problemas
iterativos con múltiple algoritmos y diferentes tiempos de ejecución.

Para escribir segmentos de códigos de programa que utilizan ciclos, tomar en cuenta
siempre las siguientes recomendaciones:

• Antes de entrar al ciclo, inicializar las variables de control de ciclo, contadores y


acumuladores.
• Dentro el ciclo, los valores de las variables de control de ciclo, contadores y acumuladores
deben cambiar.
• Para cada vuelta del ciclo, verificar la tendencia del valor variable de control de ciclo, al
valor final de la condición de terminación del ciclo.

Tomando en cuenta estas recomendaciones, se pueden escribir códigos de programa


utilizando muchos ciclos anidados o en secuencias de ciclos.
Formas posibles de un ciclo…
Existen diversas formas posibles de escribir un ciclo, además de existir varias instrucciones repetitivas en los
lenguajes de programación, sin embargo las formas más frecuentes son las siguientes:

i = 1; i = n; i = 1, j = n;
while(i <= n){ while(i > 0){ while(i > j){
_____ _____ _____
_____ _____ _____

i = i + 1; i = i - 1; i = i - 1;
} } j = j + 1
}

Avanza de izquierda a derecha. Avanza de derecha a izquierda. Avanza de los extremos al medio.
Las instrucciones dentro del ciclos Las instrucciones dentro del ciclos Las instrucciones dentro del ciclos se
se ejecutan n-veces. se ejecutan n-veces ejecutan n/2-veces
T(n) = n T(n) = n T(n) = n/2

Las variables de control de ciclo, pueden incrementar o decrementar también con otros valores. Sin embargo, debe existir una
tendencia a la condición de terminación del ciclo, en cada iteración.
Encontrar la sumatoria de los primeros n-enteros…
𝑛

෍𝑖 = 1 + 2 + 3 + 4 + . . . . . + n
𝑖=1

public static int sumaA(int n){ public static int sumaB(int n){
int i = 1, sum = 0; int i = 1, j = n, sum = 0;
while(i <= n){ while(i < j){
sum = sum + i; sum = sum + i + j;
i = i + 1; i = i + 1;
} j = j - 1;
return sum; }
} if(i == j) sum = sum + i;
return sum;
}

Avanza de izquierda a derecha.


Las instrucciones dentro del ciclos Avanza de los extremos al medio.
se ejecutan n-veces. Las instrucciones dentro del ciclos se
T(n) = n ejecutan n/2-veces
T(n) = n/2
Encontrar la sumatoria de los primeros n-enteros…
𝑛

෍ 𝑖 = 1 + 2 + 3 + . . . . . . . + n-2 + n-1 + n
𝑖=1

n+1
n+1
n+1

𝑛 public static int sumaC(int n){


𝑛 (𝑛+1) return (n * ( n + 1)) / 2;
෍𝑖 =
2 }
𝑖=1

La sumatoria de los primeros n números enteros positivos T(n) = 1


es igual a la multiplicación de n por (n+1) entre dos.
Encontrar la sumatoria de los primeros n pares…
𝑛

෍ 2𝑖 = 2x1 + 2x2 + 2x3 + 2x4 + . . . . . + 2xn public static int sumaParesA(int n){
int i = 1, sum = 0;
𝑖=1 while(i <= n){
= 2(1 + 2 + 3 + 4 + . . . . . + n)
sum = sum + 2 * i;
2𝑛(𝑛+1) i = i + 1;
= }
2 return sum;
𝑛 }
෍ 2𝑖 = 𝑛 𝑛 + 1
𝑖=1

public static int sumaParesB(int n){


int i = 1, j = n, sum = 0;
while(i < j){
public static int sumaParesC(int n){
sum = sum + 2 * i + 2 * j;
return n * (n + 1);
i = i + 1;
}
j = j - 1;
}
if(i == j) sum = sum + 2 * i;
Hemos presentado tres Algoritmos para un problema con return sum;
diferentes tiempos de ejecución. Así mismo, escribir }
creativamente otros problemas con al menos dos algoritmos…
Conclusiones
• Para escribir un algoritmos utilizando un ciclo, considerar siempre inicializar las variables
de control de ciclo, acumuladores y contadores antes de ingresar al ciclo y modificar sus
valores dentro del ciclo.

• Como principio de la programación, un problema puede ser resuelto con diferentes


algoritmos todos ellos con diferentes tiempos de ejecución, con diferentes usos de
estructuras de datos y con usos de propiedades matemáticas y heurísticas del problema.

• Un ciclo se puede manejar de diferentes formas, cada forma debe ser interpretado
nítidamente, es decir; recorridos o tendencias de izquierda a derecho, de derecha a
izquierda, de los extremos al medio, del medio a los extremos y demás formas.

• Es recurrente caer en los ciclos infinitos, cuando se utiliza ciclos. En caso, que su
programa se ejecuta indefinidamente (se bloquea, se paraliza…), revisar el ciclo, es más
probable que sea un ciclo infinito o no ingresa al ciclo.

También podría gustarte