On-line učionica

11. decembar 2011.

Grananje

Filed under: C,Programiranje — jelena100janovic @ 6:48 pm

Naredba if

Do sada smo naučili samo kako da pravimo programe koji rade jednu stvar za drugom, bez da mogu da izaberu od dve ili više naredbi. Naredba if može da se koristi da bi testirali neki uslov, da bi mogli da izmenimo tok programa. Sledeći primer sadrži osnovnu strukturu naredbe if:

#include<stdio.h>
void main()
{
   int bodovi;
   char polozio;
   scanf(„%d“,&bodovi);
   if (bodovi>40) polozio=’y’;
}

U gornjem primeru korisnik unosi broj bodova koji je dobio, a onda se koristi naredba if da bi se proverilo da li je taj broj veći od 40. Zapamtite da uvek stavljate uslov naredbe if u zagrade. Ako je broj bodova veći od 40, onda je položio.

Sad moramo takođe proveriti da li je korisnik pao. Možemo to uraditi dodajući još jednu naredbu if, ali postoji bolji način, a to je korišćenje ključne reči else koja ide uz naredbu if.

#include<stdio.h>
void main()
{
   int bodovi;
   char polozio;
   scanf(„%d“,&bodovi);
   if (bodovi>40) polozio=’y’;
   else polozio=’n’;
}

Naredba if prvo proverava da li je uslov tačan i izvršava instrukciju, a else služi za slučaj kada je uslov netačan.

Ako želite da izvršite više od jedne instrukcije u okviru naredbe if, morate da ih stavite između vitičastih zagrada. Vitičaste zagrade se koriste da grupišu naredbe.

/* Program koji na osnovu broja bodova ispisuje poruku o polaganju */
#include<stdio.h>
void main()
{
   int bodovi;
   char polozio;
   printf(„Unesite broj bodova: „);
   scanf(„%d“,&bodovi);
   if (bodovi>40)
   {
      polozio=’y’;
      printf(„Polozili ste“);
   }
   else
   {
      polozio=’n’;
      printf(„Pali ste“);
   }
}

Moguće je proveriti dva ili više uslova odjednom, korišćenjem operatora I (&&). Možete da koristite i operator ILI (||) da bi proverili da li je jedan od dva uslova tačan. Operator NE (!) čini tačan rezultat netačnim i obrnuto.

/* Program koji proverava znak dva uneta broja */
#include<stdio.h>
void main()
{
   int a,b;
   printf(„Unesite prvi broj: „);
   scanf(„%d“,&a);
   printf(„Unesite drugi broj: „);
   scanf(„%d“,&b);
   if (a>0 && b>0) printf(„Oba broja su pozitivna\n“);
   if (a==0 || b==0) printf(„Bar jedan od brojeva je jednak nuli\n“);
   if (!(a>0) && !(b>0)) printf(„Oba broja su negativna\n“);
}

Operatori poređenja i logički operatori

U gornjim primerima, koristili smo > i <, koji se nazivaju operatori poređenja. Oni se koriste da bi se uporedile dve vrednosti i rezultat tog poređenja je ili TAČNO ili NETAČNO. Koristili smo i logičke operatore I, ILI i NE, koji računaju sa vrednostima TAČNO i NETAČNO. Sledi tabela operatora poređenja i logičkih operatora u C-u:

== Jednako
!= Različito
> Veće
>= Veće ili jednako
< Manje
<= Manje ili jednako
&& Konjukcija (I)
|| Disjunkcija (ILI)
! Negacija (NE)

Naredba switch

Naredba switch liči na naredbu if, ali ima mnogo uslova, a samo jedan objekat za te uslove. Izvršava se brže nego naredba if. U naredbi switch prvo izaberete promenljivu čija vrednost se proverava, a onda svakoj vrednosti dodeljujete naredbe. Možete takođe dodati ključnu reč default, ako ni jedna od vrednosti nije jednaka vrednosti promenljive. Ako koristite više od jedne naredbe, setite se da ih grupišete među vitičaste zagrade.

/* Program koji nudi izbor i registruje ga */
#include<stdio.h>
void main()
{
   char voce;
   printf(„Koje je Vase omiljeno voce:\n“);
   printf(„a) Ananas\n“);
   printf(„b) Banane\n“);
   printf(„c) Cvekla\n“);
   scanf(„%c“,&voce);
   switch (voce)
   {
      case ‘a’:
         printf(„Vi volite jabuke\n“);
         break;
      case ‘b’:
         printf(„Vi volite banane\n“);
         break;
      case ‘c’:
         printf(„Cvekla nije voce\n“);
         break;
      default:
         printf(„Taj odgovor nije ponudjen\n“);
   }
}

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 , ako je x realan broj koji unosi korisnik.
  7. Napišite program koji računa , 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 .
  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 .
  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: