estructuras de control
TRANSCRIPT
![Page 1: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/1.jpg)
LENGUAJE LENGUAJE DE DE
PROGRAMACION PROGRAMACION BORLAND C++BORLAND C++
ESTRUCTURAS DE CONTROLESTRUCTURAS DE CONTROL
Abril 2015Abril 2015
![Page 2: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/2.jpg)
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
![Page 3: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/3.jpg)
<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.
![Page 4: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/4.jpg)
ESTRUCTURA SECUENCIAL
Tipos de sentencias secuenciales:
Sentencia de entrada: cin >> n ;
Sentencia de salida: cout << n ;
Sentencia de asignación: n = n +1;
![Page 5: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/5.jpg)
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
![Page 6: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/6.jpg)
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
![Page 7: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/7.jpg)
ESTRUCTURAS SELECTIVASESTRUCTURAS SELECTIVAS
Estructura Selectiva Simple: Sentencia if(Una alternativa)
Estructura Selectiva Doble: Sentencia if-else
(Dos alternativas)
Estructura Selectiva Múltiple: Sentencia switch(Varias alternativas)
![Page 8: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/8.jpg)
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
![Page 9: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/9.jpg)
LENGUAJE DE PROGRAMACION C++LENGUAJE DE PROGRAMACION C++
Jerarquía de operadoresOperador 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
![Page 10: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/10.jpg)
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.
![Page 11: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/11.jpg)
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.
![Page 12: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/12.jpg)
ESTRUCTURA SELECTIVA DOBLEESTRUCTURA SELECTIVA DOBLE
C. L.C. L.
sentencia_1V
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
![Page 13: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/13.jpg)
ESTRUCTURAS SELECTIVAS ESTRUCTURAS SELECTIVAS
a) SELECCION SIMPLE
if if (nota > 10)
cout << “curso aprobado” ;
if (( numero%2)==0) cout << “El numero es par” ;
else cout << “El numero es impar” ;
b) SELECCION DOBLE
![Page 14: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/14.jpg)
ESTRUCTURA SELECTIVA ANIDADAESTRUCTURA SELECTIVA ANIDADA
Problema 1: Diseñar un programa que permita leer tres notas y determinar la menor nota.
![Page 15: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/15.jpg)
ESTRUCTURAS SELECTIVAS ESTRUCTURAS 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");gotoxy(15,4);cout<<"Bienvnido";gotoxy(15,6);cout<<"pc1="; cin>>pc1;gotoxy(15,7);cout<<"pc2="; cin>>pc2;gotoxy(15,8);cout<<"pc3="; cin>>pc3;menor = pc1;if (menor > pc2){ menor = pc2 ;}if (menor > pc3){ menor = pc3 ;}gotoxy (10,10);cout<<"menor nota="<<menor;pp= ((pc1+pc2+pc3)-menor)/2;gotoxy(10,12);cout<<"promedio="<<pp;gotoxy(20,20); cout<<"sr. desea continuar......? (s/n)" ;
cin>>resp ;}if (resp == 'n'){ clrscr(); system ("title diseñado por Luz");system ("color 2b");gotoxy(20,12); cout<<"gracias por consultar" ;gotoxy(20,14); cout<<"ud ha realizado = "<< nc<< " consultas";}getch();}
Problema2: Diseñar un programa que permita determinar el promedio de prácticas luego de eliminar la
menor nota.
![Page 16: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/16.jpg)
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.
![Page 17: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/17.jpg)
ESTRUCTURA SELECTIVA IF- ELSE ESTRUCTURA 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) sentencia3;
C. L.C. L.
F
V
![Page 18: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/18.jpg)
ESTRUCTURA SELECTIVA MULTIPLEESTRUCTURA SELECTIVA MULTIPLE
SELECTORSELECTOR
Instrucción_11
Instrucción_n
N
Instrucción _2
SENTENCIA switch
2
instrucción default
FIN
La sentencia selectiva switch se utiliza para seleccionar unade varias alternativas.
La sentencia switch se utiliza cuando la selección se basaen el valor de una variable Simple o de una expresiónSimple denominada expresiónde control o selector.
El valor del selector debe serentero.
![Page 19: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/19.jpg)
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.
![Page 20: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/20.jpg)
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.
![Page 21: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/21.jpg)
switch (selector) {
caso valor_ 1 : <sentencia_1> ;
break ;
caso valor_ 2 : <sentencia_2> ;
break ;
caso valor_n : <sentencia_n ;
break ;
default <sentencia_default> ;default <sentencia_default> ;
breakbreak ; ;
}}
![Page 22: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/22.jpg)
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” ;
}
![Page 23: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/23.jpg)
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;}
![Page 24: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/24.jpg)
ESTRUCTURAS REPETITIVASESTRUCTURAS REPETITIVAS
Sentencia while
Sentencia do – while
Sentencia for
![Page 25: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/25.jpg)
Las estructuras que repiten una secuencia de sentencias Las estructuras que repiten una secuencia de sentencias
un número determinado de veces se denomina un número determinado de veces se denomina bucle o bucle 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.
![Page 26: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/26.jpg)
while (condición lógica) sea verdad { Sentencia (s) ; }
INICIO
C. L.C. L.
Sentencia_1Sentencia_2Sentencia_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
![Page 27: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/27.jpg)
#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 nentero positivo, luego calcular su factorial e imprimir su resultado.
SENTENCIA WHILE
![Page 28: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/28.jpg)
Problema 4: Diseñar un programa que permita leer un número nentero positivo, luego calcular su factorial e imprimir su resultado.
SENTENCIA WHILE
![Page 29: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/29.jpg)
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
![Page 30: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/30.jpg)
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 CONTROLADALa 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.
BUCLE
![Page 31: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/31.jpg)
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
![Page 32: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/32.jpg)
# 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
![Page 33: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/33.jpg)
SENTENCIA WHILE
![Page 34: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/34.jpg)
INICIO
Sentencia_1Sentencia_2
F
V
FIN
(i;<C. L.>;contador)
SENTENCIA FOR
c) REPETICION CON NUMERO DEFINIDO DE ITERACCIONES: for
BU CLE
![Page 35: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/35.jpg)
PROCESO DE REPETICION
Sintaxis de la sentencia for :
for (inicialización; <condición lógica>; contador) {
<sentencia_1>;
<sentencia_2>; <sentencia_3>;
}
![Page 36: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/36.jpg)
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.
Contador; es la instrucción a ejecutarse cuando se
termina cada interacción.
PROCESO DE REPETICION
c) REPETICION CON NUMERO DEFINIDO DE ITERACCIONES
![Page 37: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/37.jpg)
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 nPositivo y luego mostrar su factorial.
SENTENCIA DO WHILE
![Page 38: Estructuras de control](https://reader030.vdocuments.pub/reader030/viewer/2022032617/55b03e5b1a28aba0618b45fe/html5/thumbnails/38.jpg)
Problema 8: Diseñar un programa que permita leer un número nPositivo y luego mostrar su factorial.
SENTENCIA DO WHILE