Varijable i konstante u Dev C++                                                                   
            Uradimo dva početna prmjera.

1. Napiši i kompajliraj u DevC++ program:

#include <iostream>

using namespace std;

int main (){

cout << "Hello World! ";

cout << "I'm a C++ program!"<<endl;

cout<< “Do you like me?”;

system("Pause");

return 0;

}

 

2. Napiši i kompajliraj u DevC++ program:

#include <iostream>

using namespace std;

int main(){

cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";

cin.get();

return 1;

}

 

Programi “Hello World” koje smo  upoznali  ispisuju neke poruke na ekranu. Mora se priznati da ovakvi programi i nisu nešto naročito korisni, a morali smo puno toga naučiti i napisati, da bi ispisali nekoliko riječi na ekranu. Dobra vijest je da programiranje nije ograničeno samo na ispisivanje teksta, ali da bi išli korak dalje moramo uvesti koncept varijable. Recimo da vam je neko rekao da zapamtite broj 5,

i da vam je također rekao da zapamtite broj 2. Na taj način vi ste spremili dvije različite vrijednosti u vašoj memoriji. Kada bi vam sad neko rekao da uvećate prvi broj za 1, onda bi u memoriji imali dva broja: 6 i 2. Kada bi vas pitao kolika je razlika ta dva broja, vi bi odmah, kao pravi matematičari, odgovorili 4. Cijeli ovaj proces je izvediv i sa računarima, a u C++ to bi radio ovaj kod:

 

   a=5;

   b=2;

   a=a+1;

   razlika=a-b;

 

Ovo je vrlo jednostavan primjer sa dvije male cjelobrojne vrijednosti. Računar na sličan način može pamtiti milione brojeva, te na njima obavljati jako složene matematičke operacije. Zbog toga se i definišu varijable, i to kao dio memorije računara u koji se može spremiti određena vrijednost.

Kako bi bili u stanju razlikovati varijable, njima se moraju dati imena. Kod davanja imena varijablama moramo voditi računa o pravilima koja vrijede za sve identifikatore. Koja su to pravila? Pored tih pravila moramo voditi računa da ne damo varijabli ime koje je isto kao neka ključna riječ unutar C++ jezika ili kao neka rezervisana riječ koja može biti vezana i za vaš kompajler. Prilikom programiranja, varijable spremamo u memoriju računara , ali kompjuter mora unaprijed znati kakve podatke ćemo spremiti u njih. Razlog je jednostavan, naime nije isto spremiti jedno slovo i veliki broj, jer zauzimaju različitu količinu memorije. Pored toga računar drukčije i tumači ove podatke. Znamo da je memorija u računarima organizirana u bajtima, i to je minimalna količina memorije kojom možemo raditi u C++. U bajtu možemo spremiti relativno malen podatak, kao npr. jedno slovo ili cijele brojeve u intervalu od 0 do 255. Kompjuter, naravno može raditi sa složenijim tipovima podataka, koji zahtijevaju više bajta.

Da bi varijablu mogli koristiti moramo je prije toga deklarirati, precizirajući koji tip podataka želimo u nju spremati.

 

 Evo kako to izgleda:

int a;                     // deklaracija cjelobrojne varijable a

float moj_broj;    // deklaracija realne varijable moj_broj

int b,c,d;              // deklaracija 3 cjelobrojne var. b,c i d

unsigned short int mali_pozitivni_cijeli_broj;

 

Dakle deklaracija se vrši tako što preciziramo koji tip želimo(uz pomoć neke ključne riječi), a onda slijedi ime jedne ili više varijabli.

Cjelobrojni tipovi char, int, ... mogu biti pozitivni ili i pozitivni i negativni. Ako u neku varijablu cjelobrojnog tipa želimo spremati samo pozitivne vrijednosti onda je treba prethoditi sa ključnom riječi unsigned. Postoji i ključna riječ signed, ali se ona podrazumjeva, pa je signed int x  i  int x  jedno te isto.

Izuzetak ovom pravilu je znakovni tip char, koji je prvenstveno namjenjen za spremanje znakova. Ako ga želite koristiti kao cjelobrojni tip onda ga trebate prethoditi sa signed ili unsigned, ovisno o vašim potrebama.

Evo kako bi programi sa varijablama izgledali:

// rad sa varijablama

#include <iostream>

using namespace std;

int main (){

// deklariranje varijabli:

int a, b;

int razlika;

// dodjela vrijednosti i racunanje:

a = 5;

b = 2;

a = a + 1;

razlika = a - b;

cout << razlika;

system("Pause");

return 0;

}

 

/* inicijalizacija varijabli je kada varijablama odmah postavimo neku vrijednost */

#include <iostream>

using namespace std;

int main (){

// inicijalizacija varijabli:

int a=5; //prvi nacin

int b(2); //drugi nacin

int razlika;

// dodjela vrijednosti:

a = a + 1;

razlika = a - b;

cout << razlika;

system("Pause");

return 0;

}

 

Važno:Ako varijablama ne dodijelite neku vrijednost, one će ipak imati neku slučajnu vrijednost ili neku koju im kompajler automatski dodjeljuje na osnovu tipa varijable, pa će se vaš program ponašati jako čudno. Komentirajte linije a=5 i b=2 i vidjećete da se program raditi drukčije. Uvijek sami dodijelite vrijednosti varijablama vašeg programa, i nikad se ne oslanjajte na kompajler.

Varijable koje spremaju podatke koje nisu brojevni a duže su od jednog znaka nazivaju se stringovi. C++ nas snabdijeva sa bibliotekom koja nam daje podršku za rad sa stringovima. Ovo nije osnovni tip podataka, ali se prilikom rada sa njim ponaša na sličan način kao osnovni tip. Prva razlika po kojoj se vidi da string nije osnovni tip podataka je to da morate uključiti datoteku:<string> te imati pristup prostoru sa

imenima std(iako smo to i ranije uvijek uključivali).

 

// moj prvi string

#include <iostream>

#include <string>//morate ukljuciti datoteku string

using namespace std;

int main ()

{

string moj_string = "Ovo je string";

string drugi_string;

cout << moj_string<<endl;

drugi_string="I ja sam string";

cout<<drugi_string;

system("Pause");

return 0;

}

 

EKRAN:

Ovo je string

I ja sam string

 

 

Pored varijabli u C++ postoje i konstante. Konstante se koriste da se unutar programa izraze određene vrijednosti. Mi smo njih već koristili iako toga nismo bili svjesni. U izjavi a=5; broj 5 je cjelobrojna konstanta. Dakle konstante se mogu podijeliti na cjelobrojne(int), realne(float), znakovne(char), stringovne(string) i logičke(bool).

 

     Cjelobrojne   konstante 

1776

broj 1776

  -301

broj -301

 

       Znakovne    konstante

  'z'

znak z

  '?'

znak y

  '5'

znak 5

 

 

           Logičke  konstante

  true          

  false              

jedine dvije logičke

konstante

 

 

             Rrealne konstante

  3.14159

broj 3,14159

  6.02e23

broj 6,02·1023

  1.6e-19

broj 1,6·1019

  3.0

broj 3,0

 

              Stringovne konstante

“Hello World”

“I ja sam string

ranije korištene

stringovne

konstante

 

 

      Posebne znakovne konstante:

\n

\t

\'

\”

\\

nova linija

tab

jednostruki navod

dvostruki navod

kosa crta \

 

 

 

Evo primjera programa gdje se putem znaka '\n' kursor prebacuje na novu liniju i gdje se putem \” štampaju znaci navoda. Šta bi se desilo da u našem programu ispred znaka navoda nema \?

 

#include <iostream>

#include <string>

using namespace std;

int main ()

{

string moj_string = "Ovo je string\n";

string drugi_string;

cout << moj_string;

drugi_string="\"I ja sam string\"";

cout<<drugi_string;

system("Pause");

return 0;

}

 

EKRAN:

Ovo je string

“I ja sam string”

 

Pored ovih konstanti postoje i deklarirane konstante, sa kojima radimo isto kao i sa varijablama, a jedina je razlika u tome što koristimo ključnu riječ const. Evo nekoliko primjera:

 

const int BROJ = 100;

const char ZNAK='\n'

 

Nakon ovoga možemo bilo gdje u našem programu koristiti BROJ i ZNAK kao obične varijable, ali im ne možemo promijeniti vrijednost! Konstante se obično pišu velikim slovima, iako to kompajler ne zahtijeva od nas. To je više “nepisano pravilo” u programerskoj zajednici...

 

1. Šta bi odštampao ovaj program?

#include <iostream>

using namespace std;

int main (){

char a,b,c;

a='b';

b='c';

c=a;

cout<<a<<b<<c<<'c';

system("Pause");

return 0;

}

 

2. Šta bi odštampao ovaj program?

#include <iostream>

using namespace std;

int main ()

{

bool x;

x=false;

cout<<x;

system("Pause");

return 0;

}

Make a free website with Yola