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;
}