[ danilche123 @ 30.12.2008. 16:07 ] @
Pozdrav. Zadatak je sledeci, treba napisati program koji racuna prosek ocena. Predmeti idu redom:matematika, srpski...


....begin
write ('Matematika ');
read (mat);
if mat>5 then begin write ('Ocena iz matematike ne moze biti veca od 5, upisite je ponovo: '); read (mat);
if mat>5 then write ('Ocena iz matematike ne moze biti veca od 5, upisite je ponovo:') ; read (mat);
if mat>5 then write ('Ocena iz matematike ne moze biti veca od 5, upisite je ponovo:') ; read (mat);
if mat>5 then write ('Ocena iz matematike ne moze biti veca od 5, upisite je ponovo:') ; read (mat); end;
if mat<2 then write ('Tvoj uspeh je nedovoljan, ocena ne sme biti jedinica');

write ('Srpski ');
read (srp);....

E sad problem je u tome sto kad se upise jedinica on posle ovoga, da ocena ne sme da bude jedinica i da je uspeh nedovoljan pita za ocenu iz srpskog. Sta treba da se uradi da ako je ocena iz matematike manja od dvojke program ne ide dalje?
[ Picsel @ 30.12.2008. 17:09 ] @
Code:
halt;

Ovako prekidas program.

Znaci
if mat<2 then halt;
[ danilche123 @ 30.12.2008. 17:26 ] @
Hvala. Zanima me jos nesto. Ima li nekog drugog nacina da se ogranici da ne moze da upise vise od 5, posto ovako ako upise 6 vise od 3-4 puta on nastavlja dalje...
[ savkic @ 30.12.2008. 17:34 ] @
Ako želiš da se program "blokira" sve dok se ne unese ispravna ocena, jednostavno se vrtiš u petlji, ovako otprilike:

Code:

var
  Ocena: Integer;
begin  
  repeat 
    Read(Ocena);
    if Ocena < 2 then
      WriteLn('Ocena ne moze biti manja od 2')
    else
      if Ocena > 5 then
        WriteLn('Ocena ne moze biti veca od 5')
      else
        Break;
  until False;
end;
[ LSDCracker @ 06.01.2009. 12:26 ] @
Zar nije bilo bolje ovako?

Code:

program brrrr;

var ocena:integer;
begin

repeat
 
 read(ocena);

 if ocena>5 then writeln('Ocena ne sme biti veca od 5');
 if ocena<2 then writeln('Ocena ne moze biti manja od 2');

until (ocena>=2) and (ocena<=5);

{...}

end.



Pozdrav.
[ danilche123 @ 11.03.2009. 13:33 ] @
Imam jos jedno pitanje pa bih ga ovde postavio da ne otvaram novu temu. Kako moze i da li moze uopste da se namesti da odredjenu operaciju uradi za neko vreme, a ne sve odmah? Primer, da sabere 2 broja a rezultat da ispise za 5 sekundi? Unapred hvala.
[ savkic @ 11.03.2009. 14:19 ] @
> Kako moze i da li moze uopste da se namesti da odredjenu operaciju uradi za neko vreme, a ne sve odmah? Primer, da sabere 2 broja a rezultat
> da ispise za 5 sekundi? Unapred hvala.

Ako radiš u Delphiu možeš koristiti TTimer sa intervalom od 5000ms. Ako radiš u čistom paskalu napravi podrutinu koja će na početku učitati tekuće vreme i vrteti se u petlji dok ne istekne željeno vreme.
[ danilche123 @ 11.03.2009. 14:39 ] @
Jel mozes da mi das primer za to? Sta je to podrutina?
[ savkic @ 11.03.2009. 16:21 ] @
> Jel mozes da mi das primer za to?

Bilo je dosta primera za upotrebu TTimera, ako pitaš za čist pascal, ne sećam se koje funkcije se koriste za dobijanje vremena.

> Sta je to podrutina?

Pomoćna funkcija ili procedura koja se poziva iz glavnog dela i obavlja određeni zadatak.
[ Picsel @ 11.03.2009. 16:25 ] @
Ili ako ispisujes na ekran, onda ovako... primer:
Code:
uses crt;
var a,b,c:integer;
begin
  write('Unesi prvi broj: ');
  readln(a);
  write('Unesi drugi broj: ');
  readln(b);
  c:=a+b;
  delay(5000);
  writeln(c);
end.
[ danilche123 @ 13.03.2009. 12:42 ] @
Gresku mi prijavljuje kod tog Delay-a...
[ Picsel @ 13.03.2009. 15:53 ] @
Koju gresku?

Da li si na pocetku programa stavio
Code:
uses crt;

[ danilche123 @ 14.03.2009. 16:03 ] @
wincrt; stoji, a kad stavim crt; prijavljuje gresku.
[ Nikolavlasotince @ 14.03.2009. 23:39 ] @
Verovatno koristis TPW 1.5. Bolje idi na freepascal.org i skini Free Pascal. Mnogo je bolji od TPW-a, barem se meni tako cini...