Zippo ned 31.5.2009 09:05

Pozdrav Bugovci.

 

Odlučio sam se naučiti programirati(malo entuzijastično,ali šta ću Smijeh)

 

I sad sam našo jedan tutorial gdje mi govore šta koji znak znači i sve to i prvi dio sam više-manje pohvato,ali problem je nasto kod jedne stvari:

U koji ja to program upisujem taj kod????

 

// my first program in C++

#include <iostream>
using namespace std;

int main ()
{
cout << "Hello World!";
return 0;
}
U koji to program upišem i šta radim s tim????


Zippo ned 31.5.2009 09:20
xxxxx kaže...

Skini Code::Blocks, on ti ta to služi.

 

I onda ga kompajliraš, skužit ćeš sve...

 Hvala na pomoći.
Zanima me jedna stvar kod identifyera - jel vi pamtite reserved keywords ili imate negdje zapisano???
ili koristite nešto što sigurno nije reserved??
PC Street Hacker ned 31.5.2009 10:30
Bukva kaže...

Skini DevC++.

 

Po meni najbolji IDE (razvojno okruženje - drugim rječima dobiješ sve što ti je potrebno da se upustiš u programiranje) za početnike.

Jednostavno, učinkovito, jasno, maleno i besplatno.

 S njim se i ja koristim i kad kampajliraš u njemu stistenš F9
Sused ned 31.5.2009 10:35
Zippo kaže...
xxxxx kaže...

Skini Code::Blocks, on ti ta to služi.

 

I onda ga kompajliraš, skužit ćeš sve...

  Hvala na pomoći.
Zanima me jedna stvar kod identifyera - jel vi pamtite reserved keywords ili imate negdje zapisano???
ili koristite nešto što sigurno nije reserved??
  Iskustvom već skužiš šta možeš koristit, šta ne možeš... Niti ih pamtimo sve niti ih imamo negdje zapisano... Al uglavnom, sva mala slova slobodno koristiš (a, b, c, d) za nazive varijabli... Njih uglavnom ja koristim gotovo uvijek, ako nemam 10+ varijabli u kodu... i i j su mi uvijek brojači u petlji, no to je sve stvar navike...
Bukva ned 31.5.2009 10:37

PC Street Hacker kaže...
 S njim se i ja koristim i kad kampajliraš u njemu stistenš F9
 F9 je zapravo compile & run.
Drugim rječima, prvo kopajlaš program, spremiš ga negdi na lokalnom disku i onda ga pokreneš.
Kompajlanje != pokretanje programa. Osmijeh
Sused kaže...
Al uglavnom, sva mala slova slobodno koristiš (a, b, c, d) za nazive varijabli... Njih uglavnom ja koristim gotovo uvijek, ako nemam 10+ varijabli u kodu... i i j su mi uvijek brojači u petlji, no to je sve stvar navike...
Ne, ne, ne i ne...
Ovo je preuzeto iz doba Pascala što danas nije baš pametno.
Ako trebaš brojač, bolje napisi brojac = 0 nego i = 0.
Zašto? Svrha programa nije samo da se pokrene .exe, ok radi, doviđenja. Source code mora biti lako shvatljiv i čitljiv i drugim ljudima.
Ti možeš napisati vrhunski program, ali ako je potpuno nečitljiv source code, nisi napravio nikakav posao.Još je ok slova koristiti u programima s 10 ili 50 linija koda. Ali shvati ti što je što kad dobiješ 10 000 linija koda ispred sebe a sve nešto i, j, a, b, c, d... Pa ni dragi bog ne bi skužio takav program.
Inače, u C++ možeš koristiti i velika slova u imenu varijabli.

Bleb22 ned 31.5.2009 10:48

Keywordse pamtis (nije tesko posto ces ih vecinu jako cesto koristiti: void, int, for, if, then, else, return...).

 

Onaj kod jednostavno zapises u neki tekst file kojeg nazoves npr. proba.cpp (ekstenzija cpp stoji za c++), pa ga zatim kompajlerom pretvoris u izvrsni kod (proba.exe).

 

Tesko je naci neki kompajler "za pocetnike" posto je C++ jezik idealan za najiskusnije programere.

 

Cuo sam da je DevCpp dobar -- to je u osnovi malo napredniji notepad prilagođen za C++, koji dolazi sa kompajlerom mingw ili gcc-om (ako radis pod linuxom, ne trebas nista jer vec imas gpp).

Dakle da ne bi prvo u notepadu tipkao kod pa zatim u command promptu lupao "gpp proba.cpp -o proba.exe" svaki put kad ga zelis isprobati, ovaj alat vec ima gumbe "compile", "run" a i sposoban je obojati kljucne rijeci drugom bojom, da ih razlikujes od identifikatora (kao i svaki drugi editor koda danas, zapravo :).

Mozes ga preuzeti sa http://www.bloodshed.net/dev/devcpp.html, ne znam je li bolja beta petice ili cetvorka, ali obavezno uzmi i kompajler (mingw/gcc).

 

S druge strane, tu je Microsoft Visual Studio, u kojem samo trebas kliknuti "new c++ project, console application, empty project" tim redom i sve ti je pripremljeno... ali u tom alatu se pocetnicima lako izgubiti u moru opcija i podrzanih jezika... Express edition ima manje mogucnosti i opcija (to je dobro), a i besplatan je.

http://www.microsoft.com/Express/

Izgleda da ima gomila tutoriala, mozda ni ovo nije lose mjesto za pocetak.

 

S trece strane, ako ne planiras programirati bar 4 sata dnevno, razmisli o C#-u, Javi ili nekom drugom jeziku u kojem nece biti tako lako raditi bugove.

 

itf4n ned 31.5.2009 12:12

Bukva kaže...
Zašto? Svrha programa nije samo da se pokrene .exe, ok radi, doviđenja. Source code mora biti lako shvatljiv i čitljiv i drugim ljudima.
Ti možeš napisati vrhunski program, ali ako je potpuno nečitljiv source code, nisi napravio nikakav posao.Još je ok slova koristiti u programima s 10 ili 50 linija koda. Ali shvati ti što je što kad dobiješ 10 000 linija koda ispred sebe a sve nešto i, j, a, b, c, d... Pa ni dragi bog ne bi skužio takav program.
Inače, u C++ možeš koristiti i velika slova u imenu varijabli.
 
Slažem se, ali zašto "brojac"? Mislim, zna se za što služi for petlja i varijabla u njoj (osim u nekim perverznim slučajevima), pa zašto to naglašavati? Jednostavnije je napisati i, j, k itd.

Private ned 31.5.2009 13:07

Bitno je samo dati smislena imena varijabli da se ne izgubiš prvo ti pa onda i onaj koji čita kod.
Nema nekih veeelikih pravili oko imenovanja ali možeš naći na net-u kako je najbolje pisati razumljiv kod(ima par notacija).
i u for petlji je uobičajen jer recimo skarćanica je od iterator (brojac)..a ime brojac možeš koristiti za druga imenovanja i tako..
Samo nekom logikom dodji sam do imenovanja...u C++ i mala i velika slova imaju važnost pri imenovanju.
Možeš i _mojBroj ili mojbroj ili MojBroj  itd i itd;

 

Bukva ned 31.5.2009 13:36
DhulKarnain kaže...

nemojte samo zbunjivat covjeka i tu pokretat rasprave kakva imena davati varijablama.

 Zapravo, najlakše je nekoga usmjeriti kada još ne zna ništa.
Ja sam jedno nekih 4-5 mjeseci glavom lupao u zid baš zbog imenovanja varijabli. Prvi jezik mi je bio QB, a bio sam upoznat i sa Pascalom i Logom. Bio sam naučen na a,b,c,d,i,j,k i slično. Prelaz na ime, prezime, razred, ocjena, brojac, petlja, izbornik i što ja sve ne znam nije bio uopće lagan, iako je ovo potpuno banalna stvar.
Po meni, prije nego se uopće napiše linija koda, novog programera bi trebalo drilati s - debuggerom, komentarima, imenovanjem i top-down.
Negdi sam pročitao vrhunsku stvar... Išla je nekako ovako - "Svatko zna napisati program koji računala razumiju, ali samo vrhunski programeri znaju napisati program koji i drugi ljudi razumiju."
Zippo ned 31.5.2009 14:20

Evo znam da je problem ekstremno početnički,al šta ću kad i jesam početnik....

 

Gdje da ja sad upisujem kod???(Vidi sliku prozora)

 

EDIT:Značenje ove poruke: "Base - Debug" uses an invalid compiler. Skipping...

Zippo ned 31.5.2009 14:29
itf4n kaže...

File -> New -> Empty file

 

Onda pišeš u veliki prozor koji se otvori.

 

Za pokrenuti napisano pritisni F9.

 I kad stisnem F9 pojavi se ova poruka:
"Base - Debug" uses an invalid compiler. Skipping...
Nothing to be done.
itf4n ned 31.5.2009 14:53
Zippo kaže...
itf4n kaže...

File -> New -> Empty file

 

Onda pišeš u veliki prozor koji se otvori.

 

Za pokrenuti napisano pritisni F9.

 I kad stisnem F9 pojavi se ova poruka:
"Base - Debug" uses an invalid compiler. Skipping...
Nothing to be done.
 Valjda si skinuo verziju bez kompajlera. Ovu skini: http://downloads.sourceforge.net/codeblocks/codeblocks-8.02mingw-setup.exe
Zippo ned 31.5.2009 15:19

Imam još jedan problem( ko bi reko Osmijeh)

 

Dakle - imam sljedeći kod:

#include <iostream>
using namespace std;
int main () {
    int a;
    cout << "Upisi neki cijeli broj: ";
    cin >> a;
    cout << "Upisani broj je ";
    if (a==0) {
        cout << "nula.";
    } else if (a>0) {
        cout << "pozitivan.";
    } else {
        cout << "negativan.";
    }
    return 0;
}
i kad se otvori program ja upišem broj,stisnem enter i prozor se zatvori.

Any exsplanations?

 

Evo .exe datoteka pa pogledajte sami:

Link

Private ned 31.5.2009 15:23

Za početak ovako na brzinu prije return 0 ; ako koristiš Dev upiši system("pause");

 

 

 #include <iostream>
using namespace std;
int main () {
    int a;
    cout << "Upisi neki cijeli broj: ";
    cin >> a;
    cout << "Upisani broj je ";
    if (a==0) {
        cout << "nula.";
    } else if (a>0) {
        cout << "pozitivan.";
    } else {
        cout << "negativan.";
    }
    
    
    
    
    system("PAUSE");
    return 0;
}

Evo ovako kao gore.

 

A možeš i ovako:

 

 #include <iostream>
using namespace std;
int main () {
    int a;
    char b;
    cout << "Upisi neki cijeli broj: ";
    cin >> a;
    cout << "Upisani broj je ";
    if (a==0) {
        cout << "nula.";
    } else if (a>0) {
        cout << "pozitivan.";
    } else {
        cout << "negativan.";
    }
    
    
    cin>>a;
    
   
    return 0;
}

 

 

 

 

 

Private ned 31.5.2009 15:31

Ako se radi o winsima to je istina....koristi se system .Jednostavno izvršavanje programa se mora zaustaviti dok ne pritisneš neku tipku.Ako
se to ne napravi program završi a da ti to i ne vidiš.Ugrubo objašnjeno.

Zippo ned 31.5.2009 17:57

Odvažio sam se na pothvat kreiranja prvog vlastitog programa,ali je doslo do greske u kompajliranju:

Molio bih da potrazite greske u kodu(inače program je namjenjen da zbraja vrijednosti a i b

 

# include <iostream>

using namespace std;

int main ()
{
    int a//ovdije mi izbaci gresku(u ovoj liniji)
    int b
    int c
    (a+b==c)//ovo sam napiso na pogadjanje pa me zanima jeli tocno
    cout << "Unesite broj:" ;
    cin >> a ; 
    cout << "Unesite broj koji zelite zbrojiti s prethodno unesenim brojem:" ;
    cin >> b ;
    cout << "Zbroj je: " << c:
         sytem ("PAUSE");
         return 0
         }

   

Bukva ned 31.5.2009 18:16

 

int a;

 

Znakom ; ti kažem "Ok, ovdje je kraj ove naredbe, nema više!"

 

Gore tvoj kod, zapravo govori ovo

 

int a int b int c (a+b==c)

 

Jedna od specifičnosti C++u je da ti možeš cijeli program napisati u jednom retku. Naravno to se ne radi zbog preglednosti. Znakovima ; ti zapravo zaključavaš naredbu. Nešto kao točka u "ljudskom" jeziku.

 

Nadalje, c = a + b

Dvostruka jednakost provjerava da li je nešto jednako, dok jedan = pridružuje određenu vrijednost određenoj varijabli.

Tako recimo a + b == c gdje je, recimo, a= 3, b = 4, a c = 7, vratio logičku jedinicu. Zašto? Jer je to istinito. Npr.

 

while (a + b == c){

cout<<"Ovo se izvršava sve dokle je a+b= 7"<<endl;

}

Međutim, pri zbrajanju, mi zapravo želimo pridružiti vrijednost zbroja dviju varijabli trejćoj dakle, c = a + b. Ono što mi kažemo računalo jest - uzmi varijablu c, i upiši vrijednost koju si dobijo zbrajanjem varijabli a i b.

Zašto a+b=c nije u redu. Zbog l-pravila. Zamisli ovako - prvo moraš reći računalu kuda da nešto spremi, a onda što da spremi. Kod tebe zbroji dva broja, ali ne zna kuda s njim (procesor ne može pamtiti, već samo memorija -> a+b= c, procesor zbroji, ali ne zna kuda s brojem; c=a+b ->memorija kaže stavi simo broj, procesor zbroji i za kuda s brojem).

Ovo šta sam sada napisao je najveća moguća glupost, ali samo da ti dočaram pogrešku (da se sada ne javljaju majsori, pa ne pišu - lololololol n00b).

 

Private ned 31.5.2009 18:17

 

 

 

Dobro prouči ovaj kod i shvati gdej si pogriješio(gore je vec netko objasnio):

 

# include <iostream>

using namespace std;

int main ()
{
    int a;//ovdije mi izbaci gresku(u ovoj liniji)nisi stavio ; jer to je obvezno u C++
    int b;//kao i ovdje u tvom kodu
    int c;
    //ovo sam napiso na pogadjanje pa me zanima jeli tocno
    cout << "Unesite broj:\t" ;
    cin >> a ;
    cout << "Unesite broj koji zelite zbrojiti s prethodno unesenim brojem:\t" ;
    cin >> b ;
    c=a+b;  //radi se o zbrajanju a ne o == znaku ispitivanja da li je nešto jednako ,i kad
//uneses brojeve tad ide i zbroj..moras shvatiti inicijalizaciju od deklaracije proucirazliku!!)

    cout << "Zbroj je: " << c<<endl;//endl -skok u novi red
         system ("PAUSE");
         return 0;
         }

 

Kod ti je tvoj pun osnovnih grešaka pro pisanju i shvaćanja razlike deklaracije i inicijallizacije ...moraš to prvo dobro svaladati.