Sei sulla pagina 1di 10

Ciclos Repetitivos

%RAS:


El CICLO MIENTRAS ejecuta un bloque de acciones `mientras que una condicin dada se cumpla,
es decir, cuando la condicin evala a verdadero. La condicin es evaluada antes de ejecutar el
bloque de acciones y si la condicin no se cumple, el bloque no se ejecuta. De esta manera es
que el nmero de repeticiones del bloque de acciones sea cero, pues, si la condicin la primera
vez evala a falso, el bloque no ser ejecutado alguna vez. La forma general del ciclo mientras
es la siguiente:


Cdigo:

mientras (condicin) hacer

<bloque de instrucciones>

fin_mientras


Donde, (condicin) es la condicin que determina si el bloque de accioneses ejecutado o no. Si la
condicin evala a verdadero el bloque es ejecutado y si evala a falso no es ejecutado. Despus
de ejecutar el bloque de acciones se vuelve a evaluar la condicin.







EJEMPLO 1.

Dado un nmero natural n se desea calcular la suma de los nmeros naturales desde 1 hasta n.

PROCEDIMIENTOS:
Objetos Conocidos un nmero natural.

Objetos Desconocidos Un nmero natural.

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

ESPECIFICACIN:

Entradas n Enteros, (n es el nmero dado).

Salidas suma Enteros, (suma es la suma de los primeros n nmeros naturales).

Condiciones


DISEO:

Primera Iteracin:

1. Leer el nmero

2. Recorrer los nmeros desde el cero hasta el nmero dado e irlos sumando.

3. escribir la suma

CODIGO:
$5oiler:


!ARA:


ciclo para, es una estructura de control en la que se puede indicar el nmero mximo de
iteraciones. Est disponible en casi todos los lenguajes de programacin imperativos.

',ri,-le de control: prcticamente 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
crptica quizs a primera vista es sin embargo una excelente forma de aportar agilidad de lectura
al cdigo por su uso tan extensivo. Como raras veces los bucles anidados superan las tres
dimensiones (por una sencilla cuestin de explosin exponencial), las letras i, j y k suelen ser las
nicas relacionadas con este uso. En C se define en el primer parmetro de la instruccin junto
con la inicializacin (opcional).

Inici,liz,cin de l, v,ri,-le de control: en pseudolenguaje se pide explicitarlo (es la seccin
:= ValorInicial), sin embargo, otros lenguajes ms permisivos como C no lo requieren de forma
obligatoria. De todos modos, la prctica de utilizar variables de control que no se inicializan en el
bucle no es recomendada para la legibilidad del cdigo. En C se define en el primer parmetro
del bucle junto con la variable de control.
Condicin de control: en pseudolenguaje se ve representado por el valor final que puede tomar
la variable de control (la seccin A ValorFinal). En C es el segundo parmetro y puede ser
cualquier condicin (ni siquiera es obligacin que est la variable de control, aunque una vez
ms, esto no se considera una buena prctica).

Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por
medio de la sentencia PASO = ValorPaso cualquier nmero entero (lase bien entero, o sea que
tcnicamente podemos decrementar). En C es el ltimo parmetro.
Cuerpo: es lo que se har en cada iteracin, pueden ser una o ms instrucciones. En
pseudolenguaje pesa la restriccin de no poder alterar el valor de la variable de control; esto no
es requerido en C, pero no se considera una buena prctica.

#!%#

Sintaxis:

repetir
hasta que
Iin repetir

El interprete ejecutara y a continuacion evaluara . De resultar Ialsa, el interprete vuelve al
principio de y repite el mismo proceso. se ejecutara al menos una vez.

0254
Cdigo:

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


Ejecucion del Programa:

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

EJECUCION 2
Repetir
PIDE NUMERO
1
SUMA991#ahora suma es 100
hasta que suma ~100 #como 100 no es mayor a 100 sino es igual entonces inicia de nuevo el ciclo

EJECUCION 3

REPETIR

PIDE NUMERO
1
SUMA1001# 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

CO%AOR%S Y ACLLLAORS




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 accion. Los contadores se utilizan con la Iinalidad de contar sucesos o acciones internas de un
bucle; deben realizar una operacion de inicializacion y posteriormente las sucesivas de incremento o decremento del
mismo. La inicializacion consiste en asignarle al contador un valor. Se situara antes y Iuera del bucle.
Representacion:
nombre del contador~
Si en vez de incremento es decremento se coloca un menos en lugar del mas.
Ejemplo: i i 1

ejemplo saber la cantidad de hombres y mujeres, esa Iuncion seria asi:

Cdigo:

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 si misma un conjunto de valores para de esta manera tener la suma de todos ellos en una
sola variable. La diIerencia 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.
Representacion:

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.
















Estructuras Repetitivas (Ciclos)
En C existen 3 estructuras repetitivas: whiIe, for y do .. whiIe
89ruc9ura WhiIe
Sintaxis:
while(condicin)
ccin;
En este caso, la sentencia ccin es ejecutada mientras el
condicional condicin se evala verdadera (distinta de 0)
En el caso de que el cuerpo del while (acciones a ejecutar en caso de
que el condicional se verifique) posea ms de una sentencia, todas ellas
son encerradas entre llaves:
while(condicin)

ccin1;
ccin2;

<
El condicional es una expresion relacional que puede involucrar
operadores relacionales (>, <, >=, <=, ==, !=) y/o operadores logicos (&&,
||, !)
Ejemplo:
/
Programa que imprime la tabla de conversin de
Fahrenheit a Celsius para F = 0, 20, 40,..., 300
/
#include <stdio.h

int main()
,
int Lower, Upper, Step;
float Fahr, Celsius;

Lower = 0;
Upper = 300;
Step = 20;
Fahr = Lower;

while(Fahr <= Upper)
,
Celsius = (5.0/9.0) (Fahr - 32.0);
printf("%4.0f F - %6.1f C\n", Fahr, Celsius);
Fahr = Fahr + Step;
, / fin del while /

return 0;
, / fin del main /
%$
azo whiIe(...) { ... }
Lo que se encuentra entre parntesis es una expresin a evaluar.
Mientras el resultado de la misma sea distinto de cero, se ejecutan las
sentencias asociadas que se encuentran encerradas entre llaves. A este
tipo de sentencias se las llama sentencias compuestas. Si el cuerpo de esta
sentencia consiste en una sola sentencia simple, pueden omitirse las llaves.
Las sentencias compuestas no llevan el carcter ; como terminador. Para
mejorar la legibilidad del programa, conviene indentar las sentencias
compuestas.
IcuIo y a8ignacin:
Celsius = (5.0/9.0) * (Fahr - 32.0)
El punto decimal en los operandos de la divisin es requerido para que la
operacin sea llevada en punto flotante; de lo contrario la misma se
efecta como cociente de nmeros enteros, truncando por lo tanto el
resultado a cifras enteras. En nuestro caso sera truncado a 0.
89ruc9ura for
Esta estructura es una generalizacin de la estructura whiIe usada en
el ejercicio anterior. Su funcin es ejecutar iterativamente el cuerpo del
bloque, que como en el caso delwhiIe puede ser simple o compuesto. La
definicin de esta estructura de control posee 3 partes separadas por el
carcter ";".
1or(a; -; c)



<
La parte a es la de inicializacin, y puede poseer una sentencia,
ninguna, o varias separadas por el carcter ",". Esta parte se ejecuta
inmediatamente antes de entrar en el ciclo.
La parte - es el criterio o condicin de control de la iteracin. Se
evala antes de entrar a cada ciclo, inclusive en la primer iteracin. Si
su resultado es distinto de cero se ejecuta el ciclo; sino se abandona el
ciclo y se sigue con la sentencia posterior al cuerpo del for.
La parte c es la reinicializacin, que es ejecutada al final de cada ciclo.
Podemos simular el bloque for con la siguiente lgica:
a;
while(-)



c;
<
Ejemplo:

/ Tabla de conversin de grados F a Celsius
utilizando constantes simblicas y bloque for /
#include <stdio.h

#define LJWER 0
#define UPPER 300
#define STEP 20

main()
,
int Fahr;

for(Fahr = LJWER; Fahr <= UPPER; Fahr += STEP)
printf("%4.0f F - %6.1f C\n", Fahr, (5.0/9.0)
(Fahr - 32));
,
%:
&so de con89an9e8 8im-Iica8. Cuando se requieran valores
numricos constantes en un programa, deben definirse como
constantes y no usar sus valores numricos dentro del programa. C
permite definir constantes simblicas
(directiva define al preprocesador) que asocian un smbolo (LOWER,
&PPER, STEP) con una expresin (0,300 y 20 respectivamente) de tal
manera que el preprocesador reemplaza cualquier ocurrencia de esos
smbolos por sus expresiones asociadas
Estructura Do-While
la estructura de control do-while es una variacin sobre el bloque while
do

ccin1;
ccin2;

<while(condicin);
La diferencia esta en que la condicin se chequea al final y las
acciones son ejecutadas al menos una vez. Por ejemplo
/
Programa que pide al usuario un nmero entero entre 1 y 10.
Se contina pidiendo el valor hasta que cumpla la condicin
/
#include <stdio.h

int main()
,
int n, error;

do ,
printf("Ingrese un nmero entero entre 1 y 10: ");
scanf("%d", &n);
if (error = (n < 1 || n 10))
printf("\nERRJR: Intentelo nuevamente!!\n\n");
, while(error);

/ ahora puedo procesar el valor ingresado sabiendo que es
correcto. /

return 0;
, / fin del main /

Potrebbero piacerti anche