Sie sind auf Seite 1von 41

Ing.

Wilmar Acosta
CURSO INTRODUCTORIO EN
LENGUAJE DE PROGRAMACIN C
Agenda

Diagramas de flujo.

Estructuras de control en C.
DIAGRAMAS DE FLUJO

Introduccin

Un diagrama de flujo es una representacin grfica de un


algoritmo o proceso.

Utilizan smbolos con significados bien definidos ue


representan los pasos del algoritmo.
!entajas"

#a$orece la comprensin del proceso.

%ermiten identificar los problemas.


Simbolog! di!gr!m!" d# $lu%o
inicio
Terminal. &epresenta el inicio o el final de la ejecucin de un
proceso. 'ambien representa una parada o interrupcin
programada ue sea necesario realizar en un programa.
DE#I(ICI)( *I+,-.- E/E+%.-
fin
Proceso. Indica cualuier tipo de operacin0 1a sea aritm2tica o
ue pueda originar cambio de $alor0 formato o posicin de la
informacin almacenada en memoria.
i33
suma 4 5
Entrada/Salida. Cualuier tipo de operacin de entrada 1
salida de datos.
.eer 6ora
Escribir #ec7a
Decisin sim!le. Indica operaciones lgicas o de comparacin
entre datos0 1 en funcin del resultado0 determina cual de los
caminos alternati$os se debe seguir.
Decisin m"lti!le. En funcin del resultado de la
comparacin0 se seguir uno de los diferentes caminos de
acuerdo con dic7o resultado.
Simbolog! di!gr!m!" d# $lu%o
DE#I(ICI)( *I+,-.- E/E+%.-
#onector. Utilizado para enlazar el flujo a otra parte del
diagrama pero en la misma pgina.
8
8
9
9
L$nea conectora. Utilizado como unin entre dos simbolos.
Llamado a s"%r"tina. Utilizado para llamar a una subrutina o a
un proceso predeterminado.
Con$ersin
Dec:A*CII
#onector. Cone;in entre dos puntos del diagrama situados en
pginas diferentes.
Indicador de direccin l$neas de &l"'o. Indica el sentido de
ejecucin de las operaciones.
DE#I(ICI)( *I+,-.- E/E+%.-
Simbolog! di!gr!m!" d# $lu%o
<6ola mundo=
<Digite el n>mero=
Teclado. Utilizado en ocasiones en lugar del simbolo de E?*0
tambien para leer $alores de $ariables.
Im!resora. Utilizado para escribir mensajes 1 $alores de
$ariables. Utilizado en ocasiones en lugar del simbolo de
E?*.
Pantalla. Utilizado en ocasiones en lugar del simbolo de
E?* para desplegar mensajes en una pantalla.
ESTRU#TURAS DE #O(TROL E( #

S#nt#nci! i$
if (e)!resion) sentencia
Sint!&i"

'est lgico para realizar una accin.


#&'r#"ion $erdadera " &esultado de e$aluacin @ 0
#&'r#"ion falsa " &esultado de e$aluacin 4 0

"#nt#nci! es ejecutada s #&'r#"ion es $erdadera0 de lo


contrario se ignora.

"#nt#nci! puede ser simple


compuesta.
if Ae;presionB
sentencia
if Ae;presionB
C
sentencia:8
sentencia:9
D
S#nt#nci! i$
Di!gr!m! d# $lu%o ( i$
S#nt#nci! i$
E%#m'lo ( i$
int a 4 5;855E
if AaB
C
printf(Fa 4 GdHnF0 a);
D
IJu2 se imprimeK
a 4 9LM
IJu2 pasa s a 4 5K
IJu2 pasa s a 4 N5;855K
a 4 N9LM
IJu2 pasa s a 4 5;855555555K
i$ !nid!do"
S#nt#nci! i$
...
if ApassOordP5Q 44 5B
C
ifApassOordP8Q 44 8B
C
ifApassOordP9Q 44 9B
C
ifApassOordPRQ 44 RB
C
passOord:correcto 4 8E
D
D
D
D
S#nt#nci! i$(#l"#
if (e)!resion) sentencia*+ else sentencia*,
Sint!&i"

"#nt#nci!)* se ejecuta " #&'r#"ion es $erdadera.


De lo contrario se ejecuta s#nt#nci!)+,

.as sentencias puedes ser simple compuesta.


S#nt#nci! i$
Di!gr!m! d# $lu%o i$(#l"#
E%#m'lo i$(#l"#
IJu2 se imprimeK
NM S RL555
S#nt#nci! i$(#l"# i$
if (e)!resion*+) sentencia*+
else if (e)!resion*,) sentencia*,
else sentencia*-
Sint!&i"

#&'r#"ion)* es e$aluada.

* es $erdadera0 se ejecuta "#nt#nci!)*,

* es falsa0 se e$al>a #&'r#"ion)+,

* #&'r#"ion)+ es $erdadera0 se ejecuta "#nt#nci!)+,

* #&'r#"ion)+ es falsa0 se ejecuta "#nt#nci!)-,


Di!gr!m! d# $lu%o i$(#l"# i$
S#nt#nci! i$(#l"# i$
E%#m'lo i$(#l"# i$
S#nt#nci! i$(#l"# i$
if AA7ora S4 5.B TT A7ora U 89.BB printfA<,uenos dias=BE
else if AA7ora S4 89.B TT A7ora U 8V.BB printfA<,uenos tardes=BE
else if AA7ora S4 8V.B TT A7ora U 9W.BB printfA<,uenas noc7es=BE
else printfA<6ora fuera de rango=BE
S#nt#nci! ".itc/
Sint!&i"
switch (expresion)
{
case expresion_cte_1:
sentencia_1;
case expresion_cte_2:
sentencia_2;
...
case expresion_cte_n:
sentencia_n;
default:
sentencia;
}

*e e$al>a e;presion 1 se considera el resultado de dic7a e$aluacin.

.as declaraciones en el c!"# correspondiente se ejecutan.


S#nt#nci! ".itc/
Di!gr!m! d# $lu%o ( ".itc/
S#nt#nci! ".itc/
Di!gr!m! d# $lu%o ( ".itc/ 0modi$ic!do1

*olo se ejecuta
una sentencia.
S#nt#nci! ".itc/
sOitc7 Aeleccion:colorB
C
case XrX "
case X&X "
printfA<&-/-=BE
breaYE
case XbX "
case ',' "
printfA<,.A(C-=BE
breaYE
case XaX "
case XAX "
printfA<AZU.=BE
,reaYE
default "
printfA<E&&-&=BE
D
E%#m'lo ( ".itc/
S#nt#nci! $or
for (inicializacion; expresion_de_control; actualizacion)
sentencia;
Sint!&i"

inici!li2!cion3 inicializa una $ariable de conteo del bucle0


solo una $ez al inicio del bucle. Ejemplo i . +/

#&'r#"ion)d#)control3 condicin de ejecucin de bucle.*e ejecuta


mientras sea $erdadera. Ejemplo i 0.+/

!ctu!li2!cion3 es ejecutada al final de cada


iteracin.[eneralmente modifica la $ariable de conteo del bucle.
Ejemplo i11
S#nt#nci! $or
Di!gr!m! d# $lu%o ( $or
S#nt#nci! $or
int digitoE
for Adigito 4 5E digito U4 \E digito33B
C
printfA<Digito " GdHn=0 digitoBE
D
E%#m'lo ( $or
IJu2 se imprimeK
Digito " 5
Digito " 8
Digito " 9
Digito " R
Digito " W
Digito " L
Digito " M
Digito " ]
Digito " V
Digito " \
S#nt#nci! $or
S#nt#nci! $or ( d#t!ll#"
for A E E B
C
...
D

Cualuiera de las tres e;presiones0 o todas las e;presiones se pueden dejar en


blanco Ael punto 1 coma debe mantenerB.

* inici!li2!cion o actualiza^cion faltan0 sus acciones simplemente no se


ejecutan.

*i #&'r#"ion)d#)control falta0 entonces se supone ue es siempre $erdadera.

Una sentencia $or sin ning>n tipo de e;presin se ejecutar de forma


indefinida Ase pueden salir del bucle a tra$2s de instruccin br#!4.
S#nt#nci! ./il#
while (e)!resion*de*control)
sentencia2
Sint!&i"

.a sentencia incluida Asimple o compuestaB se ejecutar repetidamente0


mientras el $alor de e)!resion*de*control no sea cero.

*e debe incluir alg>n elemento ue altere el $alor de


e)!resion*de*control.
S#nt#nci! ./il#
Di!gr!m! d# $lu%o ( ./il#
S#nt#nci! ./il#
int Digito 4 5E
O7ile ADigito U4 \B
C
printfAFDigito " GdHnF0 DigitoBE
Digito33E
D
E%#m'lo ( ./il#
IJu2 se imprimeK
Digito " 5
Digito " 8
Digito " 9
Digito " R
Digito " W
Digito " L
Digito " M
Digito " ]
Digito " V
Digito " \
S#nt#nci! ./il# ( d#t!ll#"
S#nt#nci! ./il#

e)!resion*de*control siempre debe estar presente0 a diferencia de la


sentencia $or.

Utilizado con frecuencia para escribir el bucle principal del


programa.

Una sentencia ./il# con e)!resion*de*control . +0 se ejecutar de forma


indefinida Ase pueden salir del bucle a tra$2s de instruccin breaY.
O7ile A 8 B
C
...
D
S#nt#nci! do(./il#
do
sentencia
while (e)!resion*de*control)2
Sint!&i"

#unciona de modo anlogo a ./il#,

.a e$aluacin de e)!resion*de*control se realiza al final del bucle0 despu2s de


7aber ejecutado al menos una $ez sentencia Asimple compuestaB.

*e debe incluir alg>n elemento ue altere el $alor de e)!resion*de*control.


S#nt#nci! ./il#
Di!gr!m! d# $lu%o do(./il#
S#nt#nci! ./il#
int Digito 4 5E
do
C
printfAFDigito " GdHnF0 DigitoBE
Digito33E
DO7ile ADigito U4 \BE
E%#m'lo do(./il#
IJu2 se imprimeK
Digito " 5
Digito " 8
Digito " 9
Digito " R
Digito " W
Digito " L
Digito " M
Digito " ]
Digito " V
Digito " \
S#nt#nci! br#!4
rea!;
Sint!&i"

Causa la terminacin inmediata de un bucle0 aunue la condicin de salida no


se 7a1a cumplido.

Utilizado en la sentencia ".itc/ para e$itar la ejecucin de los siguientes


grupos de sentencias0 transfiriendo la ejecucin fuera de la sentencia ".itc/
completa,

* se inclu1e en un bucle ./il#0 do(./il# o $or0 se transfiere la ejecucin


fuera del bucle donde se encuentre.
S#nt#nci! br#!4
Di!gr!m! d# $lu%o ( br#!4
S#nt#nci! continu#
continue;
Sint!&i"

6ace ue el programa salte 7asta el inicio del bucle0 aunue no 7a1a


llegado al final de las sentencia compuestas.

*e puede incluir dentro de una sentencia ./il#0 do(./il# o $or.


S#nt#nci! br#!4
Di!gr!m! d# $lu%o ( continu#
S#nt#nci!" br#!45continu#
E%#m'lo 6 br#!45 continu#
IJu2 se imprimeK
8
9
W
M
]
V
S#nt#nci! goto
"oto lael_1;
#
lael_1: sentencia
Sint!&i"

6ace saltar al programa a la sentencia donde se 7a1a escrito la #ti7u#t!


correspondiente.

Altera la secuencia de ejecucin normal del programa.

.a sentencia "oto no es utilizada en programacin estructurada.


8Pr#gunt!"9
Gr!ci!"::::

Das könnte Ihnen auch gefallen