









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An introduction to the C++ programming language, explaining its role in giving precise instructions to computers and offering examples of basic programming tasks. It covers the importance of clear and precise instructions, the history of programming languages, and the basics of writing and running a C++ program.
Typology: Study notes
1 / 15
This page cannot be seen from the preview
Don't miss anything!










Programiranje u C++-u nije ništa zastrašujuće – zaista! Kao i svaki program- ski jezik, on služi da se računaru daju logički precizna uputstva. C++ može da se zakomplikuje koliko god želite, ali se učenje najlakše po- činje rešavanjem osnovnih programerskih zadataka. To je moj pristup ovde. U prvih nekoliko odeljaka, izlažem osnovne koncepte programiranja. Ako ste već programirali u bilo kojem jeziku, možda ćete da ih preskočite. Ali ako se zadržite, obećavam da neću da odugovlačim.
Razmišljajte programerski
Programiranje možda nije sasvim slično drugim aktivnostima kojima ste se bavili. U osnovi, vi samo dajete uputstva – ali to radite na logičan i sistematski način.
Računari rade samo ono što im naredite Računari rade samo ono što im naredite: to je najvažnije pravilo u ovoj knjizi, pogotovo ako tek počinjete da programirate. Kad koristite programski jezik, kao što su C++, Visual Basic, Pascal, ili FORTRAN, vi računaru dajete spisak poslova; to je program. Računaru su, naravno, potrebne informacije – to su programski podaci. Ali mora takođe da zna šta da radi sa tim podacima. Instrukcije koje mu nalažu šta da radi zovu se programski kôd.
Odredite šta će program da radi Dakle, da bi se računar primorao da nešto radi, mora mu se reći tačno šta da radi.
Do sada ste računar verovatno koristili tako što ste izvršavali programe koje su za vas napisali drugi. Utoliko ste vi bili krajnji korisnik – ili skraćeno korisnik. Kad sami napišete program, vi sebe promovišete na sledeći ešalon raču- narskog osoblja. Sada vi odlučujete šta će program da radi. Vi ćete da diktirate događanja. Ali računar je – čak i više nego Dastin Hofman u filmu Kišni čovek – krajnji idiot naučnik. On nikada ne nasluti šta ste hteli. Nikada ne može da donese nezavisnu odluku. On krajnje bukvalno prihvata i izvršava tačno ono što ste rekli, bez obzira da li je to glupo. Prema tome, morate da pazite da tačno ka- žete ono što mislite. Računaru čak ne možete da izdate naređenje koje bi čoveku izgledalo rela- tivno jasno, kao što je „Konvertuj mi broj iz Celzijusa u Farenhajte”. Čak i to je previše uopšteno. Morate da budete određeniji, morate da napišete postupne korake, ovako:
1 Štampati poruku „Uneti temperaturu u Celzijusovim stepenima:”. 2 Prihvatiti broj sa tastature i spremiti ga u promenljivu ctemp. 3 Pretvoriti broj u Farenhajtove stepene po formuli ftemp = (ctemp * 1.8) +
4 Štampati poruku „Temperatura u Farenhajtovim stepenima je:”. 5 Štampati vrednost promenljive ftemp. Zašto bi iko to radio ako je potrebna tolika muka za tako jednostavnu stvar? Odgovor je da program, kad ga jednom napišete, možete da izvršavate koliko god hoćete puta. Osim toga, mada je za pisanje programa potrebno vreme, oni se obično izvršavaju brzinom munje.
Napišite odgovarajuće C++ naredbe Nakon što precizno odredite šta hoćete da program, korak po korak, radi, mo- rate da napišete odgovarajuće C++ naredbe. Naredba je, grubo rečeno, C++ ekvivalent rečenice. Na primer, recimo da želite da vaš program uradi sledeće:
1 Štampati poruku „Temperatura u Farenhajtovim stepenima je:”. 2 Štampati vrednost promenljive ftemp. Te rečenice biste preveli u C++ naredbe: cout << “Temperatura u Farenhajtovim stepenima je:”; cout << ftemp;
Intermeco Koliko su računari stvarno „pametni”?
Kad sam pre više godina vodio jednu računarsku laboratoriju u Takomi (država Vašington), nailazio sam na neke zanimljive ličnosti, neke od njih pravo sa ulice. Jedan je bio debeljuškast čovečuljak u slamenom šeširu, ras- parenoj odeći, starim cipelama i širokim osmehom, koji je nosio sa sobom časopis Daily Racing Form kao da je to Biblija. Prilazio mi je svakih par dana sa tim časopisom o konjskim trkama. „Imam ideju,” stalno je ponavljao. „Zaradićemo milion. Treba samo da ubacimo ove informacije u računar, a on će da bira konje. Ja ću donositi Daily Racing Form, a ti napiši program. Bićemo bogati!” Osmehnuo sam se ali sam promumlao nešto o problemima izvodljivosti. On je zaboravljao – ili verovatno uopšte nije shvatao – da u samom ra- čunaru ne postoji nikakvo pravo znanje. Unutra nije nikakvo čarobno biće koje odgovara na pitanja kao u brodskom računaru iz serije Zvezdane sta- ze. Ubacivanjem sirovih podataka u računar ne postiže se ništa. Računaru prvo treba pravi program… niz naredbi koje mu naređuju da premesti po- datke, kopira ih, sabira, oduzima, množi ili ih drugačije procenjuje. Da bi računar pravilno birao konje koji će pobediti na trkama, pravi štos bi naravno bio u tome da se smisli pravi algoritam… a algoritam je siste- matska tehnika kojom se korak po korak procenjuju podaci i dobija rezul- tat, to jest, prava formula. Slažem se da biste se obogatili kad biste smislili pravi algoritam za biranje konja. Ali u tom slučaju bi vam najmanji problem bio da pronađete računar. Svaki računar bi odgovarao, pod uslovom da može da primi potrebne podatke. Što se tiče programera… ako biste uspeli da ga ubedite da stvarno imate pravi algoritam, jednostavno biste mu ponudili da podelite sa njim prvih 10 miliona dolara dobitaka. Poznajem dosta njih koji bi pristali. Ili, još bolje, mogli biste da primenite tehnike programiranja opisane u ovoj knjizi, pa da sami napišete taj program.
Neke zaluđeničke definicije – pregled Trudim se da izbegavam žargon. Zaista. Ali kad počnete da učite programira- nje, vi ulazite u jedan svet koji zahteva novu terminologiju. Slede neke defini- cije potrebne za preživljavanje u tom svetu.
11111111111
aplikacija
U suštini je isto što i program, ali gledano iz aspekta korisnika. Aplikacija je program koji korisnik izvršava da bi obavio neki zadatak. Program za obradu teksta (engl. word processor) je aplikacija; isto tako i veb pretraživač (engl. In- ternet browser) ili rukovalac baze podataka (engl. database manager). Čak je i kompajler (koji malo dalje definišem) takođe aplikacija, ali vrlo posebne vrste, zato što ga koriste programeri. Jednostavno rečeno, kada je program napisan, izgrađen i testiran, on postaje aplikacija.
kôd
Još jedan sinonim za „program”, ali gledano iz aspekta programera. Izraz kôd potiče iz vremena kada su programeri pisali mašinski kôd. Svaka mašinska in- strukcija se kodira jedinstvenom kombinacijom nula i jedinica, pa tako pred- stavlja računarev kôd za obavljanje određene akcije.
Programeri i dalje koriste izraz kôd čak i kada pišu u jezicima kao što su C++, Java, FORTRAN ili Visual Basic. (Pogledajte definiciju izvornog koda.) Osim toga, izraz kôd se koristi da bi se razgraničile pasivne informacije u pro- gramu (njegovi podaci) i deo programa koji izvršava akcije (njegov kôd).
kompajler
Prevodilac jezika koji kao ulaz prima C++ naredbe (to jest, C++ izvorni kôd), a kao izlaz proizvodi program u obliku mašinskog koda. To je neophodno, zato što sam računar – njegov procesor (CPU) – razume samo mašinski kôd.
podaci
Informacije nad kojima se izvršava program. Na najosnovnijem nivou, ove informacije se sastoje od reči i/ili brojeva.
mašinski kôd
Maternji jezik procesora, u kojem se svaka računarska instrukcija sastoji od jedinstvene kombinacije (ili koda) jedinica i nula. Programiranje u mašin- skom kodu je još uvek moguće, ali je za to potrebno potražiti svaku instrukci- ju i treba detaljno poznavati arhitekturu procesora.
Jezici kao što je C++ omogućavaju da se pišu programi sličniji engleskom jeziku, ali su ipak dovoljno logički precizni da mogu da se prevedu u mašinski kôd.
11111111111
Po čemu je C++ drugačiji?
Većina onoga što sam upravo rekao za C++ odnosi se i na druge programske jezike kao što su Pascal, Java, FORTRAN i Basic. To su sve jezici višeg nivoa , što znači da nisu tačna slika mašinskog koda, već koriste ključne reči (kao što su „if ” i „while”) koje imaju sličnosti sa engleskim jezikom. Svaki jezik je razvijen za drugu svrhu. Basic je projektovan da bi se lako učio i koristio. Zbog toga on dozvoljava opušteniju sintaksu što, nažalost, može da dovede do loših navika u programiranju. Ipak, Microsoft je razvio Visual Basic u moćnu, ugodnu i brzu alatku za izradu aplikacija za Microsoft Windows i pri tom sredio nešto od te aljkavosti. Pascal je razvijen da bi se koristio u akademskim okruženjima, da bi se predavali složeni programski koncepti. Pascal je razrađeniji od Basica, ali ne može da uradi sve što može C ili C++. Legendarni računarski naučnik Denis Riči (Dennis Richie) je prvobitno projektovao C kao pomoć u pisanju operativnih sistema. To je uredan jezik koji podržava prečice i omogućava pisanje konciznijih programa. Njegova ne- posredna a ipak opsežna sintaksa dokazano je popularna među programeri- ma celog sveta. Još jedna prednost C-a je to što postavlja manje ograničenja od drugih jezika. A C++? Glavna razlika među jezicima C i C++ je u tome što C++ dodatno omogu- ćava objektno-orijentisano programiranje. To je pristup posebno dobro prila- gođen radu sa kompleksnim sistemima, kao što su grafički korisnički interfej- si i mrežna okruženja. Kao objektno orijentisani programer, imaćete sledeća pitanja:
1 Koje su glavne vrste podataka (to jest, informacija) u problemu koji se re- šava? 2 Koje operacije treba definisati za svaku vrstu podataka? 3 Kakva je interakcija među objektima podataka? Dok sam učio objektno orijentisano programiranje, nalazio sam da je lak- še ako se najpre savlada osnovna sintaksa naredbi. Prema tome, na objektnu orijentaciju se usredsređujem tek u poglavlju 11. Ali neke objekte – komade podataka koji mogu da reaguju na operacije – uvodim već rano u knjizi. Na primer, u ovom poglavlju, koristim cout , objekat koji nije iz jezika C. U jeziku C biste informacije štampali pozivanjem funkcije (unapred definisanog skupa naredbi). Ali kada koristite cout , vi podatke šalje- te objektu koji – stvarno – zna kako da prikaže informacije.
To se pokazuje kao savršeniji način da se obavi posao: cout zna kako da štampa mnoge vrste podataka. Što je još najbolje, možete vlastite, prilagođene tipove podataka (klase) da proširite tako da glatko sarađuju sa izlaznim objek- tima kakav je cout. To ne biste mogli (bar ne lako) u C-u.
Izgradnja C++ programa
Pisanje programa je samo prvi korak u pravljenju aplikacije. Najpre se unose programske naredbe.
Unošenje programskih naredbi Da bi se napisao C++ program, treba vam način da unesete programske na- redbe:
Možete da upotrebite tekst editor, kao što je Microsoft Word ili Notepad. Ako to radite, morate da sačuvate dokument kao običan tekstualni fajl/ (engl. plain-text). Možete da unosite tekst u integrisano okruženje za razvoj (IDE – integrated development environment). Okruženje za razvoj je tekst editor kombino- van sa drugim pomoćnim programskim alatima. Microsoft Visual Studio je okruženje za razvoj.
Izgradnja programa (prevođenje i povezivanje) Izgradnja programa je proces pretvaranja vašeg izvornog koda (C++ naredbi) u aplikaciju. To se u razvojnim okruženjima obično svodi na to da pritisne- te funkcijski taster. Postupak se obično sastoji od dve faze: prevođenja (engl. compile) i povezivanja (engl. link) (kojim se uključuju standardne funkcije na- pisane za vas). Ako te dve faze uspeju, program može da se izvršava.
prog.cpp (izvorni C++ kôd) C++ kompajler^
prog.obj (objektni kôd)
C++ biblioteka
Linker
prog.exe (izvršni program)
Pisanje C++ koda
Prevođenje i povezivanje
Uspelo?
Izvršavanje i testiranje programa
Logičke greške?
Gotovi ste!
NE
DA
DA
NE
Ako je reč o složenom softveru, možda ćete ovaj ciklus morati da ponav- ljate više puta. Za takav program biće potrebno mnogo testiranja kako bi se proverilo da li se pravilno ponaša u svim slučajevima. Program nije završen sve dok se ne obavi takvo testiranje i doterivanje. Ali za jednostavne progra- me, obično je dovoljna umerena količina testiranja.
Instaliranje vlastitog C++ kompajlera
Veb sajt Pearson (www.informit.com/title/ 9780132673266) sadrži link sa kojeg možete da preuzmete besplatne i šerver kompajlere, kao i okruženje Dev-C++ (koje toplo preporučujem). Ono sadrži kompletno razvojno okruženje u ko- jem možete da pišete, prevodite i testirate svoje programe.
11111111111
Primer 1.1 Štampanje poruke
Da biste počeli da programirate, otvorite nov izvorni fajl i unesite sledeći kôd:
print1.cpp
#include
int main(){ cout << “Bez brige, C++ je ovde!”; system (“PAUSE”); return 0; }
Napomena Neke stvari ćete morati da uradite drugačije ako koristite Visual Stu- dio ili Dev-C++, pa nemojte da očekujete da će kôd da se prevede bez greške dok ne pregledate taj deo.
Ne zaboravite da nije važno precizno razmicanje, ali je važno paziti na upotrebu velikih i malih slova. Ako koristite Visual Studio ili okruženje Dev-C++, pojaviće se neki do- datni redovi koda; ostavite ih. Osim toga, moraćete da otvorite novi projekat. Ako koristite okruženje Dev-C++, idite na meni File, izaberite New, otvo- rite nov projekat, kao tip projekta izaberite Console Application, pa odaberite neko ime projekta. Zatim u prozoru Project (na levoj strani ekrana) kliknite na izvorni fajl main.cpp. Dev-C++ će vam napraviti sledeći kôd:
#include
int main() { system(“PAUSE”); return 0; } U ovom slučaju, dovoljno je da dodate naredbu koja počinje sa cout ; ubacite je tačno ispod reda koji glasi int main() { a iznad reda system(“PAU- SE”);. Ostale redove ne dirajte.
11111111111
Ova naredba mora da postoji u konzolnim aplikacijama (to jest, aplika- cijama koje nisu Windows) koje se prave u Visual Studiju. Ako za praćenje ove knjige koristite Visual Studio, ne zaboravite da stavite taj red na početak svakog programa. Prema tome kôd print1.cpp bi trebalo da izgleda ovako (dodatni red je zacrnjen): #include “stdafx.h” #include
int main(){ cout << “Bez brige, C++ je ovde!”; system (“PAUSE”); return 0; } Da biste izgradili program, pritisnite F7. Time se pokreće i kompajler i linker. Ako ste uspeli, čestitam! Krenuli ste. Ako se program nije uspešno izgra- dio, vratite se i proverite da li ste sve redove uneli doslovce. Da biste izvršili program, pritisnite CTRL+F5. Mada postoje i drugi na- čini da se u Visual Studiju program izvrši, ovo je jedini način da se izbegne problem sa MS-DOS prozorom koji blesne na ekranu i odmah nestane. Kad pritisnete CTRL+F5 (Start without debugging – pokrenuti bez traženja gre- šaka) program se izvrši a zatim se pojavi korisna poruka „Press any key to continue” koja vam omogućava da vidite rezultat i sami ga uklonite pritiskom na bilo koji taster.
Napomena (^) Naredba system(“PAUSE”); je potrebna ako koristite operativni sistem Windows kako konzolna aplikacija ne bi previše brzo nestala. Pošto nije sastavni deo C++-a, biće preskočena u svim narednim primerima u knjizi. Uvek je možete sami dodati iznad reda naredbe return 0; ako bude potrebno.
Kako ovo radi Verovali ili ne, ovaj jednostavan program sadrži samo jednu pravu naredbu. Ostatak možete za sada da smatrate šablonom – nešto što mora da se stavi, ali može bez brige da se zanemari. (Ako vas interesuju detalji, u sledećem “Inter- mecu” se opisuje direktiva #include .) U sledećoj sintaksi su zacrnjeni standardni, obavezni delovi. Za sada, ne brinite zašto su obavezni; samo ih upotrebite. Među vitičaste zagrade ({ }), sta- vićete redove vašeg programa – koji se u ovom slučaju sastoji samo od jedne važne naredbe.
Kak
o^ o
vo radi
#include
int main(){ Ovde_stavite_svoje_naredbe! return 0 ; } U ovom programu postoji samo jedna prava naredba (koju ubacujete u peti red prethodnog šablona). Nemojte da zaboravite znak tačka i zarez (;)!
cout << “Bez brige, C++ je ovde!”; Šta je to cout? To je jedan objekat – o tom konceptu će biti mnogo reči u drugoj polovini knjige. U međuvremenu, dovoljno je da znate da cout zna- či „izlaz na konzolu” (engl. console output). Drugim rečima – on predstavlja ekran računara. Kada pošaljete nešto na ekran, to se tamo štampa, kao što biste i očekivali. U C++-u se izlaz štampa tako što se upotrebi cout i levi operator „toka” (<<) koji pokazuje tok podataka od vrednosti (u ovom slučaju, tekstualnog stringa „Bez brige, C++ je ovde!”) ka konzoli. Zamislite slikovito:
“Bez brige, C++ je ovde!”
cout << “Bez brige, C++ je ovde!”;
Konzola (izlaz)
Nemojte zaboraviti znak tačka i zarez (;). Svaka C++ naredba, uz vrlo malo izuzetaka, mora da se završi znakom tačka i zarez. Iz tehničkih razloga, cout mora uvek da se nalazi na levoj strani kad god se koristi. U ovom slučaju podaci teku ulevo. Primenite „strelice” ulevo, to su ustvari dva znaka manje od (<<), jedan do drugog. U sledećoj tabeli su još neke jednostavne primene objekta cout :
NAREDBA AKCIJA cout << “Volite li C++?”; cout << “Mislim,”; cout << “Dakle programiram.”;
Štampa reči „Volite li C++?” Štampa reč „Mislim,” Štampa reči „Dakle programiram.”