20/7/2009

Bienvenidos a mi Blog!

Mi nombre es Carlos Campos y a continuación les presento mi blog creado con la finalidad de que aprendan más sobre este objetivo y le guste ya que deseo aprobar la evolución con buena nota para si avanzar y poder pasar a una siguiente etapa de la carrera que me permitirá aprender mas sobre estructuras de datos y programación.

En este blog podran encontrar todo lo referente a Estructuras Cíclicas, Qué es una iteración, Estructuras Hacer Para (For), Estructuras Hacer mientras (While), Estructuras Repetir hasta (Repeat), Con ejercicios y ejemplos que les ayudara aprender mas sobre la materia.

Para que tengan una idea de que es un algoritmo aqui les muestro un ejemplo.

Espero que les guste, suerte!

Que son Estructuras Cíclicas o repetitivas ?

Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).

Qué es una iteración o ciclo?

Iteración en programación es la repetición de una serie de instrucciones un programa de computadora. Puede usarse tanto como un término genérico (como sinónimo de repetición) así como para describir una forma específica de repetición con un estado mutable.

Cuando se usa en el primer sentido, la recursividad es un ejemplo de iteración, pero que usa su propia notación (notación recursiva), que no es el caso de iteración.

Sin embargo, cuando se usa en el segundo sentido (caso más restringido), la iteración describe el estilo de programación usado en lenguajes de programación imperativa. Esto está en contraposición de la recursividad, la cual tiene un enfoque más declarativo.

He aquí un ejemplo de iteración, en pseudocódigo imperativo:

 var i, a := 0        // inicializo a antes de comenzar la iteración
 for i from 1 to 3 {  // ciclo 3 veces
     a := a + i       // incremento a con el valor actual de i
 }
 print a              // se imprime el número 6

Algoritmos resueltos con la estructuras (Hacer Para, Hacer Mientras, Repetir Hasta)

A continuación presentaremos una serie de ejercicios de las estructuras (Hacer Para,Hacer Mientras,Repetir Hasta)

1.- Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagara cada cliente y cuanto percibirá la tienda por esas compras. (Estructura Hacer Para).

Inicio

---Hacer para C: 1 a 15
----Leer: Kc, Pk

----Si Kc >10 entonces
------Sub: Kc*Pk
------Des: Sub* 0.15
------Tp: Sub - Des

-----Si no
------Tp: Kc*Pk

----Fin-Si
----Imprimir: “Su Precio a Pagar es;” Tp

---Fin-para

Fin

2.- En una empresa se requiere calcular el salario semanal de cada uno de los N obreros que laboran en ella. El salario se obtiene de la sig. forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra. (Estructura Hacer Mientras).

Inicio

---Leer: N
---Hacer mientras N
----Leer: Ht

----Si Ht <= 40 entonces ------Ss: Ht*20 -----Si no ------He: Ht-40 ------Se: He*25 ------Ss: 800+Se ----Fin-Si ----Imprimir: “Su salario semanal es;” Ss ---Fin-mientras Fin


3.-En la Cámara de Diputados se levanta una encuesta con todos los integrantes con el fin de determinar qué porcentaje de los “N” diputados está a favor del Tratado de Libre Comercio, que porcentaje está en contra y que porcentaje se abstiene de opinar. (Estructura Repetir Hasta).

Inicio

---Leer: N
------Repetir N

------Leer: Df, De, Da

---Hasta N=0
---Imprimir: Df, De, Da

Fin

Para comprender más cada uno de estos ejercicios resueltos mas abajo podras ver una serie de ejemplo de cada unas de las estructuras resueltas.

Definición de Estructuras "Hacer Para (For)"

La estructura for sirve para repetir un código dependiendo de un contador. Veamos un ejemplo:

int contador;

for (contador = 1; contador<=10; contador++)
{
printf(“Repetición numero %d\n”, contador);
};

Primero se crea la variable contador de tipo entero (será la variable de control en el for). Luego se ejecuta la estructura for iniciando la variablecontador en 1. Luego se verifica que se cumple la condición contador<=10 y se ejecuta el bloque dentro de la estructura, o sea, imprime en pantallaRepetición número 1.

Luego la variable contador es incrementada en uno con la expresióncontador++ y el ciclo se inicia otra vez. La variable contador ahora vale 2, por lo tanto se verifica la condición y se vuelve a ejecutar el código. Este proceso se ejecuta hasta que contador toma el número 11 y la condición se hace falsa y no ejecuta el bloque.

Este código imprimirá en pantalla lo siguiente:

Repetición numero 1
Repetición numero 2
Repetición numero 3
Repetición numero 4
Repetición numero 5
Repetición numero 6
Repetición numero 7
Repetición numero 8
Repetición numero 9
Repetición numero 10


Las tres expresiones que componen la estructura for en C son opcionales, por lo tanto se pueden omitir en ciertos casos. Si se omite la primera (la inicialización de la variable de control), significa que la variable se inicializa en otra parte del programa. Si se omite la segunda expresión, la estructura for entraría en un ciclo infinito, lo cual es considerado un error. Si se omite la tercera expresión significa que la variable de control es calculada dentro del bloque de for.

La tercera expresión puede ser tanto un incremento como un decremento en uno o más. También puede ser más compleja agregando más instrucciones con el uso de la coma. Por ejemplo:


for (contador = 1; contador<=10;
suma += contador, contador += 2)

Como vemos, la tercera expresión no sólo suma contador de dos en dos sino que además en cada repetición ejecuta la operación suma += contador.

Definición de Estructuras "Hacer mientras (While)"

Esta estructura de repetición le permite al programador especificar las veces que se repita u
na acción mientras una condición se mantenga verdadera. La forma del while es:

while (condición)
{
bloque de instrucciones
};

Mientras la condición se mantenga verdadera, se ejecutará X cantidad de veces el bloque de instrucciones dentro de las llaves. Es necesario que alguna vez la condición se haga falsa, pues de lo contrario se entraría en un ciclo infinito de repeticiones y el programa se consideraría bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructurawhile se ejecute alguna acción que en algún momento haga que la condició
n sea falsa.

Veamos un ejemplo para ver funcionar la estructura de repetición while:

int num;

num = 0;while (num<=10) { printf(“Repe
tición numero %d\n”, num); num = num + 1; };

El código anterior imprimirá en pantalla:

Repetición numero 0
Repetición numero 1
Repetición numero 2
Repetición numero 3
Repetición numero 4
Repetición numero 5 Repetición numero 6
Repetición numero 7
Repetición numero 8
Repetición numero 9 Repetición numero 10


¿Por qué? Vemos que iniciamos la variable del tipo entero num en cero. Luego, se evalúa por primera vez si es menor o igual a 10, al ser verdadera, se ejecuta el bloque dentro del while por primera vez. Se imprime Repetición numero 0, pues el valor dentro de num es cero. Luego el proceso se repite hasta que num con valor 10 se le suma 1, y toma el valor 11.

Se evalúa la condición del while y se determina que NO se cumple, por lo tanto, salta el bloque y sigue la ejecución del programa.

Un Ejemplo:

Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado.
Solución.
Como recordarás, resolvimos este ejercicio en la lección anterior pero utilizando la estructura Desde. Hoy lo haremos con la estructura Mientras.Que tendremos de diferente?

Definición de Estructuras "Repetir hasta (Repeat)"

Una de las estructuras de repetición empleada en la programación de algoritmos para repetir un código (una o más sentencias de programación). En algunos lenguajes (como C) el "repeat" es llamada "do".

Es similar al while. En while la condición para que se repita el bloque de instrucciones se evalúa desde el principio del ciclo de repeticiones, en cambio, en la estructura do-while, al principio se ejecuta el bloque y luego se evalúa la condición para ver si se sigue ejecutando o no. Esto significa que el bloque se ejecutará por lo menos una vez.

La forma de esta estructura repeat en C (empleando DO) es:

do {
bloque de enunciados
} while (condición);

Veamos un ejemplo en donde se imprimen los números del 1 al 10 usando esta estructura. Al final también se imprime en pantalla el valor contenido en la variable principal a fin de mostrar cuál es su valor final.

num = 1;
do {
printf(“%d
”, num);
num = num + 1;

} while (num<=10);

printf(“La variable num vale: %d
”, num);

Esto imprime en pantalla:

1
2
3
4
5
6
7
8
9
10
La variable num vale: 11