Вы находитесь на странице: 1из 21

Universidad Mariano Glvez,

Facultad de Ingeniera en Sistemas de Informacin,


Programacin
Seccin A,
Ingeniero Samuel Bolux.

Tarea 2
Estructuras de Control, Tipos de Datos y Estructura Bsica
De un Programa en C++

Carlos Estuardo Godoy Valenzuela,


Carne 0908-11-16388.
Escuintla, 21 de febrero de 2,015.

INDICE

ndice..
Introduccin..
Estructuras de Control.....

2
3
4

Tipos de Datos en C++.. 15


Estructura Bsica de un programa en C++ 17
Conclusin.....

20

Bibliografa..

21

Introduccin
La presente tarea, contiene algunos conceptos de uso frecuente en
el mbito de la Programacin. Dichos conceptos nos ayudarn a
comprender de mejor manera este curso; ya que es necesario tengamos
la nocin y que desde ya nos familiaricemos con ellos, para que nos
resulte muy fcil el adquirir el conocimiento que se nos impartir en el
curso de Programacin.
El Alumno.

Estructuras de Control en C++


Las estructuras de control determinan la secuencia en la que se ejecutarn las
instrucciones de un programa.
Las estructuras de control se dividen en tres categoras en funcin del flujo de
ejecucin:

Estructura secuencial.
Estructura alternativa o condicional.
Estructura iterativa o repetitiva.

Estructura Secuencial
La estructura secuencial est formada por una secuencia de instrucciones que
se ejecutan en orden una a continuacin de la otra.
Cada una de las instrucciones estn separadas por el carcter punto y coma
(;). No obstante, en algunos casos nos interesar agrupar en un bloque una
serie de instrucciones, como veremos al explicar las estructuras de seleccin y
de iteracin. El bloque de sentencias se define por el carcter llave de apertura
({) para marcar el inicio del mismo, y el carcter llave de cierre (}) para
marcar el final.
Ejemplo:
{
instruccin 1;
instruccin 2;
instruccin 3;
.....
instruccin N;
}
Sin embargo, en caso de que el bloque de sentencias este constituido por una
nica sentencia no es obligatorio el uso de las llaves de apertura y cierre ({ }).

Estructura Condicional o Alternativa


Las estructuras condicionales controlan si una sentencia o bloque de sentencias
se ejecutan, en funcin del cumplimiento o no de una condicin o expresin
lgica.

C++ tiene dos estructuras de control para la seleccin, if y switch.


Instruccin IF
Esta instruccin hace que se ejecuten unas sentencias u otras dependiendo del
valor que toma una condicin.
La instruccin if puede ser simple o doble:
Alternativa simple:
if (condicion)
instruccin1;
if (condicion)
{
instruccin 1;
instruccin 2;
instruccin 3;
}
Alternativa doble.
if (condicion)
instruccin1;
else
instruccin2;
if (condicion)
{
Instruccin 1;
instruccin 2;
}
else
{
instruccin 3;
instruccin 4;
}

Ejemplo de estructura condicional en C++. Programa que lee un nmero


entero por teclado y muestra si es par o impar.
#include <iostream>
using namespace std;
int main(void)
{
int num;
cout <<"Introduzca numero:";
cin >> num;
if ((num%2)==0)
cout << "PAR" << endl;
else
cout << "IMPAR" << endl;
system("pause");
}
Las instrucciones if-else se pueden anidar obtenindose una estructura
condicional mltiple:
if(condicion1)
instruccin1;
else if(condicion2)
instruccin2;
else if(condicion3)
instruccin3;
else if(condicion4)
instruccion4;
else
instruccin5;
instruccin 6;
instruccin 7;
......
En este caso se evala la condicion1; si es cierta, se ejecuta la instruccin1 y
se contina por la instruccin 6 despus del bloque de if-else anidados. Si la
condicin1 es falsa, se evala la condicion2, y as sucesivamente.
En caso de no ser cierta ninguna de las condiciones, la sentencia que se
ejecuta es la del ltimo else, es decir, la instruccin 5.

Ejemplo de estructura condicional mltiple en C++. Programa que lee un


nmero entero que corresponde a una hora y muestra un mensaje segn la
hora que se haya ledo.

#include <iostream>
using namespace std;
int main(void)
{
int hora;
cout << "\nIntroduzca una hora (entre 0 y 24): ";
cin >> hora;
if ((hora >= 0) and (hora < 12))
cout << "\nBuenos dias\n";
else if ((hora >= 12) and (hora < 18))
cout << "\nBuenas tardes\n";
else if ((hora >= 18) and (hora < 24))
cout << "\nBuenas noches\n";
else
cout << "\nHora no vlida\n";
system("pause");
}
Otro ejemplo de estructura condicional mltiple en C++. Programa que lee la
calificacin numrica obtenida por un alumno en un examen y muestra la nota
equivalente en texto.
#include <iostream>
using namespace std;
int main(void)
{
unsigned int nota;
cout << "Introduzca una calificacion numerica entre 0 y 10:";
cin >> nota;
cout << "La calificacion del alumno es" << endl;
if (nota == 10)
{
cout << "Matricula de Honor" << endl;
}
else if (nota >= 9)
{
cout << "Sobresaliente" << endl;
}
else if (nota >= 7)
{

cout << "Notable" << endl;


}
else if (nota >= 5)
{
cout << "Aprobado" << endl;
}
else
{
cout << "Suspenso" << endl;
}
system("pause");
}

Instruccin switch
La sentencia switch selecciona una de entre mltiples alternativas.
La forma general de esta expresin es la siguiente:
switch (expresin)
{
case constante1:
instrucciones;
break;
case constante 2:
instrucciones;
break;

default:
instrucciones;
}
En una instruccin switch, expresin debe ser una expresin con un valor
entero, y constante1, constante2, ..., deben ser constantes enteras, constantes
de tipo carcter o una expresin constante de valor entero. Expresin tambin
puede ser de tipo char, ya que los caracteres individuales tienen valores
enteros
Dentro de un case puede aparecer una sola instruccin o un bloque de
instrucciones.
La instruccin switch evala la expresin entre parntesis y compara su valor
con las constantes de cada case. Se ejecutarn las instrucciones de aquel case
cuya constante coincida con el valor de la expresin, y contina hasta el final
del bloque o hasta una instruccin que transfiera el control fuera del bloque del
switch (una instruccin break, o return). Si no existe una constante igual al

valor de la expresin, entonces se ejecutan las sentencias que estn a


continuacin de default si existe (no es obligatorio que exista, y no tiene
porqu ponerse siempre al final).
Ejemplo de uso de la instruccin switch en C++. Programa que lee dos
nmeros y una operacin y realiza la operacin entre esos nmeros.

#include <iostream>
using namespace std;
int main(void)
{
int A,B, Resultado;
char operador;
cout << "Introduzca un numero:";
cin >> A;
cout << "Introduzca otro numero:";
cin >> B;
cout <<"Introduzca un operador (+,-,*,/):";
cin >> operador;
Resultado = 0;
switch (operador)
{
case '-' : Resultado = A - B;
break;
case '+' : Resultado = A + B;
break;
case '*' : Resultado = A * B;
break;
case '/' : Resultado = A / B; //suponemos B!=0
break;
default : cout << "Operador no valido"<< endl;
}
cout << "El resultado es: ";
cout << Resultado << endl;
system("pause");
}
Otro ejemplo de uso de switch en C++. Programa que determina si un carcter
ledo es o no una vocal. En ese caso como la sentencia a ejecutar por todas las
etiquetas case es la misma, esta sentencia se pone una nica vez al final:
#include <iostream>
using namespace std;
int main(void)
{

char car;
cout << "Introduzca un caracter: ";
cin >> car;
switch (car)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U': cout << car << " es una vocal" << endl;
break;
default : cout << car << " no es una vocal" << endl;
}
system("pause");
}

Estructuras Repetitivas.
C++ dispone de tres estructuras repetitivas:
while,
do-while
for.

Instruccin while.
while (condicion)
{
instruccin 1;
..............
instruccin N;
}
Ejecuta una instruccin o un bloque de instrucciones cero o ms veces,
dependiendo del valor de la condicin.

Se evala la condicin, y si es cierta, se ejecuta la instruccin o bloque de


instrucciones y se vuelve a evaluar la condicin; pero si la condicin es falsa,
se pasa a ejecutar la siguiente instruccin despus del while.
Ejemplo de instruccin while en C++. Programa que lee nmeros enteros hasta
que se lee un nmero negativo. Se muestra la suma de todos los nmeros
leidos excepto el nmero negativo.
/*Programa que lee nmeros hasta que se lee un negativo y muestra la
suma de los nmeros ledos */
#include <iostream>
using namespace std;
int main(void)
{
int suma, num;
suma = 0;
cout << "Introduzca un numero: ";
cin >> num;
while (num >= 0)
{
suma = suma + num;
cout << "Introduzca un numero: ";
cin >> num;
}
cout << endl << "La suma es: " << suma << endl;
system("pause");
}
Instruccin do .. while.
do
{
instruccin 1;
..............
instruccin N;
} while (condicion);
Ejecuta una instruccin o un bloque de instrucciones, una o ms veces,
dependiendo del valor de la condicin.
Se ejecuta la instruccin o bloque de instrucciones y a continuacin se evala
la condicin. Si la condicin es cierta, se vuelve a ejecutar la instruccin o
bloque de instrucciones, y si es falsa, pasa a ejecutarse la
siguiente instruccin despus del do-while.

Cuando se utiliza una instruccin do-while el bloque de instrucciones se ejecuta


al menos una vez, ya que la condicin se evala al final. En cambio, con una
instruccin while, puede suceder que el bloque de instrucciones no llegue a
ejecutarse nunca si la condicin inicialmente es falsa.
Ejemplo de instruccin do while en C++. Programa que lee un nmero entero.
El nmero debe estar comprendido entre 1 y 100.
/* lee un nmero entre 1 y 10 */
#include <iostream>
using namespace std;
int main(void)
{
int numero;
do
{
cout << "Introduzca un numero entre 1 y 100: ";
cin >> numero;
}
while (numero < 1 || numero > 100);
}

Instruccin for.
Un bucle for hace que una instruccin o bloque de instrucciones se repitan un
nmero determinado de veces mientras se cumpla la condicin.
for(inicializacin; condicion; incremento/decremento)
{
instruccin 1;
...........
instruccin N;
}
A continuacin de la palabra for y entre parntesis debe haber siempre tres
zonas separadas por punto y coma:
zona de inicializacin
zona de condicin
zona de incremento decremento.
En alguna ocasin puede no ser necesario escribir alguna de ellas. En ese caso
se pueden dejar en blanco, pero los punto y coma deben aparecer.
El funcionamiento de un bucle for el siguiente:

Se inicializa la variable o variables de control.

Se evala la condicin.
Si la condicin es cierta se ejecutan las instrucciones. Si es falsa, finaliza
la ejecucin del bucle y contina el programa en la siguiente instruccin
despus del for
Se actualiza la variable o variables de control (incremento/decremento)
Se pasa al punto 2).
Esta instruccin es especialmente indicada para bucles donde se conozca
el nmero de repeticiones que se van a hacer.
Como regla prctica podramos decir que las instrucciones while y do-while se
utilizan generalmente cuando no se conoce a priori el nmero de pasadas, y la
instruccin for se utiliza generalmente cuando s se conoce el nmero de
pasadas.
Ejemplo de instruccin for en C++. Programa que muestra los nmeros del 1
al 10.
/* muestra los nmeros de 1 a 10 */
#include <iostream>
using namespace std;
int main(void)
{
int n;
for (n = 1; n <= 10; n++)
{
cout << n << endl;
}
system("pause");
}
Ejemplo de instruccin for en C++. Programa que muestra los nmeros del 10
al 1:
/* muestra los nmeros de 10 a 1 */
#include <iostream>
using namespace std;
int main(void)
{
int n;
for (n = 10; n >=1; n--)
{
cout << n << endl;
}
system("pause");
}
Se ha de tener cuidado y al escribir el punto y coma (;) despus del parntesis
final del bucle for.

Por ejemplo el bucle:


#include <iostream>
using namespace std;
int main(void)
{
int i;
for (i = 1; i <= 100; i++);
{
cout << "Hola" << endl;
}
no muestra "Hola" 100 veces. En realidad se muestra una vez "Hola", ya que la
sentencia for es una sentencia vaca al terminar con un punto y coma (;).
La sentencia for en este caso hace que i empiece en 1 y acabe en 11 y tras
esas iteraciones, se ejecuta la sentencia cout.
BUCLES ANIDADOS.
Hablamos de bucles anidados cuando se incluyen instrucciones for, while o dowhile unas dentro de otras.
Ejemplo de bucles anidados en C++. Programa que muestra el primer nmero
perfecto mayor que 100. Un nmero es perfecto cuando la suma de sus
divisores excepto l mismo es igual al propio nmero. Por ejemplo 6 es
perfecto ya que sus divisores son 1, 2 ,3 y suman 6
#include <iostream>
using namespace std;
int main(void)
{
int numero, cont, suma;
bool encontrado;
encontrado = false;
numero = 101;
while (!encontrado)
{
suma = 1;
for (cont = 2; cont < numero; cont++)
{
if (numero % cont == 0)
{
suma = suma + cont;
}
}
if (suma == numero)
{

encontrado = true;
}
else
{
numero++;
}
}
cout << "El primero numero perfecto mayor que 100 = " << numero <<
endl;
system("pause");
}

TIPOS DE DATOS EN C++


Los tipos de datos en C++ se clasifican en primitivos y derivados.
Los tipos de datos primitivos son los que estn definidos dentro del
lenguaje.
Los tipos de datos derivados se forman a partir de los tipos primitivos.
En este tema veremos los tipos
estudiaremos los tipos derivados.

primitivos y

en

temas

siguientes

Los tipos de datos primitivos en C++ son: numricos enteros, numricos


reales, tipo lgico y tipo carcter ampliado.
Tipos de datos C++ numricos enteros
El tipo de dato numrico entero es un subconjunto finito de los nmeros
enteros del mundo real. Pueden ser positivos o negativos.
En C++ los tipos de datos numricos enteros son los siguientes:
Nmero de
Tipo de Dato
Descripcin
Rango
bytes tpico
short

Entero corto

int

Entero

long

Entero largo

char

Carcter

-32768 a 32767
-2147483648
a +2147483647
-2147483648
a +2147483647
-128 a 127

Con los tipos enteros pueden utilizarse los calificadores signed y unsigned.
Estos calificadores indican si el nmero tiene signo o no. Si se usan solos, sin
indicar el tipo de dato se asume int.
Por ejemplo, las siguientes declaraciones son equivalentes:
unsigned int x;
equivale a:
unsigned x;

Usando estos calificadores podemos tener los siguientes tipos enteros:


Nmero de
Tipo de Dato
Descripcin
Rango
bytes tpico
signed short

Entero corto

-32768 a 32767

unsigned
short

Entero corto sin


signo

0 a 65535

signed int

Entero

-2147483648 a +2147483647

unsigned int

Entero sin signo

0 a 4294967295

signed long

Entero largo

-2147483648 a +2147483647

unsigned
long

Entero largo sin


signo

0 a 4294967295

signed char

Carcter

-128 a 127

unsigned
char

Carcter sin signo

0 a 255

Podemos ver que los datos enteros de tipo signed son equivalentes a los
enteros sin utilizar el calificador:
signed int a;
es equivalente a escribir
int a;
Tipos de datos numricos reales
El tipo de dato numrico real es un subconjunto finito de los nmeros reales.
Pueden ser positivos o negativos.
En C++ los tipos de datos numricos reales son los siguientes:
Tipo de
Nmero de
Descripcin
Rango
Dato
bytes tpico
Real (Nmero en
Positivos: 3.4E-38 a 3.4E38
float
4
coma flotante)
Negativos: -3.4E-38 a -3.4E38
Real doble(Nmero
Positivos: 1.7E-308 a 1.7E308
double en coma flotante de
8
Negativos: -1.7E-308 a -1.7E308
doble precisin)
long
Real doble largo
10
Positivos: 3.4E-4932 a 1.1E4932
double
Negativos: -3.4E-4932 a
-1.1E4932

Tipo lgico
Los datos de este tipo slo pueden contener dos valores: true false
(verdadero falso).

Si se muestran como enteros, el valor true toma el valor 1 y false el valor 0.


Tipo de
Nmero de
Descripcin
Rango
Dato
bytes tpico
bool

Dato de tipo lgico

0, 1

Tipo carcter extendido


Este tipo se utiliza para representar caracteres UNICODE. Utiliza 2 bytes a
diferencia del tipo char que solo utiliza 1.
Tipo de
Nmero de
Descripcin
Rango
Dato
bytes tpico
wchar_t

Carcter Unicode

0 a 65535

Estructura Bsica de un Programa en C++


*Componente estructural bsico; Funciones:
Directivas de preprocesador
Declaraciones globales (variables globales, funciones,)
Funcin main()
{
Secuencia de declaraciones e instrucciones
}
funcin1 ()
{
Secuencia de declaraciones e instrucciones
}
...
Funcin ()
{
Secuencia de declaraciones e instrucciones
}

*Directivas del preprocesador


Los compiladores de C++ proporcionan bibliotecas de funciones.
Cada biblioteca de funciones tiene asociado un archivo de definicin que
se denomina cabecera.
Para utilizar algo de una biblioteca en un programa, hay que colocar
al principio del programa una directiva de pre-procesamiento seguida de
la cabecera de la biblioteca entre ngulos.
Instrucciones al compilador antes de que se compile el programa principal
Las directivas ms usuales son:
# include
# define
# include <iostream.h>
Indica al compilador que lea las directivas antes de compilar la funcin
principal
*La funcin main()
Una funcin C++ es un subprograma que devuelve un valor, un conjunto de
valores o realiza una tarea especfica. Todo programa C++ tiene una nica
funcin main() que es el punto inicial de entrada al programa. Si se intenta
declarar dos funciones main() dentro del programa se produce error.
Estructura de un programa C++
#include <iostream.h>
main()
{

...
}
Las sentencias escritas entre las llaves se denominan BLOQUE
#include <iostream.h>
int main()
{
entrada_datos();
proceso_datos();
return 0;
...
}
Llamadas a otras funciones.
*Tipos de datos bsicos en C++

El tipo de dato determina la naturaleza del valor que puede tomar


una variable.Un tipo de dato define un dominio de valores y las
operaciones que se pueden realizar con stos valores.
C++ dispone de unos cuantos tipos de datos predefinidos (simples) y
permite al programador crear otro tipo de datos.
Tipo de datos bsicos
int ( Nmeros enteros )
float ( Nmeros reales )
double ( Nmeros reales ms grandes que float )
bool ( Valores lgicos )
char ( Caracteres y cualquier cantidad de 8 bits )
void ( Nada. Sirve para indicar que una funcin no devuelve valores)
De los cuales escribimos anteriormente

Conclusin
Los conceptos que hemos investigado, nos dan una idea ms clara
sobre lo que tratar el curso de Programacin, si bien es cierto, en el
curso de Algoritmos vimos y practicamos estos conceptos. La presente
nos permite reforzar lo que por descuido o por falta de concentracin
hemos ido olvidando.
El Alumno

BIBLIOGRAFIA

Cohoon, James P. Davidson, Jack W. PROGRAMACION Y DISEO EN


C++, Madrid, Espaa. Ediciones Mc Graw Hill. Segunda Edicin
Paginas consultadas

http://gy94bfmv.blogspot.com/2012/10/estructura-basica-de-unprograma-en-c.html
http://ejercicioscpp.blogspot.com/2012/09/tipos-de-datos-en-c.html
http://ejercicioscpp.blogspot.com/2012/11/estructuras-de-control-enc.html

Вам также может понравиться