Continuemos con el Para. Con esta estructura, no necesitaremos un contador, por que la misma esta hecha para reptirse a partir de una variable con un valor incial, hasta que la misma llegue a un valor final cuando se le suma o resta un valor del paso (de a uno en uno, de a dos en dos, y asi sucesivamente). Se podria decir que el contador ya viene con la estructura, por lo que solo la podremos usar para repetir un ciclo una cantidad determinada de veces, osea, si no supieramos cuantas veces se debe repetir una secuencia de sentencias, el Para no nos serviria. El Para solo sirve para repetir un ciclo solo si le marcamos la cantidad de veces.
Otra caracteristica mas, es que el ciclo de un Para,(a diferencia del Mientras) se ejecuta como minimo, 1 vez, puesto que el Para no tiene condiciones iniciales. Con el Mientras le poniamos una condicion, si al llegar al Mientras la primera vez, esta condicion no se cumplia, entonces el Mientras no se ejecutaba, con el para, esto es diferente por que no hay una condicion previa.
Se usa asi:
Para variable<-valor_inicial Hasta valor_final Con Paso paso Hacer
//Sentencias
FinPara
y el machete de siempre:
Para esta variable<-(que vale)este valor Hasta que valga esto Con Paso sumandole/restandole esto Hacer
//Todo estoFinPara
Osea que el bucle se repetira: para la variable inicial, sumandole/restandole el paso hasta que llegue al valor final. Se pueden dar cuenta, que al darle un valor inicial a la variable, es una inicializacion, el valor final es cuando se tiene que cortar el ciclo y el paso es el cambio que tiene la variable.
Este, es mas dificil de explicar, con ejemplos se va a entender mejor, es facil una vez que lo entendes. Vamos con un ejemplo:
Queremos un algoritmo de un programa, que pida el ingreso de 10 numeros y que los sume, para lo que necesitamos un acumulador.
Proceso ciclo_para
acum<-0; //inicializamos el acumulador ¿?
Para var<-0 Hasta 10 Con Paso 1 Hacer //a var que vale inicialmente 0 se le sumara 1 por cada ciclo hasta que valga 10, osea, el ciclo se repetira 10 veces.
Escribir "Ingrese numero";
Leer num;
acum<-acum+num; //acumulamos las variables num, supongamos que en el primer ciclo el usuario ingresa 10 entonces num vale 10, y acum va a valer acum+10 (0+10), entonces acum = 10, en el segundo ingresa 20 a num, acum va a valer acum+20 (10+20), entonces acum = 30 y asi sucesivamente.
FinPara
Escribir "Resultado: ", acum; //mostramos el acumulador, osea la suma de todos los num.
FinProceso
Corten! diran, ¿y a este pibe que le pasa? ¿que demonios es eso de acum? breve explicacion de acumulador: Que pasa, si en cualquier ciclo tenemos que sumar los numeros que ingresa el usuario, y este numero lo guardamos en una misma variable, cada vez que el ciclo se repite, el valor anterior de la variable no se suma, se reemplaza
Supongamos que en este ejercicio, el usuario ingresa primero 20, y guarda el numero 20 en la variable num, despues la segunda vez que se repite el Para ingresa 10, en este momento, la variable num no va a valer la suma de 20+10, si no que el 10 va a reemplazar el 20, entonces num vale 10. Que problema!, para esto, necesitamos una nueva variable que por cada ciclo del Para, valla sumando la variable num y la guarde, osea que valla acumulando los valores de num. Cada vez que pasa un ciclo, la variable acum toma el valor de si misma mas la de num (acum<-acum+num;). O sea, acum empieza valiendo 0 y el usuario ingresa 20 a num, hace: 0<-0+20;, apartir de aca, acum vale 20, en el segundo ciclo, la variable acum vale 20, y el usuario ingresa 10 a num, entonces 20<-20+10; a partir de aca, acum vale 30, y asi sucesivamente, de esta manera, a pesar de que num se reemplace, se va a ir guardando en nuestra variable acumuladora (acum). De mas esta decir, que a la variable acumuladora hay que inicializarla en 0 (o del valor que necesites) puesto que si no, tiene valor nulo, y como con los contadores, el programa no podria hacer: nulo<-nulo+num;.
Bueno, por ultimo, el Repetir, no hago mucho incapie en el Para, por que es muy innecesario por ahora, y de hecho el Repetir es muy parecido. Por ahora, tanto el Mientras, como el Para y el Repetir les van a parecer lo mismo, o casi lo mismo, pero se usan para diferentes cosas, si bien con uno solo alcanza, mas adelante les va a ser mas comodo trabajar con uno que con otro dependiendo cada caso.
En lo que es algoritmos, el Repetir seguro le es el mas comodo y facil, pero lo deje para lo ultimo por que mas adelante se usa muy poco. Se usa asi:
Repetir
//sentencias
Hasta Que (condicion)Y el machete de siempre:
Repetir
//todo esto
Hasta Que (Esto se deje de cumplir)Bueno, esta estructura es un bucle, y funciona de la misma manera que los anteriores. Pero este, al igual que el Para y a diferencia del Mientras, se ejecuta al menos una vez, por que como veran, la condicion esta al final. Osea que el Repetir comenzara a ejecutarse se cumpla o no la condicion la primera vez, puesto que recien al final el programa puede evaluarla. Y nada mas, lo podemos usar como una alternativa, o por comodidad, pero de la misma manera que el Mientras y el Para. No voy a poner mas nada acerca de este bucle por que me parece que no hay nada mas que poner, pruevenlo si no se entiende, pero es facil y parecido a los anteriores :). Bueno, este es el fin, agregare unos detallitos mas y un resumen de todo, pero aca termina lo basico para saber hacer algoritmos, y empezar a programar. Espero que todo se entienda! Saludos!!
No hay comentarios:
Publicar un comentario