[ techfanatik @ 04.11.2010. 15:16 ] @
1. Implementirati stek u programskom jeziku C sa operacijama:
a. push() dodaje element na vrh steka
b. pop() skida element sa steka
c. top() vraća podatak sa vrha steka

Korišćenjem osnovnih operacija koje je moguće vršiti nad stekom implemetirati metodu za provjeru uparenosti zagrada u unesenom aritmetičkom izrazu. Moguće zagrade su – (, ), {, }, [ i ]. Izraz se skenira sa lijeva na desno.

Primjer aritmetičkih izraza: (a+b)*c-d/[(e-f)+g – neispravan, nedostaje ] (a+b)*c-d/[(e-f)+g] – ispravan

2. U programskom jeziku C napisati program koji će simulirati rad hitne službe (implementacija prioritetnog reda).
Pacijenti u hitnoj službi se generišu kao trojka (a, b, c), pri čemu a predstavlja vrijeme dolaska pacijenta, b je vrijeme potrebno da se izvrši pregled pacijenta, dok je c prioritet pacijenta. Parametri a i b su cijeli brojevi, između 1 i 30, dok parametar c može da bude cijeli broj od 1 do 4 (1 predstavlja najviši prioritet, a 4 najniži). Prilikom pokretanja programa korisnik unosi koliko pacijenata želi da kreira (maksimalan broj pacijenata je 8), nakon čega se generišu pacijenti i počinje simulacija:
a. Pacijenti se sortiraju po prioritetu, te se nakon sortiranja ispisuju. Ukoliko dva pacijenta imaju isti prioritet, onda se posmatra i vrijeme dolaska pacijenta – onaj koji je došao prvi, tj. koji ima manji parametar a, taj ima veći prioritet. Ukoliko se desi da su i vremena dolaska identična, onda se smještaju proizvoljno.
b. Unosom START sa tastature hitna služba počinje sa radom – prvi pacijent na redu čekanja odlazi kod ljekara i ostaje onoliko sekundi kolika je vrijednost slučajno generisanog parametra b. Na konzoli se ispisuje „Pacijent redni broj je na pregledu! Pregled počeo u vrijeme i trajaće b sekundi!“ Nakon isteka vremena, pacijent se uklanja iz reda, i ispisuje se poruka „Pregled pacijenta redni broj je završen! Sljedeći pacijent je redni broj+1.“, i sljedeći pacijent odlazi do ljekara. Postupak se ponavlja dok god ima pacijenata u redu. Na kraju se ispisuje poruka „KRAJ SIMULACIJE, UNESITE Q ZA IZLAZ“.


Dodatak SLUČAJNI BROJEVI - Za generisanje slučajnih brojeva u C jeziku kao dio <stdlib.h> biblioteke koristi se funkcija rand(), funkcija generiše cijeli broj između 0 i 'RAND_MAX' (vrijednost 'RAND_MAX' je najmanje 32767).
Primjer:
int r; /* Slucajni broj */
r = rand();

Ukoliko je potrebno ograničiti opseg iz kog se generiše slučajan broj, to se jednostavno može uraditi tako što se rand() podijeli sa brojem do kog želimo da generišemo slučajan broj i dodamo 1 na to, tj. ako želimo da izgenerišemo slučajan broj od 1 do 6 onda ćemo pisati sljedeće:

int rIzmedju1i6; /* Slucajni broj izmedju 1 i 6*/

rIzmedju1i6= (rand()%6)+1;

http://www.lix.polytechnique.f...g/prog/c/C/FUNCTIONS/rand.html - referenca

TAJMER - Za očitavanje trenutnog vremena u programskom jeziku koristi se funkcija time(), kao dio <time.h> biblioteke. Funkcija vraća vrijeme proteklo od 1. januara 1970. godine u miliseknudama. Primjer korišćenja: #include <stdio.h> #include <time.h>
int main ()
{
time_t seconds;
int i;
seconds = time (NULL);
printf ("%ld je trenutno vrijeme u milisekundama \n", seconds);
system("PAUSE");
return 1;
}