c++ za apsolutne pocetnike

Upload: mario054300

Post on 14-Jul-2015

5.038 views

Category:

Documents


77 download

TRANSCRIPT

C++ programiranje za apsolutne poetnike

programiranjeza apsolutne poetnike

PRO - MIL

Naslov knjige: Autor: Naklada:

C++ programiranje za apsolutne poetnike Jakopec Ratko, ing PRO-MIL d.o.o. za nakladu, informatiku i edukaciju, Varadin, R. Bokovia 20, 42000 Varadin, tel: 042 / 203 981, 233 971, fax: 042 / 203 991, www.pro-mil.hr Nenad Milija, dipl. inf. Ruica Greguri, dipl. uitelj PRO-MIL d.o.o. Igor Kos, dipl. inf. Brigita Jakopec, prof. Tiskara Varteks, Varadin 953-7156-19-2 PRO-MIL d.o.o. za nakladu, informatiku i edukaciju, Varadin

Urednik: Lektura: Korektura: Recenzija: Naslovnica: Tiskara: ISBN: Copyright:

CIP Katalogizacija u publikaciji Nacionalna i sveuilina knjinica Zagreb UDK 004.43 C++(035) JAKOPEC, Ratko C++ programiranje za apsolutne poetnike / Ratko Jakopec. Varadin : Pro-mil, 2006. ISBN 953-7156-19-2 I. C++ programski jezik -- Prirunik 460125024

Sva prava pridrana. Nije dozvoljeno kopirati ili reproducirati ni jedan dio knjige u bilo kojem obliku bez prethodne pismene dozvole nakladnika. Sve o emu smo pisali u ovoj knjizi, uspjeno je primijenjeno na raunalima, stoga ne snosimo nikakvu odgovornost za eventualnu tetu koja bi se mogla povezati s uputama iz knjige. U ovoj knjizi objanjen je program Dev C++, autora: Colin Laplace, Mike Berg, Hongli Lai. Program se nalazi na priloenom CD-u, slobodan je za objavljivanje i umnoavanje. Pojmovi za koje se zna da su zatitni znakovi napisani su poetnim velikim slovom. Nakladnik ne moe provjeriti tonost niti eli utjecati na vjerodostojnost zatitnih znakova.

2

PRO - MIL

PRO - MIL

Sadraj

C++ programiranje za apsolutne poetnike

Saimanje Veliki programi koda Obrada teksta

Objekti

Polja

Petlje

Donoenje Grafika odluke

Varijable

Na prvi program

Uvod

Sadraj

3

Sadraj

Uvodto je to program, a to programiranje? Je li teko nauiti programirati? Zato ba C++? Zato ba Dev-C++? Kako se ui programiranje? Kako dalje nakon ove knjige? Instaliranje Dev-C++ programskog okruenja Formiranje radne mape Instalacija grafike

7 8 8 9 10 10 10 12 20 22 25 26 32 34 38 40 42 43 47 49 53 54 58PRO - MIL

Na prvi programFormiranje projekta Mogui problem Pokretanje programa Greka u programu Analiza programa Gruba skica programa Varijacije programa Distribucija programa Uitavanje spremljenog projekta

VarijableOsnovne raunske operacije Varijable

4

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti Obrada teksta Polja Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod

Analiza programa Varijacije programa Problem dijeljenja Uljepavanje programa Nekoliko primjera programa

60 63 67 69 71 75 76 77 78 83 86 88 95 97 103 104 108 126 129 130 168 170 179

GrafikaPodeavanje programskog okruenja Na prvi grafiki program Analiza programa Varijacije programa Crtanje pravokutnika Crtanje crte Crtanje toke Ispis teksta

Donoenje odlukeFunkcije Donoenje odluke Switch naredba

PetljeFor petlja Do while petlja Generator sluajnih brojeva Koritenje sluajnih brojeva

PRO - MIL

5

Sadraj

PoljaJednodimenzionalna polja Spremanje brojeva u datoteku Dvodimenzionalna polja

183 184 204 212 215 216 223 234 246 247 248 251 252 262 265 276 278 280 283 284 288 301 302PRO - MIL

Obrada tekstaString objekti Polje char tipa Obrada string objekata Premjetanje teksta iz char polja u string Premjetanje teksta iz stringa u char polje Spremanje teksta u datoteku

ObjektiJednostavan primjer klase i objekata Sloeniji primjeri klasa i objekata Komunikacija s metodama Razdvajanje deklaracije i definicije Uporaba konstruktora Nasljeivanje

Veliki programJednostavna igra u jednoj datoteci Jednostavna igra u vie datoteka

Saimanje kodaPrimjeri saetog pisanja koda

6

PRO - MIL

Uvod

C++ programiranje za apsolutne poetnike

Saimanje Veliki programi koda Obrada teksta

Objekti

Polja

Petlje

Donoenje Grafika odluke

Varijable

Na prvi program

Uvod

Sadraj

7

Uvod

to je to program, a to programiranje?Program je niz uputa raunalu o tome kako da napravi odreeni posao. Posao moe bit voenje skladita, izraun plae radnicima ili pretvaranje slike u boji u crno bijelu sliku. Programiranje je pisanje tih uputa. Za pisanje uputa odnosno programa koriste se odreene naredbe. Skup naredbi koje ine cjelinu naziva se programski jezik. Budui da su naredbe pisane naim jezikom, a raunalo razumije samo nule i jedinice, program se nakon pisanja mora prevesti u oblik razumljiv raunalu. Taj postupak se naziva prevoenje. Na engleskom jeziku naziva se Compile. Hrvatski programeri taj postupak obino nazivaju kompajliranje. U programu koji emo mi koristiti, postupak prevoenja naredbi u oblik razumljiv raunalu naziva se kompajlaj, a ovoj knjizi koristit emo izraz prevoenje. Da bismo uspjeno programirali, oigledno je da nam treba program u kojem emo program pisati i program koji e napisani program prevesti u oblik razumljiv raunalu. U dananje vrijeme sve te funkcije, a i mnoge dodatne objedinjene su u jedan program koji emo u ovoj knjizi nazivati programska okolina. On e nam omoguiti pisanje programa, prevoenje programa u oblik razumljiv raunalu, traenje greaka i pokretanje programa. Postoji cijeli niz takvih programa, a mi emo koristiti Dev-C++.

Je li teko nauiti programirati?Da, teko je. Ako mislimo da emo uzeti nekakav programski jezik i da emo za par dana pisati programe, kao to moemo uzeti FrontPage pa za par dana napraviti WEB stranicu, od toga nee biti nita. Neki, ako ne i veina profesionalnih uitelja programiranja, zapoet e poduku nekakvim algoritmima i time kako je to sve jednostavno jer mi ionako mnoge stvari radimo po algoritmu. Npr. ako kuhamo kavu, prvo stavljamo vodu u posudu, zatim ekamo da zavri, pa onda stavljamo ... da sad ne kompliciramo, mi smo i do sada stvari radili po nekakvom algoritmu, a programiranje je neto slino. To su gluposti. Moda i jesmo do sada stvari radili po odreenom algoritmu, ali nismo o tome na taj nain razmiljali, nemamo um posloen na taj nain. Osim toga u programiranju se upotrebljavaju malo drugaiji algoritmi nego to su algoritmi za kuhanje kave. Programiranje je zapravo potpuno drugaiji nain razmiljanja od onog na koji smo do sada navikli i trebat e godine rada da ponemo razmiljati na taj nain. Cijeli problem dodatno komplicira injenica da su dananja raunala vrlo sloeni sustavi i treba nam puno vremena da barem priblino ponemo shvaati kako raunala funkcioniraju.

8

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti Obrada teksta Polja Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod

Zbog svega toga trebat e nam dvije do tri godine svakodnevnog rada da bismo koliko - toliko nauili programirati. Pod pojmom nauiti programirati ne mislim na dobivanje dvojke u koli ili pisanje programa za zbrajanje dva broja. Pod pojmom nauiti programirati mislim na to da smo u stanju napisati program koji zadovoljava neije potrebe i taj netko nam je spreman za to platiti. Nema puno smisla rei da znam programirati, ali ne znam napraviti nita za to bi netko bio spreman platiti. Zbog svega toga vano je da smo radini i strpljivi. Nemojmo iz injenice da prva tri mjeseca neemo puno toga razumjeti, zakljuiti da nismo nadareni za programiranje i odustati. Nakon tri mjeseca neemo puno toga razumjeti, ali nakon tri godine sasvim sigurno hoemo. Ovim uvodom vas nisam htio preplaiti, ve sam vas htio ohrabriti da ustrajete u uenju programiranja, iako e vam se na poetku moda initi da nita ne razumijete i da sporo napredujete.

Zato ba C++?Zato to je to trenutno najraireniji jezik, osobito u profesionalnoj uporabi. U raunalstvu se klonite ekskluzivnosti. Ako vas veseli da budete posebni, obrijte glavu ili obojite kosu na zeleno. Imate bezbroj mogunosti, ali kad su raunala u pitanju, najbolje je koristiti raunalo koje koristi veina i programski jezik koji koristi veina. U tom sluaju lako dolazimo do programa, lako dolazimo do literature, puno ljudi se razumije u to pa moemo dobiti savjet. Konano, ako traimo posao u smislu da programerska ekipa treba jo jednoga (jednu), vea je vjerojatnost da oni ve koriste sustav s kojim znamo raditi. Bjeite od genijalnih raunala, revolucionarnih sustava i drugaijih razmiljanja. Zamislite koliko je ugodno ivjeti u malom gradu i biti jedini vlasnik takvog genijalnog sustava. Nema literature, nema programa, nema savjeta i kad konano savladamo rad u takvom sustavu nitko nas ne treba jer svi rade na nekim drugim sustavima. Iako po mom sudu C++ ima niz prednosti u odnosu na druge jezike, nemojmo se suvie optereivati time koji emo jezik zapoeti uiti i koju inaicu tog jezika. Glavni problem je nauiti jedan jezik, a kad nam to uspije, ako se ukae potreba, lako emo prijei na drugi. Da bi netko tko nikad nije programirao nauio jedan jezik, treba mu do tri godine, ali kad ve jedan jezik nauimo, da bismo nauili drugi, dovoljno nam je do tri mjeseca. Nauivi jedan jezik, poinjemo razumijevati kako se programira, a to je najtee i najdulje traje. Najlake je nauiti nove naredbe ili bolje reeno novi nain pisanja slinih naredbi u drugom jeziku.

PRO - MIL

9

Uvod

Zato ba Dev-C++?Programsko okruenje koje emo koristiti za pisanje naih programa naziva se Dev -C++. Zato sam odabrao upravo ovo okruenje? Zato to je besplatno, ugodnog izgleda, na hrvatskom jeziku i malih dimenzija. Zbog toga to je malih dimenzija, zadovoljavajue e raditi i na starijim raunalima, a nove inaice mogue je u prihvatljivom vremenu uitati s interneta i pomou spore internetske veze. Iako je taj program relativno malih dimenzija, posjeduje sve osobine koje su potrebne za uenje programiranja, a mogao bi posluiti i za manje sloeno profesionalno programiranje.

Kako se ui programiranje?Programiranje se ne ui tako da se naui sadraj neke knjige, a zatim se eventualno neto radi na raunalu. Programiranje se ui tako da se ukljui raunalo, otvori knjiga, ita sadraj knjige i istovremeno prikazano u knjizi nastojimo napraviti na raunalu. Nakon to smo odreenu naredbu shvatili, nismo zavrili s uenjem. Nakon toga treba napraviti nekoliko desetaka manjih programa u kojima emo tu naredbu koristiti da bismo stekli rutinu u njenom koritenju.

Kako dalje nakon ove knjige?Ova knjiga nije zamiljena kao knjiga iz koje emo saznati sve tajne programiranja, nego kao knjiga koja bi ljudima koji nikad nisu programirali i nita o tome na znaju trebala pomoi da zaponu uenje programiranja. Postoje velike i debele knjige s puno sitnog teksta koje na 1000 stranica objanjavaju sve tajne pojedinih programskih jezika. Takve knjige su korisne i nabavite ih ako vam se ukae prilika, ali takve knjige nisu pogodne za poetnike. Zbog mnotva detalja i turih opisa, poetnik e se u njima jako teko snai. Nakon to prouite ovu knjigu, imat ete dovoljno predznanja da moete pratiti knjige koje detaljno govore o programskom jeziku C++. (Ili nekom drugom programskom jeziku.) Kakve knjige biste trebali nabaviti i s ime biste se trebali baviti nakon to prouite ovu knjigu i elite dalje napredovati? - Svakako neku knjigu koja na barem 800 stanica detaljno opisuje programski jezik koji elite nauiti. - Budete li odluili koristiti neko sloenije programsko okruenje za pisanje progra-

10

PRO - MIL

Uvod

Instaliranje Dev-C++ programskog okruenjaNa CD-u priloenom uz knjigu nalazi se program Dev-C++. Ovaj izbornik trebao bi se pokrenuti nakon umetanja CD-a u raunalo. Ako se to ne dogodi, pokrenite ga sami dvostrukim klikom na program meni.exe koji se nalazi na CD-ju. Instalaciju pokreemo klikom na Program.

Nakon klika na Program zapoet e instaliranje Dev-C++ programa. Program e nas prvo upozoriti da ne smijemo instalirati program, ako je program ve instaliran. Ako zbog nekog razloga instalaciju elimo ponoviti, moramo deinstalirati stari program, a tek nakon toga moemo ga ponovo instalirati.

Ako je Dev-C++ program ve instaliran, zaustavit emo postupak instalacije i deinstalirati staru inaicu programa. Ako Dev-C++ nije instaliran na naem raunalu, klikom na U redu nastavljamo instalaciju.

12

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj 2 - Klikom na OK nastavljamo instalaciju. Klikom na Prihvaam izjavljujemo sa se slaemo s uvjetima koritenja programa.

PRO - MIL

Saimanje Veliki programi koda

Objekti

Obrada teksta

Polja

Petlje

Donoenje Grafika odluke

Varijable

Na prvi program

Uvod

1 - Izaberemo jezik.

13

Uvod

Ovdje bismo mogli izabrati komponente koje emo instalirati. Mi neemo nita mijenjati. Samo kliknemo na Dalje.

1 - Ovdje moemo izabrati mapu u koju e se instalirati DevC++.

2 - Instaliranje nastavljamo klikom na Instaliraj.

14

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti Obrada teksta Polja Kliknemo na Da. Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod

Nakon klika na Instaliraj zapoet e instaliranje programa.

PRO - MIL

15

Uvod

Kliknemo na Kraj.

Kliknemo na U redu.

16

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti Klik na Next. Obrada teksta Polja Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod

1 - Izaberemo hrvatski jezik.

2 - Izaberemo Use XP Theme.

3 - Klik na Next.

PRO - MIL

17

Uvod

Klik na Next.

Nakon klika na Next zapoet e instaliranje nekih dodatnih funkcija. Na sporijim raunalima taj proces moe trajati i do pola sata, a na brima nekoliko minuta.

18

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Na kraju klik na OK.

PRO - MIL

Saimanje Veliki programi koda

Objekti

Obrada teksta

Polja

Klikom ovdje ugasimo ovaj prozor. Time je instaliranje Dev-C++ programa zavreno.

Petlje

Donoenje Grafika odluke

Varijable

Na prvi program

Uvod

19

Uvod

Formiranje radne mapeIako to nije nuno, dobro je formirati praznu mapu u koju emo spremati programe. Tu mapu moemo otvoriti na bilo kojem disku na kojem imamo mjesta i moemo je nazvati prema vlastitom izboru. Ja u na C: disku otvoriti mapu koju u nazvati Radni.

Klik na disk na kojem elimo otvoriti novu mapu, u mojem sluaju na C: disk.

Kliknemo na Datoteka, zatim na Novo i konano na Mapa.

20

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Unesemo naziv mape, u mojem sluaju Radni. Ako je sve u redu, na C: disku trebala bi biti formirana mapa pod nazivom Radni.

PRO - MIL

Saimanje Veliki programi koda

Objekti

Obrada teksta

Polja

Petlje

Donoenje Grafika odluke

Varijable

Na prvi program

Uvod

21

Uvod

Instalacija grafikeDa bi Dev-C++ mogao koristiti naredbe za rad s grafikom, runo moramo dodati nekoliko datoteka.

Nakon instaliranja programa Dev-C++, na disku C: u mapi Dev-Cpp nalazit e se mapa include i mapa lib.

Na CD-u priloenom uz knjigu u mapi Grafika nalazi se mapa include i mapa lib.

22

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Sadraj mape include na CD-u kopiramo u mapu include na C: disku. Sadraj mape lib na CD-u kopiramo u mapu lib na C: disku. Bude li potekoa s instaliranjem programa, pogledajmo filmove na kojima moemo vidjeti cijeli tijek instalacije, a nalaze se na priloenom CD-u.

PRO - MIL

Saimanje Veliki programi koda

Objekti

Obrada teksta

Polja

Petlje

Donoenje Grafika odluke

Varijable

Na prvi program

Uvod

23

Na prvi program

24

PRO - MIL

PRO - MILObrada teksta Polja Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod Sadraj

Na prvi program

C++ programiranje za apsolutne poetnike

Saimanje Veliki programi koda

Objekti

25

Na prvi program

Formiranje projekta

Prilikom svakog pokretanja programa pojavit e se prozor sa sugestijama koje e nam olakati koritenje programa.

Kliknemo ovdje da bismo ugasili taj prozor.

1 - Kliknemo na Datoteka.

Program je dio vee cjeline koja se naziva projekt. Zbog toga emo pisanje programa zapoeti formiranjem novog projekta. Pogledajmo kako emo formirati novi projekt.

3 - Izaberemo Projekt.

2 - Izaberemo Nova.

26

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti 5 - Biranje zavravamo klikom na OK. 4 - Ovdje odredimo da e na projekt sadravati C++ program. Obrada teksta Polja 3 - Ovdje unosimo naziv projekta. Na poetku moemo ostaviti naziv koje je predloilo raunalo, a to je Projekt1. Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod

Otvorit e se novi prozor koji se naziva Novi projekt i u kojem emo izabrati tip projekta. Najvaniji tipovi su Windows Application i Console Application. U emu je razlika? Windows Application izvodi se unutar klasinog windows prozora. Prednost ovog naina pisanja jest to emo dobiti program koji e izgledati kao svaki drugi windows program. Nedostatak mu je to je ovaj nain pisanja programa neto sloeniji, pa je manje prikladan za poetnike. Console Application ne izvodi se unutar klasinog windows prozora, ve unutar pojednostavljene verzije s crnom pozadinom. Nedostatak ovog naina pisanja programa jest to je program veoma ruan i to taj oblik prozora ima manje mogunosti od klasinog prozora. Jedina prednost mu je to je jednostavan, pa je prikladniji za poetnike.

1 - Izaberemo Basic.

2 - Zatim Console Application.

PRO - MIL

27

Na prvi program

Sada emo izabrati mapu u koju emo spremiti na projekt. Najbolje je da ga spremimo u prije pripremljenu praznu mapu.

Kliknemo ovdje.

1 - Izaberemo disk na koji emo spremiti na projekt u prije pripremljenu praznu mapu. U mojem sluaju to je disk C:. Kliknemo na njega. (Na mojem raunalu disk C naziva se Podaci. Na vaem raunalu moe imati drugaije naziv. Naziv diska nije vaan, vano je da izaberemo onaj disk na kojem smo prije toga pripremili prazni prostor, kao to je opisano u uvodnom poglavlju ove knjige.)

2 - Kliknemo na Spremi.

28

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti Obrada teksta Polja 1 - Ovdje bi se trebao nalaziti naziv prostora u koji emo spremiti na C++ projekt. 2 - Klik na Spremi. Petlje Donoenje Grafika odluke Varijable Na prvi program Uvod 2 - Sadraj ovog prozora na vaem raunalu bit e sasvim sigurno drugaiji nego na mojem, budui da njegov sadraj ovisi o programima koji su instalirani u raunalu i nainu koritenja raunala. Nemojte brinuti zbog toga. 3 - Pronai emo mapu Radni i kliknuti na nju. (Ako mapu Radni niste do sada formirali, formirajte je prema uputama danim u uvodnom poglavlju. 4 - Klik na Otvori.

1 - Ovdje bi se trebala nalaziti oznaka diska na kojem smo pripremili prazni prostor za smjetaj naeg projekta.

PRO - MIL

29

Na prvi program

Raunalo e automatski generirati jednostavan C++ program i time je otvaranje projekta zavreno.

U programu bismo se lake snalazili kad bi se ispred svakog reda u programu nalazio broj reda. Pogledajmo kako emo ukljuiti tu mogunost.

1 - Kliknemo na Alati.

2 - Kliknemo na Izgled editora.

30

PRO - MIL

C++ programiranje za apsolutne poetnike Sadraj Saimanje Veliki programi koda Objekti Obrada teksta Vidimo da se sada ispred svakog reda u programu automatski ispisuje broj reda. Polja Petlje Donoenje Grafika odluke Varijable 3 - Kliknemo na OK. Na prvi program Uvod 2 - Kliknemo na kvadrati ispred opcije Brojevi linije.

1 - Kliknemo na karticu Prikaz.

PRO - MIL

31

Na prvi program

Mogui problem1 - Ovo je prije spremljeni projekt.

Prilikom isprobavanja programa moe nam se dogoditi da pokuamo u prostor za spremanje projekta spremiti novi projekt, iako projekt pod tim nazivom ve postoji u tom prostoru. U istom prostoru ne moe biti vie projekta s istim imenom. U tom sluaju, ako elim zadrati stari projekt, novom projektu moramo dati neki drugi naziv, npr. Projekt2.dev.

3 - Klik na Spremi. 2 - Ovo je novi projekt. Ako elimo zadrati stari, moramo mu promijeniti naziv. Ako stari projekt ne elimo zadrati, ostavimo postojei naziv.

1 - Ako novi projekt ima isti naziv kao i stari jer stari projekt ne elimo zadrati, raunalo e nas upozoriti da e stari projekt biti obrisan.

2 - Klik na Yes i novi projekt bit e formiran, a stari obrisan.

32

PRO - MIL

C++ programiranje za apsolutne poetnike

Unos prvog programa

#include #include using namespace std; int main() { cout