## MODEL DZIALANIA MAGAZYNU #### DANE WEJSCIOWE #### stan=[5 4 0 20]; #4 artykuly i ich stany ############## #### FUNKCJE function [wyd] = wydaj(st,nr_pr,il) if (spr_stan(st,nr_pr) < il) #sprawdzam stan, zeby uniknac ujemnych ilosci display ("Niewystarczajaca ilosc towaru"); wyd=0; else wyd(1:il)=nr_pr; #ilustracja wydania okreslonej ilosci sztuk produktu endif endfunction function [sta] = spr_stan(st,nr_pr) sta = st(nr_pr); endfunction ##### PROGRAM ZASADNICZY do #menu display("1. Pokaz stan"); display("2. Wydanie z magazynu"); display("3. Przyjecie na magazyn"); display("Pozostale: wyjscie"); wyb = input("Wybierz: "); if (wyb==1) produkt = input("Podaj nr produktu:") wynik=spr_stan(stan,produkt); printf("Stan magazynowy produktu nr %u to %u \n",produkt,wynik); elseif(wyb==2) produkt = input("Podaj nr produktu:"); ile = input("Podaj ilosc:"); a=wydaj(stan,produkt,ile); if (a) #jesli a != 0 - czyli stany pozwalaja na wydanie towaru stan(produkt)=stan(produkt)-ile; endif printf("Wydany towar: "); printf("%u ",a); printf("\nStan produktu nr %u po wydaniu: %u",produkt,spr_stan(stan,produkt)); elseif(wyb==3) produkt = input("Podaj nr produktu:"); ile = input("Podaj ilosc:"); w=length(stan); #zmienna pomocnicza - ilosc rodzajow produktow if (produkt<=w) #jezeli produkt o danym indeksie juz istnieje stan(produkt)+=ile; printf("\nStan produktu nr %u po przyjeciu: %u",produkt,spr_stan(stan,produkt)); elseif(produkt==++w) #jezeli indeks nowego produktu wiekszy o 1 (czyli kolejny) resize(stan,1,(++w)); stan(produkt)=ile; printf("\nStan produktu nr %u po przyjeciu: %u",produkt,spr_stan(stan,produkt)); else #indeks wiekszy o min 2 od najwyzszego istniejacego printf("\nKolejny wolny indeks produktu to: %u",++w); endif else display("PA PA PA"); #papa ;) endif pause; disp(""); disp(""); until (wyb != 1 && wyb != 2 && wyb != 3) #petla z menu do momentu wybrania nieistniejacej pozycji