miércoles, 18 de julio de 2012

ciclos repetitivos


El CICLO MIENTRAS ejecuta 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:




Código:

mientras (condición) hacer

      <bloque de instrucciones>

  fin_mientras



Donde, (condición) es la condición que determina si el bloque de accionases ejecutado o no. Si la condición evalúa a verdadero el bloque es ejecutado y si evalúa a falso no es ejecutado. Después de ejecutar el bloque de acciones se vuelve a evaluar la condición.








EJEMPLO 1.

Dado un número natural n se desea calcular la suma de los números naturales desde 1 hasta n.

PROCEDIMIENTOS:
Objetos Conocidos un número natural. 

Objetos Desconocidos Un número natural. 

Condiciones El número buscado es la suma de los naturales empezando en cero hasta el número dado. 

ESPECIFICACIÓN:

Entradas n Î Enteros, (n es el número dado). 

Salidas suma Î Enteros, (suma es la suma de los primeros n números naturales). 

Condiciones 


DISEÑO: 

Primera Iteración:

1. Leer el número 

2. Recorrer los números desde el cero hasta el número dado e irlos sumando.

3. escribir la suma 

CODIGO:

Spoiler:



PARA:


ciclo para, es una estructura de control en la que se puede indicar el número máximo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos.

Variable de control: prácticamente un mandato impuesto por el uso habitual es utilizar la letra i como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional). 

Inicialización de la variable de control: en pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control. 
Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica). 

Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro. 
Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica. 

REPETIR:

Sintaxis: 

repetir 
hasta que 
fin repetir

El intérprete ejecutará y a continuación evaluará . De resultar falsa, el intérprete vuelve al principio de y repite el mismo proceso. se ejecutará al menos una vez.

Ejemplo:

Código:

declarar variable entera suma
 Suma=0
declarar variable entera Entrada
repetir
imprime "Introduce un número"
lee Entrada
Suma=Suma+Entrada
hasta que Suma>100
imprime "La suma de todas las entradas sobrepasa a 100"


Ejecución del Programa:

EFECUCION 1
REPETIR
PIDE NUMERO: 
99#INGRESAMOS UN NUMERO ENTERO
suma=0+99#GUARDA EN SUMA EL VALOR 99
HASTA QUE SUMA>100 #no se cumple entonces entra de nuevo al ciclo

EJECUCIÓN 2
Repetir
PIDE NUMERO
1
SUMA=99+1#ahora suma es 100
hasta que suma >100 #como 100 no es mayor a 100 sino es igual entonces inicia de nuevo el ciclo

EJECUCIÓN 3

REPETIR

PIDE NUMERO 
1
SUMA=100+1# SE INGRESA EL VALOR NUEVO + EL VALOR ANTERIOR
HASTA QUE SUMA > 100 # SI SE CUMPLE Y FIN DE CICLO

SE IMPRIME MENSAJE
La suma de todas las entradas sobrepasa a 100


CONTADORTES Y ACUMULADORES

CONTADOR: 
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor. Se situará antes y fuera del bucle.
Representación:
=nombre del contador> + 
Si en vez de incremento es decremento se coloca un menos en lugar del más.
Ejemplo: i = i + 1

ejemplo saber la cantidad de hombres y mujeres, esa funcion seria asi:
Código:

si(sexo='m')
    contador_de_hombres=contador_de_hombres+1
sino
    contador_de_mujeres=contador_de_mujeres+1


ACUMULADOR O TOTALIZADOR :

Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno, el acumulador va aumentando en una cantidad variable.
Representación: 

Ejemplo: 
Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. Se desea resolver el problema usando estructura Desde, Mientras y luego Repetir.

No hay comentarios:

Publicar un comentario