C++ kod - problem

poruka: 63
|
čitano: 15.248
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Re: C++ kod - problem
Floki kaže...

Ma dovoljno je prenijeti polje tipa automobil i uz to index polja u funkciju i tamo preko petlje učitati.

dakle

Slazem se, samo sam mu htio pokazati sto sve moze. Zaboravio sam jos i mogucnost sa globalnom varijablom, ali bi me samo popljuvali da sam i to stavio.

So then I typed GOTO 500 - and here I am!
17 godina
offline
Re: C++ kod - problem
rustweaver kaže...
Floki kaže...

Ma dovoljno je prenijeti polje tipa automobil i uz to index polja u funkciju i tamo preko petlje učitati.

dakle

Slazem se, samo sam mu htio pokazati sto sve moze. Zaboravio sam jos i mogucnost sa globalnom varijablom, ali bi me samo popljuvali da sam i to stavio.

Da, može i preko povratne vrijednosti, ali meni se ovo čini najjednostavnije, prenijeti polje u funkciju preko pokazivača, uz to i broj elemenata polja i u

funkciji preko petlje učitati ili ispisati polje

Poruka je uređivana zadnji put sri 18.5.2011 14:50 (Floki).
17 godina
neaktivan
offline
C++ kod - problem

Hehe, e thx. Ma treba mi da se malo podsjetim, kak ne programiram više baš često u C/C++ (jbg, Python me uzel k sebi XD), ishlape te stvari s vremenom...

Some people say that if you play a Windows install CD backwards you will hear demon voices commanding you to worship Satan. But that's nothing. If you play it forward it will install Windows.
 
0 0 hvala 0
15 godina
neaktivan
offline
C++ kod - problem

e ljudi iman problem ide ovako

 

int d1;

int d2;

float vrijeme;

vrijeme=(abs(d1-d2)*4)/60;

 

i sad mi je problem jer mi triba nekad vratit decimalni ostatak a on mi nevraca nista, samo cjelobrojni dio

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem

Probaj castati varijable, ili jednostavno d1 i d2 pretvori u float.

 

Recimo typecasting bi ovako napravio:

vrijeme=(float)((abs(d1-d2)*4)/60);

So then I typed GOTO 500 - and here I am!
15 godina
neaktivan
offline
Re: C++ kod - problem
rustweaver kaže...

Probaj castati varijable, ili jednostavno d1 i d2 pretvori u float.

 

Recimo typecasting bi ovako napravio:

vrijeme=(float)((abs(d1-d2)*4)/60);

ne, jos isto vraca {#}

Come to the dark side.... we have cookies :)
15 godina
offline
Re: C++ kod - problem
rustweaver kaže...

Probaj castati varijable, ili jednostavno d1 i d2 pretvori u float.

 

Recimo typecasting bi ovako napravio:

vrijeme=(float)((abs(d1-d2)*4)/60);

To je tipičan problem. Mora se jedna od d2 ili d1 varijabla deklarirati kao float. Ovime ti kao float deklariraš samo rezultat koji je već u integer.

Mrzim svoj nadimak!!!
15 godina
neaktivan
offline
Re: C++ kod - problem
alias_noname kaže...

ne, jos isto vraca {#}

ispravak:

 

vrijeme=((float)abs(d1-d2)*4/60);

 

probaj sada

So then I typed GOTO 500 - and here I am!
15 godina
neaktivan
offline
Re: C++ kod - problem
captain_soap_McTawish kaže...
rustweaver kaže...

Probaj castati varijable, ili jednostavno d1 i d2 pretvori u float.

 

Recimo typecasting bi ovako napravio:

vrijeme=(float)((abs(d1-d2)*4)/60);

To je tipičan problem. Mora se jedna od d2 ili d1 varijabla deklarirati kao float. Ovime ti kao float deklariraš samo rezultat koji je već u integer.

ne ono uvijek vraca zaokruzeno -.- ubija me u pojam treba mi točno u 2 decimale evo vam cijela funkcija

 

float vrazlika(int d1,int d2)

 

{

   float vrijeme;

   vrijeme=((abs(d1-d2)*4)/60);

   return vrijeme;

Come to the dark side.... we have cookies :)
15 godina
neaktivan
offline
Re: C++ kod - problem

Pa pogledaj moj post iznad...

 

captain_soap_McTawish kaže...

To je tipičan problem. Mora se jedna od d2 ili d1 varijabla deklarirati kao float. Ovime ti kao float deklariraš samo rezultat koji je već u integer.

Ne, nego su me zagrade zeznule. Ovo radi:

vrijeme=(float)abs(d1-d2)*4/60;

 

Trik je compileru reci da koristi FPU registre umjesto obicnih, a ako stavis float cast pred integer onda ces to postici...

So then I typed GOTO 500 - and here I am!
Poruka je uređivana zadnji put sri 25.5.2011 21:20 (rustweaver).
15 godina
offline
C++ kod - problem

Sad sam tek shvatio što govoriš. On ti sve zaokruži na jednu decimalu. Probaj možda kao double, no nisam siguran. Iako mislim da cmath negdje ima funkcija za prikaz ispisa broja znamenki.

Mrzim svoj nadimak!!!
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem

ne jos uvik vraca ravno 0

ovako meni je d1=16 d2=17 i to bi bilo 4/60 i triba bi mi ispisat 0.06 a ja dobijem 0

Come to the dark side.... we have cookies :)
15 godina
neaktivan
offline
Re: C++ kod - problem
captain_soap_McTawish kaže...

Sad sam tek shvatio što govoriš. On ti sve zaokruži na jednu decimalu. Probaj možda kao double, no nisam siguran. Iako mislim da cmath negdje ima funkcija za prikaz ispisa broja znamenki.

cek a ima ono kad ispisujes float tip nesto %2f jel to triba vratit 2 decimale ili triba ici %2.f ???

Come to the dark side.... we have cookies :)
15 godina
neaktivan
offline
Re: C++ kod - problem
alias_noname kaže...

ne jos uvik vraca ravno 0

ovako meni je d1=16 d2=17 i to bi bilo 4/60 i triba bi mi ispisat 0.06 a ja dobijem 0

Pa citas li ti uopce sto sam ti napisao?

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int d1=16, d2=17;
    float vrijeme;
   
    vrijeme=(float)abs(d1-d2)*4/60;  
   
    printf("%.3f\n", vrijeme);
    system("pause");
    return 0;
}

 

Sve radi, 0.67 je rezultat

So then I typed GOTO 500 - and here I am!
15 godina
offline
Re: C++ kod - problem
alias_noname kaže...

ne jos uvik vraca ravno 0

ovako meni je d1=16 d2=17 i to bi bilo 4/60 i triba bi mi ispisat 0.06 a ja dobijem 0

meni ispisuje:

#include <iostream>

#include <cmath>

 

using namespace std;

 

int main() {

   float d1=16;

   float d2=17;

   cout<<((abs(d1-d2))*4.)/60<<endl;

   return 0;

}

0.66667

Mrzim svoj nadimak!!!
15 godina
neaktivan
offline
C++ kod - problem

fala, ma novi sam u c-u ne kuzim di dođu ove tockice i sve to, fala puno sada radi

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
C++ kod - problem

opet ja debil iman problem, aj pomagajte opet pliiz

 

problem ide ovako

 

#include <stdio.h>

#include <conio.h>

 

typedef struct grad

    { int gs;

     int gd;

     char ime [9];

    };

 

main()

{

 int   b=3; 

 grad info[5]; 

//grad Split  

info[1].gs=43; info[1].gd=16; info[1].ime[5]='Split';

//grad New York

info[2].gs=40; info[2].gd=-73; info[2].ime[8]='New York';

//grad Tokio

info[3].gs=35; info[3].gd=139; info[3].ime[5]='Tokio';

//grad London

info[4].gs=51; info[4].gd=7; info[4].ime[6]='London';

//grad Sydney

info[5].gs=-33; info[5].gd=151; info[5].ime[6]='Sydney';

 

printf("\nOd 5 zadanih gradova ciljno mjesto je najblize gradu %s ", info[b].ime);

getch();

}

meni ne ispise sada ime grada nego neke random znakove, nekuzim???

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem

Ne citas upozorenja koja ti compiler daje?

16:50 gradovi.cpp [Warning] character constant too long for its type

i jos cetiri komada, po jedan za svaki grad.

 

Ukratko problem je sto string stavljas pod apostrofe (single quotes), a treba ici pod navodnike. Apostrofi u C-u imaju posve drugo znacenje od navodnika...

 

Takoder gdje ti je definiran return type kod main funkcije? Niti void, niti int, nista nemas, a nije zgorega ni staviti return statement na kraju funkcije...

 

conio.h je arhaicni neportabilni header, a ovdje ga koliko vidim koristis samo zbog getch funkcije, getchar i stdio.h su puno bolji izbor.

So then I typed GOTO 500 - and here I am!
Poruka je uređivana zadnji put ned 29.5.2011 17:27 (rustweaver).
15 godina
neaktivan
offline
C++ kod - problem

main automatski stavlja u void, tako su me ucili,

getch mi je najjednostavnije za kraj

stavio sam sve preko pokazivaca i radi,

koja je razlika izmedu tih single quotes i navodnika, gdje se koji koristi

 

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem
alias_noname kaže...

main automatski stavlja u void, tako su me ucili,

Krivo su te ucili, main funkcija vraca int, cak i kad ju ti tako ne definiras.

 

alias_noname kaže...

getch mi je najjednostavnije za kraj

Sto fali getchar funckiji?

 

alias_noname kaže...
stavio sam sve preko pokazivaca i radi,

Ne usudim se ni pomisliti sto si napravio, kad sam vidio ovo:

info[1].ime[5]='Split'

Skoro sam pao u nesvijest. To je cisto nepoznavanje stringova u C-u.

 

alias_noname kaže...

koja je razlika izmedu tih single quotes i navodnika, gdje se koji koristi

Navodnici oznacuju takozvani "string literal", ukratko - string. Dok pod apostrofe uvijek ide jedno jedino slovo, i tada oznacuju takozvani "character literal".

 

Dakle ponovimo: vise slova - pod navodnike. Jedno slovo - pod apostrofe, a moze i u navodnike ici.

So then I typed GOTO 500 - and here I am!
Poruka je uređivana zadnji put ned 29.5.2011 17:49 (rustweaver).
15 godina
offline
Re: C++ kod - problem
alias_noname kaže...

1.main automatski stavlja u void, tako su me ucili,

getch mi je najjednostavnije za kraj

stavio sam sve preko pokazivaca i radi,

2.koja je razlika izmedu tih single quotes i navodnika, gdje se koji koristi

 

1.JTo je apsolutno pogrešno. Funkcija main se mora uvjek definirati kao int. I na njezinu kraju mora se staviti return 0. To uvijek radi prenosivosti čini bez obzira što to prevoditelj automatski stavlja.

 

2. Jednostruki navodnici služe da se u c++ prikaže samo jedan znak(ili dva ako je wchar_t). Dvostruki navodnici označavaju polje znakova tj. laički kad je znakova više(neka riječ, rečenica). 

 

EDIT: Zbog natezanja sa bug editorom prestigao me kolega @rustweaver

Mrzim svoj nadimak!!!
Poruka je uređivana zadnji put ned 29.5.2011 17:47 (captain_soap_McTawish).
15 godina
neaktivan
offline
Re: C++ kod - problem

Evo i prepravljenog kôda:

 

#include <stdio.h>
#include <string.h>

typedef struct grad
{
        int gs;
        int gd;
        char ime [9];
};

int main()
{
    int   b=3;
    grad info[5];
    //grad Split 
    info[0].gs=43; info[0].gd=16; strcpy(info[0].ime, "Split");
    //grad New York
    info[1].gs=40; info[1].gd=-73; strcpy(info[1].ime, "New York");
    //grad Tokio
    info[2].gs=35; info[2].gd=139; strcpy(info[2].ime, "Tokio");
    //grad London
    info[3].gs=51; info[3].gd=7; strcpy(info[3].ime, "London");
    //grad Sydney
    info[4].gs=-33; info[4].gd=151; strcpy(info[4].ime, "Sydney");
    
    printf("\nOd 5 zadanih gradova ciljno mjesto je najblize gradu %s ", info[b].ime);
    getchar();
    return 0;
}

So then I typed GOTO 500 - and here I am!
Poruka je uređivana zadnji put ned 29.5.2011 17:55 (rustweaver).
17 godina
offline
C++ kod - problem

Ti nisi ispravno popunio niz

deklarirao si niz info tipa grad koji ima duljinu 5

grad info[5];

 

puniš da od indexa 0:

info[0]

..........

info[4]

 

ps. rust je to napravio kako valja.

Poruka je uređivana zadnji put ned 29.5.2011 17:53 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
C++ kod - problem

ok hvala, al jbg kad sam totalni pocetnik u ovome, a profesor nema pojma

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem
Floki kaže...
ps. rust je to napravio

Nisam, sad tek vidim da sam samo prve prepravio, zaboravio sam i ostatak, kad mu je sve tako nabacano u istoj liniji pa me zbunjuje :D

 

Ali dobro, shvatio je poantu... :P

 

EDIT: fix'd

So then I typed GOTO 500 - and here I am!
Poruka je uređivana zadnji put ned 29.5.2011 17:56 (rustweaver).
15 godina
neaktivan
offline
C++ kod - problem

a index 0 je rezerviran za ostatak koda, to ostatak programa radi sa tim, pa neke glupe usporedbe radi sa njim

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem
alias_noname kaže...

a index 0 je rezerviran za ostatak koda, to ostatak programa radi sa tim, pa neke glupe usporedbe radi sa njim

Hmm, zelis reci da ti nesto specijalno radis sa clanom indexa nula? Onda povecaj polje jer ti sada imas 5 clanova: 0 1 2 3 4, a treba ti: 0 1 2 3 4 5, to je dakle 6 clanova sveukupno...

So then I typed GOTO 500 - and here I am!
Poruka je uređivana zadnji put ned 29.5.2011 17:58 (rustweaver).
17 godina
offline
Re: C++ kod - problem
alias_noname kaže...

a index 0 je rezerviran za ostatak koda, to ostatak programa radi sa tim, pa neke glupe usporedbe radi sa njim

slušaj što ti se kaže:

kad imaš niz[5]

indexi elemenata tog niza su:

niz[0]

------

niz[4]

tu imaš 5 elemenata

15 godina
neaktivan
offline
C++ kod - problem

ček zbunili ste me, kad stavim niz[5] onda imam niz[0] do niz[4] ili do niz[5] ?????

Come to the dark side.... we have cookies :)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ kod - problem
alias_noname kaže...

ček zbunili ste me, kad stavim niz[5] onda imam niz[0] do niz[4] ili do niz[5] ?????

do niz[4], pocinje se uvijek brojati od nule... ;)

So then I typed GOTO 500 - and here I am!
Nova poruka
E-mail:
Lozinka:
 
vrh stranice