Sei sulla pagina 1di 13

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA


CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

ESTRUCTURAS DE CONTROL

La forma ms razonable de encarar el desarrollo de un programa complicado es


aplicar lo que se ha dado en llamar "Programacin Top-Down".
Esto implica que, luego de conocer cul es la meta a alcanzar, se subdivide esta
en otras varias tareas concurrentes, por ejemplo:
Leer un teclado, procesar datos, mostrar los resultados. Luego a estas se las
vuelve a dividir en otras menores:
Y as se contina hasta llegar a tener un gran conjunto de pequeas y simples
tareas, del tipo de "leer una tecla" "imprimir un caracter". Luego slo resta
abocarse a resolver cada una de ellas por separado. De esta forma el
programador, slo se las tendr que ver con diminutas piezas de programa, de
pocas lneas, cuya escritura y correccin posterior es una tarea simple.
Tal es el criterio con que est estructurado el lenguaje C++, donde una de sus
herramientas fundamentales son las funciones. Todo compilador comercial trae
una gran cantidad de Libreras de toda ndole, matemticas, de entrada - salida,
de manejo de textos, de manejo de grficos, etc, que solucionan la mayor parte
de los problemas bsicos de programacin.
Ahora bien, para que esos bloques de cdigo cumplan tareas especficas, es
indispensable incluir sentencias de control y repetitivas que apoyan el diseo
estructural de un programa y que se debe utilizar en atencin a lo que se requiere
lograr en la tarea.

Sentencias de control selectivas if else, switch


Las sentencias condicionales permiten elegir entre dos o ms opciones.

if else: Se utiliza para elegir entre dos opciones.


Sintaxis: if (condicion) sentencia si la condicin es verdadera
else sentencia si la condicin es falsa.
En C, si se utiliza ms de una sentencia es necesario utilizar llaves.
Ejs: if (a= = b) cout<<iguales;
else cout<<diferentes;
if (a= = b)
{ c++;
x = z;
}

U1

Pgina 18

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

else
{ v--;
y = t;
}
Los if pueden anidarse para evaluar varias condiciones. Ej.
if (condicion1)
{ sentencia 1;
sentencia 2;
if (condicin 2)
{ if (condicin 3)
{ sentencia 3;
sentencia 4;
}
else
{ sentencia 5;
sentencia 6;
}
}
}
else
{ sentencia 7;
sentencia 8;
}
Ejemplo:
Problema: Analizar 3 nmeros digitados por el usuario, indicando mayor,
menor e iguales.
Anlisis:
Datos de entrada: 3 nmeros que se almacenarn en las variables A, B
y C.
Datos de proceso: comparar los nmeros
Datos de saluida: mensaje de nmero mayor, nmero menor y nmeros
iguales.
Diseo de solucin:
Programa: Comparacin de 3 nmeros
INICIO
LEER A, B, C
SI (A = B) and (B = C) entonces ESCRIBIR A, B y C son iguales
SI NO
U1

Pgina 19

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

SI (A=B) and (A>C) entonces ESCRIBIR A y B son iguales; A y B


son mayores que C
SI (A=B) and (A<C) entonces ESCRIBIR A y B son iguales; A y B
son menores que C
SI (A=C) and (A>B) entonces ESCRIBIR A y C son iguales; A y C
son mayores que B
SI (A=C) and (A<B) entonces ESCRIBIR A y C son iguales; A y C
son menores que B
SI (B=C) and (B>A) entonces ESCRIBIR B y C son iguales; B y C
son mayores que A
SI (B=C) and (B<A) entonces ESCRIBIR B y C son iguales; B y C
son menores que A
SI (A>B) and (B>C) entonces ESCRIBIR A es el mayor y C es el
menor
SI (A>C) and (C>B) entonces ESCRIBIR A es el mayor y B es el
menor
SI (B>A) and (A>C) entonces ESCRIBIR B es el mayor y C es el
menor
SI (B>C) and (C>A) entonces ESCRIBIR B es el mayor y A es el
menor
SI (C>A) and (A>B) entonces ESCRIBIR C es el mayor y B es el
menor
SI (C>B) and (B>A) entonces ESCRIBIR C es el mayor y A es el
menor
FIN SI
FIN
Prueba de escritorio
Ejecucin
1
2
3
4
5

A
5
1
3
15
-5

B
5
2
2
15
-7

C
5
3
1
3
-7

Salida
A, B y C son iguales
C es el mayor y A es el menor
A es el mayor y C es el menor
A y B son iguales; A y B son mayores que C
B y C son iguales; B y C son menores que A

Codificacin en lenguaje C++ (IDE FALCON)


/*Autor: Mirian Benavides - UNAD
Programa: Comparacin de 3 nmeros */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estndar de entrada y salida, para utilizar cout
y cin

U1

Pgina 20

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y


system("pause") que detiene la ejecucin del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizar el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Funcin principal
{ int A, B, C;
cout<<"COMPARACION DE 3 NUMEROS"<<endl<<endl;
cout<<"Digite el valor del primer numero : ";
cin>>A;
cout<<"Digite el valor del segundo numero : ";
cin>>B;
cout<<"Digite el valor del tercer numero : ";
cin>>C;
if((A==B) && (B==C)) cout<<endl<<endl<<"A, B y C son iguales";
else
{
if ((A==B) and (A>C)) cout<<endl<<endl<<"A y B son iguales; A y B
son mayores que C";
if ((A==B) and (A<C)) cout<<endl<<endl<<"A y B son iguales; A y B
son menores que C";
if ((A==C) and (A>B)) cout<<endl<<endl<<"A y C son iguales; A y C
son mayores que B";
if ((A==C) and (A<B)) cout<<endl<<endl<<"A y C son iguales; A y C
son menores que B";
if ((B==C) and (B>A)) cout<<endl<<endl<<"B y C son iguales; B y C
son mayores que A";
if ((B==C) and (B<A)) cout<<endl<<endl<<"B y C son iguales; B y C
son menores que A";
if ((A>B) and (B>C)) cout<<endl<<endl<<"A es el mayor y C es el
menor";
if ((A>C) and (C>B)) cout<<endl<<endl<<"A es el mayor y B es el
menor";
if ((B>A) and (A>C)) cout<<endl<<endl<<"B es el mayor y C es el
menor";
if ((B>C) and (C>A)) cout<<endl<<endl<<"B es el mayor y A es el
menor";
if ((C>A) and (A>B)) cout<<endl<<endl<<"C es el mayor y B es el
menor";
if ((C>B) and (B>A)) cout<<endl<<endl<<"C es el mayor y A es el
menor";
}
cout<<endl<<endl;
system("pause");
return 0;
}

U1

Pgina 21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

switch: es una sentencia de bifurcacin mltiple, que permite comparar una


variable sucesivamente frente a una lista de constantes enteras o de carcter.
Al encontrar una coincidencia se ejecuta el bloque de sentencias respectivas.
Sintaxis: switch(variable)
{ case constante1:
{ bloque de sentencias;
break;
}
case constante2:
{ bloque de sentencias;
break;
}
case constante3:
{ bloque de sentencias;
break;
}
default:
{ bloque de sentencias;
}
}
La opcin default se ejecuta cuando no hay coincidencias y es opcional.
Se diferencia de if en que slo permite comprobar por igualdad.
Ejemplo:
Problema: identifificar si un caracter digitado por el usuario es vocal o no. Si es
vocal, a cul corresponde.
Anlisis:
Datos de entrada: un carcter
Datos de proceso: verificar que vocal es o que no es vocal
Datos de salida: mensaje indicando que vocal es o que no es vocal
Diseo de solucin:
Programa: Evaluacin de un carcter
INICIO
LEER caracter
SEGN SEA caracter HACER
caracter = A
ESCRIBIR Vocal A
caracter = a
ESCRIBIR Vocal a

U1

Pgina 22

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

caracter = E
ESCRIBIR Vocal E
caracter = e
ESCRIBIR Vocal e
caracter = I
ESCRIBIR Vocal I
caracter = i
ESCRIBIR Vocal i
caracter = O
ESCRIBIR Vocal O
caracter = o
ESCRIBIR Vocal o
caracter = U
ESCRIBIR Vocal U
caracter = u
ESCRIBIR Vocal u
Si no
ESCRIBIR No es vocal
FIN SEGN SEA
FIN
Prueba de escritorio
Ejecucin
1
2
3
4

caracter
i
A
6
E

Salida
Vocal i
Vocal A
No es vocal
Vocal e

Codificacin en lenguaje C++ (IDE FALCON)


/*Autor: Mirian Benavides - UNAD
Programa: Evaluacin de un caracter */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estndar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecucin del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizar el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Funcin principal
{ char caracter;
cout<<"EVALUACION DE UN CARACTER"<<endl<<endl;
cout<<"Digite un caracter : ";
U1

Pgina 23

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

cin>>caracter;
switch (caracter)
{
case 'A': cout<<endl<<endl<<"Vocal A";
break;
case 'a': cout<<endl<<endl<<"Vocal a";
break;
case 'E': cout<<endl<<endl<<"Vocal E";
break;
case 'e': cout<<endl<<endl<<"Vocal e";
break;
case 'I': cout<<endl<<endl<<"Vocal I";
break;
case 'i': cout<<endl<<endl<<"Vocal i";
break;
case 'O': cout<<endl<<endl<<"Vocal O";
break;
case 'o': cout<<endl<<endl<<"Vocal o";
break;
case 'U': cout<<endl<<endl<<"Vocal U";
break;
case 'u': cout<<endl<<endl<<"Vocal u";
break;
default: cout<<endl<<endl<<"No es vocal";
break;
}
cout<<endl<<endl;
system("pause");
return 0;
}
Sentencias de control repetitivas for, while, do while
Las sentencias de control repetitivas, conocidas tambin como ciclos, permiten
repetir un conjunto de instrucciones, mientras se cumpla una condicin. Utiliza una
variable control y puede interrumpirse mediante la instruccin break.

U1

for (inicializacin ; condicin ; incremento)


{ bloque de sentencias;
}
Ej. Imprimir los nmeros pares comprendidos entre 0 y 20.
int i, residuo;
for (i=1 ; i<=20; i++)
{ residuo = i % 2;
if ( !residuo) cout<<\n << i;
}
Pgina 24

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

Si nicamente existe una sentencia que ejecutar la sintaxis es:


int i;
for(i=1; i<=10; i++) cout<< i;
La siguiente sintaxis for( ; ; ) crea un ciclo infinito, a menos que exista una
condicin interna que obligue a salir del ciclo. Ej.
int i;
char r;
for ( ; ; )
{ cout<<Desea continuar (s/n) : ;
cin>>r;
if ( r != s) break;
}
Sentencia break: se utiliza para terminar la ejecucin de un ciclo. Ejemplo:
int i;
for(i=0; i<=10; i++)
{ cout<< \n <<i;
if (i= =5) break;
} // nicamente imprime los nmeros del 0 al 5.
Ejemplo:
Problema: Imprimir la tabla de multiplicar que indique el usuario
Anlisis:
Datos de entrada: nmero de la tabla de multiplicar a imprimir y
almacenarlo en la variable tabla.
Datos de proceso: resultado = tabla * 1 (se multiplica por los valores
comprendidos entre 1 y 10)
Datos de salida: resultado (de todas las operaciones)
Diseo:
Programa: tabla de multiplicar
INICIO
LEER tabla
PARA n = 1 HASTA 10 HACER
resultado = tabla * n
ESCRIBIR tabla x n = resultado
FIN PARA
FIN
Prueba de escritorio
U1

Pgina 25

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

Iteracin
1
2
3
4
5
6
7
8
9
10

Tabla
5

Resultado
5
10
15
20
25
3
35
40
45
50

Salida
5x1=5
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10
5 x 2 = 10

Codificacin en lenguaje C++ (IDE FALCON)


/*Autor: Mirian Benavides - UNAD
Programa: Tabla de multiplicar */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estndar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecucin del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizar el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Funcin principal
{ int n, tabla, resultado;
cout<<"TABLA DE MULTIPLICAR"<<endl<<endl;
cout<<"Digite el numero de tabla que desea imprimir : ";
cin>>tabla;
cout<<endl;
for(n=1;n<=10;n++)
{
resultado = tabla*n;
cout<<tabla <<" x " <<n <<" = " <<resultado;
cout<<endl;
}
cout<<endl<<endl;
system("pause");
return 0;
}

U1

Ciclo while: ejecuta un bloque de sentencias mientras la condicin que evala


es verdadera. Las condiciones que debe cumplir son:
Antes del ciclo la variable que se evala debe tener un valor que haga la
condicin verdadera.
Pgina 26

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

Dentro del ciclo la variable control debe cambiar para que en algn
momento la condicin sea falsa y pueda terminar el ciclo.
Ejemplo:
Problema: verificar si el valor de una nota digitada por el usuario, se
encuentra dentro del rango 0 y 5.
Anlisis:
Datos de entrada: nota
Datos de proceso: comparar si nota es >= 0 y es <= 5
Datos de salida: mensaje nota correcta o nota incorrecta
Diseo de solucin:
INICIO
LEER nota
MIENTRAS nota < 0 OR nota >5 HACER
ESCRIBIR Nota incorrecta, digite nueva nota
LEER nota
FIN MIENTRAS
ESCRIBIR Nota correcta
FIN
Prueba de escritorio
Ejecucin
1
2

nota
3
6
-2
4.5

Iteracin
1
1
2
3

Salida
Nota correcta
Nota incorrecta, digite nueva nota
Nota incorrecta, digite nueva nota
Nota correcta

Codificacin en lenguaje C++ (IDE FALCON)


/*Autor: Mirian Benavides - UNAD
Programa: Validacin nota */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estndar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecucin del programa hasta que el usuario
digite una tecla */
U1

Pgina 27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

using namespace std; /*Indica al compilador que utilizar el espacio de


nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Funcin principal
{ float nota;
cout<<"VALIDACION DE NOTA"<<endl<<endl;
cout<<"Digite nota : ";
cin>>nota;
cout<<endl;
while((nota<0) or (nota>5))
{
cout<<endl<<endl<<"\tNota incorrecta, digite nueva nota : ";
cin>>nota;
}
cout<<endl<<endl<<"Nota correcta";
cout<<endl<<endl;
system("pause");
return 0;
}

Ciclo do .. while: ejecuta un bloque de sentencias y al final verifica si la


condicin es verdadera. La diferencia fundamental entre los ciclos while y do
while, es que el primero evala la condicin al inicio del ciclo y el segundo la
evala al final. Esto hace que el bloque de sentencias en do while, se ejecuten
por lo menos una vez.
Sintaxis: do
{ bloque de sentencias;
}
while (condicin) ;
Ejemplo:
Problema: disear un men que facilite el acceso a 4 opciones, incluida la
posibilidad de salir del programa.
Anlisis:
Datos de entrada: opcin elegida por el usuario
Datos de proceso: comparacin del dato digitado por el usuario con las
opciones que tiene el men.
Datos de salida: mensaje de la opcin elegida
Diseo de solucin:
INICIO
REPETIR
ESCRIBIR Menu
ESCRIBIR 1. Llenar datos

U1

Pgina 28

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

ESCRIBIR 2. Consultar datos


ESCRIBIR 3. Eliminar datos
ESCRIBIR 4. Salir
LEER opcion
SEGN SEA opcin
opcion = 1
ESCRIBIR Llenar datos
opcion = 2
ESCRIBIR Consultar datos
opcion = 3
ESCRIBIR Eliminar datos
opcion = 4
ESCRIBIR Programa finalizado
si no
ESCRIBIR Opcin incorrecta
FIN SEGN SEA
HASTA QUE opcin 4
FIN
Prueba de escritorio
Ejecucin
1

opcion
1
3
7
4

Iteracin
1
2
3
4

Salida
Llenar datos
Eliminar datos
Opcin incorrecta
Programa finalizado

Codificacin en lenguaje C++ (IDE FALCON)


/*Autor: Mirian Benavides - UNAD
Programa: Men */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estndar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecucin del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizar el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Funcin principal
{ int op;
do
{ system("cls");
cout<<"MENU" <<endl <<endl;
cout<<"1. Llenar datos " <<endl;
U1

Pgina 29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

cout<<"2. Consultar datos " <<endl;


cout<<"3. Eliminar datos " <<endl;
cout<<"4. Salir ";
cout<<endl <<endl;
cout<< "Elija opcion : ";
cin>> op;
switch(op)
{ case 1: cout<<endl <<"Llenar datos" <<endl;
break;
case 2: cout<<endl << "Consultar datos" <<endl;
break;
case 3: cout<<endl << "Eliminar datos" <<endl;
break;
case 4: cout<<endl << "Programa finalizado" <<endl;
break;
default: cout<<endl << "Opcion incorrecta" <<endl;
break;
}
system("pause");
} while(op!=4);
cout<<endl<<endl;
system("pause");
return 0;
}

Ampliar informacin consultando:


Deintel, Harvey M., Deintel, Paul J. Cmo programar en C++. Pags. 120 a 121.
Disponible en
http://books.google.es/books?id=CBhWani323wC&printsec=frontcover&dq=c%2B
%2B&hl=es&sa=X&ei=v1d7VJbqEoekNr2lgqAE&ved=0CEwQ6AEwBg#v=onepag
e&q=c%2B%2B&f=false
Hernndez Orallo Enrique, Hernndez Orallo Jos & Juan Lizandra Ma Carmen.
C++
estndar.
Pags.
44
a
51.
Disponible
en
http://books.google.es/books?id=sjxQIhrMCegC&printsec=frontcover&dq=c%2B%
2B&hl=es&sa=X&ei=YIB7VLm0MsqvggTx1IKwBQ&ved=0CGMQ6AEwCQ#v=one
page&q=c%2B%2B&f=false

U1

Pgina 30

Potrebbero piacerti anche