PDA

Pogledaj cijelu verziju : [Tutorial] C++



RayDX
15-08-2007, 14:41
C++ Tutorial

Ovo je prvi dio iz goleme serije homemade tutorijala u C++u. Idemo od samog početka do samog kraja... Polako ću updejtati topic i molim sticky :)

------------------------------
UVOD
------------------------------

Sjednimo malo i sagledajmo cijelu gaming industriju. Razvoj tehnologije omogućio je zabavu i interaktivnost o kakvoj smo prije par godina mogli samo sanjati. Rođenje gaming industrije označilo je novu eru ljudske zabave. Danas vrhunske igre, budžetom, ali i kvalitetom stoje rame uz rame filmovima iz Hollywooda. Igre, u svojoj srži, su forma zabave kao niti jedna druga; one praktički svojom interaktivnošću drže igrače zaljepljenima za monitore. Satima, danima, tjednima. Godinama, ako uzemo jedan World of Warcraft ili Everquest. Već isušena rečenica sa malo varijacija; u igrama vi ne gledate heroja kako se piči golemih smrdljivih štakora, vi ste heroj koji se piči protiv golemih smrdljivih štakor!

Ono što čini igre interaktivnima i paranormalno zabavnima jest programiranje. Ono omogućuje onom smrdljivom štakoru, ogromnom zmaju ili glupavom seljaku da reagira drugačije na igrača u različitim situacijama. Ono što igru čini drugačijom od filma jest što u filmu uvijek kada ga jedanput pogledamo znamo što nas čeka i na neki način gubi uzbudljivost, no programiranje omogućuje igrama da izmijenjuju priču kako igrač prolazi kroz određene segmente, njegova naklonjenost dobru ili zlu, čak i u najstatičnijim igrama imate laganu napetost, hoće li Mirko i Stevo možda poginuti, da li će ovaj baciti bombu na krivo mjesto i masakrirati pola svoga tima i vas same.... A ono što drži sve to je sami kôd igre. C++ je standard gaming industrije, nasljednik Ca divljački nabildan i teško naoružan do zuba, od Bjarnea Stroustrupa, mislim da se tak piše njegovo ime hehe... Kako god, svaka igra koja krasi vašu policu, 99.9% su šanse da je napisana u C++u... onih 0.1% čini burekova Aura i još par mini naslova. Pošto je ovo gamerski podforum, nastojati ću se orijentirati na programiranje u C++ kroz perspektivu gamera, što kvalitetnije moguće.

Zadnji paragraf u ovom kratkom uvodu bi trebao orijentirati se na alat koji će nam trebati. Kao što 99% vas zna, programski jezik služi kao posrednik između jezika mašinerije i nas ljudi (engleski). Dakle, on nas prolazi negdje u sredini da možemo razgovarati sa našim mehaničkim ljubimcem. Što je jezik sličniji našem (engleskom, naravno) to znači da je na višem levelu. Jezik za koji se kaže high level ne znači da je to što je viši da je bolji, nego obrnuto, što je bliže jeziku mašineriju, to se brže izvršava. Basic je primjer high level jezika, assembly je dosad najniži na skali te je prilično nerazumljiv nama ljudima. C++ov prethodnik, C je bio potpuno proceduralni jezik te je bio poprilično brz u izvršavanju, no dolaskom C++a koji je teško nadograđen i podignut na viši level, malo je usporio zbog svih naprednih mogućnosti poput object based programiranja ili objektno orijentiranog programiranja, polymorphisma, nasljeđivanja, pointera. Dakako, to je uvelike olakšalo programiranje i omogućilo razvoj daleko naprednijih programa/aplikacija. Ono što zapravo transformira taj kôd u mašineriji razumljive binarne brojke jest compiler. Na tržištu ima mnogo kvalitetnih compilera, a jedan među najkvalitetnijima je dakako Microsoftov Visual Studio koji košta pozamašnu svoticu malih zelenih. No, na sreću Microsoft je odlučio "iskasapiti i osakatiti" Visual Studio te ponuditi entuzijastima besplatne compilere za sve jezike podržane u .NET frameworku. Vama bih iz "express edition" ponude preporučio Visual C++ koji je po meni vrlo kvalitetan i dobro kompilira kôd. Ako ste baš anti-microsoft, onda bih vas uputio na stranice Bloodsheda, na njihov compiler zvan Dev-C++, također vrlo kvalitetan i potpuno besplatan. Od hardvera bi vam trebao miš, tastatura, procesor sa 100MHz pa nadalje te 32 mb RAMa sa monitorom koji je sposoban prikazivati crnu i bijelu boju. Mi ćemo se ovdje baviti nativnim ANSI/ISO C++ standardom, sve što trebate znate o tome zasad jest da je to definicija koja određuje točno kako bi jezik trebao raditi. Ako vas zanima detaljnije o tome jednostavno skočite do googlea i searchajte do mile volje ;). Sada kada smo se opasali i naoružali pođimo uništiti naš mozak na prvi pogled besmislenim kôdom.

------------------------------
Početak...
------------------------------

Vjerojatno vam je dosadio dosadni uvod no što se mora, mora se... Sada je vrijeme da zasučete rukave i zaprljate ruke. Vrijeme je došlo da napišete svoj prvi program. Većina programera kada uči novi jezik iz nekog čudnog razloga poznat samo high-end geekovima napravi exe koji na piksele vašeg monitora ispisuje "Hello World". Mi ćemo razbiti tradiciju tako što ćemo napisati "Boktemazo, pao mi PC Play kroz prozor!!!11". Originalno, nema šta =). Pa upalite vaš compiler i napravite novi prazni projekt te u ispišite sljedeće riječi mudrosti:

---------------------------------------------------------------------

// Mama vidi, moj prvi C++ program!!!11
// MvmpC++ v0.0001

#include <iostream>
using namespace std;

int main()
{
cout << "Boktemazo, pao mi PC Play kroz prozor!!!11" << endl;
return 0;
}

---------------------------------------------------------------------

Sada jednostavno pritisnite F7 u Visual C++u i gledajte u svoje čudo programiranja. Sada kada se kompilirao, pa dobro... Koji k ove dugačke riječi znače?! Polako, polako, sve ćemo objasniti, samo se opustite i čitajte.

// Mama vidi, moj prvi C++ program!!!11
// MvmpC++ v0.0001

Prve dvije linije kôda su komentari, njih compiler prepoznaje po // koji indiciraju istom da preskoči liniju i nastavi dalje. Komentari olakšavaju vama da se lakše snađete kasnije u brdu kôda koje se iskoti za vrijeme vašeg intelektualnog manifestiranja, da se tako izrazimo xD.

#include <iostream>

Sljedeća linija na koju compiler nalet jest ova gore. To je predprocesorska direktiva, nju prepoznajete po znaku # na početku linije. Predprocesor kreće u igri prije samog compilera i zamjenjuje tekst baziran na raznim direktivama. U ovom slučaju imamo #include direktivu koja govori predprocesoru da ubaci file na njeno mjesto u programu. File koji smo mi uključili ovdje se zove iostream što je kratica za input/output stream i ona je dio standardne biblioteke koja sadrži kôd da omogući ispis u programu. Okružujemo ime programa sa < i > koji govori compileru gdje da traži taj fajl. Ovakav file koji includamo u program zove se header file. Zapamtite ovo jer će vas ovo uvelike pratiti u vašoj programerskoj "karijeri".

using namespace std;

std je namespace. Namespace je nešto poput ajd recimo prilično banalni primjer, 032, 385, 01, dakle indentificira grupu kojoj nešto pripada. cout i cin bez ovog dijela koda bi morali imati prefiks std (std::cout), :: je nešto zvano scope resolution operator, nebitno što je, samo zapamtite s čime ide.

int main()
{
******
}

Ovo iznad što vidite je main funkcija. Main je esencija svakog programa i u njoj počinje sve. Funkcija je zapravo grupica kôda koja obavi neki zadatak i vrati vrijednost. Njen početak i kraj označavaju se sa { i }, a unutar tih zagrada krije se kôd. To je zasad sve što trebate znati. I da, int je return type, dakle tip podatka kojeg će funkcija vratiti kad se izvrši. Ovo može biti int, void, float i drugi o kojima ćemo poslije učiti. Zasad je samo ovo bitno.

cout << "Boktemazo, pao mi PC Play kroz prozor!!!11" << endl;

Dakle ono što se nalazi između " i " ispisuje se na vaš ekran. To unutra naziva se string, skupina charactera spojenih zajedno da tvore string. Sada sam vas vjerojatno zbunio pa da odmah pojasnim što bolje mogu. string je data type, tip podatka koji je stvoren da sadržava više više charactera (char je također tip podataka ali može sadržavati samo jedan znak), string dakle tvori array(polje) charova koje spaja te pojedinačne charova zajedno sa bijelim spaceom u jednu rečenicu. Tehnički, ovo među zagradama je literal(nešto doslovno), dakle direktno ispisano nešto, doslovno bez da se poziva neka varijabla. Vjerojatno sam vas previše zbunio. Shvatiti ćete sa vremenom kako to funkcionira=). cout je dio iostream header filea kojeg smo uključili u naš program gore. On se koristi da bi se nešto ispisalo na monitor. U većini programa kao i u ovom, to znači da se ispisuje u konzoli, cmd iliti command promptu. Ovaj << kojeg vidite gore je output operator koji služi da bi poslao string u cout, dakle ispis. Mala napomena, cout se ne čita kout, onako seljački nego profinjeno engleski; c(si --> see) out, dakle see out. Doslovno kada bi ovo preveo značilo bi "vidi vani". Na kroju dolazi endl koji govori compileru da prijeđe u novu liniju. Još jednu stvar koju vidite jest točka-zarez (;), ona služi za prekidanje statementa. Svaka linija u vašem editoru kôda je statement (hr=izjava), to je osnovna jedinica za kontroliranje tijeka programa. Svaka mora završiti sa ; jer će u suprotnom iskočiti dosadni error.

return 0;

Evo, zadnji statement, on vraća nulu kao kraj programa. Vratiti nulu u mainu znači da je se program izvršio kako spada. Compiler ne mora ništa s nulom raditi, ali pošto je funkcija tipa int, mora imati neki return, makar to bila nula (0)

------------------------------
Aritmetičke operacije
------------------------------

Vrijeme je da se pozabavimo nečim što većina vas mrzi. Ja bih volio znati zašto svi mrze matematiku? Matematika je prekul. Ah, mi geekovi smo rijetka rasa. Ajmo napraviti program koji će odraditi par kalkulacija, shall we? C++ ima dobar izbor ugrađenih aritmetičkih operatera: +, -, /, %(nije postotak neg' modulus), *.

Primjer korištenja aritmetičkih operatera aka total abuse bez ikakvog razloga=):

---------------------------------------------------------------------

//Vrijeme za računanje

#include <iostream>
using namespace std;

int main()
{
cout << "2 + 2 = " << 2 + 2 << endl;
cout << "2 - 2 = " << 2 - 2 << endl;
cout << "2 * 2 = " << 2 * 2 << endl;

cout << "3 / 2 = " << 3 / 2 << endl;
cout << "3 % 2 = " << 3 % 2 << endl;

cout << "2 + 2 * 3 = " << 2 + 2 * 3 << endl;
cout << "(2+2) * 3 = " << (2 + 2) * 3 << endl;

return 0;
}


---------------------------------------------------------------------

Pošto neću previše ovdje dužiti ovdje možete vidjeti primjere množenja, dijeljenja, zbrajanja, oduzimanja te modulusa. Modulus kao rezultat zapravo stavlja ostatak od dijeljenja. To je sva mudrost oko njega. Jedna od stvari kao i u pravoj matematici jest da množenje i dijeljenje i modulus imaju veću prednost od zbrajanja i oduzimanja, ali ako želite možete vi označiti što bi trebalo se prvo obraditi uz pomoć zagrada, a gore imate i primjer kako to funkcionira.

------------------------------
Deklariranje i korištenje varijabli
------------------------------

Varijabla je zapravo dio vaše memorije koju ste vi time što ste ju deklarirali zauzeli da možete koristiti za spremanje, čitanje i manipuliranje podataka. Nešto što najviše raduje igrača kod igara jest postići što viši rezultat. Pa zašto vi kao programer ne biste napravili varijablu u koju će se spremati rezultati igrača i onda nakon toga prikazati sadržaj te varijable na vaš zaslon. Ovdje ću omogućiti mali cheat da bi naučili još jedan feature iostream header filea. A to je cin (see in) koji omogućuje igraču da unese neku vrijednost sa tastature u tu varijablu.

---------------------------------------------------------------------

//Malo varanja u smislu učenja xD

#include <iostream>
using namespace std;

int main()
{
int rezultat = 0;
const int pointsperfrag = 25;
int frags = 0;

cout << "Di si gameru! Koliko si nesretnika ubio?" << endl;
cin >> frags;

rezultat = frags * pointsperfrag;

cout << "Danas si zaradio cak " << rezultat << " bodova! GG skillz0ru!!!1" << endl;

return 0;
}

---------------------------------------------------------------------

Kao što vidite, prilično poznato izgleda. No krenimo sa nepoznatim. Na 8 liniji deklariramo rezultat koji ima data type int. Int ili duže integer može jedino sadržavati cijele brojeve, dok npr. float ili double mogu sadržavati i decimalne brojke. U ovom predstavljamo također i pointsperfrag konstantnu varijablu tipa int, što znači da je ta varijabla ne izmijenjiva, dakle stalno je ista. Ovo koristite kada naprimjer nekom neprijatelju želite dati da radi određeno štete svakim udarcem, u igri poput RPGa to bi bilo puno dinamičnije i puno više faktora no ovdje se radi bodovima koje dobijete po svakom fragu. Dakle, za svaki frag dobijete 25 bodova, ni manje ni više. Na sljedećoj liniji vidite int frags = 0;, to je varijabla u koju ćemo spremiti broj fragova koje ste "napravili". U prvom cout statementu vas program pozdravlja i postavlja pitanje, koliko si nesretnika ubio? Ispod se nalazi cin >> frag; cin sprema neku informaciju koju vi upišete preko tastature u varijablu sa desne strane, u ovom slučaju frags koji jedino može primiti cijele brojeve. To je nešto poput sigurnosnog sustava da neki mudrijaš ne bi upisao da je ubio 2.34 nesretnika. Na sljedećoj liniji imamo:

rezultat = frags * pointsperfrag;

Što se ovdje događa? Ovdje se obavlja jednostavna aritmetička operacija množenja. Ali ovdje je bitno da se ne množe slova, to je ime varijable, nego ono što varijabla sadrži. Evo recimo da sam imao fragova 12, kada se to pomnozi sa 25, dobijem 300 bodova. I sada tih 300 bodova se trebaju spremiti negdje. A to negdje jest varijabla rezultat uz pomoć znaka jednakosti koji usmjerava ishod računice u varijablu rezultat. I u sljedećem cout statement vi ispisujete rezultat uz par pohvala.

Sada bi trebali malo raspraviti o osnovnim tipovima podataka. Kao što smo naučili, svaka varijabla ima tip podatka koji može biti/je sadržan u njoj. To govori compileru koliko memorije treba sačuvati jer svaki tip podatka iziskuje manje/više memorije. Osnovni tipovi podataka su bool (ima struje / nema struje, true / false), char za pojedinačne znakove, int za cijele brojeve, float i double za decimalne brojeve. Također imate mogućnost da pobliže izmijenite tipove podataka, poput long modifiera kojeg ako stavimo ispred int povećava broj mogućih vrijednosti koje možemo spremiti u varijablu ili short koji radi suprotno. Također nešto što možda kasnije pronađete kasnije su signed/unsigned modifier koji mogu ograničiti da broj ide ispod 0 dakle da bude negativan itd.

Zasada smo sve osnovno obradili, a još bih htio vam dati jednu preporuku koju bi bilo pametno pratiti, uvijek pokrenite varijablu na početnu vrijednost! Nikad nemojte staviti samo int rezultat; nego stavite početnu vrijednost na nulu. Tek toliko da budete čisti! I pazite kako nazivate vaše varijable te pokušajte držati njihova imena što kraćim mogućim te steknite naviku oko nazivanja varijabli.

Sada ću vas ostaviti da se zabavite sa naučenim dok ja pišem nove tutorijale za vas... A vjerujte mi, pozlit će vam koliko će ih biti xD. Ako nešto vas muči ili ne možete shvatiti javite nam se na forumu, burek, ja i ostatak gurmanske ekipe će vam pomoći hehe. Do čitanja!

SkunK
15-08-2007, 16:10
Znanje je moc.
Samo naprijed ;)

RayDX
15-08-2007, 17:47
Danke schon... Drugi dio je u produkciji, stay tuned ;)

[_[_[Sk8man]_]_]
15-08-2007, 18:14
Danke schon... Drugi dio je u produkciji, stay tuned ;)
Tut je odlican. :pray: Samo tako nastavi.Ja sam tek nedavno poceo ucit C++ za ozbiljno pa mi je tut stvarno pomogao.Hvala beskonacno.
Just keep em coming.

SkunK
15-08-2007, 21:44
Sve je to super i ok samo toplo preporucam knjigu ako se hocete malo ozbiljnije uhvatit u koštac s c++ -om.

DrunkyDuck
15-08-2007, 21:45
A koju to?

:D

RayDX
15-08-2007, 21:54
Demistificirani C++, ili C++ kroz primere ili bilo koju balkansku knjigu ako vas ne ide engleski.. A ja vam preporučam knjigu Ivora Hortona zvanu Beginning Visual C++ (1400 stranica negdje) legendarna knjiga!!!

[_[_[Sk8man]_]_]
15-08-2007, 22:59
Domestificirani C++, ili C++ kroz primere ili bilo koju balkansku knjigu ako vas ne ide engleski.. A ja vam preporučam knjigu Ivora Hortona zvanu Beginning Visual C++ (1400 stranica negdje) legendarna knjiga!!!
Ja sa, taj Domestificirani C++ trazio ali ga nigdje nisam nasao za kupit(Inace
zivim u BiH, tacnije RS), tako da bi mi pomoglo digitalno izdanje u vidu E-booka aku uopste postoji?

RayDX
15-08-2007, 23:02
postoji možda engleska verzija, ne znam... ali naša ne..

downforce3d
15-08-2007, 23:16
Knjigu DemistificiraniSC++ možeš kupit ovdje:
http://www.element.hr/knjige.asp?id=13611

Ako nisi siguran za sadržaj možeš besplatno skinuti jedan dio knjige u PDF formatu na: http://free-zg.htnet.hr/jsribar/download.html

Waylon
15-08-2007, 23:23
knjiga je odlična i stvarno se iz nje puno da naučit

RayDX
16-08-2007, 09:03
Nije mi jasno zašto naši sve moraju prevoditi. C++ with classes... C++ sa klasama, a ne C++ sa razredima xD

MartinC
17-08-2007, 12:13
U kojem ti kompajleru radiš, RayDX

RayDX
17-08-2007, 14:32
Visual C++ kao part od Visual Studija 2005, sada iščekuje Orcas fino da skočim na 2008 :)

The Boz
17-08-2007, 14:44
Bureku će biti jako drago kad se vrati i vidi ovakve dragulje kako ga čekaju.

HalF-DeaD
20-08-2007, 21:53
Ja bi počeo učit programirat, malo sam nešto brljavio u C-u pa sam sve zaboravio, zanima me jel C++ dobar za početnike ili ima neki lakši jezik prvo?

RayDX
20-08-2007, 22:13
Ja bi počeo učit programirat, malo sam nešto brljavio u C-u pa sam sve zaboravio, zanima me jel C++ dobar za početnike ili ima neki lakši jezik prvo?

Pa gledaj, niti jedan programski jezik ispočetka nije jednostavan, no kada jedanput naučiš programsku logiku, nije pretežito teško naučiti ostale jezike... Ako imaš više vremena kreni sa Visual Basicom, dobar sajt ti je http://www.tutorijali.netSgdje imaš tutorijala na Visual Basic temu poprilično, i to na hrvatskom :). A onda poslije prijeđeš na C++. C++ nije nešto pretežak ali za novake je to malo jači izazov isprve ali ako si "pustolovan" geek nema problema :D

HalF-DeaD
20-08-2007, 22:17
Pa gledaj, niti jedan programski jezik ispočetka nije jednostavan, no kada jedanput naučiš programsku logiku, nije pretežito teško naučiti ostale jezike... Ako imaš više vremena kreni sa Visual Basicom, dobar sajt ti je http://www.tutorijali.netSgdje imaš tutorijala na Visual Basic temu poprilično, i to na hrvatskom :). A onda poslije prijeđeš na C++. C++ nije nešto pretežak ali za novake je to malo jači izazov isprve ali ako si "pustolovan" geek nema problema :D
ok thx, idem na c++, geek u duši :D :rotfl:

btw jel bolje da skinem dev c++ ili ms visual studio

EDIT: jesam lame rtfm

RayDX
20-08-2007, 23:11
Pa gledaj, niti jedan programski jezik ispočetka nije jednostavan, no kada jedanput naučiš programsku logiku, nije pretežito teško naučiti ostale jezike... Ako imaš više vremena kreni sa Visual Basicom, dobar sajt ti je http://www.tutorijali.netSgdje imaš tutorijala na Visual Basic temu poprilično, i to na hrvatskom :). A onda poslije prijeđeš na C++. C++ nije nešto pretežak ali za novake je to malo jači izazov isprve ali ako si "pustolovan" geek nema problema :D
ok thx, idem na c++, geek u duši :D :rotfl:

btw jel bolje da skinem dev c++ ili ms visual studio

EDIT: jesam lame rtfm

dev c++ je free :D, ali ako misliš ono... pa bolji je visual studio iako za početnika dobar je i dev c++, a razlika je u par tisuća megabajta... Uzmi bolje kompromis... U Google napiši Visual C++ Express edition i to je to ;)

Ripaz
21-08-2007, 09:27
Zašto ne kompresuješ tutoriale u PDF format. Ako ti ne možeš mogu ja umjesto tebe.

RayDX
21-08-2007, 10:16
Zašto ne kompresuješ tutoriale u PDF format. Ako ti ne možeš mogu ja umjesto tebe.

Ma nije problem... Šta misliš da ne stavljam ovdje nego u PDF... Ajd ok.... :D

Ripaz
21-08-2007, 10:55
Zašto ne kompresuješ tutoriale u PDF format. Ako ti ne možeš mogu ja umjesto tebe.

Ma nije problem... Šta misliš da ne stavljam ovdje nego u PDF... Ajd ok.... :D

Ma bilo bi malo bolje da urediš i staviš u PDF format.

Kocky
25-08-2007, 09:25
E stari ja ti isto radim u C++ Visual 2005 i tak dalje i tak dalje ali ja kad idem new->projekt kaj onda moram odabrat??? ako odaberem Windows form application onda kad otvorim coder gdje pisem naredbe i onda sva sranja imam vec zapisano




#pragma once


namespace Prijekt {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}

protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}

private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->SuspendLayout();
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);

}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
};
}



Kaj s tim da to zbrisem i pisem svoje ili???????????

SkunK
25-08-2007, 21:23
Sta cistis kad sam mu bio napisao kod i ljepo objasnio...

SkunK
30-08-2007, 14:42
Bzvz unistavas zaradu ljudima koji su napisali knjigu, ovo je warez cisti... a isplati se dat lovu za knjigu.

SkunK
30-08-2007, 21:05
napiši mu ponovno, uspjeli su staviti stranicu i pol čistog spama i sranja, pogotovo kocky...još jednom i dajem opomene...

Sorry ali ja nisam kriv zbog neopreznosti/gluposti moderatora, ono napisao sam jedan malo veci tekst...t

RayDX
30-08-2007, 22:45
Ispričavam se što kasni novi tutorijal :D Coming soon...

HalF-DeaD
14-09-2007, 15:19
Evo nabavio sam si Demistificirani C++, skino Visual C++ 2005, idem se učit programirat :)

Y0$$1p
24-09-2007, 19:36
može li netko reći gdje ima za skinuti taj c++?

SkunK
24-09-2007, 19:39
Nemozes ga "skinuti".
Imas temu u ovom podforumu zvanu "C++" pa procitaj.

Luka
25-09-2007, 15:07
Nemozes ga "skinuti".
Imas temu u ovom podforumu zvanu "C++" pa procitaj.

C++ istina se ne može skinuti (jer je to jezik) ali "Y0$$1p" je htio pitati za Visual C++ (IDE)

link (Express Edition) : http://msdn2.microsoft.com/en-us/express/aa975050.aspx

RayDX
12-10-2007, 22:53
Želio bih se ispričati što nisam napisao drugi tutorial, kombinacija lijenosti i škole čini čuda... Ali evo sutra ću se potruditi da to odradim :)

M@v3r1ck_@
18-10-2007, 00:33
eee, majstore thnx za ovo... :pray: :pray:
svaka cast

SnowFlake
09-11-2007, 19:03
i?oće to doći
inaće nije mi baš jasno...

Svinjoguz
23-11-2007, 22:04
evo ovak, igre su mi dosadile pa bi mozda pravljenje istih bilo zabavnije, spreman sam zaprav se ufatit posla i zasukat rukave al prvo par pitanja..

1.neki online tutoriali za pocetnike(introduction, pojmovnik i to) po vasoj preporuci
2.neka knjiga koju mozem kupit u zagrebu
3. vrste C++ i njihove razlike(citam neki demistificirani, pa malo pojasnite)...
4. u kojem "programu" se programira(notepad ili sta)

malo noobasta pitanja al eto..

SkunK
23-11-2007, 23:08
1. Evo ti iz mojih bookmarksa
:
http://www.hurgh.org/books/c++_in_21_da ... #Heading26 (http://www.hurgh.org/books/c++_in_21_days/htm/ch01.php#Heading26)

i dobar forum za pocetak http://cboard.cprogramming.com/

sta se tog tice bilo bi najbolje da se ti meni ljepo javis na MSN kad te tako zanima c++ pa cu ti poslat jednu manju knjigu na Engleskom gdje je dosta stvari objasnjeno.

2. Demistificirani C++ je meni ok, imam ga ali mislim da nije bas za najzesce pocetnike.

3.Demistificirani ti je knjiga, C++ je jezik ali prije njega je bio C a i postoji C#, razlika je u sintaksi ( citaj - neka razlika kod programiranja-kodiranja)

4.Programiras u "compileru", ima ih vise , najpoznatiji je Visual Studio, ali postoje i besplatni, recimo DevC++.

Tracer
12-12-2007, 16:53
Evo jednog mog tutorijala kojeg sam još radio za jedan forum na faksu...

http://forum.sztvz.hr/showthread.php?t= ... ultiplayer (http://forum.sztvz.hr/showthread.php?t=767&highlight=Multiplayer)

SkunK
12-12-2007, 16:55
To je VB koliko vidim.

Tracer
12-12-2007, 16:57
To je VB koliko vidim.Ne. C++. Malo podsjeća na VB ali nije.

SkunK
12-12-2007, 17:05
Mozda zbog compilera ovog od borlanda?

Tracer
12-12-2007, 17:18
Mozda zbog compilera ovog od borlanda?Da. To je rađeno u Borland C++ Builder-u 6. To razvojno okruženje je jako slično VCB-u, ali to je isključivi C++. Ima razlika kad je riječ o Windows aplikacijama glede biblioteka koje koristi itd., ali to je već priča za drugi put ;)

Uglavnom, svakako je jednostavniji od Visual Studija, a postoji potpuno besplatna verzija (Turbo C++ 2006 Explorer) koja dopušta i izrade Windows aplikacija.

http://www.turboexplorer.com

SkunK
12-12-2007, 17:21
Da ali sta se tice mogucnosti i popularnosti vs je ipak jos uvijek no1.

Tracer
12-12-2007, 17:27
Da ali sta se tice mogucnosti i popularnosti vs je ipak jos uvijek no1.Ja se profesionalno bavim programiranjem u C++u već 10 godina i mogu ti reći da je VS i njegov MFC danas stara tehnologija. To je Borland napustio još 1994.g s OWL bibliotekom i sad kreirao VCL i CLX tako da jedan program (Windows aplikaciju) možeš gotovo bez ikakvih preinaki compilirati i za LINUX.

VS je možda poznatiji jer je Microsoft-ov proizvod, no sa tehnološkog stanovišta, kvalitete i brzine rada... nikada se ne bi bavio MFC-om. Borland nudi daleko brži i jednostavniji pristup i većina profesionalaca će radije uzeti Borland nego VS i MFC (kojeg ionako svi polako napuštaju).

Burek_fr0m_SPACE
12-12-2007, 18:52
Ja se profesionalno bavim programiranjem u C++u već 10 godina
Možeš li nam reći nešto više o svojim radovima ili ih možda negdje možemo vidjeti? I dobrodošao na forum, btw.

SkunK
12-12-2007, 19:14
Ne uzima se samo VS zbog MFC-a.

RayDX
12-12-2007, 21:20
Ne uzima se samo VS zbog MFC-a.

WORD. Visual Studio je odličan IDE. Borland C++ je po meni solidan ali ni blizu VSa...

Tracer
13-12-2007, 10:03
Ja se profesionalno bavim programiranjem u C++u već 10 godina
Možeš li nam reći nešto više o svojim radovima ili ih možda negdje možemo vidjeti? I dobrodošao na forum, btw.

Hvala na dobrodošlici ;)

Nažalost, malo toga od svojih radova bi uopće smio dati za javnost jer je sve uglavnom komercijalno i ne bi bilo fer prema ljudima kojima sam to naplatio da sad na internetu dajem besplatno :|

Uglavnom, najviše sam se orjentirao na tri područja: Baze podataka (ADO komponente s Paradox, Interbase, Access, SQL server 2000, 2005, Oracle, MySql...), Mrežno programiranje (Mrežni Windows servisi, TCP, UDP klijent-server, FTP, ECHO, FINGER, HTTP, tuneliranja, dekripcija i enkripcija itd itd.), Biblioteke(LIB, DLL i komunikacija na nivou različitih programskih jezika)+ActiveX, Com, Com+ itd. itd..

Od konkretnih radova... Napravio sam višeklijentski sustav za jednu tvrtku baziran na TCP/IP protokolu za administriranje podataka o korištenju automobila. SQL Server 2005 kao baza + mreža za specijalne potrebe klijent-server komunikacije i administraciju uposlenika i korisnika i integraciju chat opcije.

Za faks sam napravio sustav od dvije aplikacije za testiranje studenata. Automatsko ocjenjivanje i arhiviranje ispita, podataka o studentima, analize uspješnosti i rezultata itd itd... Ovaj put Access + UDP. Korišten i COM+ za spremanje rezultata u .DOC i .XLS formate itd..

Ima dosta toga, ali sad slabo imam vremena i uglavnom sve radim samo kad mi treba za posao.

Tracer
13-12-2007, 10:11
Ne uzima se samo VS zbog MFC-a.

WORD. Visual Studio je odličan IDE. Borland C++ je po meni solidan ali ni blizu VSa...
Mora se ipak razlikovati razvojno okruženje od tehnologija i pristupa koje se u njima nude. IDE je samo školjka, ali tehnologija koju se koristi konkretno u VS-u (MFC) je jednostavno zastarijela i nije u koraku s konkurencijom. Sad se pokušavaju vratiti s novom verzijom MFC-a pa se još jedino to čeka što će s tim biti...

Primjerice, probaj napraviti nekakvu COM komponentu u VS-u i Borlandu. U VS-u ćeš sve morati ručno pisati, definirati interface, članice, pisati tijela tih funkcija itd., dok Borland ima vizualni prikaz cijele strukture komponente i jednostavnim klikanjem se dodaje i članica i sve deklaracije potrebne da compiliranje odmah uspije. Naravno, odmah ti je podržana i direktna registracija komponente i sl..

Radio sam na oba i mogu reći da je meni Borland definitivno brži i pristupačniji. To sam što IDE možda u VS-u nekome vizualno ljepše izgleda (što je sasvim subjektivno) nije uopće bitno kada se gleda brzina rada i sve što sam naveo.

Burek_fr0m_SPACE
13-12-2007, 11:23
Nažalost, malo toga od svojih radova bi uopće smio dati za javnost jer je sve uglavnom komercijalno i ne bi bilo fer prema ljudima kojima sam to naplatio da sad na internetu dajem besplatno :|
Nisam ja ni očekivao free downloade kad već kažeš da se profesionalno baviš time =) Čisto me interesovao neki info na čemu radiš, što si i dao. Zanimljivo. Mislim da je čak i meni prošlo 10 godina od kako sam prvi put nešto otipkao u QBasic, ali sam se manje bavio "ozbiljnim" stvarima, a nisam vala nikad ništa ni zaradio na tome, bar ne direktno. Koliko imaš godina, ako ne pitam previše?

Tracer
13-12-2007, 11:28
Nažalost, malo toga od svojih radova bi uopće smio dati za javnost jer je sve uglavnom komercijalno i ne bi bilo fer prema ljudima kojima sam to naplatio da sad na internetu dajem besplatno :|
Nisam ja ni očekivao free downloade kad već kažeš da se profesionalno baviš time =) Čisto me interesovao neki info na čemu radiš, što si i dao. Zanimljivo. Mislim da je čak i meni prošlo 10 godina od kako sam prvi put nešto otipkao u QBasic, ali sam se manje bavio "ozbiljnim" stvarima, a nisam vala nikad ništa ni zaradio na tome, bar ne direktno. Koliko imaš godina, ako ne pitam previše?

25

Počeo sam sa 10 godina još sa QBasicom, pa Pascal...

asd
17-04-2009, 10:11
Znači još mi nije kasno?
I ja sam s 10 godina krenuo sa QBasicom i sad učim C++! :friends:

Luka
17-04-2009, 11:03
Znači još mi nije kasno?
I ja sam s 10 godina krenuo sa QBasicom i sad učim C++! :friends:

neki ni na faksu ne nauče :)

eddie2142
17-04-2009, 11:45
qbasic banalan.
C++ jednostavan i univerzalan.
Zasto ne odma C++?

a inace drama ti tut, taman da ljudi shvate imaju li volje nastaviti s programiranjem i kupiti knjigu :thumbs2:

SkunK
17-04-2009, 17:06
qbasic banalan.
C++ jednostavan i univerzalan.
Zasto ne odma C++?

a inace drama ti tut, taman da ljudi shvate imaju li volje nastaviti s programiranjem i kupiti knjigu :thumbs2:

Zato jer će jedan početnik odmah nakon 2 dana prestati s učenjem C++-a. Taman kad mu ne bude jasno žašto mora napisati 10+ linja za ispis običnog teksta u Win32 konzolu i kad shvati za što služi <iostream> header.

Nemozes s poda na konja, prvo na magarca :) ili još bolje, nauči prvo hodati tj. stajati na nogama :)

eddie2142
17-04-2009, 19:28
a lol. ja nisam nista posebno pa eto nisam prestao s ucenjem C++a...

a ako im nema smisla pisati 10 linija za 2 rijeci, onda ipak nisu za toga, jel? zamisli da u binaryju programiramo O.o

Luka
17-04-2009, 19:31
pa, nisu svi isti ;)
nekima treba "predjezik", neki mogu odmah na "pravi" :)

SkunK
17-04-2009, 20:05
pa, nisu svi isti ;)
nekima treba "predjezik", neki mogu odmah na "pravi" :)

Kvalitetniji programeri po studijama izađu ako počmu od malih stvari na prema većima. :)

LV-426
29-04-2009, 12:01
Evo za početnike u C++-u ima jako dobar serial tutoriala na YouTube-u pod imenom C++ Absolute n00b spoonfeed

eddie2142
29-04-2009, 19:00
pa, nisu svi isti ;)
nekima treba "predjezik", neki mogu odmah na "pravi" :)

Kvalitetniji programeri po studijama izađu ako počmu od malih stvari na prema većima. :)

naravno, onaj lik brze od mene uci C++ jer je to njemu vise manje poznato, ali ja krocim u nepoznate vode xD

asd
04-05-2009, 08:24
Evo i ja ću krenuti pisati tutorijale pa pošto tema već postoji...

C++ tutorijal
Part 1

Program 1

int main()
{
return 0;
}
Nakon pokretanja ovog programa siguro vam se nije ništa dogodilo. Ne, nije greška u vašem računalu nego program radi ono što smo mu zadali NIŠTA.
Pojašnjenje dijelova programa 1

int main()
U ovom retku napisano je int main(). main je naziv glavne funkcije u svakom C++ programu. Izvođenje svakog programa počinje naredbama koje se nalaze u njoj. Dakle Svaki program napisan u C++ jeziku mora imati točno (ni manje ni više) jednu main funkciju. int ispred oznake glavne funkcije ukazuje na to da će nakon izvođenja funkcija vratiti cjelobrojnu vrijednost. (int dolazi od eng. riječi integer što znači cjeli broj) Unutar zagrada trebali bi doći parametri funkcije. U našem primjeru nema ničega u zagradama što znači da ne prenosimo nikakve parametre.

{
U ovom retku napisana je otvorena vitičasta zagrada kaja označava početak bloka naredbi u kojem se nalaze naredbe naše funkcije

return 0;
U samom bloku nalazi se jedna naredba return 0; tom naredbom funkcija vraća glavnoj funkciji vrijednost 0 što je poruka operacijskom sustavu da je program uspješno završen. ; iza naredbe return 0 označava kraj naredbe te znakove koji slijede interpretira kao sljedeću naredbu.

}
Označava kraj bloka naredbi.

part 2 Comming soon... :boohoo:

Ako vam nešto nije jasno u gledi ovog tutorijala javite mi se na cpp.tutoriali@gmail.com

link na wordovu inačicu tutorijala... http://www.box.net/shared/dpykvl5zpk

wasd
04-05-2009, 17:38
Jer mi možete poslat neke tutoriale na ovu mail adresu cpluspluspocetnik@gmail.com, jer me neće biti neko vrijeme :rambo:

Luka
04-05-2009, 18:20
omg

asd
05-05-2009, 09:02
C++ tutorijal
Part 2
Program 2

#include <iostream>
using namespace std;
int main()
{
cout << "Ja ucim C++! " << endl;
return 0;
}
U ovom primjeru uočavamo tri nova retka pa ih idemo podrobnije objasniti.

#include <iostream>
Ova naredba zahtjeva od preoditelja da u naš kod uključi biblioteku iostream. U toj iblioteci nalazi se izlazni tok (output stream) te funkcije koje omogućavaju ispis podataka na zaslonu. Ta nam je biblioteka neophodna da bismo u našem programu isisali tekst na zaslon. Da nebi bilo zbune #include nije naredba c++ jezika već pretprocesorska naredba. Naletjevši na nju prevoditelj će prekinuti izvršavanje programa skočiti na biblioteku iostream prevesti nju a potom će nataviti prevodit program. Pretprocesorske naredbe ćete prepoznati tako jer počinju sa #.

using namespace std;
using i namespace su ključne riječi c++ jezika kojima se „aktivira“ određeno područje imena (namespace) , a std je naziv imenika u kojem su obuhvaćene sve standarne funkcije uključujući i iz gore opisane biblioteke iostream. Imenici služe zato da ako slučajno imamo dvije jednake naredbe i drugih biblioteka prevoditelj će javiti pogrešku a upisivanjem using namesace std; se to izbjegava za sada uzimajte using namespace std; „Zdravo za gotovo“

cout << "Ja ucim C++! " << endl;
Ovu ćete naredbu najlakše shvatiti ovako:
cout -> ispisi
<< -> na zaslon
"Ono što se ispisava ide tu "
<< -> na zaslon
endl; -> kraj reda
nakon << endl ne moramo nužno staviti ; i pisati novu komandu već možemo samo nastaviti pisanjem << i opet tekst u navodnicima.
npr.

cout << "C++ je zakon" << "Zar ne?" << endl << "Da ali je i tezak za pocetnika!";
Ako vam nešto nije jasno u gledi ovog tutoriala javite se na cpp.tutoriali@gmail.com

Link na .doc tutoriala C++ tutorijal


Link na .doc datoteku tutoriala http://www.box.net/shared/r2jtkq1jeg

asd
06-05-2009, 08:56
C++ tutorial
Part 3
Program 3

#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cout << "Unesite prvi broj: ";
cin >> a; // ocekuje prvi broj
cout >> "Unesite drugi broj: ";
cin >> b; // ocekuje drugi broj
c = a + b; // racuna njihov zbroj
cout << ''Njihov zbroj je: '' << c << endl; // ispisuje rezultat
return 0;
}

int a, b, c;
U ovom redku deklariraju se 3 varijable. Ključnom riječi int deklarirali smo ih kao cjelobrojčane vrijednosti. U C++ varijable moramo definirati prije nego što ih počnemo koristiti. Kada prevoditelj nailazi na deklaraciju varijable on zapamti njeno ime i osigura joj mjesto u memoriji računala, kada prevoditelj dalje u programu ponovno naiđe na varijablu on će znati gdje se ona u memoriji nalazi i da je cjelobrojčanog tipa.

cin >> a;
Ova naredba prifružuje unesenu vrijednost s tipkovnice na varijablu a. Ovo si prevedite kao
cin = unesi
>> = s tipkovnice
a; = na varijablu a

c = a + b;
Ovo vjerojatno netreba previše objašnjavati zbraja a i b a za rezultat postavlja c.

// komentar
Ovaj dio programa nije nikakva naredba niti išta što ima veze s programom, ovo služi za lakše čitanje koda, tj. ono nam pomaže da ne zaboravimo što pojedini kod znači. Treba izbjegavati i pretjerano komentiranje koda jer tada kod postaje još nečitljiviji dakle za svaku naredbu cout netreba komentirati ova naredba ispisuje na zaslon ono što je u navodnicima već treba eventualno komentirati neke naredbe koje su manje razumljive i koje si baš nemožemo zamisliti kako se one izvrašavaju.

Za sve informacije u gledi ovog tutoriala mailati me na cpp.tutoriali@gmail.com

link na .doc datoteku tutoriala: 25 kb http://www.box.net/shared/bmxt97tzjq

part 4 comming soon... :rambo:

asd
07-05-2009, 07:57
Osječajte se slobodno pa recite mišljenje :D
nema edit sorryte zbog doubleposta :scared:

DragonSoul
07-05-2009, 09:19
Zašto ne pišeš taj tutorial na Google Docs, u jedan dokument, staviš ga na public, i ovdje postaš link? Tamo onda fino napišeš, mi vidimo i kažemo ti ovdje ako nešto ne valja/je jako dobro napraljeno.

asd
08-05-2009, 06:49
Hvala na savjetu evo i to je rješeno:
http://docs.google.com/Doc?id=dhdm784q_1d5sssbcz
tutorial #4 uskor

asd
09-05-2009, 08:54
http://docs.google.com/Doc?id=dhdm784q_1d5sssbcz&hl=enScjelokupni tutorijal u jednpj datoteci

http://www.box.net/shared/kymcjct0coSlink na .doc datoteku 4 djela tutorijala

i tutorial:
C++ tutoriajal
Part #4
U ovom ćemo se tutorijalu malo pozabaviti vrijablama alii načinom drugačijim nego u knjigama. Dakle neće biti čista teorija nego jednostavni primjeri. Pa krenimo odmah na prvi primjer:
Program 4

// Ovaj program izbacuje pogresku a napisan je iz tog razloga da bi onima koji tek polako shvačaju
//objasnio kako funkciniranju varijable i kako koristiti njihove
//indentifikatore (imena) Dodana je i deklaracija drugog tipa, (float)
#include <iostream>
using namespace std;
int main()
{
float a,B,c;
cin >> a ;
cin >> b ;
c = a + b ;
cout << c;
return 0;
}
Uočujemo samo jednu nepoznatu izmjenu u ovom programu. Ta je izmjena

float a,B,c;
float služi za deklariranje varijable kao i int. Ipak razlika je u tome što sa int deklariramo varjablu kao cjelobrojčanu vrijednost a sa float kao decimalnu vrijednost. Ipak ovaj program javlja pogrešku. Ako ste oštra oka odmah ćete uočiti da se u retku:

c=a+b
spominje neka druga varijabla. Sigurno se pitate kako druga a i jedna i druga i treća su kao i u deklaraciji a, b i c, ali razlika je u tome što b u c++-u nije isto što i B. Dakle u c++ dvije varijable istog imena (npr. marko i Marko) a različite veličine slova (velika i mala) označavaju dvije različite varijable. Ovo u npr. Basicu nebi bi problem jer on nije osjetljiv na veličinu slova u varijabli (eng. case sensitive) dok u ašem slučaju C++ jest. Pa probajmo sada izmjeniti u naredbu
float a, b, cSi pokrenuti program.
Program bi sada trebao raditi bez greške ali ako ipak izbacuje pogrešku probajte iskopirati ovaj source on sigurno radi:

#include <iostream>
using namespace std;
int main()
{
float a,b,c;
cin >> a >> b;
c = a + b ;
cout << c;
return 0;
}

Dakle, u c++ varijable sa drugačijom veličinom slova u imenu su dvije različite varijable zato je uobičajeno pisati varijable malim slovom a konstante* velikim slovima.

*to će doći na red puno kasnije još kojih 20 tutorijala do njih.
U sljedećem ćemo se tutorialu malo pozabaviti vrstama varijabli.
Za sve upite cpp.tutoriali@gmail.com
Savjeti prijedlozi pls?

SkunK
09-05-2009, 11:25
Zašto ne postaš samo link na google doc od tvog tutoriala, ili pak otvoriš zasebni topic i njega puniš samo linkovima svojih tutoriala koji su na google docsima?

asd
10-05-2009, 10:02
^^^^^^^^^^^^^^^^^^^^^^^^^^
Otvaram Topic

tigerija
24-06-2009, 10:00
Reiko šta ga cjepidlačiš, meni je ovako bilo baš ugodno za oči... :(

Nodakim
12-09-2009, 18:25
Može me netko podsjetit koje one komande idu za boje?(tek sada sam počeo "učiti" c++ pa se zajebavam u Visual Expressu jel)
Sjećam se da je bilo nešto tipa (colour 4 ..... ) za red i onda druge brojke za druge boje.


I može mi netko reći što znače <cstdlib> i <cstdio> ?(mislim da se to zove header,uglavnom ono zeleno što napišeš na početku?)
Vidjeh to u ovom videju :
aF9fEk9p-aQ

Luka
12-09-2009, 20:30
Može me netko podsjetit koje one komande idu za boje?(tek sada sam počeo "učiti" c++ pa se zajebavam u Visual Expressu jel)
Sjećam se da je bilo nešto tipa (colour 4 ..... ) za red i onda druge brojke za druge boje.


Pričaš o funkciji system, koja proslijeđuje izraz Windowsima (tehnički, cmd interpreteru)... no vjerojatno te zanima kako koristiti:

system("color broj-boje");

Popis boja je bilo koji popis od 14-15 boja koji ćeš pronaći guglanjem. Traži nešto kao "cmd color codes"




I može mi netko reći što znače <cstdlib> i <cstdio> ?(mislim da se to zove header,uglavnom ono zeleno što napišeš na početku?)


Obično ljude zbunjuje da C++ sam po sebi nema nikakve funkcionalnosti. Ne možeš čak ni poslati poruku na ekran. Jedino možeš kroz main() vratiti vrijednost, to je jedina ugrađenaSfunkcionalnost.

Kako bi se omogućile druge stvari, uvedena je standardna biblioteka. U njoj se "funkcije" podijeljene u razne datoteke... pa između ostaloga postoje i ove dvije koje si naveo.

cstdlib je sve ono što treba ići u standardnu biblioteku, ali ne spada nigdje drugdje, dakle nekakve općenite stvari (obično ju koristim samo za random brojeve)
cstdio je old-school biblioteka za IO programa (npr. ispis poruke na zaslon monitora, kroz konzolu) - osobno preferiram noviju "biblioteku" za IO koja je pristigla s C++om: "iostream"

Ako te kojim slučajem zanima više o Standardnoj biblioteci, ili zašto se headeri (cstdlib i sl.) zovu tako kako se zovu, upućujem te na svoj tekst o toj temi: link (http://www.doublebuffer.org/site/index.php?option=com_content&view=article&id=61:stltutintro&catid=41:cpp&Itemid=60).

skrivena propaganda ftw

Nodakim
12-09-2009, 20:57
Mah ja sam retardiran po pitanju "informatičke pismenosti" pa ono ja uglavnom ne znam ni šta treba pitati.
Pa npr. bih pitao za što mi sve može C++ koristiti kao programski jezik?

Luka
12-09-2009, 22:06
Mah ja sam retardiran po pitanju "informatičke pismenosti" pa ono ja uglavnom ne znam ni šta treba pitati.
Pa npr. bih pitao za što mi sve može C++ koristiti kao programski jezik?

Sve. C++ nema granice (takav je stvoren), nudi baš sve.

Ustvari, to je jedini takav jezik koji poznajem. Ne govorim samo o feature-setu, nego npr. o činjenici da je C++ i low-level i high-level, i proceduralan i OOP.

C++ je onakav kakav želiš da bude, pa zato ima puno [nas]Szaljubljenih u njega :D


Disklejmer: naravno, ta općenitost nosi i poteškoće. Nešto ga je teže naučiti, i teško usvojiti. Isplati se naravno. Teže ga je ponekad i koristiti, jer mora biti jednako jednostavan za sve tipove programiranja - a kako je to nemoguće - ponekad i nije jednostavan.

Nodakim
12-09-2009, 22:09
A što se točno misli pod nauči taj jezik?

Luka
12-09-2009, 22:18
Usvojiti pravila, znati pročitati što piše.

Moja omiljena fora je tjerati ljude da skuže što znači "cout << "blabla"" (objekt klase... blabla... preopterećen... bitovnim pomak... blabla :D)...

Za taj dio služe knjige poput Analize i Demistificiranog. Jednom kad skužiš, bit će prilično logično, lako ćeš pamtiti...

Ali s time si naučio jezik, ne programirati... programiranje je teže od toga.

Nodakim
12-09-2009, 22:29
A što znači programirati?
I koliko je teško znati neki jezik?(točnije sada C++?)
Da li bih rađe trebao prvo se naučiti na Pascalu pa ići na C++?(makar rađe ne bih,jer bum to morao tak i tak,a čini mi se totalno nezanimljiv i ograničen)
Koliko se toga ima za naučiti?
Šta ono DirectX u C++ znači?

Luka
12-09-2009, 22:41
A što znači programirati?

Pisati programe. Potreban je određen stupanj znanja o "organiziranosti koda", i općenitim (ne)pisanim pravilima po kojima se pišu programi.

Dolazi iskustvom dobrim dijelom.


I koliko je teško znati neki jezik?(točnije sada C++?)

Trebalo bi mi nešto za usporedbu. Rekao bih da je naučiti sintaksu i semantiku C++a jednako teško kao matematika srednje škole, 1.+2.razred (gimnazije :D).

To je moja subjektivna procjena, možda je lakše od polugodišta, možda teže od svih razreda... to sam više napamet rekao nego s nekom osnovom.


Da li bih rađe trebao prvo se naučiti na Pascalu pa ići na C++?

Ideja je odlična, da naučiš nešto prije C++a. Ali bilo bi dobro da je to nešto i korisno... Pascal je jezik s puno besmislenih pravila i ružne sintakse. Ok, sad sam subjektivan, ali što se može :D

Preporučam BASIC, daje sjajan uvid u to kako bi programiranje moglo izgledati (iako je dovoljno daleko od "hardkor" C++a) :D

U svakom slučaju, izbjegavaj Pascal. U današnje vrijeme je nepotreban. Ako želiš jednostavno - Basic. Low-level - C/C++ High-level - C#/Java/Python Kombinirati sve i svašta - C++ (ima naravno još jezika, ovo su samo primjeri)


Koliko se toga ima za naučiti?


Ovo mi je još teže za odgovoriti od težine... Demistificirani broji 700 stranica, ali to nije nekakav uvid u količinu (npr. ponekad primjeri zauzmu više stranica, ima puno opisa koji su u kasnijem pregledu "gradiva" nepotrebni jer ćeš shvaćati neke pojmove).

Vjerojatno je jedini način da saznaš - da probaš.



Šta ono DirectX u C++ znači?

DirectX je API za brži pristup hardveru. Shortcut za bolje performanse, ukratko.


P.S. mislim da bi svaki programer trebao poznavati barem osnove C++a ali neću te zavaravati - C++ je doista teško za naučiti. Posebno zato što ga moraš sam učiti. Čak i u školama gdje se uči, rade se samo osnove.

Nodakim
12-09-2009, 22:47
Shvaćam ovo zadnje,zato i pitam ovakva "FAQ" pitanja jer stvarno nemam pojma gdje,što,kada,zašto,kaj...
Vidiš primarno ne shvaćam s čime bih trebao početi ućiti,evo trenutačno gledam neke tutoriale na youtubeu za kalkulator,quizeve i gluposti.
Sada ja to mogu učiti napamet,ali nema previše smisla jel?
Znači ja bih trebao tu "logiku" shvatiti?(naravno dodatni problem je što ne kužim što sve spada pod tu logiku?,pretpostavljam nekakve osnove tipa što znači #include <iostream> ili za što služi -"- .

edit.
Uz to sve što sam vidio je nešto o Syntaxama i čemu sve ne,ali vidiš ja sam tek sada skužio što znači Sytnaxa u teoriji.



Sorry što pitam glupa pitanja,ali ne mogu si drukčije pomoći nego ovako.

Luka
12-09-2009, 23:08
S
Sada ja to mogu učiti napamet,ali nema previše smisla jel?
Znači ja bih trebao tu "logiku" shvatiti?(naravno dodatni problem je što ne kužim što sve spada pod tu logiku?,pretpostavljam nekakve osnove tipa što znači #include <iostream> ili za što služi -"- .

edit.
Uz to sve što sam vidio je nešto o Syntaxama i čemu sve ne,ali vidiš ja sam tek sada skužio što znači Sytnaxa u teoriji.



Sorry što pitam glupa pitanja,ali ne mogu si drukčije pomoći nego ovako.

Nema glupih pitanja =)

Da, trebao bi shvatiti logiku, ali ne tako složenu kao što od sebe već sada očekuješ :D.

Čemu služi "#include" te ne treba zabrinjavati još jako dugo, to je potpuno nepotrebno za nekoga tko se tek upoznaje s jezikom (pa čak i nekoga tko već zna ponešto a još ući). Previše je takvih "sitnica" da bi se odmah zamarao njima.

Sintaksa je potpuno bespotreban pojam. Ne općenito naravno, nego za tebe u ovom trenutku. Nemoj se uopće opterečivati njime.


Moj prijedlog je da kreneš s Basicom. Ne zamaraj se odmah tipovima, sintaksama i sl. stvarima... jednostavno igraj se s njime. Nije bitno što ne možeš napraviti neznam što, bitno je da se zabaviš.
Kasnije, kad budeš bio spreman, kreni na C++. Pojmove kao što je sintaksa ostavi za sam kraj - bio bi overkill tako nešto odmah učiti.


edit: Ajme, koliko pogrešaka Č/Ć. Neda mi se ispravljat :D

Nodakim
12-09-2009, 23:49
Oke,thx. :D


Sada :


#include <iostream>

using namespace std;

int main()
{
int thisisanumber;

cout<<"Please enter a number: ";
cin>> thisisanumber;
cin.ignore();
cout<<"You entered: "<< thisisanumber <<"\n";
cin.get();
}


Igram se sa ovim i zanima me kako da umjesto brojeva budu slova?
Dobim eror kada upišem slovo i zatvori se brzo program,pod prvo uopće ne shvaćam što određuje da radi ako se upisuje broj,i zašto ne radi ako se upisuje slovo.

I što je variabl?(pretpostavljam da je ovdje broj?)

Luka
13-09-2009, 09:52
Eh, zbog takvih stvari je bolje s Basicom krenuti.

Varijabla je dio memorije koji drži nekakav podatak. U programskom jeziku određena je imenom i tipom (int broj), hardverski je određena početnom adresom u memoriji i duljinom (0x123456, 4 bajta).

Varijable stvaraš kako bi mogao nešto pohraniti u njih, i kasnije čitati iz toga. U tvom primjeru, potrebna ti je varijabla da negdje pohraniš ono što korisnik upiše (jer kasnije želiš ispisati tu vrijednost).

U tvojem primjeru, varijabla je int tipa. int = integer = cijeli broj. Za slova se koristi tip char.

Btw, ako ideš na C++, obavezno nabavi knjigu (ne ebook, pravu). Analiza/Demistificirani (najbolje obje). Nemoj učiti preko tutoriala, jer preskaću previše bitnoga. Osim toga nemaš ih volje čitati dok gledaš u monitor, pravu knjigu možeš čitati kad god poželiš.

Mihael
14-09-2009, 16:08
@Nodakim Može jedan savjet?
Zašto ne počneš programirati u pythonu? Jezik je visoke razine (čitaj: lakše je razumljiv čovjeku),
Ja kad sam počeo programirati svi su mi govorili c++, c++, c++, c++.... i ja sam pokušao... došao do funkcija i odustao...
tada sam htio početi s C#... naravno poslje hello world... povjest se ponovila.... tada sam uzeo python u ruke i počeo programirati! Ima sličnu sintaksu kao qbasic, i ne nijeSograničen u smislu da se sad s njim mogu raditi samo text-based programi, moguće je raditi i igre u njemu korištenjem adekvatnog API-ja [pygame za 2d i pyglet za 3d]

od poznatjih naslova tu je Frets on Fire

Python je po meni jedan vrlo jednostavan jezik i preporučam ga svakom početniku! [niti ja nisam daleko od tog :) ]

Sretno s programiranjem!

DragonSoul
14-09-2009, 19:37
Šta si hito reći s tim da u C++/C#u ne možeš radit GUI/grafičke aplikacije, ili sam ja tu nešto loše pokopčao?
Ugl, Python je možda dobar za početnike, i je nadogradiv, al ne znam koliko je pametno direktno rushati na tako "velik cilj". Bolje se pokopčati osnove, kako što radi, što to računalo radi s našim kodom, i tako, malo vidjeti što se togađa ispod haube. Onda, kad se to savlada, onda se bez problema može koristiti bilo što.
Btw, od malo više poznatijih igara pisanih u Pythonu, to su EVE Online i Civ4 :wink:

Mihael
11-10-2009, 17:45
sryte dugo me nije bilo ;)

ne nego kažem da python nije ograničen na consolu