Lab_nro2_oper

Anuncio
LABORATORIO NRO 2 – ARREGLOS UNIDIMENSIONALES
ALGORITMOS AVANZADOS
ING. GLADYS GARCIA V.
PROBLEMA NRO 1.
Objetivos :
 Crear y mostrar un arreglo unidimensional
 Usar variables contador, acumulador.
 Calcular máximos y mínimos
Enunciado:
En la biblioteca de la universidad, se hacen prestamos de libros que están clasificados en
8 grandes áreas. Se desea :
a) Inicializar el arreglo Áreas,
b) Leer el arreglo denominado CantLibros.
c) Ingresado por teclado un índice, mostrar la cantidad de libros solicitados en el mes.
d) Calcular la cantidad total de libros solicitados durante el mes.
e) Mostrar un reporte Área y cantidad de libros de cada área solicitados durante el mes. y
la cantidad total de libros solicitados durante el mes.
Area CantLibros
....
....
....
....
-----------......
f) Mostrar los índices de las áreas de menor demanda y la cantidad mínima de libros
solicitados.
g) Mostrar los nombres de las áreas de mayor demanda y la cantidad máxima de libros
solicitados.
Hacer el programa C++. Durante la corrida, Ingrese por teclado la siguiente información:
Literatura
Matemática
Arte
Historia
Geografía
Computación
Filosofía
Sistemas
250
237
310
411
520
160
239
501
0
1
2
3
4
5
6
7
// PROGRAMA C++
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
void main()
{ int i,STotLib, CantLibros[8],Min,Max;
// a) Inicializar Area
char
Area[8][20]=
{"Literatura","Matematica","Arte","Historia","Geografia","Computacion","Filosofia","Sistemas"};
// b) Leer CantLibros
cout<<"Ing. cantidad de libros solicitados:"<<endl;
for( i= 0; i< 8; i = i+1)
{ cin>>CantLibros[i]; }
// c) Ingresado i mostrar el area y la cantidad de libros
cout<<"Ingrese indice : ";cin>>i;
cout<<Area[i]<<" "<<CantLibros[i]<<endl;
getch(); // pausa
// d) Calcular el total de libros
STotLib = 0;
for(i=0;i<8;i=i+1)
{ STotLib = STotLib + CantLibros[i]; }
// d) Mostrar Reporte
cout<<setw(20)<<"Area"<<setw(20)<<"Cantidad Libros:"<<endl;
cout<<"========================================= "<<endl;
for(i=0;i<8;i=i+1)
{ cout<<setw(20)<<Area[i]<<" "<<setw(10)<<CantLibros[i]<<endl; }
cout<<" Total de libros prestados: "<<STotLib<<endl;
// e) Calcular el minimo y los indices del minimo
Min = CantLibros[0];
for(i=1;i<8;i=i+1)
{ if ( CantLibros[i] <Min )
{ Min = CantLibros[i]; }
}
for(i=0;i<8;i=i+1)
{ if ( CantLibros[i] == Min )
{ cout<<i<<" "; }
}
cout<<endl<<"Minimo = "<<Min<<endl;
// f) Encontrar el maximo y en que area se da
Max = CantLibros[0];
for ( i = 1; i<8; i = i+1)
{ if ( CantLibros[i] > Max )
Max = CantLibros[i];
}
for(i=0;i<8;i=i+1)
{ if ( CantLibros[i] == Max )
{ cout<<Area[i]<<" "; }
}
cout<<endl<<"Maximo = "<<Max<<endl;
getch();
}
b) Leer el arreglo CantLibros
c) Leer índice, i
Mostrar CantLibros[i]
d) Calcular la cantidad total
de libros solicitados durante
el mes.
e) Mostrar un reporte Área y
cantidad de libros de cada
área solicitados durante el
mes. y la cantidad total de
libros solicitados durante el
mes.
f) Mostrar los índices de las
áreas de menor demanda y
la cantidad mínima de libros
solicitados.
g) Mostrar los nombres de
las áreas de mayor
demanda y la cantidad
máxima de libros solicitados.
PROBLEMA NRO 2.
Objetivos:
 Inicializar, crear y mostrar un arreglo unidimensional
 Usar acumulador de elementos de un arreglo unidimensional
 Multiplicar un arreglo unidimensional por un escalar
 Multiplicar dos arreglos unidimensionales
Enunciado:
En una empresa que comercializa 10 variedades de productos derivados del petróleo, al
encargado de la programación, se le ha solicitado inicializar en un arreglo unidimensional
los precios por galones de cada uno de sus productos. Hacer un algoritmo que permita:
a) Modificar dichos precios debido a la economía inestable, aplicando una tasa que debe
ser declarada constante. Los precios se incrementan..
b) Hacer un reporte con los nuevos precios/ galón.
c) Leer el arreglo paralelo con la cantidad de galones vendidos en el día, de cada uno de
sus productos. y calcular la venta respectiva en soles de cada producto.
d) Mostrar un reporte con los nuevos precios , las ventas en galones y las ventas en
soles.
PrecioGal
5.6
7.8
8.5
8.9
2.6
1.7
2.3
6.7
1.9
2.4
0
1
2
3
4
5
6
7
8
9
120
200
300
270
453
400
540
235
321
GalVend
100
VenSoles
588
Programa C++
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<stdlib.h> // system("cls")
void main()
{
double precioGal[10]= {5.6, 7.8, 8.5, 8.9 , 2.6, 1.7, 2.3, 6.7, 1.9, 2.4};
double GalVend[10], VenSoles[10];
int i;
const double tasa = 0.05;
// a) Calcular los nuevos precios del dia
for(i=0;i<=9;i=i+1)
{ precioGal[i] = precioGal[i]*1.05; }
// b) Reporte con los nuevos precios
for(i=0;i<=9;i=i+1)
{ cout<<precioGal[i]<<" "; }
// c) Leer GalVend
cout<<endl<<"Ingrese el arreglo de ventas en galones : "<<endl;
for(i=0;i<=9;i=i+1)
{ cin>>GalVend[i]; }
for(i=0;i<=9;i=i+1)
// Calcular VenSoles
{ VenSoles[i] = precioGal[i]*GalVend[i]; }
system("cls");
// clrscr()
// d) Mostrar reporte
for(i=0;i<=9;i=i+1)
{
cout<<setw(10)<<precioGal[i]<<setw(10)<<GalVend[i]<<setw(10)<<VenSoles[i]<<
endl;}
getch();
}
a) Modificar dichos precios debido a la economía inestable, aplicando una tasa que debe ser declarada
constante. Los precios se incrementan..
b) Hacer un reporte con los nuevos precios/ galón.
c) Leer el arreglo paralelo con la venta diaria, en galones de cada uno de sus productos. y calcular la
venta respectiva en soles de cada producto.
d) Mostrar un reporte con los nuevos
precios, las ventas en galones y las
ventas en soles.
PrecioGal GalVend VenSoles
....
.....
......
....
.....
......
PROBLEMA NRO 3:
Objetivos:
 Crear y mostrar arreglos unidimensionales.
 Restar arreglos unidimensionales.
 Multiplicar un arreglo unidimensional por un escalar.
 Sumar los elementos de un arreglo unidimensional.
Enunciado:
El gerente de una empresa desea saber el capital disponible en cada mes del año, así
como el total disponible durante todo el año. También calcular y mostrar el capital por mes
que se invertirá en el próximo año, si se invierte solo un porcentaje (declarado constante)
del disponible,. Para ello se almacena en dos arreglos paralelos los ingresos y los egresos
en cada uno de los meses del año.
Ingresos
13.5
14.6
16.7
11.4
10.1
17.3
13.6
11.7
12.6
13.2
15.6
11.2
12.6
9.1
7.2
15.2
10.1
8.3
9.3
11.1
12.3
8.6
Egresos
10.1
11.3
CapDispo
3.4
CapInvertir
CTD
2.6
...
CTI
.....
CTD = Capital Total Disponible
CTI = Capital Total a Invertir
// Programa C++
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<stdlib.h> // system("cls")
const int N = 12;
// Para la corrida colocar solo 3
void main()
{
double Ingres[N], Egres[N], CapDispo[N], CapInver[N];
double CTD, CTI;
int i;
const double ti = 0.85;
// a) Leer los Ingresos -->Arreglo Ingres
for(i=0;i<N;i=i+1)
{ cin>>Ingres[i]; }
// b) Leer los Egresos -->Arreglo Egres
for(i=0;i<N;i=i+1)
{ cin>>Egres[i]; }
// c) Calcular Capital disponible por mes y acumular el Capital total disponible
CTD = 0;
for(i=0;i<N;i=i+1)
{ CapDispo[i] = Ingres[i]-Egres[i];
CTD = CTD + CapDispo[i];
}
// d) Calcular el capital a invertir por mes y acumular el capital total a Invertir
CTI = 0;
for(i=0;i<N;i=i+1)
{ CapInver[i] = ti*CapDispo[i];
CTI = CTI + CapInver[i];
}
// e) Mostrar el reporte Ingresos Egresos Capital_Disponible Capital_a_Invertir
//
Capital_Total_Disponible Capital_Total_Invertir
for(i=0;i<N;i=i+1)
{
cout<<setw(10)<<Ingres[i]<<setw(10)<<Egres[i]<<setw(10)<<CapDispo[i]<<setw(1
0)<<CapInver[i]<<endl;
}
cout<<setw(30)<<CTD<<setw(10)<<CTD<<endl;
getch();
}
PROBLEMA NRO 4
Objetivos:


Inicializar arreglos paralelos y accesar a elementos i de dichos arreglos
Usar acumuladores.
Enunciado:
Hacer un algoritmo en pseudocodigo que inicialice el código, descripción y precio de 5
artículos, almacenados en arreglos paralelos que una empresa comercializa. Se pide:
a) Hacer un reporte con esta información.
b) Ingresado por teclado un índice mostrar su código, descripción y precio unitario.
c) Permitir atender pedidos de mas de un tipo de producto mostrando la descripción,
precio unitario, cantidad comprada y monto parcial de cada tipo de producto. Además
calcular y mostrar el monto total (suma de los montos parciales), descuento y monto a
pagar teniendo en cuenta que si el monto total es superior a 1000 dólares, o la cantidad
total comprada es superior o igual a 12, se hace un descuento de 5% sobre el monto total
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
void main()
{ char cod[5][5]= {"P01","P02","P03","P04","P05"};
char Desc[5][15] = {"TV 14", "TV 19", "TV 21", "TV 24","VHS" };
double PreUni[5] = {250, 350, 480, 870, 260};
double MontoParc , Descuento, MonTotal, MontoPagar;
int i, Cantidad, CantTotal;
char cont;
const double td = 0.05;
// a) Reporte con la informacion almacenada en los arreglos
for(i=0;i<5;i=i+1)
{cout<<setw(10)<<cod[i]<<setw(20)<<Desc[i]<<setw(10)<<PreUni[i]<<endl;}
// b) prueba ingrese un indice y muestre la información almacenada en los arreglos paralelos
cout<<"Ingrese indice : ";cin>>i;
cout<<cod[i]<<" "<<Desc[i]<<" "<<PreUni[i]<<endl;
// c) atención de pedido por varios productos
MonTotal = 0;
CantTotal = 0;
cout<<"desea continuar : ";cin>>cont;
while (cont == 'S' || cont =='s')
{
cout<<"Ingrese indice : ";cin>>i;
cout<<"Ingrese unidades a comprar : "; cin>>Cantidad;
MontoParc = Cantidad * PreUni[i];
cout<<Desc[i]<<" "<<PreUni[i]<<" "<<Cantidad<<" "<<MontoParc<<endl;
MonTotal = MonTotal + MontoParc;
CantTotal = CantTotal + Cantidad;
cout<<"desea continuar : ";cin>>cont;
}
if ( (MonTotal > 1000) || (CantTotal >=12) )
{ Descuento = td* MonTotal; }
else
{ Descuento = 0;}
MontoPagar = MonTotal - Descuento;
cout<<"Monto total
= " <<MonTotal<<endl;
cout<<"Descuento
= " <<Descuento<<endl;
cout<<"Monto a pagar = "<<MontoPagar<<endl;
getch();
}
// ¿cómo generaría una factura ?
Descargar