1. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
PRACTICAS # 4 - 5 - 6
PRACTICA Nº 4
P4.1.-Dados dos vectores de tipo entero A y B, de N elementos,construya un programa
a traves de un menú de opciones para realizar la siguientes operaciones:
a) suma
b) producto de un escalar por un vector
c) producto escalar
d) modulos
e) existencia del angulo entre dos vectores
f) producto vectorial
g) el area del paralelogramo formado por Ay b
h) vector unitario de A
i) vector unitario de B
.A continuación su codificacion en c++
#include <iostream.h>
#include <conio.h>
const int N=20;
void main()
{float s=0.0,angulo;
int n,i,A[N],B[N],esc,q=0,p=0,op;
cout<<"ingrese numero de terminos"<<endl;
cin>>n;
for(i=0;i<n;i++)
{cout<<"ingrese datos del vector A:";cin>>A[i];
}
for(i=0;i<=n;i++)
{cout<<"ingrese datos del vector B:";cin>>B[i];
}
cout<<"MENU DE OPCIONES"<<endl;
cout<<"----------------"<<endl;
cout<<"[1]: suma de vectores:"<<endl;
cout<<"[2]: producto de un escalar por un vector:"<<endl;
cout<<"[3]: modulo de los vectores:"<<endl;
cout<<"[4]: angulo entre dos vectores:"<<endl;
cout<<"[5]: vector unitario de A:"<<endl;
cout<<"[6]: vector unitario de B:"<<endl;
cin>>op;
switch(op)
{case 1:{for(i=0;i<n;i++)
cout<<A[i]+B[i]<<",";
}break;
case 2:{cout<<"ingrese escalar:";cin>>esc;
Página 1
2. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for(i=0;i<n;i++)
{cout<<A[i]*esc<<",";
}
cout<<endl;
for(i=0;i<n;i++)
{cout<<B[i]*esc<<",";
}
}break;
case 3:{for(i=0;i<n;i++)
{p=p+A[i]*A[i];
q=q+B[i]*B[i];
}
cout<<"el modulo de A es:t"<<sqrt(p)<<endl;
cout<<"el modulo de B es:t"<<sqrt(q)<<endl;
}break;
case 4:{for(i=0;i<n;i++)
{p=p+A[i]*A[i];
q=q+B[i]*B[i];
}
{for(i=0;i<n;i++)
p[i]=A[i]*B[i];
}
{for(i=0;i<n;i++)
s=s+p[i];
}
angulo=s/(sqrt(p)*sqrt(q));
cout<<"el angulo es arcocos de:"<<angulo;
}break;
case 5:{{for(i=0;i<n;i++)
p=p+A[i]A*[i];
}
cout<<"el vector unitario de A es:";
{ for(i=0;i<n;i++)
cout<<A[i]/sqrt(p)<<",";
}
}break;
case 6:{{for(i=0;i<n;i++)
q=q+B[i]*B[i];
}
cout<<"el vector unitario de B es:";
{ for(i=0;i<n;i++)
cout<<A[i]/sqrt(q)<<",";
}
}break;
default:cout<<"nopcion errada.....";
}
}
Página 2
3. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
P4.1.-Dados dos vectores tipo entero A y B, de Nelementos, construya un programa a
traves de un menu de opciones para realizar las siguientes operaciones.
a)suma
b)producto de un escalar por un vector
c)producto escalar
d)Modulos
e)existencia de angulos entre los vectores
f)producto vectorial
g)El area del parelogramo formado por A y B
h)vector unitario de A
i)vector unitario de B
#include<iostream.h>
#include<conio.h>
#define max 10
void main(){
int n,i,op,A[max],B[max],S[max];
float a,s,C[max],D[max];;
char opcion;
cout<<"ingrese el numero de elementos : ";
cin>>n;
for(i=0;i<n;i++){
cout<<"A["<<(i+1)<<"]=";cin>>A[i];
gotoxy(12,i+2);
cout<<"B["<<(i+1)<<"]=";cin>>B[i];
}
gotoxy(12,10);cout<<"M E N U ";
gotoxy(10,12);cout<<"[1] : CALCULAR SUMA ";
gotoxy(10,13);cout<<"[2] : PRODUCTO DE UN ESCALAR POR UN VECTOR ";
gotoxy(10,14);cout<<"[3] : PRODUCTO ESCALAR ";
gotoxy(10,15);cout<<"[4] : MODULOS";
/*gotoxy(10,16);cout<<"[5] : EXISTENCIA DEL ANGULO ENTRE DOS VECTORES ";
gotoxy(10,17);cout<<"[6] : PRODUCTO VECTORIAL ";
gotoxy(10,18);cout<<"[7] : EL AREA DEL PARELELOGRAMO FORMADO POR A y B";
gotoxy(10,19);cout<<"[8] : VECTOR UNITARIO DE A ";
gotoxy(10,20);cout<<"[9] : VECTOR UNITARIO DE B ";
*/gotoxy(10,17);cout<<" ingrese una opcion ";
cin>>op;
switch(op){ s=0;
case 1 : for(i=0;i<n;i++){
S[i]=A[i]+B[i];
cout<<"S["<<(i+1)<<"]="<<S[i]<<endl;
} break;
case 2 :cout<<"ingrese cantidad del escalar: ";cin>>a;
for(i=0;i<n;i++){
Página 3
4. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
C[i]=a*A[i];
D[i]=a*B[i];
cout<<"C["<<(i+1)<<"]="<<C[i]<<"t";
cout<<"D["<<(i+1)<<"]="<<D[i]<<endl;
} break;
case 3 :s=0;
for(i=0;i<n;i++){
a=A[i]*B[i];
s=s+a;
}
cout<<"producto escalar= :"<<s;
break;
case 4 : for(i=0;i<n;i++){
a=sqrt(pow(A[i],2));
}
cout<<"Modulo de A :"<<a;
break;
}
}
P4.2.- Hacer un programa que lea los nombres, edades y tallas de N atletas. N es
declarado como constante. Trabaje con 10 (atletas). El programa debe calcular
a) El promedio de las edades y de las tallas.
b) determinar cuantos atletas son menores de edad (menores de 18 años) y
cuantos atletas son mayores de edad.
Respuesta:
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
struct datos
{
char nombre[50];
int edad;
float talla;
};
void main()
{
const N=2;
int Mayores_edad=0, menores_edad=0;
float Sed=0, prom_edad;
float Stall=0, prom_talla;
datos mante_datos[N];
gotoxy(9,3);
cout<<"INGRESE LOS DATOS DE LOS ATLETAS : n";
cout<<"t----------------------------------nn";
Página 4
5. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for(int i=0;i<N;i++)
{
cout<<"tingrese los datos del atleta Nº "<<i+1<<"nn";
cout<<"ttnombre: ";
cin>>mante_datos[i].nombre;
cout<<"ttedad: ";
cin>>mante_datos[i].edad;
cout<<"tttalla: ";
cin>>mante_datos[i].talla;
cout<<"tt-------------nn";
Sed=Sed + mante_datos[i].edad;
Stall=Stall + mante_datos[i].talla;
if(mante_datos[i].edad>=18)
{
Mayores_edad=Mayores_edad + 1;
}
else
{
menores_edad=menores_edad+1;
}
}
clrscr();
gotoxy(9,5);
cout<<setiosflags(ios::left);
cout<<setw(10)<<"ttnombre";
cout<<setw(8)<<"ttedad";
cout<<setw(5)<<"tttalla"<<endl;
for(int c=0;c<N;c++)
{
cout<<setw(10)<<"tt"<<mante_datos[c].nombre;
cout<<setw(10)<<"tt"<<mante_datos[c].edad;
cout<<setw(2)<<"tt"<<mante_datos[c].talla<<endl;
}
prom_edad=Sed/N;
prom_talla=Stall/N;
gotoxy(25,10);
cout<<"-------------------------------------"<<endl;
cout<<"tttel promedio de edades es:"<<prom_edad<<endl;
cout<<"tttel promedio te tallas es: "<<prom_talla<<endl;
cout<<"tttcuantas personas son mayores de edad:
"<<Mayores_edad<<endl;
cout<<"tttcuantas personas son menores de edad:
"<<menores_edad<<endl;
}
P4.2.-hacer un programa que lea nombres, edades y tallas de N atletas. N es
declarado como constante.Trabaje con 10 (atletas).
Página 5
6. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
el PROGRAMA DEBE CALCULAR :
A)El promedio de las edades y de las tallas.
B)Determinar cuantos atletas son menores de edad(menores de 18) y cuantos
atletas son mayores de edad.
C)Determinar los nombres de los atletas que son mas altos que el promedio.
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main(){
float se,st,pe,pt,eme,ema;
struct datos{
int edad,talla;
char nombre[20];
};
datos atleta[3];
int i;
for( i=0;i<3;i++){
cout<<"nombre["<<(i+1)<<"]=";
gets(atleta[i].nombre);
cout<<"edad["<<(i+1)<<"]=";
cin>>atleta[i].edad;
cout<<"talla["<<(i+1)<<"]=";
cin>>atleta[i].talla;
}
se=0; st=0;
for( i=0;i<3;i++){
se=se+atleta[i].edad;
st=st+atleta[i].talla;
}
pe=se/3;
pt=st/3;
cout<<"el promedio de edad es"<<pe<<endl;
cout<<"el promedio de tallas"<<pt<<endl;
eme=0;ema=0;
for(i=0;i<3;i++){
if(atleta[i].edad<18)
eme=eme+1;
else
ema=ema+1;
}
cout<<"menores de edad: "<<eme<<endl;
cout<<"mayores de edad: "<<ema<<endl;
for(i=0;i<3;i++){
if(atleta[i].talla>pt){
cout<<"nombre de atletas mas altos que el promedio"<<endl;
puts(atleta[i].nombre);
Página 6
7. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
}
}
}
P4.2.- Hacer un programa que lea los nombres, edades y tallas de N atletas. N es
declarado como constante. Trabaje con 10 atletas. El programa debe calcular:
a. El promedio de las edades y de las tallas.
b. Determinar cuantos atletas son menores de edad (menores de 18 años) y cuantos
son mayores de edad.
c. Determinar los nombres de los atletas que son mas altos que el promedio.
SOLUCION:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main()
{
int i,n=0;
float pt=0,pe=0;
struct datos
{
int edad;
float talla;
char nombre[20];
};
datos personas[10];
cout<<"ingrese sus datos"<<endl;
for(i=0;i<10;i++)
{
cout<<" nombre ["<<i<<"]";
gets(personas[i].nombre);
cout<<" edad ["<<i<<"]";
cin>>personas[i].edad;
cout<<" talla ["<<i<<"]";
cin>>personas[i].talla;
}
for(i=0;i<10;i++)
{
pe=(pe+personas[i].edad);
pt=(pt+personas[i].talla);
if(personas[i].edad<18)
n=n+1;
}
pe=pe/10;
pt=pt/10;
Página 7
8. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<"El promedio de las edades es:"<<pe<<endl;
cout<<"El promedio de la tallas es:"<<pt<<endl;
cout<<"El numero de atletas menores de edad es:"<<n<<endl;
cout<<"El numero de atletas mayores de edad es:"<<10-n<<endl;
for(i=0;i<10;i++)
{
if(personas[i].talla>pt)
{puts(personas[i].nombre);
cout<<" es mas alto que el promedio"<<endl;
}
}
}
P4.3.-Hacer un programa que busque un nombre dentro de un arreglo de nombres
de tamano N, donde N es declarado como constante N=4.
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main(){
int a,n;
struct datos{
char nombre[20];
};
datos LISTA[20];
int i;
cout<<"ingrese cantidad de nombres: ";
cin>>n;
for( i=0;i<n;i++){
cout<<"nombre["<<(i+1)<<"]=";
gets(LISTA[i].nombre);
}
cout<<"ingrese numero del nombre :";
cin>>a;
for( i=0;i<n;i++){
if (i==(a-1)){
cout<<"n"<<"el nombre buscado es nombre["<<n<<"]=";
puts(LISTA[i].nombre);
}
}
}
P4.3.-//Problema 3 de la practica 4
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
Página 8
9. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
int i;
int main()
{
const int MAX=4;
int encontrado=0;
int nBuscar;
int indice;
int notas[MAX]={11,14,10,18};
cout<<"nIngrese numero a buscar : " ;
cin>>nBuscar;
for(i=0;i<MAX;i++)
{
if(nBuscar==notas[i])
{
encontrado=1;
indice=i;
}
}
if(encontrado)
cout<<"n El numero ocupa la posicion " <<(indice +1);
else
cout<<" El numero no se encuentra en el arreglo";
getch();
return 0;
}
P4.3.- Hacer un programa que busque un nombre dentro de un arreglo de nombres de
tamaño N, donde N es declarado como constante N=4.
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main()
{
const int MAX=4;
int buscar;
int primero=0;
int ultimo=MAX;
int central;
int encontrado=0;
int nombre[MAX]={0,1,2,3};
cout<<"nIngrese numero a buscar:";
cin>>buscar;
while((primero<=ultimo)&&(!encontrado))
Página 9
10. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
{
central=(primero+ultimo)/2;
if(buscar==nombre[central])
encontrado=1;
else
if(buscar>nombre[central])
primero=central+1;
else
ultimo=central-1;
}
if(encontrado)
cout<<"nEl numero ocupa la posicion: "<<(central+1);
else
cout<<"nEl numero no se encuentra en el arreglo";
getch();
}
P4. 6.-
//----------
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<iomanip.h>
#include<stdlib.h>
int main ()
{ int s;
char RA[10];
char rpta;
char RC[10];
for(int i=0;i<10;i++)
{ RC[0]='a';
RC[1]='b';
RC[2]='c';
RC[3]='d';
RC[4]='e';
RC[5]='a';
RC[6]='b';
RC[7]='c';
RC[8]='d';
RC[9]='e';
}
s=0;
Página 10
11. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
RA[0]=0;
gotoxy(15,3);cout<<".....EXAMEN FINAL....."<<endl;
gotoxy(15,4);cout<<".....****** *****....."<<endl;
for(i=0;i<10;i++)
{ cout<<"Pregunta "<<(i+1)<<"<.....>?: "<<endl;
cout<<"Cual es su repuesta..(a,b,c,d,e): "<<endl;
cin>>rpta;
cout<<endl;
if(rpta==RC[i])
{ s=s+2;
RA[i]=rpta;
}
}
clrscr();
cout<<"nttRespuestas correctas: "<<endl<<endl;
for(i=0;i<10;i++)
{ cout<<"P."<<(i+1)<<": "<<RC[i]<<"t ";
}
cout<<"nnnttRespuestas del alumno: "<<endl<<endl;
for(i=0;i<10;i++)
{ cout<<"P."<<(i+1)<<": "<<RA[i]<<"t ";
}
cout<<"nnntt*****Nota Final*****: "<<s<<endl<<endl;
getch();
return 0;
}
P4.8.- Dados los arrays paralelos con los nombres de Curso, Creditos, y Notas
obtenidas en cada uno de los 50 cursos, que un alumno de Alas Peruanas lleva
para completar su carrera. Se pide calcular el promedio ponderado del alumno,
teniendo en cuenta que este se halla asi. ∑Creditos*Nota/( ∑creditos).
#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
float n,i,P,S;
float PP;
char a[100];
int b[100];
int c[100];
P=0;S=0;
do
{
cout<<"ingrese numero de cursos:";
cin>>n;
Página 11
12. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
while(n<=0);
for(i=1; i<=n; i++)
{
cout<<"curso";cin>>a[i];
cout<<"credito";cin>>b[i];
cout<<"nota";cin>>c[i];
}
for(i=1;i<=n;i++)
{
P=b[i]*c[i]+P;
S=S+b[i];
}
PP=P/S;
cout<<"promedio ponderado: "<<PP;
getch();
}
P4.9.-
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
//#include<math.h>
#include<iomanip.h>
#define max 3
void main()
{
float T[max];
float a[max],b[max];
char c[max],op;
//ingreso de codigo
cout<<"CATEG A: 20%"<<endl;
cout<<"CATEG B: 15%"<<endl;
cout<<"CATEG C: 10%"<<endl;
for(int i=0;i<max;i++)
{cout<<"Ingrese Codigo: ";
cin>>a[i];
}
cout<<"--------------------"<<endl;
//ingreso de IngFam
for(int j=0;j<max;j++)
{cout<<"Ingrese IngFam: ";
cin>>b[j];
Página 12
13. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
cout<<"--------------------"<<endl;
//ingreso de Categ
for(int k=0;k<max;k++)
{cout<<"Ingrese Categ: ";
cin>>c[k];
}
cout<<"--------------------"<<endl;
clrscr();
cout<<setw(5)<<"COD";
cout<<setw(5)<<"tING FAM";
cout<<setw(5)<<"tCATEG";
cout<<setw(5)<<"tMONTO"<<endl;
//pago por categoria
for (int n=0;n<max;n++)
{
switch (op)
{case'A': T[n]=b[n]/0.2;break;
case'B': T[n]=b[n]/0.15;break;
case'C': T[n]=b[n]/0.1;break;
}
}
for(int l=0;l<max;l++)
{cout<<"n";
cout<<setw(5);
cout<<a[l];
cout<<"t";
cout<<setw(5);
cout<<b[l];
cout<<"t";
cout<<setw(5);
cout<<c[l];
cout<<"t";
cout<<setw(5);
cout<<T[l]<<endl;
}
}
P4.11.- Calcular la media, varianza y desviación estándar de N valores, aplicando las
siguientes fórmulas:
Media (x) = (Xi) / n
Página 13
14. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
Varianza (V) = (Xi - X)2 / n
Desviación Estándar (D) = V(V)
Desarrollo:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<math.h>
#define MAX 10
void main()
{
int A[MAX];int n, sum;
float Media,Sup,Est,Var; Sup=0; sum=0;
char dato;
dato='s';
do
{ clrscr();
cout<<"Ingrese la cantidad de datos";cin>>n;cout<<endl;
cout<<"Ingreso de datos";cout<<endl;
for(int i=1;i<=n;i++)
{cout<<"Ingrese el valor["<<i<<"]:";
cin>>A[i];
}
for(int j=1;j<=n;j++)
{sum = sum + A[j];}
Media = sum/n;
for(int k=1;k<=n;k++)
{Sup = Sup + ((A[k]-Media)*(A[k]-Media)) ;}
Var=Sup/n;
Est=sqrt(Var);
gotoxy(20,16);
cout<<"La media es :"<<Media;cout<<endl;
gotoxy(20,18);
cout<<"La varianza es:"<<Var;cout<<endl;
gotoxy(20,20);
cout<<"La desviacion estandar es:"<<Est;cout<<endl;
gotoxy(20,29);
cout<<"desea continuar [s/n] :";cin>>dato;
Página 14
15. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}while(dato!='N'&&dato!='n');
getch();
}
P4.13.-
#include <iostream.h>
void main()
{
int pe,j,i,su,N[5],P[5];
float pro;
cout<<"ingrese nota: "<<endl;
for(i=0;i<5;i++)
{
cout<<"N["<<(i+1)<<"]=";
cin>>N[i];
}
cout<<"ingrese pesos"<<endl;
for(j=0;j<5;j++)
{
cout<<"P["<<(j+1)<<"]=";
cin>>P[j];
}
// operaciones
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
su=i*j;
su=su+i*j;
pe=j;
pe=pe+j;
}
pro=su/pe;
// sslida
cout<<"promedio: "<<pro;
}
P4.16.-
//-----------
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<stdio.h>
Página 15
17. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for( i=0;i<m;i++)
{ sc=sc+C[i][j];
}
a[j]=sc;
}
cout<<"n**Total de productos por Tipo**"<<endl;
for(j=0;j<n;j++)
{ cout<<"Tipo "<<(j+1)<<": "<<a[j]<<endl<<endl;
}
}
void sumaT(int C[maxa][maxb],int m,int n)
{ int sT;
sT=0;
for(int i=0;i<m;i++)
{ for(int j=0;j<n;j++)
{ sT=sT+C[i][j];
}
}
cout<<"n**Total de productos **"<<endl;
cout<<"t"<<sT<<endl<<endl;
}
int main()
{ int C[maxa][maxb];
int m, n,op;
cout<<"nntt*****ALMACENES DEL ORIENTE******"<<endl;
cout<<"tt ========= === ======="<<endl;
cout<<"Ingrese el numero de almacenes: ";
cin>>m;
cout<<"Ingrese el numero de tipos de productos: ";
cin>>n;
op=0;
while(op!=6)
{ cout<<"nnttttMENU DE OPCIONES"<<endl;
cout<<"tt1.- Ingresar datos "<<endl;
cout<<"tt2.- Mostrar almacenes "<<endl;
cout<<"tt3.- Mostrar cantidad en cada almacen"<<endl;
cout<<"tt4.- Mostrar cantidad por tipo"<<endl;
cout<<"tt5.- Mostrar cantidad total de productos"<<endl;
cout<<"tt6.- SALIR"<<endl;
cout<<"nIngresa tu opcion-->";cin>>op;
cout<<endl<<endl;
clrscr();
switch(op)
{ case 1: leer(C,m,n);break;
case 2: mostrar(C,m,n);break;
case 3: sumaf(C,m,n);break;
case 4: sumac(C,m,n);break;
case 5: sumaT(C,m,n);break;
}
Página 17
18. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
getch();
return 0;
}
P4.19.-Una matriz cuadrada A es simétrico si A[i][j]=A[j][i]; para todo i,j .determinar si
una matriz de n*n cuyos valores son ingresados es simétrica.
#include<iostream.h>
#define max 10
void main(){
int i,j,n,a[max][max],cont=0;
cout<<"ingrese numero de orden: ";
cin>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<"["<<(i+1)<<","<<(j+1)<<"]=";
cin>>a[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<a[i][j]<<"t";
}
cout<<endl;
}
cout<<endl;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if( a[i][j]==a[j][i])
cont++;
}
}
if (cont==n*n)
cout<<"es simetrica";
else
cout<<"no es simetrica";
}
P4.19.- Una matriz cuadrada A es simétrico si A[i,j]=A[j,i], para todo i,j. Determinar si
una matriz de n x n cuyos valores son ingresados es simetrica.
#include <iostream.h>
#include <conio.h>
int main()
Página 18
19. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
{
int M[3][3], M1[3][3], i, j;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
gotoxy (j*3+10, i*2+9);
cin>>M[i][j] ;
}
}
gotoxy (17,11);
cout<<" su transpuesta: ";
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
gotoxy (i*3+34, j*2+9);
M1[j][i] = M[i][j] ;
cout<<M1[j][i] ;
}
}
gotoxy (10,15);
if (M1[i][j]==M[i][j])
{ cout<<"entonces la matriz ingresada es simetrica";
}
else
{ cout<<"entonces la matriz ingresada NO es simetrica";
}
getch();
return 0;
}
P4.20.- Dada una matriz A (M*N) de tipo entero, construya un programa para calcular la
transpuesta de dicha matriz. La transpuesta de una matriz se obtiene al escribir las filas
de la matriz A como columnas.
SOLUCION:
#include<iostream.h>
#include<conio.h>
void main()
{
Página 19
20. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
int M[2][3];
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
gotoxy(i*3+10,j*2+10);cin>>M[i][j];
}
}
}
P4.20.- Dada una matriz A(MxN) de tipos enteros construya un programa para calcular
la transpuesta de dicha matriz.
Respuesta
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
void main()
{
float N,M,num[20][20];
gotoxy(9,3);
cout<<"ingrese el numero de filas: ";
cin>>M;
gotoxy(9,4);
cout<<"ingrese el numero de columnas: ";
cin>>N;
gotoxy(1,7);
for (int a=0; a<M; a++)
{
for (int b=0; b<N; b++)
{
cout << "ttNumero [" << a+1 << "], [" << b+1 << "] : ";
cin >> num[a][b];
}
}
gotoxy(13,M*N+10);
cout << "la matriz es :nn";
for(int c=0; c<M; c++)
{
gotoxy(15,M*N+12+c);
for(int d=0; d<N; d++)
cout<<setw(5)<<num[c][d] << " ";
cout << endl;
}
gotoxy(13,M*N+20);
cout<<"la transpuesta es:"<<endl;
for(int f=0; f<N; f++)
Página 20
21. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
{
gotoxy(15,M*N+22+f);
for(int g=0; g<M; g++)
cout<<setw(5)<<num[g][f] << " ";
cout << endl;
}
}
P4.21.- Escriba un programa que genere e imprima un cuadrado mágico de dimensión
N (positivo, entero e impar). Un cuadrado mágico es una matriz cuadrada de orden N,
que contiene los números naturales del 1 al N*N, y donde la suma de cualquiera de los
renglones, columnas o diagonales principales siempre es la misma:
Desarrollo:
//cuadrado magico
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
const int max= 20;
int f,c,i,n;
int a[max][max];
char dato;
dato='s';
do
{ clrscr();
do{
clrscr();
cout<<"ingrese n: ";cin>>n;
}while(!((n>=3)&&(n%2!=0)&&(n<=19)));
f=1;c=n/2+1;
i=1;
do{
a[f][c]=i;
if(i%n==0)
{f++;
if(f==n+1)
f=1;
}
else
{f--;
if(f==0)
f=n;
Página 21
22. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
c++;
if(c==n+1)
c=1;
}
i++;
}while(i<=n*n);
for(f=1;f<=n;f++)
{for(c=1;c<=n;c++)
{cout<<setw(4)<<a[f][c];
}cout<<endl;
}
gotoxy(20,22);
cout<<"desea continuar [s/n] :";cin>>dato;
}while(dato!='N'&&dato!='n');
getch();
}
P4.21.-Escriba un programa que genere e imprimaun cuadrado magico de dimension N
(N es entero, positivo e impar). Un cuadrado magico es una matriz de orden N,que
contiene los numeros reales del 1 al N*N,donde la suma de cualquiera de los
reglones,columnas o diagonales principales es siempre la misma.
-el numero se introduce en la casilla central de la primera fila
- cada numero siguiente se coloca en la casilla correspondiente a la fila anterior y
columna posterior.
- Si el numero que sigue es multiplo de N no se aplica la regla anterior,sino que se
coloca en la casilla posterior e igual columna.
- se considera que la fila anterior a la primera es la ultima, y la columna posterior a
la ultima es la primera.
-A continuación la codificacion en c++
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
void dibujar(int n);
void main()
{int n;
cout<<"CUADRADO MAGICO"<<endl;
cout<<"---------------"<<endl;
do{
cout<<"ingrese un numero:t ";cin>>n;
}while(n%2==0);
dibujar(n);
system("PAUSE");
}
Página 22
23. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
void dibujar(int n)
{int a[n][n];
int i,j,c;
i=2;
j=n/2;
for(c=1;c<=n*n;c++)
{i=i-1;
j=j+1;
if(j>n)
j=1;
if(i<1)
i=n;
a[i][j]=c;
if(c%n==0)
{j=j-1;
i=i+2;
}
}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<"t";
cout<<endl;
}
}
Página 23
24. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
PRACTICA Nº 5
P5.1.-Escriba una function para evaluar si un numero es o no primo.
.A continuación su codificacion en c++
#include <iostream.h>
#include <conio.h>
int primo(int x);
void main()
{int n,R;
char dato='s';
do{clrscr();
cout<<"ingrese numero:t";cin>>n;
R=primo(n);
if(R==2)
cout<<"el numero es primon";
else
cout<<"el numero no es primon";
cout<<"desea continuar(s/n)....";cin>>dato;
}while(dato!='n'&&dato!='N');
}
int primo(int n)
{int i;
int cont=0;
for(i=1;i<=n;i++)
{if((n%i)==0)
cont++;
}
return(cont);
}
P5.1.-Escriba una funcion para evaluar si un numero es primo o no.
#include<iostream.h>
#include<conio.h>
int primo(int n)
{
int i;
i=n/2;
while(i>1)
{
if(n%i==0)
return 0;
i=i-1;
Página 24
25. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
return 1;
}
void main()
{
int n;
cout<<"ingrese un numero: ";
cin>>n;
if(primo(n))
cout<<n<<" ES PRIMO"<<endl;
else
cout<<n<<" NO ES PRIMO"<<endl;
}
P5.2.-Escriba un programa usando la funcion anterior para imprimir los numeros primos
en el intervalo de 1 a 200:
#include<iostream.h>
#include<conio.h>
int primo(int n)
{
int i;
i=n/2;
while(i>1)
{
if(n%i==0)
return 0;
i=i-1;
}
return 1;
}
void main()
{
int j;
cout<<"NUMEROS PRIMOS"<<endl;
for(j=1;j<=200;j++)
if(primo(j))
cout<<j<<"t";
}
P5.2.-
#include<iostream.h>
#include<conio.h>
#include<math.h>
long U[200];
Página 25
26. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
int EsPrimo(int T)
{int sw;
long i;
sw=1;
for(i=2;i<=T-1;i++)
{ if(T%i==0)
{ sw=0;
}
}
return(sw);
}
//---------------------------------------------
long Primo (int N)
{int cont,sw;
long k,num;
cont=0; num=0;
while(cont<N)
{num++;
if(EsPrimo(num)==1)
{ cont++;
}
}
return(num);
}
void main(void)
{int k;
clrscr();
for(k=1;k<=25;k++){
U[k]=Primo(k);
}
for(k=1;k<=25;k++)
{cout<<k<<"t"<<U[k]<<endl;
}
}
P5.2.- Escriba un programa usando la función anterior para imprimir los números primos
en el intervalo de 1 a 200.
SOLUCION:
#include<iostream.h>
#include<conio.h>
int primo(int n)
{
int i;
i=n/2;
while(i>1)
{
if(n%i==0)
Página 26
27. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
return 0;
i=i-1;
}
return 1;
}
void main()
{
int j;
cout<<"NUMEROS PRIMOS"<<endl;
for(j=1;j<=200;j++)
if(primo(j))
cout<<j<<"t";
}
P5.3.-Escriba una funcion para calcular el numero combinatorio de n objetos tomados
de r en r:
#include<iostream.h>
int NumCombinatorio(int,int);
void main(){
int n,r,nc;
cout<<"ingrese cantidad de objetos n: ";cin>>n;
cout<<"ingrese nºde objetos tomados de r en r: ";cin>>r;
nc=NumCombinatorio(n,r);
cout<<"el numero conbinatorio es : "<<nc;
}
int NumCombinatorio(int n,int r){
int i,c=1;
for(i=1;i<r;i++){
c=c*(n-i+1)/i;
}
return c;
}
P5.3.- Escriba una funcion para calcular el numero combinatorio de n objetos formados
de r en r.
#include <iostream.h> //no sale!
#include <iomanip.h>
#include <conio.h>
int main()
{
int M[2][1];
int M1[2][3],M2[2][3], i, j;
for (int a=0; a<2; a++)
{
for (int b=0; b<1; b++)
{
cout<<"Numero["<<a+1<<"],["<<b+1<<"]:";
Página 27
28. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cin>>M[a][b] ;
}
}
clrscr();
cout<<"nn";
for (int c=0; c<2; c++)
{
for(int d=0;d<1;d++)
cout<<setw(5)<<M[c][d]<<" ";
cout<<endl;
}
gotoxy (10,3);
cout<<"=";
if (M[1][1]==M[2][1])
{
gotoxy (17,3);
cout<<"1" ;
}
if (M[2][1]==0)
{
gotoxy (17,3);
cout<<"1" ;
}
getch();
}
P5.4.-Escriba un programa que determine la potencia m elevado a la n siendo m un
numero real y n un numero entero. Considere que n puede ser positivo ,negativo o
cero .
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
float potencia(float b, int e)
{ int p, i;
p=1;
for(i=0; i<abs(e); i++)
p=p*b;
if(e<0)
return(1./p);
else
return p;
}
void main()
{
Página 28
29. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
float m,r;
int n, e;
cout<<"INGRESE LA BASE: ";
cin>>m;
cout<<"ingrese exponente: ";
cin>>n;
r=potencia(m,n);
cout<<m<<" elevada a "<<n<<" = "<<r<<endl;
}
P5.5.-
//Problema 5 de la practica 5
#include<iostream.h>
#include<conio.h>
#include<math.h>
double main()
{
float C,N,T,Monto,i;
cout<<"Ingresar capital inicial: ", cin>>C;
cout<<"Ingresar la tasa de interes: ", cin>>i;
cout<<"ntAnual = 12ntSemestral = 2ntTrimestral = 4ntBimestral =
6ntMensual = 1n",cout<<"Ingresar el periodo: ",cin>>N;
cout<<"Ingresar el numero de años: ", cin>>T;
Monto=C*(pow((1+(i/N)),2*T));
cout<<"El Monto Final es: "<<Monto;
}
P5.6.-
//----------
#include<iostream.h>
long MCM(long,long);
long MCD(long,long);
long Producto(long,long);
//------------
//CALCULAR MCM
//------------
long MCM(long num1,long num2)
Página 29
30. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
{ long mcm,mayor;
if(num1<num2)
{ mayor=num2;
}
else
{ mayor=num1;
}
mcm=mayor;
while(!(mcm%num1==0&&mcm%num2==0))
{ mcm++;
}
return(mcm);
}
//------------
//CALCULAR MCD
//------------
long MCD(long num1,long num2)
{ long mcd,menor;
int k;
if(num1<num2)
{ menor=num1;
}
else
{ menor=num2;
}
for(k=1;k<=menor;k++)
{ if(num1%k==0&&num2%k==0)
{ mcd=k;
}
}
return(mcd);
}
//----------------------------------
//CALCULAR PRODUCTO DEL MCM Y EL MCD
//----------------------------------
long Producto(long A,long B)
{ long prod;
prod=A*B;
return(prod);
}
//-----------------
//FUNCION PRINCIPAL
//-----------------
void main (void)
{ long M,N,MinComMul,MaxComDiv,P1;
cout<<"Ingrese primer numero: ";cin>>M;
cout<<"Ingrese segundo numero: ";cin>>N;
MinComMul=MCM(M,N);
MaxComDiv=MCD(M,N);
Página 30
31. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
P1=Producto(MinComMul,MaxComDiv);
cout<<"nEl MCM de "<<M<<" y "<<N<<" es: "<<MinComMul;
cout<<"nEl MCD de "<<M<<" y "<<N<<" es: "<<MaxComDiv;
cout<<"nEl Producto del MCM y el MCD de "<<M<<" y "<<N<<" es: "<<P1;
}
P5.9.-
//Pregunta 9
//----------
#include<iostream.h>
long double funcionF(float);
int funcionG(float,float);
//-----------------------
//CALCULO DE LA FUNCION F
//-----------------------
long double funcionF(float x)
{ float F;
if(x!=3)
{ F=(x*x+16*x+64)/(x-3);
}
return(F);
}
//-----------------------
//CALCULO DE LA FUNCION G
//-----------------------
int funcionG(float x,float y)
{ float G;
if(x!=3)
{ if(y==0)
{ G=x+15;
}
else
{ if(y>0)
{ G=0;
}
else
{ G=1;
}
}
}
return(G);
}
//-----------------
//FUNCION PRINCIPAL
Página 31
32. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
//-----------------
void main()
{ int var,G1;
float F1;
cout<<"Ingrese el valor de la variable 'x': ";cin>>var;
if(var!=3)
{ F1=funcionF(var);
cout<<"nEl valor de la funcion F es: "<<F1;
G1=funcionG(var,F1);
cout<<"nEl valor de la funcion G es: "<<G1;
}
else
{ cout<<"nLa funcion F no esta definida";
cout<<"nPor consiguiente la funcion G tampoco esta definida";
}
}
P5.10.- Hacer las siguientes funciones:
a) Función que calcule la suma de los elementos de un vector
b) Función que calcule el promedio de los elementos de un vector
c) Función que calcule el mayor de los elementos de un vector
d) Función que calcule el menor de los elementos de un vector
Desarrollo:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#define MAX 10
float Suma(float V[MAX]);
float Prom(float V[MAX]);
float Mayor(float V[MAX]);
float Menor(float V[MAX]);
void main()
{
float A[MAX]; float S,P,Ma,Me;
char dato='s';
do{
clrscr();
cout<<"Ingrese los elementos de la Matriz";cout<<endl;
for(int i=1;i<=MAX;i++)
{
cout<<"Elemento["<<i<<"]:";cin>>A[i];cout<<endl;
}
Página 32
33. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
// Calculo de la suma de los elementos
S = Suma(A);
P = Prom(A);
Ma = Mayor(A);
Me = Menor(A);
cout<<"La suma de los elementos es:"<<S<<endl;
cout<<"El promedio de los elementos es:"<<P<<endl;
cout<<"El elemento mayor es:"<<Ma<<endl;
cout<<"El elemento menor es:"<<Me<<endl;
gotoxy(20,28);
cout<<"desea continuar [s/n] :";cin>>dato;
}while(dato!='N'&&dato!='n');
getch();
}
//////////////////////////////////
float Suma(float V[MAX])
{
float Sum;Sum=0;
for(int i=1;i<=MAX;i++)
Sum=Sum +V[i];
return(Sum);
}
/////////////////////////////////
float Prom(float V[MAX])
{
float Sum;Sum=0; float prome;
for(int i=1;i<=MAX;i++)
{Sum=Sum +V[i];
}
prome=Sum/MAX;
return(prome);
}
/////////////////////////
float Mayor(float V[MAX])
{
float mayor;mayor=-99999;
for(int i=1;i<=MAX;i++)
{ if(V[i]>mayor)
mayor=V[i];
}
return(mayor);
}
Página 33
34. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
/////////////////////////
float Menor(float V[MAX])
{
float menor;menor=99999;
for(int i=1;i<=MAX;i++)
{ if(V[i]<menor)
menor=V[i];
}
return(menor);
}
P5.11.- Convierta en procedimientos las funciones del ejercicio anterior:
a) Procedimiento que calcule la suma de los elementos de un vector
b) Procedimiento que calcule el promedio de los elementos de un vector
c) Procedimiento que calcule el mayor de los elementos de un vector
d) Procedimiento que calcule el menor de los elementos de un vector
Desarrollo:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#define MAX 4
float Suma(float V[MAX]);
float Prom(float V[MAX]);
float Mayor(float V[MAX]);
float Menor(float V[MAX]);
void main()
{
float A[MAX]; int n;
char dato='s';
do{
clrscr();
cout<<"Ingrese los elementos de la Matriz";cout<<endl;
for(int i=1;i<=MAX;i++)
{
cout<<"Elemento["<<i<<"]:";cin>>A[i];cout<<endl;
}
do{
cout<<"Para Hallar la suma de los elementos marque(1)";cout<<endl;
cout<<"Para Hallar el promedio de los elementos marque(2)";cout<<endl;
cout<<"Para Hallar el mayor de los elementos marque(3)";cout<<endl;
cout<<"Para Hallar el menor de los elementos marque(4)";cout<<endl;
cout<<"?Que desea hacer?";cin>>n;
Página 34
35. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
switch(n)
{ case 1 :
{ float suma;
suma = Suma(A);
cout<<"La suma es:"<<suma;
};break;
case 2 :
{float promedio;
promedio=Prom(A);
cout<<"El promedio de los elemento es:"<<promedio;
};break;
case 3 :
{
float mayor;
mayor=Mayor(A);
cout<<"El mayor de los elementos es:"<<mayor;
};break;
case 4 :
{
float menor;
menor=Menor(A);
cout<<"El menor de los elemento es:"<<menor;
};break;
default:
{cout<<"Numero invalido";};break;
}
cout<<"desea continuar [s/n] :";cin>>dato;
}while(dato!='N'&&dato!='n');
gotoxy(20,28);
cout<<"desea crear otra matriz [s/n] :";cin>>dato;
}while(dato!='N'&&dato!='n');
getch();
}
//////////////////////////////////
float Suma(float V[MAX])
{
float Sum;Sum=0;
for(int i=1;i<=MAX;i++)
Sum=Sum +V[i];
return(Sum);
Página 35
36. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
/////////////////////////////////
float Prom(float V[MAX])
{
float Sum;Sum=0; float prome;
for(int i=1;i<=MAX;i++)
{Sum=Sum +V[i];
}
prome=Sum/MAX;
return(prome);
}
/////////////////////////
float Mayor(float V[MAX])
{
float mayor;mayor=-99999;
for(int i=1;i<=MAX;i++)
{ if(V[i]>mayor)
mayor=V[i];
}
return(mayor);
}
/////////////////////////
float Menor(float V[MAX])
{
float menor;menor=99999;
for(int i=1;i<=MAX;i++)
{ if(V[i]<menor)
menor=V[i];
}
return(menor);
}
P5.12.-Hacer los siguientes procedimientos
a)Que determine el mayor de un vector y a que indice corresponde.
#define max 10
int suma(int M[], int n)
{ int i, s;
s=0;
for(i=0; i<n; i++)
s=s+M[i];
return s;
Página 36
37. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
void leervector(char c[], int M[], int n)
{ int i;
for(i=0; i<n; i++)
{ cout<<c<<"["<<(i+1)<<"]=";
cin>>M[i];
}
}
void vervector(char c[], int M[], int n)
{ int i;
cout<<"VECTOR"<<c<<endl;
for(i=0; i<n; i++)
{ cout<<M[i]<<"t";
}
cout<<endl;
}
* que lea una matiz m*n ,que muetre la matriz, que muestra la suma.
*********************************************
#include<iostream.h>
#define max 10
void suma(char[],int M[][max],int N[][max],int m,int n){
int i,j;
cout<<"n"<<"SUMA DE MATRICES "<<endl;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<(M[i][j]+N[i][j])<<"t";
}
cout<<endl;
}
}
void leermatriz(char[],int M[][max],int m,int n){
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<"["<<(i+1)<<","<<(j+1)<<"]=";
cin>>M[i][j];
}
}
}
void veermatriz(char[],int M[][max],int m,int n){
int i,j;
cout<<"n"<<"MATRIZ "<<endl;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<M[i][j]<<"t";
}
Página 37
38. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<endl;
}
}
void main(){
int a[max][max],b[max][max],m,n;
cout<<"ingrese orden del arreglo: ";
cin>>m>>n;
leermatriz("A",a,m,n);
leermatriz("B",b,m,n);
veermatriz("A",a,m,n);
veermatriz("B",b,m,n);
suma("C",a,b,m,n);
}
P5.12.-Hacer los siguiente procedimientos:
a) Que determine el mayor de un vector y a que indice corresponde.
#include <iostream.h>
#include <conio.h>
void main()
{
const int MAX=6; int notas[MAX];
int mayor=0;
int indice=0;
float suma=0;
int j;
for (int i=0;i<MAX;i++)
{
cout<<"ingrese numero: ";
cin>>notas[i];
}
cout<<"nFin de datos";
mayor = notas[0];
for(j=0;j<MAX;j++)
{
suma=suma+notas[j];
if (notas[j]>mayor)
{
mayor=notas[j];
indice=j;
}
}
cout<<"nn La mayor nota es: " <<mayor;
Página 38
39. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<"nn El indice es " <<(indice+1);
getch();
}
b) Que determine el menor elemento de un vector y a que indice
corresponde.
#include <iostream.h>
#include <conio.h>
void main()
{
const int MAX=6; int notas[MAX];
int menor=0;
int indice=0;
float suma=0;
int j;
for (int i=0;i<MAX;i++)
{
cout<<"ingrese numero: ";
cin>>notas[i];
}
cout<<"nFin de datos";
menor = notas[0];
for(j=0;j<MAX;j++)
{
suma=suma+notas[j];
if (notas[j]<menor)
{
menor=notas[j];
indice=j;
}
}
cout<<"nn La menor nota es: " <<menor;
cout<<"nn El indice es " <<(indice+1);
getch();
}
c) Que lea un vector de tamaño n.
e) Que lea una matriz de tamaño m x n.
#include <iostream.h>
#include <conio.h>
void main()
{
Página 39
40. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
int M[2][3],M1[2][3], i, j;
for (i=0; i<2; i++)
{
for (j=0; j<3; j++)
{
gotoxy (j*2+10, i*2+10);
cin>>M[i][j] ;
}
}
getch();
}
f) Que muestre una matriz de tamaño m x n.
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
int main()
{
int M[3][4];
for (int a=0; a<3; a++)
{
for (int b=0; b<4; b++)
{
cout<<"Numero["<<a+1<<"],["<<b+1<<"]:";
cin>>M[a][b] ;
}
}
cout<<"nn";
for (int c=0; c<3; c++)
{
for(int d=0;d<4;d++)
cout<<setw(5)<<M[c][d]<<" ";
cout<<endl;
}
getch();
return 0;
}
g) Que sume los elementos de una matriz de tamaño m x n.
#include <iostream.h>
#include <conio.h>
void main()
{
int M[2][3],M1[2][3], i, j;
Página 40
41. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for (i=0; i<2; i++)
{
for (j=0; j<3; j++)
{
gotoxy (j*2+10, i*2+10);
cin>>M[i][j] ;
}
}
gotoxy (16,11);
cout<<"+";
for (i=0; i<2; i++)
{
for (j=0; j<3; j++)
{
gotoxy (j*2+20, i*2+10);
cin>>M1[i][j] ;
}
}
gotoxy (27,11);
cout<<"=";
for (i=0; i<2; i++)
{
for (j=0; j<3; j++)
{
gotoxy (j*2+30, i*2+10);
cout<<(M1[i][j] + M[i][j]) ;
}
}
getch();
}
h) Que realice la conversión de coordenadas polares (r,θ) a coordenadas
cartesianas (x,y). Si x = r cos(θ) y r = r sin(θ) el ángulo debe estar en radianes. Use
la función CONVRAD
i) Que acepte un número de día, de mes y de año y los visualice en el
formato día/mes/año.
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
struct fecha{
int dia;
int mes;
int anual;
} ;
void main(void)
{
Página 41
42. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
fecha hoy;
cout<<"ingrese el dia : ";
cin>> hoy.dia;
cout<<"Ingrese el mes : ";
cin>> hoy.mes;
cout<<"Ingrese el año : ";
cin>> hoy.anual;
cout<<"la fecha es: ";
cout<< hoy.dia<<"/"<<hoy.mes<<"/"<<hoy.anual;
getch();
}
j) Que los visualice en formato dd/mmmm/año.
k) Que intercambie 2 valores.
P5.13.- Escriba un programa que use un arreglo para almacenar un máximo de 25
calificaciones de un examen y calcule el promedio. Use una función para llenar el
arreglo con las calificaciones, una segunda función para calcular el promedio y una
tercera función para mostrar en la pantalla todas las calificaciones junto con el
promedio calculado.
SOLUCION:
#include<iostream.h>
#include<conio.h>
void llenar(int vect[25]);
float calcularpromedio(int vect[25]);
void main()
{
llenar;
calcularpromedio;
}
void llenar(int vect[25])
{
float i ;
for(i=0;i<25;i++)
{
cout<<"ingrese #";
}
}
float calcularpromedio(int vect[25])
{
int i;
float prom=0;
Página 42
43. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for(i=0;i<25;i++)
{
prom=prom+i;
}
return prom;
}
P5.13.- Escriba un programa que use un arreglo para almacenar un máximo de 25
calificaciones de un examen y calcule el promedio. Use una función para llenar el
arreglo con las calificaciones, una segunda función para calcular el promedio y una
tercera función par mostrar en pantalla todas la calificaciones junto con el promedio
calculado
Respuesta
#include<iostream.h>
#include<conio.h>
int const numero=5;
float nota[numero];
void Llenarcalif(float nota[],int cantidad);
void promedio(float nota[],int cantidad);
void imprimir(float nota[],int cantidad);
void main ()
{
gotoxy(15,3);
cout<<"PROCESAMIENTO DE NOTAS:nn";
Llenarcalif(nota,numero);
clrscr();
gotoxy(8,3);
cout<<"LAS NOTAS Y SU PROMEDIO SON";
imprimir(nota,numero);
promedio(nota,numero);
}
void Llenarcalif(float nota[],int cantidad)
{
for (int i=0; i<cantidad; i++)
{
cout<<"ttingrese la nota["<<i+1<<"] : ";
cin>>nota[i];
}
}
void imprimir(float nota[],int cantidad)
{
for (int i=0; i<cantidad; i++)
{
gotoxy(10,5+i);
cout<<"nota["<<i+1<<"] es: "<<nota[i]<<endl;
}
Página 43
44. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
void promedio(float nota[],int cantidad)
{
float suma_notas=0,prom;
for (int i=0; i<cantidad; i++)
{
suma_notas=suma_notas + nota[i];
}
prom=suma_notas/cantidad;
gotoxy(10,12);
cout<<"El promedio es :"<<prom;
}
P5.13.-
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
#define max 25
void leerVector(char c[],int M[], int n)
{int i;
for(i=0;i<n;i++)
{cout<<"["<<(i+1)<<"]=";
cin>>M[i];
}
}
void verVector(char c[],int M[], int n)
{int i;
cout<<"notas: "<<c<<endl;
for (i=0;i<n;i++)
cout<<M[i]<<"t";
}
int suma(int M[], int n)
{int i,s;
s=0;
for(i=0;i<n;i++)
s=s+M[i];
return s;
}
float prom(int M[], int n)
{float p;
p=suma(M,n)/n;
Página 44
45. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
return p;
}
void main()
{int n,M[max],r;
cout<<"Ingrese numero de notas: ";
cin>>n;
leerVector("M",M,n);
verVector("M",M,n);
//cout<<"suma de notas: "<<suma(M,n)<<endl;
//r=prom(M,n);
cout<<"promedio de notas: "<<prom(M,n)<<endl;
}
Página 45
46. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
PRACTICA Nº 6
P6.1.-Se pide emitir planilla de pago del personal de una empres considerando los
siguientes datos: codigo , area , sueldo basico y horas extras.
El monto de las horas extras se obtiene multiplicando las horas extras trabajadas por el
sueldo basico dividido por 240.El essalud, fnp y afp, representa el 3% del sueldo basico
cada uno.
A continuación su codificacion en c++
#include <iostream.h>
#include <stdlib.h>
# include <stdio.h>
#include <string.h>
const int Max=20;
struct planilla{
char empresa[10];
char codigo[10];
char area[10];
float sueldo;
int horas_extras;
};
void main()
{ planilla P[Max];
int n,horas,i;
float he,pago,descuento,salario=0;
cout<<"ingrese cantidad de trabajadoresn"; cin>>n;
for(i=0;i<n;i++)
{cout<<"Introduce empresa:t"; gets(P[i].empresa);
cout<<"Introduce codigo:t"; gets(P[i].codigo);
cout<<"Introduce area:t"; gets(P[i].area);
cout<<"Introduce sueldo:t"; cin>>P[i].sueldo;
cout<<"Introduce horas extras:t"; cin>>P[i].horas_extras; cout<<endl;
descuento=0.09*P[i].sueldo;
he=(P[i].sueldo*P[i].horas_extras)/240;
pago=(P[i].sueldo+he)-descuento;
cout<<"el pago es:t"<<pago<<endl;
}
system("PAUSE");
}
Página 46
47. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
P6.1.-
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<iomanip.h>
struct ingresos
{float sb;
float he;
};
struct reducciones
{float es;
float snp;
float afp;
};
struct planilla
{char emp[40];
char area[40];
ingresos pers;
reducciones trab;
};
void main()
{planilla fijo;
float hextras,nt,ni,nd;
cout<<"Empresa: ";cin>>fijo.emp;
cout<<"Area: ";cin>>fijo.area;
cout<<"Sueldo basico: ";cin>>fijo.pers.sb;
cout<<"horas extras: ";cin>>hextras;;
fijo.pers.he=(hextras*fijo.pers.sb)/240;
fijo.trab.es=fijo.pers.sb*0.03;
fijo.trab.snp=fijo.pers.sb*0.03;
fijo.trab.afp=fijo.pers.sb*0.03;
ni=fijo.trab.es+fijo.pers.he;
nd=fijo.trab.snp+fijo.trab.es+fijo.trab.afp;
nt=nd+ni;
clrscr();
cout<<"tt BOLETA DE PAGO"<<endl;
cout<<"Empresa: "<<fijo.emp<<endl;
cout<<"Area: "<<fijo.area<<endl;
cout<<setw(10)<<"INGRESOS";
cout<<setw(30)<<"REDUCCIONES";
cout<<setw(10)<<"NETO"<<endl;
cout<<setw(10)<<"Sueldo basico: "<<fijo.pers.sb;
Página 47
48. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<setw(20)<<"Essalud: "<<fijo.trab.es<<endl;
cout<<setw(10)<<" Horas extras: "<< fijo.pers.he;
cout<<setw(13)<<"SNP: "<<fijo.trab.snp<<endl;
cout<<setw(34)<<"AFP: "<<fijo.trab.afp<<endl;
cout<<setw(10)<<"tt----------";
cout<<setw(13)<<"----------";
cout<<setw(23)<<"----------"<<endl;
cout<<setw(10)<<"TOTALES: "<<ni;
cout<<setw(13)<<nd;
cout<<setw(18)<<nt;
}
P6.1.-Se pide emitir la plantilla de pago del personal de una empresa considerando los
siguientes datos: código, área, sueldo básico y horas extras. La boleta de pago debe
tener el siguiente formato:
Empresa : xxxx..............xx
Área : xxx.................xx
Ingreso Deducciones Neto
Sueldo Básico : 9999.99 esalud: 999.99
Horas Extras : 999.99 snp : 999.99
Afp : 999.99
............. ………….. …………..
Totales 999.99 999.99 9999.99
El monto de las horas extras se obtiene multiplicando las horas extras trabajadas por el
sueldo básico dividido por 240.EL essalud, fnp y afp, representa el 3% del sueldo
básico cada uno
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdio.h>
#define max 5
struct empleado
{
char cod[6];
char AREA[20];
float sb;
int he;
};
void main()
{
empleado EMP[max];
int n,i;
float tR, td, tn, phe, des, dsnp, np,dafp;
tR=0; td=0; tn=0;
cout<<"INGRESE EL Nº DE EMPLEADOS: "; cin>>n;
Página 48
49. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for(i=0; i<n; i++)
{
cout<<"DATOS EMPLEADO "<<(i+1)<<endl;
cout<<"CODIGO: "; cin>>EMP[i].cod;
cout<<"AREA: "; gets(EMP[i].AREA);
cout<<"S. BASICO: "; cin>>EMP[i].sb;
cout<<"N. H. EXTRAS: "; cin>>EMP[i].he;
}
//salida
cout<<setw(6)<<"CODIGO"<<setw(20)<<"AREA"<<setw(15)<<"SUELDO
BASICO"<<setw(5)<<"H. EXTRAS"<<endl;
for(i=0; i<n; i++)
cout<<setw(6)<<EMP[i].cod<<setw(20)<<EMP[i].AREA<<setw(15)<<EMP[i].sb<<setw(5
)<<EMP[i].he<<endl;
cout<<"**********************************************************"<<endl;
cout<<"EMPRESA: A y S "<<endl;
cout<<"**********************************************************"<<endl;
for(i=0; i<n; i++)
{
cout<<"AREA: "<<EMP[i].AREA<<endl;
cout<<"INGRESOS DEDUCCIONES NETO"<<endl;
phe=(EMP[i].he*EMP[i].sb)/240;
des=0.03*EMP[i].sb;
dsnp=0.03*EMP[i].sb;
dafp=0.03*EMP[i].sb;
tR=EMP[i].sb + phe;
td=des + dsnp + dafp;
tn = tR - td;
cout<<"SUELDO BASICO: "<<EMP[i].sb<<" "<<"ESSALUD:
"<<des<<endl;
cout<<"HORAS EXTRAS: "<<phe<<" "<<"snp: "<<dsnp<<endl;
cout<<" "<<"Afp: "<<dafp<<endl;
cout<<endl<<endl;
cout<<" ---------- ---------- --------"<<endl;
cout<<"TOTALES : "<<tR<<" "<<td<<" "<<tn<<endl;
}
}
P6.2.-
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main()
{ int i,exped[5];
Página 49
50. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
float promedio[5],S,PC;
char nombre[5],alumno[1];
S=0;
for(i=0;i<5;i++)
{ exped[i]=i+1;
gotoxy(5,i+2);
cout<<exped[i];
}
for(i=0;i<5;i++)
{ gotoxy(15,i+2);
gets(nombre);
}
for(i=0;i<5;i++)
{ gotoxy(30,i+2);
cin>>promedio[i];
S=S+promedio[i];
}
PC=S/5;
cout<<"nLa nota media de los alumnos es: "<<PC;
}
P6.3.- Una compañía distribuye N productos a distintos comercios de la ciudad. Para
ello almacena en un arreglo toda la información relacionada a su mercancía:
- Clave
- Descripción
- Existencia
- Mínimo a mantener en existencia
- Precio unitario
Realizar las siguientes operaciones:
a) Venta de un producto
b) Reabastecimiento de un producto
c) Actualizar el precio de un producto
d) Informar sobre un producto
Desarrollo:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#define MAX 2
struct Producto{
int clave;
Página 50
51. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
int minimo;
int existencia;
float preciounitario;
};
void Venta(Producto L[MAX]);
void main()
{
char dato; Producto P[MAX];
dato='s';int n;
do
{ clrscr();
cout<<"LLenado de datos";cout<<endl;cout<<endl;
for(int i=1;i<=MAX;i++)
{
cout<<"Producto ["<<i<<"]";cout<<endl;
cout<<"Clave :";cin>>P[i].clave;cout<<endl;
cout<<"Cantidad minima:";cin>>P[i].minimo;cout<<endl;
cout<<"Cantidad existente:";cin>>P[i].existencia;cout<<endl;
cout<<"Precio unitario :";cin>>P[i].preciounitario;cout<<endl;
}
cout<<"?Que desea hacer?";cout<<endl;
cout<<"Para venta escriba 1";cout<<endl;
cin>>n;
if(n==1)
{
Venta(P);
}
else
{
cout<<"Numero incorrecto";
}
cout<<"Datos actualizados";cout<<endl;
for(int j=1;j<=MAX;j++)
{
cout<<"Producto ["<<j<<"]";cout<<endl;
cout<<"Clave :"<<P[j].clave;cout<<endl;
cout<<"Cantidad minima:"<<P[j].minimo;cout<<endl;
cout<<"Cantidad existente:"<<P[j].existencia;cout<<endl;
cout<<"Precio unitario :"<<P[j].preciounitario;cout<<endl;
}
Página 51
52. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<"desea continuar [s/n] :";cin>>dato;
}while(dato!='N'&&dato!='n');
getch();
}
void Venta(Producto L[MAX])
{
int cod,ven;
cout<<"Ingrese codigo del producto:";cin>>cod;
cout<<"Ingrese cantidad de venta:";cin>>ven;
for(int j=1;j<=MAX;j++)
{if(L[j].clave==cod)
{
L[j].existencia = L[j].existencia - ven;
}
else
{cout<<"Codigo incorrecto";}
}
}
P6.3.-Una compañía distribuye N productos a distintos comercios de la ciudad.para ello
almacena en un arreglo toda la información relacionada a su mercancía:
• clave
• Descripción
• Existencia
• Minimo a mantener en existencia
• Precio unitario
Realizar vlas siguientes operaciones:
A) venta de un producto: se deben actualizar los campos que correspondan.
B) reabestecimiento de un producto : Se deben actualizar los campos que
correspondan.
C) actualizar el precio de un producto.(dato:clave, porcentaje de aumento)
D) informar sobre un producto: se deben proporcionar todos los datos relacionados a un
producto (dato: clave).
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdio.h>
#define max 5
struct producto
{ int clave;
char des[6];
Página 52
53. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
int exi,minexi;
float pu;
};
void main()
{
producto p[max];
int n,i,clv,can;
char op;
cout<<"NUMERO DE PRODUCTOS: "; cin>>n;
for(i=0; i<n; i++)
{
cout<<"INGRESE DATOS DEL PRODUCTO"<<(i+1)<<endl;
cout<<"CLAVE: "; cin>>p[i].clave;
cout<<"DESCRIPCION: "; gets(p[i].des);
cout<<"EXISTENCIA: "; cin>>p[i].exi;
cout<<"MINIMO REQUERIDO: "; cin>>p[i].minexi;
cout<<"P.UNITARIO: "; cin>>p[i].pu;
}
//menu de opciones
cout<<"V : venta de un producto"<<endl;
cout<<"R : reabastecimiento"<<endl;
cout<<"A : actualiza precio de un producto"<<endl;
cout<<"I : informe sobre un producto"<<endl;
cout<<"S : salir"<<endl;
cout<<" ingrese una operacion: ";
cin>>op;
int pin;
switch(op){
case 'V':cout<<"ingrese clave: ";
cin>>clv;
cout<<"cantidad : ";
cin>>can;
for(i=0; i<n; i++){
if(p[i].clave==clv)
pin=i;
}
int a;
for(i=p[pin].exi;i>=0;i=(i-can)){
a=i;
}
cout<<"el numero de ventas es: "<<(p[pin].exi-
a)/can;
break;
case 'R': cout<<"ingrese clave: ";
cin>>clv;
for(i=0; i<n; i++){
if(p[i].clave==clv)
Página 53
54. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
pin=i;
}
if(p[pin].exi<p[pin].minexi){
cout<<"el reabestecimiento del producto
debe ser de: ";
cout<<(p[pin].minexi-p[pin].exi);
}
else
cout<<"nohay rebastecimiento" ;
break;
case 'A': float por,precio;
cout<<"ingrese clave : ";
cin>>clv;
cout<<"porcentaje de aumento: ";
cin>>por;
for(i=0; i<n; i++){
if(p[i].clave==clv)
pin=i;
}
precio=p[pin].pu+p[pin].pu*por/100;
cout<<"el nuevo precio unitario del producto es:
"<<precio;
break;
case 'I': cout<<"ingrese clave : ";
cin>>clv;
for(i=0; i<n; i++){
if(p[i].clave==clv)
pin=i;
}
cout<<endl;
cout<<puts(p[pin].des);
cout<<"EXISTENCIA: "<<p[pin].exi<<endl;
cout<<"MINIMO REQUERIDO:
";cout<<p[pin].minexi<<endl;
cout<<"P.UNITARIO: "; cout<<p[pin].pu<<endl;
break;
case 'S': cout<<"salir"<<endl;
}
}
Página 54
55. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
P6.3.-
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
struct Ventas
{
char cod_producto[50];
char nombre_producto[50];
double precio;
int cantidad;
int mantener;
int rebastecimiento;
int venta;
double importe;
double porcentaje;
double existe;
double suma;
};
int main()
{
const int numero =2;
Ventas mante_ventas[numero];
for (int i=0;i<numero;i++)
{
cout<<"nDATOS DEL PRODUCTO # "<<i+1<<endl;
cout<<"------------------n";
cout<<"nCodigo...:";cin>>mante_ventas[i].cod_producto;
cout<<"nDescripcion...:";cin>>mante_ventas[i].nombre_producto;
cout<<"nPrecio Unitario (S/.)...:";cin>>mante_ventas[i].precio;
cout<<"nExistencia...:";cin>>mante_ventas[i].cantidad;
cout<<"nMinimo a mantener en existencia...:";cin>>mante_ventas[i].mantener;
cout<<"n -------------------------n";
cout<<"nNumero de productos comprados...:";cin>>mante_ventas[i].venta;
cout<<"nRebasteciendo...:";cin>>mante_ventas[i].rebastecimiento;
cout<<"n% a aumentar (2%-4%)...:";cin>>mante_ventas[i].porcentaje;
mante_ventas[i].importe=(mante_ventas[i].venta*mante_ventas[i].precio);
mante_ventas[i].existe=(mante_ventas[i].cantidad-mante_ventas[i].importe);
mante_ventas[i].rebastecimiento=(mante_ventas[i].existe+mante_ventas[i].rebastecimie
nto);
mante_ventas[i].suma=(((mante_ventas[i].porcentaje*mante_ventas[i].precio)/100)+man
te_ventas[i].precio);
}
cout<<"nREPORTE DE PRODUCTOS"<<endl;
cout<<"-----------------nn";
cout<<setiosflags(ios::left);
cout<<setw(10)<<"Codigo";
Página 55
56. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<setw(15)<<"Descripcion";
cout<<setw(8)<<"Precio";
cout<<setw(14)<<"En almacen" ;
cout<<setw(16)<<"Nuevo precio"<<endl;
for (int c=0;c<numero;c++)
{
cout<<setw(15)<<mante_ventas[c].cod_producto;
cout<<setw(12)<<mante_ventas[c].nombre_producto;
cout<<setw(9)<<mante_ventas[c].importe;
cout<<setw(14)<<mante_ventas[c].rebastecimiento;
cout<<setw(16)<<mante_ventas[c].suma<<endl;
}
getch();
return 0;
}
P6.6.- En una escuela se almacena información sobre los alumnos, en un arreglo
unidimensional de registros. Por cada alumno se almacena la siguiente información:
Código, Nombre, Número de Semestres cursados, Calificación promedio por semestre
(arreglo unidimensional de tipo real, máxima para 10 elementos), Especialidad.
Dada la información de N alumnos, realizar las siguientes operaciones:
Desarrollo:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<math.h>
#define MAX 10
struct Alumno{
char nombre[20];
int codigo;
int semestrescursados;
float semestre[MAX];
float calificacion;
};
void main()
{
Alumno Al[MAX];float mayor; mayor = -999;
char dato;;int Codigo;//char Nombre[20]
dato='s';
Página 56
57. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
do
{ clrscr();
cout<<"Ingreso de datos";cout<<endl;
for(int i=1;i<=MAX;i++)
{ float suma;int n;n=0;
suma=0;
cout<<"Alumno["<<i<<"]";cout<<endl;
cout<<"Nombre:";cin>>Al[i].nombre;
cout<<"codigo:";cin>>Al[i].codigo;
cout<<"semestres cursados:";cin>>Al[i].semestrescursados;
n=Al[i].semestrescursados;
for(int k=1;k<=n;k++)
{
cout<<"Promedio del semestre["<<k<<"]:";cin>>Al[i].semestre[k];
suma = suma + Al[i].semestre[k];
}
Al[i].calificacion = suma / (Al[i].semestrescursados*1.0);
cout<<"calificacion
Promedio total:"<<Al[i].calificacion<<endl;
}
cout<<"Alumnos con promedio mayor que 10";cout<<endl;
for(int j=1;j<=MAX;j++)
{
if(Al[j].calificacion > 10)
{cout<<"Nombre:"<<Al[j].nombre;cout<<endl;
cout<<"codigo:"<<Al[j].codigo;cout<<endl;
}
}
for(int l=1;l<=MAX;l++)
{
if(Al[l].calificacion > mayor)
{
mayor= Al[l].calificacion;
}
}
Página 57
58. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cout<<"Primer
Puesto:"<<Al[l].nombre;
cout<<"Codigo:"<<Al[l].codigo;
gotoxy(20,30);
cout<<"desea continuar [s/n] :";cin>>dato;
}while(dato!='N'&&dato!='n');
getch();
}
P6.6.- Dado un array que contiene la información de los alumnos de una clase de100
alumnos, y teniendo en cuenta que de cada uno de ellos almacenamos su numero de
expediente, nombre y nota media. Hallar la media de todos los alumnos de esa clase y
dar otra opción que pida el nombre de un alumno y me de su nota si este alumno
existe.
SOLUCION:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main()
{
int i;
float nmt=0;
char nom[20];
struct datos
{
int expediente;
float notamedia;
char nombre[20];
};
datos personas[100];
cout<<"ingrese sus datos"<<endl;
for(i=0;i<100;i++)
{
cout<<" nombre ["<<i<<"]";
gets(personas[i].nombre);
cout<<" # de expediente["<<i<<"]";
cin>>personas[i].expediente;
cout<<" nota media ["<<i<<"]";
cin>>personas[i].notamedia;
Página 58
59. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
}
for(i=0;i<100;i++)
{
nmt=(nmt+personas[i].notamedia);
}
nmt=nmt/100;
cout<<"La nota media de todos los alumnos es:"<<nmt<<endl;
cout<<"Ingrese el nombre del alumno que desee"<<endl;
cin>>nom;
for(i=0;i<100;i++)
{
if(personas[i].nombre==nom)
{
cout<<"La nota media de este alumno es:"<<personas[i].notamedia<<endl;
}
else
{
cout<<"El alumno "<<nom<< "no existe"<<endl;
}
}
}
P6.6.-
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <stdlib.h>
#define max 5
struct alumno //con punteros
{
char cod[6];
char nom[20];
char eco[20];
char fac[20];
float ep,ef,pp;
char obs[20];
char escuela[20];
double pg;
};
int main()
{
const int numero =2;
Página 59
60. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
alumno notas_alumno[numero];
for (int i=0;i<numero;i++)
{
cout<<"Datos del alumno "<<(i+1)<<endl;
cout<<"------------------";
cout<<"nCodigo:";cin>>notas_alumno[i].cod;
cout<<"nNombre:";cin>>notas_alumno[i].nom;
cout<<"nFacultad (sistemas o economia):";cin>>notas_alumno[i].fac;
cout<<"ne.parcial:";cin>>notas_alumno[i].ep;
cout<<"ne.final:";cin>>notas_alumno[i].ef;
cout<<"np.practicas:";cin>>notas_alumno[i].pp;
cout<<endl;
notas_alumno[i].pg=(notas_alumno[i].ep+notas_alumno[i].ef+notas_alumno[i].pp)/3.0;
if (notas_alumno[i].pg<11)
strcpy (notas_alumno[i].obs,"Desaprobado");
else
strcpy (notas_alumno[i].obs,"Aprobado");
}
cout<<"nREPORTE DE NOTAS"<<endl;
cout<<"----------------n";
cout<<setiosflags(ios::left);
cout<<setw(9)<<"codigo";
cout<<setw(16)<<"nombre";
cout<<setw(9)<<"e.p" ;
cout<<setw(9)<<"e.f" ;
cout<<setw(9)<<"p.p" ;
cout<<setw(9)<<"p.g" ;
cout<<setw(20)<<"Observacionesn"<<endl;
for (int c=0;c<numero;c++)
{
cout<<setw(8)<<notas_alumno[c].cod;
cout<<setw(18)<<notas_alumno[c].nom;
cout<<setw(9)<<notas_alumno[c].ep;
cout<<setw(9)<<notas_alumno[c].ef;
cout<<setw(9)<<notas_alumno[c].pp;
cout<<setw(10)<<notas_alumno[c].pg;
cout<<setw(20)<<notas_alumno[c].obs;
cout<<endl;
// cout<<setw(1)<<notas_alumno[c].eco;
}
Página 60
61. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
//no me sale
/*
if (notas_alumno[2].pg>notas_alumno[1].pg)
{
strcpy (notas_alumno[2].eco," El alumno con mayor promedio de economia
es:");
puts(notas_alumno[2].nom)
}
else
{ strcpy(notas_alumno[1].eco,"El alumno con mayor promedio de economia
es:");
puts(notas_alumno[1].nom)
}
*/
getch();
return 0;
}
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
int main()
{
int M[2][1];
int M1[2][3],M2[2][3], i, j;
for (int a=0; a<2; a++)
{
for (int b=0; b<1; b++)
{
cout<<"Numero["<<a+1<<"],["<<b+1<<"]:";
cin>>M[a][b] ;
}
}
clrscr();
cout<<"nn";
for (int c=0; c<2; c++)
{
for(int d=0;d<1;d++)
cout<<setw(5)<<M[c][d]<<" ";
cout<<endl;
}
gotoxy (10,3);
cout<<"=";
if (M[1][1]==M[2][1])
Página 61
62. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
{
gotoxy (17,3);
cout<<"1" ;
}
if (M[2][1]==0)
{
gotoxy (17,3);
cout<<"1" ;
}
getch();
}
P6.7.- En una tienda, se almacena información relativa a las ventas efectuadas por sus
empleados en los 12 meses del año anterior. Esta información en un arreglo de
registros con la siguiente información:
Código, nombre, ventas (arreglo unidimensional de tipo real, máximo de 12 elementos),
salario (real).
Realizar las siguientes operaciones:
Listar el código y nombre del empleado que tuvo las mayores ventas durante el año.
Incremente un 10% el salario de todos los empleados que durante el año obtuvieron
ventas superiores a $1000000.
SOLUCION:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main()
{
int i;
float mayor;
struct datos
{
int codigo;
float salario;
char nombre[20];
int ventas[12];
};
datos personas[2];
cout<<"ingrese sus datos"<<endl;
for(i=0;i<2;i++)
{
cout<<" nombre ["<<i<<"]";
gets(personas[i].nombre);
cout<<" codigo ["<<i<<"]";
Página 62
63. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
cin>>personas[i].codigo;
cout<<" salario ["<<i<<"]";
cin>>personas[i].salario;
cout<<" ventas["<<i<<"]";
cin>>(personas[i].ventas;
}
for(i=0;i<2;i++)
{
mayor=personas[0].ventas;
if(personas[i].ventas>mayor)
{
mayor=personas[i].ventas;
}
}
cout<<"El empleado con mayor ventas es:";
cout<<personas[i].codigo<<endl;
puts(personas[i].nombre<<endl;
for(i=0;i<2;i++)
{
if(personas[i].salario>1000000)
{
personas[i].salario=(personas[i].salario)*1.1;
}
}
}
P6.8.-
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<iomanip.h>
struct ventas
{char cod[20];
char nomb[30];
char desc[50];
int st_ac;
int st_min;
};
void main()
{const num =2;
int st_ac, st_min;
ventas total[num];
cout<<"INGRESOS DE PRODUCTOS"<<endl;
cout<<"--------------------"<<endl;
Página 63
64. Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería Electrónica
Laboratorio de Lenguaje de Programación
for(int i=0;i<num;i++)
{cout<<"n datos del producto: "<<i+1<<endl;
cout<<"nCodigo: ";cin>>total[i].cod;
cout<<"nNombre: ";cin>>total[i].nomb;
cout<<"nDescripcion: ";cin>>total[i].desc;
cout<<"nStock Actual: ";cin>>total[i].st_ac;
cout<<"nstock minimo: ";cin>>total[i].st_min;
}
cout<<"nREPORTE DE PRODUCTOS"<<endl;
cout<<"--------------------nn"<<endl;
cout<<setiosflags(ios::left);
cout<<setw(10)<<"Codigo";
//cout<<setw(15)<<"NOmbre";
//cout<<setw(10)<<"Descripcion";
cout<<setw(12)<<"Stock actual"<<endl;
//cout<<setw(3)<<"Stock minimo"<<endl;
if (st_ac >st_min)
{
for (int c=0;c<num;c++)
{cout<<setw(10)<<total[c].cod;
//cout<<setw(15)<<total[c].nomb;
//cout<<setw(10)<<total[c].desc;
cout<<setw(12)<<total[c].st_ac<<endl;
//cout<<setw(3)<<total[c].st_min<<endl;
}
}
else
{cout<<"no se vende";
}
}
si mi corazon hablara,todo un libro escribiria,en el estaria tu nombre , como escrito esta en mi
vida......janet
Página 64