Facebook
From Bitty Duck, 3 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 51
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<math.h>
  4.  
  5. int main()
  6. {
  7.     float maxWagaPalety=1000;
  8.     float maxWysokoscPalety=200;
  9.     float paletaSzer=120;
  10.     float paletaDl=80;
  11.     float paletaWys=15;
  12.  
  13.     int iloscPaczek=0;
  14.     float wys, szer, dl, waga;
  15.     int wybor;
  16.  
  17.     float tirSzer, tirDl, tirWys, tirMaxWaga;
  18.     int iloscPalet=0;
  19.  
  20.     while(wybor!=3)
  21.     {
  22.         printf("                        MENU\n");
  23.         printf("1. Oblicz optymalne rozmieszczenie towaru na palecie\n");
  24.         printf("2. Oblicz ile palet jest potrzebne do rozlozenia towaru\n");
  25.         printf("3. Wyjdz z programu\n");
  26.         scanf("%d",&wybor);
  27.  
  28.         if(wybor==1)
  29.         {
  30.             printf("Wymiary palety:\n dlugosc = %f\n szerokosc = %f\n wysokosc = %f\n waga maksymalna = %f\n wysokosc maksymalna = %f\n\n",paletaDl,paletaSzer,paletaWys,maxWagaPalety,maxWysokoscPalety);
  31.  
  32.             printf("Podaj szerokosc paczki (w cm): ");
  33.             scanf("%f",&szer);
  34.             printf("Podaj dlugosc paczki (w cm): ");
  35.             scanf("%f",&dl);
  36.             printf("Podaj wysokosc paczki (w cm): ");
  37.             scanf("%f",&wys);
  38.             printf("Podaj wage paczki (w kg): ");
  39.             scanf("%f",&waga);
  40.  
  41.             if(szer>paletaSzer || dl>paletaDl || wys>maxWysokoscPalety)
  42.             {
  43.                 printf("Podane wymiary przekraczaja zalecane wymiary!\n");
  44.                 printf("Podane:\n wysokosc = %f,\n szerokosc = %f,\n dlugosc = %f,\n waga = %f\n",wys,szer,dl,waga);
  45.                 printf("Zalecane:\n wysokosc = %f,\n szerokosc = %f,\n dlugosc = %f,\n waga = %f\n\n",maxWysokoscPalety,paletaSzer,paletaDl,maxWagaPalety);
  46.             }
  47.  
  48.             int iloscPaczek1Sposob, iloscPaczek2Sposob;
  49.             float x = (int)(paletaSzer / szer);
  50.             float y = (int)(paletaDl / dl);
  51.             float z = (int)(maxWysokoscPalety / wys);
  52.             iloscPaczek1Sposob=x*y*z;
  53.             x = (int)(paletaSzer / dl);
  54.             y = (int)(paletaDl / szer);
  55.             z = (int)(maxWysokoscPalety / wys);
  56.             iloscPaczek2Sposob=x*y*z;
  57.             if(iloscPaczek1Sposob>iloscPaczek2Sposob)
  58.             {
  59.                 iloscPaczek=iloscPaczek1Sposob;
  60.             }
  61.             else
  62.             {
  63.                 iloscPaczek=iloscPaczek2Sposob;
  64.             }
  65.             float wagaCalkowita = iloscPaczek*waga;
  66.             if(wagaCalkowita>maxWagaPalety)
  67.             {
  68.                 int oIlePaczekZmniejszono=0;
  69.                 while(wagaCalkowita>maxWagaPalety)
  70.                 {
  71.                     iloscPaczek=iloscPaczek-1;
  72.                     wagaCalkowita=wagaCalkowita-waga;
  73.                     oIlePaczekZmniejszono = oIlePaczekZmniejszono+1;
  74.                 }
  75.                 z = z-(int)(oIlePaczekZmniejszono/(x*y));
  76.                 printf("Aby nie przekroczyc maksymalnego obciazenia palety (1000kg), liczba paczek zostala zmniejszona\n\n");
  77.             }
  78.             printf("Na jednej palecie optymalnie zmiesci sie %d paczek\n\n",iloscPaczek);
  79.  
  80.             printf("Czy chcesz aby program policzyl ile palet zmiesci sie w tirze?\n");
  81.             printf("1. Tak\n2. Nie\n");
  82.             scanf("%d",&wybor);
  83.             if(wybor==1)
  84.             {
  85.                 printf("Podaj szerokosc naczepy tira (w cm): ");
  86.                 scanf("%f",&tirSzer);
  87.                 printf("Podaj dlugosc naczepy tira (w cm): ");
  88.                 scanf("%f",&tirDl);
  89.                 printf("Podaj wysokosc naczepy tira (w cm): ");
  90.                 scanf("%f",&tirWys);
  91.                 printf("Podaj ladownosc naczepy tira (w kg): ");
  92.                 scanf("%f",&tirMaxWaga);
  93.  
  94.                 z=(int)(tirWys/(paletaWys+(z*wys)));
  95.                 if(paletaDl>tirDl || paletaSzer>tirSzer ||z>tirWys || wagaCalkowita>tirMaxWaga)
  96.                 {
  97.                     printf("Na naczepie tira nie zmiesci ani jedna paleta!");
  98.                 }
  99.                 else
  100.                 {
  101.                     int ilePalet1Sposob, ilePalet2Sposob;
  102.                     x=(int)(tirSzer/paletaSzer);
  103.                     y=(int)(tirDl/paletaDl);
  104.                     ilePalet1Sposob=x*y;
  105.                     x=(int)(tirSzer/paletaDl);
  106.                     y=(int)(tirDl/paletaSzer);
  107.                     ilePalet2Sposob=x*y;
  108.                     if(ilePalet1Sposob>ilePalet2Sposob)
  109.                     {
  110.                         iloscPalet=ilePalet1Sposob;
  111.                     }
  112.                     else
  113.                     {
  114.                         iloscPalet=ilePalet2Sposob;
  115.                     }
  116.                     if(iloscPalet*wagaCalkowita>tirMaxWaga){
  117.                         while(iloscPalet*wagaCalkowita>tirMaxWaga)
  118.                         {
  119.                             iloscPalet = iloscPalet-1;
  120.                         }
  121.                         printf("Aby nie przekroczyc maksymalnego obciazenia tira (%f), liczba palet zostala zmniejszona\n\n",tirMaxWaga);
  122.                     }
  123.                     printf("Na naczepie tira zmiesci sie %d palet(/y)\n\n",iloscPalet);
  124.                 }
  125.  
  126.             }
  127.  
  128.         }
  129.         else if(wybor==2)
  130.         {
  131.             printf("Wymiary palety:\n dlugosc = %f\n szerokosc = %f\n wysokosc = %f\n waga maksymalna = %f\n wysokosc maksymalna = %f\n\n",paletaDl,paletaSzer,paletaWys,maxWagaPalety,maxWysokoscPalety);
  132.  
  133.             printf("Podaj szerokosc paczki (w cm): ");
  134.             scanf("%f",&szer);
  135.             printf("Podaj dlugosc paczki (w cm): ");
  136.             scanf("%f",&dl);
  137.             printf("Podaj wysokosc paczki (w cm): ");
  138.             scanf("%f",&wys);
  139.             printf("Podaj wage paczki (w kg): ");
  140.             scanf("%f",&waga);
  141.             printf("Podaj ile paczek chcesz rozlozyc: ");
  142.             scanf("%d",&iloscPaczek);
  143.  
  144.             int iloscPaczek1Sposob, iloscPaczek2Sposob;
  145.             float x = (int)(paletaSzer / szer);
  146.             float y = (int)(paletaDl / dl);
  147.             float z = (int)(maxWysokoscPalety / wys);
  148.             iloscPaczek1Sposob=x*y*z;
  149.             x = (int)(paletaSzer / dl);
  150.             y = (int)(paletaDl / szer);
  151.             z = (int)(maxWysokoscPalety / wys);
  152.             iloscPaczek2Sposob=x*y*z;
  153.             int ilePaczekNaJednejPalecie;
  154.             if(iloscPaczek1Sposob>iloscPaczek2Sposob)
  155.             {
  156.                 ilePaczekNaJednejPalecie=iloscPaczek1Sposob;
  157.             }
  158.             else
  159.             {
  160.                 ilePaczekNaJednejPalecie=iloscPaczek2Sposob;
  161.             }
  162.  
  163.             float wagaCalkowita = waga*ilePaczekNaJednejPalecie;
  164.             if(wagaCalkowita>maxWagaPalety)
  165.             {
  166.                 while(wagaCalkowita>maxWagaPalety)
  167.                 {
  168.                     ilePaczekNaJednejPalecie=ilePaczekNaJednejPalecie-1;
  169.                     wagaCalkowita=wagaCalkowita-waga;
  170.                 }
  171.             }
  172.             iloscPalet = ceil(iloscPaczek / (ilePaczekNaJednejPalecie*1.0));
  173.  
  174.             printf("\nDo zaladowania %d paczek potrzebujesz %d palet(/y)\n",iloscPaczek,iloscPalet);
  175.             printf("Na jednej palecie zmiesci sie %d paczek\n\n",ilePaczekNaJednejPalecie);
  176.         }
  177.     }
  178.     return 0;
  179. }
  180.