0% encontró este documento útil (0 votos)
141 vistas19 páginas

Programacion

Los 10 documentos presentan programas en C++ que utilizan arreglos de una, dos y tres dimensiones para resolver diferentes problemas. El primero almacena edades y cuenta mayores y menores de edad. El segundo guarda notas de estudiantes. Los demás resuelven problemas usando arreglos como almacenar unos, calcular tiempo de caída de esferas, llenar avión, generar números aleatorios, etc.

Cargado por

michell
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
141 vistas19 páginas

Programacion

Los 10 documentos presentan programas en C++ que utilizan arreglos de una, dos y tres dimensiones para resolver diferentes problemas. El primero almacena edades y cuenta mayores y menores de edad. El segundo guarda notas de estudiantes. Los demás resuelven problemas usando arreglos como almacenar unos, calcular tiempo de caída de esferas, llenar avión, generar números aleatorios, etc.

Cargado por

michell
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

ARREGLOS

1. /*Programa que ingresa en un vector las edades de 10 alumnos, calcula y escribe


la cantidad de alumnos mayores de edad y menores de edad.*/
#include<iostream> using namespace std; int main()
{
int EDAD[10],C1=0,C2=0;
cout<<"Escriba la edad de los estudiantes: "<<endl;
for(int X=0;X<=9;X++)
{
cin>>EDAD[X];
if(EDAD[X]>=18) C1++;
else
C2++;
}
cout<<"Mayores de edad: "<<C1<<" Menores de edad: "<<C2<<endl;
system("pause");
return 0;
}

2. /*Programa que guarda las notas de 20 estudiantes de un curso en las siete


asignaturas que toman */
#include<iostream>
Using namespace std;
int main()
{
int J,K;
float NOTA[20][7];
//Captura de las notas for(J=0;J<=19;J++)
{cout<<"Escriba las siete notas del estudiante: "<<J+1<<endl;
for(K=0;K<=6;K++)
{
cin>>NOTA[J][K];
}
}
//Impresi�n de las notas for(J=0;J<=19;J++)
{ cout<<endl<<J+1<<" ";
for(K=0;K<=6;K++)
cout<<NOTA[J][K]<<" ";
}
system("pause");
return 0;
}

3. /*programa que llena de unos un arreglo de tres dimensiones*/


#include<iostream>
using namespace std;
int main()
{
int v[2][3][5],k,i,j;
//INICIALIZACION DEL ARREGLO
for(k=0;k<2;k++)
for(i=0;i<3;i++)
for(j=0;j<5;j++)
v[k][i][j]=1;
//IMPRESION DE LOS DATOS
for(k=0;k<2;k++)
{
cout<<"====="<<"DIMENSION "<<k<<" ==============="<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
cout<<v[k][i][j]<<" ";
cout<<"\n";
}}
system("pause");
return 0; }

4. /*Una esfera es lanzada horizontalmente desde diferentes alturas:


15,25,35,49,68,80,99; calcular el tiempo que dura la esfera en el aire.*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double vector1[7]= {15,25,35,49,68,80,99};
double vector2[7];
int i; for(i=0;i<7;i++)
{
vector2[i]=sqrt((2* vector1[i])/9.8);
}
cout<<"METROS"<<'\t'<<"TIEMPO DE CAIDA "<<'\n';
for(i=0;i<7;i++)
{
cout<<vector1[i]<<'\t'<<vector2[i]<<'\n';
}
system("pause");
return 0; }

5. /*PROGRAMA QUE MUESTRA EL NUEMRO DE PASAJEROS QUE LLEVA UN AVION EL AVION TIENE
50 FILAS DE ASIENTOS POR SEIS
COLUMNAS UN ASIENTO OCUPADO SE REPRESENTA MEDIANTE UN UNO Y UN ASIENTO LIBRE CON
UN CERO*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int avion [50][6],o=0,d=0,i,j;
for (i=0; i<50; i++)
for(j=0; j<6; j++)
{
cout<<"INGRESE (1) SI EL ASIENTO ESTA OCUPADO Y (0) SI ESTA DESOCUPADO"<<endl;
cout<<"de la fila "<<i+1<<" columna "<<j+1<<endl;
cin>>avion[i] [j];
if (avion [i] [j] == 1)
o= o+1;
else if (avion[i][j]==0) d=d+1;
}
for (i=0; i<50; i++)
{
for(j=0; j<6; j++)
cout<<avion [i] [j]<<"\t"; cout<<endl<<endl;
}
cout<<"EL NUMERO DE ASIETOS OCUPADOS ES "<<o<<endl;
cout<<"EL NUMERO DE ASIENTOS LIBRES ES "<<d<<endl;
system("pause");
return 0;
}

6. /* El programa principal muestra el men�


//- En la opci�n 1, muestra un problema a resolver de f�sica: Busque una
f�rmula cualquiera de f�sica,
solicite los datos al usuario y haga una funci�n de usuario que reciba
estos datos resuelva la f�rmula y retorne la respuesta para impresi�n.
En la opci�n 2, llene un vector de 8 posiciones con n�meros aleatorios. A
continuaci�n defina una tabla de 5 filas por
8 columnas y llene la tabla con los n�meros generados
en el vector para cada una de las columnas. Imprima ambos arreglos.
La opci�n cero es para terminar. Por lo tanto el programa deber� mostrar
el men� hasta tanto no se digite cero. programador: Jessica Jimenez 2902200 */
#include<iostream>
#include<iomanip>
#include<cmath>
#include<ctime>
using namespace std;
void lanzamientoverticalhaciabajo(double);
void arreglos();
double vf,vo,t,g=9.8,d;
int main()
{ int opc;
do{
cout<<"******************************************************** "<<endl;
cout<<"** Jessica Jimenez ** "<<endl;
cout<<"** menu ** "<<endl; cout<<"** ** "<<endl; cout<<"** Bienvenido: ** "<<endl;
cout<<"** 1. Fisica ** "<<endl;
cout<<"** 2. arreglos ** "<<endl; cout<<"** 0. salir ** "<<endl;
cout<<"** ** "<<endl;
cout<<"********************************************************* "<<endl;
cin>>opc;
system("cls");
//definir que va en cada caso switch(opc)
{
case 1:
cout<<"Ingrese la velocidad inicial a la que se desplazaba la
particula "<<endl;
cin>>vo;
cout<<"ingrese el tiempo medido a la particula "<<endl;
cin>>t;
// llamado de la funcion para que ejecute la operacion y me muestre el resultado
lanzamientoverticalhaciabajo(vf);
break;
case 2: arreglos(); break;
case 0:
return 0;
system("cls");
break;
default: cout<<"\n\n\n\nOpcion no disponible intenta de nuevo ingresar s�lo 1,2 o
0\n\n\n\n"<<endl;
}}while(opc!=0);
cout<<"Presione una tecla para regresar al Menu Principal...";
system("pause");
}
void lanzamientoverticalhaciabajo (double vf)
{
vf=vo+g*t;
cout<<"La velocidad final fue: "<<vf<<endl;
}
void arreglos()
{
//capturar dat int m[5][8]; srand(time(NULL));
// definicion del arreglo
for (int i=0;i<=4;i++)
for (int j=0;j<=7;j++)
// tomar datos aleatorios y capturarlos en el arreglo
m[i][j]=rand()%10;
// mostrar la tabla
for (int i=0;i<=4;i++)
{for (int j=0;j<=7;j++)
cout<<m[i][j]<<" ";
cout<<endl;}
system("pause");
return 0;
}

7. /*
Hacer un programa en C++ que permita capturar el nombre del cliente,
nombre del art�culo comprado, valor unitario,
cantidad comprada, tipo de art�culo; se debe tener en cuenta:
- Si el art�culo comprado es Nacional y compra m�s de 10 unidades, se le
hace un recargo del 15% sobre el valor unitario.
- Si el art�culo comprado es Importado y compra m�s de 10 unidades, se le
hace un descuento del 15% sobre el valor unitario.
Para un total de 3 clientes se debe imprimir: ALMACEN EL BUHO
ombre del Cliente: Nombre del Art�culo: Cantidad Art�culos: Valor Unitario:
Tipo Art�culos:
Valor Pagar por la Compra:
Programador: Profesor Luis Eduardo Perez
*/
#include <iostream>
#include <string>
using namespace std;
void recargo(int [3], double [3], double [3]);
int main()
{
int tipo[3];
double cantidad[3];
double valorunitario[3];
string nombre[3];
string articulo[3];
cout<<endl;
cout<<"\t :::::ALMACEN EL BUHO:::::"<<endl;
for(int i=0;i<3;i++)
{
cout<<endl;
cout<<"\tCliente No.: "<<i+1<<endl; cout<<"\tIngrese el nombre del cliente: ";
cin>>nombre[i];
cout<<"\tIngrese el nombre del articulo adquirido por el cliente: ";
cin>>articulo[i];
cout<<"\tIngrese la cantidad de articulos adquiridos por el cliente: ";
cin>>cantidad[i];
cout<<"\tIngrese el valor unitario del articulo adquirido por el cliente: $";
cin>>valorunitario[i];
cout<<"\tIngrese el tipo de articulo (1=Nacional, 2=importado): ";
cin>>tipo[i]; cout<<endl; cout<<endl;
}
cout<<"\t :::::ALMACEN EL BUHO:::::"<<endl;
for(int i=0;i<3;i++)
{
cout<<endl;
cout<<endl;
cout<<"\tCliente No.: "<<i+1<<endl;
cout<<"\tNombre del cliente: : "<<nombre[i]<<endl;
cout<<"\tNombre del articulo: "<<articulo[i]<<endl; cout<<"\tCantidad de articulos:
"<<cantidad[i]<<endl;
cout<<"\tValor unitario: $"<<valorunitario[i]<<endl; cout<<"\tTipo de articulos:
"<<tipo[i]<<endl; cout<<endl;
} cout<<endl; cout<<endl;
recargo(tipo, cantidad, valorunitario);
cout<<endl;
cout<<endl; cout<<endl; cout<<endl; system("pause"); return 0;
}
void recargo(int tipo[3], double cantidad[3], double valorunitario[3])
{
int result=0;
for(int i=0;i<3;i++)
{
if(tipo[i]==1 && cantidad[i]>10)
{
result=(cantidad[i]*valorunitario[i])+(cantidad[i]*(valorunitario[i
]*0.15));
}
else
{
if(tipo[i]==1 && cantidad[i]<=10)
{
}
else
{
result=cantidad[i]*valorunitario[i];
if(tipo[i]==2 && cantidad[i]>10)
{
result=(cantidad[i]*valorunitario[i])- (cantidad[i]*(valorunitario[i]*0.15));
}
else
{
if(tipo[i]==2 && cantidad[i]<=10)
{
}
else
{
result=cantidad[i]*valorunitario[i];
if(tipo[i]>2)
{
result=valorunitario[i]*0;
}
}
}
}
}
cout<<endl;
cout<<"\tEl valor a pagar por la compra del cliente No."
<<i+1<<" es igual a: $"<<result;
cout<<endl;
}
}

8. #include<iostream>
using namespace std;
#include <string>
void proc1(int vector[]);
int main()
{
//creando arreglo y cargandolo
int lista[6]= {20,21,22,23,24,25};
// envi�ndolo a la funci�n, observe que se manda sin los corchetes []
proc1(lista);
// Se imprimen los datos
for(int reng=0; reng<=5; reng++) cout<<lista[reng]<<endl; system("pause");
return 0;
}
void proc1(int vector[])
{ // sumamos 100 a cada dato del arreglo
for(int reng=0; reng<=5; reng++)
vector[reng]=vector[reng]+ 100;
// observar que no se regresa nada
}

9. Aplicando los conceptos trabajados sobre arreglos unidimensionales, realizar un


programa en C++ que le permita
al usuario guardar en un vector de 5 posiciones la base y el exponente.
Al final imprimir un reporte donde se relacione el resultado de la base elevada al
exponente.
#include <iostream>
using namespace std;
int main()
{
int base[5]; int expo[5];
for (int i = 0; i < 5; i++)
{
cout << " Ingresar la Base No. " << i + 1 << " : ";
cin >> base[i];
cout << " Ingresar el Exponente No. " << i + 1 << " : ";
cin >> expo[i]; cout << endl;
}
system("cls");
cout << endl;
cout << "\t=== R E P O R T E P O T E N C I A S ===";
cout << endl;
cout << endl;
for (int i = 0; i < 5; i++) { int resul = 1;
int j = 1;
while (j <= expo[i]) { resul = resul * base[i]; j++;
}
cout << " => " << base[i] << " ^ " << expo[i] << " = " << resul;
cout << endl;
cout << endl;
}
cout << endl;
cout << endl;
system("pause");
return 0; }
10. realizar un programa en C++, que le permita al usuario ingresar el n�mero de
estudiantes, el n�mero de notas y
dependiendo del n�mero de estudiantes y del n�mero de notas ingresadas, se debe
guardar en una matriz el nombre del estudiante, el apellido y las notas.
? Las notas guardadas se validar�n en la escala de 0.0 a 5.0.
? Si la nota se sale de este rango imprimir un mensaje de error y la nota no se
guarda en la matriz.
Al final se debe imprimir un reporte de notas de cada uno de los estudiantes
ingresados, con su nombre,
apellido, notas, nota definitiva y un mensaje que diga si aprob� o reprob� la
materia.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int numest;
int numnot;
float nota[20][5];
string nomest[20];
string apelest[20];
string mensaje = " ";
cout << " Ingresar Numero de Estudiantes: ";
cin >> numest;
cout << " Ingresar Numero de Notas: ";
cin >> numnot; system("cls");
for (int i = 0; i < numest; i++)
{
cout << " Ingresar Nombre Estudiante No. " << i + 1 << " : ";
cin >> nomest[i];
cout << " Ingresar Apellido Estudiante No. " << i + 1 << " : ";
cin >> apelest[i];
cout << endl;
for (int j = 0; j < numnot;)
{
cout << " => Ingresar Nota No. " << j + 1 << " : ";
cin >> nota[i][j];
if (nota[i][j] >= 1.0 && nota[i][j] <= 5.0)
{ j++;
}
else
{
cout << endl;
cout << "\t=== Error Nota no Valida ===";
cout << endl;
} }
system("cls"); }
system("cls");
cout << endl;
cout << "\t=== R E P O R T E DE N O T A S ===";
cout << endl;
cout << endl;
for (int i = 0; i < numest; i++)
{
float sumnot = 0;
float defin = 0;
cout << "Nombre Estudiante No. " << i + 1 << " : " << nomest[i] << " "<<apelest[i];
cout << endl;
cout << endl;
for (int j = 0; j < numnot; j++)
{
cout << " => Nota No. " << j + 1 << " : " << nota[i][j];
cout << endl;
sumnot = (sumnot + nota[i][j]);
}
defin = sumnot / numnot;
if (defin >= 3.0)
{
mensaje = " Aprobo la Materia";
}
else { mensaje = " Reprobo la Materia"; }
cout << endl;
cout << " La Definitiva es: " << defin;
cout << endl;
cout << mensaje;
cout << endl;
cout << endl; }
cout << endl;
cout << endl; system("pause");return 0; }

11. Aplicando los conceptos trabajados sobre arreglos bidimensionales, Realizar un


programa en C++ que le permita
al usuario guardar en una matriz de 4 por 4 n�mero enteros del 1 al 9 y si se
trata de ingresar un n�mero que este fuera del rango,
imprimir un mensaje de error y no debe guardarse el n�mero.
Al final imprimir un reporte donde se muestre la matriz ingresada y su diagonal
principal.
#include <iostream>
using namespace std;
int main()
{ int numeros[4][4];
for (int i = 0; i < 4; i++)
{ for (int j = 0; j < 4;)
{ cout << "Ingresar Numero Fila [" << i << "] Columna [" << j << "] : ";
cin >> numeros[i][j];
if (numeros[i][j] >= 1 && numeros[i][j] <= 9)
{ j++;
}
else
{ cout << endl;
cout << "\t=== Error Numero Fuera de Rango ===";
cout << endl;
cout << endl;
} }
cout << endl;
}
system("cls");
cout << endl;
cout << "\t=== MATRIZ INGRESADA ===";
cout << endl;
cout << endl;
for (int i = 0; i < 4; i++)
{ for (int j = 0; j < 4; j++)
{ cout << numeros[i][j] << " "; }
cout << endl;
} cout << endl;
cout << endl;
cout << "\t=== DIAGONAL PRINCIPAL ===";
cout << endl;
cout << endl;
for (int i = 0; i < 4; i++)
{ for (int j = 0; j < 4; j++)
{ if (i == j)
{ cout << numeros[i][j];
}
else { cout << " ";
} }
cout << endl; } cout << endl; cout << endl; system("pause"); return 0; }

FUNCIONES

12.//Ejemplo de utilizaci�n de funciones matem�ticas.


#include<iostream>
#include<cmath>
using namespace std;
int main()
{ double c1=13.0, d=3.0, f=4.0, r;
cout<<"raiz cuadrada de 9 igual a: "<<sqrt(9.0)<<endl;
cout<<"raiz de 13+3 igual a: "<<sqrt(c1+d)<<endl;
cout<<"4 elevado a la 2 igual a: "<<pow(f,2)<<endl;
cout<<"Ingrese los radianes para calcular el coseno \n (un numero entre 0 y
6.28)"<<endl;
cin>>r;
if(r>=0 && r<=6.28)
cout<<"El coseno de "<<r<<" es: "<<cos(r)<<endl;
else
cout<<"No se realizo el calculo por no estar en el rango solicitado"<<endl;
system("pause"); return 0; }

13. #include<iostream>
#include <cstdlib>
#include<ctime> using namespace std; int main()
{ cout<<"EJEMPLO DE NUMEROS ALEATORIOS"<<endl;
system("pause");
system("cls"); system("color 2"); srand(time(NULL)); for(int x=1;x<=10;x++){
cout<<"Estoy lanzando un dado: "<<endl;
cout<<rand()%6+1<<endl;}
system("pause");
return 0;
}

14. //Programa que da informaci�n de fechas de matr�culas


#include<iostream>
#include <cctype>
using namespace std;
int main()
{ char Nombre[30];
char Codigo[10]; char Programa; system("color 2");
cout<<"Escriba su Nombre Completo"<<endl;
cin.getline(Nombre,32);
cout<<"Escriba su Codigo"<<endl;
cin>>Codigo;
cout<<"Escriba el Programa: A para administracin, D para derecho, I para
Ingenieria"<<endl;
cin>>Programa;
system("color 3");
cout<<Nombre<<endl; cout<<Codigo<<endl; Programa=toupper(Programa);
cout<<Programa<<endl; switch(Programa){
case 'A':
case 'D':
case 'I':
cout<<"Matricula el 5 de diciembre"<<endl;
break;
cout<<"Matricula el 6 de diciembre"<<endl;
break;
cout<<"Matricula el 7 de diciembre"<<endl;
break;
default: cout<<"Dato erroneo"<<endl;
}
system("pause");
return 0;
}

15. //Programa que lee un caracter del teclado y comprueba que es una letra
#include<iostream>
#include <cctype> using namespace std; int main()
{ char letra;
cout<<"Escriba una letra, para terminar escriba algo que no lo sea"<<endl;
cin>>letra;
while (isalpha(letra))
{
cout<<"caracter valido"<<endl; cout<<"Escriba nuevamente una letra"<<endl;
cin>>letra;
}
cout<<"Termino por que no escribio una letra"<<endl;
system("pause");
return 0;
}

16. programa que calcula los cuadrados de los n�meros del 1 al 10 utilizando una
funciones del usuario*/
#include<iostream>
int cuadrado(int);
using namespace std;
int main()
{
int x;
for(x=1;x<=10;x++) cout<<�\n�<<x<<� �<<cuadrado(x); system("pause");
return 0;
}
int cuadrado(int y)
{
return y*y;
}

17. /*PROGRAMA QUE CALCULA EL AREA DE UN TRI�NGULO CUANDO SE CONOCE EL VALOR DE SUS
TRES LADOS */
#include<iostream>
#include<cmath>
void AREA(float, float, float);
using namespace std;
int main()
{
float L1,L2,L3;
cout<<"INGRESE LA MEDIDA DE LOS TRES LADOS DEL TRIANGULO"<<endl;
cin>>L1>>L2>>L3;
AREA(L1,L2,L3);
system("pause");
return 0;
}
void AREA(float X1, float X2, float X3)
{
float S,A; S=(X1+X2+X3)/2;
A=sqrt(S*(S-X1)*(S-X2)*(S-X3));
cout<<"EL AREA DEL TRIANGULO ES "<<A<<endl;
}

18. //Ejemplo de par�metro por referencia.


#include<iostream>
using namespace std;
int n;
void aumentar(int &);
int main()
{ cout<<"Digite valor de n: ";
cin>>n;
aumentar(n);
cout<<"\nDespues de la funcion aumentar()\n";
cout<<"n= "<<n<<'\n'; system("pause");
return 0; }
void aumentar(int &num)
{ cout<<"\nEn la funcion aumentar()\n";
cout<<"num= "<<num<<'\n';
cout<<"Aumentamos el valor num en 10\n";
num+=10;
cout<<"Nuevo valor para num= "<<num<<'\n';
cout<<"Fin de la funcion aumentar()\n"; }

19.//Ejemplo de funciones con Paso de par�metros por valor


//Programa que calcula el mayor de tres enteros
//Programador: Gladys Bautista Silva
#include<iostream>
int maximo(int,int,int);
using namespace std;
int main()
{
int a,b,c;
cout<<"Digite tres enteros: "<<endl;
cin>>a>>b>>c;
cout<<"El Maximo es: "<< maximo(a,b,c)<<endl;
system("pause");
return 0;
}
int maximo(int x,int y,int z)
{
int max=z;
if (x>y&&x>z)
max=x;
if (y>x&&y>z)
max=y;
return max;
}
20.//Encontrar el IVA, a un precio dado
//Taller resuelto del profesor Luis Guerrero
#include <iostream>
using namespace std;
void pideprecio(double *p);
void calculaiva(double pp,double *v);
void imprimeiva(double ppp,double vv);
int main()
{
double precio=0,valiva=0; pideprecio(&precio); cout<<precio<<endl;
calculaiva( precio, &valiva);
cout<<precio<<" IVA: "<<valiva<<endl;
imprimeiva( precio, valiva);
return 0;
}
void pideprecio(double *p)
{
cout << "Escriba el precio del articulo ";
cin >> *p;
}
void calculaiva(double pp,double *v)
{
*v =pp * 0.16;
}
void imprimeiva(double ppp,double vv){
cout << "Para un precio de " << ppp << " su IVA es de "<< vv << endl;
system("pause");
}

21. #include<iostream>
using namespace std;
int main()
{ float x;
cout<<"Ingrese un valor "<<endl;
cin>>x;
if(x>0)
{
for(int i=0;i<=10;i++)
cout<<i<<endl;
}
//Aqui ya no es visible i
// Si escribo en este sitio: cout<<i<<endl;
// Me arroja el compilador error
system("pause");
return 0;
}

22. //Encontrar el factorial de un n�mero dado


#include <iostream>
using namespace std;
double Factorial(int);
int main()
{
int n;
cout<<" escriba el numero al que le desea calcular el factorial: "<<endl;
cin>>n;
cout<<" el factorial del n�mero es: "<<Factorial(n)<<endl;
system("pause");
return 0;
}
double Factorial(int numero)
{
if (numero>1)
return numero*Factorial(numero-1);
else
return 1;
}

23. //c�lculo repetitivo de un n�mero elevado a una potencia


//Para terminar digite 0 como base
//Programador:profesor Luis Antonio Guerrero
#include <iostream> using namespace std; void pidebase(int &); void pideexpo(int
&); int potencia(int,int);
void muestracum(int,int);
int main()
{
int base,ponente=0;
do{
pidebase(base); pideexpo(ponente); muestracum(base,ponente);
}while(base != 0);
return 0;
}
void pidebase(int &base)
{
cout << "Numero base (para terminar digite 0) "<<endl;;
cin >> base;
}
void pideexpo(int &ponente)
{
cout << "Exponente ";
cin >> ponente;
}
int potencia(int base,int ponente)
{
if(ponente>1)
return base * potencia(base,ponente-1);
return base;
}
void muestracum(int base, int ponente)
{
cout << "La potencia "<<ponente<<" del numero " << base<< " es " <<
potencia(base,ponente) << endl;
system("pause");
}

24.Aplicando los conceptos vistos sobre recursividad, realizar un algoritmo en C++


que permita ingresar por teclado
un numero en base 10 (Decimal) y al final imprimir su conversi�n en base dos
(Binario).
#include <iostream> #include <string>
using namespace std;
void converNum(int numero);
int main()
{ int numero;
string salir;
do{ system("cls");
cout << " Ingresar un Numero: ";
cin >> numero; cout << endl << endl;
cout << " En Base Dos es: ";
converNum(numero);
cout << endl << endl;
cout << " Desea Continuar (Si - No): ";
cin >> salir;
}
while (salir == "si" || salir == "Si" || salir == "SI");
cout << endl << endl;
system("pause");
return 0; }
void converNum(int numero)
{ int inv = 0; if (numero == 0) { return;
} else {
inv = numero % 2;
numero = numero / 2;
converNum(numero);
cout << " " << inv; } }

25. #include <iostream>


using namespace std;
int main(){
char palabra[7];
cout << "Escriba una palabra de maximo
caracteres ";
cin >> palabra;
cout << "La cuarta letra es " <<
palabra[3] << endl;
system("pause");
return 0;
}

26. Aplicando los conceptos vistos sobre cadena de caracteres, realizar un


algoritmo en C++ que permita
ingresar por teclado dos cadenas y que permita realizar las siguientes
actividades:
? Imprimir las cadenas ingresadas.
? Sobrescribir una cadena en otra.
? Comparar la longitud de las cadenas.
? Imprimir la longitud de las cadenas.
#include <iostream>
using namespace std;
int main()
{ char nombre[50];
char apellido[50];
cout << "Ingrese su Nombre: ";
cin.getline(nombre, 50);
cout << "Ingrese su Apellido: ";
cin.getline(apellido, 50);
cout << endl; system("cls");
cout << "Su Nombre Completo es: " << nombre << " " << apellido;
cout << endl << endl;
cout << "\t Despues de Copiar la Cadena Dos en la Uno, se Presenta";
cout << endl << endl; strcpy_s(nombre, apellido);// Con esta Instrucci�n la cadena
dos (Apellido), se sobrescribe en la cadena uno (Nombre)
cout << "El Nombre Pasa a Ser: " << nombre;
cout << endl;
cout << "El Apellido Sigue Igual: " << apellido;
cout << endl;
cout << endl;
if (strcmp(nombre, apellido) == 0) //Se compara la cadena uno, con la cadena dos {
cout << "el nombre y el apellido son iguales!!!"<<endl;
} cout << endl; strcat_s(nombre, apellido);//Concatena las cadenas
cout << "Su nombre luego del concatenado es: " << nombre;
cout << endl;
cout << "Su apellido luego del concatenado es: " << apellido;
cout << endl << endl;
cout << "La longitud de " << apellido << " es de " << strlen(apellido); //Calcula
el tama�o de la cadena
cout << endl; cout << apellido << " invertido es ";
cout << _strrev(apellido); //Invierte la Cadena
cout << endl;
system("pause"); return 0; }

27.A continuaci�n se muestra un programa que utiliza dos estructuras, una de ellas
anidada.
//Uso de estructuras anidadas
#include<iostream>
using namespace std;
struct Fecha
{ unsigned int dia;
unsigned int mes;
unsigned int amo;
};
struct Empleado
{ long int cedula;
char nombre[25];
float salario_basico;
int numero_hijos;
Fecha fecha_nacimiento;
Fecha fecha_ingreso;
};
void Imprimir(Empleado);
int main()
{
Empleado empl1; //inicializaci�n de datos para el primer empleado
cout<<"Digite la cedula: ";cin>>empl1.cedula;
cout<<"Digite el nombre: ";cin>>empl1.nombre;
cout<<"Digite el salario: ";cin>>empl1.salario_basico;
cout<<"Digite el numero de hijos: ";cin>>empl1.numero_hijos;
cout<<"Digite la fecha de nacimiento (MM/DD/AA): ";
cin>>empl1.fecha_nacimiento.dia;
cin>>empl1.fecha_nacimiento.mes;
cin>>empl1.fecha_nacimiento.amo;
cout<<"Digite la fecha de ingreso (MM/DD/AA): ";
cin>>empl1.fecha_ingreso.dia;
cin>>empl1.fecha_ingreso.mes;
cin>>empl1.fecha_ingreso.amo;
Imprimir(empl1); //llama la funci�n que permite la impresi�n
return 0; }
void Imprimir(Empleado datos)
{
cout<<"Cedula: "<<datos.cedula<<endl;
cout<<"Nombre: "<<datos.nombre<<endl;
cout<<"Salario: "<<datos.salario_basico<<endl;
cout<<"Numero de hijos: "<<datos.numero_hijos<<endl;
cout<<"Fecha de nacimiento: "<<
datos.fecha_nacimiento.dia<<"-"<<
datos.fecha_nacimiento.mes<<"-"<<
datos.fecha_nacimiento.amo<<endl;
cout<<"Fecha de ingreso: "<<
datos.fecha_ingreso.dia<<"-"<<
datos.fecha_ingreso.mes<<"-"<<
datos.fecha_ingreso.amo<<endl;
}

28. #include <iostream>


using namespace std;
struct asignaturas {

char programa [30];


int codigo;
char nombre_de_la_asignatura [30];
int nivel;
int numero_de_creditos;
int tipo_de_asignatura;
};

void Imprimir(asignaturas[]);

int main() {
asignaturas asig[10];

for (int i = 0; i < 5; i++) {


cout << "Ingrese el programa" << endl;
rewind(stdin);//while(getchar()!='\n');
cin.getline(asig[i].programa, 30);
cout << "Ingrese su codigo" << endl;
cin >> asig[i].codigo;
cout << "Ingrese el nombre de la asignatura" << endl;
cin >> asig[i].nombre_de_la_asignatura;
cout << "Ingrese el nivel" << endl;
cin >> asig[i].nivel;
cout << "Ingrese el numero de creditos" << endl;
cin >> asig[i].numero_de_creditos;
cout << "Ingrese el tipo de asignatura" << endl; disip
cin >> asig[i].tipo_de_asignatura;
}
Imprimir(asig);
system("pause");

void Imprimir(asignaturas datos[]) {

for (int i = 0; i < 5; i++) {


cout << "programa: " << datos[i].programa << endl;
cout << "codigo: " << datos[i].codigo << endl;
cout << "nombre de la asignatura: " << datos[i].nombre_de_la_asignatura
<< endl;
cout << "nivel: " << datos[i].nivel;
cout << "numero de creditos: " << datos[i].numero_de_creditos;
cout << "tipo de asignatura: " << datos[i].tipo_de_asignatura;
cout << endl;
}
}
29.#include <iostream>
using namespace std;
struct Fecha {

unsigned int dia;


unsigned int mes;
unsigned int anio;

};

struct Empleado {

char nombre[30];
int salario;
long int cedula;
Fecha fecha_nacimiento;
Fecha fecha_ingreso;

};

void Imprimir(Empleado[]);

int main() {
Empleado empl[5];

for (int i = 0; i < 5; i++) {


cout << "Ingrese su nombre" << endl;
rewind(stdin);//while(getchar()!='\n');
cin.getline(empl[i].nombre, 30);
cout << "Ingrese su salario" << endl;
cin >> empl[i].salario;
cout << "Ingrese su numero de cedula" << endl;
cin >> empl[i].cedula;
cout << "Ingrese la fecha de nacimiento dd-mm-a�o" << endl;
cin >> empl[i].fecha_nacimiento.dia >> empl[i].fecha_nacimiento.mes >>
empl[i].fecha_nacimiento.anio;
cout << "Ingrese la fecha de ingreso dd-mm-a�o" << endl;
cin >> empl[i].fecha_ingreso.dia >> empl[i].fecha_ingreso.mes >>
empl[i].fecha_ingreso.anio;
}
Imprimir(empl);
system("pause");

void Imprimir(Empleado datos[]) {

for (int i = 0; i < 5; i++) {


cout << "Nombre: " << datos[i].nombre << endl;
cout << "Salario: " << datos[i].salario << endl;
cout << "Cedula: " << datos[i].cedula << endl;
cout << "Fecha Nacimiento: " << datos[i].fecha_nacimiento.dia <<
datos[i].fecha_nacimiento.mes << datos[i].fecha_nacimiento.anio << endl;
cout << "Fecha Ingreso: " << datos[i].fecha_ingreso.dia <<
datos[i].fecha_ingreso.mes << datos[i].fecha_ingreso.anio << endl;
cout << endl;
}
}
30.#include <iostream>
#include <String>
#include <cstdlib>
#include <sstream>

using namespace std;


float bonificacion(int, float);
int main() {
string cadena[6][6];
int seleccion = 0;
float descuento = 0, bon = 0, neto = 0, sueldot = 0;
stringstream ss;
stringstream sa;
stringstream sn;
for (int i = 1; i<6; i++) {
ss.str(std::string());
sa.str(std::string());
sn.str(std::string());
cout << "Ingrese el nombre del empleado numero " << i << endl;
cin >> cadena[i][1];
cout << "Ingrese el sueldo basico del empleado numero " << i << endl;
cin >> cadena[i][2];
cout << "seleccione su profesion" << endl << "1. para medico" << endl
<< "2. para ingeniero" << endl << "3. para docente" << endl;
cin >> seleccion;
switch (seleccion) {
case 1:
bon = bonificacion(atoi(cadena[i][2].c_str()), 0.2);
break;
case 2:
bon = bonificacion(atoi(cadena[i][2].c_str()), 0.10);
break;
case 3:
bon = bonificacion(atoi(cadena[i][2].c_str()), 0.05);
break;
default:
cout << "error";
}

ss << bon;
cadena[i][3] = ss.str();

descuento = atoi(cadena[i][2].c_str())*0.05;
sa << descuento;
cadena[i][4] = sa.str();
neto = atoi(cadena[i][2].c_str()) + bon - descuento;

sn << neto;
cadena[i][5] = sn.str();

}
//reporte
cout << "reporte" << endl;
for (int z = 1; z<6; z++) {
cout << "nombre: " << cadena[z][1] << " Basico: " << cadena[z][2] << "
Bonificacion: " << cadena[z][3] << " Descuento:" << cadena[z][4] << " Salario neto:
" << cadena[z][5] << endl << endl;
}
// cinco empleados

sueldot = atoi(cadena[1][5].c_str()) + atoi(cadena[2][5].c_str()) +


atoi(cadena[3][5].c_str()) + atoi(cadena[4][5].c_str()) + atoi(cadena[5]
[5].c_str());
cout << "el sueldo total pagado por la empresa a los 5 empleados es: " <<
sueldot << endl;
system("pause");
}
float bonificacion(int basico, float porcentaje) {
float valor = 0;
valor = (basico * porcentaje);
return valor;
}

También podría gustarte