Вы находитесь на странице: 1из 16

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

UNIDAD 6: ESTRUCTURAS BASICAS


6.1.

ESTRUCTURAS SELECTIVAS

Las estructuras de control lgicas o condicionales, nos permiten realizar cambios en la


secuencia o flujo de ejecucin de unas u otras sentencias; segn se cumpla o no las
condiciones dadas por el programador. Cuando en un programa se requieran seleccionar
las instrucciones a ejecutar, utilizamos las estructuras if o switch.

6.1.1.

SENTENCIA if

La estructura de control de seleccin if en C++, tiene dos alternativas que se ejecutan en


funcin del cumplimiento o no de una condicin. Las hay sencillas o anidadas.

Sentencias if sencillas
Sintaxis de la instruccin:
if (expresin)
Accin1
else
Accin2
Cuando la expresin es verdadera, se ejecutan las instrucciones que se mencionen en
Accin1; en caso contrario se ejecutan las de Accin2. Una Accin puede ser una nica
sentencia que termina en punto y coma o un grupo de sentencias encerradas entre llaves.
Ejemplo:
if (numero>=0)
{cout<<numero positivo;
X++;}
else
cout<<numero negativo;
cout<<otras instrucciones;
En este ejemplo si nmero es mayor o igual que cero, escribe numero positivo y aumenta
en uno la variable x, a continuacin escribe: otras instrucciones. Si la condicin no se
cumple escribe: numero negativo y a continuacin escribe otras instrucciones.
En el caso en que no haya acciones por falso, al evaluar la expresin del parntesis, se
ignoran estas acciones y se contina con la ejecucin del programa, as:
Sintaxis de la instruccin:
if (expresin)
Accin

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Ejemplo:
if (numero>=0)
cout<<numero positivo;
cout<<otras instrucciones;
En este ejemplo si la variable nmero es mayor que cero, el programa escribe: numero
positivo y a continuacin la siguiente instruccin: otras instrucciones. En caso de que
la condicin no se cumpla solo imprime otras instrucciones;

Sentencias if-else anidadas


Se utilizan cuando se deben ejecutar instrucciones en cumplimiento o no de varias
condiciones.
Sintaxis de la instruccin:

if (expresin) Accin-1
else
if (expresin) Accin-2
else
if (expresin) Accin-3
else
if (expresin) Accin-4
else
:
:
Accin-n
Utilizamos este caso cuando se deben evaluar tres o ms alternativas.
Cuando la
expresin es verdadera, se ejecutan las instrucciones que se mencionen en Accin1, en
caso contrario se evala nuevamente la expresin para ejecutar las instrucciones por
verdadero en Accin2. Si hay ms alternativas, se colocan ms expresiones. Por lo
anterior si un programa tiene tres alternativas, se requiere dos condicionales; si tiene
cuatro alternativas, se requieren tres condicionales y as sucesivamente.
Por ejemplo:
if (numero==0)
cout<<numero cero;
else
if (numero>0)
cout<<numero positivo;
else cout<<numero negativo;
cout<<otras instrucciones;
En este ejemplo tenemos tres alternativas por lo que tenemos que anidar dos
instrucciones if.
Si nmero es igual que cero, escribe: numero cero y a
continuacin: otras instrucciones.
Si el nmero es mayor que cero, escribe:
numero positivo y a continuacin: otras instrucciones. Si la condicin no es
ninguna de las dos anteriores alternativas o sea es menor que cero, escribe:
numero negativo y a continuacin: otras instrucciones.

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

EJEMPLOS
EJEMPLO 1:
Leer un nmero y escribir si es mayor o menor o igual que 100
Variables: numero

PSEUDOCODIGO
Inicio
leer numero
si (numero > 100)
entonces escribir mayor
sino escribir menor o igual
fin_si
fin

CODIGO EN C++
//Nmero mayor o menor o igual que cien
#include<iostream>
using namespace std;
int main()
{
int numero;
cout<<" Ingrese un nmero "<<endl;
cin>>numero;
if(numero > 100)
cout<<" mayor
"<<endl;
else
cout<<" menor o igual "<<endl;
system(pause);
return 0;
}

EJEMPLO 2:
Leer un nmero y escribir si es menor que cero, igual a cero o mayor que
cero.
Variable: NUMERO
PSEUDOCODIGO

CODIGO EN C++

Inicio
leer NUMERO
si (NUMERO < 0)
entonces escribir menor que cero
sino
si (NUMERO = 0)
entonces escribir igual a cero
sino escribir mayor que cero
fin_si

//Numero mayor, menor o igual a cero


#include <iostream>
using namespace std;
int main()
{
int numero;
cout<<"Ingrese el numero "<<endl;
cin>>numero;
if (numero < 0)
cout<<" Menor de Cero"<<endl;
else
if (numero == 0)
cout<<" Igual a Cero"<<endl;
else
cout<<" Mayor de Cero"<<endl;
system("pause");
return 0;
}

fin_si
Fin

EJEMPLO 3:
Leer tres nmeros, determinar cul es el mayor.
Variables: A: Numero 1, B: Numero 2, C: numero3
3

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

PSEUDOCODIGO
Inicio
leer A, B, C
si (A > B y A>C)
entonces
escribir A
sino
si (B>A y B>C)entonces
escribir B
sino
escribir C
fin_si
fi
n_si
fin

6.1.2.

CODIGO EN C++
//Leer 3 numeros y determinar cual es el mayor
#include <iostream>
using namespace std;
int main()
{
int A, B, C;
cout<<"Digite los tres numeros: \n";
cin>>A>>B>>C;
if (A>B && A>C)
cout<<" El numero mayor es "<<A<<"\n";
else
if (B>A && B>C)
cout<<" El numero mayor es "<<B<<"\n";
else
cout<<" El numero mayor es "<<C<<"\n";
system("pause");
return 0;
}

SENTENCIA switch

La estructura de control de seleccin switch en C++, permite seleccionar una entre


mltiples alternativas. Es especialmente til cuando la seleccin se basa en valores
exacto de una variable. Escoger alternativas de valores exactos es ms sencillo con un
switch que con estructuras if anidadas.
Sintaxis de la instruccin:
switch (valor)
{
case 1: ejecuta esto si valor es 1
break;
case 2: ejecuta esto si valor es 2
break;
case 3: ejecuta esto si valor es 3
break;
default: ejecuta esto si valor no es ninguno de los anteriores
break;
}
Se evala la expresin de control o selector y se compara con cada una de las etiquetas
case para ejecutar la secuencia de acciones hasta la sentencia break. Cada etiqueta es un
valor nico y diferente de los otros, la etiqueta default, es opcional y se utiliza cuando se
sospecha que pueden venir valores diferentes a los de las etiquetas. Cuando el computador
encuentra la sentencia break, saltar a la primera sentencia luego de la llave de cierre del
switch.
La variable que se utilice para el switch, se denomina expresin de control o selector,
esta solo puede ser de tipo int o char.
4

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Un ejemplo del uso de la estructura Switch en

include<iostream>
using namespace std;
int main()
{
int hijos;
cout<< "Ingrese la cantidad de hijos que usted tiene: \n";
cin>>hijos;
switch(hijos)
{
case 0:
cout<< "No le corresponde asignacin familiar por hijo \n";
break;
case 1:
cout<< "Le corresponden $95000 de asignacin familiar por su nico hijo\n";
break;
case 2:
cout<< "Le corresponden $150000 de asignacin familiar por sus dos hijos\n";
break;
default:
cout<< "Le corresponden $200000 de asignacin familiar por tener ms de dos
hijos\n";
break;
}
system(pause);
return 0;

}
Se define la variable del tipo entero hijos, se le pide al usuario que ingrese el nmero de hijos que
posee y luego entra en accin la estructura switch, actuando de diferentes formas dependiendo del
valor de la variable hijos en tiempo de ejecucin.

Uno de los usos ms frecuentes del switch est en la implementacin de mens, esto es,
presentar en pantalla una serie de alternativas para que el usuario elija una.
EJEMPLO:
El siguiente ejemplo presenta en pantalla un men con tres opciones y la captura de la
seleccin del usuario. El programa evaluar la opcin y escoger una alternativa; en caso
de que la opcin sea diferente de 1, 2 o 3, utilizar la opcin por defecto.
//Implementa un menu con 3 alternativas
#include <iostream>
using namespace std;
int main()
{
int opcion;
float area=0, base, altura, lado, radio, pi=3.141592;
cout<<"\n\t\tAREA FIGURAS\n";
cout<<"\t1. AREA DEL TRIANGULO"<<endl;
cout<<"\t2. AREA DEL CUADRADO"<<endl;
cout<<"\t3. AREA DEL CIRCULO"<<endl;
cout<<"DIGITE LA OPCION"<<endl;
cin>>opcion;
switch (opcion)
{
case 1:

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

cout<<"DIGITE EL VALOR DE LA BASE DEL TRIANGULO ";


cin>>base;
cout<<"DIGITE EL VALOR DE LA ALTURA DEL TRIANGULO ";
cin>>altura;
area=base*altura/2;
break;
case 2:
cout<<"DIGITE EL VALOR DEL LADO DEL CUADRADO ";
cin>>lado;
area = lado*lado;
break;
case 3:
cout<<"DIGITE EL VALOR DEL RADIO DEL CIRCULO ";
cin>>radio;
area = pi*radio*radio;
break;
default:
cout<<"OPCION NO VALIDA ";
}
cout<<"\nArea = "<<area<<endl;
system("pause");
return 0;
}

UNIVERSIDAD MILITAR NUEVA GRANADA

6.2.

CENTRO DE SISTEMAS

ESTRUCTURAS REPETITIVAS

En la elaboracin de programas es importante que existan instrucciones que permiten que


el computador ejecute un grupo de instrucciones varias veces sin tener que volverlas a
escribir, estas son: la instruccin mientras que y la instruccin para.

6.2.1.

BUCLES E ITERACIONES

Un bucle o ciclo es un pedazo de algoritmo, cuyas instrucciones se repiten un nmero


determinado de veces mientras se cumple una determinada condicin.
Un bucle consta de tres partes fundamentales: DECISION (simple o compuesta), CUERPO
DEL BUCLE y la SALIDA DEL BUCLE.
Una iteracin es la ejecucin de todas las instrucciones del ciclo.
Los bucles pueden ser sencillos o anidados (ciclos dentro de otros ciclos).

BUCLES SENCILLOS

BUCLES ANIDADOS

INICIO

INICIO

Bucle A
Bucle A

B
U
C
L
E

Bucle B

Bucle B

Bucle C

Contador
Los procesos repetitivos son la base del uso del computador. En estos procesos se
necesita normalmente contar los sucesos o acciones internas del bucle. Una forma de
controlar un bucle es mediante un contador.
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad
constante por cada iteracin.
El formato general es:

CONTADOR CONTADOR + CANTIDAD CONSTANTE

Ejemplo:
Z Z + 2, donde Z se incrementa en 2 en cada iteracin.
7

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Acumulador
Es una variable cuya misin es almacenar por cada iteracin, cantidades variables
resultantes de sumas o productos sucesivos.
El formato general es:

ACUMULADOR ACUMULADOR + CANTIDAD VARIABLE


ACUMULADOR ACUMULADOR * CANTIDAD VARIABLE

Ejemplo:
S S+N, donde N es una variable y no una constante

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

6.3.
SINTAXIS DE LAS ESTRUCTURAS DE CONTROL
REPETITIVAS EN C++
C++, utiliza tres tipos de estructuras de control de repeticin: for, while y do-while.

6.3.1.

SENTENCIA for (para)

La estructura de control for,


genera bucles controlados
por contador, en los cuales
se
sabe
de
antemano
cuantas son las iteraciones
del bucle ( BUCLES para).
Sintaxis de la instruccin:
for (inicializacin del contador; condicin-expresin lgica; incremento o
decremento)
{
}

Bloque de sentencias

Para controlar el nmero de veces que se repite el bucle, se requiere la utilizacin de un


contador y especificar en que valor va a iniciar, adems en qu cantidad constante se
incrementar o decrementar esta variable.
La condicin es una expresin booleana que indica cuando se debe terminar con las
iteraciones.
Cada iteracin en el ciclo, produce el incremento ( decremento) del contador.
Se
acostumbra a utilizan los operadores incrementales o decrementales para mostrar de una
manera sencilla el cambio en el contador, as:
a++

cuando se desea incrementar en uno el contador

a--

cuando se desea restar en uno el contador

a+=2 cuando se desea incrementar en dos el contador


Los puntos y comas son indispensables para separar la inicializacin del contador, con la
expresin lgica y el incremento o decremento.

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

El siguiente ejemplo:
int K;
for (k=1; k <= 20; k+=2)
cout<< k;
Imprime los nmeros 1, 3, 5, 7, 9, 11, 13, 15, 17 y 19. La variable k es el contador e
inicia en 1 y finaliza al llegar a 20, en la primera iteracin imprimir el valor 1. En la
siguiente incrementa k en 2 y la variable cambia su valor a 3 y escribe en pantalla el
nmero 3. En la siguiente aumenta k en 2 y la variable cambia su valor a 5, escribe en
pantalla el nmero 5 y as sucesivamente hasta imprimir el nmero 19, cuando k toma el
valor de 21, no ingresa al bucle por lo tanto este ltimo dato no se imprime, el control del
programa continuar con las instrucciones siguientes al bucle.
La declaracin de la variable de control si se desea se puede hacer en la misma
instruccin for as:
for (int k=1;k<=20;k+=2)
{
cout<<k;
}

EJEMPLO: Sumar 10 nmeros enteros introducidos por teclado


PSEUDOCODIGO

Inicio
SUMA 0
para i 0,10,1 haga
leer
NU
SUMA SUMA + UN
fin_para
escribir SUMA
fin

CODIGO EN C++
//Suma 10 numeros que ingresan por teclado
#include <iostream>
using namespace std;
int main()
{
int SUMA=0, NU;
cout<<"\nIngrese 10 NUMEROS "<<endl;
for(int i=1; i<=10; i++)
{
cin>>NU;
SUMA += NU;
}
cout<<"\n\tSuma = "<<SUMA<<endl;
system("pause");
return 0;
}

10

UNIVERSIDAD MILITAR NUEVA GRANADA

6.3.2.

CENTRO DE SISTEMAS

SENTENCIA while (mientras que)

La estructura de control while, es especialmente til cuando se desea generar bucles


controlados por centinela, esto es, cuando se sabe la condicin de terminacin del bucle,
pero no se sabe de antemano cuantas son las iteraciones del bucle ( BUCLES mientras
que).

Con la estructura while podemos hacer bucles for, pero por facilidad en el control del
contador, es ms sencillo utilizar el for para implementar los bucles cuando se conoce de
antemano el nmero de iteraciones.
Sintaxis de la instruccin:
while (condicin)
{
sentencia-1;
sentencia-2;
sentencia-3;
.
sentencia-n;
}
En este caso las sentencias se repiten, mientras la expresin lgica o condicin del bucle
sea verdadera.
La condicin del bucle se evala antes de que se ejecuten las sentencias. Si la condicin
es falsa, no se ingresar al bucle.
Note que no se coloca punto y coma (;) en el la lnea del while, de hacerse no ejecutar
el bucle.
Cuando se debe ejecutar solo una sentencia varias veces, no es indispensable el uso las
llaves { }.

11

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

EJEMPLO 1:
Inicio
Z----- 0
Mientras y !=10 Hacer
Leer y
Z--- Z+y
Fin mientras
Escribir Z
Fin
El ciclo while, suma los nmeros que se ingresan por teclado en la variable z, hasta que
se digite el valor del centinela que en este caso es 10 y que permite la terminacin del
ciclo.

EJEMPLO 2:
Contar los nmeros positivos que se ingresan por teclado hasta que se ingrese un nmero
negativo.

PSEUDOCODIGO

CDIGO EN C++

Variables:

//Programa que cuenta cuantos numeros positivos


ingresan
//por teclado hasta que ingrese un numero negativo
#include<iostream>
using namespace std;
int main()
{
int X=0, p=-1;
while(X>=0)
{
p++;
cin>>X;
}
cout<<"Ingreso "<<p<<" Numeros"<<endl;
system("pause");
return 0;
}

X: es el centinela
P: es el contador

Inicio
X0
P -1
mientras (X >=0) hacer
PP+1
Leer X
fin_mientras
escribir P
fin

6.3.3.

SENTENCIA do- while (haga mientras que)

Esta sentencia funciona de modo anlogo a la instruccin while, con la diferencia de


que la condicin se evala despus de ejecutar las sentencias, esto significa que el
bucle se ejecuta por lo menos una vez.

12

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Sintaxis de la instruccin:

do
{
sentencia-1;
sentencia-2;
sentencia-3;
:
:
sentencia-n;
} while (condicin);

Comienza ejecutando las sentencias y se evala a continuacin el ciclo. Si la condicin es


verdadera, entonces se repite la ejecucin de las sentencias. Este proceso contina hasta
que la condicin sea falsa.
Observe que se coloca punto y coma (;), luego de la condicin del while.

EJEMPLO 1:
int x=1;
do
{
cout<<x<<endl;
x++;
} while(x<10);
Imprime los nmeros del 1 al 9. Se ha utilizado una variable contador x que inicia en 1,
esta variable nos permitir controlar la terminacin del ciclo, haciendo incrementos de 1,
por cada iteracin.

EJEMPLO 2:
Hacer un programa que imprima la tabla de multiplicar de un nmero dado por teclado
PSEUDOCODIGO
Variables:
X: es el centinela
y: es el contador
Inicio
Y1
Leer n;
Haga
n*Y
escribir n * Y = n*Y
Y=Y+1
mientras(Y<=10)
fin

CDIGO EN C++
//Programa que calcula la tabla de multiplicar
// de un numero que ingresa por teclado
#include<iostream>
using namespace std;
int main()
{
int y=1, n;
cout<<"Cual es la tabla a Imprimir ? ";
cin>>n;
do{
cout<<"\t"<<y<<" * "<<n<<" = "<<y*n<<endl;
y++;
}while(y<=10);
system("pause");
return 0;
}

13

UNIVERSIDAD MILITAR NUEVA GRANADA

6.4.

CENTRO DE SISTEMAS

BUCLES ANIDADOS

Es posible anidar bucles en C++. Esto es especialmente til cuando se requiere hacer
ciclos y estos a su vez contienen otros ciclos. Estos constan de un bucle externo con uno
o ms bucles internos. Cada vez que se realiza una iteracin en el bucle externo, los
bucles internos se repiten.
Se pueden hacer combinaciones de bucles for y while:

EJEMPLO
Escribir las tablas de multiplicar de la 1 a la 5, con 10 multiplicandos cada una.
PSEUDOCODIGO

CDIGO EN C++

Inicio
para i 1,5,1 haga
para j 1,10,1 haga
Ri*j
escribir R
fin_para
fin_para
Fin

//Tablas de multiplicar del 1 al 5 con


//10 multiplicandos cada uno
#include<iostream>
using namespace std;
int main()
{
for(int i=1; i<=5; i++)
{
cout<<"\n Tabla del "<<i<<endl;
for(int j=1; j<=10; j++)
cout<<i<<" * "<<j<<i*j<<endl;
}
system("pause");
return 0;
}

6.5.

INSTRUCCIONES BREAK Y CONTINUE


14

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Algunas veces es necesario interrumpir un bucle o no tomar en cuenta una iteracin, la


instruccin break, obliga a una terminacin inmediata de la instruccin switch, while, for
o do-while y la instruccin continue, transfiere el control al inicio del bucle.
La instruccin break, se utiliza por lo general, cuando se detecta que va a suceder algo
fuera de lo normal en un programa, como por ejemplo cuando se introduce un dato que
puede ocasionar una divisin por cero.
Sintaxis de la instruccin:

break;

EJEMPLO
Calcular la ecuacin,

para 10 nmeros que se introducidos por teclado.

PSEUDOCODIGO

CDIGO EN C++

Inicio
V0
para i 1,10,1
leer x
si(x==7
)
escribir No es posible
dividir por cero, se
interrumpe el bucle
sino haga
v=(3*x+2)/(x-7)
escribir v
fin si
fin_para
Fin

//Calcular la ecuacion para 10 numeros que ingresan


//por teclado si es 7 se rompe
#include<iostream>
using namespace std;
int main()
{
int x;
float y;
for(int i=1; i<=5; i++)
{
cout<<"Introduzca un numero ";
cin>>x;
if(x==7)
{
cout<<"No se puede dividir por 0 - Fin del
Bucle"<<endl;
break;
}
else
{
y=(3*x+2)/(x-7);
cout<<"\t Solucion = "<<y<<endl;
}
}
system("pause");
return 0;
}

OBSERVACIONES:
La instruccin permite la entrada de 10 nmeros y realizar el clculo de la ecuacin e
imprimir el resultado. Si se introduce el nmero 7, el programa se sale del ciclo.
Cuando la instruccin continue aparece en una instruccin while, significa que la
ejecucin se transferir automticamente a la parte superior del ciclo y empezar a
evaluar nuevamente la condicin.
Sintaxis de la instruccin:

continue;

Es til la instruccin continue para no contabilizar datos invlidos. Por ejemplo las
notas erradas de un grupo de estudiantes cuando se desea el promedio y se ingresan
15

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

datos por fuera del rango 1 a 5.


//El contrrol se trasfiere al incremento de la instruccion
#include<iostream>
using namespace std;
int main()
{
float cuenta=0, calificacion, suma=0;
cout<<"Introduzca la calificacion ";
for(int x=1; x<=5; x++)
{
cin>>calificacion;
if(calificacion<1 || calificacion >5)
continue;
suma+=calificacion;
cuenta++;
}
cout<<"\nPromedio = "<<suma/cuenta<<endl;
system("pause");
return 0;
}

Cuando continue aparece en una instruccin for, hace que el control se transfiera al
incremento de la instruccin, despus de lo cual se vuelve a evaluar la expresin de
prueba, a diferencia de la anterior la iteracin es contada.

RESUMEN
-

Las estructuras de control registran la secuencia o flujo de ejecucin de las


sentencias. Las estructuras de control se dividen en tres grandes categoras por el flujo
de ejecucin: secuencia, seleccin y repeticin.

las estructuras de seleccin nos permiten controlar la secuencia o flujo de ejecucin de


unas u otras sentencias, segn se cumpla o no una condicin.

Las estructura de control de seleccin en C++, son las sentencias if y switch.

La estructura de control de seleccin if en C++, puede ser sencilla si solo se ejecutan


sentencias en cumplimiento de la condicin; o if-else si se ejecutan sentencias por
verdadero o falso.

La estructura de control de seleccin switch en C++, permite seleccionar una entre


mltiples alternativas, con valores exactos.

Las estructuras repetitivas y permiten ejecutar una grupo de lneas de programa ms de


una vez sin necesidad de repetirlas dentro del programa.

Existen tres estructuras repetitivas en C++: while, for y do while la utilizacin de una u otra
depende de las caractersticas del problema que se est solucionando.

16

Вам также может понравиться