On-line učionica

4. decembar 2011.

Grananje

Filed under: Pascal — jelena100janovic @ 5:05 pm

Nisu svi programi u Pascal-u linijski. To znači da se ne izvršavaju svi uvek isto. Često nam je potrebno da se u zavisnosti od nekog uslova izvrši jedan od dva različita niza naredbi.  Ponekad takvih izbora ima više. Upoznajmo se sa naredbama koje nam to omogućavaju🙂

Naredba if then else

Ključna reč if (ako) dozvoljava programu da napravi izbor na osnovu uslova. Sledeći primer traži od korisnika da unese broj i ispisuje da je broj veći od 5:

program Grananje;
var
    i:integer;
begin
   writeln(‘Unesite broj’);
   readln(i);
   if i>5 then writeln(‘Veći je od 5’);
end.

Evo tabele operatora koji se mogu koristiti unutar uslova:

> Veće od
< Manje od
>= Veće ili jednako
<= Manje ili jednako
= Jednako
<> Različito od

Gornji primer Vam govori samo da je broj veći od 5. Ako želite da Vam kaže i da nije veći od 5, onda koristimo ključnu reč else (inače). Kada koristite else ne stavljate tačka-zarez na kraj prethodne naredbe.

program Grananje;
var
   i:integer;
begin
   writeln(‘Unesite broj’);
   readln(i);
   if i>5 then writeln(‘Veći je od 5’)
             else writeln(‘Nije veći od 5’);
end.

Ako je uslov tačan, onda se izvršava deo posle ključne reči then (onda), a ako je netačan, onda se izvršava deo posle ključne reči else. Ovo se dešava jer su uslovi poput i>5 logički izrazi. Čak možete dodeliti rezultat logičkog izraza logičkoj promenljivoj.

program Grananje;
var
   i:integer;
   b:boolean;
begin
   writeln(‘Unesite broj’);
   readln(i);
   b:=i>5;
end.

Ako želite da stavite više od jednog uslova, onda stavite svaki uslov u zagrade. Da biste povezali uslove možete koristiti ili reč AND (i) ili reč OR (ili). Ako koristite AND onda oba uslova moraju biti tačni, a ako koristite OR onda bar jedan uslov mora biti tačan.

program Grananje;
var
   i:integer;
begin
   writeln(‘Unesite broj’);
   readln(i);
   if (i>1) and (i<100) then writeln(‘Broj je izmedju 1 i 100’);
end.

Ako želite da stavite više naredbi u naredbu if za bilo koji deo, morate koristiti ključne reči begin i end; da biste ih grupisali. Primetite da posle ovog end ide tačka-zarez umesto tačke.

program Grananje;
var
   i:integer;
begin
   writeln(‘Unesite broj’);
   readln(i);
   if i>0 then
      begin
         writeln(‘Uneli ste ‘,i);
         writeln(‘To je pozitivan broj’);
      end;
end.

Takođe možete koristiti naredbe if unutar drugih naredbi if.

program Grananje;
var
   i:integer;
begin
   writeln(‘Unesite broj’);
   readln(i);
   if i>0 then writeln(‘Pozitivan’)
             else if i<0 then writeln(‘Negativan’)
                            else writeln(‘Nula’);
end.

Naredba case

Naredba case (slučaj) liči na naredbu if sem što možete imati više uslova sa akcijama za svaki.

program Grananje;
uses
   crt;
var
   Izbor:char;
begin
   writeln(‘Koje voce od ovih volite?’);
   writeln(‘a – Ananas:’);
   writeln(‘b – Banana:’);
   writeln(‘c – Cvekla:’);
   Izbor:=ReadKey;
   case Izbor of
      ‘a’: writeln(‘Vi volite ananas’);
      ‘b’: writeln(‘Vi volite banane’);
      ‘c’: writeln(‘Cvekla nije voce’);
   else writeln(‘To voce nije ponudjeno’);
   end;
end.

Zadaci za vežbanje:

  1. Napišite program koji unosi dva broja i ispisuje veći.
  2. Napišite program koji unosi tri broja i ispisuje najveći.
  3. Napišite program koji deli dva uneta broja. Ukoliko je drugi uneti broj nula, ispisuje izveštaj o grešci.
  4. Napišite program koji na osnovu unetih dužina dve stranice pravougaonika, računa njegovu površinu. Ukoliko je uneta negativna vrednost, ispisuje poruku o grešci.
  5. Napišite program koji učitava dva broja. Ukoliko je prvi veći od drugog, ispisuje veći. Ako je prvi manji od drugog, ispisuje manji. Ako su jednaki, ispisuje jednaki.
  6. Napišite program koji računa untitled, ako je x realan broj koji unosi korisnik.
  7. Napišite program koji računa untitled1, ako su x i y realni brojevi koje unosi korisnik.
  8. Napišite program koji ispisuje ime dana u nedelji na osnovu unetog broja.
  9. Napišite program koji ispisuje da li je radni dan na osnovu unetog broja dana u nedelji.
  10. Napišite program koji učitava brojčanu ocenu i ispisuje uspeh.
  11. Napišite program koji na osnovu unetog broja ispisuje ime meseca u godini.
  12. *Napišite program koji učitava tri cela broja koji predstavljaju dan, mesec i godinu i ispisuje, u istom obliku, datum narednog dana.
  13. Napišite program koji sabira dva uneta broja ako prvi nije deljiv sa 3.
  14. Napišite program koji sabira dva uneta broja ako su oba parna.
  15. Napišite program koji sabira dva uneta broja ako je bar jedan paran.
  16. Napišite program koji učitava dva broja i ispisuje jednu od sledećih poruka, ukoliko je uslov tačan:
    1. Oba broja su pozitivna.
    2. Oba broja su negativna.
    3. Bar jedan broj je jednak nuli.
  17. Napisati program kojim se za zadate x i y izračunava z po formuli untitled2.
  18. *Napisati program koji na onovu unetih stranica proverava da li je moguće konstruisati trougao i, ako jeste, računa njegovu površinu.
  19. Napisati program kojim se za dato x izračunava y po formuli Untitled-1.
  20. Napišite program koji na osnovu unetog broja meseca ispisuje godišnje doba.
  21. Napišite program koji na osnovu unetog broja meseca ispisuje broj dana u tom mesecu.
  22. Napišite program koji učitava dva realna broja i znak operacije u obliku A znak B i ispisuje rezultat u istom redu posle znaka = ili ispisuje poruku o grešci u slučaju deljenja nulom.

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Create a free website or blog at WordPress.com.

%d bloggers like this: