Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Atomised Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
Postano: 21:12 sri, 20. 2. 2008 Naslov: |
|
|
[quote="ekatarina"]znači dovoljno je ispred a dodati double i to je to.?
recimo da pretvaram int a u double a ili obrnuto, kako to?[/quote]
Kad radiš s više varijabla različitih tipova, prvo se sve svedu na precizniji od tih tipova, a onda se vrši sve ostalo...
Ako imaš neki int i želiš od njega dobiti realni broj, možeš deklarirati još jednu varijablu tipa float pa u nju prekopirati taj int, koji će postati float...
Konkretno...
[code:1]int a;
float b;
a = 7; // a je tipa int...
b = a; // b će biti tipa float...[/code:1]
Sad, ako želiš float pretvoriti u int... Očito ne možeš ako ima decimale. :D
Ne znam postoji li neki jednostavniji način, ali ja sam na kolokviju petljom išao po prirodnim brojevima (unija nula, jer (realni broj) može biti manji od 1), sve dok mi (realni broj) minus (prirodni broj) nije bio manji od jedan, za neki (prirodni broj), recimo n... I taj n mi je onda bio cijeli dio realnog broja, i tipa int... A (realni broj) minus n decimalni dio, ali još uvijek tipa float...
( Btw, postoji mogućnost da sam promašio negdje, ali netko će me već ispraviti. :D )
Edit: Ok, ti si pitala za double, ja sam pisao za float... Ali stvar je ista. ;)
ekatarina (napisa): | znači dovoljno je ispred a dodati double i to je to.?
recimo da pretvaram int a u double a ili obrnuto, kako to? |
Kad radiš s više varijabla različitih tipova, prvo se sve svedu na precizniji od tih tipova, a onda se vrši sve ostalo...
Ako imaš neki int i želiš od njega dobiti realni broj, možeš deklarirati još jednu varijablu tipa float pa u nju prekopirati taj int, koji će postati float...
Konkretno...
Kod: | int a;
float b;
a = 7; // a je tipa int...
b = a; // b će biti tipa float... |
Sad, ako želiš float pretvoriti u int... Očito ne možeš ako ima decimale.
Ne znam postoji li neki jednostavniji način, ali ja sam na kolokviju petljom išao po prirodnim brojevima (unija nula, jer (realni broj) može biti manji od 1), sve dok mi (realni broj) minus (prirodni broj) nije bio manji od jedan, za neki (prirodni broj), recimo n... I taj n mi je onda bio cijeli dio realnog broja, i tipa int... A (realni broj) minus n decimalni dio, ali još uvijek tipa float...
( Btw, postoji mogućnost da sam promašio negdje, ali netko će me već ispraviti. )
Edit: Ok, ti si pitala za double, ja sam pisao za float... Ali stvar je ista.
|
|
[Vrh] |
|
ekatarina Forumaš(ica)

Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol: 
|
Postano: 21:39 sri, 20. 2. 2008 Naslov: |
|
|
Ne znam... ja sam negdje vidjela nešto jednostavno tipa double a = (int) a, i rečeno je da to pretvori double u int, sad ne znam...
Imam još jedno pitanje, zašto se, kada je potrebno izvoditi neki račun s nekim elementom niza taj prvo prekopira u neki npr.int i onda se s njim operira.
Konkretno, zašto ne mogu a[i]*i + 2, nego prvo a[i]=x, pa x*i +2
Ne znam... ja sam negdje vidjela nešto jednostavno tipa double a = (int) a, i rečeno je da to pretvori double u int, sad ne znam...
Imam još jedno pitanje, zašto se, kada je potrebno izvoditi neki račun s nekim elementom niza taj prvo prekopira u neki npr.int i onda se s njim operira.
Konkretno, zašto ne mogu a[i]*i + 2, nego prvo a[i]=x, pa x*i +2
|
|
[Vrh] |
|
ma Forumaš(ica)


Pridružen/a: 27. 01. 2007. (12:06:50) Postovi: (347)16
Spol: 
|
Postano: 21:46 sri, 20. 2. 2008 Naslov: |
|
|
[quote="ekatarina"]
Imam još jedno pitanje, zašto se, kada je potrebno izvoditi neki račun s nekim elementom niza taj prvo prekopira u neki npr.int i onda se s njim operira.
Konkretno, zašto ne mogu a[i]*i + 2, nego prvo a[i]=x, pa x*i +2[/quote]
naravno da možeš :?
ekatarina (napisa): |
Imam još jedno pitanje, zašto se, kada je potrebno izvoditi neki račun s nekim elementom niza taj prvo prekopira u neki npr.int i onda se s njim operira.
Konkretno, zašto ne mogu a[i]*i + 2, nego prvo a[i]=x, pa x*i +2 |
naravno da možeš
_________________ ima let u finish
|
|
[Vrh] |
|
ekatarina Forumaš(ica)

Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol: 
|
|
[Vrh] |
|
ma Forumaš(ica)


Pridružen/a: 27. 01. 2007. (12:06:50) Postovi: (347)16
Spol: 
|
Postano: 21:52 sri, 20. 2. 2008 Naslov: |
|
|
[quote="ekatarina"]Ok, jer svugdje sam vidjela ovakva riješenja, znaš li možda zašto?[/quote]
možda zato jer su to pisali ljudi koji nisu znali da je nepotrebno? :roll:
a što se tvog prvog pitanja tiče, odgovor je: da, postoji takvo nešto i zove se 'cast operator'. dakle, ti možeš imati:
[code:1]...
int a;
double x;
x = 13.037;
a = (int) x;
[/code:1]
tada bi pri ispisu [tt]a[/tt] dobila [color=darkblue]13[/color] ;)
no, ja baš ne znam puno o tom operatoru castanja, pa neka se za detalje javi netko tko zna više. uglavnom, on služi za prebacivanje iz jednog tipa u drugi. a sad- dokle to može ići... ne znam :)
ekatarina (napisa): | Ok, jer svugdje sam vidjela ovakva riješenja, znaš li možda zašto? |
možda zato jer su to pisali ljudi koji nisu znali da je nepotrebno?
a što se tvog prvog pitanja tiče, odgovor je: da, postoji takvo nešto i zove se 'cast operator'. dakle, ti možeš imati:
Kod: | ...
int a;
double x;
x = 13.037;
a = (int) x;
|
tada bi pri ispisu a dobila 13
no, ja baš ne znam puno o tom operatoru castanja, pa neka se za detalje javi netko tko zna više. uglavnom, on služi za prebacivanje iz jednog tipa u drugi. a sad- dokle to može ići... ne znam
_________________ ima let u finish
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 22:23 sri, 20. 2. 2008 Naslov: |
|
|
[quote="Luuka"][code:1]#include <stdio.h>
int main ()
{
int a=5, b=2;
printf("%d\n",a/b);
printf("%g\n",double(a)/b);
scanf("%%");
return 0;
}[/code:1][/quote]
:ccc:
[code:1]t.c: In function ‘main’:
t.c:8: error: expected expression before ‘double’[/code:1]
Konverzija se radi cast operatorom (as explained by ma). :)
Luuka (napisa): | Kod: | #include <stdio.h>
int main ()
{
int a=5, b=2;
printf("%d\n",a/b);
printf("%g\n",double(a)/b);
scanf("%%");
return 0;
} |
|
Kod: | t.c: In function ‘main’:
t.c:8: error: expected expression before ‘double’ |
Konverzija se radi cast operatorom (as explained by ma).
_________________ 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. 
|
|
[Vrh] |
|
Luuka Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: 
Lokacija: Hakuna Matata
|
Postano: 23:41 sri, 20. 2. 2008 Naslov: |
|
|
Dakle išle bi drukčije zagrade? Umjesto
[code:1]double(a)/b[/code:1]
bi išlo
[code:1]((double) a)/b[/code:1]
?
Ili se mora dodatna varijabla ubacit?
Dakle išle bi drukčije zagrade? Umjesto
bi išlo
?
Ili se mora dodatna varijabla ubacit?
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy 
|
|
[Vrh] |
|
MKova Forumaš(ica)


Pridružen/a: 01. 10. 2005. (18:24:38) Postovi: (187)16
Spol: 
|
|
[Vrh] |
|
Atomised Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
Atomised Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
ekatarina Forumaš(ica)

Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
|