#include <stdio.h> #include <stdlib.h> #include<math.h> int main() { float maxWagaPalety=1000; float maxWysokoscPalety=200; float paletaSzer=120; float paletaDl=80; float paletaWys=15; int iloscPaczek=0; float wys, szer, dl, waga; int wybor; float tirSzer, tirDl, tirWys, tirMaxWaga; int iloscPalet=0; while(wybor!=3) { if(wybor==1) { 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); if(szer>paletaSzer || dl>paletaDl || wys>maxWysokoscPalety) { printf("Podane:\n wysokosc = %f,\n szerokosc = %f,\n dlugosc = %f,\n waga = %f\n",wys,szer,dl,waga); printf("Zalecane:\n wysokosc = %f,\n szerokosc = %f,\n dlugosc = %f,\n waga = %f\n\n",maxWysokoscPalety,paletaSzer,paletaDl,maxWagaPalety); } int iloscPaczek1Sposob, iloscPaczek2Sposob; float x = (int)(paletaSzer / szer); float y = (int)(paletaDl / dl); float z = (int)(maxWysokoscPalety / wys); iloscPaczek1Sposob=x*y*z; x = (int)(paletaSzer / dl); y = (int)(paletaDl / szer); z = (int)(maxWysokoscPalety / wys); iloscPaczek2Sposob=x*y*z; if(iloscPaczek1Sposob>iloscPaczek2Sposob) { iloscPaczek=iloscPaczek1Sposob; } else { iloscPaczek=iloscPaczek2Sposob; } float wagaCalkowita = iloscPaczek*waga; if(wagaCalkowita>maxWagaPalety) { int oIlePaczekZmniejszono=0; while(wagaCalkowita>maxWagaPalety) { iloscPaczek=iloscPaczek-1; wagaCalkowita=wagaCalkowita-waga; oIlePaczekZmniejszono = oIlePaczekZmniejszono+1; } z = z-(int)(oIlePaczekZmniejszono/(x*y)); printf("Aby nie przekroczyc maksymalnego obciazenia palety (1000kg), liczba paczek zostala zmniejszona\n\n"); } if(wybor==1) { z=(int)(tirWys/(paletaWys+(z*wys))); if(paletaDl>tirDl || paletaSzer>tirSzer ||z>tirWys || wagaCalkowita>tirMaxWaga) { } else { int ilePalet1Sposob, ilePalet2Sposob; x=(int)(tirSzer/paletaSzer); y=(int)(tirDl/paletaDl); ilePalet1Sposob=x*y; x=(int)(tirSzer/paletaDl); y=(int)(tirDl/paletaSzer); ilePalet2Sposob=x*y; if(ilePalet1Sposob>ilePalet2Sposob) { iloscPalet=ilePalet1Sposob; } else { iloscPalet=ilePalet2Sposob; } if(iloscPalet*wagaCalkowita>tirMaxWaga){ while(iloscPalet*wagaCalkowita>tirMaxWaga) { iloscPalet = iloscPalet-1; } printf("Aby nie przekroczyc maksymalnego obciazenia tira (%f), liczba palet zostala zmniejszona\n\n",tirMaxWaga); } } } } else if(wybor==2) { 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); int iloscPaczek1Sposob, iloscPaczek2Sposob; float x = (int)(paletaSzer / szer); float y = (int)(paletaDl / dl); float z = (int)(maxWysokoscPalety / wys); iloscPaczek1Sposob=x*y*z; x = (int)(paletaSzer / dl); y = (int)(paletaDl / szer); z = (int)(maxWysokoscPalety / wys); iloscPaczek2Sposob=x*y*z; int ilePaczekNaJednejPalecie; if(iloscPaczek1Sposob>iloscPaczek2Sposob) { ilePaczekNaJednejPalecie=iloscPaczek1Sposob; } else { ilePaczekNaJednejPalecie=iloscPaczek2Sposob; } float wagaCalkowita = waga*ilePaczekNaJednejPalecie; if(wagaCalkowita>maxWagaPalety) { while(wagaCalkowita>maxWagaPalety) { ilePaczekNaJednejPalecie=ilePaczekNaJednejPalecie-1; wagaCalkowita=wagaCalkowita-waga; } } } } return 0; }