Академический Документы
Профессиональный Документы
Культура Документы
CENTRO DE SISTEMAS
ESTRUCTURAS SELECTIVAS
6.1.1.
SENTENCIA if
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
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;
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.
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
fin_si
Fin
EJEMPLO 3:
Leer tres nmeros, determinar cul es el mayor.
Variables: A: Numero 1, B: Numero 2, C: numero3
3
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
CENTRO DE SISTEMAS
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:
CENTRO DE SISTEMAS
6.2.
CENTRO DE SISTEMAS
ESTRUCTURAS REPETITIVAS
6.2.1.
BUCLES E ITERACIONES
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:
Ejemplo:
Z Z + 2, donde Z se incrementa en 2 en cada iteracin.
7
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:
Ejemplo:
S S+N, donde N es una variable y no una constante
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.
Bloque de sentencias
a--
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;
}
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
6.3.2.
CENTRO DE SISTEMAS
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
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:
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.
12
CENTRO DE SISTEMAS
Sintaxis de la instruccin:
do
{
sentencia-1;
sentencia-2;
sentencia-3;
:
:
sentencia-n;
} while (condicin);
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
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
6.5.
CENTRO DE SISTEMAS
break;
EJEMPLO
Calcular la ecuacin,
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
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
CENTRO DE SISTEMAS
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
-
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