Programiranje

Programiranje u C++-u - pitanja i odgovori

KKristijan čet 23.6.2011 18:39
mate960 kaže...
KKristijan kaže...
mate960 kaže...

Evo a ne otvaram novu temu, zanima me ako mi tko moze pomoci i naci neku tutorial knjigu za c++ novijeg izdanja, po mogucnosti na hrv a nije ni eng problem, jer vecina onih primjera i zadataka iz starijih knjiga ne radi u novom DEV C++.

 

Inace, pocetnik sam sto se tice programiranja i bio bih vam zahvalan ako mi pomognete.

  Kako mislis ne rade u devu? Koliko stare knjige?

Moj prijedlog ti je Demifisticirani c++ od Šribara i Motike, trenutno je i ja čitam :)

Prosinac 2000 {#}

 

EDIT: Moze link od te knjige?

Neam link,300 kn u elemntalu ;P

tesko da ces ista na netu nac na hrvatskom za c++,eventualno ako imas carnet,makar nemam pojma kakav je taj tutorial.

 

Koji ti primjer naprimjer ne radi?

captain_soap_McTawish čet 23.6.2011 18:44
CalvinRi kaže...

Ako u funkciji UmetniElement trebas BrEl, slobodno pristupas njemu unutar funkcije, jer je ta funkcija dio klase. Uopce ti ne treba default argument funkcije.

Osim toga, u klasi ti nedostaje ti destruktor u kojem brises zauzetu memoriju

Zadani argument služi u slučaju da programer ne navede jedan argument, tada se kao vrijednost toga argumenta uzima podrazumjevani argument. Zato mi je potreban podrazumjevani argument funkcije. No problem je što god pokušavao, kompajler odbija prihvatiti BrEl kao argument funkcije, a sa konstantama bez problema radi. Meni samo treba da u slučaju da ne navedem argument pri pozivu funkcije, da mi argument bude BrEl. 

mate960 kaže...

Prosinac 2000 {#}

Ta knjiga možda jest starijeg datuma no drži se svih standarda c++-a čega se treba držati i svaki kompajler. Tako da nećeš imati problema sa kodom, a nedavno je i izašlo treće izdanje. To je najbolja knjiga na hrvatskom što se tiče c++-a.

 

I nemoj ni slučajno više koristiti dev-cpp. To je vrlo star IDE. Najbolje ti je uzeti codeblocks. On ti ima mogućnost dodavanja pluginova. Podrazumjevano sa njim dolazi i Astyle. 

mate960 čet 23.6.2011 18:49

Ta knjiga možda jest starijeg datuma no drži se svih standarda c++-a čega se treba držati i svaki kompajler. Tako da nećeš imati problema sa kodom, a nedavno je i izašlo treće izdanje. To je najbolja knjiga na hrvatskom što se tiče c++-a.

 

I nemoj ni slučajno više koristiti dev-cpp. To je vrlo star IDE. Najbolje ti je uzeti codeblocks. On ti ima mogućnost dodavanja pluginova. Podrazumjevano sa njim dolazi i Astyle. 

Kupit cu trece izdanje vjerovatno :D

fps_gamer kaže...
jesi na windowsima? koje errore izbacuje?

Win7 . sad cu codeblocks isprobat

KKristijan čet 23.6.2011 18:54
mate960 kaže...

Koji ti primjer naprimjer ne radi?

Nemoj se smijat XDD

 

#include <iostream>
using namespace std;
int main()
{
cout << “Hello, world!” << endl;
system("PAUSE");
return 0;
}

 

Btw kupit cu knjigu vjerovatno :D

Ne znam jel ti to točno taj kod,ali ovdje su ti nestandardni navodnici....” i " nije isto

CalvinRi čet 23.6.2011 23:06
captain_soap_McTawish kaže...
CalvinRi kaže...

Ako u funkciji UmetniElement trebas BrEl, slobodno pristupas njemu unutar funkcije, jer je ta funkcija dio klase. Uopce ti ne treba default argument funkcije.

Osim toga, u klasi ti nedostaje ti destruktor u kojem brises zauzetu memoriju

Zadani argument služi u slučaju da programer ne navede jedan argument, tada se kao vrijednost toga argumenta uzima podrazumjevani argument. Zato mi je potreban podrazumjevani argument funkcije. No problem je što god pokušavao, kompajler odbija prihvatiti BrEl kao argument funkcije, a sa konstantama bez problema radi. Meni samo treba da u slučaju da ne navedem argument pri pozivu funkcije, da mi argument bude BrEl. 

Evo ovako deklariras u klasi:

void UmetniElement(int* pos=NULL);

 

u kodu:

 

void Tablica::UmetniElement(int* pos)

{

  int pozicija=BrEl;

  if (pos)

  {

    pozicija = *pos;

  }

 

 

  //sad dalje sve radis sa varijablom pozicija

 

}

 

 

captain_soap_McTawish čet 30.6.2011 13:17
Hualer kaže...

Treba da unesem 10 brojeva u jednodiemnzionalni niz, nadjem prosjek i onda nadjem broj u nizu koji je najblizi prosjeku.  Ovo podvuceno znam kako, ali neznam ovaj drugi dio. Mozel pomoc?

Uzmi jednu varijablu u koju ćeš pohranjivati apsolutnu vrijednost razlike prosjeka i ajbližeg broja. Te napravi još jednu varijablu u kojoj ćeš pohraniti broj najbliži prosjek. Zatim napiši for petlju kojom provjeravaš razliku prosjeka i određenog člana. 

Encyanix ned 3.7.2011 10:57

Malo me zbunjuje ovo (tek sam počeo) : postoje puno ti porgrama za c++ programiranje (borland turbo c++,borland c++,vc++...) i sad koja je razlika između svih njih? Sad kad sam poceo korisim Vc++ i 

učim iz knjige "Naučite c++ u 21 dan" i sad imam ovu skriptu:

 

1.#include <iostream.h>

2.

3.int main()

4.{

5.   cout << "Zdravo!\n";

6.      return 0;

7.}

 

Pitanje: Sad bi to trebao spremit i kliknut debug? jer sam to napravio i dobio error :

 

warning C4627: '#include <iostream.h>': skipped when looking for precompiled header use

1>      Add directive to 'StdAfx.h' or rebuild precompiled header

 

fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?

captain_soap_McTawish ned 3.7.2011 12:10
Encyanix kaže...

Malo me zbunjuje ovo (tek sam počeo) : postoje puno ti porgrama za c++ programiranje (borland turbo c++,borland c++,vc++...) i sad koja je razlika između svih njih? Sad kad sam poceo korisim Vc++ i 

učim iz knjige "Naučite c++ u 21 dan" i sad imam ovu skriptu:

 

1.#include <iostream.h>

2.

3.int main()

4.{

5.   cout << "Zdravo!\n";

6.      return 0;

7.}

 

Pitanje: Sad bi to trebao spremit i kliknut debug? jer sam to napravio i dobio error :

 

 

warning C4627: '#include <iostream.h>': skipped when looking for precompiled header use

1>      Add directive to 'StdAfx.h' or rebuild precompiled header

 

 

fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?

Trebaš samo dodati liniju:

#include "StdAfx.h"

 

To je jednostavno zahtjev kompajlera. Ne znam zašto pa netko tko se malo bolje razumije pojasni to. Ako se ne želiš time zamarati onda jednostavno kad kreiraš novi projekt izaberi kao template empity project

 

Inače za početak ti savjetujem da uzmeš codeblocks. A borland turbo,borland,devcpp su stari i to ne bi trebao koristiti.

Encyanix ned 3.7.2011 12:29
captain_soap_McTawish kaže...
Encyanix kaže...

Malo me zbunjuje ovo (tek sam počeo) : postoje puno ti porgrama za c++ programiranje (borland turbo c++,borland c++,vc++...) i sad koja je razlika između svih njih? Sad kad sam poceo korisim Vc++ i 

učim iz knjige "Naučite c++ u 21 dan" i sad imam ovu skriptu:

 

1.#include <iostream.h>

2.

3.int main()

4.{

5.   cout << "Zdravo!\n";

6.      return 0;

7.}

 

Pitanje: Sad bi to trebao spremit i kliknut debug? jer sam to napravio i dobio error :

 

 

warning C4627: '#include <iostream.h>': skipped when looking for precompiled header use

1>      Add directive to 'StdAfx.h' or rebuild precompiled header

 

 

fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?

Trebaš samo dodati liniju:

#include "StdAfx.h"

 

To je jednostavno zahtjev kompajlera. Ne znam zašto pa netko tko se malo bolje razumije pojasni to. Ako se ne želiš time zamarati onda jednostavno kad kreiraš novi projekt izaberi kao template empity project

 

Inače za početak ti savjetujem da uzmeš codeblocks. A borland turbo,borland,devcpp su stari i to ne bi trebao koristiti.

Ovako, kad sam napravio empty project nemam papir za pisat... sta da napravim?

captain_soap_McTawish ned 3.7.2011 12:36
Encyanix kaže...

Ovako, kad sam napravio empty project nemam papir za pisat... sta da napravim?

Na lijevo(ili desno ako je vc2008) imaš mali prozorčić gdje piše Solution Explorer. Negdje u njemu imao na ikonica za folder gdje piše Source files. Onda klikneš na to sa desno tipkom miša i izaberešAdd>New Item. Tada će ti se otvoriti jedan prozor i tu trebaš izabrati C++ file(.cpp) I dolje na dnu upiši ime main(ili kako god hoćeš).

Encyanix ned 3.7.2011 12:39
captain_soap_McTawish kaže...
Encyanix kaže...

Ovako, kad sam napravio empty project nemam papir za pisat... sta da napravim?

Na lijevo(ili desno ako je vc2008) imaš mali prozorčić gdje piše Solution Explorer. Negdje u njemu imao na ikonica za folder gdje piše Source files. Onda klikneš na to sa desno tipkom miša i izaberešAdd>New Item. Tada će ti se otvoriti jedan prozor i tu trebaš izabrati C++ file(.cpp) I dolje na dnu upiši ime main(ili kako god hoćeš).

Uspijo sam!  Hvala!

Encyanix ned 3.7.2011 12:47

Sad kad sam napravio novi file (empty project) u njemu samo napisao ovo :

 

#include "StdAfx.h"

 

int main()

{   

   cout <<"Zdravo!\n";

   return 0;

}

 

 

I dođe mi error : fatal error C1083: Cannot open include file: 'StdAfx.h': No such file or directory

rustweaver ned 3.7.2011 13:02
captain_soap_McTawish kaže...
To je jednostavno zahtjev kompajlera. Ne znam zašto pa netko tko se malo bolje razumije pojasni to. Ako se ne želiš time zamarati onda jednostavno kad kreiraš novi projekt izaberi kao template empity project

Precompiled header, nema se sto puno o tome za reci. Ne koristim VS pa ne znam kako sprijeciti compiler da ih kreira i koristi.

 

captain_soap_McTawish kaže...
Inače za početak ti savjetujem da uzmeš codeblocks. A borland turbo,borland,devcpp su stari i to ne bi trebao koristiti.

Zasto DevCpp ne?

rustweaver ned 3.7.2011 13:07
Encyanix kaže...
KKristijan kaže...

ajde lijepo koristi #include <iostream> i mirna bosna

Evo korisito sam #include <iostream> i :

 

error C2065: 'cout' : undeclared identifier

A jesi li se prebacio u standardni namespace koristeci:

 

using namespace std;

 

??

Encyanix ned 3.7.2011 13:10
rustweaver kaže...
Encyanix kaže...
KKristijan kaže...

ajde lijepo koristi #include <iostream> i mirna bosna

Evo korisito sam #include <iostream> i :

 

error C2065: 'cout' : undeclared identifier

A jesi li se prebacio u standardni namespace koristeci:

 

using namespace::std;

 

??

nisam... pocetnik sam u ovome...  

 

Evo ti skripta pa je ti editiraj da radi na vc++ :

 

#include <iostream.h>

 

int main()

{

    cout <<"Zdravo!\n";

    return 0;

}

captain_soap_McTawish ned 3.7.2011 13:10
rustweaver kaže...

Zasto DevCpp ne?

Zato što odavno nije razvijan i ima manjak mogućnosti u odnosu na ostale IDE-e. Usto ima dosta nekih mušica, a ima i nekih povećih bugova. Možda je i do moga kompjjutera no znam da sam se sa njim dosta pomučio. 

 

Codeblocks ima mogućnost raznih proširenja, a sa njim dolazi astayle formater koji ti sam formatira kod da bude uredan. I u njemu se ne moram mučiti sa system("PAUSE") i ostalim trikovima da se cmd odmah ne izgasi tijekom testiranja programa.. Codeblocks pri testnoj verziji programa, program pokreće u svojoj konzoli te sam nakon izvršavanja zaustavi daljne izvođenje. 

KKristijan ned 3.7.2011 13:12

#include <iostream>
#include <cstdlib>

 

using namespace std;

 

   int main()

{

              cout << "Zdravo\n" ;

 

                 system("PAUSE");

                      return 0;

    }

 

 

Predlažem da skineš dev-cpp ili codeblocks,jednostavniji su.I kakvu knjigu imas?

 

 

 

 

Encyanix ned 3.7.2011 13:13
KKristijan kaže...

Dobro sad ces pitat zas ti brzo nestane, moras prije return 0; stavit         system("PAUSE"); i includeat #include <cstdlib>

Pocetnik sam, neznam.. Iz knjige sam nasao primjer i upisem i ono nevalja , nemogu nis samo vas pitat da mi pomognete :D

Encyanix ned 3.7.2011 13:14
KKristijan kaže...

#include <iostream>
#include <cstdlib>

 

using namespace std;

 

   int main()

{

              cout << "Zdravo\n" ;

 

                 system("PAUSE");

                      return 0;

    }

 

 

Predlažem da skineš dev-cpp ili codeblocks,jednostavniji su.I kakvu knjigu imas?

 

 

 

 

Imam je u pdf, "Nauci c++ u 21 dan" Knjiga je odlicna , ali primjeri(skripte) nisu kompitabilne sa vc++

KKristijan ned 3.7.2011 13:14
captain_soap_McTawish kaže...
rustweaver kaže...

Zasto DevCpp ne?

Zato što odavno nije razvijan i ima manjak mogućnosti u odnosu na ostale IDE-e. Usto ima dosta nekih mušica, a ima i nekih povećih bugova. Možda je i do moga kompjjutera no znam da sam se sa njim dosta pomučio. 

 

Codeblocks ima mogućnost raznih proširenja, a sa njim dolazi astayle formater koji ti sam formatira kod da bude uredan. I u njemu se ne moram mučiti sa system("PAUSE") i ostalim trikovima da se cmd odmah ne izgasi tijekom testiranja programa.. Codeblocks pri testnoj verziji programa, program pokreće u svojoj konzoli te sam nakon izvršavanja zaustavi daljne izvođenje. 

 Koje mušice/bugovi naprimjer?

KKristijan ned 3.7.2011 13:17
Encyanix kaže...
KKristijan kaže...

#include <iostream>
#include <cstdlib>

 

using namespace std;

 

   int main()

{

              cout << "Zdravo\n" ;

 

                 system("PAUSE");

                      return 0;

    }

 

 

Predlažem da skineš dev-cpp ili codeblocks,jednostavniji su.I kakvu knjigu imas?

 

 

 

 

Imam je u pdf, "Nauci c++ u 21 dan" Knjiga je odlicna , ali primjeri(skripte) nisu kompitabilne sa vc++

 Ne znam kakva je to knjiga,ali ono...Ako si tek počeo po meni su one "For Dummies" sasvim ok.Mislim da se da nac na netu u pdfu

rustweaver ned 3.7.2011 13:17
captain_soap_McTawish kaže...

Zato što odavno nije razvijan i ima manjak mogućnosti u odnosu na ostale IDE-e. Usto ima dosta nekih mušica, a ima i nekih povećih bugova. Možda je i do moga kompjjutera no znam da sam se sa njim dosta pomučio. 

Bogami ja nisam primjetio povece bugove u Devu. To sto odavno nije razvijan uopce nije nedostatak. Ni notepad nije odavno razvijan pa ga stalno koristim. Mislim, ne vidim nedostatke. Ok nema code folding, ali ima code completion...

 

captain_soap_McTawish kaže...
Codeblocks ima mogućnost raznih proširenja, a sa njim dolazi astayle formater koji ti sam formatira kod da bude uredan. I u njemu se ne moram mučiti sa system("PAUSE") i ostalim trikovima da se cmd odmah ne izgasi tijekom testiranja programa.. Codeblocks pri testnoj verziji programa, program pokreće u svojoj konzoli te sam nakon izvršavanja zaustavi daljne izvođenje. 

Nisi mi nista novo rekao. Imam ja i Code blocks, stovise sam si kompajliram nightly buildove. Ali Dev mi je i dalje nekako drazi. Jedina stvarno velika prednost C::B u odnosu na Dev mi je podrska za cijeli set compilera. DevCpp moze raditi samo sa MinGW. To je sve stvar osobnog ukusa, a ne volim kada se to namece drugima...

captain_soap_McTawish ned 3.7.2011 13:19
Encyanix kaže...
rustweaver kaže...
Encyanix kaže...
KKristijan kaže...

ajde lijepo koristi #include <iostream> i mirna bosna

Evo korisito sam #include <iostream> i :

 

error C2065: 'cout' : undeclared identifier

A jesi li se prebacio u standardni namespace koristeci:

 

using namespace::std;

 

??

nisam... pocetnik sam u ovome...  

 

Evo ti skripta pa je ti editiraj da radi na vc++ :

 

#include <iostream.h>

 

int main()

{

    cout <<"Zdravo!\n";

    return 0;

}

 

int main()

{

   std::cout <<"Zdravo!\n";

    return 0;

}

 

 

Ili još bolje ovako:

 

 

#include <iostream.h>

 

using namespace std;

 

int main()

{

  cout <<"Zdravo!\n";

    return 0;

}

 

 

P.S. Ovo nije skripta. Ovo je kod.