Вы находитесь на странице: 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;
}

Вам также может понравиться