Translate

domingo, 26 de abril de 2015

CICLO PARA (SEMANA 9)

DEFINICIÓN

El CICLO PARA permite la ejecución repetida de un conjunto de acciones. El número de veces que el bloque es ejecutado esta determinado por los valores que puede tomar una variable contadora (de tipo entero), en un rango definido por un límite inferior (inclusive) y un límite superior (inclusive). Después de ejecutar el bloque de acciones en cada iteración, la variable contadora es incrementada en uno (1) automáticamente y en el momento en que la variable sobrepasa el límite superior el ciclo termina.

La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS y repetitivos , es que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo que muchas veces puede redundar en una optimización del código por parte de los compiladores. Los condicionales constituyen junto con los bucles los pilares de la programaciòn estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.

ESTRUCTURA

PARA id DESDE v_inicial HASTA v_final CON_VARIACION [variable o constante]
Instrucciones
Fin(PARA)

Ejemplo 1
Algoritmo muestra_numeros
Variables:
i: entero
INICIO
PARA i DESDE 1 HASTA 10 CON_VARIACION +1
ESCRIBA(i)
Fin(PARA)
FIN
Fin(muestra_numeros)

Ejemplo 2
Algoritmo muestra_numeros
Variables:
i: entero
INICIO
PARA i DESDE 1 HASTA 10 CON_VARIACION +2
ESCRIBA(i)
Fin(PARA)
FIN
Fin(muestra_numeros)

Ejemplo 3
Algoritmo muestra_numeros
Variables:
i: entero
INICIO
PARA i DESDE 10 HASTA 1 CON_VARIACION -1
ESCRIBA(i)
Fin(PARA)
FIN
Fin(muestra_numeros)

APLICACIÓN

Su uso principal se orienta a los vectores, pudiendo modificar, agregar, eliminar o consultar datos que se encuentren según el índice. Por esto último, una condición mínima del vector es que debe ser ordenado, por que si se intenta leer un dato inexistente, esto genera un error de programación.


REFERENCIAS

Gran parte de lo que se encuentra aqui escrito fue tomado de la clase de algoritmos y programacion dictada por la universidad de Antioquia
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo3/cap_04/leccion_4.html
http://es.wikipedia.org/wiki/Bucle_for

viernes, 17 de abril de 2015

EJERCICIOS CICLO MIENTRAS (SEMANA 8)

EJERCICIOS RESUELTOS

1. Un profesor desea registrar las notas obtenidas por 20 de sus estudiantes, discriminando si son hombres o mujeres.
Se requiere un programa que capture la nota y el sexo (1 para hombres y 2 para mujeres) y realice un promedio para cada uno de los tipos. Al final debe indicar cuál de los dos (hombres o mujeres) tuvo un mejor desempeño 

 Algoritmo notas

Variables
nota, promedioh, promediom, acumh, acumm: reales
sexo, numest, conth, contm: entero

INICIO
numest=20
i=1 
acumh=0
acumm=0
conth=0
contm=0
MIENTRAS i<=numest
ESCRIBA(“Ingrese la nota y el sexo”)
LEA(nota, sexo)
SI sexo==1
acumh= acumh+ nota
conth=conth+1
DE_LO_CONTRARIO
acumm= acumm+nota
contm=contm+1
Fin(SI)
Fin(MIENTRAS)
Promedioh=acumh/conth
Promediom=acumm/conth
SI promedio>promediom
ESCRIBA(“Los hombres son mejores”)
DE_LO_CONTRARIO
SI promedio > promedioh
ESCRIBA(“Tienen un desempeño igual”)
Fin (SI)
Fin (SI)
FIN
Fin (notas)


2. Un ama de casa requiere comprar 15 productos. Realizar un algoritmo que capture el precio  de cada producto y al final indique cuantos productos costaron menos de 10000 y 10000 o más. Además debe indicar el total de la compra.

Algoritmo precio

Variables
numprod, i, , contmenor, contmayigu: entero
total_compra, precio= reales

INICIO
numprod= 15
i= 1
precio=0
total_compra= 0
contmenor= 0
contmayor= 0
MIENTRAS i<= numprod
ESCRIBA (“ingrese el precio”)
LEA(precio)
total_compra=total_compra+precio
SI precio<10000
contmenor= contmenor +1
i=i+1
DE_LO_CONTRARIO
SI precio>=10000
contmayigu= contmayigu+1
Fin(SI)
Fin (MIENTRAS)
ESCRIBA(“El total de la compra fue de:”,total_compra)
ESCRIBA(“El numero de productos con precio mayor o igual a 10000 es de:”, contmayigu)
ESCRIBA(“El numero de productos con precio menor a 10000 es de:”, contmenor)
FIN
Fin(precio)


3. Elabore un programa que imprima la tabla de multiplicar de un numero  que se pida  y vaya desde el 1 hasta el 10.

Algoritmo tabla_multiplicar

Variables
i, numero, resultado, j: enteros

INICIO
ESCRIBA(“Ingrese el numero que desea saber”)
LEA(numero)
I=1
MIENTRAS i<=10
J=1
MIENTRAS j<=10
resultado= i * j
ESCRIBA(numero”x”,i,”=”resultado)
I=i+1
Fin (MIENTRAS)
FIN
Fin (tabla_multiplicar)


APLICACIÓN

Estos ejercicios resueltos bajo el ciclo mientras se pueden aplicar a cada una de las situaciones ya descritas o alguna que se asemeje, ademas es un claro ejemplo del manejo de este ciclo. Es de resaltar que es muy importante realizar después de desarrollar cada ejercicio una prueba de escritorio, con la cual se constate su  buen funcionamiento. 


REFERENCIAS

Estos ejercicios fueron tomados de la clase de algoritmos y programación dictados por la Universidad de Antioquia (facultad de ingenieria).
dis.unal.edu.co/~programacion/book/modulo2b.pd
www.virtual.unal.edu.co/cursos/ingenieria/2001839/.../leccion_5.htm

viernes, 10 de abril de 2015

CICLO MIENTRAS (SEMANA 7)

DEFINICIÓN


La estructura CICLO MIENTRAS  esta conformada por instrucciones que permiten al programador  instruir la maquina para que ejecute  un bloque de acciones ‘mientras’ que una condición dada se cumpla, es decir, cuando la condición evalúa a verdadero. La condición es evaluada antes de ejecutar el bloque de acciones y si la condición no se cumple, el bloque no se ejecuta. De esta manera es que el número de repeticiones del bloque de acciones sea cero, pues, si la condición la primera vez evalúa a falso, el bloque no será ejecutado alguna vez. 

La forma general del ciclo mientras es la siguiente: 
Resultado de imagen para forma general ciclo mientrasLa condición puede ser una expresión relacional o lógica. Por lo general se evalúa el valor de una variable que cambia durante cada iteracion. La llamada variable de control.

Pasos para la estructura MIENTRAS
1. Definir cual es la instruccion repetitiva.
2. Definir la condicion y variable de control que expresa hasta cuando se deben iterar las instrucciones.

Ejemplos de Condicion
Turno <= 10
dinero >10000 & usuarios > 30
intereses <= 1,1
i < 20

Variable contadora
Sirven para llevar control de una secuencia de numeros o contar eventos. Se adiciona por lo regular un numero constante.
La técnica es:
  1. Inicializar una variable a cero o uno antes del ciclo repetitivo.
  2. Dentro del ciclo repetitivo, incrementar en uno la variable.
            i= 0...
            i=i+1
            i=1+2

Variable acumuladora
Es similar al contador y sirven para acumular cantidades relacionadas con el resultado de una instrucción. Se inicializa en cero y en cada repetición se incrementa en diferentes valores. El resultado final es que la variable acumula la suma de los valores añadidos en cada repetición.

salario= horas*valor_hora
total_salarios= total_salarios+salario


Ejemplo:
Elabore un algoritmo que sume los numeros de 1 hasta n. Siendo n un numero que ingresa el usuario.

Algoritmo suma
variables:
         i: entero

         suma: entero
         n: entero

INICIO
         i := 1
         suma := 0

ESCRIBA("Ingrese el valor n")
LEA(n)
MIENTRAS (i <= n

         suma := suma + i 
         i := + 1Fin(MIENTRAS)

ESCRIBA( “La suma de los valores es:”, suma)
FIN

Fin( suma )


APLICACIONES 

El CICLO MIENTRAS permite ejecutar un bloque de instrucciones mientras que la evaluación de una expresión lógica de cómo resultado verdadero; lo que lo hace de utilidad en la ingeniería ambiental para casos como la realización de un algoritmo de secuencia fibonacci en donde se necesiten configuraciones biológicas, como por ejemplo en las ramas de los árboles, en la disposición de las hojas en el tallo, en la flora de la alcachofa, las inflorescencias del brécol romanesco y en el arreglo de un cono. Ademas en modelos de crecimiento poblacional de alguna especie animal en un ecositema o comunidad.


REFERENCIAS
http://www.edu4java.com/es/java/sentencia-while-variable-contador-acumulador.html
http://dis.unal.edu.co/~programacion/book/modulo2b.pdf
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo3/cap_04/leccion_1.html