1. Ing. Maribel Durán Página 1
Creación de un programa en C
Para crear un programa, se debe definir primero análisis del problema, el
siguiente paso, es desarrollar el programa en C o C++, es decir crear un código
fuente.
Compilación: después que se ha terminado de codificar el programa en el editor,
el siguiente paso es la compilación, o sea la traducción del código fuente a
código objeto (lenguaje de máquina entendible por el computador). Esta
compilación genera un archivo con extensión .obj en ANSI o .cpp si es C++.
Si el compilador es BorlandC, genera 4 archivos con extensión .cpp, .obj, .bak y
.exe Si el compilador es C++, genera 2 archivos con extensión .cpp y .exe
Estructura secuencial
Una estructura secuencial es aquella que nos permite entrar datos, hacer un
cálculo y luego mostrar la salida o los resultados del programa. Siguiendo la
tradición, la mejor forma de aprender a programar en cualquier lenguaje es editar,
compilar, corregir y ejecutar pequeños programas descriptivos. Analicemos por
lo tanto los siguientes ejemplos que ilustran la forma como se edita un programa
en C o en Dev-C++:
Librerias en lenguaje C
Las librerías o archivos de cabecera en lenguaje C, son los que contienen o
almacenan funciones que realizan operaciones y cálculos de uso frecuente y son
parte de cada compilador.
El programador debe invocar todos aquellos archivos o bibliotecas que
necesite.
#include<iostream.h>: en esta librería residen los flujos stream (cin y cout)
acompañados del operador de inserción (<<) y de extracción (>>)
respectivamente y se utiliza para datos de entrada y salida.
Las { } indican el comienzo y el final del programa principal o función
principal.
2. Ing. Maribel Durán Página 2
Recordemos los pasos para escribir un algoritmo
Algoritmo Pseudocódigo Programa en C++
Por cada variable de entrada se
coloca un escribir y un leer.
Luego se escribe el proceso tal
cual esta en el proceso.
Por cada salida se coloca un
escribir.
Por cada variable de entrada se
coloca un cout y un cin.
Luego se escribe el proceso tal
cual esta en el proceso.
Por cada salida se coloca un cout.
3. Ing. Maribel Durán Página 3
Ahora vamos a pasar de algoritmo a programa en C++.
1. Escriba un algoritmo que pregunte por dos números y muestre como
resultado la suma de estos.
Algoritmo Pseudocódigo Programa en C++
Proceso Calcular_Suma
Float Num1, Num2, Suma;
Escribir "Ingrese el Numero1:";
Leer Num1;
Escribir "Ingrese el Numero2:";
Leer Num2;
//proceso
Suma<-Num1+Num2
//salida
Escribir "Suma=",Suma;
FinProceso
//Calcular Suma de 2 numeros
#include <iostream>
using namespace std;
float Num1, Num2. Suma;
int main(){
cout<<"Ingrese el Numero 1: "<<endl;
cin>>Num1;
cout<<"Ingrese el Numero2: "<<endl;
cin>>Num2;
//proceso
Suma=Num1+Num2;
//salida
cout<<"Suma: "<<Suma<<endl;
system ("pause");
return 0;
}
Veamos el significado de cada línea del programa
//Calcular Suma de 2 numeros
Es un comentario. El compilador de C ignora todo lo que está entre los símbolos de comienzo
(/*) y fin (*/) de un comentario. Los comentarios delimitados por estos símbolos pueden
ocupar varias líneas. Si es una sola línea se utiliza //.
La sentencia #include no es una instrucción C.
El símbolo # la identifica como una directiva, es decir, una orden para el preprocesador de C,
responsable de realizar ciertas tareas previas a la compilación.
Los archivo *.h se denominan archivos de cabecera. Todos los programas C requieren la
inclusión de uno o varios archivos de este tipo, por lo que normalmente es necesario utilizar
varias líneas #include.
main ()
Es el nombre de una función. Un programa C se compone de una o más funciones, pero al
menos una de ellas debe llamarse main(), pues los programas C empiezan a ejecutarse por
esta función.
Los paréntesis identifican a main() como una función. Generalmente, dentro de ellos se
incluye información que se envía a la función. En este caso no hay traspaso de información
por lo que no hay nada escrito en su interior; aun así son obligatorios.
El cuerpo de una función (conjunto de sentencias que la componen) va enmarcado entre
llaves { y }. Ese es el significado de las llaves que aparecen en el ejemplo.
float Num1, Num2. Suma;
Es una sentencia declarativa. Indica que se van a utilizar una variable llamada Num1, Num2
y Suma que es de tipo flotante. La palabra float es una palabra clave de C que identifica uno
de los tiposbásicos de datos que tiene C. En C es obligatorio declarar todas las variables antes
de ser utilizadas. El ";" identifica la línea como una sentencia C.
4. Ing. Maribel Durán Página 4
cout<<"Ingrese el Numero 1: "<<endl;
es un ejemplo de llamada a una función. Además ilustra el uso de una función estándar de
salida:.
Como toda sentencia C acaba con punto y coma.
La función cout funciona de la siguiente forma: el primer argumento es una cadena de
caracteres. Esta cadena será lo que, básicamente, se mostrará en pantalla.
Un carácter de escape comienza por el símbolo<<. Son caracteres que tienen una
interpretación especial. La secuencia <<endl es el carácter nueva línea y equivale a la
secuencia LF+CR (salto de línea + retorno de cursor).
Con la función system(“pause”) se utiliza para pausar un programa una vez esté corriendo y
reemplaza a la función getch() de la librería #include<conio.h>. Ambas hacen lo mismo y se
colocan la final antes de cerrar el programa principal.
5. Ing. Maribel Durán Página 5
2. Escribir un algoritmo que calcule el área de un triángulo: área del
triángulo = (base * altura)/2
Algoritmo Pseudocódigo Programa en C++
Proceso areadeuntriangulo
Escribir "Ingrese Base:";
Leer Base;
Escribir "Ingrese Altura:";
Leer Altura;
//proceso
Area_Triangulo<-Base*Altura/2
//salida
Escribir
"Area_triangulo=",Area_Triangulo;
FinProceso
//area de un triangulo
#include <iostream>
using namespace std;
int Base,Altura;
float Area_triangulo;
int main(){
cout<<"Ingrese la Base del Triangulo:
"<<endl;
cin>>Base;
cout<<"Ingrese la Altura del Triangulo:
"<<endl;
cin>>Altura;
//proceso
Area_triangulo=Base*Altura/2;
//salida
cout<<"El area del triangulo es:
"<<Area_triangulo<<endl;
system ("pause");
return 0;
}
6. Ing. Maribel Durán Página 6
3. Escribir un programa que calcule el área de un rectángulo: área del
rectángulo=lado1 * lado2
Algoritmo Pseudocódigo Programa en C++
Proceso areadeunrectangulo
Escribir "Ingrese lado 1:";
Leer Lado1;
Escribir "Ingrese lado 2:";
Leer Lado2;
//proceso
Area_Rectangulo<-Lado1*Lado2
//salida
Escribir
"Area_Rectangulo=",Area_Rectangulo;
FinProceso
//area de un rectangulo
#include <iostream>
using namespace std;
float Lado1,Lado2,Area_Rectangulo;
int main(){
cout<<"Ingrese el lado 1 del rectangulo:
"<<endl;
cin>>Lado1;
cout<<"Ingrese el lado 2 del rectangulo :
"<<endl;
cin>>Lado2;
//proceso
Area_Rectangulo=Lado1*Lado2;
//salida
cout<<"El area del rectangulo es:
"<<Area_Rectangulo<<endl;
system ("pause");
return 0;
}
7. Ing. Maribel Durán Página 7
4.-La compañía Decaro Motor paga a su personal de ventas un salario base de
150000 Bs. más una comisión de 20000 Bs. por cada automóvil vendido, más un
bono del 15% del monto total de las ventas. Diseñe un Algoritmo que lea el
nombre del vendedor, el número de autos vendidos y el monto total de sus
ventas, calcule e imprima el salario neto del vendedor.
Algoritmo Pseudocódigo Programa en C++
Proceso calcularcomisionbonoysalarioneto
Escribir "Ingrese cantidad de Autos
vendidos:";
Leer CantAut_Vend;
Escribir "Ingrese total de ventas:";
Leer Totalventas;
//proceso
Comision<-CantAut_Vend*0.20;
Bono<-Totalventas*0.15;
Salarioneto<-150000+Comision+Bono;
//Salida
Escribir "Salarioneto=",Salarioneto;
Escribir "Comision=",Comision;
Escribir "Bono=",Bono;
FinProceso
#include <iostream>
using namespace std;
int CantAut_Vend;
float Totalventas,Comision,Bono,Salarioneto;
int main(){
cout<<"Ingrese cantidad de Autos vendidos:
"<<endl;
cin>>CantAut_Vend;
cout<<"Ingrese total de ventas: "<<endl;
cin>>Totalventas;
//proceso
Comision=CantAut_Vend*0.20;
Bono=Totalventas*0.15;
Salarioneto=150000+Comision+Bono;
//salida
cout<<"Salarioneto: "<<Salarioneto<<endl;;
cout<<"Comision: "<<Comision<<endl;
cout<<"Bono: "<<Bono<<endl;
system ("pause");
return 0;
}
8. Ing. Maribel Durán Página 8
5.-El Decanato de Ciencias de la UCLA ofrece cursos en diversas áreas. El costo
del curso se cancela de la siguiente forma: Inicial del 20% del costo del curso y
el resto debe ser cancelado en cuotas mensuales durante 2 años. Si se tiene como
dato de entrada: nombre de un participante, área del curso y costo del curso.
Desarrolle un programa que arroje las salidas siguientes: Nombre del
participante, área del curso, monto inicial y cuotas mensuales a cancelar por el
participantes.
Algoritmo Pseudocódigo Programa en C++
Proceso ucla
Escribir "Ingrese nombre del
participante:";
Leer NomParticipante;
Escribir "Ingrese area de curso:";
Leer Area_Curso;
Escribir "Ingrese costo curso:";
Leer Costo_Curso;
//proceso
Montoinicial<-Costo_Curso*0.20;
Cuotas_MensualP<-Costo_Curso-
Montoinicial/24;
//salida
Escribir
"NomParticipante=",Nomparticipante;
Escribir "Area_Curso=",Area_Curso;
Escribir "Montoinicial=",Montoinicial;
Escribir
"Cuotas_MensualP=",Cuotas_MensualP;
FinProceso
#include <iostream>
using namespace std;
float
Costo_Curso,Monto_inicial,Cuotas_MensualP;
string NomParticipante,Area_Curso;
int main(){
cout<<"Ingrese nombre del participante:
"<<endl;
cin>>NomParticipante;
cout<<"Ingrese area de curso: "<<endl;
cin>>Area_Curso;
cout<<"Ingrese costo curso:"<<endl;
cin>>Costo_Curso;
//proceso
Monto_inicial=Costo_Curso*0.20;
Cuotas_MensualP=Costo_Curso-
Monto_inicial/24;
//salida
cout<<"Nombre del Participante:
"<<NomParticipante<<endl;
cout<<"Area de Curso:
"<<Area_Curso<<endl;
cout<<"Monto inicial:
"<<Monto_inicial<<endl;
cout<<"Cuotas Mensual Participante:
"<<Cuotas_MensualP<<endl;
system ("pause");
return 0;
}
9. Ing. Maribel Durán Página 9
6. Un colegio desea saber que porcentaje de niños y que porcentaje de niñas hay
en el curso actual. Diseñar un Algoritmo pseudocódigo para este propósito
Algoritmo
Pseudocódigo
Programa en C++
Proceso
porcenteje_de_ninos_y_ninas
Cont_F<-0;
Cont_M<-0;
Respuesta<-'S'
Mientras Respuesta='S' o
Respuesta='s' Hacer
Escribir "Indique el sexo: ";
Leer Sexo;
Si Sexo='F' o Sexo='f' Entonces
Cont_F<-Cont_F+1;
Sino
Cont_M<-Cont_M+1;
FinSi
Cant_Total<-Cont_F+Cont_M;
Porcentaje_F<-
(Cont_F*100)/Cant_Total;
Porcentaje_M<-
100- Porcentaje_F;
Escribir "desea registrar otro:";
Leer Respuesta;
FinMientras
Escribir "La cantidad total de
estudiantes es: ",Cant_Total;
Escribir "El porcentaje de ninos
es: ",Porcentaje_M;
Escribir "El porcentaje de ninas
es: ",Porcentaje_F;
FinProceso
#include<iostream>
using namespace std;
int
Cont_F,Cont_M,Cant_Total,Porcentaje_F,Porcentaje_M,z;
char Respuesta,Sexo;
int main(){
Cont_F=0;
Cont_M=0;
Respuesta='S';
while (Respuesta=='S' || Respuesta=='s'){
cout<<"Ingrese sexo: "<<endl;
cin>>Sexo;
if ((Sexo=='F') || (Sexo=='f'))
Cont_F++;
else
Cont_M++;
Cant_Total=(Cont_F+Cont_M);
Porcentaje_F=(Cont_F*100)/Cant_Total;
Porcentaje_M=100-Porcentaje_F;
cout<<"desea registrar otro: "<<endl;
cin>>Respuesta;
}
cout<<"La cantidad total de estudiantes es:
"<<Cant_Total<<endl;
cout<<"El porcentaje de ninos es:
"<<Porcentaje_M<<endl;
cout<<"El porcentaje de ninas es:
"<<Porcentaje_F<<endl;
cin>>z;
return 0;
}
10. Ing. Maribel Durán Página 10
7. Elabore un algoritmo que sume 5 números y diga cuantos números son mayores a 20
Algoritmo Pseudocódigo Programa en C++
Proceso suma_entre_cinco_numeros
Suma<-0;
Cont<-0;
Para I<-1 Hasta 5 Hacer
Escribir "Ingrese Numero: ";
leer Num;
Aux<-Num Mod 2;
Escribir "Aux: ",Aux;
Si Aux=0 y Num>20 Entonces
Cont<-Cont+1;
FinSi
Suma<-Suma+Num;
FinPara
Escribir "Suma: ",Suma;
Escribir "La cantidad de numeros
pares mayores a 20: ",Cont;
FinProceso
#include<iostream>
using namespace std;
int Suma,Cont,Aux,I,Num,x;
int main(){
Suma=0;
Cont=0;
for (I=1;I<=5;I++)
{
cout<<"Ingrese numero"<<endl;
cin>>Num;
Aux=Num % 2;
if ((Aux==0) && (Num>20))
Cont++;
Suma=Suma+Num;
}
cout<<"Suma"<<Suma<<endl;
cout<<"La cantidad de numeros pares
mayores a 20 es: "<<Cont<<endl;
cin>>x;
return 0;
}
11. Ing. Maribel Durán Página 11
8. Elabore un algoritmo que calcule e imprima la nota final de cinco estudiantes según
los siguientes criterios:
La nota deben ser números del 0 al 10, sino es así, enviar un mensaje de
ERROR.
El 10% de la nota pertenece a la práctica.
El 50% de la nota pertenece a la problemática.
El 40% de la nota pertenece a la teoría .
Algoritmo Pseudocódigo Programa en C++
Proceso nota_final
Para I<-1 Hasta 5 Hacer
Escribir "Ingrese Nota";
Leer Nota;
Si Nota<=10 Entonces
Practica<-
Nota*0.10;
Problema<-
Nota*0.50;
Teorica<-
Nota*0.40;
Nota_Final<-
Practica+Problema+Teorica;
Escribir
"Porcentaje de la practica: ",Practica;
Escribir
"Porcentaje del Problema: ",Problema;
Escribir
"Porcentaje de la Teoria: ",Teorica;
Escribir "Nota
Final: ",Nota_Final;
Sino
Escribir "ERROR,
verifique que la nota sea numeros del
0 al 10";
FinSi
FinPara
FinProceso
#include<iostream>
using namespace std;
int I;
float
Nota,Practica,Problema,Teorica,Nota_Final;
int main(){
for (I=1;I<=5;I++)
{
cout<<"Ingrese Nota"<<endl;
cin>>Nota;
if (Nota<=10)
{
Practica=Nota*0.10;
Problema=Nota*0.50;
Teorica=Nota*0.40;
Nota_Final=Practica+Problema+Teorica;
cout<<"Porcentaje de la practica:
"<<Practica<<endl;
cout<<"Porcentaje del Problema:
"<<Problema<<endl;
cout<<"Porcentaje de la Teoria:
"<<Teorica<<endl;
cout<<"Nota Final:
"<<Nota_Final<<endl;
}
else
cout<<"ERROR, verifique que la nota
sea numeros del 0 al 10";
}
system ("pause");
return 0;
}
12. Ing. Maribel Durán Página 12
Nota: DE AQUÍ EN ADELANTE SOLO HACERLO EN C++ (Claro primero el análisis:
entradas, proceso y salidas)
9. Menu con switch case
Programa en C++
/*menu funciones con switch case*/
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include<stdlib.h>
#include <ctype.h>
using namespace std;
#define MENSAJE printf("nn<<<<PRESIONE UNA TECLA PARA VOLVER A
MENU");getch();
#define SI printf("nn<<<<SI...ENTONCES PULSA [S]");
#define NO printf("nn<<<<NO...ENTONCES PULSA [N] PARA VOLVER AL MENU");
main()
{
system("COLOR A0"); /*system pertenece a la libreria stdlib*/
/*declaracion de variables globales*/
char c,resp;
float areatriangulo,multiplica;
do
{ /*primer ciclo do while para salir o continuar*/
do
{ /*segundo ciclo do while, inicio del anidamiento*/
system("CLS()"); /*limpia pantalla*/
//menu();
// ----------------MENU-----------------------------
cout<<"nnnttBIENVENIDOnn";
cout<<("nnttMENU DE OPCIONESnn");
cout<<("n********************************************************n");
cout<<("nt1-area de un triangulo rectangulo");
cout<<("nt2-multiplica dos números enteros");
cout<<("nnt3-SALIR");
cout<<("nntESCOJA UNA OPCION");
cout<<("n********************************************************n");
// ---------------------------------------------
c=getche();
getch();
switch(c)
{
case '1': system("CLS");
13. Ing. Maribel Durán Página 13
system("COLOR A0");
int b,h;
cout<<("Teclee la base :n");
cin>>(b);
cout<<("Teclee la altura :n");
cin>>(h);
areatriangulo=b*h/2;
cout<<("El resultado es :n")<<areatriangulo<<endl;
MENSAJE;
break;
case '2': system("CLS");
system("COLOR 0A");
int a, c;
cout<< ("Teclee un numero entero:n");
cin>> (a);
cout<< ("Teclee otro numero entero:n");
cin>> (b);
multiplica=a*b;
cout<<("El resultado es :n")<<multiplica<<endl;
MENSAJE;
break;
case '3': system("CLS"); /*limpia pantalla*/
default:cout<<("nnnntERROR<<<<<DEBES ELEGIR UNA OPCION VALIDA ");
getch();
break;
}
} while(c!='3'); /*fin del anidamiento*/
cout<<("nnQUIERES SALIR DEL PROGRAMA?");
SI;
NO;
resp=toupper(getch()); /*INSTRUCCION QUE CONVIERTE A MAYUSCULA [s->S]*/
/*toupper pertenece a la libreria ctype*/
} while(resp!='S'); /*fin del primer ciclo do while para salir o
continuar*/
return 0;
} /*FIN DEL PROGRAMA PRINCIPAL*/
//*******************************************
14. Ing. Maribel Durán Página 14
10.- Hacer un algoritmo que lea el nombre y las cuatro notas de cada estudiante de una sección
de 40 estudiantes, e imprima y de cómo salida:(nota: se aprueba con 50 o más)
La nota definitiva de cada uno.
Promedio de cada alumno
La nota mayor de la sección y el nombre del estudiante que la obtuvo.
El promedio de la sección
Cantidad de alumnos reprobados.
Porcentaje de alumnos aprobados.
Programa en C++
#include<iostream>
using namespace std;
int Cant_Repr,I,J,Cant_Apr;
float Nota_Definitiva,Promedio_Alumno,NotaMayor_Seccion,Promedio_Seccion;
float Porcentaje_Apr,Nota,Suma;
string Nom,Nom_Mayor;
int main(){
Suma=0;
Cant_Repr=0;
NotaMayor_Seccion=0;
for (I=1;I<=4;I++)
{
cout<<"Ingrese Nombre del Alumno"<<endl;
cin>>Nom;
Nota_Definitiva=0; //Se inicializa en cero cada vez que se procesa un nuevo alumno
for (J=1;J<=4;J++)
{
cout<<"Ingrese Nota obtenida"<<endl;
cin>>Nota;
Nota_Definitiva=Nota_Definitiva+Nota;
}
if (Nota_Definitiva>=50)
cout<<"Aprobo"<<endl;
else
Cant_Repr=Cant_Repr+1;
if (Nota_Definitiva>NotaMayor_Seccion)
{
NotaMayor_Seccion=Nota_Definitiva;
Nom_Mayor=Nom;
}
Promedio_Alumno=Nota_Definitiva/4;
Suma=Suma+Nota_Definitiva;
cout<<"La nota definitiva del Alumno es: "<<Nota_Definitiva<<endl;
15. Ing. Maribel Durán Página 15
cout<<"El promedio del Alumno es: "<<Promedio_Alumno<<endl;
}
Promedio_Seccion=Suma/40;
Cant_Apr=40-Cant_Repr;
Porcentaje_Apr=(Cant_Apr*100)/40;
cout<<"El promedio de la seccion es: "<<Promedio_Seccion<<endl;
cout<<"El porcentaje de Alumnos aprovados es: "<<Porcentaje_Apr<<endl;
cout<<"La Mayor nota de la seccion es: "<<NotaMayor_Seccion<<endl;
cout<<"el alumno que obtuvo la Mayor Nota de la Seccion fue: "<<Nom_Mayor<<endl;
system ("pause");
return 0;
}
Nota: Haga en C++ todos los ejercicios de las guías anteriores