• Jueves 16 de Mayo de 2024, 12:11

Autor Tema:  Duda Interpretacion Del Ejercicio!  (Leído 810 veces)

cazadorite

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Duda Interpretacion Del Ejercicio!
« en: Sábado 15 de Diciembre de 2007, 18:06 »
0
holas una duda no me convence como interprete este ejercicio es medio boludo pero bue..
el problema es cuando dice (no puede haber mas de un registro para el mismo producto y la misma materia.
) yo hice insercion en cod. producto no se repite .. yo lo tome como que no se puede repetir un producto y la misma materia. pero hace falta hacer insercion en cod.materia prima. si ya con que uno no se repita no se repiten los dos al mismo tiempo.
y en el a) total por producto si hago insercion no totaliza nada si no se repite el mismo producto para acumular..en el B) tambien
 
una laboratorio quimico fabrica total de 50 productos distintos y tiene estos lotes.
1er lote con la informacion de la composicion de sus productos y tiene:

codigo de producto (char[4])
codigo de materia prima (char[4])
cantidad de Mg.

existe un registro por cada cod. de materia prima que componga al producto. el lote finaliza
cantidad ==0. no puede haber mas de un registro para el mismo producto y la misma materia.

2do lote con los costos de cada uno de los 100 cod. de materia prima.y tiene:

codigo de materia prima (char[4])
precio por Mg en $.

informar:
a) el costo total x producto, ordenado en forma decendente por costo.
cod. producto     costo total
 xxx           999,9
b)indicar para cada producto, cual es la materia prima cuya composicion en gramos sea la maxima.
Código: Text
  1.  
  2. #include <stdio.h>
  3. #include<conio.h>
  4. #include <string.h>
  5.  
  6. void main (void)
  7. {
  8.   int cant,vpu[4],imp;
  9.    int vtp[4]={0};
  10.   int mxp[4][4]={0};
  11.   char vcm[4][4],vcp[4][4];
  12.   char cp[4],cm[4];
  13.  
  14.  
  15.   for(int i=0; i<4; i++)
  16.   {
  17.     fflush(stdin);
  18.     printf("cod. materia prima (4 caracteres mx) ");
  19.     gets(vcm[i]);
  20.     printf("precio x mg en $ (4mx)");     // cargo lote
  21.     scanf("%d",&vpu[i]);
  22.  
  23.   }
  24.     int z=0;
  25.     printf("cant vend. ");
  26.     scanf("%d",&cant);
  27.     while(cant!=0)
  28.     {
  29.       fflush(stdin);
  30.       printf("cod. producto (4mx) (4 caracteres mx) ");
  31.       gets(cp);
  32.       printf("cod. materia prima (4 caracteres mx) ");
  33.       gets(cm);
  34.  
  35.       int x=0;                            //
  36.       while(x<z && strcmp(vcp[x],cp)!=0)
  37.         x++;
  38.         if(x>=z)
  39.         {                                  //insercion cod. producto
  40.           strcpy(vcp[x],cp);               //  hice asi porque no se como usar  la cadena como subindice
  41.           z++;                             //   para acumular o contar etc..
  42.         }                                //
  43.  
  44.       int k=0;
  45.       while(strcmp(vcm[k],cm)!=0 && k<4) //busca si exite la cod. materia y lo utiliza
  46.         k++;
  47.       imp=vpu[k]*cant;
  48.       vtp[x]+=imp;
  49.       mxp[x][k]+=cant;
  50.  
  51.  
  52.       printf("cant vend. ");
  53.       scanf("%d",&cant);
  54.      }
  55.  
  56.     int aux;
  57.       char aux1[4];
  58.     for(int b=0; b<3; b++)
  59.     {
  60.       for(int c=b+1; c<4; c++)
  61.         if (vtp[b]<vtp[c])
  62.         {
  63.           aux=vtp[b];
  64.           vtp[b]=vtp[c];
  65.           vtp[c]=aux;
  66.           strcpy(aux1,vcp[b]);
  67.           strcpy(vcp[b],vcp[c]);
  68.           strcpy(vcp[c],aux1);
  69.         }
  70.     }
  71.  
  72.     for(int h=0; h<4; h++)
  73.     {
  74.       printf( " cod. producto %s costo total %d \n",vcp[h],vtp[h]);
  75.     }
  76.  
  77.  
  78.      for(int l=0; l<4; l++)
  79.      {
  80.       int mx=0,pos;
  81.       for(int j=0; j<4; j++)
  82.       {                        
  83.         if(mxp[l][j]>mx)
  84.           {
  85.           mx=mxp[l][j];       // como no se repite cod producto cualquier cod. mat prima  es el maximo
  86.           pos=j;              // eso de la insercion se me hace q ta mal..
  87.           }
  88.       }
  89.       printf( " cod. producto %s la materia prima mx composicion es  %s  \n",vcp[l],vcm[pos]);
  90.  
  91.      }
  92. }
  93.  
  94.  
  95.  
  96.