#include #include #include 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) { printf(" MENU\n"); printf("1. Oblicz optymalne rozmieszczenie towaru na palecie\n"); printf("2. Oblicz ile palet jest potrzebne do rozlozenia towaru\n"); printf("3. Wyjdz z programu\n"); scanf("%d",&wybor); 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); printf("Podaj szerokosc paczki (w cm): "); scanf("%f",&szer); printf("Podaj dlugosc paczki (w cm): "); scanf("%f",&dl); printf("Podaj wysokosc paczki (w cm): "); scanf("%f",&wys); printf("Podaj wage paczki (w kg): "); scanf("%f",&waga); if(szer>paletaSzer || dl>paletaDl || wys>maxWysokoscPalety) { printf("Podane wymiary przekraczaja zalecane wymiary!\n"); 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"); } printf("Na jednej palecie optymalnie zmiesci sie %d paczek\n\n",iloscPaczek); printf("Czy chcesz aby program policzyl ile palet zmiesci sie w tirze?\n"); printf("1. Tak\n2. Nie\n"); scanf("%d",&wybor); if(wybor==1) { printf("Podaj szerokosc naczepy tira (w cm): "); scanf("%f",&tirSzer); printf("Podaj dlugosc naczepy tira (w cm): "); scanf("%f",&tirDl); printf("Podaj wysokosc naczepy tira (w cm): "); scanf("%f",&tirWys); printf("Podaj ladownosc naczepy tira (w kg): "); scanf("%f",&tirMaxWaga); z=(int)(tirWys/(paletaWys+(z*wys))); if(paletaDl>tirDl || paletaSzer>tirSzer ||z>tirWys || wagaCalkowita>tirMaxWaga) { printf("Na naczepie tira nie zmiesci ani jedna paleta!"); } 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); } printf("Na naczepie tira zmiesci sie %d palet(/y)\n\n",iloscPalet); } } } 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); printf("Podaj szerokosc paczki (w cm): "); scanf("%f",&szer); printf("Podaj dlugosc paczki (w cm): "); scanf("%f",&dl); printf("Podaj wysokosc paczki (w cm): "); scanf("%f",&wys); printf("Podaj wage paczki (w kg): "); scanf("%f",&waga); printf("Podaj ile paczek chcesz rozlozyc: "); scanf("%d",&iloscPaczek); 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; } } iloscPalet = ceil(iloscPaczek / (ilePaczekNaJednejPalecie*1.0)); printf("\nDo zaladowania %d paczek potrzebujesz %d palet(/y)\n",iloscPaczek,iloscPalet); printf("Na jednej palecie zmiesci sie %d paczek\n\n",ilePaczekNaJednejPalecie); } } return 0; }