Está en la página 1de 46

CBTIS 142

PROYECTO
E-LEARNING C++ Y C#

 ANDRADE MÉNDEZ CARMEN


 MORA VALENTE JUAN PABLO
 GONZÁLEZ CARREÓN ESTEBAN

PROFESOR: CARLOS ALBERTO JUÁREZ


MORENO

6.- “K”
Manual de C++
INDICE
1. Introducción
2. Librerías
3. Comentarios
4. Tipo de datos

4.1 Tipos de datos numéricos

4.2 Tipos de datos carácter

5. Declaración de variables y constantes

6. Operadores

6.1 Operador de asignación, incrementos y decrementos

6.2 Operadores aritméticos

6.3 Operadores relacionales

6.4 Operadores lógicos

7. Estructuras de control (Las estructuras de control nos permiten tomar decisiones en


base a multitud de criterios)

7.1 IF

7.1.1 Problemas IF

7.1.2 Anidación de IF

7.1.3 Problemas anidación de IF

7.2 Switch

7.2.1 Problemas de Switch

7.3 While

7.3.1 Problemas de While


7.4 Do While

7.4.1 Problemas de Do While

7.5 For

7.5.1 Problemas de For

7.5.2 Anidación de For

7.5.3 Problemas de anidación de For


1. INTRODUCCIÓN
Bienvenidos a este curso de C++, esperemos que estés igual de ansioso que nosotros por
empezar a saber lo básico de este lenguaje, y es que es unos de los lenguajes más populares y
usados dentro de la programación. Empecemos por saber que es C++.

C++ es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y le
agrega la capacidad de abstraer tipos como en Smalltalk.

C++ es un lenguaje de programación diseñado a mediados de los años 80 por Bjarne Stroustrup.
La intención de su creación fue el extender al exitoso lenguaje de programación C con
mecanismos que permitieran la manipulación de objetos. En ese sentido, desde el punto de vista
de los lenguajes orientados a objetos, C++ es un lenguaje híbrido. Posteriormente se añadieron
facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban
admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele
decir que C++ es un lenguaje de programación multiparadigma.

En la actualidad, C++ es un lenguaje versátil, potente y general. Su éxito entre los


programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de
desarrollo de aplicaciones. C++ mantiene las ventajas de C en cuanto a riqueza de operadores y
expresiones, flexibilidad, concisión y eficiencia. Además, ha eliminado algunas de las
dificultades y limitaciones del C original. La evolución de C++ ha continuado con la aparición
de Java, un lenguaje creado simplificando algunas cosas de C++ y añadiendo otras, que se
utiliza para realizar aplicaciones en Internet.

Las principales herramientas necesarias para escribir un programa en C++ son las siguientes:

 Paciencia
 Nociones sobre computación
 Un compilador de C++
 Un editor cualquiera de texto, o mejor un entorno de desarrollo (IDE)

Si estamos en Windows podemos usar:

 Visual C++
 Visual Studio
 Notepad++
 Dev C++
 Code::Blocks
 Eclipse

Entre otros

A lo largo de este curso podrás darte cuenta de lo sencillo que puede resultar la programación
en este lenguaje, pues veremos desde librerías a declarar, comentarios, tipo de datos,
declaración de variables y constantes, diversos operadores y las estructuras de control.

¡Por muy complicado que parezca la programación es bastante sencilla cuando en verdad se
desea aprender!
2. LIBRERÍAS
En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos incluir
en nuestro programa. Estos archivos contienen las especificaciones de diferentes
funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como
por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.

Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos


ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer
por teclado, debamos crear una función que lo haga, al poder contar con las librerías en C++,
podremos hacer uso de una gran variedad de funciones que nos facilitaran la vida de nuestros
códigos.

Veamos a continuación como se haría la declaración de unas cuantas librerías conocidas,


recuerda que se pueden declarar todas las librerías necesarias y siempre debe hacerse al
comienzo del código fuente

#include <iostream>

#include <string>

#include <math.h>

Ahora analizaremos su sintaxis

Una directiva de preprocesador es una línea cuyo primer carácter es un #.

El preprocesador analiza el fichero fuente antes de la fase de compilación real, y realiza las
sustituciones de macros y procesa las directivas del preprocesador. El preprocesador también
elimina los comentarios.

El preprocesador elimina la línea #include y, conceptualmente, la sustituye por el fichero


especificado.

iostream es utilizado para operaciones de entrada/salida. Su nombre es un acrónimo de


Input/Output Stream. Las funciones que vamos a ocupar son:

• cin: Flujo de entrada (que entra)

• cout: Flujo de salida (que sale)

Todos los objetos derivados de iostream hacen parte del espacio de nombres std.

using namespace std;


Lo único adicional, es la línea que dice using namespace std; esta línea nos ayuda a declarar un
espacio de nombre que evita tener que usarlo cada que accedemos a alguna función específica
de una librería. Teniendo este namespace declarado podemos llamar por ejemplo el comando
cout >>, que pertenece a la librería iostream, sin embargo sin este namespace sería std::cout >>,
imagina tener que hacer esto cada vez que uses algún comando o función de las librerías, sería
bastante tedioso.

Acerca del namespace std

Todas las librerías estándar de C++ contienen una declaración del espacio de nombre std, es
decir que todas las librerías que hacen parte del estándar de C++ colocan entidades dentro de
este espacio de nombre.

Por esta razón cuando declaramos el uso del espacio de nombre std por medio de "using
namespace std;", podemos evitar estar escribiendo std::cout o std::cin, etc. en nuestro código.

El espacio de nombre std como tal no es una librería sino simplemente un namespace, por esta
razón no reemplaza la declaración de las librerías del código, simplemente facilita la escritura
de éste al momento de usar las entidades de las librerías estándar

math:

Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de
funciones matemáticas.

Las funciones que vamos a ocupar son:

pow (numero base, potencia)

sqrt (numero)

string:
Permite el manejo de "strings"• (cadenas de texto). Muy útil para el fácil uso de las cadenas
de caracteres. Las funciones que vamos a ocupar son:

string mensaje;
3. COMENTARIOS
Un comentario es texto que el compilador omite pero que es útil para los programadores. Los
comentarios se usan normalmente para anotar código para su referencia futura. El compilador
los trata como si fueran espacios en blanco. Puede usar comentarios en las pruebas para
desactivar algunas líneas de código; sin embargo, para esto es mejor utilizar directivas de
preprocesador #if/#endif porque se puede incluir entre ellas código que contiene comentarios,
pero no se pueden anidar comentarios.

Los comentarios de C++ se escriben de cualquiera de las siguientes maneras:

Los caracteres /* (barra diagonal, asterisco), seguidos de cualquier secuencia de caracteres


(incluidas nuevas líneas), seguidos de los caracteres */.

Ejemplo:

/* Este programa realiza la suma de dos números bloque de comentarios.

Además, muestra un mensaje por pantalla */

Los caracteres // (dos barras diagonales), seguidos de cualquier secuencia de caracteres. Una
nueva línea que no va precedida inmediatamente de una barra diagonal inversa finaliza esta
forma de comentario. Por tanto, normalmente se denomina "comentario de una sola línea".

Ejemplo:

// Este programa realiza la suma de dos números y muestra un mensaje por pantalla
Línea de comentario

Los caracteres de comentario (/*, */ y //) no tienen ningún significado especial dentro de una
constante de caracteres, un literal de cadena o un comentario. Por tanto, los comentarios no se
pueden anidar.
Ejemplo de ambos casos:
4. TIPOS DE DATOS

4.1 Tipos de Datos Numéricos


El tipo de dato numérico entero es un conjunto finito de los números enteros del mundo
real. Pueden ser positivos o negativos.

Tipo de
Descripción Rango
Dato

short Entero corto -32768 a 32767

int Entero -2147483648 a +2147483647

long Entero largo -2147483648 a +2147483647

Real (Número en -2147483648907


float
coma flotante) a +2147483647907

Real doble(Número
-21474836489097
double en coma flotante de
a +21474836479097
doble precisión)
4.2 Tipos de Datos Carácter

Tipo de Dato Descripción Rango


char Carácter -128 a 127

CHAR

Es el tipo básico alfanumérico, es decir que puede contener un carácter, un dígito


numérico o un signo de puntuación. Esta creado principalmente en la creación de
“cadenas” (es un conjunto de caracteres, o valores de tipo "char", terminados con el
carácter nulo) que al unirse pueden llegar a formar una sola. Al igual que los otros tipos de
datos eso cuenta con un rango mínimo y máximo de caracteres permitidos.

Ejemplo de sintaxis:

char NombreVariable[Tamaño de caracteres] = “EJEMPLO

Ejemplo:

char nombre[5] = "JUAN";

Ejemplo forma de cadena:

char nombre[5];

nombre[0] = 'J';

nombre[1] = 'U';

nombre[2] = 'A';

nombre[3] = 'N';

nombre[4] = 0;

STRING
Nos permite trabajar de forma más cómoda y flexible. Entre las facilidades que nos causa
ocupar este tipo de dato es la comparación entre strings (palabras). Una herramienta que
ocuparemos más adelante dentro del curso en estructuras de control. Para su uso correcto
tendremos que declarar antes la librería #include <string> y hacer uso del using namespace
std; como se muestra en el ejemplo:

#include <string>

using namespace std;

string respuesta = “si”


5. DECLARACIÓN DE VARIABLES Y CONSTANTES

VARIABLES

Las variables son posiciones en memoria donde estarán guardados los diferentes valores
que le damos o que toman durante ejecución los datos que usamos y normalmente estarán
disponibles a lo largo de la ejecución de nuestro programa. Para asignar valores a una
variable en una gran variedad de lenguajes que incluye a C++ se usa el operador "="
seguido del valor que le daremos a la variable. Veamos un ejemplo completo con todos los
posibles usos que le damos a una variable.

#include <iostream>
using namespace std;
int main()
{
char x = 'a'; // Declaramos y asignamos en la misma línea
int num; //Declaramos el entero en una línea
num = 5; //Le asignamos un valor en otra línea
int num2 = 8; //Asignación y declaración al tiempo
float numero; //Un numero decimal
numero = 3.5; //Le asignamos un valor al decimal

float res = numero + num2; //Sumamos dos variables y las asignamos a res //3.5 + 8
= 11.5

res = res + num; //Al valor actual de res le sumamos el valor de num //11.5 + 5 =
16.5
res = res*2; //Duplicamos el valor de res 16.5*2 = 33
cout << res; //Mostramos el valor de res por pantalla
}
CONSTANTES

Los datos constantes, tienen un valor fijo durante toda la ejecución del programa, es decir,
este valor no cambia ni puede ser cambiado a lo largo de la ejecución de nuestro
programa. Para declarar una constante, se hace después de declarar las librerías y antes de
las funciones. En C++ se pueden definir constantes usando la palabra clave const, veamos
ahora cada una de estas formas en detalle.

Uso de const para declarar constantes en C++

La instrucción const nos permite declarar constantes de una manera más adecuada y
acorde. Las constantes declaradas con const poseen un tipo de dato asociado (como
debería ser siempre) y se declaran al interior de nuestro código como un tipo cualquiera.
Veamos un ejemplo:

Ejemplo de uso de const en C++ para declarar constantes

#include <iostream>

using namespace std;

int main()

const float PI = 3.1416; //Definimos una constante llamada PI

cout << "Mostrando el valor de PI: " << PI;

}
6. OPERADORES

6.1 OPERADOR DE ASIGNACIÓN, INCREMENTOS


Y DECREMENTOS
Los Operadores de Asignación, como su nombre lo indica, se encargan de asignarle a una
variable el resultado de una expresión matemática o el valor de otra variable.

Se utilizan en forma de expresiones de asignación en los que se asigna en el valor de una


expresión a un identificador. El operador de asignación más utilizado es “=” y su formato
es:

identificador = expresión;

Donde el identificador representa por lo general una variable o una constante.

El operador incremento (++) como el operador decremento (--) actúan siempre


sobre un solo operando, normalmente una variable. Sirven para incrementar o
decrementar en una unidad el valor de dicho operando.

Ejemplo 1: Declaradas las variables:

int r = 8, s = 3;

se pueden escribir las instrucciones de expresión:

r++;
s--;
Dichas instrucciones son equivalentes a:

r = r + 1;
s = s - 1;

Tras su ejecución, el aspecto de la memoria será:


6.2 OPERADORES ARITMÉTICOS

Los operadores aritméticos se usan para realizar cálculos y operaciones con números
reales y punteros. Básicamente permiten hacer cualquier operación aritmética que se
necesite. A continuación te los presentamos:

Operador Acción Ejemplo Resultado


- Resta X=5-3 X vale 2

+ Suma X=5+3 X vale 8

* Multiplicación X=2*3 X vale 6

/ División X=6/3 X vale 2

% Módulo X=5%2 X vale 1

-- Decremento X = 1; X-- X vale 0

++ Incremento X = 1; X++ X vale 2


6.3 Operadores relacionales

Se llaman operadores relacionales o de comparación a aquellos que permiten comparar dos


valores evaluando si se relacionan cumpliendo el ser menor uno que otro, mayor uno que otro,
igual uno que otro, etc.

Operador Significado

Operador < Menor que

Operador <= Menor o igual que

Operador > Mayor que

Operador >= Mayor o igual que

Operador == Igual a

Distinto de ó no igual
Operador !=
que

Es importante tener en cuenta que para comparar si una variable A es igual a otra debemos
usar A == B en lugar de A = B. El doble signo igual se usa en comparaciones mientras que el
signo igual sencillo se usa en asignaciones.

Para determinar si una variable A tiene distinto contenido que una variable B debemos usar A
!= B. Suponiendo que la variable A tiene un valor A = 5 y la variable B un valor B = 7 podríamos
plantear las siguientes expresiones:
Expresión

A == B

A != B

A>B

A >= B

A<B

A <= B
6.4 OPERADORES LÓGICOS

Los operadores lógicos producen un resultado booleano, y sus operando son también
valores lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso
según su valor sea cero o distinto de cero). Por el contrario, las operaciones entre bits
producen valores arbitrarios. Los operadores lógicos son tres, dos de ellos son binarios y el
último (negación) es unario:

Operador Acción Ejemplo Resultado


Si ambos son verdaderos se
&& AND Lógico A && B
obtiene verdadero(true)

Verdadero si alguno es
|| OR Lógico A || B
verdadero

! Negación Lógica !A Negación de a

Devuelve un valor lógico true si ambos operando son ciertos. Si el resultado es false, el
proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la
expresión.
7. Estructuras de Control

7.1 IF
Un condicional if-else es una estructura que nos posibilita definir las acciones que se
deben llevar a cabo si se cumple cierta condición y también determinar las acciones que se
deben ejecutar en caso de que no se cumpla.

Sintaxis del Condicional If-Else en C++:

El else, indica la acción o conjunto de acciones a llevar a cabo, en caso de que la condición
del if no se cumpla. Cabe resaltar que el else siempre se pone inmediatamente después del
if, en caso de ser necesario, el else es incapaz de funcionar por sí solo, siempre debe ir
acompañado por un if. Veamos entonces como es la sintaxis de este:

if(condición a evaluar) //Por ejemplo 50 <= 10

....

....

Bloque de Instrucciones si se cumple la condición....

....

....

else

....

....

Bloque de Instrucciones si NO se cumple la condición....

....

....
}

Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.
Posteriormente veremos un ejemplo con valores reales.

Línea 1:

En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para
que se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos
da la pauta para que el algoritmo determine que bloque de instrucciones ejecutar.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición
dada. Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará
dentro de nuestro condicional la primera línea inmediatamente posterior a la declaración
del condicional, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro
condicional, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso
de cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias incluso,
como veremos más adelante dentro de estas podría haber uno o más condicionales en su
interior, así que podrías tener todo un condicional dentro de un condicional dentro de otro
condicional... y así sucesivamente, éstos son llamados anidados y los veremos más
adelante.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente
ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada
la ejecución de este para continuar ejecutando el resto del programa, cabe notar que esta
línea dará paso a la ejecución del bloque de instrucciones del else, en caso de que la
condición dada no se haya cumplido.

Línea 9 a 16

Estas líneas contienen la estructura else, que es la que indica que existe un bloque de
instrucciones que se debe ejecutar en caso de que la condición dada no se cumpla. Este
bloque al igual que el del condicional if, se abre y se cierra con llaves, recuerda que estas
pueden ser opcionales, sin embargo siempre recomiendo usarlas como una buena práctica
de programación.
7.1.1 Problemas de IF
Problema 1: programa que al ingresar una edad, te diga si la persona es mayor o menor de
edad

Problema 2: que el usuario ingrese dos números y el programa me diga cuál es mayor.

Problema 3: realizar un programa que saque el perímetro y el área de un cuadrado,


comprobando primero que la figura sea un cuadrado.

Problema 4: que pida un número y diga si es par o impar.


7.1.2 Anidación de IF
 Las sentencias if implementan decisiones que implican una o dos alternativas.
 Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa
es a su vez una sentencia if.
 Una sentencia if anidada se puede utilizar para implementar decisiones con varias
alternativas o multi-alternativas

Sintaxis:

if (condición1)

sentencia1

else if (condición2)

sentencia2

• else if(condición)

sentencia n

else sentencia e

Si tenemos el siguiente fragmento de código:

if (condición 1)

if (condición 2)

estatuto;

else // este else pertenece al if de la condición 2, pues se

// se asocia al if más cercano estatuto;


7.1.3 Problemas de anidación de IF

Problema 1: programa que lee 3 números enteros diferentes y los despliega de mayor a
menor.

Problema 2: que pida 3 números y los muestre en pantalla de mayor a menor en líneas
distintas. En caso de haber números iguales se ponen en la misma línea.

Problema 3: que pida tres números y detecte si se han introducido en orden creciente.

Problema 4: que lea una hora en hora:minutos:segundos y diga la hora que es un segundo
después.
7.2 Switch
Los condicionales Switch, son una estructura de control condicional, que permite definir
múltiples casos que puede llegar a cumplir una variable cualquiera, y qué acción tomar en
cualquiera de estas situaciones, incluso es posible determinar qué acción llevar a cabo en
caso de no cumplir ninguna de las condiciones dadas.

La sintaxis de un condicional Switch es bastante distinta a la de un condicional típico, sin


embargo es bastante intuitiva y fácil de comprender.

switch(opción) //donde opción es la variable a comparar

case valor1: //Bloque de instrucciones 1;

break;

case valor2: //Bloque de instrucciones 2;

break;

case valor3: //Bloque de instrucciones 3;

break;

//Nótese que valor 1 2 y 3 son los valores que puede tomar la opción

//la instrucción break es necesaria, para no ejecutar todos los casos.

default: //Bloque de instrucciones por defecto;

//default, es el bloque que se ejecuta en caso de que no se dé ningún caso

Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.

Línea 1:

Aquí, tenemos la declaración del condicional switch, estamos diciendo que lo que viene a
continuación es esto, entre los paréntesis, el switch recibe la variable que vamos a usar
para comparar en cada uno de los casos.

Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como hemos visto en secciones
anteriores, indica que allí comienzan los bloques de instrucciones que se ejecutarán para
cada caso.

Línea 3:

En esta línea tenemos una parte vital del condicional switch, aquí tenemos definido un
caso posible que puede cumplir nuestra variable, la sintaxis es simple, usamos la
instrucción "case" para indicar que allí comienza un caso, luego indicamos el valor que
puede tomar la variable, puede ser un número, una cadena de caracteres o lo que
necesitemos, de esto se siguen dos puntos ":" y después de estos ponemos la o las
instrucciones a ejecutar para este caso, como ejemplo, podríamos tener algo como esto :
case "Hola": cout << "Usted ha escrito Hola";.

Línea 4:

Esta línea contiene la instrucción break, es una instrucción simple, pero fundamental al
interior del condicional Switch, esta instrucción indica que hasta allí va el bloque de
instrucciones del caso inmediatamente anterior a este, de este modo evitamos que el
algoritmo ejecute los demás casos, a modo de ejercicio, podrías intentar ejecutar el código
del ejemplo que veremos más adelante y quitar las instrucciones break, con esto podrás
comprobar que si el usuario ingresa por ejemplo un 1, se ejecutarán todos los casos, es por
esto que el break es fundamental.

Línea 5 a 8

Estas líneas contienen una repetición de las instrucciones de las líneas 3 y 4,


evidentemente cada una contiene un caso distinto, ten en cuenta que se pueden definir
todos los casos que sean necesarios al interior del switch.

Líneas 9, 10 y 12

Estas líneas como deberías saber ya, contienen diferentes comentarios aclarativos sobre el
código.

Línea 11

Esta línea cambia un poco con respecto a las anteriores, sin embargo conserva la misma
esencia, en vez de poner el comando "case", usamos el comando "default", y luego los 2
puntos ":", notemos que no se pone ningún valor a evaluar, pues esta es la acción que se
ejecuta en caso de que no lleguemos a entrar en ninguno de los casos.

Línea 13:
En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya
sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada la
ejecución de este para continuar ejecutando el resto del programa. (Aparte)
Efectivamente, los condicionales switch de hecho todos los condicionales en sí, son
extremadamente útiles pues permiten definirle a nuestro software múltiples vías de ejecución
contemplando así todas las posibilidades durante la ejecución. Me gustaría hacer una leve
aclaración, el condicional switch encuentra su utilidad al momento de tener más de una
posibilidad de valores para una variable cualquiera, evidentemente si nuestra variable solo
puede adquirir un valor útil para nosotros, nuestra alternativa inmediata debería ser un if o un if-
else, no un switch que resulta un poco más engorroso de escribir, sin embargo cuando
tenemos varias posibilidades es mejor un switch que tener condicionales anidados o un
condicional después de otro.
7.2.1 Problemas de Switch
Problema 1: Menú de opciones

El usuario nos ingresaba un número correspondiente a una opción cualquiera y de acuerdo a


esto mostramos un mensaje y en caso de ingresar una opción incorrecta, mostramos un
mensaje de error.

Problema 2: Sistema conversor de monedas, medidas y temperaturas. Mostrar un menú y en


éste las 3 opciones de conversión.

Problema 3: Programa en donde al meter un número me indique que mes es, esto incluyendo
si estamos en año bisiesto que te diga que febrero tiene 28 o 29 días.

Problema 4: Que pida una letra y detecte si es una vocal.


7.3 While
Un ciclo while tiene una condición del ciclo, una expresión lógica que controla la secuencia de
repetición.

La posición de esta condición del ciclo es delante del cuerpo del ciclo, de modo que cuando se ejecuta
el mismo, se evalúa la condición antes de que se ejecute el cuerpo del ciclo. A diferencia del ciclo do
while que lo realiza al menos una vez

Estructura:

While(condición); si se cumple, realizara las instrucciones dentro del ciclo.

instrucciones

A continuación, te mostramos el siguiente ejemplo:

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

main()

float a;

int con=0,b,c,d,e,f,g,h,i,r;

b=0;

c=0;

d=0;

e=0;

f=0;

g=0;

h=0;
i=0;

cout<<"programa que me diga en qué etapa de la vida se encuentra una persona\n\n";

while (con<=1){

cout<<"dame tu edad:";

cin>>a;

b=b+1;

if (a>=0 && a<=5)

{cout<<"bebé \n";

c=c+1;}

else{

if (a>=6 && a<=12)

{cout<<"niño \n";

d=d+1;}

else {

if (a>=13 && a<=18)

{cout<<"adolescente \n";

e=e+1;}

else {

if (a>=19 && a<=25)


{cout<<"joven \n";

f=f+1;}

else {

if (a>=26 && a<=60)

{cout<<"adulto \n";

g=g+1;}

else

{cout<<"adulto mayor \n";

h=h+1;}

cout<<"\n\n¿quieres otro proceso? \n 1.-si \n 2.-no \n";

cin>>r;

if(r==1)

con=1;

else

con=2;

cout<<"\n\n número total de personas:";

cout<<b;

cout<<"\n número total de bebes:";


cout<<c;

cout<<"\n número total de niños:";

cout<<d;

cout<<"\n número total de adolescentes:";

cout<<e;

cout<<"\n número total de jóvenes:";

cout<<f;

cout<<"\n número total de adultos:";

cout<<g;

cout<<"\n número total de adultos mayores:";

cout<<h;

getch();

}
7.3.1 Problemas de While
Problema 1: programa que me diga en qué etapa de la vida se encuentra una persona. Si es bebé,
niño, adolescente, joven, adulto o adulto mayor.

Problema 2: realizar un programa que determina cuanto pagara de impuesto un auto de acuerdo a su
año y precio, el número de veces que la persona lo requiera, y al final me diga el número total de autos
encuestados y cuáles de ellos pagaran las cuotas de acuerdo a sus años de fabricación. Condiciones
de los años de los autos. 1990 “libre de tenencia”, si es de 1990 y menor o igual al año 2000 “5 % de
impuesto”, si es mayor al 2000 y menor o igual a 2005 “8 % de impuesto” y si es mayor al 2005 pagara
el “15% de impuesto. Y mostrar cuanto terminaran pagando las personas. Al finalizar mostrar cuantos
autos fueron tomados en cuenta y dentro de que rango entraron.

Problema 3: realizar un programa que obtenga el cuadrado de cada cifra que se ingrese, el programa
dejara de funcionar cuando pida una cifra mayor a 100.

Problema 4: pedir el promedio a 15 alumnos, si estos obtuvieron más de 5 contabilizarlos como


aprobados de lo contrario, contabilizarlos como reprobados, obtener promedio e imprimir el número de
aprobados y reprobados.
7.4 Do While
Los ciclos do-while son una estructura de control cíclica, los cuales nos permiten ejecutar
una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e
incluso a veces sin siquiera conocer cuándo se va a dar el valor final, hasta aquí son
similares a los ciclos while, sin embargo el ciclo do-while nos permite añadir cierta
ventaja adicional y esta consiste que nos da la posibilidad de ejecutar primero el bloque de
instrucciones antes de evaluar la condición necesaria, de este modo los ciclos do-while,
son más efectivos para algunas situaciones específicas. En resumen un ciclo do-while, es
una estructura de control cíclica que permite ejecutar de manera repetitiva un bloque de
instrucciones sin evaluar de forma inmediata una condición específica, sino evaluándola
justo después de ejecutar por primera vez el bloque

La sintaxis de un ciclo do-while es un tanto más larga que la del ciclo while en C++, sin
embargo no se hace más complicado.

do

....

....

Bloque de Instrucciones....

....

....

while(condición de finalización); //por ejemplo numero != 23

Vamos entonces a ver línea por línea el anterior código para comprender todo y quedar
claros.

Línea 1:

Esta línea es por decirlo así, la parte novedosa del ciclo do-while, esta expresión no evalúa
ninguna condición ni nada, simplemente da paso directo al bloque de instrucción y luego
permite la evaluación de la condición.
Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como sabemos indica que allí
comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro".
Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará dentro
de nuestro ciclo la primera línea inmediatamente posterior a la instrucción do, de modo
que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las
llaves. En lo personal, es preferible poner siempre las llaves sin importar cuantas líneas se
vayan a ejecutar, es una buena práctica de programación y te puede evitar dolores de
cabeza

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de
manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de
líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o
más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente
ya debemos saber esta nos indica que allí termina el bloque de instrucciones que se
ejecutarán de manera cíclica y se dará por terminada la ejecución de este para continuar
ejecutando el resto del algoritmo.

Línea 9:

La línea 9 en el ciclo do-while, tiene la misma importancia y función que l alinea 1 en la


sección del ciclo while, cabe resaltar que simplemente evalúa la condición y define si se
cumple o no para seguir con la ejecución del ciclo o con la del resto del algoritmo, de este
modo podemos ver que el ciclo while y el do-while son muy similares, con la pequeña
diferencia en que en uno se evalúa la condición desde el principio y en la otra al final de
cada ciclo. (aparte)
7.4.1 Problemas de Do While
Problema 1: Pedir números por pantalla hasta que alguno sea mayor a 100

Queremos hacer que nuestro programa le pida a un usuario una serie de números
cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a
100, una vez más es un ejemplo sencillo con el que nos aseguraremos de haber
comprendido bien todos los conceptos anteriores.

Para solucionar esto, debemos tener clara cuál va a ser la condición que se debe cumplir
para que el ciclo este pidiendo el numero contantemente, el ciclo se va a detener solo
cuando el numero ingresado sea mayor que 100, así que la condición para que se siga
ejecutando es que el número sea menor a 100, ¿Comprender la lógica?, es simple si para
que se detenga el numero debe ser mayor a 100, entonces para seguirse ejecutando el
numero debe ser menor o igual a 100.

Problema 2: suma de números impares mientras sean distintos a cero.

Problema 3: mostrar los múltiplos de 3 a partir del número 15 hasta el 30.

Problema 4: mostrar los múltiplos de 3 y 5 simultáneamente a partir de 15 hasta el 45.


7.5 For
Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o
simplemente estructuras cíclicas, estos ciclos, como su nombre lo sugiere, nos permiten
ejecutar una o varias líneas de código de forma iterativa, conociendo un valor especifico
inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada
"giro" o iteración del ciclo.

La sintaxis de un ciclo for es simple en C++, con tan solo tener bien claros los 3
componentes del ciclo for (inicio, final y tamaño de paso) tenemos prácticamente todo
hecho

for(int i = valor inicial; i <= valor final; i = i + paso)

....

....

Bloque de Instrucciones....

....

....

Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.

Línea 1:

En esta línea está prácticamente todo lo esencial de un ciclo for. La sintaxis es simple,
tenemos una variable de control llamada i que es tipo entero (int), cabe notar que la
variable se puede llamar como nosotros lo deseemos y puede ser del tipo de queramos
también, sin embargo en la mayoría de los casos se usa la "i" como nombre y el entero
como tipo, pero somos libres de modificar esto a nuestro gusto. Esta variable "i" se le
asigna un valor inicial que puede ser cualquier número correspondiente al tipo de dato
asignado. Posteriormente lo que haremos será especificar hasta donde irá nuestro ciclo por
medio del valor final, ten en cuenta que cada uno de estos componentes es separado por un
punto y coma ";", también es importante saber que la condición final puede ser cualquier
cosa, mayor, menor, mayor o igual, menor o igual, sin embargo no tiene sentido que la
condición sea por ejemplo un igual, pues nuestra variable de control siempre va a cambiar
entre valores, menores o mayores que el valor final deseado, si fuera un igual no
tendríamos un error de sintaxis, pero nuestro for básicamente no haría nada de nada.
Finalmente el último componente de esta primera línea es el tamaño del paso, este
componente se especifica aumentando en la cantidad deseada la variable de control.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el bloque de instrucciones que se ejecutaran cada vez que el ciclo de un
"giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se
ejecutara dentro de nuestro ciclo la primera línea inmediatamente posterior a la
declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas dentro de
nuestro ciclo, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de
manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de
líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o
más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente
ya sabrás esta nos indica que allí termina el bloque del ciclo for y se dará por terminada la
ejecución de este para continuar ejecutando el resto del algoritmo.
7.5.1 Problemas de For
Problema 1: Mostrar en pantalla los números pares

Deseamos sacar los números pares entre el número 50 y el 100, es un ejemplo sencillo con
el que nos aseguraremos de haber comprendido bien lo anterior:

Problema 2: Cuenta regresiva en un ciclo for

Ahora veremos otro ejemplo sencillo en cual veremos que el ciclo for también puede iterar
disminuyendo el valor del contador, para comprender esto, lo que haremos será imprimir
por pantalla una cuenta regresiva desde el número diez hasta el cero.

Problema 3: Contador con un ciclo for

Para este ejemplo haremos algo un poco más complejo. El ejemplo consiste en contar al
interior de un ciclo for, cuántos números entre el 0 y el 10.000 son múltiplos del 13. Para
ello haremos uso del operador % (modulo) que obtiene el residuo de una división y
también usaremos un pequeño condicional para verificar que el modulo sea cero al dividir
por 13.

Este ciclo for nos permitirá saber que existen 770 múltiplos del 13 en los números del 1 al
10000.

Problema 4: Mostrar los números del 1 hasta el número ingresado.


7.5.2 Anidación de For

Como recordaras la estructura de control for es un método para ejecutar un bloque de


sentencias un número fijo de veces. En este caso el for anidado nos permitirá realizar
varios for (n números de for) dentro de uno.

Estructura:

for(inicializacion;condicion;incremento o decremento); Primer ciclo.

for(inicializacion;condicion;incremento o decremento); for dentro de for

Para explicar de manera más detallada su funcionamiento veamos el siguiente ejemplo:

#include <stdio.h>

#include <conio.h>

#include <iostream>

using namespace std;

main()

int a,b,c,x;

cout<<"PROGRAMA QUE SIMULE UN RELOJ ELECTRONICO\n";

for(c=00;c<=23;c++){

for(b=00;b<=59;b++){

for(a=00;a<=59;a++){

cout<<c<<":"<<b<<":"<<a<<"\n";
for(x=0;x<=999999999;x++){

getch();

}
7.5.3 Problemas de anidación de For

Problema 1: Programa que simule un reloj electrónico

Problema 2: Realizar un programa que simule los valores que tienen las 28 fichas de
dominó. Ejemplo 0-1, 0-2, 0-3…. Hasta el 6-6.

Problema 3: Realizar un programa que simule las tablas de multiplicar del 1 al 10


utilizando el ciclo for.

Problema 4: Realizar un programa que represente los 365 días de un año del año. Toma
en cuenta que un día tiene 24 horas.
Conclusión

En este curso hemos aprendido a programar:

o Sentencias para capturar la entrada de datos desde el teclado así como para mostrar
datos en la pantalla.
o Operadores aritméticos, relacionales y lógicos.
o Sentencias de asignación.
o Estructuras condicionales simples y anidadas.
o Estructuras cíclicas simples y anidadas.

Y con estos elementos esperamos que te sientas listo y capaz para desarrollar programas
bajo las reglas de escritura de C++, recuerda que si tienes alguna pregunta o sugerencia
nos puedes contactar mediante las siguientes formas:

Por medio de nuestra página de internet:

https://cursobasicoc12.wixsite.com/cursoc/contacto

A nuestro correo:

CursobasicoC12@gmail.com

Mediante nuestros números telefónicos:

272 723 6982

272 126 65 11

272 128 75 42

Gracias por tomarte el tiempo y elegir ver nuestro curso de C++.

También podría gustarte