UNIVERSIDAD DE EL SALVADOR
EDUCACIÓN A DISTANCIA
LÓGICA Y ALGORITMOS
LYA115
UNIDAD 4
LÓGICA ESTRUCTURADA, ESTRUCTURAS
REPETITIVAS
UNIVERSIDAD DE EL SALVADOR
EDUCACIÓN A DISTANCIA
LÓGICA Y ALGORITMOS
LYA115
LÓGICA ESTRUCTURADA, ESTRUCTURAS
REPETITIVAS
Agenda
1. Estructuras Repetitivas
2. Conceptos
3. Operadores extras
4. Estructuras de entrada condicionada
5. Estructura Controlada por un contador
6. Estructura de entrada asegurada
7. Ciclos Anidados
Definición de Estructura Repetitiva
• Se conoce como estructura iterativa, ciclo, bucle,
lazo o estructura repetitiva, al conjunto de
bloques y flechas que nos permite, representar
en un flujograma que, una acción (o varias) se
puede realizar una o varias veces (en algunos
casos especiales ninguna vez) de acuerdo a una
condición.
Conceptos
Las estructuras repetitivas son tres, una
fundamental y dos derivadas de ésta:
• Entrada Condicionada o estructura Mientras,
(Estructura Fundamental)
• Entrada asegurada o estructura Hacer - Hasta
que (Estructura derivada)
• Ciclo controlado por contador o estructura
Desde _ hasta (Estructura derivada)
Conceptos
• Para representar gráficamente una estructura
repetitiva, haremos uso de los siguientes
símbolos o bloques:
Este es el símbolo especial para
representar las tres estructuras
repetitivas, por lo tanto es
necesario aclarar a cual de ellas
representamos
Conceptos
Cuerpo del Ciclo
Esta formado por la acción que se repite en un bucle y
puede estar formada por una o más estructuras lógicas
de control:
• Secuenciales (entrada de datos, asignación / proceso
, salida de datos),
• Selectivas (simple, doble, anidada, múltiple)
• Repetitivas (entrada condicionada, entrada
asegurada, controlada por contador)
• Combinación de las anteriores.
Conceptos
Iteración:
• A la ejecución del cuerpo del ciclo se le conoce
como iteración.
• Una iteración es cada una de las ejecuciones (o
veces que se repite) del cuerpo del ciclo.
• Ejemplo :
• Si el cuerpo del ciclo o acción a repetir, se realiza 5 veces,
se dice que se ejecutan 5 iteraciones.
Conceptos
Variable tipo Bandera:
• Una bandera es un tipo de variable que
solamente puede almacenar uno de dos valores,
normalmente cero (0) o uno (1),
• Recordar que cero es el valor numérico para
falso y uno (o cualquier otro valor diferente de
cero) se considera el valor numérico para cierto.
Conceptos
Centinela:
• Un centinela es un dato que nos permite realizar
una acción determinada, normalmente se utiliza
para ejecutar (o repetir) una acción o cuerpo de
ciclo o dejar de hacerlo.
• Siempre que evaluamos una condición (incluso
utilizando una estructura selectiva) tenemos
incluido el concepto de centinela: es el valor que
nos permite ejecutar una acción determinada
Conceptos
Centinela
• La mayoría de las veces es un dato constante,
siempre forma parte de una condición y es el
dato que aparece al lado derecho de un
operador relacional.
a < 8 // 8 es considerado centinela
a < 8 && a >= 2 // Existen dos centinelas 8 y 2
Conceptos
El centinela puede estar en una variable, siendo
siempre la variable que está al lado derecho del
operador relacional:
x >= a // La variable a se considera centinela
Puede estar formulado como un proceso
matemático:
x != 2*(a + 8) //En este caso el centinela es el
resultado del cálculo
Conceptos
Se acostumbra fijar como centinela un número que
no cumpla con las restricciones del dato o un valor
completamente ilógico para ese dato:
edad == -1 //Aquí el -1 es el centinela
sueldo != 0 //El centinela es el número 0
Conceptos
Contador:
Es una variable que controla o “cuenta” el número
de veces que se repite cierta actividad o proceso.
A esta variable se le debe asignar un nombre o
identificador
Además, para definir correctamente una variable
contador, se debe de indicar lo siguiente:
• Valor inicial: Representa el número a partir del cual se
empieza a contar.
Conceptos
Contador:
• Valor final: Representa el número hasta el que se va a
contar.
• Valor de cambio: Indica de cuanto en cuanto se realiza la
cuenta constante.
• Es importante recordar que independientemente
de si el valor de cambio de un contador es
positivo o negativo, éste (el valor de cambio)
siempre es constante.
Conceptos
Acumulador:
• Es una variable que “almacena” el resultado final
de sumar todos los distintos valores que toma una
variable, para definirla, también es necesario
indicar:
• Valor inicial: Representa el valor original o inicial
del acumulador
• Valor final: El último valor que toma el
acumulador
• Valor de cambio: Representa cada valor de la
variable que se va sumando o acumulando. Este
valor puede ser constante o variable.
Estructura de Entrada condicionada
• Para poder comprender y aplicar la estructura DE
ENTRADA CONDICIONADA, conocida también
como Estructura MIENTRAS, se le distingue
también como Estructura Fundamental.
• De esta estructura, se diseñaron las otras 2
estructuras, que se conocen como Estructuras
Derivadas.
Estructura de Entrada condicionada
Representación Gráfica
• Para representar gráficamente una estructura
MIENTRAS, vamos a utilizar el símbolo especial que
se muestra en la figura , aunque también se puede
utilizar el rombo, como se muestra a continuación:
Estructura de Entrada condicionada
Representación Gráfica
Estructura MIENTRAS
Nótese que en el
gráfico de la derecha,
los caminos o rutas que
salen del rombo nunca
se unen, como sucede
en la Estructura
Selectiva.
Estructura de Entrada condicionada
Funcionamiento de la Estructura Mientras
• Esta estructura, nos permite realizar el cuerpo del
ciclo las veces que sea necesario, siempre y cuando
se cumpla una condición
• Dicho en otras palabras: Mientras la condición de
como resultado cierto, el cuerpo del ciclo se realiza
(ejecuta o repite).
Estructura de Entrada condicionada
Funcionamiento de la Estructura Mientras
• Al entrar a la estructura se evalúa la condición, si el
resultado es falso, la acción no se ejecuta.
• Si al contrario la condición resulta cierta, se realiza
la acción y se regresa a evaluar la condición de
nuevo.
Estructura de Entrada condicionada
Funcionamiento de la Estructura Mientras
• El cuerpo del ciclo puede ser que se ejecute:
ninguna vez, una vez o varias veces, dependiendo
del resultado de la condición.
• Por esta razón, a estos ciclos se les denomina ciclos
con entrada condicionada, se entra al cuerpo del
ciclo si la condición se cumple
Estructura de Entrada condicionada
Funcionamiento de la Estructura Mientras
Estructura de Entrada condicionada
Funcionamiento de la Estructura Mientras
• Dentro del cuerpo del ciclo debe existir alguna
estructura que modifique el resultado lógico (de
verdadero a falso) de la condición; si esto no
sucede, la estructura repetitiva se quedaría
ejecutando el cuerpo del ciclo indefinidamente ya
que para salir de la estructura la condición debe
dar como resultado falso, en este caso el ciclo se
denomina bucle infinito o sin fin y el algoritmo no
termina nunca su ejecución, situación que DEBE
evitarse
Estructura de Entrada condicionada
Reglas de Funcionamiento:
Las siguientes normas o reglas deben de cumplirse,
cuando utilicemos una estructura MIENTRAS:
1. La condición (expresión lógica) es lo primero que
se evalúa al llegar a la estructura; cuando el
resultado es “Verdadero”, se ejecuta el cuerpo del
ciclo (y se regresa a evaluarla la condición), cuando
el resultado es “Falso” se sigue la flecha de salida de
la estructura.
Estructura de Entrada condicionada
Reglas De Funcionamiento:
2. Cuando la condición se evalúa a “Falso”, al entrar
a la estructura por primera vez, el cuerpo del bucle
no se ejecutará nunca. En este caso se dice que el
bucle se ha ejecutado cero veces.
Estructura de Entrada condicionada
Reglas De Funcionamiento:
3. Mientras la condición dé cómo resultado
“Verdadera” el cuerpo del ciclo se va a continuar
ejecutando.
4. La única forma de salir del ciclo MIENTRAS, es
obteniendo un resultado de falso en la expresión
lógica.
Ejemplo 1 (Estructura de Entrada condicionada)
Enunciado
Diseñe un flujograma que Imprima los n primeros
números enteros positivos
Ejemplo 1 (Estructura de Entrada condicionada)
Análisis
a. Definición de Variables de Salida
b. Definición de Datos de Entrada:
Variables:
Constantes: No son necesarias
c. Restricciones: n>0
Ejemplo 1 (Estructura de Entrada condicionada)
Análisis
d. Proceso:
Lo que haremos es leer la cantidad de números que
vamos a imprimir y verificar que cumpla la
restricción; luego iniciar con num=1; imprimirlo y
aumentarle 1, mientras num sea menor o igual que
n
Ejemplo 1 (Estructura de Entrada condicionada)
Análisis
d. Proceso:
e. Definición de Variables de Proceso: No existen
Ejemplo 1
Diseño
Ejemplo 1 (Estructura de Entrada condicionada)
Diseño
Ejemplo 1 (Estructura de Entrada condicionada)
• La estructura iterativa de entrada condicionada
necesita solamente la palabra reservada while,
que justamente en español significa mientras, los
paréntesis ( ) para encerrar la condición y las { }
para delimitar el cuerpo del ciclo:
Ejemplo 1 (Codificación)
//Programa que genera n numeros enteros positivos, iniciando de 1
#include<stdio.h>
else
#include<conio.h>
puts(“Error en datos”);
main()
getch();
{
return 0;
int n, num=1;
}
puts(“Cuantos números quiere imprimir?”);
scanf(“%i”, &n);
if (n>0)
{
printf(“\n \n \n %i \t NUMEROS ENTEROS POSITIVOS”, n);
while (num<=n)
{
printf(“\n %i”, num);
num = num+1;
Ejemplo 1 (Codificación)
//Programa que genera n numeros enteros positivos, iniciando de 1
//usando validación de datos
#include<stdio.h>
#include<conio.h>
main()
{
int n, num=1;
puts(“Cuantos números quiere imprimir?”);
scanf(“%i”, &n);
while (n<=0) //Lazo para validar datos, notese que se sustituye la estructura
selectiva Doble
{
puts(“Error en datos, debe ser positivo”);
scanf(“%i”, &n)
}
Ejemplo 1 (Codificación)
printf(“\n \n \n %i \t NUMEROS ENTEROS POSITIVOS”, n);
while (num<=n)
{
printf(“\n %i”, num);
num = num+1;
}
getch( );
return 0;
}
Operadores de Incremento –Decremento
• El lenguaje C ofrece los operadores de incremento
(++) y decremento (--) que tiene una sintaxis
abreviada para sumar (incrementar) o restar
(decrementar) 1 al valor de una variable, utilizado
comúnmente en el uso de contadores.
• Estos operandos son unuarios, ya que solo necesitan
un operando, y éste debe ser siempre una variable
Operadores de Incremento –Decremento
• Estos operadores tienen la propiedad de que pueden
utilizarse como prefijo (antes del operando) o como
sufijo (después del operando), el resultado de la
expresión puede ser distinto, dependiendo del
contexto.
Operadores de Incremento –Decremento
• Si los operadores ++ y -- se usan como prefijo, la
operación de incremento o decremento se efectúa
antes que la operación de asignación; si los
operadores ++ y – están como sufijos, la asignación se
efectúa en primer lugar y el incremento o
decremento después.
Operadores de Incremento –Decremento
• Si i es una variable entera cuyo valor es 3, las
variables y e i toman los valores sucesivos que se
indican en las sentencias siguientes
Jerarquía de todos los operadores
• Se debe recordar que con el uso de paréntesis se
puede romper este orden de prioridades establecido
por el lenguaje C.
Ejemplo 2 (Estructura de Entrada condicionada)
Enunciado
• En la empresa “XXX” se requiere clasificar los
diferentes productos que ofrecen. Para ello
mantienen tres diferentes clases de calidad:
OPTIMA, NORMAL, y DEFICIENTE.
• Diseñe un programa, utilizando la metodología
completa, que dé a conocer el número de
productos de cada clase, si se conoce la calidad de
cada uno de los 100 existentes en bodega.
Ejemplo 2 (Estructura de Entrada condicionada)
Análisis
a. Definición de variables de Salida
• Estas tres variables son de tipo contador, ya que
irán contando el numero de productos de cada tipo
de calidad, su valor inicial es cero (0), su valor de
cambio es uno (1) y su valor final es lo que
necesitamos saber.
Ejemplo 2 (Estructura de Entrada condicionada)
Análisis
b. Definición de Datos de Entrada:
Variables:
Constantes: El número de productos almacenados en
bodega se consideran constantes: 100
• c. Restricciones: clase >=1 && clase <= 3
Ejemplo 2 (Estructura de Entrada condicionada)
Análisis
• d. Proceso: Lo que se hará es, leer la calidad (o
clase) de cada producto y contabilizarlo según su
clase; es decir le sumaremos uno (1) a opt, nor o
def según corresponda y esto lo realizaremos 100
veces, ya que 100 son los productos existentes; por
lo que necesitamos un contador de productos.
Como son tres clases distintas, y las hemos
codificado numéricamente, utilizaremos para la
clasificación una Estructura de Selección Múltiple:
prod=1; opt=0; nor=0; def=0;
Ejemplo 2 (Estructura de Entrada condicionada)
Análisis
Ejemplo 2 (Estructura de Entrada condicionada)
Análisis
e. Definición de variables de proceso : No son
necesarias
Ejemplo 2 (Estructura de Entrada condicionada)
Ejemplo 2 (Estructura de Entrada condicionada)
Ejemplo 3 (Estructura de Entrada condicionada)
Enunciado
• Diseñe un programa C que, dados como datos 25
números enteros, obtenga la suma de los números
impares y el promedio de los números pares.
Ejemplo 3 (Estructura de Entrada condicionada)
Análisis
a) Definición de Variables de Salida
b) Definición de Datos de Entrada:
Variables:
Constantes: Se utiliza el valor fijo 25.
c) Restricciones: No existen, los datos pueden ser
negativos, positivos o cero
Ejemplo 3 (Estructura de Entrada condicionada)
Análisis
d) Proceso
Lo primero que haremos es clasificar los datos, cada
uno de ellos, en par o impar, con la división residual
%. Luego se van sumando en 2 variables que
acumulen cada tipo de dato; esto lo vamos a repetir
25 veces. Y al final se calcula el promedio de pares,
dividiendo la suma de todos los pares entre el
número de datos pares, por lo tanto necesitamos
contarlos:
e) Variables de Proceso: No se han utilizado
Ejemplo 3 (Estructura de Entrada condicionada)
Análisis
d) Proceso
Ejemplo 3 (Estructura de Entrada condicionada)
Análisis
e) Variables de Proceso:
Ejemplo 3 (Estructura de Entrada condicionada)
Diseño
Ejemplo 3 (Codificación)
Estructura Controlada por un Contador
• Esta estructura se conoce como Desde - Hasta o
ciclo FOR.
• Se utiliza cuando conocemos por anticipado el
número exacto de veces que se va a ejecutar el
proceso.
• La ejecución del cuerpo del ciclo depende de una
condición, que siempre esta relacionada con el valor
final del contador.
• El valor inicial se le asigna a una variable de control
(o contador).
Estructura Controlada por un Contador
• Se verifica si el valor de la variable de control es
menor o igual (o mayor, en el caso de decremento)
que el valor final,
• Y a continuación se ejecuta el proceso del interior
del ciclo; cuando se termina el cuerpo del ciclo .
• Se cambia el valor de la variable contador (según su
valor de cambio); si la variable de control, es mayor
(o menor en caso de cuentas regresivas) que el valor
final, entonces se sale del bucle y continua con la
siguiente estructura del algoritmo.
Estructura Controlada por un Contador
• Representación Gráfica:
• Para la representación gráfica de esta estructura
se utiliza solamente el símbolo de repetición,
como se muestra a continuación
Estructura Controlada por un Contador
En donde:
• Cont : Variable de control
(Contador)
• Vi : Valor inicial del contador
(desde cuanto contamos)
• Vf : Valor final del contador
(hasta cuanto contamos)
• Vc : Valor de cambio del
contador (incremento o
decremento)
• Proceso : Cuerpo del ciclo
Estructura Controlada por un Contador
Funcionamiento:
La estructura desde-hasta
funciona como una estructura
mientras,
Asignando el valor inicial al
contador y repitiendo el cuerpo
del ciclo mientras éste se
encuentre entre el rango de
valores permitidos por el valor
final del contador.
Dentro del cuerpo del ciclo se le
cambia el valor al contador con el
incremento o decremento del
valor de cambio.
Estructura Controlada por un Contador
• En esta estructura el valor de
cambio siempre es un valor
entero (al igual que el valor
inicial y el final y; por lo tanto
la variable contador debe ser
también tipo entero).
• No podemos tener un valor de
cambio de 0.5 (decimales).
Estructura Controlada por un Contador
• Entonces, si nuestra variable
contador debe ser de tipo
real, se debe de diseñar la
solución con una estructura
mientras y no con una desde –
hasta.
Estructura Controlada por un Contador
Reglas de Funcionamiento:
1. Las variable de control, valor
inicial y valor final deben ser
todas del mismo tipo : entera
(int).
2. Los valores iniciales y finales
pueden ser tanto expresiones,
constantes o variables.
3. La última ejecución del bucle
normalmente ocurre cuando la
variable de control es igual al
valor
final.
Estructura Controlada por un Contador
Reglas de Funcionamiento:
4. El valor de cambio puede ser
positivo (incremento) o negativo
(decremento).
5. Cuando no se especifica el
valor de cambio, el incremento de
la variable de control es 1.
6. La variable de control o
contador solo se le debe cambiar
su valor, después de realizado el
cuerpo del ciclo y por el valor de
cambio indicado, nunca por una
asignación extra.
Controlada por un Contador( Ejemplo 1)
Enunciado:
Diseñe un programa que imprima la suma de los
números enteros comprendidos entre 15 y 25.
Controlada por un Contador( Ejemplo 1)
Análisis
a. Definición de Variables de Salida
b. Definición de Variables de Entrada
Controlada por un Contador( Ejemplo 1)
Análisis
c. Constantes
No se utilizan
d. Restricciones
li < ls, los límites pueden ser positivos o negativos
Controlada por un Contador( Ejemplo 1)
Análisis
e. Proceso
Leer li y ls // Validar
sum = 0 // Inicialización del acumulador
sum = sum + j se repite desde j = li hasta j <= ls
Controlada por un Contador( Ejemplo 1)
Diseño
Sintaxis de Lenguaje
Sintaxis de lenguaje C
• Para escribir correctamente la estructura desde
hasta en C utilizamos la palabra reservada for y
los separadores: ; ( ) { } Su escritura se muestra a
continuación:
for (Expresion1; Expresion2; Expresion3)
{
Cuerpo del ciclo;
}
Sintaxis de Lenguaje
Sintaxis de lenguaje C
En donde:
• Expresion1: Es la expresión que asigna el valor
inicial a la variable contador.
• Expresion2: Es una expresión lógica (condición)
que verifica que el valor actual del contador se
encuentre entre los permitidos (vi –vf).
• Expresion3: Es una expresión de asignación que
cambia el valor del contador
Consideraciones a tomar en cuenta
Consideraciones a tomar en cuenta:
1. Las Llaves son necesarias siempre que el
cuerpo del ciclo tiene más de una línea.
2. Las expresiones 1, 2 y 3 siempre van dentro de
paréntesis.
3. Para conteos progresivos (por Ej.: 1, 2, 3, 4, 5)
el valor de cambio es positivo, y el valor inicial
del contador siempre debe ser menor que el
valor final del mismo (Vc>0 y Vi<Vf).
Consideraciones a tomar en cuenta
Consideraciones a tomar en cuenta
4. Para conteos regresivos (como: 5, 4, 3, 2, 1) el
valor de cambio es negativo, y el valor inicial del
contador siempre es mayor que el valor final (vc<0
y Vi>Vf).
5. De nuevo, las llaves son necesarias si el cuerpo
del ciclo tiene más de una línea de programa,
cada línea termina en punto y coma y se debe
respetar la marginación.
Codificación (Ejemplo 1)
// calcula la sumatoria de los números que se encuentra entre 2 límites
#include<stdio.h>
#include<conio.h>
main()
{
int li, ls, sum=0;
puts(“digite los limites inferior y superior”); // lectura de los limites de números
scanf(“%i %i”, &li, &ls);
while (li > ls) /* validacion de datos */
{
puts(“el primero limite debe ser menor”);
scanf(“%i %i”, &li, &ls);
}
for (j=li; j<=ls; j++) // proceso, sumatoria de los numeros
sum+=j;
Codificación (Ejemplo 1)
// calcula la sumatoria de los números que se encuentra entre 2 límites
/* Impresión del resultado */
printf(“\n \n La suma de los enteros es: \t %i”, sum);
getch();
return 0;
}
Controlada por un Contador( Ejemplo 2)
Enunciado:
• Un profesor calificó 25 exámenes de sus
alumnos y requiere calcular la nota promedio de
todos ellos, la nota más alta y cuántos aprobaron
y reprobaron el examen. Además se deberá
imprimir el nombre y la nota de cada estudiante.
Controlada por un Contador( Ejemplo 2)
Análisis
a. Definición de Variables de Salida
Se desplegará el nombre de cada estudiante, junto a su nota
b. Definición de Variables de Entrada
Constantes: Se utiliza el valor fijo de 25 alumnos
Controlada por un Contador( Ejemplo 2)
Análisis
c. Restricciones:
nota >= 0 && nota <= 10
d. Proceso:
apr = 0; rep = 0; mayor = 0; suma = 0;
Leer nom y nota // Validar nota
suma = suma + nota // inicialmente suma = 0
¿ nota > mayor ?
Si: mayor = nota //nota mayor
¿ nota >= 6 ?
Si: apr = apr+1 Se repite
desde i=1
No: rep = rep+1 hasta 1<= 25
prom = suma/25
Controlada por un Contador( Ejemplo 2)
Análisis
Definición de Variables de proceso:
Controlada por un Contador( Ejemplo 2)
Diseño
#include <stdio.h> #include <conio.h>
main()
{
int apr=0, rep=0, j; float nota, suma=0, prom, mayor = -1; char nom[25];
for(j=1; j<=25; j++) // Inicio del lazo
{
puts("Digite el nombre del alumno:"); gets(nom); printf("\nIntroduzca la nota: "); scanf("%f", ¬a);
fflush(stdin); // Se utiliza para limpieza del buffer de memoria
while (nota<0 || nota >10) //Validacion de datos
{
puts("La nota debe estar entre 0 y 10: "); scanf("%f", ¬a);
}
suma+=nota; printf("\n: %s \t : %.2f\n", nom, nota); // Cuenta aprobados y reprobados
if (nota>=6)
apr++;
else
rep++;
if (nota>mayor) // Almacena la nota mayor
mayor = nota;
prom= suma/25;
printf("\n\n La Nota Promedio del grupo es: \t %.2f", prom);
printf("\n\n Nota mayor del grupo: \t %.2f",mayor);
printf("\n\n\n Numero de Aprobados: \t %d", apr);
printf("\n Numero de Reprobados: \t %d", rep);
getch();
return 0;
} // Fin del programa
Estructura de entrada asegurada
• Se le conoce como estructura Hasta – que
porque el cuerpo del ciclo se repite hasta que la
condición de cómo resultado cierto.
• Esta estructura permite ejecutar (o repetir) el
cuerpo del ciclo al menos una vez, es decir que
el número de iteraciones puede ser 1, 2 o varias
veces.
Estructura de entrada asegurada
Representación Gráfica:
• Para ello utilizamos los mismos símbolos de las
otras dos estructuras repetitivas, siendo su
representación grafica es como sigue
Estructura de entrada asegurada
Funcionamiento:
• En esta estructura el cuerpo del
ciclo se ejecuta la primera vez, sin
tomar en cuenta ninguna
condición, de aquí su nombre:
ENTRADA ASEGURADA
• Al finalizar el cuerpo del ciclo, se
evalúa la condición
• Si el resultado es cierto se
continúa con la siguiente
estructura del flujograma
• Por el contrario si el resultado es
falso, se vuelve a repetir el cuerpo
del ciclo.
Estructura de entrada asegurada
Reglas de Funcionamiento:
1. La estructura termina con
una expresión lógica.
2. Se ejecuta el cuerpo del ciclo
una vez, la primera
3. Se evalúa la condición: Sie el
resultado cierto, no se repite
mas; resultado falso se repite
una vez mas el cuerpo del ciclo
y se evalúa de nuevo la
condición
Estructura de entrada Asegurada( Ejemplo 1)
Enunciado:
• Se tiene un grupo de números enteros positivos,
pero se desconoce cuantos son, diseñe un
algoritmo que imprima:
a. Cuántos números forman el grupo de datos.
b. El promedio de los números pares.
c. Cuántos son los impares.
d. Cuántas veces se repite el número cinco.
Estructura de entrada Asegurada( Ejemplo 1)
Análisis
a. Definición de Variables de Salida
b. Definición de Variables de Entrada
Constantes: No se utilizan
Estructura de entrada Asegurada( Ejemplo 1)
Análisis
c. Restricciones:
num > 0 y se utilizará como centinela o
condición de fin de datos
d. Proceso:
• Vamos a leer los datos uno a uno y los vamos a ir
contando, para saber cuántos leímos en total;
vamos a parar de leer cuando tengamos un dato
negativo
• Con cada dato leído se verificará si es par, y en tal
caso se acumulará (sum_p) con todos los pares que
aparezcan, para después calcular el promedio de
pares (prom_p),
Estructura de entrada Asegurada( Ejemplo 1)
Análisis
d. Proceso:
• En caso de que el dato leído es impar y se lleva
un conteo de ellos (imp). Además, si el dato
verificaremos que sea igual a 5 para contarlos.
• Para calcular el número de pares, se debe restar
el número de impares del total de datos leídos.
Estructura de entrada Asegurada( Ejemplo 1)
Análisis
d. Proceso:
datos = 0; cinco = 0; imp = 0; sum_p = 0;
num = 10 // el primer dato
datos = datos +1
¿num % 2 == 0?
Si: sum_p = sum_p + num Se repite
No: imp = imp + 1 Hasta que
¿num = 5? num <=0
Si: cinco++
Leer num
pares= datos – imp // Cantidad de números pares
prom_p = sum_p/pares // Calculo del promedio de pares
Estructura de entrada Asegurada( Ejemplo 1)
Análisis
Definición de Variables de proceso:
Estructura de entrada Asegurada( Ejemplo 1)
Diseño
Sintaxis de Lenguaje
Sintaxis de lenguaje C
• Esta estructura NO tiene codificación en C, por
lo tanto es mejor diseñar nuestra solución o
flujograma con una estructura MIENTRAS, desde
el principio; pero si en nuestro diseño de
solución utilizamos un HASTA-QUE, tendremos
que cambiarlo un poco para convertir la
estructura HASTA QUE en un MIENTRAS o en un
DESDE-HASTA, según convenga y así, poder
codificar nuestra solución.
Sintaxis de Lenguaje
Porque NO utilizamos HASTA QUE en Lenguaje C
• C tiene entre sus sentencias de repetición la
formada por las palabras reservadas do y while.
• La sentencia do-while no funciona como un
hasta-que, es un híbrido entre la estructura
mientras y la estructura hasta que, lo cual va en
contra del principio básico de la lógica
estructurada como se demuestra en los
siguientes flujogramas
Sintaxis de Lenguaje
Representación Grafica do - while.
Ciclos Anidados
• El cuerpo de un ciclo puede contener cualquier tipo
de sentencias: secuenciales, selectivas y repetitivas.
Cuando un ciclo está contenido en el cuerpo de otro
ciclo, se denominan ciclos anidados.
• Se pueden anidar los tres tipos de estructuras
estudiadas anteriormente, ya sea con un mismo tipo
de estructuras o con una combinación de varias de
ellas.
• Por ejemplo, los ciclos Hacer mientras y desde
hasta pueden estar anidados, entre sí, o bien ciclos
Hacer mientras con hasta que o viceversa; como se
muestra a continuación:
Ciclos Anidados
• Ejemplo
Ciclos Anidados
• Ejemplo
“La máxima victoria es la que se gana
sobre uno mismo.”
-Buda