Korisnički Kontrolni Panel
Pogledajte svoj profil
Pogledajte svoje postove
ČPP
Prijavite se

Matematički forum na kojem možete da diskutujete o raznim matematičkim oblastima, pomognete drugima oko rešavanja zadataka, a i da dobijete pomoć kada vam zatreba


















Index stranica OSTALE MATEMATIČKE OBLASTI MATEMATIKA U INFORMATICI MATEMATIKA U PROGRAMIRANJU

[Pascal] Nalaženje NZD

[Pascal] Nalaženje NZD

Postod Miladin Jovic » Subota, 08. Novembar 2014, 11:50

Nije mi jasno kao program izračunava tačno za brojeve [inlmath]n=20[/inlmath] i [inlmath]m=15[/inlmath] tj. [inlmath]20\bmod15=5[/inlmath]..... do [inlmath]20\bmod10=0[/inlmath]. Po kodu bi trebalo da je [inlmath]10[/inlmath] NZD.

Kôd: Obeleži sve
program primer;
var n,m,nzd:integer;
begin
readln(n,m);
if n<m then nzd:=n
else nzd:=m;
while (m mod nzd<>0) or (n mod nzd<>0) do
nzd:=nzd-1;
writeln(nzd);
end.

Kod izbacuje tačan rezultat, tj. [inlmath]5[/inlmath]. Gde grešim u tumačenju?
Zaslužni forumaš
 
Postovi: 371
Zahvalio se: 243 puta
Pohvaljen: 125 puta

Sharuj ovu temu na:

Share on Facebook Facebook Share on Twitter Twitter Share on MySpace MySpace Share on Google+ Google+

Re: [Pascal] Nalaženje NZD

Postod Milovan » Subota, 08. Novembar 2014, 13:16

Prvo se ucitaju brojevi. Onda se privremeno dodeli vrednost [inlmath]\mbox{NZD}[/inlmath]-u jednaka manjem od dva ucitana broja ([inlmath]\mbox{NZD}[/inlmath] brojeva svakako nije veci od manjeg od ta dva broja). Onda se oba broja dele redom sa [inlmath]\mbox{NZD}[/inlmath]... Proces traje dok je ostatak deljenja nekog od ta dva broja sa trenutnom vrednoscu [inlmath]\mbox{NZD}[/inlmath] razlicit od nule... Ako je veci broj deljiv manjim, onda ce se proces zaustaviti vec u startu – [inlmath]\mbox{NZD}[/inlmath] je jednak tom manjem broju. Ako nije, umanjice vrednost [inlmath]\mbox{NZD}[/inlmath] za [inlmath]1[/inlmath]. Pocinje novi "obrtaj" deljenja – ako je [inlmath]\mbox{NZD}-1[/inlmath] delilac oba broja, proces ce se zaustaviti i [inlmath]\mbox{NZD}-1[/inlmath] biti prikazno kao vrednost [inlmath]\mbox{NZD}[/inlmath], ako nije, opet se oduzima [inlmath]1[/inlmath] od trenutne vrednosti [inlmath]\mbox{NZD}[/inlmath]-a (tj. [inlmath]\mbox{NZD}-2[/inlmath] u odnosu na pocetnu), i pocinje novi obrtaj. Tako sve dok [inlmath]\mbox{NZD}-1-\cdots -1[/inlmath] ne bude delilac i [inlmath]m[/inlmath] i [inlmath]n[/inlmath], nakon cega se ovo obustavlja i prikazuje trenutna (a i prava) vrednost [inlmath]\mbox{NZD}[/inlmath].

Drugim recima, ono sto program radi je sledece – odredi manji od ta dva broja, dodeli tu vrednost [inlmath]\mbox{NZD}[/inlmath] i onda deli oba ucitana broja sa [inlmath]\mbox{NZD}[/inlmath], a nakon toga sa svim brojevima manjim od pocetne vrednosti [inlmath]\mbox{NZD}[/inlmath], sve do onog trenutka dok trenutna vrednost [inlmath]\mbox{NZD}[/inlmath] ne bude delilac oba broja, kada se proces obustavlja, i prikazuje trenutna vrednost [inlmath]\mbox{NZD}[/inlmath], koja i jeste [inlmath]\mbox{NZD}[/inlmath] ovih brojeva.
Korisnikov avatar
Milovan  OFFLINE
 
Postovi: 568
Zahvalio se: 356 puta
Pohvaljen: 697 puta

Re: [Pascal] Nalaženje NZD

Postod Miladin Jovic » Subota, 08. Novembar 2014, 13:42

Da li to znači ovo?
Recimo, kao što sam naveo u primeru, [inlmath]n=20,\;m=15[/inlmath]. Postavimo kao [inlmath]\mbox{NZD}=15[/inlmath], i počinjemo [inlmath]20\bmod 15=5[/inlmath]...... [inlmath]20\bmod 10=0[/inlmath] i [inlmath]15\bmod 15=0[/inlmath]. Kako se dobija [inlmath]5[/inlmath]?
Zaslužni forumaš
 
Postovi: 371
Zahvalio se: 243 puta
Pohvaljen: 125 puta

Re: [Pascal] Nalaženje NZD

Postod Daniel » Subota, 08. Novembar 2014, 14:45

[inlmath]\mbox{NZD}=\min\left(20,15\right)\quad\Rightarrow\quad[/inlmath]promenljiva [inlmath]\mbox{NZD}[/inlmath] dobija vrednost [inlmath]15[/inlmath];
[inlmath]20\bmod 15=5,\;15\bmod 15=0\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 14=6,\;15\bmod 14=1\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 13=7,\;15\bmod 13=2\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 12=8,\;15\bmod 12=3\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 11=9,\;15\bmod 11=4\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 10=0,\;15\bmod 10=5\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 9=2,\;15\bmod 9=6\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 8=4,\;15\bmod 8=7\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 7=6,\;15\bmod 7=1\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 6=8,\;15\bmod 6=3\quad\Rightarrow\quad\mbox{NZD}[/inlmath] se dekrementira i petlja se ponavlja;
[inlmath]20\bmod 5=0,\;15\bmod 5=0\quad\Rightarrow\quad[/inlmath]to je to, ispisuje se vrednost [inlmath]\mbox{NZD}[/inlmath].
I do not fear death. I had been dead for billions and billions of years before I was born, and had not suffered the slightest inconvenience from it. – Mark Twain
Korisnikov avatar
Daniel  OFFLINE
Administrator
 
Postovi: 7772
Lokacija: Beograd
Zahvalio se: 4087 puta
Pohvaljen: 4141 puta


Povratak na MATEMATIKA U PROGRAMIRANJU

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 2 gostiju


Index stranicaTimObriši sve kolačiće boarda
Danas je Subota, 07. Decembar 2019, 16:03 • Sva vremena su u UTC + 1 sat
Pokreće ga phpBB® Forum Software © phpBB Group
Prevod – www.CyberCom.rs