Академический Документы
Профессиональный Документы
Культура Документы
──────────────────────────────────────────────────────────
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( )
...................
....................
}
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────
2 ESTRUCTURA SECUENCIAL
──────────────────────────
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)
Operador Significado
─────────────────────────────────────────────
> mayor que
>= mayor o igual que
< menor que
<= menor o igual que
== igual
!= distinto de
─────────────────────────────────────────────
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--;
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 ───;
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
DO WHILE
Pseudocódigo C
Hacer ───;
Inicio do{
bloque bloque;
fin }while(condición);
Mientras que(condición) ───;
──────────────────────────
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; .:
──;
──;
}
─── ;
─── ;
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;
}
─── ;
─── ;
──────────────────────────
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( );
}
──────────────────────────
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
// 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();
}
#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();
}
──────────────────────────
ING. NEICER CAMPOS VASQUEZ
UPN LENGUAJE C++
──────────────────────────────────────────────────────────
LABORATORIO Nº 02
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++
──────────────────────────────────────────────────────────
//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 ( );
}
──────────────────────────
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.
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 ( );
}
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
#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();
}
#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++
──────────────────────────────────────────────────────────
#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();
}
#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();
}
──────────────────────────
ING. NEICER CAMPOS VASQUEZ