Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Je li -0.0 istina ili laz? (objasnjenje gradiva)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 2:42 pon, 17. 12. 2007    Naslov: Je li -0.0 istina ili laz? Citirajte i odgovorite

Na zadnjim vjezbama je bilo postavljeno pitanje interpretacije
[tt]if (x)...[/tt]
kad je [tt]x[/tt] broj razlicit od nule i jedinice, tj. "Je li to 'laz' kad god je [tt]x[/tt] nula (preciznije, i ako je [tt]x[/tt] realan broj)?" :-s

Moj odgovor je bio da je za [tt]x == 0.0[/tt], ali da nisam siguran za [tt]x == -0.0[/tt], tj. vrsi li se ta usporedba bitovno ili bas po dekadskoj vrijednosti od [tt]x[/tt]. :| Naime, zapisi tih brojeva u racunalu su slijedeci:
[table]
0.0 [url=http://degiorgi.math.hr/prog1/apps/prikaz.php?b=0.0]00000000 00000000 00000000 00000000[/url]
-0.0 [url=http://degiorgi.math.hr/prog1/apps/prikaz.php?b=-0.0]10000000 00000000 00000000 00000000[/url][/table]
sto znaci da broj -0.0 u memoriji nije reprezentiran samo nulama. :?

Da ne duljim, isprobah na racunalu:[code:1]$ cat t.c; gcc -ansi --pedantic-error t.c && ./a.out
#include <stdio.h>

int main(void) {
double x = 0.0, y = -0.0;
printf("x = %g i to %sje \"istina\".\n", x, (x ? "" : "ni"));
printf("y = %g i to %sje \"istina\".\n", y, (y ? "" : "ni"));
return 0;
}
x = 0 i to nije "istina".
y = -0 i to nije "istina".[/code:1]

Dakle, broj [tt]-0.0[/tt] se zaista tako i pamti (sto sam i rekao na vjezbama), no racunalo ga uvijek interpretira kao "obicnu" nulu, tj. izraz
[tt]if (x) printf("Istina"); else printf("Laz");[/tt]
ce i za [tt]x == 0.0[/tt] i za [tt]x == -0.0[/tt] ispisati "[tt]Laz[/tt]". 8)
Na zadnjim vjezbama je bilo postavljeno pitanje interpretacije
if (x)...
kad je x broj razlicit od nule i jedinice, tj. "Je li to 'laz' kad god je x nula (preciznije, i ako je x realan broj)?" Eh?

Moj odgovor je bio da je za x == 0.0, ali da nisam siguran za x == -0.0, tj. vrsi li se ta usporedba bitovno ili bas po dekadskoj vrijednosti od x. Neutral Naime, zapisi tih brojeva u racunalu su slijedeci:
0.000000000 00000000 00000000 00000000
-0.010000000 00000000 00000000 00000000

sto znaci da broj -0.0 u memoriji nije reprezentiran samo nulama. Confused

Da ne duljim, isprobah na racunalu:
Kod:
$ cat t.c; gcc -ansi --pedantic-error t.c && ./a.out
#include <stdio.h>

int main(void) {
  double x = 0.0, y = -0.0;
  printf("x = %g i to %sje \"istina\".\n", x, (x ? "" : "ni"));
  printf("y = %g i to %sje \"istina\".\n", y, (y ? "" : "ni"));
  return 0;
}
x = 0 i to nije "istina".
y = -0 i to nije "istina".


Dakle, broj -0.0 se zaista tako i pamti (sto sam i rekao na vjezbama), no racunalo ga uvijek interpretira kao "obicnu" nulu, tj. izraz
if (x) printf("Istina"); else printf("Laz");
ce i za x == 0.0 i za x == -0.0 ispisati "Laz". Cool



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
dvičak
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 11. 2006. (17:55:13)
Postovi: (60)16
Spol: muško
Sarma = la pohva - posuda
18 = 19 - 1
Lokacija: dj-zg

PostPostano: 9:44 pon, 17. 12. 2007    Naslov: Citirajte i odgovorite

Broj -2^31 također ima zapis 10000000 00000000 00000000 00000000
Zar se ne uzima da je onda 10000000 00000000 00000000 00000000 zapis toga broja u računalu, a 0 i -0 imaju isti zapis, tj. 00000000 00000000 00000000 00000000?
Tako smo mi radili prošle godine
Broj -2^31 također ima zapis 10000000 00000000 00000000 00000000
Zar se ne uzima da je onda 10000000 00000000 00000000 00000000 zapis toga broja u računalu, a 0 i -0 imaju isti zapis, tj. 00000000 00000000 00000000 00000000?
Tako smo mi radili prošle godine



_________________
potpis
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ß
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 07. 2006. (15:29:06)
Postovi: (115)16
Spol: muško
Sarma = la pohva - posuda
41 = 46 - 5
Lokacija: Graveyard Mountain Home

PostPostano: 10:23 pon, 17. 12. 2007    Naslov: Citirajte i odgovorite

[quote="dvičak"]Broj -2^31 također ima zapis 10000000 00000000 00000000 00000000
Zar se ne uzima da je onda 10000000 00000000 00000000 00000000 zapis toga broja u računalu, a 0 i -0 imaju isti zapis, tj. 00000000 00000000 00000000 00000000?
Tako smo mi radili prošle godine[/quote]

Mislim da se vsegin post odnosi na prikaz realnih brojeva (double) a ovo što si ti napomenuo vrijedi samo za cijele (int), jer se samo kod int-ova primjenjuje dvostruki komplement za prikaz negativnih brojeva.
dvičak (napisa):
Broj -2^31 također ima zapis 10000000 00000000 00000000 00000000
Zar se ne uzima da je onda 10000000 00000000 00000000 00000000 zapis toga broja u računalu, a 0 i -0 imaju isti zapis, tj. 00000000 00000000 00000000 00000000?
Tako smo mi radili prošle godine


Mislim da se vsegin post odnosi na prikaz realnih brojeva (double) a ovo što si ti napomenuo vrijedi samo za cijele (int), jer se samo kod int-ova primjenjuje dvostruki komplement za prikaz negativnih brojeva.



_________________
Devious movements in your eyes moved me from relief
Breath comes out white clouds with your lies
and filters through me
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
dvičak
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 11. 2006. (17:55:13)
Postovi: (60)16
Spol: muško
Sarma = la pohva - posuda
18 = 19 - 1
Lokacija: dj-zg

PostPostano: 10:29 pon, 17. 12. 2007    Naslov: Citirajte i odgovorite

:oops:
Nisam obračao pažnju na to
Eto mi kada razmišljam prije nego što popijem kavu
Embarassed
Nisam obračao pažnju na to
Eto mi kada razmišljam prije nego što popijem kavu



_________________
potpis
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:14 pon, 17. 12. 2007    Naslov: Citirajte i odgovorite

Tako je, rijec je o realnim brojevima. :D

Kad smo vec kod toga, evo vam jedna mozgalica... zasto se za [tt]x[/tt] i [tt]y[/tt] u slijedecem programu ispisuju razlicite vrijednosti:
[code:1]$ cat t.c; gcc -ansi --pedantic-error t.c && ./a.out
#include <stdio.h>

int main(void) {
double x = -0, y = -0.0;
printf("x = %g, y = %g\n", x, y);
return 0;
}
x = 0, y = -0[/code:1]
:?:
Tako je, rijec je o realnim brojevima. Very Happy

Kad smo vec kod toga, evo vam jedna mozgalica... zasto se za x i y u slijedecem programu ispisuju razlicite vrijednosti:
Kod:
$ cat t.c; gcc -ansi --pedantic-error t.c && ./a.out
#include <stdio.h>

int main(void) {
  double x = -0, y = -0.0;
  printf("x = %g, y = %g\n", x, y);
  return 0;
}
x = 0, y = -0

Question



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mibo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 10. 2007. (14:52:50)
Postovi: (51)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 6 - 3
Lokacija: /var/tmp

PostPostano: 14:50 pon, 17. 12. 2007    Naslov: Odgovor na mozgalicu Citirajte i odgovorite

[quote="vsego"]Tako je, rijec je o realnim brojevima. :D

Kad smo vec kod toga, evo vam jedna mozgalica... zasto se za [tt]x[/tt] i [tt]y[/tt] u slijedecem programu ispisuju razlicite vrijednosti:
[code:1]$ cat t.c; gcc -ansi --pedantic-error t.c && ./a.out
#include <stdio.h>

int main(void) {
double x = -0, y = -0.0;
printf("x = %g, y = %g\n", x, y);
return 0;
}
x = 0, y = -0[/code:1]
:?:[/quote]

Jer se [tt]x[/tt]u pridružuje konstanta tipa [tt]int[/tt], a [tt]y[/tt]u konstanta tipa [tt]float[/tt] :silly: ?
vsego (napisa):
Tako je, rijec je o realnim brojevima. Very Happy

Kad smo vec kod toga, evo vam jedna mozgalica... zasto se za x i y u slijedecem programu ispisuju razlicite vrijednosti:
Kod:
$ cat t.c; gcc -ansi --pedantic-error t.c && ./a.out
#include <stdio.h>

int main(void) {
  double x = -0, y = -0.0;
  printf("x = %g, y = %g\n", x, y);
  return 0;
}
x = 0, y = -0

Question


Jer se xu pridružuje konstanta tipa int, a yu konstanta tipa float #Silly ?



_________________
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH
George Orwell: 1984
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 16:47 pon, 17. 12. 2007    Naslov: Re: Odgovor na mozgalicu Citirajte i odgovorite

[quote="mibo"]
Jer se [tt]x[/tt]u pridružuje konstanta tipa [tt]int[/tt], a [tt]y[/tt]u konstanta tipa [tt]float[/tt] :silly: ?[/quote]
Da, ali ne bas sasvim precizno.

[tt]0.0[/tt] je konstanta tipa [tt]double[/tt]. Konstanta tipa float bila bi [tt]0.0f[/tt].
mibo (napisa):

Jer se xu pridružuje konstanta tipa int, a yu konstanta tipa float #Silly ?

Da, ali ne bas sasvim precizno.

0.0 je konstanta tipa double. Konstanta tipa float bila bi 0.0f.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
mibo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 10. 2007. (14:52:50)
Postovi: (51)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 6 - 3
Lokacija: /var/tmp

PostPostano: 17:08 pon, 17. 12. 2007    Naslov: Pardon Citirajte i odgovorite

[quote="mdoko"][tt]0.0[/tt] je konstanta tipa [tt]double[/tt]. Konstanta tipa float bila bi [tt]0.0f[/tt].[/quote]

:oops:
mdoko (napisa):
0.0 je konstanta tipa double. Konstanta tipa float bila bi 0.0f.


Embarassed



_________________
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH
George Orwell: 1984
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 18:46 pon, 17. 12. 2007    Naslov: Citirajte i odgovorite

Lijepo sam vam rekao: zaboravite [tt]float[/tt] i koristite [tt]double[/tt]. 8)

Inace, mislim da je ovo simpatican primjer zasto predavanja nisu "gnjavaza", nego je stvarno potrebno znati sto se dogadja "ispod haube" ako zelite razumjeti programe i natjerati ih da rade sto zelite. ;)
Lijepo sam vam rekao: zaboravite float i koristite double. Cool

Inace, mislim da je ovo simpatican primjer zasto predavanja nisu "gnjavaza", nego je stvarno potrebno znati sto se dogadja "ispod haube" ako zelite razumjeti programe i natjerati ih da rade sto zelite. Wink



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan