Вы находитесь на странице: 1из 8

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

PROBLEMA.- Disear un programa que te permita ingresar los precios (en formato real y hasta 3 cifras decimales) de distintos productos pertenecientes a distintos almacenes en una matriz de n filas(tipos de productos ) y m columnas( numero de almacenes), donde n, m es definido por el usuario. Los datos ingresados debe procesarse y ser presentados solo en formato entero, para lo cual debe aplicar Reglas de Redondeo. El programa debe realizar y presentar lo siguiente, tal como se ilustra en la siguiente figura: 1.- Almacenar en un vector Total en Almacn[ ] los totales en almacn.. 2.- Almacenar en un vector Total para Producto Tipo[] los totales por producto. 3.- Mostrar en un vector los elementos todos tipos enteros tanto para Total en Almacen[ ] como para Total para Producto Tipo[ ]. 4.-Segn la parte 3 mostrar los elementos repetidos y mostrar los elementos que quedan y la secuencia. Solucion. Monte rrico 10.5 San Borja 11 Vector Total San San Producto Enter Isidro Miguel o Tipo[] 13.45 14.56 90.653 91 99.677 91.188 100 91

Lima Fideo

Lince Rimac

14.778 13.971 12.394

Arroz 11.333 14.561 14.701 15.344 12.673 15.62 15.445 Azucar 12.255 9.8 14.901 13.467 14.344 12.111 14.31 Total Almace 38.366 38.332 41.996 39.311 38.017 42.291 43.205 n[] Vector 38 38 42 39 38 42 43 Entero Secuen 38 38 38 39 42 42 43 cia
Vector Sin Repeticio n

39

43

a.- La parte 1 y 2 simplemente vamos almacenando los subtotales conforme vamos almacenando los precios hasta completar los vectores totales tanto de Almacn como de Producto Tipo. b.- Para mostrar los elementos enteros en los vectores correspondientes lo que hacemos es multiplicar por 1000 cada elemento de los vectores totales, luego

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

tomamos el residuo de dividir cada elemento entre 1000(tomando as la parte decimal de cada uno) y evaluamos si ese residuo es mayor que 500. Si lo es aadimos una unidad a la parte de las unidades sino no efectuamos nada y en ambos casos copiamos a los vectores tipo entero correspondientes a Almacn como a Tipo Producto. c.- Para la parte 4, quiz la parte mas compleja, en una sola operacin evaluamos el i-esimo elemento de los vectores enteros tanto como para Almacn y Tipo Producto y luego si el i-simo elemento es igual al j-simo elemento que las repeticiones se copien en otro vector (tanto para Almacn como para Producto Tipo) y que se eliminen del vector de enteros correspondientes quedando as solamente los elementos que no se repiten. d.- Usaremos pues los datos del cuadro de arriba para simular el comportamiento de nuestra empresa y para verificar si nuestro programa se comporta como es debido. ENTRADA DE DATOS A LA MATRIZ

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

RESULTADOS ACUMULADO POR ALMACENES

RESULTADOS POR TIPOS

RESULTADOS POR ALMACENES EN FORMATO ENTERO

RESULTADOS POR TIPOS EN FORMATO ENTERO

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

RESULTADOS DE ALMACENES SIN REPETIRSE

RESULTADOS POR TIPOS DE PRODUCTOS SIN REPETIRSE

ELEMENTOS REPETIDOS EN ALMACENES Y ELIMINADOS

ELEMENTOS REPETIDOS POR TIPOS Y ELIMINADOS

PROGRAMA FUENTE //MATRIZ_DECIMAL.CPP int main(){ int i, j, cant_al, cant_tipo, k=0, l=0, cant_al_Ent[8], cant_tipo_Ent[8], entero=0, eliminados_al[8], eliminados_tipo[8], z, zz, auxiliar=0, p=0, eliminadoi, elementoi; float precios[8][8], total_almacen[8], total_tipo[8], suma_almacen, suma_tipo; clrscr(); cout<<"INGRESE LA CANTIDAD DE ALMECENES : ";cin>>cant_al;

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

cout<<"INGRESE LA CANTIDAD DE TIPO DE PRODUCTOS :";cin>>cant_tipo; //Pidiendo los valores y almacenando en el vector total_almacen for(j=1;j<=cant_al;j++){ cout<<"\n\nEN EL ALMACEN "<<j<<" :"<<endl; suma_almacen=0; for(i=1;i<=cant_tipo;i++){ cout<<"INGRESE EL PRECIO PARA EL PRODUCTO"<<i<<" = ";cin>>precios[i][j]; suma_almacen += precios[i][j]; } total_almacen[j]=suma_almacen; } //Llenando los valores para el vector total_tipo for(i=1;i<=cant_tipo;i++){ suma_tipo=0; for(j=1;j<=cant_al;j++) suma_tipo += precios[i][j]; total_tipo[i]=suma_tipo; } //Mostrando totales por almacen cout<<"\n\nMostrando los totales por almacen.."<<endl; for(j=1;j<=cant_al;j++) cout<<"Total para Almacen "<<j<<" es: "<<total_almacen[j]<<endl; cout<<"Presione una tecla para continuar......"; getche(); //Mostrando totales por tipo cout<<"\n\nMostrando los totales por tipo.."<<endl; for(i=1;i<=cant_tipo;i++) cout<<"Total para el producto Tipo "<<i<<" es: "<<total_tipo[i]<<endl; cout<<"Presione una tecla para continuar......"; getche();
//Mostrando en el vector cant_al_Ent los valores enteros de usando reglas de recondeo cout<<"\n\nMostrando los elementos enteros para el vector Total en Almacen..."<<endl;

for(j=1;j<=cant_al;j++){ int multiplicado=1000*total_almacen[j]; int residuo=multiplicado%1000; if(residuo>=500) entero=multiplicado/1000+1; else entero=multiplicado/1000; //k++; cant_al_Ent[j]=entero;
cout<<"El elemento entero "<<j<<" del vector Total en Almacen es <<cant_al_Ent[j]<<endl;

} cout<<"Presione una tecla para continuar......";

getche();

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

//Mostrando en el vector cant_tipo_Ent los valores enteros de usando reglas de recondeo cout<<"\n\nMostrando los elementos para el vector Total para Producto Tipo..."<<endl;

for(i=1;i<=cant_tipo;i++){ int multiplicado=1000*total_tipo[i]; int residuo=multiplicado%1000; if(residuo>=500) entero=multiplicado/1000+1; else entero=multiplicado/1000; //l++; cant_tipo_Ent[i]=entero; cout<<"El elemento entero "<<i<<" del vector Total para Producto Tipo es: "<<cant_tipo_Ent[i]<<endl; } cout<<"Presione una tecla para continuar......"; getche(); //Eliminando elementos repetidos en cant_al_Ent y colocando las secuencias de los elementos repetidos en el vector eliminados_al z=0; eliminadoi=0; elementoi=1; for(i=1;i<=cant_al-1;i++){ for(k=i+1;k<=cant_al;k++){ if (cant_al_Ent[k]==cant_al_Ent[i]){ p=k; if(elementoi){ eliminados_al[++z]=cant_al_Ent[i]; eliminados_al[++z]=cant_al_Ent[k]; elementoi=0; } else eliminados_al[++z]=cant_al_Ent[k]; while (p<=cant_al){ cant_al_Ent[p]=cant_al_Ent[p+1]; p++; } cant_al--; k--; eliminadoi=1; } } if(eliminadoi){l=i; while(l<=cant_al){ cant_al_Ent[l]=cant_al_Ent[l+1]; l++; } cant_al--; i--; eliminadoi=0; elementoi=1; } }

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

//Eliminando elementos repetidos en cant_tipo_Ent y colocando las secuencias de //los elementos repetidos en el vector eliminados_tipo zz=0; eliminadoi=0; elementoi=1; for(i=1;i<=cant_tipo-1;i++){ for(k=i+1;k<=cant_tipo;k++){ if (cant_tipo_Ent[k]==cant_tipo_Ent[i]){ p=k; if(elementoi){ eliminados_tipo[++zz]=cant_tipo_Ent[i]; eliminados_tipo[++zz]=cant_tipo_Ent[k]; elementoi=0; } else eliminados_tipo[++zz]=cant_tipo_Ent[k]; while (p<=cant_tipo){ cant_tipo_Ent[p]=cant_tipo_Ent[p+1]; p++; } cant_tipo--; k--; eliminadoi=1; } } if(eliminadoi){ l=i; while(l<=cant_tipo){ cant_tipo_Ent[l]=cant_tipo_Ent[l+1]; l++; } cant_tipo--; i--; eliminadoi=0; elementoi=1; } }

//Mostrando los elementos del vector entero cant_al_Ent sin repetidos cout<<"\n\nMostrando los elementos enteros sin repetir para el vector Total en Almancen..."<<endl; for(i=1;i<=cant_al;i++) cout<<"El elemento sin repetir "<<i<<" del vector entero Total en Almacen es: "<<cant_al_Ent[i]<<endl;
Curso: Lenguajes de programacin Estructurado Docente: Cordova Neri, T.

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

UNI-FIIS

cout<<"Presione una tecla para continuar......";

getche();

//Mostrando los elementos del vector entero cant_tipo_Ent sin repetidos cout<<"\n\nMostrando los elementos enteros sin repetir para el vector Total para Producto Tipo..."<<endl; for(i=1;i<=cant_tipo;i++) cout<<"El elemento sin repetir "<<i<<" del vector entero Total para Producto Tipo es: "<<cant_tipo_Ent[i]<<endl; cout<<"Presione una tecla para continuar......"; getche(); //Mostrando los elementos del vector eliminado para cant_al_Ent cout<<"\n\n\nMostrando la secuencia de valores repetidos en el vector Total en Almacen es: "<<endl; for(i=1;i<=z;i++) cout<<eliminados_al[i]<<endl; cout<<"Presione una tecla para continuar......"; getche(); //Mostrando los elementos del vector eliminado para cant_tipo_Ent cout<<"\n\n\nMostrando la secuencia de valores repetidos en el vector Total para Producto Tipo es: "<<endl; for(i=1;i<=zz;i++) cout<<eliminados_tipo[i]<<endl; cout<<"Fin del Programa"; getche(); return 0; }

Curso: Lenguajes de programacin Estructurado

Docente: Cordova Neri, T.

w
w

w
w

Вам также может понравиться