Sie sind auf Seite 1von 45

FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD

____________________________________________________________________________________________________
UNI DAD I I I
ESTRUCTURA DE FLUJO PROGRAMATICO
3. 1. ESTRUCTURA DE DECISION
3.1. 1. SIMPLE
Un diagrama de flujo representa la esquemati zacin grafica de un algori t mo. En
realidad muestra grficamente los pasos o procesos a seguir para alcanzar la solucin de
un problema. Su correcta construcci n es sumamente importante porque, a partir del
mismo escribe un programa en algn lenguaj e de programaci n. Si el diagrama de flujo
esta completo y correcta, el paso del mismo a un lenguaje de programaci n es
relati vament e simpl e y directo.
A continuacin presento los smbolos que utilizaremos, y una explicacin de los
mismos, Estos satisfacen las recomendaci ones de la nternati onal Standard Organization
(SO) y la American Standard nsti tute (ANS).
Las estructuras lgicas selecti vas se encuentran en la solucin algortmi ca de casi
todo tipo de problemas. La utilizamos cundo el desarrol lo de la solucin de un problema
debemos tomar una decisin, para establecer un proceso o sealar un cami no alternati vo a
seguir.
Esta toma de decisin (expresada con un rombo) se basa en la evaluacin de una o
ms condiciones que nos sealaran como alternati va o consecuenci a, la rama a seguir.
Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se
toma una decisin, se marca la rama correspondi ente a seguir, se vuel ve a tomar otra
decisin y as sucesivamente. Por lo que para alcanzar la solucin de este problema o
subproblema debemos aplicar prcticamente un rbol de decisin.
Las estructuras algortmi cas selecti vas que se utilizan para la toma de decisiones
lgicas las podemos clasificar de la siguiente forma:
1. S ENTONCES (Estructura selecti va simpl e)
2. S ENTONCES / SNO (Estructura selecti va doble)
3. S MLTPLE (Estructura selecti va ml ti pl e)
Cabe sealar que cuando a las estructuras selecti vas las aplicamos en cascada,
podemos utilizar una combi naci n de las estructuras sealadas anteri ormente en la
clasificacin.
La Estructura Si Entonces
La estructura selecti va S ENTONCES permi te que el flujo del diagrama siga por un
camino especifico si se cumpl e una condicin o conjunto de condiciones. S al evaluar la
condicin (o condiciones) el resultado es verdadero, entonces se ejecutara(n) cierta(s)
operacin(es). Luego se conti nua con la secuencia normal del diagrama.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 30
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
A continuacion presentamos el diagrama de flijo, que ilustra selcti va si entobnces, en
lenguaje algori t mi co.
.
.
.
SI conicion ENTONCES
!acer o"eracion
# Fin e$ conicona$ %
.
.
.
E&e'"$ o 1
Construya un diagrama de flujo tal, que dado como dato la calificacin de un alumno
en un examen, escriba " aprobado en caso de que esa calificacin fuese mayor que 8.
DATO: CAL
DONDE: CAL es una variabl e de tipo real, que expresa la calificacin del alumno.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 31
conici(
n

o"eraci(n
si
no
Donde:
CONDCON.- expresa la
condicin o conjunto de
condiciones s evaluarse
OPERACN.- expresa la
operacin o conjunto de
operaciones que se van a
realizar si la condicin resul ta
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
E)"$icaci(n De Las *ari a+$ es
CAL: Variable de tipo real. Almacena la calificacin del alumno.
A conti nuaci n en la siguiente tabla observamos LA PRUEB A DE ESCRTORO
NUMERO
DE
CORRIDA
DATO
CAL RESULTADO
1 8.75 " aprobado
2 7.90
3 8.00
4 9.50 " aprobado
5 8.35 " aprobado
Seuocoi ,o
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 32
INICIO
CAL
APROBADO
FIN
CAL
>8
no
si
Estructura seecti!a
"I EN#ONCE"
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
E-AMEN.SELECTI*A.SI MPLE
#E$ "ro,ra'a/ aos co'o ato $a ca$i0icaci(n e un a$u'no en un e)a'en/
escri+e a"ro+ao si $a ca$i0icaci(n es su"erior a1%
#CAL son 2aria+$es e ti"o rea$ %
1. Leer CAL
3. SI CAL 4 1 ENTOCES
Escri+ir 5a"ro+ao6
3. # Fin e$ coniciona$ e$ "aso3 %
E&e'"$ o 3
Dado como dato el sueldo de un trabajador, aplquele un aumento del 15% si su
sueldo es inferior a $100. mpri ma en este caso, el nuevo sueldo del trabajador. Haga
diagrama de flujo correspondi ente.
DATO: SUE
DONDE: SUE es una variable de tipo real, que expresa el sueldo del trabajador.
E)"$icaci(n De Las *ari a+$ es
SUE: Variable de tipo real.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 33
INICIO
"$E
APROBADO
FIN
"$E%1000
no
si
Estructura seecti!a
"I EN#ONCE"
A$&'"$E(01)
"$E'"$E*AL&
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
AUM: Variable de tipo real. Almacena el aumento del trabajador.
NSUE: Variable de tipo real. Almacena el nuevo sueldo del trabajador.
A continuacin en la siguiente tabla observamos LA PRUEBA DE ESCRTORO
NUMERO
e
CORRIDA
DATOS CALCULO
AUXILIAR
RESULTADOS
SUE AUM NSUE
1 875.50 131.32 1006.8
2
2 1300.0
0
3 2150.0
0
4 976.00 146.40 1122.4
0
5 785.00 117.75 902.75
Seuocoi,o
AUMENTO.SELECTI*A.SI MPLE
#E$ "ro,ra'a/ aos co'o ato e$ sue$o e un tra+a&aor / $e a"$ica un au'ento
e$ 178 si su sue$o es in0erior a 91:::%
#SUE/ AUM/ NSUE son 2aria+$es e ti"o rea$ %
1. Leer SUE
3. SI SUE ; 1::: ENTOCES
!acer AUM SUE<:. 17 = NSUE SUE >AUM
Escri+ir NSUE
3. # Fin e$ coniciona$ e$ "aso3 %
Pro,ra'a En C
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 3+
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
#i ncl ude <stdi o.h>
#i ncl ude <coni o.h>
mai n( );
{
float Sueldo, Aumento, Sueldo neto;
printf("Cal cul e el sueldo de un trabajador);
printf("Tecl ea tu sueldo: );
scanf("%f , &Suel do);
if(Sueldo <1000);
(Sueldo * 0.15 = aumento);
Aumento + Sueldo = Sueldo neto;
printf("\ n Tu sueldo neto es:%4.2f ,Suel do neto);
getch( );
}
3.1. 2. RAMIFICADA
La Estructura Si Entonces ? Sino
La estructura selecti va S ENTONCES / SNO permi te que el flujo del diagrama se
bifurque por dos ramas diferentes en el punto de la toma de decisin (es). Si al evaluar la
condicin(es) el resultado es verdadero, entonces se sigue por el cami no especifico y se
ejecuta(n) cierta(s) operacin(es). Por otra parte, si el resul tado es falso entonces se sigue
por otro cami no y se ejecuta(n) otra(s) operacin(es) indicada(s), se conti nua con la
secuencia normal del diagrama. A conti nuacin presento el diagrama de flujo que ilustra la
estructura selecti va.
El diagrama de flujo en lenguaje algort mi co, lo expresamos de esta forma.
.
.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 3)
conici(
n
O"eraci(n 1
si no
O"eraci(n 3
Donde:
CONDCON.- expresa la
condicin o conjunto de
condiciones s evaluarse
OPERACN1.- expresa
la operacin o conjunto
de operaciones que se
van a realizar si la
condicin resulta
verdadera.
OPERACN2.- expresa
la operacin o conjunto
de operaciones que se
van a realizar si la
condicin resulta falsa.
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
.
SI conicion
ENTONCES
!acer o"eraci(n 1
SINO
!acer o"eracion 3
# Fin e$ conicona$ %
.
.
.
E&e'"$ o 3
Construya un diagrama de flujo tal, que dado como dato la calificacin de un alumno
en un examen, escriba " aprobado en caso de que esa calificacin fuese mayor que 8 y
"reprobado en caso contrari o.
DATO: CAL
DONDE: CAL es una variabl e de tipo real, que expresa la calificacin del alumno.
E)"$icaci(n De Las *ari a+$ es
CAL: Variable de tipo real. Almacena la calificacin del alumno.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 3,
INICIO
CAL
FIN
CAL
>8
NO
"I
Estructura selecti va
S ENTONCES / SNO
A-ro.a/o Re-ro.a/o
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
A conti nuaci n en la siguiente tabla observamos LA PRUEBA DE ESCRTORO
NUMERO
DE
CORRIDA
DATO
CAL RESULTADO
1 8.75 " aprobado
2 7.90 " Reprobado
3 8.00 " Reprobado
4 9.50 " aprobado
5 8.35 " aprobado
E-AMEN.SELECTI*A.SI MPLE
#E$ "ro,ra'a/ aos co'o ato $a ca$i0icaci(n e un a$u'no en un e)a'en/
escri+e a"ro+ao si $a ca$i0icaci(n es su"erior a 1 = 5re"ro+ao6 en caso
contrari o%
#CAL son 2aria+$es e ti"o rea$ %
1. Leer CAL
3. SI CAL 4 1
ENTOCES
Escri+ir 5A"ro+ao6
SINO
Escri+ir 5Re"ro+ao6
3. # Fin e$ coniciona$ e$ "aso3 %
Pro,ra'a En C.
# include <stdi o.h>
#i ncl ude <coni o.h>
mai n( )
{
float CAL;
clrscr( );
printf("Programa que define si el alumno aprueba o reprueba);
printf("Tecl ee su calificacin: );
scanf("%f , &CAL);
if(cal > 8)
{
printf("Aprobado);
getch( );
}
else
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 30
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
}
printf("reprobado);
getch( );
}
}
E&e'"$ o @
Dado como dato el sueldo de un trabajador, aplquele un aumento del 15% si su
sueldo es inferior a $1000 y 12% en caso contrari o. mpri ma el sueldo del trabajador
DATO: SUE
DONDE: SUE es una variable de tipo real, que expresa el sueldo del trabajador.
E)"$icaci(n De Las *ari a+$ es
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.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 38
INICIO
"$E
FIN
"$E %1000
NO
"I
Estructura seecti!a
"I EN#ONCE" 1 "INO
N"$E'"$E(121)
N"$E'"$E(12122
N"$E
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
A continuacin en la siguiente tabla observamos LA PRUEB A DE ESCRTORO
NUMERO
DE
CORRIDA
DATO
RESULTA
DO
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
Seuocoi ,o
AUMENTO.SELECTI*A.DOALE
#E$ "ro,ra'a/ aos co'o ato e$ sue$o e un tra+a&aor / $e a"$ica un au'ento
e$ 178 si su sue$o es in0erior a 91::: = 138 en caso contrari o%
#SUE/ AUM/ NSUE son 2aria+$es e ti"o rea$ %
1. Leer SUE
3. SI SUE ; 1:::
ENTOCES
!acer NSUE SUE < 1.17
SINO
!acer NSUE SUE < 1.13
3. # Fin e$ coniciona$ e$ "aso3 %
@. Escri+ir NSUE
E&ercicio.
Realizar un diagrama de flujo para calcular el precio del billete del billete ida y vuel ta del
ferrocarri l conociendo la distanci a del viaje de ida y el tiempo de estancia.
Se sabe adems que si el nmero de das de estancia es superior a 7 y la distanci a total
(ida y vuel ta) a recorrer es superior a 800Km, el billete tiene una rebaja del 30% el precio
del Kilmetro es de 17 centavos.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 33
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Datos:
Rec1, Rec2, Das;
Donde:
Rec1. Es de tipo real y representa la distancia de ida.
Rec2. es de tipo real y representa la distancia de vuel ta.
Das. Es de tipo entero y representa la estancia.
Dia,ra'a e F$u&oB
S NO
Prue+a e Escritori oB
NUMERO DE
CORRIDA
DATOS
Rec1 Rec3 RECT
DCas
RESULTADO
1 400 800 1200 3 204
2 350 200 550 5 93.5
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +0
REC#> 800 AND >
0
CO"#O ' REC# ( 0210 ( 020 CO"#O ' REC# ( 0210
INICI
O
Rec14 Rec24
D5as
REC# ' Rec1 * Rec2
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
3 700 135 835 8 99.365
4 630 50 680 10 115.6
5 310 30 340 9 57.8
Pseuoc(i ,o.
{Dados como datos las distanci as de ida y vuel ta y el tiempo de estancia dar el precio del
boleto. Si el recorri do es mayor a 800Km y la estancia mayor a 7 das realizar un descuento
del 30%}
{Rec1, Rec2, RECT, das, Costo son variables de tipo real }
1. Leer Rect1, Rect2, das;
2. Hacer RECT = Rect1 + Rect2
3. Si rect > 800 and das > 7
Costo = RECT * 0.17
4. {Fi n del programa}
# include <stdi o.h>
# include <coni o.h>
mai n( )
{
float rect1, rect2, rectotal, costo;
int das;
clrscr( );
gotoxy(1,1);
printf("Programa del Viaje);
gotoxy(10,5);
printf("Tecl ea rec1: );
scanf("%f , &rec1);
gotoxy(10,7);
printf("Tecl ea rec2: );
scanf("%f , &rec2);
gotoxy(10,9);
printf("Tecl ee los das de estancia: );
scanf(("%d, &das);
gotoxy(10,11);
rectotal = rect1 + rect2;
}
if (rectotal > 800 && das > 7)
{
costo = rectotal * 0.17 * 0.7;
}
else
{
costo = rectotal * 0.17
printf("El costo es:);
getch ( );
}
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +1
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
La Estructura Si MD$ ti "$ e
La estructura selecti va S MLTPLE que el flujo del diagrama se bifurque por varias
ramas de la toma de decisin(es), esto en funcin del valor que tome el selector. as si el
selector toma el VALOR 1 se ejecutara la accin 1,si se toma el Valor 2 se ejecutara la
accin 2, si toma el VALOR N se realizara la accin N y si toma un valor disti nto de los
valores comprendi dos entre 1 y N, se continuara con el flujo normal del diagrama
realizndose la accin N+1.
A continuacin presento el diagrama de flujo que ilustra esta estructura selecti va.
Valor 1 valor 2 valor 3
Donde:
SELECTOR: Es la variabl e o expresin a evaluarse, segn la cual se tomara una de las
"mul ti pl es de decisiones o aternati vas.
ACCON 1: Expresa la operacin o conjunto de operaciones que se van a realizar si el
selector toma el VALOR 1.
ACCON 2: Expresa la operacin o conjunto de operaciones que se van a realizar si el
selector toma el VALOR 2.
ACCON 3: Expresa la operacin o conjunto de operaciones que se van a realizar si el
selector toma el VALOR 3.
ACCON N+1: Expresa la operacin o conjunto de operaciones que se van a realizar si el
selector toma el VALOR N+1.
El diagrama de flujo en lenguaj e algori t mi co lo expresamos de esta forma.
.
.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +2
ACCION 1 ACCION 2 ACCION 3
ACCION N*1
"ELEC#OR
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Si se$ector i,ua$
*a$or 1B !acer accion 1
*a$or 3B !acer accion 3
.
.
.
*a$or NB !acer accion N
# Fin e$ coniciona$ e$ "aso3 %
!acer accion N>1
.
.
.
La estructura selecti va S MLTPLE es muy flexi ble, lo que permi te aplicarla de
diferentes formas. Obsrvese los siguientes diagramas de flujo y las explicaciones
correspondi entes.
A conti nuaci n presento el diagrama de flujo que ilustra esta estructura selecti va.
Valor 1 valor 2 valor 3 de otra forma
El diagrama de flujo en lenguaj e algori t mi co lo expresamos de esta forma.
.
.
Si se$ector i,ua$
*a$or 1B !acer accion 1
*a$or 3B !acer accion 3
*a$or 3B !acer accion 3
De otra 0or'aB Eacer accion -
# Fin e$ coniciona$ e$ "aso3 %
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +3
ACCION 1
ACCION 2
ACCION 6
ACCION 7
"ELEC#OR
ACCION 3
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
!acer accion F
.
.
A continuacin presento el diagrama de flujo que ilustra esta estructura selecti va.
Valor 1,2 valor 3,4,5, de otra forma
El diagrama de flujo en lenguaj e algori t mi co lo expresamos de esta forma.
.
.
Si se$ector i,ua$
*a$or 1/3B !acer accion 1
*a$or 3/@/ 7/ B !acer accion 3
. De otra 0or'aB !acer accion 3
.
# Fin e$ coniciona$ e$ "aso3 %
!acer accion -
.
A conti nuaci n presento algunos ejempl os donde el lector puede aplicar los
conceptos estudiados con la estructura selecti va S MLTPLE.
EJEMPLO.
Construya un diagrama de flujo tal, que dados como datos dos variables de tipo entero,
obtenga el resul tado de la siguiente funcin:

100 * V Si NUM = 1
100 ** V Si NUM = 2
VAL = 100 / V Si NUM = 3
0 Para cualquier otro valor de NUM
Datos:
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ++
ACCION 1 ACCION 2 ACCION 3
ACCION 6
"ELEC#OR
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
NUM, V.
Diagrama de Flujo:
E)"$icaci(n De Las *ari a+$ es.
NUM: Variable de tipo entero.
V: Variable de tipo entero.
VAL: Variable de tipo real. Almacena el resultado de la funcin.
Prue+a De Escritori o.
NUMERO DE
CORRIDA
DATOS
NUM
*
RESULTADO
*AL
1 1 8 800
2 7 6 0
3 3 4 25
4 4 8 0
5 2 3 1000000
Pseuoc(i ,o.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +)
INICI
O
N$&4 8
N$&
8AL ' 100( 8 8AL ' 100 (( 8 8AL ' 100 1 8 8AL ' 0
8AL
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
FUNCN _ SELECTVA _ MLTPLE.
{El programa, dados como datos dos variabl es de tipo entero, calcula el resul tado de una
funcin}
{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. {Fi n del condicional del paso 2}
4. Escribir VAL.
Pro,ra'a en C
# include <stdi o.h>
# include <coni o.h>
mai n( )
{
int Num, V;
float VAL;
clrscr ( );
printf("\ n Programa que calcula la funcin de un nmero);
printf("De el valor de X o de la variable de la funcin);
scanf("%d, &V);
printf("Funci ones);
printf("(1) 100 * V);
printf("(2) 100 ** V);
printf("(3) 100 / V);
printf("\ n Teclee la opcin 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;
defaul t: printf("El resultado es 0);
}
}
E&ercicio.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +,
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Construya un diagrama de flujo tal, que dados como datos la categora y el sueldo de
un trabajador, calcule el aumento correspondi ente teniendo en cuenta la siguiente tabla.
mpri ma la categora del trabajador y su nuevo sueldo.
CATEGORIA AUMENTO
1 15%
2 10%
3 8%
4 7%
Datos:
CATE, SUE.
Donde:
CATE es una variabl e de tipo entero, que representa la categora del trabajador.
SUE es una variable de tipo real, que expresa el sueldo del trabajador.
Explicacin de las Variables.
CATE: Variable de tipo entero. Su significado fue explicado anteriormente.
SUE: Variable de tipo real. Su significado fue explicado anteri ormente.
NSUE: Variable de tipo real. Almacena el sueldo con el aumento incorporado.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +0
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Dia,ra'a e F$u&oB
Prue+a e Escritori o.
NUMERO DE
CORRDA
DATOS
CATE
SUE
RESULTADO
NSUE
1 3
3800
4104
2 4
6200
6634
3 1
1100
1265
4 2
1750
1925
5 3
4100
4428
Pseuoc(i ,o.
AUMENTO _ SELECTVA _ MLTPLE.
{El programa calcula el aumento de sueldo de los trabajadores, teniendo en cuenta su
categora. El aumento se incorpora al salario}
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +8
INICI
O
CA#E4 "$E
CA#E
N"$E ' "$E ( 121) N"$E ' "$E (1210 N"$E ' "$E ( 1208 N"$E ' "$E ( 1200
CA#E4 N"$E
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
{CATE es una variabl e 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
2.3 Hacer NSUE SUE * 1.08
2.4 Hacer NSUE SUE * 1.07
3. {Fi n del condiciona del paso2}
4. Escribir CATE, NSUE.
# include<st di o.h>
# include <coni o.h>
mai n( )
{
int CATE;
float SUE, NSUE
clrscr( );
printf("Programa que calcula el aumento de un trabajador);
printf("Tecl ea el sueldo actual: );
scanf("%f , &suel do);
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("Tecl ea la categora);
scanf("%d, &CATE);
switch (categori a)
{
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;
defaul t: printf("Opci n no Contempl ada);
}
}
ESTRUCTURAS SELECTI*AS EN CASCADA GANI DADASH.
Encontramos numerosos casos en el desarrollo de la solucin de problemas en el que
luego de tomar una decisin y marcar el cami no correspondi ente a seguir, es necesario
tomar otra decisin. Se seala, luego de evaluar las condiciones, la rama correspondi ente a
seguir, y nuevamente podemos tener que tomar una decisin. El proceso puede repeti rse
numerosas veces. En este caso estamos aplicando estructuras selecti vas en cascada o
anidadas, para resol ver el problema.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO +3
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
EJEMPLO.
El siguiente caso donde dentro de la estructura si / entonces, encontramos la
estructura si entonces / sino.
No
Si
Si
Si no
Pseuoc(i ,o.
.
..
N. Si condicin 1 entonces
N.1. Si condicin 2
Entonces
Hacer operacin 21
Sino
Hacer operacin 22
N.2. {Fi n del condicional del paso N.1. }
N + 1 {Fi n del condicional del paso N}
.
.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )0
CONDICION 1
CONDICION 2
OPERACI9N 21 OPERACI9N 21
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
EJEMPLO.
Analicemos el siguiente caso.
Pseuoc(i ,o.
.
.
.
N. Si condicin 1
entonces
N.1. Si condicin 2
Entonces
Hacer operacin 2.1
sino
Hacer operacin 2.2
N.2. {Fi n del condicional del paso N.1}
sino
N.3 Si condicin 3 entonces.
Hacer operacin 3.1
{Fi n del condicional del paso N.3}
N + 1 {Fi n del condicional del paso N}
.
.
.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )1
CONDICION
1
CONDICION
2
CONDICION
3
OPERACI9N 321 OPERACI9N 221 OPERACI9N 222
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Analicemos el lti mo caso.
Pseuoc(i ,o.
.
.
.
N. Si condicin 1
entonces
N.1 Si selector 1 igual
valor 1: Hacer operacin 2.1
valor 2: Hacer operacin 2.2
N.1.1. Si condicin 3 entonces
Hacer operacin 3.1
N.1.2. {Fi n de condicional del paso N.1.1}
de otra forma
N.1.3. Si condicin 4 entonces
Hacer operacin 4.1 sino
Hacer operacin 4.2
N.1.4. {Fi n del condicional del paso N.1.3}
N.2. {Fi n de condicional del paso N.1}
Sino
N.3. Si condicin 5 entonces
Hacer operacin 5.1
N.4. {Fi n del condicional del paso N.3. }
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )2
CONDICION 1
"ELEC#OR
OPERACI9N 221 CONDICION
3
OPERACI9N 321
CONDICION )
OPERACI9N )21
Con/ici:
n+
O-eraci:n+21 O-eraci:n+22
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
N + 1 {Fi n del condicional del paso N}
.
.
EJEMPLO.
Construya un diagrama de flujo tal, que dado como dato una temperatura en grados
Fahrenhei t, determi ne el deporte que es apropi ado practicar a esa temperatura, teniendo
en cuenta la siguiente tabla:
DEPORTE TEMPERATURA
Natacin >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:
E)"$icaci(n De *ari a+$ es.
TEMP: Variable de tipo real. Explicamos su significado con anteriori dad.
Prue+a e Escritori o.
NUMERO DE
CORRIDA
TEMPERATU
RA
RESULTADO
DEPORTE
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )3
INICI
O
#E&
P
#E&P > 8)
#E&P > 00
#E&P > 32
#E&P > 10
NA#ACION
#ENI"
;OLF
E"<$I &ARC=A
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
TEMP
1 16 Esqu.
2 85 Tenis.
3 4 Marcha.
4 32 Esqu.
5 89 Natacin.
Pseuoc(i ,o.
REPORTE _ TEMPERATURA.
{El programa, dado como dato una temperatura en grados Fahrenhei t, recomi enda el
deporte que es aconsejabl e practicar a esa temperatura}
{TEMP es una variabl e de tipo real }
1. Leer TEMP.
2. Si TEMP > 85
entonces
escribir natacin
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 {Fi n del condicional del paso 2.1.1.1}
2.1.2 {Fi n del condicional del paso 2.1.1}
2.2 {Fi n del condicional del paso 2.1}
3. {Fi n del condicional del paso 2}
Pro,ra'a En C.
#i ncl ude <stdi o.h>
#i ncl ude <coni o.h>
char enter,pausa;
float temp;
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )+
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
mai n( )
{
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 Natacin ");
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 efectan un descuento a los clientes dependi endo del monto de la compra. El
descuento se efecta con base en el siguiente criterio: Si el monto es menor que $500 no
hay descuento. Si el monto est comprendi do entre $500 y $1000 inclusi ve 5% de
descuento. Si el monto est comprendi do entre $1000 y $15000 inclusi ve 11% de
descuento. Si el monto es mayor a $15000 el 25% de descuento.
Dato:
COMPRA.
Donde:
COMPRA es una variabl e de tipo real, que representa el monto de la compra.
Dia,ra'a e F$u&oB
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ))
INICI
O
CO&PRA
CO&PRA%')
00
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
E)"$icaci(n e *ari a+$ es.
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 correspondi entes.
Prue+a e Escritori o.
NUMERO DE
CORRIDA.
DATO
COMPRA
RESULTADO
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
Pseuoc(i ,o.
TENDA _ DESCUENTOS.
{El programa, dado como dato el monto de la compra de un cliente, determi na lo que el
mismo debe pagar teniendo en cuenta una serie de descuentos. }
{COMPRA y PAGAR son variabl es del tipo real }
1. lee COMPRA
2. Si COMPRA < 500
entonces
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ),
CO&PRA%'10
00
CO&PRA%'00
00
CO&PRA%'1)0
00
PA;AR'CO&PRA
PA;AR'CO&PRA(020)
PA;AR'CO&PRA(0283
PA;AR'CO&PRA(0282
PA;AR'CO&PRA(020)
FIN
PA;AR
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
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
Hacer PAGAR COMPRA * 0.82
Sino
Hacer PAGAR COMPRA * 0.75
2.1.1.2 {Fi n del condicional del paso 2.1.1.1}
2.1.2 {Fi n del condicional del paso 2.1.1}
2.2 {Fi n del condicional de paso 2.1}
3. {Fi n del condicional del paso 2}
4. Escribir PAGAR
3. 3. ESTRUCTURAS DE ITERACION
3.2. 1. PRE Y POST CONDICIONAL CONTADOR Y ACUMULADORES
La Estructura Re"eti r.
La estructura repeti r es la estructura algortmi ca adecuada para utilizar en un ciclo que
se ejecutar un nmero defini do de veces. Por ejempl o cuando necesi tamos calcular la
nmi na total de la empresa, tenemos que sumar los sueldos de los N empleados de la
misma. Cuando necesitamos obtener el promedi o de calificaciones de un curso, debemos
sumar las N calificaciones de los alumnos y dividi r esa suma entre N. Es decir, sabemos de
antemano cuntas veces tenemos que repeti r una determi nada operacin, accin o tarea.
El nmero de repeticiones no depende de las proposiciones dentro del ciclo. El nmero de
veces se obtiene del planteami ento del problema o de una lectura que indica que el
nmero de iteraciones se debe realizar para N ocurrenci as.
El diagrama de flujo de la estructura algortmi ca repeti r es el siguiente:
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )0
8 8I
8>8F
PROCE"O
8

8*INC
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Donde:
V es una variable de control.
V es el valor inicial.
VF es el valor final.
NC es el incremento.
V(contador del ciclo, general mente representado por la letras (, 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 iteracin. Cuando V supera el valor de VF entonces
el ciclo se detiene.
Pseuoc(i ,o.
.
.
.
!acer * *I
Re"eti r con * ese *I Easta *F
.
.
.
#"roceso%
.
.
.
!acer * * > INC
#Fi n e$ cic$o%
EJEMPLO.
Construya un diagrama de flujo tal, que dados como datos los sueldos de los 10
trabajadores de una empresa, obtenga el total de nmi na de la misma. Considere adems
que no puede utilizar estructuras algort mi cas repeti ti vas en la solucin del problema.
Dato:
SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10.
Donde:
SUE1, SUE2,..., SUE10 son variabl es de tipo real, que representan los sueldos de los 10
trabajadores.
Diagrama de Flujo.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )8
INICI
O
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
E)"$icaci(n De *ari a+$ es.
SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10: Variables de tipo real.
Representan los sueldos de los empl eados.
NOMNA: Variable de tipo real. Almacena la suma de los sueldos de todos los trabajadores.
A conti nuaci n presentamos la solucin del problema anterior, utilizando una estructura
algortmi ca repeti ti va.
Datos:
SUE1, SUE2,...,SUE10.
Donde:
SUEi es una variable de tipo real, que representa el sueldo del trabajador i. 1<= i <=10
Dia,ra'a De F$u&o.
S
NO
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO )3
"$E14 "$E24 "$E34 "$E+4 "$E)4 "$E,4 "$E04 "$E84 "$E34 "$E10
NO&INA ' "$E1*"$E2*"$E3*"$E+*"$E)*"$E,*"$E0*"$E8*"$E3*"$E10
NO&INA
FIN
INICI
O
I ' 1
NO&INA ' 0
I>10
"$E
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
El diagrama de flujo es ms claro y ms general que el anterior. Modificando la condicin ( >10),
podemos utilizar esta solucin para N empleados, incluso podemos leer el valor de N y formalizar la
condicin como (1 > N).
E)"$icaci(n e 2ari a+$ es.
: Es una variable de tipo entero que representa la variable de control del ciclo. Contabil iza
el nmero de veces que ha de repeti rse una determi nada accin. El contador toma una
valor inicial general mente (0 1) y se incrementa en la mayora de los casos en una unidad
en cada vuel ta del ciclo.
NOMNA: Es una variable de tipo real que representa un acumul ador. Este se utiliza cuando
debemos obtener el total acumul ado de un conjunto de cantidades. General mente se
inicializa en cero.
SUE: Es una variable de tipo de real. Representa el sueldo del trabajador.
Prue+a e Escritori o.
I SUE NOMI NA
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
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,0
NO&INA ' NO&INA * "$E
I ' I * 1
NO&INA
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Pseuoc(i ,o.
NOMNA.
{El programa calcula el total de la nmi na de un grupo de 10 empleados}
{ es una variable de tipo entero. SUE y NOMNA son variabl es de tipo real }
1. Hacer 1 y NOMNA 0
2. Repeti r con desde 1 hasta 0
leer SUE
Hacer NOMNA NOMNA + SUE e + 1
3. {Fi n del ciclo del paso 2}
4. Escribir NOMNA.
For'as Genera$ es De Las Sentenci as.
while (condicin)
sentencia 1.
while (condicin)
{
sentencia 1;
sentencia 2;
}
do
sentencia;
while (condicin);
do
{
sentencia 1;
sentencia 2;
}whi l e (condicin);
Estructura Mi ent ras.
La estructura algortmi ca mientras es la estructura adecuada para utilizar en un ciclo
cuando no sabemos el nmero de veces que ste se ha de repeti r. Dicho nmero depende
de las proposiciones dentro del ciclo. Ejemplos en la vida cotidiana encontramos muchos.
Por ejempl o, supongamos que tenemos que obtener el total de una serie de gastos, pero no
sabemos exactamente cuntos son; o cuando tenemos que sacar el promedi o de
calificaciones de un examen, pero no sabemos precisamente cuntos alumnos lo aplicaron.
Tenemos que sumar las calificaciones e ir contando el nmero de alumnos, esto con el fin
de poder obtener posteriormente el promedi o. El ciclo se repite mientras tengamos
calificaciones de alumnos.
En la estructura mientras se disti nguen dos partes:
Ciclo: Conjunto de instrucciones que se ejecutarn repeti damente.
Condicin de termi nacin: La evaluacin de esta condicin permi te decidi r cunto
finalizar la ejecucin del ciclo. La condicin se evala al inicio del mismo.
El diagrama de flujo de la estructura algortmi ca mientras es el siguiente:
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,1
PI PROPO"ICI9N INICIAL
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
NO
S
Donde
P: La proposicin inicial, debe tener un valor verdadero inicial mente. Si el valor de P es
falso, entonces el ciclo no se ejecuta.
Debe existir tambi n un enunciado dentro del ciclo que afecte la condicin, para evitar que
el ciclo se ejecute indefini damente
Pseuoc(i ,o.
.
!acer PI Pro"osici(n Inicia$
Mientras PI es 2eraero re"eti r
.
.
!acer PI Moi0icaci(n e PI
.
.
#Fi n e$ cic$o%
EJERCICIO.
Escriba un diagrama de flujo, tal que dado un grupo de nmeros naturales positi vos,
calcule e impri ma el cubo de estos nmeros.
Donde:
Num. Variable de tipo entero representa el nmero de datos a introduci r.
Acum. Variable de tipo entero representa el acumul ador.
Dat Variable de tipo real representa el dato que se elevara al cubo.
R. Variable de tipo real que expresa el resul tado.
Dia,ra'a De F$u&oB
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,2
E8AL$ACI9N DE
PI
PI &ODIFICACI9N DE PI
INICI
O
N$&2
AC$& ' 0
AC$& % N$&
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Prue+a e Escritori o.
NUMERO DE
CORRIDA.
DATOS
DAT
RESULTADO
R
1 2 8
2 4 64
3 5 125
4 1 1
5 7 343
Pseuoc(i ,o.
{Este programa calcula el cubo de cualquier grupo de nmeros}
{Donde NUM, ACUM son variabl es 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 mpri mi r R
3.4 Hacer ACUM ACUM + 1
4. mpri mi r Fin.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,3
DA#
R ' DA# ( DA# ( DA#
R
AC$& ' AC$& * 1
FIN
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Pro,ra'a en C
# include <stdi o.h>
# include <coni o.h>
int NUM, ACUM;
float DAT, R;
void mai n ( )
{
clrscr ( );
printf("Cuntos Nmeros);
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;
}
printf("Fi n);
}
EJERCICIO.
El costo de las llamadas telefnicas internacionales, depende de la zona geogrfica en
la que se encuentre el pas destino, y del nmero de minutos hablados. En la siguiente
tabla se presenta el costo por minuto, por zona. A cada zona se le ha asociado una clave.
CLA*E IONA PRECIO
12 Amrica del Norte 2
15 Amrica Central 2.2
18 Amrica del Sur 4.5
19 Europa 3.5
23 Asia 6
25 frica 6
29 Oceana 5
Datos:
CLAVE, NUMN.
Donde:
CLAVE es una variable entera, que representa la clave de la zona geogrfica a la que se
llamo.
NUMN es una variabl e entera, que expresa la duracin (en minutos) de la llamada.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,+
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Dia,ra'a e F$u&oB
E)"$icaci(n e 2ari a+$ es.
CLAVE, NUMN: Variables de tipo entero.
COST: Variable de tipo real. Almacena el costo total de la llamada telefni ca.
Prue+a De Escritori o.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,)
INICIO
CLA8E4 N$&IN
CLA8E
CO"#O#' N$&IN (32) CO"#O#' N$&IN () CO"#O#' N$&IN (+2)
CO"#O#' N$&IN (222
CO"#O#' N$&IN (2
CO"#O#' N$&IN (,
Costo #ota /e a La>a/a
CO"#
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
NUMERO DE
CORRIDA
DATOS
CLA*E
NUMI N
RESULTADO
1 23 5 30
2 15 4 8.8
3 15 10 22
4 29 8 40
5 18 12 54
Pseuoc(i ,o.
LLAMADAS _ TELEFNCAS.
{El programa, dados como dato la clave de la zona a la cual se llam, y el nmero de
minutos que dur la llamada, calcula el costo total de la misma}
{CLAVE y NUMN son variables de tipo entero. COST es una variable de tipo real }
1. Leer CLAVE y NUMN
2. Si CLAVE igual
12: Hacer COST NUMN * 2
15: Hacer COST NUMN * 2.2
18: Hacer COST NUMN * 4.5
19: Hacer COST NUMN * 3.5
23, 25: Hacer COST NUMN * 6
29: Hacer COST NUMN * 5
3. {Fi n del condicional del paso 2}
4. Escribir "Costo total de la llamada, COST.
Pro,ra'a En C.
#i ncl ude <coni o.h>
#i ncl ude <stdi o.h>
float costo,tari fa,mi nutos;
int clave;
mai n()
{
clrscr();
gotoxy(1,1);
printf("Practi ca No. 13");
gotoxy(10,4);
printf("Programa para calcular la tarifa del telefono");
gotoxy(10,6);
printf("ntroduce la clave del pais:");
scanf("%d",&cl ave);
switch(cl ave)
{
case 12: printf("La zona es: America del Norte");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*2;
break;
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,,
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
case 15: printf("La zona es: America Central ");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*2.2;
break;
case 18: printf("La zona es: America del Sur");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*4.5;
break;
case 12: printf("La zona es: Europa");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*3.5;
break;
case 23: printf("La zona es: Asia");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*6;
break;
case 25: printf("La zona es: Africa");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*6;
break;
case 29: printf("La zona es: Oceania");
gotoxy(5,8);
printf("ntroduce los minutos hablados:");
scanf("%f ",&mi nutos);
costo = minutos*5;
break;
defaul t:pri ntf("\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 nmeros enteros, determi ne
cuntos de ellos son pares y cuntos impares.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,0
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Datos: N, NUM1, NUM2,....,NUMN
Donde:
N es una variabl e de tipo entero, que representa el nmero de enteros que se ingresan.
NUMi es una variable de tipo entero, que expresa el nmero i que se ingresa. 1<= i <= N
E)"$icaci(n e $as *ari a+$ es.
: Variable de tipo entero. Representa la variable de control del ciclo.
N y NUM: Variables de tipo entero. Explicamos su significado anteri ormente.
CUEPAR y CUEMP: Variables de tipo entero. Son contadores. Cuentan el nmero de
nmeros pares e impares, respecti vament e.
Dia,ra'a De F$u&oB
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,8
INICI
O
I ' 1 C$EPAR '0
C$EPAR ' 0
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Prue+a De Escritori o.
I N NUM CUEPAR CUEIMP
1 13 0 0
2 5 1
3 6 1
4 28 2
5 36 3
6 13 2
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO ,3
N
I > N
N$&
N$& % > 0
?@1 (( N$&A > 0
C$EI&P ' C$EI&P * 1 C$EPAR ' C$EPAR * 1
I ' I * 1
C$EPAR4 C$EI&P
FIN
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
7 0
8 19 3
9 21 4
10 0
11 27 5
12 14 4
13 19 6
14 29 7
Pseuoc(i ,o.
CUENTA _ PARES _ E _ MPARES.
{El programa, dado N nmeros enteros, cuenta cuntos de ellos son pares y cuntos
impares}
{, N, NUM, CUEPAR y CUEMP son variabl es de tipo entero}
1. Hacer 1, CUEPAR 0 y CUEPM 0
2. Leer N
3. Repeti r con 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 CUEMP CUEMP + 1
3.1.2 {Fi n del condicional del paso 3.1.1}
3.2 {Fi n del condicional del paso 3.1}
Hacer + 1
4. {Fi n del ciclo del paso 3}
5. Escribir CUEPAR y CUEMP
Pro,ra'a En C.
#i ncl ude<st di o.h>
#i ncl ude<coni o.h>
int x,cont,num;
float acum,dato;
void mai n()
{
textbackground(YELLOW);textcolor(BLUE);
clrscr();
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 00
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
gotoxy(1,1);
printf(" \n\n PROGRAMA QUE CALCULA NUMEROS PARES E MPARES");
gotoxy(10,5);
printf("\n\n Teclea cuantos numeros quieres identi ficar: ");
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( );
}
Pro"osici(n For.
Estructura for de repeticin son: for, while, do while, la pri mera se considera
incondicional las otras se consideran condicionales. La estructura incondicional for se
emplea para repeti r una o ms sentencias sobre todo cuando se conoce el nmero de
repeticiones que se desea realizar.
for (inicializacin; condicin; incremento)
sentencia;
La condicin ser una expresin lgica la cual determi nara el final de las repeticiones.
for (x=1; x<=10; x++)
El ejempl o anterior se empl ea cuando la variabl e 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 ejempl o anterior podemos decir que la variabl e de control tomara valores
ascendentes desde 1 hasta 500 de en 5 en 5.
for(y= a; y<= z; y++)

Para el for anteri or podemos ver que la variable de control tomo valores desde de a
hasta z por lo que ahora podemos decir que no solo nmeros son los valores que podemos
tomar la variabl e de control descendente o ascendente.
for(z=0.5;z<=8. 5; z+0. 25)
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 01
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
En el ejempl o anteri or podemos ver que la variable de control de un for puede ser de
tipo real es decir de punto flotante.
for(i i)

Cuando se emplea de la forma antes mencionada se usa para crear ciclos en forma
infini ta es decir que har repeticiones hasta que se apague la mqui na o se empleen
funciones que permi tan darlo por termi nado (break).
Un caso especial del uso de for que se da exclusi vamente en el for ser el que puede
manejar 2 variabl es de control cada una con su inicio, el final e incremento o decrementp
como se muestra en el siguiente ejempl o:
for (i =0;j =4; i *;j <4; i ++; j - -)
{
.
}
3. 3. ESTRUCTURAS DE CONTROL
3.2. 1. RUPTURA DE UN LAZO
Los Enunciaos AreaJ F Conti nuK
Los enunciados +reaJ y conti nu se utilizan para modificar el flujo de control. El
enunciado
bxeak, cuando se utiliza o ejecuta en una estructura while, for, do/whi le, o switch, causa la
salida inmediata de dicha estructura. La ejecucin del programa conti na con el pri mer
enunciado despus 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
fi gura 4.7).
La figura 4.11 demuestra el enunciado break en una estructura de repeti ci n for.
Cuando la estructura i detecta que x se ha converti do en 5, se ejecuta break. Esto da por
termi nado el enunciado or, y el programa conti na con el printf existente despus de for.
El ciclo se ejecuta por compl eto cuatro veces.
El enunciado conti nu , cuando se ejecuta en una estructura while, for, do/whi le, salta los
enunciados restantes del cuerpo de dicha estructura, y ejecuta la siguiente iteracin del
ciclo.
En estructuras while y do/whil e, la prueba de continuaci n de ciclo se vala de inmedi ato
de que se haya ejecutado el enunciado conti nu . En la estructura for, se ejecuta la
expresin incremental , y a continuaci n se vala la prueba de continuaci n de ciclo.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 02
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
Anteriormente indicamos que la estructura while podra ser utilizada, en la mayor parte de
los casos, para representar la estructura for. Una excepcin ocurre cuando la expresin
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 condicin de continuacin de
repeticin, y no se ejecuta el while de la misma forma que en el caso del 0or. En la figura
4.2 se utiliza el enunciado conti nu en una estructura for, para saltar el enunciado printf de
la estructura, y empezar con la siguiente iteracin del ciclo.
#i ncl ude <st dio.h>
mai n ( )
{
int x;
for (x 1; x <" 10; x++) {
if (x =- 5)
+reaJL ?< +reaJ $oo" oni= i0 ) Msa 7 N?
printf(" %d ", x);
}
pri ntf("\ nBroke out of loop at x " %d\n", x) ;
return O;
}
Cmo utilizar el enunciado +reaJ en una estructura 0or.
#i ncl ude <st dio.h>
mai n ( )
(
int )L
for (x 1; x < 10; x++) {
if (x == 5)
continu ; /* skip remai ni ng code in loop oniy
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 03
FUNDAMENTOS DE PROGRAMACON ESTRUCTURADA UNDAD
____________________________________________________________________________________________________
if x 5 */
"rint0 G O;G O/ )HL
printf( '' \nUsed conti nu to skip printi ng the valu 5\n");
Cmo utilizar el enunciado continu K en una estructura 0or.
____________________________________________________________________________________________________
ESTRUCTURA DE FLUJO PROGRAMATCO NG. OSORNO 0+

Das könnte Ihnen auch gefallen