|
![]() |
#1 |
Registered User
Datum registracije: Jan 2010
Lokacija: NewNow
Postovi: 25
|
![]() Poceo sam da ucim od nedavno C. Posto sam nov u programiranju imam jedno bas, bas pocetnicko pitanje. Buni me operator % koji racuna ostatak kada se podele dva broja ali ne mogu u glavi da ga shvatim njegovo funkcionisanje. Ako sam dobro razumeo to bi trebalo sledece da bude ovako: 3%2 = 1, to je isto kao da sam podelio 3 sa 2 i dobio 1.5 ali kako onda 1? Zatim kako 4%2 = je ostatak 0? Radio sam jedan zadatak gde je x%2==0 paran broj. Ali ne shvatam kako je onda 10/2=5 ostatak i to sada paran broj? Jasno da je 10 paran broj ali ne kapiram kako na osnovu x%2==0 (da bude jednako sa 0) on kalkulise sa brojevima? Potrazio sam po netu i nasao ovaj sajt: http://processing.org/reference/modulo.html gledajuci kako je tu objasnjeno ispadne da se tu oduzima int a = 5 % 4; // Sets 'a' to 1 5-4=1 int b = 125 % 100; // Sets 'b' to 25 125-100=25 float c = 285.5 % 140.0; // Sets 'c' to 5.5 kako onda ovde 5.5? float d = 30.0 % 33.0; // Sets 'd' to 30.0 a za ovo ako sam dobro razumeo ako je levi broj manji od desnog uvek je iznos levog broja? I pitanje za kraj. Neki must have forum, sajt, kanal za programiranje tj. za C u ovom trenutku me zanima posto hocu njega da ucim za pocetak. |
![]() |
![]() |
![]() |
#2 |
Premium
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 4,068
|
Modulo operacija ilitiga ostatak cijelobrojnog djeljenja. I sad bi ti sve trebalo bit jasno ![]() 3%2 == 1, zato što podjeliš 3 sa 2, to je 1 i ostatak 1. 4%2 == 0, 4 podjeljeno 2 je 2 i ostatak 0. 33%5 == 3, 33 podjeljeno 5 je 6 i ostatak 3 itd itd. Imaš hrpu besplatnih materijala na webu, najbolje uzeti slajdove sa predavanja nekog kolegija na fakultetu, recimo zagrebačkog FER-a http://www.fer.unizg.hr/predmet/ppi. Modulo se najčešće koristi za određivanje parnih ili neparnih brojeva, upravo ovaj modulo 2 (%2). Ako je rezultat modulo 2 nula, znači da je broj do kraja podjeljen sa 2 i nema ostatka i paran je, ako je rezultat modulo 2 operacije 1, znači da je broj neparan jer se nije dao cijelobrojno podjelit sa 2. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 |
crnjo
Datum registracije: Mar 2003
Lokacija: Zagreb
Postovi: 1,907
|
__________________
9900K-32GB-5TB-3060TI |
![]() |
![]() |
![]() |
#4 |
only fool, not a horse
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
|
Evo tutixu konkurencije: http://degiorgi.math.hr/prog1/materijali.php http://degiorgi.math.hr/prog2/materijali.php s posebnim naglaskom na skriptu asistenta Šege (2 dijela) 1. dio 2. dio |
![]() |
![]() |
![]() |
#5 |
Registered User
Datum registracije: Jan 2010
Lokacija: NewNow
Postovi: 25
|
Ja matematiku nisam koristio u zadnjih 10 god. nista kompleksnije od racunanje za kusur cak ni to vise ne moram kada odma na displeju pise kolko ce mi biti vraceno ![]() Hvala na linkovima, vidim da ce posluziti bas. Sto se tice modula tj. % mislim da sam shvatio kako funkcionise. Samo mi potrvrdite jer mi je bitno kada kucam kodove da znam i sta ce uraditi i sta da ocekujem kao rezultat. Evo npr onaj primer: 285,5%140 = 2,03 2,03 = 2 2*140 = 280 285,5 - 280 = 5,5 to je ostatak. Jesam ovo dobro uradio 2,03 = 2 sto sam izbacio decimalu? |
![]() |
![]() |
![]() |
#6 | |
only fool, not a horse
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
|
Citiraj:
jer je 0.03929*140=5.5 (točan ti je rezultat ali...) A kad odbaciš sve desno od decimalne točke dobiješ rezultat cjelobrojnog djeljenja, odnosno operatora "/". |
|
![]() |
![]() |
![]() |
#7 |
Premium
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 4,068
|
Re: C - osnovno pitanje
Ako pricamo o C-u, modulo se koristi za integere, cijele brojeve. U C++ postoji funkcija fmod koja racuna modulo sa decimalnim brojevima u dvostrukoj preciznosti, odnosno double ali ne razumijem u koju svrhu. Ovaj link ti je od Java jezika, postoje neke razlike ipak. |
![]() |
![]() |
|
|
Oglas
|
Oglasni prostor
|
![]() |
|
|