SlideShare una empresa de Scribd logo
1 de 64
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesJoshe Varillas
 
Corridas de los ejercicios ya realizados
Corridas de los ejercicios ya realizadosCorridas de los ejercicios ya realizados
Corridas de los ejercicios ya realizadosdiegorap
 
Optimización de funciones de varias variables sin restricciones
Optimización de funciones de varias variables sin restriccionesOptimización de funciones de varias variables sin restricciones
Optimización de funciones de varias variables sin restriccionesAstocóndor Fuertes Eva Inés
 
ESTRUCTURA DE DATOS ALEXIS ROJAS
ESTRUCTURA DE DATOS  ALEXIS ROJASESTRUCTURA DE DATOS  ALEXIS ROJAS
ESTRUCTURA DE DATOS ALEXIS ROJASAlex Kira
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y forMiguel Angel Peña
 
Algoritmo Salida Y Entrada
Algoritmo  Salida Y EntradaAlgoritmo  Salida Y Entrada
Algoritmo Salida Y Entradaguest286418
 
Actividad 2 programacion orientada a objetos jaren gonzalez
Actividad 2 programacion orientada a objetos  jaren gonzalezActividad 2 programacion orientada a objetos  jaren gonzalez
Actividad 2 programacion orientada a objetos jaren gonzalezCristian J Malambo M
 
Programacion
ProgramacionProgramacion
Programacionbeca777
 
EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI
EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI
EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI David Garcia
 
Bucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaBucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaFanny Lorenzo Quilla
 

La actualidad más candente (20)

Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condiciones
 
Josue pedro ramos quispe
Josue pedro ramos quispeJosue pedro ramos quispe
Josue pedro ramos quispe
 
Práctico_ 5 Derivadas
Práctico_ 5 DerivadasPráctico_ 5 Derivadas
Práctico_ 5 Derivadas
 
Corridas de los ejercicios ya realizados
Corridas de los ejercicios ya realizadosCorridas de los ejercicios ya realizados
Corridas de los ejercicios ya realizados
 
Jorge informe tecnico
Jorge informe tecnicoJorge informe tecnico
Jorge informe tecnico
 
Clase 2 funciones
Clase 2 funcionesClase 2 funciones
Clase 2 funciones
 
Optimización de funciones de varias variables sin restricciones
Optimización de funciones de varias variables sin restriccionesOptimización de funciones de varias variables sin restricciones
Optimización de funciones de varias variables sin restricciones
 
ESTRUCTURA DE DATOS ALEXIS ROJAS
ESTRUCTURA DE DATOS  ALEXIS ROJASESTRUCTURA DE DATOS  ALEXIS ROJAS
ESTRUCTURA DE DATOS ALEXIS ROJAS
 
Practica 10
Practica 10Practica 10
Practica 10
 
Tablas de multiplicar (código Dev C++)
Tablas de multiplicar (código Dev C++)Tablas de multiplicar (código Dev C++)
Tablas de multiplicar (código Dev C++)
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y for
 
Algoritmo Salida Y Entrada
Algoritmo  Salida Y EntradaAlgoritmo  Salida Y Entrada
Algoritmo Salida Y Entrada
 
Vectores en c++
Vectores en c++Vectores en c++
Vectores en c++
 
Guia de-estructura-de-datos
Guia de-estructura-de-datosGuia de-estructura-de-datos
Guia de-estructura-de-datos
 
Actividad 2 programacion orientada a objetos jaren gonzalez
Actividad 2 programacion orientada a objetos  jaren gonzalezActividad 2 programacion orientada a objetos  jaren gonzalez
Actividad 2 programacion orientada a objetos jaren gonzalez
 
Programacion
ProgramacionProgramacion
Programacion
 
EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI
EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI
EJERCICIOS RESUELTOS DE BORLAND C++ FIEE UNI
 
Ejercicios resueltos competencia perfecta
Ejercicios resueltos competencia perfectaEjercicios resueltos competencia perfecta
Ejercicios resueltos competencia perfecta
 
Analisisalgo
AnalisisalgoAnalisisalgo
Analisisalgo
 
Bucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaBucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código java
 

Similar a Sol.proble.practic lp

Ejercicios varios-programacion-i
Ejercicios varios-programacion-iEjercicios varios-programacion-i
Ejercicios varios-programacion-iKeylevCastellanos
 
Ejercicios de aplicación de las instrucciones de entrada y salida en C++
Ejercicios de aplicación de las instrucciones de entrada y salida en C++Ejercicios de aplicación de las instrucciones de entrada y salida en C++
Ejercicios de aplicación de las instrucciones de entrada y salida en C++Ales Sandro Gaibor
 
Ejercicios introduccion a la programación en C
Ejercicios  introduccion a la programación en CEjercicios  introduccion a la programación en C
Ejercicios introduccion a la programación en Chack3 Org
 
Aritmetica
AritmeticaAritmetica
AritmeticaBOTICA
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programaciónNorma Vaquilema
 
Ejercicios con Funciones en programación I C++
Ejercicios con Funciones en programación I C++Ejercicios con Funciones en programación I C++
Ejercicios con Funciones en programación I C++Carlos Aviles Galeas
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++johnny herrera
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bFRESH221 C.R
 
Programas 11 20
Programas 11 20Programas 11 20
Programas 11 20Ali VB
 
Ejercicios de programación.
Ejercicios de programación.Ejercicios de programación.
Ejercicios de programación.Javier Cuenca
 
Trabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje cTrabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje coswnes92
 
Ejercicios Utilizando C++
Ejercicios Utilizando C++Ejercicios Utilizando C++
Ejercicios Utilizando C++Adita IC
 

Similar a Sol.proble.practic lp (20)

Ejercicios varios-programacion-i
Ejercicios varios-programacion-iEjercicios varios-programacion-i
Ejercicios varios-programacion-i
 
1 er informe
1 er informe1 er informe
1 er informe
 
Ejercicios de aplicación de las instrucciones de entrada y salida en C++
Ejercicios de aplicación de las instrucciones de entrada y salida en C++Ejercicios de aplicación de las instrucciones de entrada y salida en C++
Ejercicios de aplicación de las instrucciones de entrada y salida en C++
 
Ejercicios de consola en c++
Ejercicios de consola en c++Ejercicios de consola en c++
Ejercicios de consola en c++
 
Ejercicios introduccion a la programación en C
Ejercicios  introduccion a la programación en CEjercicios  introduccion a la programación en C
Ejercicios introduccion a la programación en C
 
Ejercicios C
Ejercicios CEjercicios C
Ejercicios C
 
Aritmetica
AritmeticaAritmetica
Aritmetica
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
3 unidad
3 unidad 3 unidad
3 unidad
 
Ejercicios con Funciones en programación I C++
Ejercicios con Funciones en programación I C++Ejercicios con Funciones en programación I C++
Ejercicios con Funciones en programación I C++
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Programas 11 20
Programas 11 20Programas 11 20
Programas 11 20
 
Arreglos - Vectores en C
Arreglos - Vectores en CArreglos - Vectores en C
Arreglos - Vectores en C
 
Ejercicios de programación.
Ejercicios de programación.Ejercicios de programación.
Ejercicios de programación.
 
Trabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje cTrabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje c
 
SantaellaU9-EstructurasdeRegistros
SantaellaU9-EstructurasdeRegistrosSantaellaU9-EstructurasdeRegistros
SantaellaU9-EstructurasdeRegistros
 
Ejercicios Utilizando C++
Ejercicios Utilizando C++Ejercicios Utilizando C++
Ejercicios Utilizando C++
 
Practica de programacion 21 28
Practica de programacion 21 28Practica de programacion 21 28
Practica de programacion 21 28
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 

Sol.proble.practic lp

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