On-line učionica

12. januara 2019.

Deljenje, realni brojevi i još ponešto

Filed under: C++,Programiranje — jelena100janovic @ 4:11 pm

Ako ste mislili da smo završili sa našim programom za sabiranje dva broja, varate se! Evo ga opet:

Rekli smo da je zgodno da iskomentarišemo imena promenljivih. Ponekad to nije potrebno – možemo da im promenimo imena tako da sama po sebi imaju smisla, pa komentari nisu potrebni. Da bi to uradili, moramo znati šta su dozvoljena imena, a šta ne.

Imenovanje promenljivih

Ime promenljive je niz znakova koji mogu biti slova, brojevi, ili znak donja crta _. Pri tom, prvi znak imena ne sme biti broj. Postoji i dodatno ograničenje da ime promenljive ne sme biti neka od rezervisanih reči koje se koriste za zadavanje naredbi. Listu rezervisanih reči možete videti ovde, ili sami „izguglati“.

U našem zadatku nova imena mogu biti prvi_broj, drugi_broj i rezultat, ili, ako malo skratimo i izbegnemo brojeve na prvom mestu, br1, br2 i rez.

Evo i prepravljenog programa sa novim imenima i bez komentara:

Imali ste, za domaći zadatak, da napišete adekvatne programe za ostale tri operacije. Verovatno ste samo prepravili kod i dobili:

rez = br1-br2;
rez = br1*br2;
rez = br1/br2;

Jeste li probali te programe? Hajde da isprobamo deljenje:

 

Čekaj malo… 17/4 je 4.25, a ne 4! Da li to računar ne ume da deli?!? Naravno da ume. Problem je u tome što smo rekli da su brojevi celi, a ne decimalni i sada dobijamo celobrojni rezultat. Dodaću ovde da postoji još jedna operacija sa celim brojevima, ostatak pri deljenju i označava se procentom %. U prethodnom primeru bi, dakle, bilo: 17/4 = 4 i 17%4 = 1, odnosno 17 podeljeno sa 4 jeste 4 i ostatak 1! Vratićemo se na ovu operaciju kasnije još…

Realni brojevi u računaru

Računar drugačije zapisuje decimalne i cele brojeve u memoriji, a oba zapisa su u stvari nizovi nula i jedinica. Zato moramo računaru reći da li zapis koji ima treba da tumači kao ceo, ili kao realan broj. To nas dovodi do novog tipa podataka, za decimalne brojeve, u zapisu sa pokretnom tačkom, odnosno na engleskom floating point, skraćeno u programiranju float.

Znači, ako kažemo računaru da br1, br2 i rez nisu celi (int) brojevi, već decimalni (float), problem će biti rešen.

float br1, br2, rez;

Da vidimo:

Super! Ali šta ako smo hteli da uneti brojevi budu stvarno celi, a samo rezultat realan?

int br1, br2;
float rez;

Da bi nam rezultat bio tačan, moramo to eksplicitno i da kažemo računaru.

Eksplicitna konverzija tipa

Reč konverzija znači promena, pretvaranje. To postižemo tako što željeni tip podataka napišemo ispred izraza u zagradi. U našem slučaju, želimo da rezultat deljenja pretvorimo u decimalan broj, znači pišemo:

rez = (float) br1/br2;

Evo i celog programa:

Odlično! To smo i hteli. Jedino mi smeta jedna stvar… Kada pokrenemo program, ekran je crn i, da ne znam šta se očekuje od mene, ne bih znala šta treba da radim. Programi se pišu da bi ih drugi ljudi, koji nisu programeri i ne vide kod koristili. Da bi oni znali da koriste naš program, moramo im dati uputstva na ekranu šta treba da unesu, kao i šta smo im izračunali.

User-friendly koncept

Da ne komplikujem, evo prepravljenog koda:

Redosled operacija i korišćenje zagrada

Ovo bi trebalo da znate iz Matematike. Koliko je 2 + 3 * 5? Ako ste rekli 17, u pravu ste. Ako niste… podsetite se ovde.

Zagrade koristimo da bismo promenili redosled operacija. U gornjem primeru, ako dodamo zagradu, dobićemo: (2 + 3) * 5 = 25. Još samo …

Domaći zadatak

  1. Napisati program koji računa razliku dva uneta broja. Pazite na imena promenljivih i user-friendly koncept!
  2. Napisati program koji računa proizvod dva uneta broja. Pazite na imena promenljivih i user-friendly koncept!
  3. Napisati program koji računa površinu pravougaonika unetih dimenzija. Pazite na imena promenljivih i user-friendly koncept!
Advertisements

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 )

Google+ photo

Komentarišet koristeći svoj Google+ 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 )

Povezivanje sa %s

Create a free website or blog at WordPress.com.

%d bloggers like this: