Sol.proble.practic lp

1,201 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,201
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
68
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sol.proble.practic lp

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  16. 16. Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica Laboratorio de Lenguaje de Programación #include<conio.h> #define maxa 20 #define maxb 15 void 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<<"ttTipo "<<(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
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×