SE HAN DISPUESTO DOCUMENTOS EN PDF DE CADA TEMA, SE RECOMIENDA LOS DESCARGUE PARA MEJOR USO DE ESTOS.

sábado, 30 de enero de 2010

Iniciando la programación Parte 5


Estructura Algorítmicas – Parte III


Estructuras Repetitivas

Se puede decir que las estructuras repetitivas o cíclicas son aquellas que se emplean para realizar uno o más procesos una cantidad determinada de veces, esta cantidad puede ser fija es decir determinada previamente por el programador o puede ser variable, es decir practicamente depender de un valor dentro del programa.

Los ciclos repetitivos deben tener un inicio y un fin de lo contrario no se saldrian nunca del proceso que esten realizando, es decir los ciclos repetitivos deben iniciarse y detenerse en un momento de la ejecución del programa, para que entienda esto de ciclos repetitivos se expondrá mas adelante un ejemplo.

Las estructuras que repiten una secuencia de instrucciones un cierto numero determinado de veces se denominan bucles y al hecho de repetir la ejecución de una secuencia de acciones se denomina iteracción, es decir la acción que se repite en un bucle recibe el nombre de iteracción
Las estructuras repetitivas son:

Estructura DESDE PARA / FOR

Son aquellos ciclos en los que el numero de iteracciones se conocen antes de ejecutar el ciclo, la estructura es la siguiente:

Para (i = 0, i <= N, i + +)
Acciones
-
-
Fin para

i es una variable que actua como indice tiene además un valor inicial y un valor final, las acciones se ejecutaran desde el valor inicial hasta que este sea mayor que el valor final N donde N es el numero de iteracciones que especifique el usuario, a parte hay una sección donde el índice se incrementa en un valor, este incremento se representa con i + +, el ciclo para tiene una condición que será la que indique cuando termina de realizarse el ciclo.


Nota: Se habla de un indice, esto no quiere decir que i sea una letra o caractér reservada(o) del sistema, normalmente a través de ejemplos i se ha tomado como referencia y esto se ha transmitido de instructor a aprendiz, pero usted puede usar cualquier otra letra que actúe como índice, de hecho habrán momentos en los cuales hará uso de ciclos PARA de forma consecutiva o anidados y necesitará un índice para cada ciclo.

Para que usted entienda mejor la aplicación de la estructura PARA/FOR se realizará un pequeño ejemplo comparando la forma que usted había aprendido con la forma de trabajar con ciclos PARA.

Ejemplo

Realize un algoritmo que reciba a través del teclado 10 numeros y al final haga una suma de todos los numeros ingresados y muestre a través de la pantalla el resultado.

Método tradicional (sin ciclos repetitivos)

Análisis: Se deben ingresar 10 numeros independientes es decir se necesitan 10 variables, se necesita otra variable que se use para almacenar el resultado de la suma de los 10 numeros es decir 11 variables

Solución:

Inicio
Entero, num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, suma
Escribir “Ingrese primer numero” Leer num1
Escribir “Ingrese segundo numero” Leer num2
Escribir “Ingrese tercer numero” Leer num3
Escribir “Ingrese cuarto numero” Leer num4
Escribir “Ingrese quinto numero” Leer num5
Escribir “Ingrese sexto numero” Leer num6
Escribir “Ingrese séptimo numero” Leer num7
Escribir “Ingrese octavo numero” Leer num8
Escribir “Ingrese noveno numero” Leer num9
Escribir “Ingrese décimo numero” Leer num10

suma num1+ num2+ num3+ num4+ num5+ num6+ num7+ num8+ num9+ num10

Escribir “La suma de todos los numeros es ”suma
Fin

Es un proceso muy largo y desventajoso, si tuviesen que ingresar 20 numero serían 20 variables independientes, es un método poco conveniente cuando se trata de problemas como este.
Método con estructursa repetitivas

Análisis: Se deben ingresar 10 numeros independientes se usará una variables para los 10 numeros , se necesita otra variable de tipo acumuladora que se use para almacenar el resultado de la suma de los 10 numeros y una tercera variable que actúe como índice.

Solución

Inicio
Entero num, suma, i

Para (i = 0, i <= 9, i + +)
Escribir ”Ingrese un numero: ”
Leer num
suma ← suma + num
Fin para
Escribir “La suma es ”suma
Fin

La estructura repetitiva PARA tiene un indice y un final fíjese en el ejemplo como está estructurado.

Para (i = 0, i <= 9, i + +)

Índice = i
Inicio del índice = 0
Final del índice = 9
Condición: Se realizará hasta que el indice sea menor o igual que 9.

En el ejemplo se deben ingresar 10 numeros, si usted sigue la secuencia de cero 0 a nueve 9, encontrará 10 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, el cíclo PARA trabaja a través de posiciones, el cero es una posición en memoria, el 1 también y asi sucecivamente, el ciclo para a parte de tener un indice, un inici, un final debe tener un incremento el cual se representa en el ejemplo i ++ esto se entiende de la siguiente manera, i se incrementa en 1, fíjese en la siguiente tabla denominada Prueba de escritorio.







I
(Índice)
I < = 9
(Condición)
I + +
(Num. veces)
Numero ingresado
suma
0
VERDADERO
1
4
4
1
VERDADERO
2
14
18
2
VERDADERO
3
5
23
3
VERDADERO
4
7
30
4
VERDADERO
5
1
31
5
VERDADERO
6
2
33
6
VERDADERO
7
8
41
7
VERDADERO
8
7
48
8
VERDADERO
9
12
60
9
VERDADERO
10
30
90
10
FALSO
El ciclo se detiene y se cierra el programa

Explicando la tabla:

El ciclo PARA inicia con un valor 0 que en posición equivale a 1, y tiene un final 9, cuando i tiene el valor de 0, se pide el primer numero, al ingresar el primer numero y presionar enter ese numero se almacena en la variable suma y la variable indice i se incrementa en 1 es decir se inicia la solicitud del siguiente numero una vez más, al presionar enter se vuelve almacenar ese nuevo numero en la variable suma, pero ese numero se suma al que ya existia, nuevamente el indice se incrementa en uno es decir pedirá una vez mas que se ingrese un numero, este numero se almacena en la variable suma y se suma con los valores que ya estaban almacenados ahí, este proceso se realiza 10 veces hasta que se cumpla la condición establecida es decir hasta que la posición de i sea menor o igual que 10, cuando el programa llega a la undécima vez el indice se sale de la condición, siendo esta falsa por lo tanto se cierra el ciclo, se muestra el resultado de la suma y el programa en ejecución se encuentra en disposición de ser cerrado por el usuario.

En conclusión: El ciclo repetitivo PARA requiere de un indice, una iteracción, un inicio y fin, debe tener un numero de incrementación y debe realizarse hasta que se cumpla una condición.

Ejemplo

Realize un algoritmo / programa que permita ingresar las calificaciones finales de N estudiantes de una clase donde N es el numero de estudiantes que hay en el salón de clases, indíque cual será el índice, cual será la iteracción, cual será la condición, desde donde iniciará y cual será el final del índice, el índice debe incrementarse de 1 en 1.
Solución

Índice = i
Iteracción = N
Inicio del índice = 0
Final del índice = N
Condición: Se realizará hasta que el indice sea menor o igual que N.
Incremento = 1

Inicio

Reales calificacion, N

Escriba Ingrese el numero de estudiantes que hay en el salón de clase:
Leer N

para ( i = 0, i <= N, i + + )

Escriba Ingrese la calificación del estudiante i
Lea calificacion

fin para

Fin

Dentro de los ciclos repetitivos pueden usarse las estructuras de comparación, fíjese en el siguiente ejemplo.
Ejemplo

Realize un algoritmo / programa que permita ingresar las calificaciones finales de N estudiantes de una asignatura donde N es el numero de estudiantes que hay en esa asignatura, indíque cual será el índice, cual será la iteracción, cual será la condición o condiciones, desde donde iniciará y cual será el final del índice, el índice debe incrementarse de 1 en 1.

Nota:
El algoritmo / programa además debe validar lo siguiente:
La calificación mayor es 5.0
La calificación menor es 1.0
Se aprueba la asignatura con 3.0
Cuente cuantos estudiantes aprobaron la asignatura y cuantos no aprobaron, para esto debe usar una variable de tipo contador.
Solución

Índice = i
Iteracción = N
Inicio del índice = 0
Final del índice = N
Condición: Se realizará hasta que el indice sea menor o igual que N.
Incremento = 1

inicio
Entero N, aprobaron, no_aprobaron
Real calificacion
Escriba Ingrese el numero de estudiantes que hay en la asignatura:
Leer N

para ( i = 0, i <= N, i + + )

Escriba Ingrese la calificación del estudiante i
Lea calificacion
si ( ( calificación >= 1 ) AND ( calificacion <=2.9 ) ) entonces
no_aprobaron ← no_aprobaron + 1
sino
si ( ( calificacion >= 3) AND ( calificacion <= 5) ) entonces
aprobaron ← aprobaron + 1
fin si
fin si
fin para
Escriba “Aprobaron aprobaron
Escriba “No aprobaron ” no_aprobaron

Fin

Como se da cuenta dentro de los ciclos repetitivos se pueden realizar múltiples operaciónes en este caso se utilizaron estructuras condicionales anidadas o dobles como usted desee interpretarlo, igualmente se utilizaron dos variables de tipo contador que como se explicó en secciones anteriores, su función es acumular valores para luego mostrarlos o realizar alguna operación, e resultado de los contadores deben mostrarse fuera del ciclo repetitivo o causarán confusión.


Estructura MIENTRAS / WHILE

La estructura repetitiva mientras conocida también como while o do while “hacer mientras” es aquella en que el cuerpo del bucle (ciclo) se repite mientras se cumpla una determinada función.

A diferencia de la estructura para que se ejecuta un definido numero de veces, la estructura mientas se ejecuta un indeterminado o indefinido numero de veces hasta que se cumpla una condición o condiciones, dependiendo además de una variable booleana que actue como interruptor, es decir, tendrá esta variable dos estados un estado activo ON y un estado inactivo OFF, este tipo de variables se les conoce como switch (NO confundir con la estructura selectiva SWITCH).

Las variables tipo switch o SW actúan como un interruptor que se inicia en estado encendido y cuando se cumple cierta condición dentro de la estructura Mientras, esta variable SW cambia a estado apagado OFF, esto es lo que hace que se interrumpa el ciclo y se arrojen los resultados obtenidos/acumulados en el proceso.

Se ha dicho que la variable que actúa como interruptor es de tipo booleana porque tiene dos valores lógicos verdadero y falso, TRUE / FALSE que también equivale a 1 y 0 donde 1 puede tomar el valor verdadero y cero 0 el valor falso. La variable tipo interruptor se asemeja mucho al interruptor de encendido de las luces de una casa, tiene dos estados ON/OFF, por este motivo es que se le dice switch.

Estructura

Inicio
Mientras (condicion(es))
    Accion_1
    Accion_2
    Accion_n
Fin- mientras
Fin

Otra gran diferencia es que la estructura Mientras puede tener más de una condición, pero la estructura Para no lo puede hacer, tiene estipulado un inicio, fin, y única condicion.

Para que usted entienda la aplicación de esta estructura mientras se realizará un ejemplo.

En una institución educativa se desea realizar una encuesta por salón, cada salón tiene entre 25 y 30 estudiantes, la encuesta consiste en evaluar cuantos fumadores hay en cada salón y saber si el aire en dicho salón es contaminate, realize un algoritmo que permita saber cuantos fumadores hay en el salón teniendo en cuenta que si hay 5 estudiantes fumadores debe detenerse el programa y enviar un mensaje indicando que la población de fumadores ha llegado al límite, el programa debe detenerse aún cuando no se hayan encuestado todos los estudiantes, si no hay fumadores o no llegan al límite entonces el programa debe finalizar la encuesta hasta el último estudiante.

Análisis: El enunciado indica que debe haber una iteracción entre 25 y 30, la iteracción puede ser interrumpida si se cumple una condición, también indica que se necesita una variable de tipo contador, y una variable que interrumpa el ciclo cuando se cumpla la condición, a esta variable se le conoce como sw que traduce switch o interruptor.

Solución:
INICIO
Entero N, sw, i, fumadores, no_fumadores, respuesta

i ← 1
sw ← 0 Encendiendo interruptor
fumadores ← 0
no_fumadores ← 0

Escriba “Digite cantidad de estudiantes: ”
Leer N

Mientras ( ( i <= N) AND ( sw = 0) )
Escriba “El estudiante ” i ” Fuma? Elija su respuesta SI = 1 / NO = 2: ”
Leer respuesta
Si (respuesta = 1)
fumadores ← fumadores +1
Fin si
Sino
Si (respuesta = 2)
no_fumadores ← no_fumadores +1
Fin si
Si (fumadores >= 5 )
sw ← 3 Apagando interruptor
Fin si

i ← i +1 Incrementando ciclo o iteracción
Fin Mientras
Si (fumadores >=5)
Escriba ”La poblacion de fumadores ha llegado al limite permitido ”
Fin si
Sino
Si (( fumadores > 0 ) AND ( fumadores <= 4 ))
Escriba “ La poblacion de fumadores es minima o aceptable”
Fin si
Sino
Si (( fumadores = 0 ) AND ( no_fumadores = N ))
Escriba “ Felicidades no hay fumadores”
Fin si
FIN

Explicando el algoritmo

El algoritmo trabaja de la siguiente manera, se necesita crear una estructura cíclica o repetitiva que solicite una cantidad X de veces ingresar una respuesta por cada estudiante a través del teclado, la estructura debe además en su interior realizar un proceso el cual es ir contando cuantos estudiantes fuman, cuando el proceso lleve la cuenta de mas de 5 estudiantes debe interrumpirse el ciclo repetitivo.

Se usa la estructura Mientras pues es la única que permite se interrumpa el ciclo aún sin terminar pues la estructura Para debe finalizar su iteracción o ciclo para detenerse.
La estructura Mientras necesita un interruptor y un numero de iteracciones o ciclos, se ha usado el switch sw como interruptor y se han usado dos estados para el interruptor, el cero 0 se usa como estado de encendido ON y el 3 se usa como estado de interrupción o apagado OFF.
Una vez que se declaran las variables y constantes se deben asignar los valores de inicio para la variable interruptor sw las variables que funcionarán como acumuladoras o contadoras fumadores y no_fumadores además de la variable de iteracción i.

Los resultados deben mostrarse fuera del ciclo por lo cual, las ordenes de mostrado de mensajes deben ir fuera de la estructura Mientras, de lo contrario se mostrarán resultado tras resultado en cad ciclo dando los resultados o equivocados o de manera confusa.

Nota: Fíjese que la idea principal al realizar este ejemplo era que usted viera la manera de establecer las condiciones en el ciclo Mientras, se pueden establecer mas de una condición, la estructura las evalúa y segú la manera que se haya programado, se ejecutará el proceso o procesos.

Ahora le mostraré la codificación de este algoritmo en el lenguaje de programación C ++.





# include

using namespace std;
int main ()
{
int N, sw, i=1, fumadores, no_fumadores, respuesta;

sw=0; fumadores=0; no_fumadores=0;

cout<<"DIGITE CANTIDAD DE ESTUDIANTES: ";
cin>>N;
while ((i<=N)||(sw==0))
{
cout<<"EL ESTUDIANTE "<<< " FUMA? ELIJA SU RESPUESTA SI = 1 / NO = 2: ";
ci>>respuesta;
if (respuesta==1)
{
fumadores=fumadores++;

} else

if (respuesta==2)
{
no_fumadores=no_fumadores++;

}

if(fumadores>=5)
{
sw = 3;
}

i=i++;

}
if(fumadores>=5)
{
cout<<"LA POBLACION DE FUMADORES HA LLEGADO AL LIMITE PERMITIDO: "<<<" FUMADORES";}

else
if ((fumadores>0)&&(fumadores<=4)){
cout<<"LA POBLACION DE FUMADORES ES MINIMA O ACEPTABLE "<<<" FUMADORES";}
else
if ((fumadores==0)&&(no_fumadores==N)){
cout<<"FELICIDADES NO HAY FUMADORES!! "<<<" FUMADORES";}

}


¿Por qué el lenguaje C++ y no otro lenguaje actual?

Actualmente C++ es un lenguaje que no ha muerto sino que se mantiene con vida, es un lenguaje usado mucho aún, de este además se derivan otros lenguajes como Java y C# que es ele lenguaje a tratar en el transcurso de esta documentación titulada “Guías de Aprendizaje”.

C++ se ha tornado en un lenguaje básico, es la base para todo programador, C ++ es una variante de C que es un lenguaje muy especial, a partir de este se han creado sistemas muy importantes como GNU/Linux y aún en este potente sistema se usa C++, Nokia es una empresa importante que usa C++ y posee una variante de este llamada QT, librerias usadas en GNU/Linux para el diseño de interfaces gráficas muy elegantes.

Posteriormente se hará una introducción a la programación en sistemas informáticos usando primeramente C++, pues hay un propósito simple y es mostrar al usuario las características y semejanzas entre C++ y el actual lenguaje de programación más usado de Microsoft C# cuya pronunciación es C Sharp.


Existen otras estructuras repetitivas como el do-while, repeat que no serán tratadas en esta guia Evidencias de Aprendizaje, pero usted puede buscar sin problema alguno en Internet que encontrará mucha información al respecto.

Descargue este contenido en un archivo PDF aquí.

0 comentarios:

Publicar un comentario