universidad nacional abierta ya distancia

Anuncio
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION
ESTRUCTURAS DE CONTROL
La forma más razonable de encarar el desarrollo de un programa complicado es
aplicar lo que se ha dado en llamar "Programación Top-Down".
Esto implica que, luego de conocer cuál 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 continúa hasta llegar a tener un gran conjunto de pequeñas y simples
tareas, del tipo de "leer una tecla" ó "imprimir un caracter". Luego sólo resta
abocarse a resolver cada una de ellas por separado. De esta forma el
programador, sólo se las tendrá que ver con diminutas piezas de programa, de
pocas líneas, cuya escritura y corrección 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 Librerías de toda índole, matemáticas, de entrada - salida,
de manejo de textos, de manejo de gráficos, etc, que solucionan la mayor parte
de los problemas básicos de programación.
Ahora bien, para que esos bloques de código cumplan tareas específicas, es
indispensable incluir sentencias de control y repetitivas que apoyan el diseño
estructural de un programa y que se debe utilizar en atención a lo que se requiere
lograr en la tarea.
Sentencias de control selectivas if else, switch
Las sentencias condicionales permiten elegir entre dos o más opciones.

if … else: Se utiliza para elegir entre dos opciones.
Sintaxis: if (condicion) sentencia si la condición es verdadera
else sentencia si la condición es falsa.
En C, si se utiliza más de una sentencia es necesario utilizar llaves.
Ejs: if (a= = b) cout<<“iguales”;
else cout<<“diferentes”;
if (a= = b)
{ c++;
x = z;
}
U1
Página 18
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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 (condición 2)
{ if (condición 3)
{ sentencia 3;
sentencia 4;
}
else
{ sentencia 5;
sentencia 6;
}
}
}
else
{ sentencia 7;
sentencia 8;
}
Ejemplo:
Problema: Analizar 3 números digitados por el usuario, indicando mayor,
menor e iguales.
Análisis:
 Datos de entrada: 3 números que se almacenarán en las variables A, B
y C.
 Datos de proceso: comparar los números
 Datos de saluida: mensaje de número mayor, número menor y números
iguales.
Diseño de solución:
Programa: Comparación de 3 números
INICIO
LEER A, B, C
SI (A = B) and (B = C) entonces ESCRIBIR “A, B y C son iguales”
SI NO
U1
Página 19
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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
Ejecución
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
Codificación en lenguaje C++ (IDE FALCON)
/*Autor: Mirian Benavides - UNAD
Programa: Comparación de 3 números */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout
y cin
U1
Página 20
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución 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() //Función 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
Página 21
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

switch: es una sentencia de bifurcación múltiple, que permite comparar una
variable sucesivamente frente a una lista de constantes enteras o de carácter.
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 opción default se ejecuta cuando no hay coincidencias y es opcional.
Se diferencia de if en que sólo permite comprobar por igualdad.
Ejemplo:
Problema: identifificar si un caracter digitado por el usuario es vocal o no. Si es
vocal, a cuál corresponde.
Análisis:
 Datos de entrada: un carácter
 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
Diseño de solución:
Programa: Evaluación de un carácter
INICIO
LEER caracter
SEGÚN SEA caracter HACER
caracter = ‘A’
ESCRIBIR “Vocal A”
caracter = ‘a’
ESCRIBIR “Vocal a”
U1
Página 22
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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 SEGÚN SEA
FIN
Prueba de escritorio
Ejecución
1
2
3
4
caracter
i
A
6
E
Salida
Vocal i
Vocal A
No es vocal
Vocal e
Codificación en lenguaje C++ (IDE FALCON)
/*Autor: Mirian Benavides - UNAD
Programa: Evaluación de un caracter */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estándar 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 ejecución 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() //Función principal
{ char caracter;
cout<<"EVALUACION DE UN CARACTER"<<endl<<endl;
cout<<"Digite un caracter : ";
U1
Página 23
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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 también como ciclos, permiten
repetir un conjunto de instrucciones, mientras se cumpla una condición. Utiliza una
variable control y puede interrumpirse mediante la instrucción break.

U1
for (inicialización ; condición ; incremento)
{ bloque de sentencias;
}
Ej. Imprimir los números pares comprendidos entre 0 y 20.
int i, residuo;
for (i=1 ; i<=20; i++)
{ residuo = i % 2;
if ( !residuo) cout<<“\n “<< i;
}
Página 24
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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
condición 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 ejecución de un ciclo. Ejemplo:
int i;
for(i=0; i<=10; i++)
{ cout<< “\n ” <<i;
if (i= =5) break;
} // únicamente imprime los números del 0 al 5.
Ejemplo:
Problema: Imprimir la tabla de multiplicar que indique el usuario
Análisis:
 Datos de entrada: número 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)
Diseño:
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
Página 25
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION
Iteración
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
Codificación en lenguaje C++ (IDE FALCON)
/*Autor: Mirian Benavides - UNAD
Programa: Tabla de multiplicar */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estándar 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 ejecución 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() //Función 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 condición que evalúa
es verdadera. Las condiciones que debe cumplir son:
 Antes del ciclo la variable que se evalúa debe tener un valor que haga la
condición verdadera.
Página 26
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION
 Dentro del ciclo la variable control debe cambiar para que en algún
momento la condición 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.
Análisis:
 Datos de entrada: nota
 Datos de proceso: comparar si nota es >= 0 y es <= 5
 Datos de salida: mensaje nota correcta o nota incorrecta
Diseño de solución:
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
Ejecución
1
2
nota
3
6
-2
4.5
Iteración
1
1
2
3
Salida
Nota correcta
Nota incorrecta, digite nueva nota
Nota incorrecta, digite nueva nota
Nota correcta
Codificación en lenguaje C++ (IDE FALCON)
/*Autor: Mirian Benavides - UNAD
Programa: Validación nota */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estándar 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 ejecución del programa hasta que el usuario
digite una tecla */
U1
Página 27
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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() //Función 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
condición es verdadera. La diferencia fundamental entre los ciclos while y do
while, es que el primero evalúa la condición al inicio del ciclo y el segundo la
evalúa 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 (condición) ;
Ejemplo:
Problema: diseñar un menú que facilite el acceso a 4 opciones, incluida la
posibilidad de salir del programa.
Análisis:
 Datos de entrada: opción elegida por el usuario
 Datos de proceso: comparación del dato digitado por el usuario con las
opciones que tiene el menú.
 Datos de salida: mensaje de la opción elegida
Diseño de solución:
INICIO
REPETIR
ESCRIBIR “Menu”
ESCRIBIR “1. Llenar datos”
U1
Página 28
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION
ESCRIBIR “2. Consultar datos”
ESCRIBIR “3. Eliminar datos”
ESCRIBIR “4. Salir”
LEER opcion
SEGÚN SEA opción
opcion = 1
ESCRIBIR “Llenar datos”
opcion = 2
ESCRIBIR “Consultar datos”
opcion = 3
ESCRIBIR “Eliminar datos”
opcion = 4
ESCRIBIR “Programa finalizado”
si no
ESCRIBIR “Opción incorrecta”
FIN SEGÚN SEA
HASTA QUE opción ≠ 4
FIN
Prueba de escritorio
Ejecución
1
opcion
1
3
7
4
Iteración
1
2
3
4
Salida
Llenar datos
Eliminar datos
Opción incorrecta
Programa finalizado
Codificación en lenguaje C++ (IDE FALCON)
/*Autor: Mirian Benavides - UNAD
Programa: Menú */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream> //Biblioteca estándar 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 ejecución 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() //Función principal
{ int op;
do
{ system("cls");
cout<<"MENU" <<endl <<endl;
cout<<"1. Llenar datos " <<endl;
U1
Página 29
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO 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 información consultando:
Deintel, Harvey M., Deintel, Paul J. Cómo 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
Hernández Orallo Enrique, Hernández Orallo José & Juan Lizandra Ma Carmen.
C++
estándar.
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
Página 30
Descargar