ESTRUCTURAS DE CONTROLESTRUCTURAS DE CONTROL
El presente capítulo trata de la sintaxis de las
principales Estructuras de Control del Lenguaje de
Programación Borland C++
Los programa son escritos usando los tres tipos de
estructuras:
• Secuenciales
• Selectivas
• Repetitivas
<sentencia_1>;
<sentencia_2>;
- - - - - - - - - - - --
< sentencia _n >;
ESTRUCTURAS SECUENCIALES
Definida como una secuencia finita de acciones hasta
obtener un resultado coherente. Su ejecución se
realiza en el orden en que se presentan las
instrucciones, desde el inicio hasta el final del
programa.
ESTRUCTURA SECUENCIAL
Tipos de sentencias secuenciales:
Sentencia de entrada: cin >> n ;
Sentencia de salida: cout << n ;
Sentencia de asignación: n = n +1;
La estructura de selección se utiliza para alterar el
flujo de control secuencial de un programa,
mediante la evaluación de una condición lógica.
Una condición lógica se expresa como una
expresión relacional, donde cada operando
pueden ser una constante o una variable y los
operadores relacionales deben ser uno de los
expuestos en la tabla de operadores de relación.
ESTRUCTURAS SELECTIVASESTRUCTURAS SELECTIVAS
LENGUAJE DE PROGRAMACION C++LENGUAJE DE PROGRAMACION C++
Operadores de Relación
Operador Significado Ejemplo en C++ Significado
a == b igualdad X = = y X es igual a y
a != b desigualdad X! = y X es diferente de y
a < b Menor que X >y X es mayor que y
a > b Mayor que X < y x es menor que y
a <= b Menor o Igual que X > = y X es mayor o igual que
a >= b Mayor o Igual que X< = y X es menor o igual que
y
LENGUAJE DE PROGRAMACION C++LENGUAJE DE PROGRAMACION C++
Operadores Incremento y Decremento
Los casos en que una variable es incrementada o
disminuida en uno , C++ proporciona dos operadores
unitario.
Usando el operador de incremento, ++, -- (operador)
n = n + 1; se reemplaza por la expresión n++ ó ++n
n = n - 1; se reemplaza por la expresión n-- ó --n
numero = valor ++; // incrementa valor en 1
LENGUAJE DE PROGRAMACION C++LENGUAJE DE PROGRAMACION C++
Jerarquía de operadores
Operador Asociatividad
( ) De izquierda a derecha
! De izquierda a derecha
* / % De izquierda a derecha
+ - De izquierda a derecha
< <= > >= De izquierda a derecha
== != De izquierda a derecha
&& De izquierda a derecha
// De izquierda a derecha
= += *= /n %= De izquierda a derecha
LENGUAJE DE PROGRAMACION C++LENGUAJE DE PROGRAMACION C++
Operadores Lógicos
! Negación lógica NOT lógico
&&
Y lógico AND ((5<13) &&(5>4)
Para que sea verdad sus dos operandos deben ser
verdad
||
O lógico OR (4<2) || (3<5)
Para que sea verdad basta que un operando sea
verdad.
ESTRUCTURA SELECTIVA SIMPLEESTRUCTURA SELECTIVA SIMPLE
INICIO C. L.C. L.
<sentencias_1>
Sentencia_2
V
F
La sentencia selectiva simple evalúa una (condición lógica).
La evaluación de la condición lógica representa un sólo valor
Verdad o Falso.
• Si la condición lógica es verdadera se ejecuta la sentencia_1 y luego la
sentencia_2.
• Si al evaluar la condición lógica es falsa sólo se ejecuta la sentencia_2.
if (condición
lógica)
sentencia ;
SENTENCIA if
C. L.C. L.
ESTRUCTURA SELECTIVA DOBLEESTRUCTURA SELECTIVA DOBLE
C. L.C. L.
sentencia_1
V
sentencia_2
F
FIN
SENTENCIA if - else
if (condición lógica )
sentencia_1 ;
else
sentencia_2 ;
La sentencia selectiva doble evalúa una condición lógica
. Si la condición lógica es verdadera se ejecuta la sentencia_1.
• Si la condición lógica es evaluada como falsa se ejecuta la sentencia_2
ESTRUCTURAS SELECTIVASESTRUCTURAS SELECTIVAS
a) SELECCION SIMPLE
ifif (nota > 10)
cout << “curso aprobado” ;
if (( numero%2)==0)
cout << “El numero es par” ;
else
cout << “El numero es impar” ;
b) SELECCION DOBLE
ESTRUCTURAS SELECTIVASESTRUCTURAS SELECTIVAS
#include <iostream.h> // PARA USAR cin, cout
#include <conio.h> // PARA USAR gotoxy(), clrscr()
#include <stdlib.h> // PARA USAR exit (1)
void main ()
{
int pc1,pc2,pc3,menor,nc=0;
float pp;
char resp = 's';
while (resp =='s')
{nc++ ;
clrscr();
gotoxy(40,5);cout<<"ud. es el visitante numero="<<nc;
system ("title diseñado por Luz");
system ("color 1b");
Problema2: Diseñar un programa que permita determinar
el promedio de prácticas luego de eliminar la
menor nota.
ESTRUCTURA SELECTIVA DOBLEESTRUCTURA SELECTIVA DOBLE
(Observaciones)(Observaciones)
1. La condición lógica es una expresión que será evaluada
como verdadera o falsa. La expresión puede ser simple
(una condición) o compuesta, la cual está formada por
varias condiciones simples conectadas por los
operadores lógicos.
2. Siempre se usa paréntesis encerrando a la condición
lógica a evaluarse.
3. Las estructuras if se pueden anidar, es decir; puede
existir una estructura if dentro de otra.
ESTRUCTURA SELECTIVA IF- ELSEESTRUCTURA SELECTIVA IF- ELSE
ANIDADASANIDADAS
C. L.C. L.
V
F
if (condición lógica
1)
sentencia1;
else if (condición lógica
2)
sentencia2;
else if (condición lógica
3)
C. L.C. L.
F
V
ESTRUCTURA SELECTIVA MULTIPLEESTRUCTURA SELECTIVA MULTIPLE
SELECTORSELECTOR
Instrucción_1
1
Instrucción_n
N
Instrucción _2
SENTENCIA switch
2
instrucción
default
FIN
La sentencia selectiva switch
se utiliza para seleccionar una
de varias alternativas.
La sentencia switch se utiliza
cuando la selección se basa
en el valor de una variable
Simple o de una expresión
Simple denominada expresión
de control o selector.
El valor del selector debe ser
entero.
ESTRUCTURA SELECTIVA MULTIPLEESTRUCTURA SELECTIVA MULTIPLE
(Reglas de Uso)(Reglas de Uso)
1. La variable selector o expresión de control no puede ser: string o
real.
2. La sentencia swith requiere un valor compatible con entero. El valor
puede ser variable, una constante, una llamada de función o una
expresión.
3. El valor después de cada etiqueta case debe ser una constante.
4. El final del enunciado case está marcado típicamente con un break.
Dicha sentencia permite que el programa abandone la estructura
switch omitiendo los demás casos.
5. La etiqueta default indica al programa lo mismo que la sentencia else
en la secuencia de if anidados, es decir; se ejecuta cuando el
usuario edita un valor que no esta en la lista de valores.
ESTRUCTURA SELECTIVA MULTIPLEESTRUCTURA SELECTIVA MULTIPLE
(Observaciones)(Observaciones)
6. La variable selector o expresión de control no puede ser: string o real.
8. Cuando se requiere realizar una misma acción para distintos valores de la
expresión evaluada, se coloca una sentencia case por cada valor. Sin ninguna
acción, y la acción común se pone al final. Ejemplo:
Switch (a) {
Case 1:case 2:case 3: cout<<“ sentencia para valor 1, 2 y 3” ;
break ;
Case 4: cout<<“sentencia para valor 4” ; break;
}
7. La etiqueta default indica al programa lo mismo que la sentencia else
en la secuencia de if anidados, es decir; se ejecuta cuando el usuario
edita un valor que no esta en la lista de valores.
ESTRUCTURA SELECTIVA MULTIPLEESTRUCTURA SELECTIVA MULTIPLE
SwitchSwitch (día) {
case 1: cout<<“Lunes” ; break ;
case 2: cout<<“Martes” ; break ;
case 3: cout<<“Miercoles” ; break ;
case 4: cout<<“Jueves” ; break ;
case 5: cout<<“Viernes” ; break
case 6: cout<<“Sábado” ; break ;
case 7: cout<<“Domingo” ; break ;
default: cout<<“No es un día de la semana” ;
ESTRUCTURA SELECTIVA MULTIPLEESTRUCTURA SELECTIVA MULTIPLE
switch (c)
{
case 'A': fa++; break;
case 'E': fe++; break;
case 'I': fi++; break;
case 'O': fo++; break;
case 'U': fu++; break;
}
Las estructuras que repiten una secuencia de sentenciasLas estructuras que repiten una secuencia de sentencias
un número determinado de veces se denominaun número determinado de veces se denomina bucle obucle o
lazoslazos, y se llama ITERACCIÓN al hecho de repetir la, y se llama ITERACCIÓN al hecho de repetir la
ejecución de una secuencia de sentencias.ejecución de una secuencia de sentencias.
SENTENCIAS REPETITIVAS
Corresponde a la ejecución repetida de una
secuencia de sentencias, mientras se cumple una
determinada condición. Poseen una sola entrada y
una sola salida.
while (condición lógica) sea verdad
{
Sentencia (s) ;
}
INICIO
C. L.C. L.
Sentencia_1
Sentencia_2
Sentencia_3
FIN
V
F
SENTENCIA WHILE
a) BUCLE CON ENTRADA
CONTROLADA
La sentencia WHILE permite evaluar una
condición lógica y ejecuta el cuerpo del
bucle si la condición lógica es verdad.
Si la condición lógica de control es falsa
no se ejecuta el cuerpo del bucle.
B
U
C
L
E
#include<iostream.h>
#include<conio.h>
Void main()
{int fact=1,n,minumero;
gotoxy(8,4);cout<<" Ingrese un numero : ";cin>>n;
minumero=n;
while (n>0)
{ fact=fact*n;
n--; }
gotoxy(15,6);cout<<"El factorial de "<<minumero <<"
es ="<<fact;
getche();
}
Problema 3: Diseñar un programa que permita leer un número n
entero positivo, luego calcular su factorial e imprimir su
resultado.
SENTENCIA WHILE
Problema 4: Diseñar un programa que permita leer un número n
entero positivo, luego calcular su factorial e imprimir su
resultado.
SENTENCIA WHILE
while(n>0) // descompongo el numero n ingresado
{ d=n%10; nd=nd+1;
If (d%2==0)
{ par++;
sump+=d;
}
else { impar++;
sumimpar+=d;
}
inv=inv*10+d;
n=n/10; }
Problema 5: Escribir un programa que lea un número compuesto
por más un dígito y luego mostrar: total de dígitos, total de
dígitos pares e impares, número invertido, total de suma de
dígitos pares e impares respectivamente.
.
SENTENCIA WHILE
do
{
sentencia_1;
sentencia_2;
sentencia _n;
} while (condición lógica) (“sea falsa”)
INICIO
C. L.C. L.
Sentencia_1
Sentencia_2
Sentencia_3
F
V
FIN
SENTENCIA DO WHILE
b) BUCLE CON SALIDA CONTROLADA
La sentencias do - while evalúa una condición lógica
después de ejecutar el cuerpo del blucle do, que se
ejecutará en secuencia repetitiva hasta que, la
condición lógica tome un valor de falso.
El cuerpo del bucle se ejecuta por lo menos una vez
porque la condición se evalúa después de la ejecución
del bucle repetitivo.
B
U
C
L
E
Problema 6: Diseñar un programa que permita leer un número n
y calcule la suma acumulada de la serie: 1+2+3..n.
El usuario ingresa el número de términos a sumar.
SENTENCIA WHILE
# include < iostream.h >
#include <conio.h>
Void main()
{ int cont=1,suma=0,n;
cout<<"Ingrese numero de términos";
cin>>n;
do
{ suma+=cont;
cont++;
} while (cont<=n);
cout<<"la suma es :"<<suma;
getch();
}
SENTENCIA DO WHILE
PROCESO DE REPETICION
Sintaxis de la sentencia for :
for (inicialización; <condición lógica>; contado
{
<sentencia_1>;
<sentencia_2>;
<sentencia_3>;
}
Inicialización; indica las condiciones iniciales cuando
se inicia el bucle.
<condición>; se evalúa antes de cada iteracción. Si
es verdadera, se ejecuta el bloque
de instrucciones, en caso contrario
se termina la estructura y se
transfiere el control a la sentencia
siguiente.
PROCESO DE REPETICION
REPETICION CON NUMERO DEFINIDO DE ITERACCIONES
Solucion // factoria.cpp
#include<iostream.h>
#include<conio.h>
void main()
{ int n, factorial=1,i;
clrscr(); gotoxy(10,4);cout<<" CALCULANDO FACTORIAL";
gotoxy(12,6);cout<<" Ingrese un numero :" ;cin>>n;
for(i=1;i<=n;i++)
factorial=factorial*i;
gotoxy(12,8);cout<<"el factorial de "<<n<<" es = "<<factorial;
getche();
}
Problema 7: Diseñar un programa que permita leer un número n
Positivo y luego mostrar su factorial.
SENTENCIA DO WHILE
Problema 8: Diseñar un programa que permita leer un número n
Positivo y luego mostrar su factorial.
SENTENCIA DO WHILE