Problem u Pascal-u

kopanjal

Početnik
Poruka
10
Imam problem sa nizovima u Pascal-u. Na primer, kad deklarisem promenljivu koja je nizovnog tipa ciji su elementi slogovi, onda se nesto nepredvidjeno desava (bar za mene nepredvidjeno) sa prvim elementom niza. Kao da ga "proguta" i taj prvi ne postoji. Zna li neko sta se u stvari desava sa tim prvim elementom niza. Kako izbeci taj problem i ubaciti prvi element?
 
Problem u zadatku znam da resim. Jedini problem mi je unos prvog elementa u nizove (svi, primljeni, potost, osteceni).
Za niz radnik sam "napunio" nulti, pa onda radi kako treba za taj niz, ali ostali ne funkcionisu. Hvala na pomoci.


Zadatak:

U preduzeću je raspisan konkurs za prijem 3 nova radnika. Radnik, da bi bio primljen,
mora da zadovoljava sledeće uslove:
1. mora da bude muškarac
2. mlađi od 35 godina
3. sa sedmim stepenom stručne spreme
4. prosekom ocena na fakultetu većim od 8,00
U kadrovskoj službi rade neodgovorni ljudi kojima je teško da pregledaju sve prijave.
Zato će oni primiti prvu trojicu ljudi koji su konkurisali, a koji zadovoljavaju uslove konkursa.
Napisati program koji će uneti podatke za sve prijavljene, ispisati imena trojice primljenih radnika,
kao i listu oštećenih tj. onih koji imaju bolje karakteristike od primljenih.
Najveći prioritet ima stručna sprema, pa prosek na fakultetu i na kraju starost.



║Program preduzece; ▲
║type ■
║ covek=record ▒
║ ime:string[40]; ▒
║ pol:char; ▒
║ god,ss:integer; ▒
║ po:real; ▒
║ end; ▒
║var ▒
║ radnik,svi,primljeni,potost,osteceni:array[1..100] of covek; ▒
║ n,i,j,a,brpotost:integer; ▒
║begin ▒
║ writeln('Unesite broj prijavljenih'); ▒
║ read(n); ▒
║ j:=0; ▒
║ for i:=0 to n do ▒
║ if i<>0 then ▒
║ begin ▒
║ writeln('Unesite podatke za radnika pol,godine,strucna sprema,prosek ocena i ime');▒
║ readln(radnik.pol); ▒
║ readln(radnik.god); ▼
║ readln(radnik.ss); ▲
║ readln(radnik.po); ▒
║ readln(radnik.ime); ▒
║ if ((radnik.pol = 'm') and (radnik.god < 35) and (radnik.ss >= 7) and (radnik.po >= 8.00)) then▒
║ begin ▒
║ j:=j+1; ▒
║ svi[j]:=radnik; ■
║ end ▒
║ end ▒
║ else ▒
║ begin ▒
║ radnik[0].pol:='m'; ▒
║ radnik[0].god:=40; ▒
║ radnik[0].ss:=1; ▒
║ radnik[0].po:=2.0; ▒
║ radnik[0].ime:='stevan' ▒
║ end; ▒
║ ▒
║ for i:=1 to 3 do ▒
║ begin ▒
║ primljeni:=svi; ▼
║ end; ▲
║ for i:=1 to 3 do ▒
║ begin ▒
║ writeln(svi.ime) ▒
║ end; ▒
║ for i:=4 to n do ▒
║ begin ▒
║ potost[i-3]:=svi; ▒
║ end; ▒
║ brpotost:=j-3; ▒
║ a:=0; ■
║ for j:=1 to brpotost do ▒
║ for i:=1 to 3 do ▒
║ if(potost[j].ss > primljeni.ss) then ▒
║ begin ▒
║ a:=a+1; ▒
║ osteceni[a]:=potost[j]; ▒
║ end ▒
║ else ▒
║ if(potost[j].po > primljeni.po) then ▒
║ begin ▼
║ a:=a+1; ▲
║ osteceni[a]:=potost[j]; ▒
║ end ▒
║ else ▒
║ if(potost[j].god=primljeni.god) then ▒
║ begin ▒
║ a:=a+1; ▒
║ osteceni[a]:=potost[j]; ▒
║ end; ▒
║ writeln('Imena primljenih su'); ▒
║ for i:=1 to 3 do ▒
║ begin ▒
║ writeln(primljeni.ime); ▒
║ end; ▒
║ writeln('Imena ostecenih su'); ▒
║ for i:=1 to a do ■
║ begin ▒
║ writeln(osteceni[a].ime); ▒
║ end; ▒
║ end. ▒
 

Back
Top