sol.proble.practic lp

78
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; Página 1

Upload: daniel-gekkou-alvarado-munoz

Post on 13-Jun-2015

924 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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) sumab) producto de un escalar por un vectorc) producto escalard) modulose) existencia del angulo entre dos vectoresf) producto vectorialg) el area del paralelogramo formado por Ay bh) vector unitario de Ai) 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

Page 2: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 3: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 atraves de un menu de opciones para realizar las siguientes operaciones.a)sumab)producto de un escalar por un vectorc)producto escalard)Modulose)existencia de angulos entre los vectoresf)producto vectorialg)El area del parelogramo formado por A y Bh)vector unitario de Ai)vector unitario de B

#include<iostream.h>#include<conio.h>#define max 10void 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

Page 4: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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----------------------------------\n\n";

Página 4

Page 5: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\n\n";cout<<"\t\tnombre: ";cin>>mante_datos[i].nombre;cout<<"\t\tedad: ";cin>>mante_datos[i].edad;cout<<"\t\ttalla: ";cin>>mante_datos[i].talla;cout<<"\t\t-------------\n\n";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)<<"\t\tnombre";cout<<setw(8)<<"\t\tedad";cout<<setw(5)<<"\t\ttalla"<<endl;for(int c=0;c<N;c++){cout<<setw(10)<<"\t\t"<<mante_datos[c].nombre;cout<<setw(10)<<"\t\t"<<mante_datos[c].edad;cout<<setw(2)<<"\t\t"<<mante_datos[c].talla<<endl;}

prom_edad=Sed/N;prom_talla=Stall/N;gotoxy(25,10);cout<<"-------------------------------------"<<endl;cout<<"\t\t\tel promedio de edades es:"<<prom_edad<<endl;cout<<"\t\t\tel promedio te tallas es: "<<prom_talla<<endl;cout<<"\t\t\tcuantas personas son mayores de edad:

"<<Mayores_edad<<endl;cout<<"\t\t\tcuantas personas son menores de edad:

"<<menores_edad<<endl;}

P4.2.-hacer un programa que lea nombres, edades y tallas de N atletas. N esdeclarado como constante.Trabaje con 10 (atletas).

Página 5

Page 6: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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;elseema=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

Page 7: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 8: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 9: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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);

elsecout<<"\ 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

Page 10: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 11: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\n\t\tRespuestas correctas: "<<endl<<endl;for(i=0;i<10;i++){ cout<<"P."<<(i+1)<<": "<<RC[i]<<"\t ";}cout<<"\n\n\n\t\tRespuestas del alumno: "<<endl<<endl;for(i=0;i<10;i++){ cout<<"P."<<(i+1)<<": "<<RA[i]<<"\t ";}cout<<"\n\n\n\t\t*****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

Page 12: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 IngFamfor(int j=0;j<max;j++) {cout<<"Ingrese IngFam: "; cin>>b[j];

Página 12

Page 13: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

} cout<<"--------------------"<<endl; //ingreso de Categfor(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

Page 14: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 10void 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

Page 15: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 16: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

#include<conio.h>#define maxa 20#define maxb 15void leer(int C[maxa][maxb],int m,int n){ for(int i=0;i<m;i++)

{ cout<<"Almacen "<<(i+1)<<": "<<endl;for(int j=0;j<n;j++){ cout<<"tipo "<<(j+1)<<": "<<"\t";

cout<<"cantidad: ";cin>>C[i][j];

}cout<<endl;

}}void mostrar(int C[maxa][maxb],int m,int n){ cout<<"Almacen";

for(int j=0;j<n;j++){ cout<<"\t\tTipo "<<(j+1);}cout<<endl<<endl;for(int i=0;i<m;i++){ cout<<setw(4)<<(i+1);

for(int j=0;j<n;j++){ cout<<setw(13)<<C[i][j]<<"\t";}cout<<endl<<endl;

} cout<<endl<<endl;

}

void sumaf(int C[maxa][maxb],int m,int n){ int i,j;

float sf,a[maxa];for( i=0;i<m;i++){ sf=0;

for( j=0;j<n;j++){ sf=sf+C[i][j];}a[i]=sf;

}cout<<"\n**Total de productos por almacen**"<<endl;for(i=0;i<m;i++){ cout<<"Almacen "<<(i+1)<<": "<<a[i]<<endl<<endl;}

}void sumac(int C[maxa][maxb],int m,int n){ int sc,a[maxb],i,j;

for( j=0;j<n;j++){ sc=0;

Página 16

Page 17: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\n\n\t\t*****ALMACENES DEL ORIENTE******"<<endl;cout<<"\t\t ========= === ======="<<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<<"\n\n\t\t\t\tMENU DE OPCIONES"<<endl;

cout<<"\t\t1.- Ingresar datos "<<endl;cout<<"\t\t2.- Mostrar almacenes "<<endl;cout<<"\t\t3.- Mostrar cantidad en cada almacen"<<endl;cout<<"\t\t4.- Mostrar cantidad por tipo"<<endl;cout<<"\t\t5.- Mostrar cantidad total de productos"<<endl;cout<<"\t\t6.- 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

Page 18: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 10void 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

Page 19: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 20: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 << "\t\tNumero [" << a+1 << "], [" << b+1 << "] : ";cin >> num[a][b];

}}gotoxy(13,M*N+10);cout << "la matriz es :\n\n";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

Page 21: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 22: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 23: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 24: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 primo\n"; else cout<<"el numero no es primo\n"; 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

Page 25: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 26: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 27: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 28: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

cin>>M[a][b] ; } } clrscr(); cout<<"\n\n"; 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

Page 29: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\n\tAnual = 12\n\tSemestral = 2\n\tTrimestral = 4\n\tBimestral = 6\n\tMensual = 1\n",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

Page 30: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 31: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 32: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 vectorb) Función que calcule el promedio de los elementos de un vectorc) Función que calcule el mayor de los elementos de un vectord) Función que calcule el menor de los elementos de un vector

Desarrollo:

#include<iostream.h>#include<conio.h>#include<iomanip.h>#define MAX 10float 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

Page 33: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 34: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 vectorb) Procedimiento que calcule el promedio de los elementos de un vectorc) Procedimiento que calcule el mayor de los elementos de un vectord) Procedimiento que calcule el menor de los elementos de un vector

Desarrollo:

#include<iostream.h>#include<conio.h>#include<iomanip.h>#define MAX 4float 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

Page 35: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 36: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 10int 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

Page 37: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 10void 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

Page 38: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\n\n La mayor nota es: " <<mayor;

Página 38

Page 39: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

cout<<"\n\n 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<<"\n\n La menor nota es: " <<menor; cout<<"\n\n 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

Page 40: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\n\n"; 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

Page 41: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 42: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 43: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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:\n\n";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<<"\t\tingrese 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

Page 44: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 45: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 46: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 trabajadores\n"; 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

Page 47: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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<<"\t\t 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

Page 48: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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)<<"\t\t----------"; 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.................xxIngreso Deducciones NetoSueldo Básico : 9999.99 esalud: 999.99Horas 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 5struct 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

Page 49: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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;

}//salidacout<<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

Page 50: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 productob) Reabastecimiento de un productoc) Actualizar el precio de un productod) Informar sobre un producto

Desarrollo:

#include<iostream.h>#include<conio.h>#include<iomanip.h>

#define MAX 2

struct Producto{int clave;

Página 50

Page 51: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 52: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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 5struct producto{ int clave;

char des[6];

Página 52

Page 53: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 54: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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

Page 55: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad 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].rebastecimiento); mante_ventas[i].suma=(((mante_ventas[i].porcentaje*mante_ventas[i].precio)/100)+mante_ventas[i].precio);} cout<<"\nREPORTE DE PRODUCTOS"<<endl; cout<<"-----------------\n\n"; cout<<setiosflags(ios::left); cout<<setw(10)<<"Codigo"; cout<<setw(15)<<"Descripcion";

Página 55

Page 56: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

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';

do

Página 56

Page 57: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

{ 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; } }

cout<<"Primer Puesto:"<<Al[l].nombre;

Página 57

Page 58: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

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; } for(i=0;i<100;i++) {

Página 58

Page 59: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

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 5struct 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; alumno notas_alumno[numero];

Página 59

Page 60: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

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)<<"Observaciones\n"<<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;

} //no me sale /* if (notas_alumno[2].pg>notas_alumno[1].pg)

Página 60

Page 61: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

{ 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<<"\n\n"; 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" ;

Página 61

Page 62: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

} 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<<"]"; cin>>personas[i].codigo; cout<<" salario ["<<i<<"]"; cin>>personas[i].salario;

Página 62

Page 63: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

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; for(int i=0;i<num;i++) {cout<<"\n datos del producto: "<<i+1<<endl;

cout<<"\nCodigo: ";cin>>total[i].cod;

Página 63

Page 64: Sol.proble.practic lp

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería Electrónica

Laboratorio de Lenguaje de Programación

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<<"--------------------\n\n"<<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