You are on page 1of 16

OSNOVE PROGRAMSKOG JEZIKA C++

DURMI NERMINA, BSc - ing.el.

OSNOVE PROGRAMSKOG JEZIKA C++

Skripta je namijenjena za dodatnu nastavu iz oblasti programiranja u srednjoj koli Sarajevo College. Dodatak ovoj skripti su programi koji su posebno naznaeni u istoj.

OSNOVE PROGRAMSKOG JEZIKA C++

POGLAVLJE 1

Razumijevanje programiranja Osnovni Input/Output Operatori Varijable ASCII kodovi Koritenje datoteka

RAZUMIJEVANJE PROGRAMIRANJA

Programiranje je navoenje komjutera da odradi zadatak koji elimo uz pomo programskog jezika. Svaki program prije nego se napie treba da ima zamiljeno korak po korak rjeenje. Ovo korak po korak rjeenje se naziva algoritam. Program napisan bilo kojim programskim jezikom sadri sekvence instrukcija. Obino se sastroji od 3 dijela: 1. Input u ovom dijelu se unose podaci sa ureaja za unoenje (tastatura, tekstovni fajl i sl.) 2. Procesiranje (Obrada) dio programa kojeg je najtee odraditi. Obrauje ulazne podatke i nalazi rezultate. 3. Output daje konano rjeenje programa (na ekranu ili u tekstovnom fajlu).

PRVI C++ PROGRAM

Ovaj program e da ispie reenicu Hello World! na ekranu. Program 1.1.

C++ programi se sastoji od jednog ili vie modula. Svaki modul izvodi odreeni zadatak. Ovi moduli se zovu funkcije. Hello World! program ima samo jedan modul
3

OSNOVE PROGRAMSKOG JEZIKA C++

glavnu funkciju. Bilo koji c++ program se poinje izvravati od glavne funkcije, to znai da svaki program mora imati ovu funkciju. Prije funkcije, program mora da sadri include i using namespace dio. Ovi dijelovi deklariu biblioteke u kojima su definisane c++ komande koji emo koristiti u zavisnosti od potreba programa. Svaka c++ linija koda zavrava sa dvotakom (';'). Pored linija koda, program moe da sadri i komentare. U programskom jeziku c++ postoje dva naina za pisanje komentara: 1. Komentar u jednoj liniji pie se iza duple kose linije ('//') 2. Komentar u vie linija pie se izmeu znakova ('/*') i ('*/') Kompajler komentare ignorie.

RASTAVLJANJE TEKSTA U VIE LINIJA

Za ovu namjenu koriste se oznake: endl oznaava kraj linije prilikom prikazivanja rezultata korisniku, sljedea linija e biti ispisana u novom redu. n/ oznaava novu liniju

Koritenje oznake n/ se izbjegava u c++ programskom jeziku, preferira se oznaka endl. Program 1.2.

OSNOVNA ARITMETIKA

Bilo ta to se nalazi pod navodnicima ( ) u cout statementu se ne podrazumijeva ulaznim podacima, izvrni dio programa ne obraa panju na to ta se nalazi pod navodnicima, nego samo prilikom izvravanja programa korisniku na raunaru

OSNOVE PROGRAMSKOG JEZIKA C++

prikazuje ono to se u programu nalazi pod navodnicima. Program 1.3.

INPUT DOBIJANJE ULAZNIH PODATAKA OD KORISNIKA

cin statement se koristi za omoguavanje unosa podataka sa tastature ili iz tekstualnog fajla. U sljedeem programu je potrebno unijeti dvije cjelobrojne vrijednosti, izraunati njihovu sumu i prikazati rezultat. Program 1.4.

OSNOVNE C++ VARIJABLE

Varijabla je memorijski prostor u koji se privremeno pohranjuje vrijednost koju korisnik unese prilikom izvravanja programa. Vrijednost jedne varijable moe da se mijenja u skladu sa programom. Ova privremeno memorijsko pohranjivanje se koristi samo prilikom izvravanja programa. Sljdea tabela prikazuje osnovne c++ varijable.

Type Integer variables Unsignet short int Short int Unsigned int int Unsigned long int Long int Long long int Float Double Bool char

Size in Bytes 2 2 4 4 4 4 8 4 8 1 1

Values 0 do 65,535 -32,768 do 32,767 0 do 4,294,967,295 -2,147,483,648 do 2,147,483,647 0 do 4,294,967,295 -2,147,483,648 do 2,147,483,647 9.223.372.036.854 do 9.223.372.036.853 1.2e-38 do 3.4e38 2.2e-308 do 1.8e308 true ili false 256 character vrijednosti

Floating-point variables Logical variable Character variable

OSNOVE PROGRAMSKOG JEZIKA C++

Integer varijable pohranjuju cjelobrojne vrijednosti (-4, 3, 51, ...) Za razliku od ostalih unsigned integer varijable ne mogu pohranjivati negativne vrijednosti. Floating point varijable pohranjuju decimalne vrijednosti (3.5, -5.123, 4.0, ...) Logike varijable pohranjuju rezultat logikog izraza i imaju samo vrijednosti true i false. False se reprezentuje sa 0, a true sa 1 (najee) ili nekom drugom pozitivnom vrijednou. Logiki izrazi se obino koriste prilikom pisanja koda za neku odluku i ponavljane strukture da bi se kontrolisao tok programa. Character varijable se koriste za pohranjivanje karaktera (slova, brojevi, punctuatuion, ...). Karakteri se piu unutar jednostrukih navodnika ('a', 'B', '7', '+', ...)

Veliina varijabli moe biti razliita od onih koje su prikazane u tabeli, u zavisnosti od kompajlera i raunara na kojem se program izvrava. Za mjerenje veliine vrsta varijabli se koristi operator sizeof(). Ovaj operator vraa broj bita varijable. VARIJABLE UVIJEK PALJIVO IMENOVATI I RAZLIKOVATI !!! Program 1.5.

ARITMETIKI OPERATORI

Operacija Sabiranje Oduzimanje Mnoenje Dijeljenje Modul

Operator + * / %

Primjer 5+4=9 5 4 = 1 i 4 5 = -1 5 * 4 = 20 15 / 3 = 5 i 12 / 5 = 2 12 % 5 = 2, 15 % 3 = 0 i 3 % 5 = 3

Najprije se izvraavaju zagrade, potom operacije mnoenja, dijeljenja i ostatka. Operacije sabiranja i oduzimanja se izvravaju zadnje. Operacije sa istom jainom se izvravaju redom s lijeva na desno. Program 1.6. Excercise: Rectangle Excercise: Circle Excercise: 1 or 0
6

OSNOVE PROGRAMSKOG JEZIKA C++

Poput varijabli, i konstante su lokacije za pohranjivanje podatala. Za razliku od varijabli, konstante se ne mijenjaju. Konstanta se inicijalizira kada se kreira i ne moe se naknadno promijeniti njena vrijednost. Veina esto koritenih konstanti je ve definisana u c++. Ukoliko korisnik eli da kreira neku konstantnu vrijednost, postoje dva naina na koja to moe uiniti: a) Koristei kljunu rije define: #include <iostream> #define PI 3.14 . . b) Koristei kljunu rije const: . . Int main() const float PI = 3.14; .

ASCII KODOVI

U kompjuterskom sistemu postoje samo jedinice i nule. Dakle, raunari rade sa binarnim sistemom brojeva. Lahko je pretvoriti binarne brojeve u njihove ekvivalente u decimalnom sistemu brojeva koje koristimo u svakodnevnom ivotu, ali ta je sa karakterima, slovima, punktuacijama, i specijalnim karakterima? Kako njih moemo predstaviti raunaru? Tabele za enkodiranje karaktera se koriste da bi se karakteri predstavili pomou brojeva. ASCII je skraenica od American Standard Code for Information Interchange. Svako slovo, broj, i punktuacija ima odgovarajui broj ili ASCII kod. Na primjer, ASCII kod za broj 1 je 49, veliko slovo A ima ASCII kod 65, a razmak ima ASCII kod 32. Program 1.7. Excercise: ASCII Character
7

OSNOVE PROGRAMSKOG JEZIKA C++

ITANJE I PISANJE STRINGOVA

U programiranju, string je ureena serija karaktera. Stringovi se mogu posmatrati kao rijei i reenice. U programskom kodu oni se piu pod navodnicima, npr. Hello! ili Ja uim c++. U c++ programskom jeziku je omoguena klasa za koritenje stringove i obavljanje operacija nad njima. S string klasa je definisana u <string> biblioteci. Instance tipova varijabli se nazivaju varijable, dok se instance klasa zovu objekti. Operator '+' se kod stringova koristi za spajanje stringova i ne treba se mijeati sa aritmetikom operacijom sabiranja. Uoi razliku: 57 + 33 je 90 57 +33 je 5733 '+' kao operacija sabiranja '+' kao operator spajanja stringova

Sljedei primjer ita ime i prezime korisnika, a potom ispisuje Hello ime i prezimeporuku. Program 1.8.

INICIJALIZACIJA VARIJABLI

Varijablama se mogu dati poetne vrijednosti prilikom deklaracije. Sljedei program pokazuje kako se mogu deklarisati razliite vrste varijabli. Primijetite da se objekti strigova mogu inicijalizirati na dva razliita naina. Prilikom pisanja programa moete koristiti bilo koji od njih. Program 1.9.

OSNOVE PROGRAMSKOG JEZIKA C++

KORITENJE TEKSTUALNIH FAJLOVA KAO INPUTA I OUTPUTA

C++ obezbijeuje dvije funkcije pomou kojih je mogue itati iz tekstualnog fajla (datoteke) i pisati u tekstualni fajl. Te funkcije su ifstream() i ofstream(). Obe funkcije su deklarisane u <fstream> zaglavlju, koje je naravno potrebno ukljuiti na poetku programa. ifstream otvara postojei input fajl, dok ofstream kreira ili ponovno kreira i otvara output fajl. Operacije unosa i ispisa u i iz datoteka se izvode na isti nain kao i sa cini cout. ifstream() funkcija definira identifiera koji e da ita iz datoteke, i ime lokacije (putanje) tog fajla. Na isti nain, ofstream() funkcija definira identifiera koji e da pie u fajl, i ime i lokaciju (putanju) datoteke. Nakon to se zavri sa inputom i outputom datoteka iste se trebaju i zatvoriti, tako da bi njihovi resursi bili dostupni sistemu ponovo. Za zatvaranje otvorenih datoteka koristi se funkcija close(). Sljedei program ita dvije cjelobrojne vrijednosti (num1 i num2) iz fajla numbers.in. Izraunava sumu, razliku, proizvod i kolinik te dvije vrijednosti i potom ispisuje rezultat u fajl numbers.out. Program 1.9.

OSNOVE PROGRAMSKOG JEZIKA C++

POGLAVLJE 2

If struktura Else/if struktura Logiki operatori Uslovni operatori Switch struktura

UVOD

U svakodnevnom ivotu vrlo esto moramo da izaberemo jednu od vie opcija. Nae odluke utiu na nain naeg ivota. Isto tako I prilikomprogramirabnja vrlo esto se moramo odluiti izmeu vie razliitih puteva u programu, uzavisnosti od parametara I uslova. Mogunost donoenja odluka je jedna od kljunih taaka programiranja. Zahvaljujui kontrolnim strukturama (odluka & ponavljanje) mi smo u mogunosti da postavimo uslov I odaberemo put kojim elimo da idemo. Postoje 4 vrste struktura odluivanja u c++ programskom jeziku. To su: If If/else Condicionalni (uslovni) operator ? Switch

If/else komanda odluuje izmeu dvije alternative. Moe se koristiti I bez else dijela, kao obina if komanda. Switch kreira stablo moguih sekcija koda, u zavisnosti od vrijednosti jedne (glavne) varijable. Uslovni operator se koristi u posebnim situacijama.

If STRUKTURA

If struktura se koristi da bi se izvrio dio koda koji zadovoljava postavljeni uslov. Kompajler najprije provjerava uslov, I ako je zadovoljen, dio koda koji je u sklopu if strukture se izvrava, a ako uslov nije zadovoljen taj dio koda se preskae I program
10

OSNOVE PROGRAMSKOG JEZIKA C++

se nastavlja tano iza uslovne structure. Sljedei program ispisuje proao ili pao u zavisnosti od prosjeka ocjena studenta, koristei dvije odvojene if structure.

If (prosjek>60)
{ cout << proao; } //ako je prosjek vei od 60 ispisuje proao

If(prosjek<=60)
{ cout << pao; } //ako je prosjek manji ili jednak 60 ispisuje pao

Prva if struktura provjerava da li je prosjek vei od 60. Ukoliko jeste kao rezultat se ispisuje proao. Druga if struktura provjerava da li je prosjek manji ili jednak 60 I ako jeste ispisuje pao kao rezultat. Ukoliko se u if strukturi nalazi samo jedna komanda onda se ona moe pisati bez vitiastih zagrada, u suprotnom vitiaste zagrade se moraju pisati ({ }).

If/else STRUKTURA

Ukoliko uslov u sklopu if structure nije ispunjen mi moemo rei program ta u tom sluaju da uradi. Dok if struktura dozvoljava program da odlui o tome da li e se komanda ili blok komandi izvriti, if/else struktura dozvoljava programu koja od dvije (ili vie) komandi ili bloka komandi e se izvriti. Kod if/else structure jedan od uslova e uvijek biti zadovoljen. Na primjer, ako je student proao, nema potrebe da se ispituje da li je pao. Ako je proao oigledno je da nije pao, I na isti nain, ako je pao, oigledno je da nije proao.

11

OSNOVE PROGRAMSKOG JEZIKA C++

If (prosjek>60) cout << proao; //ako je prosjek vei od 60 ispisuje proao

else cout << pao; //ako prethodni uslov nije ispunjen ispisuje se pao

ta ukoliko korisnik unese da mu je prosjek negativan broj, to je zapravo nemogue? Kao programeri, uvijek moramo imati na umu neoekivane sluajeve. Trebamo u program napisati mogunost odgovora korisniku da vrijednost ispod 0 nije validna.

If (prosjek>60) cout << proao; else if(prosjek<0) cout << Pogrean unos!; else cout << pao; Program u ovom primjeru provjerava prvi uslov, ukoliko je zadovoljen, ispisuje se proao I preskae se ostatak structure. Ukoliko prvi uslov nije zadovoljen, provjerava se drugi uslov, I tako dalje. Ako ni jedan od uslova nije zadovoljen, ispunjava se posljednja komada (blok komandi) u else strukturi.

LOGIKI OPERATORI

Logiki operatori pojednostavljuju if I if/else structure. Oni kombinuju vie logikih izraza I vraaju jedan rezultat (true ili false). U c++ programskom jeziku postoje tri logika operatora.

12

OSNOVE PROGRAMSKOG JEZIKA C++

!(Not) &&(And) ||(Or)

! (Logiko ne) je unarni operator jer ima samo jedan operand I vraa njegovu suprotnost. Not operator vraa true ako je operand netaan, ili false ukoliko je operand taan. Na primjer: !( 5 > 7) !true //razumije kao true //razumije kao false

&&(Logiko i) operator je binarni operator jer ima dva operanda. On vraa true samo ako su oba operanda true, u suprotnom vraa false. Ovaj operator se moe koristiti kada se mora izvesti zadatak koji mora ispunjavati dva uslova. Na primjer, elimo da odredimo je li dati cijeli broj (num) djeljiv sa 3 I sa 7.

If( (num %3 == 0) && (num%7 == 0)) cout << Broj je djeljiv sa 3 I sa 7;

|| (Logiko ili) operator ima dva operand. On vraa false ako su oba operanda false, u suprotnom vraa true. Moe se koristiti u sluaju da ako najmanje jedan od dva uslova mora biti true da bi se izvrio zadatak. Na primjer, elimo da provjerimo da li je broj djeljiv sa 3 ili sa 7.

If( (num %3 == 0) || (num%7 == 0)) cout << Broj je djeljiv sa 3 ili sa 7;

13

OSNOVE PROGRAMSKOG JEZIKA C++

Uslovni operator (?) C++ programski jezik ima selektivni operator koji moe biti alternative jednostavnoj if/else strukturi. Ukoliko biramo izmeu dvije opcije bazirane na uslovu, to moemo jednostavno implementirati pomou uslovnog operatora. Implementirajmo proao pao priomjer sa ?.

With if/else If (prosjek>60) cout << prosao; else cout <<pao;

With ? cout << ((prosjek>60) ? prosao : pao);

Ovdje se ispituje uslov (prosjek>60). Ukoliko je zadovoljen, ispisuje se prosao, ukoliko nije, ispisuje se pao.

Switch STRUKTURA

Switch nam dozvoljava da izaeremo izmeu vie mogunosti koje se baziraju na jednoj vrijednosti. Ukoliko vie puta treba da koristimo if i else if instrukcije, bolje je isti zadatak rijeiti koristei switch strukturu. Primjer:

int main(){ int month; cout << Unesite broj mjeseca; cin >> mjesec; switch(mjesec){ case 1: cout << Januar; break;

14

OSNOVE PROGRAMSKOG JEZIKA C++

case 2: cout << Februar; break; case 3: cout << Mart; break; case 4: cout << April; break; case 5: cout << Maj; break; case 6: cout << Juni; break; case 7: cout << Juli; break; case 8: cout << August; break; case 9: cout << Septembar; break; case 10: cout << Oktobar; break; case 11: cout << Novembar; break; case 12: cout << Decembar; break;
15

OSNOVE PROGRAMSKOG JEZIKA C++

default : cout << Pogrean unos; }

Switch provjerava sve sluajeve postavljene u zadatku dok ne doe do one koja je true. Ako ni jedan sluaj nije zadovoljen, izvrava se dio koda u sekciji default.

break komanda koja se mora nalaziti na kraju svakog case-a govori program da izae iz switch structure. Ukoliko se komanda break ne nalazi na kraju bloka komandi u case-u, program e nastaviti da se izvrava dalje iako je moda sluaj koji se nastavio izvravati nezadovoljen.

Nekada imamo potrebu da grupiemo sluajeve jer piemo isti blok komandi za za svaki od tih sluajeva. Ovu situaciju je najlake pokazati na primjeru. Korisnik nam ponovo unosi broj mjeseca, a program ispisuje koliko dana taj mjesec ima.

switch (mjesec) { case 2 : cout << Mjesec ima 28 dana; break;

case 4 : case 6 : case 9 : case 11 : cout << Mjesec ima 30 dana; break; default : cout << Mjesec ima 31 dan; break; }

16

You might also like