3 Estructura

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 43

FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III

____________________________________________________________________________________________________

UNIDAD III

ESTRUCTURA DE FLUJO PROGRAMATICO

3.1. ESTRUCTURA DE DECISION

3.1.1. SIMPLE
Un diagrama de flujo representa la esquematización grafica de un algoritmo. En realidad muestra
gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es
sumamente importante porque, a partir del mismo escribe un programa en algún lenguaje de programación. Si el
diagrama de flujo esta completo y correcta, el paso del mismo a un lenguaje de programación es relativamente
simple y directo.

A continuación presento los símbolos que utilizaremos, y una explicación de los mismos, Estos satisfacen
las recomendaciones de la International Standard Organization (ISO) y la American Standard Institute (ANSI).

Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de problemas.
La utilizamos cuándo el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un
proceso o señalar un camino alternativo a seguir.

Esta toma de decisión (expresada con un rombo) se basa en la evaluación de una o más condiciones que
nos señalaran como alternativa o consecuencia, la rama a seguir.

Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma una decisión, se
marca la rama correspondiente a seguir, se vuelve a tomar otra decisión y así sucesivamente. Por lo que para
alcanzar la solución de este problema o subproblema debemos aplicar prácticamente un árbol de decisión.

Las estructuras algorítmicas selectivas que se utilizan para la toma de decisiones lógicas las podemos
clasificar de la siguiente forma:

1. SI ENTONCES (Estructura selectiva simple)


2. SI ENTONCES / SINO (Estructura selectiva doble)
3. SI MÚLTIPLE (Estructura selectiva múltiple)

Cabe señalar que cuando a las estructuras selectivas las aplicamos en cascada, podemos utilizar una
combinación de las estructuras señaladas anteriormente en la clasificación.

 La Estructura Si Entonces

La estructura selectiva SI ENTONCES permite que el flujo del diagrama siga por un camino especifico si
se cumple una condición o conjunto de condiciones. SI al evaluar la condición (o condiciones) el resultado es
verdadero, entonces se ejecutara(n) cierta(s) operación(es). Luego se continua con la secuencia normal del
diagrama.
no
condición

si

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO operación
PROGRAMATICO ING. OSORNIO 30
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Donde:
CONDICION.- expresa la condición o
conjunto de condiciones s evaluarse
OPERACIÓN.- expresa la operación o
conjunto de operaciones que se van a
realizar si la condición resulta verdadera.

A continuacion presentamos el diagrama de flijo, que ilustra selctiva si entobnces, en lenguaje


algoritmico.

.
.
.
SI condicion ENTONCES

Hacer operacion

{ Fin del condiconal }


.
.
.

 Ejemplo 1

Construya un diagrama de flujo tal, que dado como dato la calificación de un alumno en un examen,
escriba “ aprobado” en caso de que esa calificación fuese mayor que 8.

DATO: CAL

DONDE: CAL es una variable de tipo real, que expresa la calificación del alumno.

INICIO

CAL Estructura selectiva


SI ENTONCES
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 31
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

no

CAL
>8

si

“APROBADO”

FIN

 Explicación De Las Variables

CAL: Variable de tipo real. Almacena la calificación del alumno.

A continuación en la siguiente tabla observamos LA PRUEB A DE ESCRITORIO

NUMERO DE DATO
CORRIDA CAL RESULTADO
1 8.75 “aprobado”
2 7.90
3 8.00
4 9.50 “aprobado”
5 8.35 “aprobado”

Seudocodigo

EXAMEN_SELECTIVA_SIMPLE

{El programa, dados como dato la calificación de un alumno en un examen, escribe aprobado si la
calificación es superior a8}

{CAL son variables de tipo real}

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 32
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

1. Leer CAL
2. SI CAL > 8 ENTOCES
Escribir “aprobado”
3. { Fin del condicional del paso2 }

 Ejemplo 2
Dado como dato el sueldo de un trabajador, aplíquele un aumento del 15% si su sueldo es inferior a $100.
Imprima en este caso, el nuevo sueldo del trabajador. Haga diagrama de flujo correspondiente.

DATO: SUE
DONDE: SUE es una variable de tipo real, que expresa el sueldo del trabajador.

INICIO

SUE Estructura selectiva


SI ENTONCES

no

SUE<1000

si
AUM=SUE*015
SUE=SUE+ALM

FIN

 Explicación De Las Variables

SUE: Variable de tipo real.


AUM: Variable de tipo real. Almacena el aumento del trabajador.
NSUE: Variable de tipo real. Almacena el nuevo sueldo del trabajador.

A continuación en la siguiente tabla observamos LA PRUEBA DE ESCRITORIO

NUMERO DATOS CALCULO AUXILIAR RESULTADOS


____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 33
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

de SUE AUM NSUE


CORRIDA
1 875.50 131.32 1006.82
2 1300.00
3 2150.00
4 976.00 146.40 1122.40
5 785.00 117.75 902.75

 Seudocodigo

AUMENTO_SELECTIVA_SIMPLE

{El programa, dados como dato el sueldo de un trabajador , le aplica un aumento del 15% si su sueldo es
inferior a $1000}

{SUE, AUM, NSUE son variables de tipo real}

1. Leer SUE
2. SI SUE < 1000 ENTOCES
Hacer AUM ← SUE*0.15 y NSUE ← SUE +AUM
Escribir NSUE
3. { Fin del condicional del paso2 }

 Programa En C

#include <stdio.h>
#include <conio.h>

main( );
{
float Sueldo, Aumento, Sueldo neto;
printf(“Calcule el sueldo de un trabajador”);
printf(“Teclea tu sueldo:”);
scanf(“%f”,&Sueldo);
if(Sueldo <1000);
(Sueldo * 0.15 = aumento);
Aumento + Sueldo = Sueldo neto;
printf(“\n Tu sueldo neto es:%4.2f”,Sueldo neto);
getch( );

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 34
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

3.1.2. RAMIFICADA

 La Estructura Si Entonces / Sino

La estructura selectiva SI ENTONCES / SINO permite que el flujo del diagrama se bifurque por dos
ramas diferentes en el punto de la toma de decisión (es). Si al evaluar la condición(es) el resultado es verdadero,
entonces se sigue por el camino especifico y se ejecuta(n) cierta(s) operación(es). Por otra parte, si el resultado es
falso entonces se sigue por otro camino y se ejecuta(n) otra(s) operación(es) indicada(s), se continua con la
secuencia normal del diagrama. A continuación presento el diagrama de flujo que ilustra la estructura selectiva.

Donde:
CONDICION.- expresa la
condición condición o conjunto de
condiciones s evaluarse
si no OPERACIÓN1.- expresa la
operación o conjunto de
operaciones que se van a
realizar si la condición resulta
verdadera.
OPERACIÓN2.- expresa la
Operación 1
Operación 2 operación o conjunto de
operaciones que se van a
realizar si la condición resulta
falsa.

El diagrama de flujo en lenguaje algorítmico, lo expresamos de esta forma.

.
.
.
SI condicion
ENTONCES
Hacer operación 1
SINO
Hacer operacion 2
{ Fin del condiconal }
.
.
.

 Ejemplo 3

Construya un diagrama de flujo tal, que dado como dato la calificación de un alumno en un examen,
escriba “ aprobado” en caso de que esa calificación fuese mayor que 8 y “reprobado” en caso contrario.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 35
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

DATO: CAL
DONDE: CAL es una variable de tipo real, que expresa la calificación del alumno.

INICIO

CAL Estructura selectiva


SI ENTONCES / SINO

NO
SI
CAL
>8

“Aprobado” “Reprobado”

FIN

 Explicación De Las Variables

CAL: Variable de tipo real. Almacena la calificación del alumno.

A continuación en la siguiente tabla observamos LA PRUEBA DE ESCRITORIO

NUMERO DE DATO
CORRIDA CAL RESULTADO
1 8.75 “aprobado”
2 7.90 “Reprobado”
3 8.00 “Reprobado”
4 9.50 “aprobado”
5 8.35 “aprobado”

EXAMEN_SELECTIVA_SIMPLE

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 36
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

{El programa, dados como dato la calificación de un alumno en un examen, escribe aprobado si la
calificación es superior a 8 y “reprobado” en caso contrario}

{CAL son variables de tipo real}

1. Leer CAL
2. SI CAL > 8
ENTOCES
Escribir “Aprobado”
SINO
Escribir “Reprobado”
3. { Fin del condicional del paso2 }

 Programa En C.

# include <stdio.h>
#include <conio.h>

main( )
{
float CAL;
clrscr( );
printf(“Programa que define si el alumno aprueba o reprueba”);
printf(“Teclee su calificación:”);
scanf(“%f”,&CAL);
if(cal > 8)
{
printf(“Aprobado”);
getch( );
}
else
}
printf(“reprobado”);
getch( );
}
}

 Ejemplo 4

Dado como dato el sueldo de un trabajador, aplíquele un aumento del 15% si su sueldo es inferior a $1000
y 12% en caso contrario. Imprima el sueldo del trabajador

DATO: SUE
DONDE: SUE es una variable de tipo real, que expresa el sueldo del trabajador.

INICIO

Estructura selectiva
SUE
SI ENTONCES / SINO
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 37
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

NO
SI
SUE <1000

NSUE=SUE*1.12.
NSUE=SUE*1.15

NSUE

FIN

 Explicación De Las Variables

SUE: Variable de tipo real.


AUM: Variable de tipo real. Almacena el aumento del trabajador.
NSUE: Variable de tipo real. Almacena el nuevo sueldo del trabajador.

A continuación en la siguiente tabla observamos LA PRUEB A DE ESCRITORIO

NUMERO DE DATO RESULTADO


CORRIDA SUE NSUE
1 840.50 966.57
2 1200.00 1344.00
3 1950.00 2184.00
4 680.7 782.80
5 930.80 1070.42

 Seudocodigo

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 38
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

AUMENTO_SELECTIVA_DOBLE

{El programa, dados como dato el sueldo de un trabajador , le aplica un aumento del 15% si su sueldo es
inferior a $1000 y 12% en caso contrario}

{SUE, AUM, NSUE son variables de tipo real}

1. Leer SUE
2. SI SUE < 1000
ENTOCES
Hacer NSUE ← SUE * 1.15
SINO
Hacer NSUE ← SUE * 1.12

3. { Fin del condicional del paso2 }


4. Escribir NSUE

 Ejercicio.

Realizar un diagrama de flujo para calcular el precio del billete del billete ida y vuelta del ferrocarril conociendo
la distancia del viaje de ida y el tiempo de estancia.
Se sabe además que si el número de días de estancia es superior a 7 y la distancia total (ida y vuelta) a recorrer es
superior a 800Km, el billete tiene una rebaja del 30% el precio del Kilómetro es de 17 centavos.

Datos:
Rec1, Rec2, Días;

Donde:
Rec1. Es de tipo real y representa la distancia de ida.
Rec2. es de tipo real y representa la distancia de vuelta.
Días. Es de tipo entero y representa la estancia.

 Diagrama de Flujo:
INICI
O

Rec1, Rec2,
Días

RECT = Rec1 + Rec2

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 39
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

RECT> 800 AND >


7
SI NO

COSTO = RECT * 0.17 * 0.7 COSTO = RECT * 0.17

FIN

 Prueba de Escritorio:

NUMERO DE DATOS
CORRIDA Rec1 Rec2 RECT Días RESULTADO
1 400 800 1200 3 204
2 350 200 550 5 93.5
3 700 135 835 8 99.365
4 630 50 680 10 115.6
5 310 30 340 9 57.8

 Pseudocódigo.

{Dados como datos las distancias de ida y vuelta y el tiempo de estancia dar el precio del boleto. Si el recorrido es
mayor a 800Km y la estancia mayor a 7 días realizar un descuento del 30%}

{Rec1, Rec2, RECT, días, Costo son variables de tipo real}

1. Leer Rect1, Rect2, días;


2. Hacer RECT = Rect1 + Rect2
3. Si rect > 800 and días > 7
Costo = RECT * 0.17
4. {Fin del programa}

# include <stdio.h>
# include <conio.h>

main( )
{
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 40
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

float rect1, rect2, rectotal, costo;


int días;
clrscr( );
gotoxy(1,1);
printf(“Programa del Viaje”);
gotoxy(10,5);
printf(“Teclea rec1:”);
scanf(“%f”,&rec1);
gotoxy(10,7);
printf(“Teclea rec2:”);
scanf(“%f”,&rec2);
gotoxy(10,9);
printf(“Teclee los días de estancia:”);
scanf((“%d”,&días);
gotoxy(10,11);
rectotal = rect1 + rect2;
}
if (rectotal > 800 && días > 7)
{
costo = rectotal * 0.17 * 0.7;
}
else
{
costo = rectotal * 0.17
printf(“El costo es:”);
getch ( );
}

 La Estructura Si Múltiple

La estructura selectiva SI MÚLTIPLE que el flujo del diagrama se bifurque por varias ramas de la toma
de decisión(es), esto en función del valor que tome el selector. así si el selector toma el VALOR 1 se ejecutara la
acción 1,si se toma el Valor 2 se ejecutara la acción 2, si toma el VALOR N se realizara la acción N y si toma un
valor distinto de los valores comprendidos entre 1 y N, se continuara con el flujo normal del diagrama realizándose
la acción N+1.

A continuación presento el diagrama de flujo que ilustra esta estructura selectiva.

SELECTOR

Valor 1 valor 2 valor 3


ACCION 1 ACCION 2 ACCION 3

ACCION N+1
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 41
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Donde:

SELECTOR: Es la variable o expresión a evaluarse, según la cual se tomara una de las “multiples” de
decisiones o aternativas.

ACCION 1: Expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el
VALOR 1.

ACCION 2: Expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el
VALOR 2.

ACCION 3: Expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el
VALOR 3.

ACCION N+1: Expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el
VALOR N+1.

El diagrama de flujo en lenguaje algoritmico lo expresamos de esta forma.

.
.
Si selector igual

Valor 1: Hacer accion 1


Valor 2: Hacer accion 2
.
.
.
Valor N: Hacer accion N

{ Fin del condicional del paso2 }


Hacer accion N+1
.
.
.

La estructura selectiva SI MÚLTIPLE es muy flexible, lo que permite aplicarla de diferentes formas.
Obsérvese los siguientes diagramas de flujo y las explicaciones correspondientes.

A continuación presento el diagrama de flujo que ilustra esta estructura selectiva.

SELECTOR

Valor 1 valor 2 valor 3 de otra forma


ACCION 1 ACCION 2 ACCION 3 ACCION X

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 42
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

ACCION Y

El diagrama de flujo en lenguaje algoritmico lo expresamos de esta forma.

.
.
Si selector igual

Valor 1: Hacer accion 1


Valor 2: Hacer accion 2
Valor 3: Hacer accion 3

De otra forma: hacer accion X

{ Fin del condicional del paso2 }

Hacer accion Y
.
.

A continuación presento el diagrama de flujo que ilustra esta estructura selectiva.

SELECTOR

Valor 1,2 valor 3,4,5, de otra forma


ACCION 1 ACCION 2 ACCION 3

ACCION X

El diagrama de flujo en lenguaje algoritmico lo expresamos de esta forma.

.
.
Si selector igual

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 43
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Valor 1,2: Hacer accion 1


Valor 3,4,5,: Hacer accion 2
. De otra forma: Hacer accion 3
.
{ Fin del condicional del paso2 }

Hacer accion X
.

A continuación presento algunos ejemplos donde el lector puede aplicar los conceptos estudiados con la
estructura selectiva SI MÚLTIPLE.

EJEMPLO.
Construya un diagrama de flujo tal, que dados como datos dos variables de tipo entero, obtenga el resultado de la
siguiente función:

100 * V Si NUM = 1
100 ** V Si NUM = 2
VAL = 100 / V Si NUM = 3
0 Para cualquier otro valor de NUM

Datos:
NUM, V.
Diagrama de Flujo:
INICI
O

NUM, V

NUM

VAL = 100* V VAL = 100 ** V VAL = 100 / V VAL = 0

VAL

FIN

 Explicación De Las Variables.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 44
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

NUM: Variable de tipo entero.


V: Variable de tipo entero.
VAL: Variable de tipo real. Almacena el resultado de la función.

 Prueba De Escritorio.

NUMERO DE DATOS RESULTADO


CORRIDA NUM VAL
V
1 1 8 800
2 7 6 0
3 3 4 25
4 4 8 0
5 2 3 1000000

 Pseudocódigo.

FUNCIÓN _ SELECTIVA _ MÚLTIPLE.

{El programa, dados como datos dos variables de tipo entero, calcula el resultado de una función}

{NUM y V son variables de tipo entera. VAL es una variable de tipo real}
1. Leer NUM y V
2. Si NUM igual

2.1 Hacer VAL 100 * V

2.2 Hacer VAL 100 * * V

2.3 Hacer VAL 100 / V

De otra forma: Hecer VAL 0


3. {Fin del condicional del paso 2}
4. Escribir VAL.

 Programa en C

# include <stdio.h>
# include <conio.h>

main( )
{
int Num, V;
float VAL;
clrscr ( );
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 45
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

printf(“\n Programa que calcula la función de un número”);


printf(“De el valor de X o de la variable de la función”);
scanf(“%d”,&V);
printf(“Funciones”);
printf(“(1) 100 * V”);
printf(“(2) 100 ** V”);
printf(“(3) 100 / V”);
printf(“\n Teclee la opción que desea”);
scanf(“%d”,&Num);
switch(Num)
{
case1: Val = 100 * V
printf(“El valor es:%f”,Val); break;
case2: Val = 100 ** V
printf(“El valor es:%f”,Val); break;
case3: Val = 100 / V
printf(“El valor es:%f”,Val); break;
default: printf(“El resultado es 0”);
}
}

 Ejercicio.

Construya un diagrama de flujo tal, que dados como datos la categoría y el sueldo de un trabajador, calcule
el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprima la categoría del trabajador y su nuevo
sueldo.

CATEGORIA AUMENTO
1 15%
2 10%
3 8%
4 7%

Datos:
CATE, SUE.

Donde:
CATE es una variable de tipo entero, que representa la categoría del trabajador.
SUE es una variable de tipo real, que expresa el sueldo del trabajador.

Explicación de las Variables.


CATE: Variable de tipo entero. Su significado fue explicado anteriormente.
SUE: Variable de tipo real. Su significado fue explicado anteriormente.
NSUE: Variable de tipo real. Almacena el sueldo con el aumento incorporado.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 46
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

 Diagrama de Flujo:
INICI
O

CATE, SUE

CATE

NSUE = SUE * 1.15 NSUE = SUE *1.10 NSUE = SUE * 1.08 NSUE = SUE * 1.07

CATE, NSUE

FIN

 Prueba de Escritorio.

NUMERO DE DATOS RESULTADO


CORRIDA NSUE
CATE SUE
1 3 3800 4104
2 4 6200 6634
3 1 1100 1265
4 2 1750 1925
5 3 4100 4428

 Pseudocódigo.

AUMENTO _ SELECTIVA _ MÚLTIPLE.

{El programa calcula el aumento de sueldo de los trabajadores, teniendo en cuenta su categoría. El aumento se
incorpora al salario}

{CATE es una variable de tipo entero. SUE y NSUE son variables de tipo real}
1. Leer CATE, SUE
2. Si CATE igual
2.1 Hacer NSUE SUE * 1.15

2.2 Hacer NSUE SUE * 1.10

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 47
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

2.3 Hacer NSUE SUE * 1.08

2.4 Hacer NSUE SUE * 1.07


3. {Fin del condiciona del paso2}
4. Escribir CATE, NSUE.

# include<stdio.h>
# include <conio.h>
main( )
{
int CATE;
float SUE, NSUE
clrscr( );
printf(“Programa que calcula el aumento de un trabajador”);
printf(“Teclea el sueldo actual:”);
scanf(“%f”,&sueldo);
printf(“1. NSUE = SUE * 1.15”);
printf(“2. NSUE = SUE * 1.10”);
printf(“3. NSUE = SUE * 1.08”);
printf(“4. NSUE = SUE * 1.07”);
printf(“Teclea la categoría”);
scanf(“%d”,&CATE);

switch (categoria)
{
case 1: NSUE = SUE * 1.15;
printf(“El sueldo total es:%8.2f”, SUE); break;
case 2: NSUE = SUE * 1.10;
printf(“El sueldo total es:%8.2f”, SUE); break;
case 3: NSUE = SUE * 1.08;
printf(“El sueldo total es:%8.2f”, SUE); break;
case 4: NSUE = SUE * 1.07;
printf(“El sueldo total es:%8.2f”, SUE); break;
default: printf(“Opción no Contemplada”);
}
}

 ESTRUCTURAS SELECTIVAS EN CASCADA (ANIDADAS).

Encontramos numerosos casos en el desarrollo de la solución de problemas en el que luego de tomar una
decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Se señala, luego de evaluar
las condiciones, la rama correspondiente a seguir, y nuevamente podemos tener que tomar una decisión. El
proceso puede repetirse numerosas veces. En este caso estamos aplicando estructuras selectivas en cascada o
anidadas, para resolver el problema.

 EJEMPLO.

El siguiente caso donde dentro de la estructura si / entonces, encontramos la estructura si entonces / sino.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 48
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

No
CONDICION 1
Si
Si

Si CONDICION 2
no

OPERACIÓN 21 OPERACIÓN 21

 Pseudocódigo.
.
..
N. Si condición 1 entonces
N.1. Si condición 2
Entonces
Hacer operación 21
Sino
Hacer operación 22
N.2. {Fin del condicional del paso N.1.}
N + 1 {Fin del condicional del paso N}
.
.

 EJEMPLO.

Analicemos el siguiente caso.

CONDICION
1
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 49
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

CONDICION CONDICION
2 3

OPERACIÓN 2.1 OPERACIÓN 2.2 OPERACIÓN 3.1

 Pseudocódigo.
.
.
.
N. Si condición 1
entonces
N.1. Si condición 2
Entonces
Hacer operación 2.1
sino
Hacer operación 2.2
N.2. {Fin del condicional del paso N.1}
sino
N.3 Si condición 3 entonces.
Hacer operación 3.1
{Fin del condicional del paso N.3}
N + 1 {Fin del condicional del paso N}
.
.
.

Analicemos el último caso.

CONDICION 1

CONDICION 5

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO OPERACIÓN 5.1 50
SELECTOR

CONDICION
OPERACIÓN 2.1 OPERACIÓN
3 3.1 Operación4.1 Condició
Operación4.2
n4
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

 Pseudocódigo.
.
.
.
N. Si condición 1
entonces
N.1 Si selector 1 igual
valor 1: Hacer operación 2.1
valor 2: Hacer operación 2.2
N.1.1. Si condición 3 entonces
Hacer operación 3.1
N.1.2. {Fin de condicional del paso N.1.1}
de otra forma
N.1.3. Si condición 4 entonces
Hacer operación 4.1 sino
Hacer operación 4.2
N.1.4. {Fin del condicional del paso N.1.3}
N.2. {Fin de condicional del paso N.1}
Sino
N.3. Si condición 5 entonces
Hacer operación 5.1
N.4. {Fin del condicional del paso N.3.}
N + 1 {Fin del condicional del paso N}
.
.

 EJEMPLO.

Construya un diagrama de flujo tal, que dado como dato una temperatura en grados Fahrenheit, determine
el deporte que es apropiado practicar a esa temperatura, teniendo en cuenta la siguiente tabla:
DEPORTE TEMPERATURA

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 51
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Natación >85
Tenis 70 < TEMP <= 85
Golf 32 < TEMP <= 70
Esquí 10< TEMP <= 32
Marcha <= 10

Dato: TEMP.
Donde: TEMP es una variable de tipo real, que representa la temperatura que se lee.
Diagrama de Flujo:

INICI
O

TEM
P

TEMP > 85

TEMP > 70
NATACION

TEMP > 32
TENIS

GOLF TEMP > 10

ESQUI MARCHA

 Explicación De Variables. FIN

TEMP: Variable de tipo real. Explicamos su significado con anterioridad.

 Prueba de Escritorio.

NUMERO DE TEMPERATUR RESULTADO


CORRIDA A DEPORTE
TEMP
1 16° Esquí.
2 85° Tenis.
3 4° Marcha.
4 32° Esquí.
5 89° Natación.

 Pseudocódigo.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 52
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

REPORTE _ TEMPERATURA.

{El programa, dado como dato una temperatura en grados Fahrenheit, recomienda el deporte que es aconsejable
practicar a esa temperatura}

{TEMP es una variable de tipo real}

1. Leer TEMP.
2. Si TEMP > 85
entonces
escribir natación
sino
2.1 Si TEMP > 70
entonces
escribir tenis
sino
2.1.1 Si TEMP > 32
entonces
escribir golf
sino
2.1.1.1 Si TEMP > 10
entonces
escribir esquí
sino
escribir marcha
2.1.1.2 {Fin del condicional del paso 2.1.1.1}
2.1.2 {Fin del condicional del paso 2.1.1}
2.2 {Fin del condicional del paso 2.1}
3. {Fin del condicional del paso 2}

 Programa En C.

#include <stdio.h>
#include <conio.h>
char enter,pausa;
float temp;

main( )
{
clrscr();
gotoxy(25,1);
printf("Programa de las Temperaturas");
gotoxy(10,5);
printf("Teclee la tempeatura:");
scanf("%f",&temp);
if(temp>85)
printf("El deporte mas apropiado es la Natación ");
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 53
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

else
if (temp>70)
printf("El deporte mas apropiado es el tenis ");
else
if(temp>32)
printf("El deporte mas apropiado es el Golf ");
else
if (temp<=10)
printf("El deporte mas apropiado es la marcha ");
else
printf("El deporte mas apropiado es el esquí ");
getch( );
}

 EJERCICIO.

En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra. El descuento se efectúa
con base en el siguiente criterio: Si el monto es menor que $500 no hay descuento. Si el monto está comprendido
entre $500 y $1000 inclusive 5% de descuento. Si el monto está comprendido entre $1000 y $15000 inclusive 11%
de descuento. Si el monto es mayor a $15000 el 25% de descuento.

Dato:
COMPRA.

Donde:
COMPRA es una variable de tipo real, que representa el monto de la compra.

 Diagrama de Flujo:

INICI
O

COMPRA

COMPRA<=5
00

COMPRA<=10
PAGAR=COMPRA 00

COMPRA<=70
PAGAR=COMPRA*0.05 00

PAGAR=COMPRA*0.89 COMPRA<=150
00

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 54
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

PAGAR=COMPRA*0.82 PAGAR=COMPRA*0.75

PAGAR

FIN

 Explicación de Variables.

COMPRA: Variable de tipo real. Expresa el monto de la compra del cliente.


PAGAR: Variable de tipo real. Expresa lo que debe pagar el cliente, teniendo en cuenta los descuentos
correspondientes.

 Prueba de Escritorio.

NUMERO DE DATO RESULTADO


CORRIDA. COMPRA PAGAR
1 3500.00 3115.00
2 6850.00 6096.50
3 375.80 375.80
4 690.50 655.97
5 12350.00 10127.00

 Pseudocódigo.

TIENDA _ DESCUENTOS.

{El programa, dado como dato el monto de la compra de un cliente, determina lo que el mismo debe pagar
teniendo en cuenta una serie de descuentos.}

{COMPRA y PAGAR son variables del tipo real}


1. lee COMPRA
2. Si COMPRA < 500
entonces
Hacer PAGAR COMPRA
sino
2.1 si COMPRA <= 1000
entonces
Hacer PAGAR COMPRA * 0.05
sino
2.1.1 Si COMPRA <= 700
entonces
Hacer PAGAR COMPRA * 0.89
sino
2.1.1.1. Si COMPRA <= 15000
entonces
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 55
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Hacer PAGAR COMPRA * 0.82


Sino
Hacer PAGAR COMPRA * 0.75
2.1.1.2 {Fin del condicional del paso 2.1.1.1}
2.1.2 {Fin del condicional del paso 2.1.1}
2.2 {Fin del condicional de paso 2.1}
3. {Fin del condicional del paso 2}
4. Escribir PAGAR

3.2. ESTRUCTURAS DE ITERACION

3.2.1. PRE Y POST CONDICIONAL CONTADOR Y ACUMULADORES

 La Estructura Repetir.

La estructura repetir es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número
definido de veces. Por ejemplo cuando necesitamos calcular la nómina total de la empresa, tenemos que sumar los
sueldos de los N empleados de la misma. Cuando necesitamos obtener el promedio de calificaciones de un curso,
debemos sumar las N calificaciones de los alumnos y dividir esa suma entre N. Es decir, sabemos de antemano
cuántas veces tenemos que repetir una determinada operación, acción o tarea. El número de repeticiones no
depende de las proposiciones dentro del ciclo. El número de veces se obtiene del planteamiento del problema o de
una lectura que indica que el número de iteraciones se debe realizar para N ocurrencias.
El diagrama de flujo de la estructura algorítmica repetir es el siguiente:

V VI

V>VF

PROCESO

V V+INC

Donde:
V es una variable de control.
VI es el valor inicial.
VF es el valor final.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 56
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

INC es el incremento.

V(contador del ciclo, generalmente representado por la letras (I, J, K, V) toma un valor inicial y se compara con
VF (valor final). El ciclo se ejecuta mientras V es menor o igual al valor de VF. El valor de V se incrementa en
cada iteración. Cuando V supera el valor de VF entonces el ciclo se detiene.

 Pseudocódigo.
.
.
.
Hacer V VI
Repetir con V desde VI hasta VF
.
.
.
{proceso}
.
.
.
Hacer V V + INC
{Fin del ciclo}

 EJEMPLO.

Construya un diagrama de flujo tal, que dados como datos los sueldos de los 10 trabajadores de una empresa,
obtenga el total de nómina de la misma. Considere además que no puede utilizar estructuras algorítmicas
repetitivas en la solución del problema.
Dato:
SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10.
Donde:
SUE1, SUE2,..., SUE10 son variables de tipo real, que representan los sueldos de los 10 trabajadores.
Diagrama de Flujo.
INICI
O

SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10

NOMINA = SUE1+SUE2+SUE3+SUE4+SUE5+SUE6+SUE7+SUE8+SUE9+SUE10

NOMINA

FIN

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 57
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

 Explicación De Variables.

SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10: Variables de tipo real. Representan los
sueldos de los empleados.
NOMINA: Variable de tipo real. Almacena la suma de los sueldos de todos los trabajadores.
A continuación presentamos la solución del problema anterior, utilizando una estructura algorítmica repetitiva.

Datos:
SUE1, SUE2,...,SUE10.
Donde:
SUEi es una variable de tipo real, que representa el sueldo del trabajador i. 1<= i <=10

 Diagrama De Flujo.

INICI
O

I=1
NOMINA = 0

SI
I>10

NO
SUE

NOMINA = NOMINA + SUE

I=I+1

NOMINA

FIN

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 58
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

El diagrama de flujo es más claro y más general que el anterior. Modificando la condición (I >10), podemos utilizar esta
solución para N empleados, incluso podemos leer el valor de N y formalizar la condición como (1 > N).

 Explicación de variables.

I: Es una variable de tipo entero que representa la variable de control del ciclo. Contabiliza el número de veces que
ha de repetirse una determinada acción. El contador toma una valor inicial generalmente (0 ó 1) y se incrementa en
la mayoría de los casos en una unidad en cada vuelta del ciclo.

NOMINA: Es una variable de tipo real que representa un acumulador. Este se utiliza cuando debemos obtener el
total acumulado de un conjunto de cantidades. Generalmente se inicializa en cero.

SUE: Es una variable de tipo de real. Representa el sueldo del trabajador.

 Prueba de Escritorio.

I SUE NOMINA
1 0 0
2 1500 1500
3 890 2390
4 700 3090
5 950 4040
6 2300 6340
7 1650 7990
8 1800 9790
9 1400 11190
10 760 11950
11 900 12850

 Pseudocódigo.

NOMINA.
{El programa calcula el total de la nómina de un grupo de 10 empleados}
{I es una variable de tipo entero. SUE y NOMINA son variables de tipo real}

1. Hacer I 1 y NOMINA 0
2. Repetir con I desde 1 hasta 0
leer SUE
Hacer NOMINA NOMINA + SUE e I I+1
3. {Fin del ciclo del paso 2}
4. Escribir NOMINA.

 Formas Generales De Las Sentencias.

while (condición)
sentencia 1.

while (condición)
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 59
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

{
sentencia 1;
sentencia 2;
}

do
sentencia;
while (condición);

do
{
sentencia 1;
sentencia 2;
}while (condición);

 Estructura Mientras.

La estructura algorítmica mientras es la estructura adecuada para utilizar en un ciclo cuando no sabemos
el número de veces que éste se ha de repetir. Dicho número depende de las proposiciones dentro del ciclo.
Ejemplos en la vida cotidiana encontramos muchos. Por ejemplo, supongamos que tenemos que obtener el total de
una serie de gastos, pero no sabemos exactamente cuántos son; o cuando tenemos que sacar el promedio de
calificaciones de un examen, pero no sabemos precisamente cuántos alumnos lo aplicaron. Tenemos que sumar las
calificaciones e ir contando el número de alumnos, esto con el fin de poder obtener posteriormente el promedio. El
ciclo se repite mientras tengamos calificaciones de alumnos.
En la estructura mientras se distinguen dos partes:
 Ciclo: Conjunto de instrucciones que se ejecutarán repetidamente.
 Condición de terminación: La evaluación de esta condición permite decidir cuánto finalizará la ejecución
del ciclo. La condición se evalúa al inicio del mismo.
El diagrama de flujo de la estructura algorítmica mientras es el siguiente:

PI PROPOSICIÓN INICIAL

EVALUACIÓN DE NO
PI

SI
PI MODIFICACIÓN DE PI

Donde
PI: La proposición inicial, debe tener un valor verdadero inicialmente. Si el valor de PI es falso, entonces el ciclo
no se ejecuta.
Debe existir también un enunciado dentro del ciclo que afecte la condición, para evitar que el ciclo se ejecute
indefinidamente

 Pseudocódigo.
.
Hacer PI Proposición Inicial
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 60
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Mientras PI es verdadero repetir


.
.
Hacer PI Modificación de PI
.
.
{Fin del ciclo}

 EJERCICIO.

Escriba un diagrama de flujo, tal que dado un grupo de números naturales positivos, calcule e imprima el
cubo de estos números.

Donde:
Num. Variable de tipo entero representa el número de datos a introducir.
Acum. Variable de tipo entero representa el acumulador.
Dat Variable de tipo real representa el dato que se elevara al cubo.
R. Variable de tipo real que expresa el resultado.

 Diagrama De Flujo:
INICI
O

NUM.

ACUM = 0

ACUM < NUM

FIN

DAT

FIN

R = DAT * DAT * DAT

ACUM = ACUM + 1

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 61
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

 Prueba de Escritorio.

NUMERO DE DATOS RESULTADO


CORRIDA. DAT R
1 2 8
2 4 64
3 5 125
4 1 1
5 7 343

 Pseudocódigo.

{Este programa calcula el cubo de cualquier grupo de números}


{Donde NUM, ACUM son variables de tipo real}
1. Leer NUM.
2. Hacer ACUM 0
3. Mientras ACUM < NUM
3.1 Leer DAT
3.2 Hacer R DAT * DAT * DAT
3.3 Imprimir R
3.4 Hacer ACUM ACUM + 1
4. Imprimir Fin.

 Programa en C

# include <stdio.h>
# include <conio.h>

int NUM, ACUM;


float DAT, R;

void main ( )
{
clrscr ( );
printf(“Cuántos Números”);
scanf(“%d”,&NUM);
acum = 0
while (ACUM < NUM);
{
printf(“Dato”);
scanf(“%f”,&DAT);
R = DAT * DAT * DAT;
printf(“El cubo es:%16.2f”,R);
ACUM = ACUM + 1;
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 62
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

}
printf(“Fin”);
}

 EJERCICIO.

El costo de las llamadas telefónicas internacionales, depende de la zona geográfica en la que se encuentre el
país destino, y del número de minutos hablados. En la siguiente tabla se presenta el costo por minuto, por zona. A
cada zona se le ha asociado una clave.

CLAVE ZONA PRECIO


12 América del Norte 2
15 América Central 2.2
18 América del Sur 4.5
19 Europa 3.5
23 Asia 6
25 África 6
29 Oceanía 5

Datos:
CLAVE, NUMIN.
Donde:
CLAVE es una variable entera, que representa la clave de la zona geográfica a la que se llamo.
NUMIN es una variable entera, que expresa la duración (en minutos) de la llamada.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 63
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

 Diagrama de Flujo:

INICIO

CLAVE, NUMIN

CLAVE

COSTOT= NUMIN *4.5 COSTOT= NUMIN *3.5 COSTOT= NUMIN *5


COSTOT= NUMIN *2

COSTOT= NUMIN *2.2 COSTOT= NUMIN *6

Costo Total de la Llamada


COST

FIN

 Explicación de variables.

CLAVE, NUMIN: Variables de tipo entero.


COST: Variable de tipo real. Almacena el costo total de la llamada telefónica.

 Prueba De Escritorio.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 64
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

NUMERO DE DATOS RESULTADO


CORRIDA CLAVE
NUMIN
1 23 5 30
2 15 4 8.8
3 15 10 22
4 29 8 40
5 18 12 54

 Pseudocódigo.

LLAMADAS _ TELEFÓNICAS.
{El programa, dados como dato la clave de la zona a la cual se llamó, y el número de minutos que duró la llamada,
calcula el costo total de la misma}
{CLAVE y NUMIN son variables de tipo entero. COST es una variable de tipo real}
1. Leer CLAVE y NUMIN
2. Si CLAVE igual
12: Hacer COST NUMIN * 2
15: Hacer COST NUMIN * 2.2
18: Hacer COST NUMIN * 4.5
19: Hacer COST NUMIN * 3.5
23, 25: Hacer COST NUMIN * 6
29: Hacer COST NUMIN * 5
3. {Fin del condicional del paso 2}
4. Escribir “Costo total de la llamada”, COST.

 Programa En C.
#include <conio.h>
#include <stdio.h>

float costo,tarifa,minutos;
int clave;

main()
{
clrscr();
gotoxy(1,1);
printf("Practica No. 13");
gotoxy(10,4);
printf("Programa para calcular la tarifa del telefono");
gotoxy(10,6);
printf("Introduce la clave del pais:");
scanf("%d",&clave);
switch(clave)
{
case 12: printf("La zona es: America del Norte");
gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*2;
break;

case 15: printf("La zona es: America Central");


____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 65
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*2.2;
break;

case 18: printf("La zona es: America del Sur");


gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*4.5;
break;

case 12: printf("La zona es: Europa");


gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*3.5;
break;

case 23: printf("La zona es: Asia");


gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*6;
break;

case 25: printf("La zona es: Africa");


gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*6;
break;

case 29: printf("La zona es: Oceania");


gotoxy(5,8);
printf("Introduce los minutos hablados:");
scanf("%f",&minutos);
costo = minutos*5;
break;
default:printf("\n Clave no Registrada");
}
printf("\n\n El valor de la llamada es:%8.2f",costo);
}

 EJERCICIO.

Escriba un diagrama de flujo tal, que dados como datos N números enteros, determine cuántos de ellos son pares y
cuántos impares.

Datos: N, NUM1, NUM2,....,NUMN


____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 66
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Donde:
N es una variable de tipo entero, que representa el número de enteros que se ingresan.
NUMi es una variable de tipo entero, que expresa el número i que se ingresa. 1<= i <= N

 Explicación de las Variables.

I: Variable de tipo entero. Representa la variable de control del ciclo.

N y NUM: Variables de tipo entero. Explicamos su significado anteriormente.

CUEPAR y CUEIMP: Variables de tipo entero. Son contadores. Cuentan el número de números pares e impares,
respectivamente.

Diagrama De Flujo:
INICI
O

I = 1 CUEPAR =0
CUEPAR = 0

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 67
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

I>N

NUM

NUM < > 0

(-1 ** NUM) > 0

CUEPAR = CUEPAR + 1 CUEIMP = CUEIMP + 1

I=I+1

CUEPAR, CUEIMP

FIN

 Prueba De Escritorio.

I N NUM CUEPAR CUEIMP


1 13 0 0
2 5 1
3 6 1
4 28 2
5 36 3
6 13 2
7 0
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 68
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

8 19 3
9 21 4
10 0
11 27 5
12 14 4
13 19 6
14 29 7

 Pseudocódigo.

CUENTA _ PARES _ E _ IMPARES.


{El programa, dado N números enteros, cuenta cuántos de ellos son pares y cuántos impares}
{I, N, NUM, CUEPAR y CUEIMP son variables de tipo entero}
1. Hacer I 1, CUEPAR 0 y CUEIPM 0
2. Leer N
3. Repetir con I desde 1 hasta N
Leer NUM
3.1 Si (NUM < > 0) entonces
3.1.1 Si (-1 ** NUM > 0)
entonces
Hacer CUEPAR CUEPAR + 1
Sino
Hacer CUEIMP CUEIMP + 1
3.1.2 {Fin del condicional del paso 3.1.1}
3.2 {Fin del condicional del paso 3.1}
Hacer I I+1
4. {Fin del ciclo del paso 3}
5. Escribir CUEPAR y CUEIMP

 Programa En C.

#include<stdio.h>
#include<conio.h>

int x,cont,num;
float acum,dato;

void main()
{
textbackground(YELLOW);textcolor(BLUE);
clrscr();
gotoxy(1,1);
printf(" \n\n PROGRAMA QUE CALCULA NUMEROS PARES E IMPARES");
gotoxy(10,5);
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 69
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

printf("\n\n Teclea cuantos numeros quieres identificar: ");


scanf("%d",&num);
cont=0; acum=1;

while(cont<num)
{
printf("\nTeclea el dato(%d):",cont); scanf("%d",&x);
if(x%2==0)
printf("El numero es par",x);
else
printf(" El numero es impar",x);
acum= acum. + x;
cont ++;
}
getch( );
}

 Proposición For.

Estructura for de repetición son: for, while, do while, la primera se considera incondicional las otras se
consideran condicionales. La estructura incondicional for se emplea para repetir una o más sentencias sobre todo
cuando se conoce el número de repeticiones que se desea realizar.

for (inicialización; condición; incremento)


sentencia;

La condición será una expresión lógica la cual determinara el final de las repeticiones.

for (x=1; x<=10; x++)

El ejemplo anterior se emplea cuando la variable de control que va a tomar valores en forma ascendente
desde el 1, hasta el 10 el incremento se considera unitario el incremento puede expresarse en diferentes formas es
decir:
x++
++x
x+=1
x=x+1

for (x=1;x<=50;x+=5)
De el ejemplo anterior podemos decir que la variable de control tomara valores ascendentes desde 1 hasta
500 de en 5 en 5.

for(y= “a”;y<= “z”; y++)

Para el for anterior podemos ver que la variable de control tomo valores desde de a hasta z por lo que ahora
podemos decir que no solo números son los valores que podemos tomar la variable de control descendente o
ascendente.

for(z=0.5;z<=8.5;z+0.25)

En el ejemplo anterior podemos ver que la variable de control de un for puede ser de tipo real es decir de
punto flotante.

for(i i)

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 70
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

Cuando se emplea de la forma antes mencionada se usa para crear ciclos en forma infinita es decir que hará
repeticiones hasta que se apague la máquina o se empleen funciones que permitan darlo por terminado (break).

Un caso especial del uso de for que se da exclusivamente en el for será el que puede manejar 2 variables de
control cada una con su inicio, el final e incremento o decrementp como se muestra en el siguiente ejemplo:
for (i=0;j=4;i*;j<4;i++;j--)
{
.
}

3.3. ESTRUCTURAS DE CONTROL

3.2.1. RUPTURA DE UN LAZO

 Los Enunciados Break Y Continué

Los enunciados break y continué se utilizan para modificar el flujo de control. El enunciado
bxeak, cuando se utiliza o ejecuta en una estructura while, for, do/while, o switch, causa la salida inmediata de
dicha estructura. La ejecución del programa continúa con el primer enunciado después de la estructura. Los usos
comunes del enunciado break son para escapar
en forma prematura de un ciclo, o para saltar el resto de una estructura switch (como en la figura 4.7).

La figura 4.11 demuestra el enunciado break en una estructura de repetición for. Cuando la estructura i£
detecta que x se ha convertido en 5, se ejecuta break. Esto da por terminado el enunciado £or, y el programa
continúa con el printf existente después de for. El ciclo se ejecuta por completo cuatro veces.

El enunciado continué, cuando se ejecuta en una estructura while, for, do/while, salta los enunciados restantes
del cuerpo de dicha estructura, y ejecuta la siguiente iteración del ciclo.

En estructuras while y do/while, la prueba de continuación de ciclo se valúa de inmediato de que se haya
ejecutado el enunciado continué. En la estructura for, se ejecuta la expresión incremental, y a continuación se
valúa la prueba de continuación de ciclo. Anteriormente indicamos que la estructura while podría ser utilizada, en
la mayor parte de los casos, para representar la estructura for. Una excepción ocurre cuando la expresión
incremental en la estructura while sigue a un enunciado continué. En este caso, el incremento no se lleva a cabo
antes de la prueba de la condición de continuación de repetición, y no se ejecuta el while de la misma forma que
en el caso del for. En la figura 4.2 se utiliza el enunciado continué en una estructura for, para saltar el enunciado
printf de la estructura, y empezar con la siguiente iteración del ciclo.

#include <stdio.h>
main ( )
{
int x;

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 71
FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA UNIDAD III
____________________________________________________________________________________________________

for (x • 1; x <" 10; x++) {

if (x =- 5)
break; /* break loop oniy if x «sa 5 •/

printf("%d ", x);

}
printf("\nBroke out of loop at x " %d\n", x);
return O;
}

Cómo utilizar el enunciado break en una estructura for.

#include <stdio.h>
main ( )

(
int x;

for (x « 1; x <• 10; x++) {

if (x == 5)
continué; /* skip remaining code in loop oniy
if x — 5 */

printf("<(d ", x);

printf(''\nUsed continué to skip printing the valué 5\n");

Cómo utilizar el enunciado continué en una estructura for.

____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATICO ING. OSORNIO 72

También podría gustarte