Beruflich Dokumente
Kultur Dokumente
(PNFI)
ALGORITMICA Y PROGRAMACION
Algortmica y Programacin
if (emp[e].salario>mayor)
{
mayor=emp[e].salario;
pmay=e;
}
if (emp[e].salario<menor)
{
menor=emp[e].salario;
pmen=e;
}
}
cout << "El trabajador con MAYOR salario",emp[pmay].nombre << endl;
cout << El trabajador con MENOR salario",emp[pmen].nombre << end;
}
2. A partir de la declaracin de las siguientes estructuras realice un programa en
C++ que lea el array ats y devuelva los datos (nombre, pas, deporte) del atleta
que ha ganado mayor nmero de medallas.
struct datos
{
char nombre[40];
char pais[25];
};
struct atleta
{
char deporte[30];
struct datos pers;
int nmedallas;
};
struct atleta ats[30];
#include <iostream>
using namespace std;
struct datos
{
char nombre[40];
char pais[25];
};
struct atleta
{
char deporte[30];
Algortmica y Programacin
int nmedallas;
struct datos pers;
};
//Array de Estructuras
struct atleta ats[3];
void main()
{
int a,posmay,maynmed=0;
for(a=0;a<3;a++)
{
cout << Nombre: " << endl;
cin >> ats[a].pers.nombre;
cout << "Pais: "<<endl;
cin >> ats[a].pers.pais;
cout <<"Deporte: "<<endl;
cin >> ats[a].deporte;
cout << "Numero de Medallas: "<<endl;
cin >> ats[a].nmedallas;
}
//nmed=ats[0].nmedallas;
for(a=1;a<3;a++)
{
if(ats[a].nmedallas>maynmed)
{
posmay=a;
maynmed=ats[a].nmedallas;
}
}
cout <<"****DATOS DEL ATLETA CON MAYOR NUMERO DE
MEDALLAS****" << endl;
cout << "NOMBRE: ",ats[posmay].pers.nombre << endl;
cout << "PAIS: ",ats[posmay].pers.pais << endl;
cout <<"DEPORTE: ",ats[posmay].deporte << endl;
cout <<"NUMERO DE MEDALLAS: ",ats[posmay].nmedallas << endl;
}
Algortmica y Programacin
3. Hacer un programa para ingresar los nombres y las notas de los alumnos de
Lenguaje de Programacin y se reporte:
a) Una Lista en orden Alfabtico.
b) Una Lista en orden de Mrito.
#include<iostream>
#include<string.h>
using namespace std;
struct Alumno
{
char nombre[40];
float nota;
};
void numAlumnos(int &n);
void ingreso(Alumno A[], int n);
void reporte(Alumno A[], int n);
void ordenAlfabetico(Alumno A[], int n);
void ordenMerito(Alumno A[], int n);
int main()
{
Alumno A[100];
int n;
numAlumnos(n);
Algortmica y Programacin
ingreso(A,n);
ordenAlfabetico(A,n);
cout<<"Lista en orden alfabetico"<<endl;
reporte(A,n);
ordenMerito(A,n);
cout<<"Lista en orden de Merito"<<endl;
reporte(A,n);
return 0;
}
void numAlumnos(int &n)
{
do{
cout<<"Numero de alumnos : ";
cin>>n;
}while(n<=0);
}
void ingreso(Alumno A[ ], int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<"Datos del alumno"<<i+1<<endl;
cout<<"Nombre : ";
cin.get();
cin.getline(A[i].nombre,40);
do{
cout<<"Nota : ";
cin>>A[i].nota;
}while(A[i].nota<0 || A[i].nota>20);
}
}
void reporte(Alumno A[ ], int n)
{
int i;
for(i=0;i<n;i++)
cout<<A[i].nombre<<"t "<<A[i].nota<<endl;
}
void ordenAlfabetico(Alumno A[] , int n)
{
int i,j;
Algortmica y Programacin
Alumno temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(A[i].nombre,A[j].nombre)>0)
{
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
void ordenMerito(Alumno A[], int n)
{
int i,j;
Alumno temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(A[i].nota<A[j].nota)
{
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
4. Desarrolle un programa que lea del terminal la informacin de varios clientes,
que guarda en un vector de clientes, y luego recorre el vector para detectar los
clientes que tienen un saldo superior a 100.0 y escribe en la pantalla sus nombres.
#include <iostream>
using namespace std;
#define MAX 100
struct
{
int id;
char nom[20];
// nombre
float saldo;
} Tcliente;
Algortmica y Programacin
struct
{
int numero;
Tcliente cliente[MAX];
}Tlista;
void main ()
{
Tlista mis_clientes;
int i;
cout <<"Escribe el numero de clientes" << endl;
cin >>mis_clientes.numero;
for (i=0; i<mis_clientes.numero; i++)
{
cout << "Escribe idenfificador, nombre y saldo" << endl;
cin >>mis_clientes.cliente[i].id;
cin >>mis_clientes.cliente[i].nom;
cin >>mis_clientes.cliente[i].saldo;
};
for (i=0; i<mis_clientes.numero; i++)
if (mis_clientes.cliente[i].saldo > 100.0)
cout <<" El cliente es:",mis_clientes.cliente[i].nom);
}
5. Escriba un programa que imprima una lista de amigos guardados en una
agenda (tipo estructura).
/* Lista los campos de una agenda construida en el programa */
#include <iostream>
using namespace std;
#define N 3
main()
{
struct agenda
{
char nombre[25];
Algortmica y Programacin
char telefono[10];
int edad;
};
struct agenda
amigos[N]={{"Pepe","913472314",18},{"Juan","915547623",19},{"Rosa","917456
778",21}};
int i;
for (i=0; i<N; ++i)
{
cout
<<
Amigo
Telfono
Edad
",amigos[i].nombre,
amigos[i].telefono,amigos[i].edad << endl;
}
}
6. Calcular el sueldo mensual de un empleado que trabaja por horas, el pago de
cada hora trabajada depende de su categora:
CATEGORA
PAGO X HORA
26.90
24.30
21.50
calcularSueldo(e);
imprimir(e);
system("PAUSE");
return 0;
}
void ingresar(empleado &d){
cout<<"Ingresar nombre del empleado: ";
cin>>d.nom;
cout<<"Ingresar categoria: ";
cin>>d.cat;
cout<<"Ingresar cantidad de horas trabajadas: ";
cin>>d.horas;
}
void calcularSueldo(empleado &q){
switch(q.cat){
case 'A': q.pHora=26.90; break;
case 'B': q.pHora=24.30; break;
case 'C': q.pHora=21.50; break;
}
q.sueldo=q.horas*q.pHora;
if(q.horas>150)
q.bonf=0.05*q.sueldo;
else
q.bonf=0;
q.sueldo=q.sueldo+q.bonf;
}
void imprimir(empleado a){
cout<<"Nombre\tCateg\tHoras\tPago\tBonf\tSueldo"<<endl;
<<a.nom<<"\t"<<a.cat<<"\t"<<a.horas<<"\t"<<a.pHora<<"\t"<<a.bonf<<"\t"<<a.s
ueldo<<endl;
}
Algortmica y Programacin
Algortmica y Programacin
Algortmica y Programacin
Algortmica y Programacin
Algortmica y Programacin
Algortmica y Programacin