Vous êtes sur la page 1sur 29

UPN LENGUAJE C++

──────────────────────────────────────────────────────────

1 GENERALIDADES
1.1 HISTORIA: El C fue creado por Dennis Ritchie, de los laboratorios Bell, en 1972,
cuando trabaja junto con Ben Thompson, en el diseño del Sistema Operativo Unís.
Muchas de las ideas del C provienen de un lenguaje mucho más antiguo llamado BCPL
inventado por Martín Richard, la influencia del BCPL le llega indirectamente a través del
lenguaje B, escrito por Ben Thompson.
1.2 CARACTERISTICAS GENERALES
- Es un lenguaje de propósito general.
- Es un híbrido porque contiene características de programación estructurada y le ha
agregado características de programación orientada a objetos.
- Programación modular, se puede escribir programas independientes (módulos)
constituyendo librerías de programas para ser usados posteriormente.
- Es un lenguaje portátil, significa que los programas escritos pueden usarse en otros.
- Se le considera lenguaje de nivel medio, entre lenguaje ensamblador y de alto nivel,
pues permite el manejo de datos a nivel de bits, bytes y direcciones.
1.3 ESTRUCTURA DE UN PROGRAMA EN C:
// Forma, básica
#......... //Zona de Librerías
#.........
void main( )
{ int …….
float ….. //Variables
....
cout<<”Ingrese valor”;
cin>>x; //Zona de entrada
.......
p=x+y //Zona de proceso
.............
cout<<”El resultado es”<<p; //Zona de salida
.................
}

// Forma, avanzada
#......... //Zona de Librerías
#.........
func1 ( ) //Función
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

{ ......
......
}
func2 ( ) //Función
{ ......
......
}
void 1( ) //Procedimiento
{ .......
.......
}
………….
………….
void main( )
{ int …….
float …..
char ….. //Variables
....
funcion1( ) //Llamada a subprogramas
funcion2( )
void1( )
...................
....................
}

1.4 CARACTERÍSTICAS A NIVEL DE PROGRAMACIÓN:


- Los códigos se escriben en minúsculas.
- En cada fin de línea se pone punto y coma (;), excepto en las condiciones y en las
librerías.
- No se puede emplear como variables a los códigos del C++
- Las variables deben empezar con una letra
- No se pueden utilizar como variables a los números
- Los comentarios se indican de esta manera // para una sola línea; si se quiere un
comentario tipo párrafo será de la siguiente manera /* Al iniciar el comentario y
luego para finalizar el párrafo se termina con */
- Los programas se almacenan con un nombre corto.

1.5 FASES DEL DESARROLLO DE UN PROGRAMA:

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Definir el problema y diseñar el algoritmo: Un algoritmo se define como un conjunto


de reglas que van a resolver un problema en particular en un número finito de pasos. La
programación consiste en diseñar y escoger un algoritmo que pueda ser desarrollado en
un lenguaje de Programación.
Editar archivos fuente: Se define un conjunto de funciones, los cuales son la porción
de un todo (programa general). Luego se escribe los códigos para cada función. Se hace
en un editor de textos, respetando la sintaxis del lenguaje de programación elegido, a
esto se le llama archivos fuente
Compilar archivos fuente: La tarea del compilador es trasladar el código fuente a
código objeto. El dato de entrada para el compilador es el código fuente (Archivo
fuente) y la salida es el código objeto, el cual representa un paso intermedio entre el
código fuente y el código final (código ejecutable).
Enlazar archivos objeto: Después de la creación de varios archivos objeto mediante el
compilador, se involucran en un solo archivo.

1.6 TIPOS DE DATOS:


Cuando se escribe un programa, se trabaja con algún tipo de información que cae en uno
de los cuatro tipos básicos: enteros, reales, texto y punteros.
Datos de tipo Real
Pueden tomar valores positivos y negativos.
float es el tamaño básico de punto flotante para el sistema. double o long double es una unidad
mayor que permite almacenar números en punto flotante.

Tipo N° Bytes Ancho Bits Rango


────────────────────────────────────────────────────
Float 4 32 3.4E-38 a 3.4E+38
Doublé 8 64 1.7E-308 a 1.7E+308
long double 10 80 3.4E-4932 a 1.1E+4932

Datos de tipo Entero


Pueden tomar valores positivos o negativos.

Tipo N° Bytes Ancho Bits Rango


────────────────────────────────────────────────────
short int 2 16 -32768 a 32767
int 2 16 -32768 a 32767
long int 4 32 -2147483648 a 2147483647

Datos de tipo caracter


Este tipo define un entero con signo en el rango de -128 a 127. Dicho entero se almacena en
un solo byte. Las constantes de tipo caracter se encierran entre comillas simples. Ej.: "a"

Tipo N° Bytes Ancho Bits Rango


─────────────────────────────────────────────────────
Char 1 8 -128 a 127
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Datos sin signo (unsigned)


El C permite declarar ciertos tipos de datos (char,short int, int, long int) sin signo. Esto
significa que en lugar de tener números negativos, estos tipos solamente aceptarán valores no
negativos (mayores o iguales a cero). Las variables de estos tipos podrán por lo tanto
almacenar valores más grandes que las de tipo con signo.

Tipo N°Bytes Ancho Bits Rango


─────────────────────────────────────────────────────
unsigned char 1 8 0 a 255
unsigned short int 2 16 0 a 65535
unsigned int 2 16 0 a 65535
unsigned long int 4 32 0 a 4294967295

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

2 ESTRUCTURA SECUENCIAL

2.1 La Función cout<<: Su propósito es escribir datos en la pantalla. Su formato es simple


y flexible. Tiene una similitud con el código printf.
2.2 La Función cin>>: Su propósito es usada para el ingreso iterativo de datos. Tiene una
función similar al código scanf.
Cumple una función de asignación o almacenamiento en memoria de los datos.
Se puede utilizar cout<< o printf para escribir los datos y cin>> o scanf para el ingreso
de los datos (Almacenamiento en memoria)
En esta parte del curso se utilizará las funciones cout y cin que a su vez trabajan con la
librería #include<iostream.h>
2.3 Comentario de Programa // o /* */
// Se refiere al comentario que se realiza, puede poner cualquier comentario relacionado
con el programa. Este comentario solo es valido para una línea. Si quiere utilizar
comentario largo tiene que poner lo siguiente
/* Para iniciar el comentario y
Para finalizar el comentario */
2.4 Librerias #
Nos sirven para ingresar y reportar datos por pantalla. Mas adelante se podrán utilizar
más librerías de acuerdo a las necesidades que se vayan presentando.
2.5 void main ( )
Significa cabeza de Inicio de Programa Principal
{ }
Inicio del bloque del programa. Siempre cuando se va a utilizar bloques de programas
sub programas se hacen con la llave de apertura { y para finalizar el bloque se terminan
con la llave de cerrar }
2.6 char
Datos de tipo carácter. Para una cadena se utiliza una cadena de caracteres, por lo que
que la variable nom[20] puede recepcionar hasta 20 letras como máximo.
2.7 float
Significa que las variables son del tipo Real, La variable est permitirá ingresar valores
decimales o enteros
2.8 int
Datos de tipo entero, quiere decir que las variables pes y eda solo permitirán ingresar
datos enteros, mas no decimales.
2.9 clrscsr( )

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Limpia la pantalla. Quiere decir que va limpiando las anteriores ejecuciones que
permanecían en pantalla. Puede ser usado donde sea conveniente.
2.10 getch( )
Se usa para hacer una pausa a la ejecución del programa (Cuando ejecutamos o vemos
los resultados del programa, este se mantiene hasta que nosotros pulsemos una tecla
cualquiera).

EJEMPLO 01
1. Desarrollar un programa que permita realizar el Ingreso de Datos Personales y luego
reporta sus apellidos y su edad.
// Programa de Datos personales
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
char nom[20],ape[20],dire[30],sex;
float est;
int pes,eda;
cout<< " Ingrese sus Nombres :"; cin>> nom;
cout<< " Ingrese sus Apellidos :"; cin>> ape;
cout<< " Ingrese su Dirección :"; cin>> dire;
cout<< " Ingrese su Sexo :"; cin>> sex;
cout<< " Ingrese su Talla :"; cin>> est;
cout<< " Ingrese su Peso :"; cin>> pes;
cout<< " Ingrese su Edad :"; cin>> eda;
cout<< "\n Apellidos del Alumno : :"<<ape;
cout<< "\n La Edad del Alumno es : " <<eda<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

3 ESTRUCTURAS SELECTIVAS

3.1. OPERADORES EN C
3.11 OPERADORES ARITMETICOS:

Operador Significado
─────────────────────────────────────────────
+ suma
- resta
* multiplicación
/ división
% módulo
─────────────────────────────────────────────
El módulo devuelve el resto de una división entera (sólo se utiliza con enteros)

3.1.2 OPERADORES RELACIONALES:

Operador Significado
─────────────────────────────────────────────
> mayor que
>= mayor o igual que
< menor que
<= menor o igual que
== igual
!= distinto de
─────────────────────────────────────────────

3.1.3 OPERADORES LOGICOS:

Operador Significado
─────────────────────────────────────────────
&& y
|| o
! no
─────────────────────────────────────────────

EXPRESIONES SIMPLIFICADAS:
1). Acumuladores:
suma=suma+nota; ~ suma+=nota;

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

b=b-8; ~ b-=8;
c=c*d; ~ c*=d;

2). Contadores:
i=i+1; ~ i+=1; ~ i++;
a=a-1; ~ a-=1; ~ a--;

3.2. ESTRUCTURAS DE CONTROL DE FLUJO


3.2.1) PROCESOS DECISIVOS:

Decisión Simple:
Pseudocódigo C

Si (condición) ───;
entonces if (condición)
Inicio {
bloque;
bloque; }
fin_si ───;

Decisión Doble:
Pseudocódigo C
Si (condición) ───;
entonces if (condición)
Inicio {
bloque 1 bloque 1;
}
sino else
Inicio {
bloque 2 bloque 2;
}
fin_sino ───;

3.2.2) PROCESOS REPETITIVOS:

FOR
Pseudocódigo
Desde nom.var=valor inicial Hasta valor final
bloque
fin_desde
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

───;
for (inicialización;condición,actualización)
{
bloque;

}
───;

WHILE:

Pseudocódigo C

Repetir mientras(condición) ───;


Inicio while(condición);
bloque {
bloque;
fin_mientras }
───;

DO WHILE

Pseudocódigo C
Hacer ───;
Inicio do{
bloque bloque;

fin }while(condición);
Mientras que(condición) ───;

INSTRUCCIONES BREAK Y CONTINUE


BREAK:
 Permite salir de la estructura que lo contiene.
 Trabaja dentro de un for, while, do while, switch.
 Se usa generalmente despues de un if.

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Ejm.

a). ─── ;
─── ;
for (───, condición 1,───)
{ ───;
───;
if (condición 2) break; .....
──;
──;
}
─── ;
─── ;

CONTINUE:
 Permite retornar al inicio del proceso repetitivo.
 Trabaja solo con for, while, do while.
 Se usa generalmente despues de un if.
Ejm.
a). ─── ;
─── ; <............................
for (───, condición 1,───) :
{ ───; :
───; :
if (condición 2) continue; .:
──;
──;
}
─── ;
─── ;

3.2.3) PROCESOS SELECTIVOS:

Pseudocódigo
En caso <expresión> de
caso α : ───
caso ß : ───
caso Σ : ───
otro: ───
fin_caso

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

C
─── ;
─── ;
switch (llave)
{ case α : ─── ;
─── ;
break;
case ß : ─── ;
─── ;
break;
case £ : ─── ;
─── ;
break;
default: ─── ;
─── ;
break;
}
─── ;
─── ;

Ejemplo 02: Se pide ingresar un número y determinar si es positivo, negativo o cero.


#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int n;
cout<<" Ingrese el numero :";
cin>>n;
if (n==0)
{ cout<< "El Numero es cero"; }
else if (n < 0)
{ cout<< "El Numero es negativo"; }
else
{ cout<< "El Numero es positivo"; }
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Ejemplo 03: En una tienda de artefactos eléctricos, se sabe que el pago de un vendedor
es en función al monto de las ventas y al tipo de bonificación que recibe.calcular la
bonoficacion a recibir para un vendedor determinado.
Tipo de Bonificacion Bonificación
1 30%
2 25%
3 18%
4 14%

#include <iostream>
using namespace std;
int main()
{
float ven,bon,pago;
int tipobon;
cout<<" Ingrese el monto de venta realizada:";
cin>>ven;
cout<<" Ingrese el tipo de bonificacion:";
cin>>tipobon;
switch(tipobon)
{ case 1: bon=0.30*ven;
break;
case 2: bon=0.25*ven;
break;
case 3: bon=0.18*ven;
break;
case 4: bon=0.14*ven;
break;
default: bon=0; break;
}
pago=bon;
cout<< "Al trabajador se le pagara :"<<pago<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
void main( )
{ int bas=200,ven,pag; clrscr( );
cout<<”Tabla de Bonificaciones Mensuales”;
cout<<“ [1] Ventas >1000 y <=5000 ”;
cout<<“ [2] Ventas >= 5000 y <=10000 ”;
cout<<“ [3] Ventas >=10000 y <=20000 ”;
cout<<“ [4] Ventas >=20000 ”;
cout<<“ [5] Salir del Programa ”;
cout<<“ Ingrese el monto de venta realizada:”; cin>>ven;
switch(ven)
{ case 1: bon=350; pag = bon + bas; break;
case 2: bon=550; pag = bon + bas; break;
case 3: bon=800; pag = bon + bas; break;
case 4: bon=1500; pag = bon + bas; break;
case 5: exit(1);
}
cout<< “Al trabajador se le pagará :”<<pag; getch( );
}

Comentario de la utilización de las variables:


bas : Representa el salario básico.
ven : Representa las ventas.
bon : Representa la bonificación.
pag : Representa el pago final.

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Nótese que las estructuras if, if else y switch, empiezan con una llave abierta ({ ) para
iniciar los procesos y finaliza con una llave cerrada ( } ) y en la alternativa switch() case
se finaliza con un break para cada caso. Cabe resaltar que de acuerdo a los ejercicios
que se dan, uno puede escoger por la alternativa que estime conveniente como
desarrollar. Tenemos que tener en cuenta un aspecto muy importante en programación,
las estructuras nunca deben cruzarse, es decir si empiezo una estructura debo terminar
con ella. Pero dentro de una estructura pueden existir otras estructuras, todas
debidamente ordenadas, para que sean validas. A continuación se hará algunas
anotaciones que debemos de tener en cuenta para programar.

ESTRUCTURA VALIDA
if (Condicion)
{ .......
.......
}
else
{ if (Condicion)
{ .......
.......
}
else
{ .......
.......
}
}

ESTRUCTURA NO VALIDA
if (Condicion)
{ .......
.......
if (Condicion)
{ .......
.......
}
else
{ .......
.......
}
}
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

El algunas estructuras faltan llaves y en otras estructuras las llaves sobran o están
demás, por lo cual al momento de realizar la compilación o ejecución de los programas
se tomarán como errores.

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

EJERCICIOS DESARROLLADOS

A continuación se dejará una serie de programas desarrollados utilizando estructuras simple,


doble, múltiple y estructuras anidadas. Por lo tanto los programas por el momento no tendrán
consistencia.

1. Ingresar un número y verificar si es par o impar.


#include<conio.h>
#include<stdio.h>
#include<iostream.h>
void main( )
{ int num; clrscr( );
cout<<”Ingrese un número:”; cin>>num;
if (num % 2 = = 0)
{ cout<< “El número es par”; }
else
{ cout<< “El número es impar”; }
getch( );
}

Comentario de variables utilizadas:


num : Número a procesar

2. Crear un programa que permita calcular el precio de un boleto de Tren, teniendo en


cuenta la distancia recorrida (en kilómetros) y el numero de días que demora el viaje.
Sabiendo que el costo por Kilómetro recorrido es de S/.5.5 y además, que si la
distancia recorrida es superior a 1000 Km. Hay un descuento de 7% del precio del
boleto; y si el numero de días que dura el viaje es mayor a 5, hay un descuento de 5%
del precio del boleto

// Programita de Boletos
#include<conio.h>
#include<iostream.h>

void main()
{ clrscr(); int dr,nd; float mpb;
cout<<"Ingrese La Distancia Recorrida :"; cin>>dr;
cout<<"Ingrese El Número de Días :"; cin>>nd;
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

if(dr>1000)
{ mpb=(dr*5.5)*(0.93); }
else
{ mpb=dr*5.5; }
if(nd>5)
{ mpb=mpb*0.95; }
cout<<"El Precio del Boleto es:"<<mpb;
getch();
}

Comentario de variables utilizadas:


dr : Distancia recorrida
nd : Número de días
mpb : Precio del boleto

3. Crear un programa que permita calcular el monto a pagar en un Hospedaje, si se sabe


que el costo de alojamiento por día según el tipo de cuarto es el siguiente:
Tipo de Cuarto A B C D
Costo por Dia 50 67 80 150
Además, si el número de días de alojamiento es superior a 7, hay un descuento del
10% del costo de alojamiento en los cuartos del tipo A y C; hay un descuento del 8%
en los cuartos del tipo B y D.

#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<ctype.h>

void main()
{ clrscr();
int nd; char tc; float mp;
cout<<"Ingrese El Número de Dias :"; cin>>nd;
cout<<"Ingrese Tipo de Cuarto :"; cin>>tc;
switch(tc)
{ case 'A' : if(nd>7)
{ mp=(nd*50*0.90); }
else
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

{ mp=(nd*50); }
break;
case 'B' : if(nd>7)
{ mp=(nd*67*0.92); }
else
{ mp=(nd*67); }
break;
case 'C' : if(nd>7)
{ mp=(nd*80*0.90); }
else
{ mp=(nd*80); }
break;
case 'D' : if(nd>7)
{ mp=(nd*150*0.92); }
else
{ mp=(nd*150); }
break;
}
cout<<endl; cout<<"\n El Monto a Pagar por Hospedaje es:"<<mp;
getch();
}

Comentario de variables utilizadas:


nd : Número de días que se hospeda.
tc : Tipo de cuarto.
mp : Monto a pagar

Se pudo utilizar un nuevo código del Borlandc C++, toupper(getche()), el cual


significa convierte a mayúscula, en el programa se tendría que pone tc =
toupper(getche()), quiere decir el tipo cuarto que yo ingrese: a, A, b, c, C o cualquier
letra siempre lo convertirá a mayúscula. Esto se verá más adelante.

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

LABORATORIO Nº 02

TEORIA: Contesta las siguientes preguntas que se dejan a continuación.


1. Que entiende por Asignación, explique y poner un ejemplo.
2. Que entiende por Algoritmo y Programa, explique en forma detallada.
3. Que es un variable y explique que tipos de variables existen, poner ejemplos.
4. Cuantos Estructuras o Alternativas Selectivas existen.
5. Explique en forma resumida las Estructuras o Alternativas Selectivas.
6. Indique 5 características del C++
7. Cuales son archivos que se generan al almacenar y compilar un programa en C++,
explique cada uno de estos archivo.

PRACTICA: Desarrolle los siguientes programas utilizando Estructuras con Alternativa


Simple (if), Alternativa Doble (if endif) y Alternativa Múltiple (case ).
1. Se pide ingresar 3 notas (n1, n2 y n3), luego calcular su promedio, si estuviera aprobado
enviar un mensaje de felicitación, si estuviera jalado emitir un mensaje de llamada de
atención.
2. Ingrese un número y determinar si es múltiplo de 3 y 5 a la vez, si lo fuera multiplicarlo
por 10 y en otro caso dividirlo entre 10, luego reporte.
3. Ingrese inicialmente tres edades. Calcule y reporte cual de las tres edades es la mayor.
4. Ingrese para una persona su nombre, apellidos, sexo y sueldo, luego verifique si su
sueldo es menor a 500 no se le da aguinaldo, si es mayor a 500 y menor a 1000 su
aguinaldo es de 200 soles, si es mayor a 1000 y menor a 2000 su aguinaldo es de 400
soles, y si su sueldo es mayor a 2000 su aguinaldo será de 800 soles.
5. En una empresa de ventas de artículos, se tienen diferentes precios para sus ventas; un
cliente ingresa y desea comprar; si las compras sobrepasan de 1,000 soles te hacen un
descuento del 10% de precio del mismo, si sobrepasa los 5000 soles te hacen un
descuento del 20% de precio del mismo y si sobrepasa los 10000 soles te hacen un
descuento del 30% de precio del mismo. Reporte con cuanto dispuso el cliente para su
compra y cuanto lo descontaron.
6. Se pide ingresar un número y determinar si este número es par o impar y reportar un
mensaje adecuado.
7. Ingrese la hora actual (ejemplo 05:10:20), luego deberá reportar, en que tiempo esta
antes o pasado meridiano (puede ser 05:10:20am o puede ser 05:10:20pm)
8. Ingrese el tiempo en horas, minutos y segundos (hh:mm:ss), luego deberá reportar
después de transcurrido un segundo en hh:mm:ss
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Ejemplo: Si ingreso 05h:10m:20s, luego deberá reportar 05h:10m:21s, comprobar para


los diferentes casos.

5 ESTRUCTURAS REPETITIVAS

Las estructuras que repiten una secuencia de instrucciones, un número determinado de veces
se denominan bucles; y se denominan iteracción al hecho de repetir la ejecución de una
secuencia de acciones.
5.1 ESTRUCTURA FOR (Desde o Para)
Ejecuta las acciones del cuerpo del bucle un número especificado de veces y de modo
automático. Controla el número de iteracciones o pasos a través del cuerpo del bucle.
C++ Algoritmos
for (Vi; Vf; incremento) Desde (Vi hasta Vf) incremento
{ Acciones Acciones
Acciones Acciones
Acciones Acciones
....... ..............
} Fin_Desde

La estructura for comienza con un valor inicial y las acciones especificadas se ejecutan
hasta el valor final, teniendo en cuenta de que el incremento se indicará de acuerdo a las
necesidades del problema, siendo por lo general este incremento de 1. Cabe recordar
que dentro de las estructuras repetitivas se pueden emplear las otras estructuras
selectivas estudiadas anteriormente; siempre conservando la regla de no existir cruces
entre estructuras. Si empieza una estructura tiene que terminar con esta, pero dentro de
esta pueden existir otras estructuras internas.
A las estructuras repetitivas también se le conoce como bucles repetitivos; debido a que
forma como una especie de bucle o lazo en forma continua, hasta que se termine la
condición que se inicio. Los programas del BorlandC++ trabajan a nivel de memoria,
quiere decir que utilizan una variable para almacenar sus datos en forma momentánea,
para luego de terminar la ejecución estas son liberadas.
Recuerde que el incremento en esta estructura se realiza en forma automática, y realiza
sus procesos cumpliendo todos sus valores, del el inicio hasta el final.
Mientras la condición que se comprueba es verdad sigue ejecutando sus procesos, una
vez que cumplió su ciclo (ósea es falso) ya no ingresa al bucle repetitivo y salta hacia
delante.

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

Ejemplo: En el curso Lenguaje de Programación I, del programa de Profesiones


Técnicas, Informática y Sistemas, existen 28 alumnos de los cuales se tiene su promedio
de la Primera Unidad. El profesor desea averiguar cual es el promedio general de estos
alumnos.

//Programa de Promedios
#include<conio.h>
#include<iostream.h>
#include<ctype.h>
void main( )
{ clrscr();
int i,spr = 0;
float pro,pg;
for ( i = 0; i < 28; i ++)
{ cout<<“ Ingrese Promedio”<<i+1; cin>>pro;
spr = spr + pro;
}
pg = spr / 28;
cout<<“ El Promedio General del aula es”<<“: ”<<pg; getch ( );
}

Comentario de variables utilizadas:


i : Contador de los promedios de los alumnos.
spr : Es un acumulador, en el cual se acumulan los promedios de los alumnos.
pro : Viene a ser el promedio de cada alumno.
pg : Viene a ser el promedio general de los 28 alumnos.

5.2 ESTRUCTURA WHILE (Mientras)


Es aquella en la que el cuerpo del bucle se repite mientras se cumple una determinada
condición.
C++ Algoritmos
while (Condición) Mientras(Condición)
{ Acciones Acciones
Acciones Acciones
Acciones Acciones
....... ..............
Incremento Incremento
} Fin_Mientras

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

A continuación se pondrá el ejemplo anterior, que también puede ser trabajado con esta
estructura while.

Ejemplo: En el curso Lenguaje de Programación I, del PPT, Informática y Sistemas,


existen 28 alumnos de los cuales se tiene su promedio de la Primera Unidad. El profesor
desea averiguar cual es el promedio general de estos alumnos.
//Programa de Promedios
#include<conio.h>
#include<iostream.h>
void main( )
{ clrscr(); int i=1,spr = 0; float pro,pg;
while( i < 29)
{ cout<<“ Ingrese Promedio”<<i; cin>>pro;
spr = spr + pro;
i ++;
}
pg = spr / 28;
cout<<“ El Promedio General del aula es”<<“: ”<<pg; getch ( );
}

Comentario de variables utilizadas:


i : Contador de los promedios de los alumnos.
spr : Es un acumulador, en el se acumulan los promedios de los alumnos.
pro : Viene a ser el promedio de cada alumno.
pg : Viene a ser el promedio general de los 28 alumnos.
En conclusión son similares ambos ejercicios, con algunas diferencias, tales como
cuando el contador empieza con diferentes valores.

5.3 ESTRUCTURA DO WHILE (Repetir Hasta_que)


Se ejecuta hasta que se cumpla una condición determinada que se comprueba al final
del bucle.
C++ Algoritmos

do{ Repetir
Acciones Acciones
Acciones Acciones
....... ..............
Incremento Incremento
} while (Condición); Hasta_que (Condición)
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

A continuación se pondrá el ejemplo anterior, que también puede ser trabajado con
esta estructura do while.
Ejemplo: En el curso Lenguaje de Programación I, del PPT, Informática y Sistemas,
existen 28 alumnos de los cuales se tiene su promedio de la Primera Unidad. El profesor
desea averiguar cual es el promedio general de estos alumnos.

//Programa de Promedios
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
void main()
{ clrscr();
int i=1,spr = 0;
float pro,pg;
do { cout<<“ Ingrese Promedio”<<i; cin>>pro;
spr = spr + pro;
i ++;
}while (!(i > 28));
pg = spr / 28;
cout<<“ El Promedio General del aula es”<<“: ”<<pg;
getch ( );
}

Comentario de variables utilizadas:


i : Contador de los promedios de los alumnos.
spr : Es un acumulador, en el cual se acumulan los promedios de los alumnos.
pro : Viene a ser el promedio de cada alumno.
pg : Viene a ser el promedio general de los 28 alumnos.

De ahora en adelante los programas deberán de tener consistencia, es decir deber tener
restricciones para los valores que se piden en los ingresos de los mismos.
Cabe recordar que usted podrá utilizar cualquiera de las estructuras repetitivas que se
describieron anteriormente, quedando en utilizar el que mejor le parezca de acuerdo a
los ejercicios que se plantearán.

──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

PROGRAMAS DESARROLLADOS

1. Se pide que ingrese N números naturales, después deberá calcular y reportar:


- cuantos números son iguales a 0.
- cuantos números son positivos.
- cuantos números son negativos.

#include<conio.h>
#include<stdio.h>
#include<iostream.h>

void main( )
{ clrscr();
int n,i,num,cc=0,cn=0,cp=0;
do { cout<<“ Ingrese la Cantidad de Números:”;
cin>>n;
} while (!(n > 0));
for ( i = 0; i < n; i ++)
{ cout<<“ Ingrese Número”<<i+1<< “: ”;
cin>>num;
if (num = = 0)
{ cc ++;
if(num > 0)
{ cp ++; }
else
{ cn ++; }
}
}
cout<<“ \n La Cantidad de Números iguales a Cero es :”<<cc;
cout<<“ \n La Cantidad de Números Positivos es :”<<cp;
cout<<“ \n La Cantidad de Números Negativos es :”<<cn;
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

getch();
}

Comentario del Programa


i : Contador de números
cc : Contador de números iguales a cero
cp : Contador de números positivos o mayores a cero
cn : Contador de números negativos o menores a cero
n : Cantidad de números que se ingresaran o procesarán
num : Viene a ser el número que se ingresa
Hay que tener en cuenta que para reportar los resultados como por ejemplo para indicar
en el ejemplo anterior cuantos números son iguales a cero se puso de la siguiente
manera:
cout<<“ \n La Cantidad de Números iguales a Cero es :”<<cc;
Se ha adicionado \n para que salte una línea después que reporta. En vez de \n, se puede
utilizar también pero al final de todo <<endl, es decir asi:
cout<<“ La Cantidad de Números iguales a Cero es :”<<cc<<endl;
Al final ambas acciones tendrán el mismo efecto o resultado.

2. Se pide que ingrese 25 Notas de los alumnos de Lenguaje de Programación, luego


calcular y reportar cual es la nota mayor de todas y la nota menor

#include<conio.h>
#include<stdio.h>
#include<iostream.h>

void main( )
{ clrscr();
int i,num,may=0,men=21;
for ( i = 0; i < 25; i ++)
{ do { cout<<“ Ingrese la Nota del Alumno”<<“: ”<<i+1;
cin>>num;
} while (!(num > 0 && num <20));
if (num >may)
{ may = num; }
if (num < men)
{ men = num; }
}
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

cout<<“ \n El Número Mayor es :”<<may;


cout<<“ \n El Número Menor es :”<<men;
getch();
}

Comentario del Programa


i : Contador de números
num : Viene a ser el número que se ingresa
may : Números mayor inicializado en 0
men : Números menor inicializado en 21

Ejecución del Programa


El programa empieza con las Librerías; luego con el void main(), el cual nos indica el
inicio; posteriormente se limpia la pantalla con clrscr(), luego se declaran las variables
en este caso fueron enteros (int). Cuando empieza el lazo for ingreso las notas desde 0
hasta 24 (esto indica las posiciones en la memoria del computador) en total ingresarán
25 notas las cuales son contadas por la variable i, estas notas están consistenciadas,
quiere decir que solo ingresaran notas mayores o iguales a 0 y notas menores o iguales a
20, para esto se utilizo la estructura do while. Cuando i toma el valor de 0 quiere decir
que estoy ingresando la primera nota (ejemplo puede ser 12; recuerde i se encarga de
contar el número de notas que ingresan en este ejercicio). Luego la primera nota se
asigna a la variable num.
Cuando i avanza y toma el valor de 1 quiere decir que estoy ingresando la segunda nota
el cual se le asigna el valor de la nota (ejemplo puede ser nota 15) a la variable num y
así sucesivamente; esto quiere decir que tanto i como num van cambiando de valores
hasta el final. En la condición if (num>may) quiere decir que si el número (num) es
mayor que may (may tiene un valor inicial igual a 0) entonces el nuevo número mayor
es may (quien toma el valor de num). Es decir si el primer valor ingresado es 12 num
toma este valor. Luego compara y pregunta if (num>may ), si (12 > 0) y si cumple
may=num. Lo mismo sucede con el número menor; y luego se reporta tanto el número
mayor como el menor. De ahora en adelante se realizará comentarios de las variables
de los programas; la ejecución del programa explicará el docente en el Laboratorio

3. Se desea saber si un número ingresado al sistema es perfecto o no. Un número es


perfecto cuando la suma de sus divisores es idéntico a él.
#include<conio.h>
#include<iostream.h>
void main( )
{ clrscr( ); int i, num, suma;
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

do { cout<<“ Ingrese el Número”; cin>>num;


} while (!(num > 0));
for ( i = 1; i < (num-1); i ++)
{ if (num % i = = 0)
{ suma = suma i; }
}
if (suma = = num )
{ cout<<“ \n El Número es Perfecto:”; }
else
{ cout<<“ \n El Número no es Perfecto”;
getch();
}
Comentario del Programa
i : Contador que empieza en 1 y termina en uno menos que el número leído
num : Viene a ser el número que se ingresa para ser procesado.
suma : Variable que suma si cumple la condición que se da

4. Se desea procesar N números, que serán ingresados al sistema, luego calcular y


reportar lo siguiente:
- Cuantos números pares existen.
- Cuantos números impares existen
Se sabe que el programa finaliza cuando se ingresa un número 100 al sistema

#include<conio.h>
#include<stdio.h>
#include<iostream.h>

void main( )
{ clrscr( );
int num, cpa = 0,cim = 0;
cout<<“ Programita de Pares e Impares”;
cout<<endl;
/* Las 2 líneas anterior también se puede poner todo en una sola línea
cout<<“ Programita de Pares e Impares”<<endl; */
do {
do { cout<<“ Ingrese el Número”;
cin>>num;
} while (!(num > 0));
if (num % 2 = = 0)
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

{ cpa ++; }
else
{ cim ++; }
} while (! (num = = 100));
cout<<“ \n El Total de Números Pares es : ”<<cpa;
cout<<“ \n El Total de Números Impares es : ”<<cim;
getch();
}

Comentario del Programa


num : Viene a ser el número que se ingresa
cpa : Contador de números pares
cim : Contador de números impares
5.- Escriba un programa que lea el numero de alumnos de un curso, y para cada alumno
03 notas, luego presente el mayor promedio, sabiendo que dicho promedio se calcula
con las 2 notas mayores.

#include<iostream.h>
#include<conio.h>
#include<iostream.h>

void main( )
{ int ca, i, j, no, nm, sn, pn;
char cu[10]; clrscr( );
cout<<"\n Calculo de Promedios";
do{ cout<<"\n Ingrese Cantidad de Alumnos:"; cin>>ca;
} while(ca<1 || ca>10);
for (i = 1; i< = ca; i++)
{ nm = 21; sn = 0;
cout<<"\n Nombre del Curso:"; cin>>cu;
for(j = 1; j< 4; j++)
{ do{ cout<<"\n Nota "<<j<<": "; cin>>no;
if(no<nm)
{ nm=no;}
} while(no<0 || no>20);
sn=sn+no;
}
pn=(sn-nm)/2;
cout<<"\n Promedio "<<i<<": "<<pn;
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────

}
getch();
}

Comentario de las variables utilizadas en el Programa:


ca : Cantidad de Alumnos.
i : Contador de Alumnos (De preferencia en el for debe de empezar en 0).
j : Contador de Notas.
no : Nota del Alumno.
nm : Nota Mayor.
sn : Suma Nota.
pn : Promedio de Notas de un alumno.
cu : Nombre del Curso

──────────────────────────
ING. NEICER CAMPOS VASQUEZ

Vous aimerez peut-être aussi