Anda di halaman 1dari 9

3.3 ESTRUCTURAS CONDICIONALES.

En la mayor parte de los problemas (por no decir todos) que se presentan


en la vida cotidiana y que se pueden solucionar mediante un programa
computacional, siempre presentan algunas condiciones que harn cambiar
una estructura secuencial. Las estructuras condicionales se utilizan para
tomar decisiones lgicas; por eso muchas veces se les llaman estructuras
selectivas, porque se tiene que seleccionar una determina accin de
acuerdo al valor de la condicin planteada.

Las condiciones se especifican usando los operadores de relacin (menor,


mayor, igual, etc.) y los operadores lgicos (Y, O, Negacin, etc.), adems
se debe tener en cuenta que las condiciones pueden ser simples o
complejas, pero siempre tendrn un nico valor puede ser verdadero (V) o
falso (F).

a) Operadores de relacin.
Estos operadores se utilizan para expresar condiciones y describen una
relacin entre dos valores. A travs de los operadores de relacin se
construyen condiciones que sern evaluados como VERDADERO (true) o
FALSO (false); en un programa se puede hacer comparaciones tanto con
datos numricos (enteros y reales), con datos del tipo carcter o del tipo
cadena. En la siguiente tabla se observa los operadores de relacin que
se usan en C++.

Operador de Significado Equivalente


relacin matem
en C++ tico
> Mayor que >
< Menor que <
>= Mayor o igual que
<= Menor o igual que
== Igual que =
!= Diferente que (No igual
que)

b) Operadores lgicos.
Los operadores lgicos sirven para hacer condiciones complejas, esto se
logra combinando con los operadores de relacin; al igual que el caso
anterior el resultado ser VERDADERO (true) o FALSO (false). En la
siguiente tabla se puede observar los operadores lgicos que existen en
C++.
Operador
Significado
Lgico en C++
&& Y (conjuncin)
|| O (disyuncin)
! No (Negacin)

En la siguiente tabla se muestra los valores que devuelve despus de


trabajar con los operadores lgicos.
Valores de Variables Resultados de los Operadores Lgicos
A B (A)&&(B) (A)| |(B) !(A)
V V V V F
V F F V F
F V F V V
F F F F V

c) Estructura condicional simple.


En el diseo del algoritmo y del pseudocdigo se utiliza Si (condicin)
Entonces (accinV), en el siguiente cuadro se pueden observar el
pseudocdigo, el diagrama de flujo y su diagrama N-S; de este tipo de
estructura.

PSEUDOCDIGO DIAGRAMA DE FLUJO DIAGRAMA N-S

Si (condicin) Entonces
Inicio
Instruccin 1. F Condicin
Instruccin 2. Condicin
Instruccin 3. Accin V V F
:
. V Instruccin 1.
Instruccin N. Instruccin 2.
Fin Accin V :
.
Instruccin N.

En este caso el grupo de instrucciones (accinV) slo se ejecutan si la


condicin es verdadera mientras que si la condicin es falsa no se ejecuta
nada simplemente salta a la siguiente instruccin de la estructura
condicional.

En C++ su estructura es:

if (condicin) sentencia1;

Otra forma de representar esta estructura en C++ es:

if (condicin)
{
instruccin1;
instruccin2;
instruccin3; AccinV

instruccinN;
}

d) Estructura condicional doble.

En este caso en el diseo del algoritmo y del pseudocdigo se utiliza Si


(condicin) Entonces (accinV) sino (accinF), en el siguiente cuadro
se pueden observar el pseudocdigo, el diagrama de flujo y su diagrama
N-S; de este tipo de estructura.
PSEUDOCDIGO DIAGRAMA DE FLUJO DIAGRAMA N-S

Si (condicin) Entonces
Inicio
Instruccin 1. V F
Instruccin 2. Condicin Condicin
Instruccin 3. V F
AccinV
: Accin V Accin F Instruccin 1. Instruccin 1.
. Instruccin 2. Instruccin 2.
Instruccin N. : :
Fin . .
sino Instruccin N. Instruccin N
Inicio
Instruccin 1.
Instruccin 2.
Instruccin 3.
AccinF
:
Instruccin N.
Fin

En este caso el grupo de instrucciones (accinV) se ejecutan si la


condicin es verdadera mientras que si la condicin es falsa se ejecuta el
grupo de instrucciones (accinF).

En C++ su estructura es:

if (condicin) sentencia1;else sentencia2;

Otra forma de representar esta estructura en C++ es:

if (condicin)
{
instruccin1;
instruccin2;
instruccin3; Accin V

instruccinN;
}
else
{
instruccin1;
instruccin2;
instruccin3; Accin F

instruccinN;
};

e) Estructura Condicional Mltiple.

Este es un caso especial, pero muy utilizado en la prctica, sobre todo


cuando se disea sistemas de mens, en el cual es necesario seleccionar
ms de dos condiciones posibles. La estructura de decisin mltiple
evaluar una expresin que podr tomar N valores distintos (1; 2; 3,,N).
Segn se elija uno de estos valores en la condicin, se realizar una de
las N acciones. A continuacin se muestran el pseudocdigo, el diagrama
de flujo y diagrama N-S correspondiente.
Diagrama de Flujo.
Primera Forma Segunda Forma

Valor 1 Valor N V
Expresin Expresin=V1 Accin1

Valor 2 Valor 3 F

V
Accin 1 Accin 2 Accin 3 ... Accin N Expresin=V2 Accin2

V
Expresin=V3 Accin3

Accin Otro

- Diagrama N-S.

Primera Forma Segunda Forma

Expresin
Expresin

V1 V2 V3 V4 ... VN Otro
V1 V2 V3 V4 ... VN Otro

A1 A2 A3 A4 ... AN AO
A1 A2 A3 A4 ... AN AO

- Pseudocdigo.

Primera Forma (En castellano) Segunda Forma (En ingls)

Segn sea (Expresin) Hacer Case (Expresin) of


Valor 1. Valor 1.
Accin 1 Accin 1
Valor 2. Valor 2.
Accin 2 Accin 2
Valor 3. Valor 3.
Accin 3 Accin 3
: :
. .
Valor N. Valor N.
Accin N Accin N
Otro valor Other wise (o Else)
Accin Otro. Accin Otro.
Fin End-Case

En C++ su estructura es:


switch (variable)
{ case valor1:
instruccin1;
instruccin2;
instruccin3; Grupo1

instruccinN;
break;
case valor2:
instruccin1;
instruccin2;
instruccin3; Grupo2

instruccinN;
break;

default:
instruccin1;
instruccin2;
instruccin3; GrupoD

instruccinN;
};
Ejemplos aplicativos:
1) Programa en el cual al ingresar un nmero del
1 al 5 presente la vocal correspondiente.
#include<iostream.h>
#include<conio.h>
main()
{
int numero;
cout<<"ingrese numero del 1 al 5: ";cin>>numero;
switch(numero)
{
case 1:cout<<"a";break;
case 2:cout<<"e";break;
case 3:cout<<"i";break;
case 4:cout<<"o";break;
case 5:cout<<"u";break;
defaul:cout<<"Solo del 1 al 5";
}
getch();
}

3.4 ESTRUCTURAS DE CONTROL REPETITIVAS.

En todos los lenguajes de programacin modernos, necesariamente tienen


que considerar las estructuras de control repetitivas o de iteraciones
tambin llamadas bucles. Los bucles son segmentos de programa cuyas
instrucciones se repiten varias veces mientras cumpla una condicin.

a) Contador.

Los procesos repetitivos son la base del uso de computadoras. En estos


procesos se necesitan contar los sucesos o acciones internas del bucle.
Un contador es una variable cuyo valor se incrementa o decrementa de
uno en uno.

En C++ existen dos operadores que permiten incrementar la variable de


uno en uno o decrementar de uno en uno. Por ejemplo si el valor de x es
20 cuando se utiliza los operadores, su valor se muestra en la siguiente
tabla, en la columna resultado.

Operador en
Operacin Ejemplo Resultado
C++
++ Incremento x++ x=21
-- Decremento x-- x=19

El operador ++ es equivalente a x=x+1; mientras que el -- es equivalente


a x=x-1. Estos dos operadores funcionan cuando las variables aumentan
o disminuyen de uno en uno.

b) Acumulador.

Un acumulador es una variable cuya misin es almacenar cantidades


variables de valores en la misma variables. Este tipo de variable es muy
comn utilizar para totalizar por ejemplo en sumas, promedios, etc.. Los
siguientes son ejemplos de acumuladores en C++.

suma=10;
suma=suma+20;
suma=suma+50;

En el ejemplo anterior el valor de la variable SUMA acumulada es de 80.

c) Estructura Repetitiva mientras.

La estructura repetitiva mientras es aquella en la que el nmero de


iteraciones no se conoce por anticipado y es que el cuerpo del bucle se
repite mientras la condicin sea verdadera. En el siguiente cuadro se
pueden observar el pseudocdigo, el diagrama de flujo y su diagrama N-
S; de este tipo de estructura repetitiva.

PSEUDOCDIGO DIAGRAMA DE FLUJO DIAGRAMA N-S

Mientras (condicin)
Inicio
Instruccin 1. F Mientras (Condicin)
Instruccin 2. Condicin
Instruccin 3. Accin V
: Instruccin 1
. V
Instruccin N. Instruccin 2.
Fin Accin V .
:

Instruccin N.
En este caso mientras la condicin sea verdadera siempre se ir
ejecutando el grupo de instrucciones (AccinV). En este caso se deben
tener en cuenta los siguientes aspectos:
- Si a la primera evaluacin la condicin es falsa el grupo de instrucciones
(AccinV) no se ejecutarn ni una sola vez, es decir saltar directamente
a la siguiente instruccin del bucle mientras.
- Si la condicin en ningn momento se vuelve falso, el bucle se hace
infinito, es decir, cuando se utiliza el bucle mientras se debe tener
cuidado en que de alguna forma la condicin se haga falso.
En C++ su estructura es:
while (condicin)
{
instruccin1;
instruccin2;
instruccin3;

instruccin N;
};

d) Estructura Repetitiva repetir.

La estructura repetitiva repetir es aquella en la que el nmero de


iteraciones, al igual que el anterior, no se conoce por anticipado y es que
el cuerpo del bucle se repite hasta que la condicin sea falsa; es decir
esta estructura es similar al anterior con la nica diferencia que la
condicin se evala al final del bucle. En el siguiente cuadro se pueden
observar el pseudocdigo, el diagrama de flujo y su diagrama N-S; de
este tipo de estructura repetitiva.

PSEUDOCDIGO DIAGRAMA DE FLUJO DIAGRAMA N-S

Repetir
Instruccin 1.
Instruccin 2. Repetir Instruccin 1
Instruccin 3. Accin V Accin V
: Instruccin 2
.
Instruccin N. :
Hasta (condicin) V
Condicin Instruccin N

F Hasta (condicin)

En este caso el grupo de instrucciones (AccinV) se ejecutar hasta la


condicin se haga falsa. En este caso se deben tener en cuenta los
siguientes aspectos:

- Como la condicin se evala al final, el grupo de instrucciones (AccinV)


se ejecuta por lo menos una vez.

- Si la condicin en ningn momento se vuelve falso, el bucle se hace


infinito, es decir, cuando se utiliza el bucle repetir se debe tener
cuidado en que de alguna forma la condicin se haga falso.
En C++ su estructura es:

do
{ instruccin1;
instruccin2;
instruccin3;

instruccinN;
} while (condicin);

e) Estructura Repetitiva desde.

Esta estructura se inicia con un contador que tiene un valor inicial (V i) y


un valor final (Vf) y que en cada iteracin se incremente generalmente de
uno en uno; aunque dependiendo del lenguaje de programacin se puede
incrementar de dos en dos o de tres en tres, etc.; entonces la cantidad de
veces que es ejecuta el bucle ser mientras que el valor actual del
contador sea menor o igual al valor final (V f). En esta estructura el
incremento en cada iteracin es automtica. En el siguiente cuadro se
pueden observar el pseudocdigo, el diagrama de flujo y su diagrama
N-S; de este tipo de estructura repetitiva.

PSEUDOCDIGO DIAGRAMA DE FLUJO DIAGRAMA N-S

Desde (variable=Vi hasta Vf, incremento)


Instruccin 1.
Instruccin 2. F Desde (var=Vi hasta Vf, inc)
Instruccin 3. Condicin
: Instruccin 1
.
Instruccin N. V Instruccin 2
Fin de desde
AccinV :

Instruccin N

En C++ su estructura es:

for
(variable=Vi;variable<=Vf;variable=variable+N);
{ instruccin1;
instruccin2;
instruccin3;

instruccinN;
};

Como un ejemplo de aplicacin, podramos elaborar un programa para


determinar la suma de N nmeros enteros que se ingresan desde el
teclado con las tres forma de estructuras repetitivas que existen en C++,
los cuales se muestran en el siguiente cuadro.

while do-while For


//Utilizando "while". //Utilizando "do-while". //Utilizando "for".
#include <iostream.h> #include <iostream.h> #include <iostream.h>

unsigned short int n,i; unsigned short int n,i; unsigned short int n,i;
int suma,dato; int suma,dato; int suma,dato;

main() main() main()


{ { {
cout<<"Ingrese N de datos: "; cout<<"Ingrese N de datos: "; cout<<"Ingrese N de datos: ";
cin>>n; cin>>n; cin>>n;
i=1; i=1; i=1;
suma=0; suma=0; suma=0;
while(i<=n) do for(i=1;i<=n;i++)
{ { {
cout<<"ingrese dato: "; i++; cout<<"ingrese dato: ";
cin>>dato; cout<<"ingrese dato: "; cin>>dato;
suma=suma+dato; cin>>dato; suma=suma+dato;
i=i+1; suma=suma+dato; }
}; } while(i<=n); cout<<"la suma es: "<<suma;
cout<<"La suma es: "<<suma; cout<<"La suma es: "<<suma; }
} }

Anda mungkin juga menyukai