Está en la página 1de 5

LABORATORIO NRO 3 ARREGLOS UNIDIMENSIONALES - OTRAS

OPERACIONES
Ing. Gladys Garca V.
PROBLEMA NRO 1:
PROGRAMA c++
// Librerias c++
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdio.h>
#include<string.h>

// cin y cout
// getch()
// setw()
// gets()
// strcpy
// Nro de elementos

const int N = 5;
void main()
{ double nota[N],auxNt;
char nom[N][18],auxN[18];
int i,j,k;

// lectura de loa arrays paralelos nom y nota

for(i=0;i<N;i++)
{ cout<<"nombre: "<<endl;
gets(nom[i]);
cout<<"nota : ";cin>>nota[i];
}
// ordenamiento de notas de mayor a menor

for(k=0;k<N-1;k++) // nro de pasos


{ for(j=0;j<N-1-k;j++) // nro de comparaci.
{ if ( nota[j] < nota[j+1] )
{ // intercambio de notas
auxNt = nota[j];
nota[j] = nota[j+1];
nota[j+1] = auxNt;
// y paralelamente intercambiamos de nombres

strcpy(auxN , nom[j]);
strcpy(nom[j], nom[j+1]);
strcpy(nom[j+1], auxN);
}
}
}
// muestra los arrays paralelos ordenados

cout<<setw(20)<<"nombre"<<setw(20)<<"nota"<<endl;
for(i=0;i<=4;i++)
{ cout<<setw(20)<<nom[i]<<setw(20)<<nota[i]<<endl; }
getch();
}
PROBLEMA NRO 2:
Programa C++
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdio.h>
#include<string.h>
const int N=5;

// cin>> y cout<<
// getch()
// setw()
// gets()
// strcmp()

void main()

double nota[N], auxNt;


char nom[N][20], auxN[20]; // auxiliar de nota
int rpta,i,j,k,v;
// separa 5 espacios de memoria 0,1,2,3,4

// auxiliar de nota

// lectura de loa arrays nom y nota

for(i=0;i<N;i++)
{ cout<<"nombre: "<<endl;gets(nom[i]);
cout<<"nota : ";cin>>nota[i];
}
// ordenamiento de notas de mayor a menor
for (k=0;k<N-1;k++)
// nro de pasos 0,1,2,3

{ for (j=0;j<N-1-k; j++) // nro de comparacion


{ // paso 0 : 0,1,2,3 es decir 4 comparaciones
v = strcmp(nom[j],nom[j+1]);
if (v>0)
// Si el primero nom[j] es mayor al siguiente
{ // intercambio de notas
auxNt = nota[j];
nota[j] = nota[j+1];
nota[j+1] = auxNt;
// tambien se intercambian nombres

strcpy(auxN , nom[j]);
strcpy(nom[j], nom[j+1]);
strcpy(nom[j+1], auxN);
}
}
}
// muestra los arrays paralelos ordenados

cout<<setw(25)<<"nombre"<<setw(25)<<"nota"<<endl;
for (i=0;i<=4;i++)
{ cout<<setw(25)<<nom[i]<<setw(25)<<nota[i]<<endl; }
getch();
}
PROBLEMA NRO 3:
Programa:
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<string.h>
const int N = 8;

void main()
{ int codigo, cod[N]= {100,300,200,400,800,600,700,500};
char Desc[N][15]={"TV Col-14", "TV Col-19", "TV
24","VHS","DVD","Fax","Imp_Epson" };
double PreUni[N] = {250, 350, 480, 870, 260,400,125,350};
double MontoParc, Descuento, MontoPagar;
int i,Cantidad, CantTotal;
const double td = 0.08;

Col-21",

"TV

Col-

// a) Muestra un reporte de esta informacion

for(i=0;i<N;i=i+1)
{cout<<setw(10)<<cod[i]<<setw(20)<<Desc[i]<<setw(10)<<PreUni[i]<<endl;}

// BUSQUEDA SECUENCIAL de un producto, segun su codigo

i=-1;
cout<<"Ingrese el codigo : ";cin>>codigo;
do
{ i = i+1;
} while ((codigo != cod[i]) && ( i<N ));

if (i != N)

// mientras no lo encuentra e (i < N)

// si lo encuentra

{ cout<<cod[i]<<" "<<Desc[i]<<" "<<PreUni[i]<<endl;


// se realiza la compra

cout<<"Ingrese la cantidad a comprar : ";cin>>Cantidad;


// calcula el monto parcial

MontoParc = Cantidad * PreUni[i];


// calcula el descuento

if (MontoParc < 1000) { Descuento = 0; }


else
{ Descuento = td*MontoParc; }
// calcula el monto a pagar deducidos los descuentos

MontoPagar = MontoParc - Descuento;


// muestra el reporte codigo / precio unitario / cantidad/ monto parcail /descuento / monto a pagar

cout<<cod[i]<<" "<<Desc[i]<<" "<<PreUni[i]<<" <<Cantidad<<" "<<MontoParc<<"


"<<Descuento<<" "<<MontoPagar<<endl;
}

else

// si no lo encuentra

{ cout<<"ese codigo no se encuentra "<<endl; }

getch();
}
PROBLEMA NRO 4:
Programa C++
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
// NOTA : si al comparar dos cadenas resultan iguales strcmp devuelve 0

const int N =5;


void main()
{ // arreglos paralelos con la informacion
char Cod[N][5] = {"RE14","TV24","LI01","TV14","TV19"};
char Descrip[N][20]={"Refrigeradora-14","TV Color-24","Licuadora","TV Color-14", "TV N-19"};

double Precio$[N] = { 850.5, 450, 80.5, 250, 150 };


char CodC[N];
// el codigo comprado
int NroPC;
// Nro de productos comprados
// Arreglos generados con datos de los productos comprados
int Cant[N],Lug[N]; // Cantidad de productos y Lugar que ocupa el producto dentro de los arreglos
double Costo[N];
// Costo parcial por la compra de cada producto

double CosTotal=0;

int i, CanTotal=0;
NroPC=0;

// nro de productos comprados

// lectura del codigo a comprar

cout<<"Ingrese el codigo a comprar <FIN para terminar>: ";cin>>CodC;


// si el CodC es diferente a FIN continua el pedido

while ( strcmp(CodC,"FIN")!=0 )
{ i = 0; // la bsqueda empieza desde el inicio del arreglo
while ( ( strcmp(CodC, Cod[i]) != 0 ) && (i<N) )
{
// mientras CodC sea diferente A Cod[i] y sea menor a 5 continua la busqueda

i = i + 1;
} // fin del while
if (i==N){cout<<CodC<<" no se encuentra"<<endl;}
else
{ cout<<"Ingrese cantidad a comprar : ";cin>>Cant[i];
Lug[NroPC]=i;
Costo[i] = Cant[i]*Precio$[i];
CosTotal = CosTotal + Costo[i];
CanTotal = CanTotal + Cant[i];
NroPC = NroPC + 1;
}
cout<<"Ingrese el codigo a comprar <FIN para terminar>: ";cin>>CodC;
} // fin del while externo
cout<<setw(25)<<"Producto"<<setw(10)<<"Precio"<<setw(10)<<"Cantidad";
cout<<setw(10)<<"CostoPar"<<endl;
for (i=0;i<NroPC;i=i+1)
{ cout<<setw(25)<<Descrip[Lug[i]]<<setw(10)<<Precio$[Lug[i]];
cout<<setw(10)<<Cant[Lug[i]]<<setw(10)<<Costo[Lug[i]]<<endl;
}
cout<<setw(45)<<"------"<<setw(10)<<"-------"<<endl;
cout<<setw(45)<<CanTotal<<setw(10)<<CosTotal<<endl;
getch();
}
PROBLEMA NRO 5:
Programa C++
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<string.h>
const int N = 8;

void main()
{ int codigo, cod[N]= {100,200,300,400,500,600,700,800};
char Desc[N][15] = {"TV Col-14", "TV Col-19", "TV Col-21", "TV
24","VHS","DVD","Fax","Imp_Epson" };
double PreUni[N] = {250, 350, 480, 870, 260,400,125,350};
double MontoParc, Descuento, MontoPagar;
int i,LI, LS, c, Cantidad;
const double td = 0.08;
for(i=0;i<N;i=i+1)
{cout<<setw(10)<<cod[i]<<setw(20)<<Desc[i]<<setw(10)<<PreUni[i]<<endl;}

Col-

// BUSQUEDA BINARIA de un producto, segun su codigo

LI = 0; LS = N-1;
c = (LI + LS )/2;
cout<<"Ingrese el codigo : ";cin>>codigo;
while ( (LI<=LS)&&(cod[c]!=codigo) )
{ if ( codigo<cod[c] )
{ LS=c-1; } // primera sublista
else
{ LI=c+1; } // segunda sublista
c= (LI+LS)/2;
}
if (codigo == cod[c])
// si lo encuentra
{ cout<<cod[c]<<" "<<Desc[c]<<" "<<PreUni[c]<<endl; }
else
// si no lo encuentra
{ cout<<"ese codigo no se encuentra "<<endl; }
// se realiza la compra

cout<<"Ingrese la cantidad a comprar : ";cin>>Cantidad;


// calcula el monto parcial

MontoParc = Cantidad * PreUni[c];


// calcula el descuento

if (MontoParc < 1000) { Descuento = 0; }


else
{ Descuento = td*MontoParc; }
// calcula el monto a pagar deducidos los descuentos

MontoPagar = MontoParc - Descuento;


// muestra el reporte codigo / precio unitario / cantidad/ monto parcail /descuento / monto a pagar

cout<<cod[c]<<" "<<Desc[c]<<" "<<PreUni[c]<<" "<<Cantidad<<" ";


cout<<MontoParc<<" "<<Descuento<<" "<<MontoPagar<<endl;
getch();
}

También podría gustarte