C++ programiranje za apsolutne početnike Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
Nakon što se
spremljeni projekt
učitao, mogli bismo
biti zbunjeni činjeni-
com da ga ne vidi-
mo u prostoru u
kojem smo očeki-
vali da ćemo ga
vidjeti.
odluke
Polja
Sažimanje Veliki pro- Objekti Obrada teksta
Da bismo naš program vidjeli, ovdje kliknemo na grami
naziv programa, u našem slučaju to je main.cpp.
koda
PRO - MIL 51
Varijable
52 PRO - MIL
PRO - MIL Varijable
Sažimanje Veliki pro- Objekti Obrada Polja Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj C++ programiranje za apsolutne početnike
53 koda grami teksta odluke program
Varijable
Osnovne računske operacije
#include <cstdlib> Sada ćemo računalo iskoristiti za računa-
#include <iostream> nje.
using namespace std; Unesimo ovaj program u C++ programsko
okruženje.
int main()
{ Klikom na Kompajlaj i pokreni ga pokre-
nemo. Dobit ćemo ovakav rezultat.
cout << 2+3;
cout << endl;
system("PAUSE");
return 0;
}
Ovaj program zbraja #include <cstdlib> U ovom redu
broj 2 i broj 3, a re- #include <iostream> naređujemo ra-
zultat koji je u ovom čunalu da zbroj
slučaju broj 5 ispisu- using namespace std; broja 2 i broja 3,
je na zaslon. a to je broj 5,
Pogledajmo sada int main() ispiše na zaslon
strukturu našeg no- { računala.
vog programa.
cout << 2+3; U ovom redu
Početak i kraj progra- naređujemo ra-
ma isti su kao i do cout << endl; čunalo da skoči
sada, dok je srednji u novi red.
dio promijenjen. system("PAUSE");
return 0; PRO - MIL
}
54
C++ programiranje za apsolutne početnike
Pokušajmo zbrojiti neka druga dva broja, #include <cstdlib> Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
npr. 8 i 4. #include <iostream>
Pokrenimo program i vidjet ćemo da će using namespace std;
računalo zbrojiti ta dva broja.
int main()
{ program
cout << 8+4;
cout << endl;
system("PAUSE");
return 0;
}
odluke
Pokušajmo neku drugu računsku opera- #include <cstdlib> Polja
ciju, npr. oduzimanje. #include <iostream>
U ovom programu oduzet ćemo od broja using namespace std;
12 broj 8.
int main()
Pokrenimo program i pogledajmo naš {
rezultat.
cout << 12-8;
cout << endl; Sažimanje Veliki pro- Objekti Obrada teksta
system("PAUSE");
return 0;
}
grami
koda
PRO - MIL 55
Varijable
Dok smo za zbrajanje i oduzimanje koristili #include <cstdlib>
oznake uobičajene u matematici, za množe- #include <iostream>
nje ćemo koristiti zvjezdicu. Nalazi se iznad
broja devet s desne strane, na brojčanoj tip- using namespace std;
kovnici.
int main()
Množenje broja 2 i broja 3 zapisat ćemo kao {
2*3.
cout << 2*3;
Pogledamo rezultat. cout << endl;
system("PAUSE");
return 0;
}
#include <cstdlib> Oznaka za dijeljenje tako-
#include <iostream> đer ima drugačiji oblik od
onog na koji smo navikli u
using namespace std; matematici. Kao oznaka
dijeljenje koristi se kosa
int main() crta koja se nalazi iznad
{ broja 8 s desne strane,
na brojčanom dijelu tip-
cout << 12/4; kovnice.
cout << endl; 12 podijeljeno sa 4 napi-
system("PAUSE"); sat ćemo kao 12/4.
return 0; Pokrenimo program i po-
} gledamo rezultat.
Na prvi pogled učinit će nam se PRO - MIL
da je program za dijeljenje is-
pravan.
56
C++ programiranje za apsolutne početnike
#include <cstdlib> Pokušajmo ovdje umjesto 12/4 staviti 13/4. Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
#include <iostream> Pokrenimo program i pogledajmo rezultat.
Rezultat je očigledno pogrešan.
using namespace std;
program
int main()
{
cout << 13/4;
cout << endl;
system("PAUSE");
return 0;
}
#include <cstdlib> Pokušajmo ovdje staviti odluke
#include <iostream> 15/3 i pokrenimo program.
using namespace std; Rezultat je ispravan.
int main()
{
cout << 15/3;
cout << endl;
system("PAUSE");
return 0;
}
Umjesto 15/3 stavimo 17/3 i Polja
pokrenimo program.
#include <cstdlib> Sažimanje Veliki pro- Objekti Obrada teksta
#include <iostream>
Rezultat je pogrešan. Mogli bismo grami
using namespace std; zaključiti da će dijeljenje biti isprav-
no, ako je rezultat cjelobrojni broj. koda
int main()
{ Ako je rezultat decimalni broj, dolazi
do greške.
cout << 17/3;
cout << endl; Kako riješiti taj problem, vidjet ćemo
system("PAUSE"); nešto kasnije u ovom poglavlju.
return 0;
}
PRO - MIL 57
Varijable #include <cstdlib>
#include <iostream>
Varijable
using namespace std;
Vidjeli smo da osnovne računske ope-
racije, osim dijeljenja, funkcioniraju, ali int main()
ne baš na način kako smo mi zamišljali {
da bi program trebao raditi.
int a;
Problem naših dosadašnjih programa int b;
jest u tome što svaki program vrši ra- int c;
čunsku operaciju između dva konkret- cin >> a;
na broja i ako želimo izvršiti računsku cin >> b;
operaciju između druga dva broja, pro- c = a + b;
gram moramo iznova pisati i prevoditi. cout << c;
cout << endl;
Postavlja se pitanje bismo li mogli napi- system("PAUSE");
sati npr. program za zbrajanje koji ne bi return 0;
zbrajao dva konkretna broja, nego bi }
mogao zbrojiti bilo koja dva broja.
To je, naravno, moguće. Unesimo, pre-
vedimo i pokrenimo ovaj program.
Nakon pokretanja programa
ugledat ćemo zbunjujući crni
ekran bez sadržaja.
Na tipkovnici iza-
beremo prvi broj
koji želimo zbrajati,
npr. broj 3 i zatim
pritisnemo Enter
tipku na tipkovnici.
58 PRO - MIL
C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
Na tipkovnici izaberemo
drugi broj koji želimo
zbrajati, npr. broj 5 i
zatim pritisnemo Enter
tipku na tipkovnici.
Nakon pritiska na
Enter tipku na tip-
kovnici, a zaslonu
računala ugledat
ćemo rezultat
zbrajanja broja 3 i
broja 5, a to je broj
8.
odluke
Pokrenimo bez ikakvih izmjena isti prog- Na sličan način kao i u Polja
ram još jednom, ali sada unesimo neke prethodnom primjeru,
druge brojeve, npr. broj 12 i broj 14. dakle tako da nakon sva-
kog unosa broja pritisne-
mo tipku Enter na tipkov- Sažimanje Veliki pro- Objekti Obrada teksta
nici, unesimo brojeve 12 i
14. grami
Kao rezultat dobit ćemo koda
njihov zbroj, a to je broj
26.
Vidimo da smo uspjeli
postići ono što smo želje-
li. Pomoću jednog progra-
ma možemo zbrajati razli-
čite brojeve, bez da prog-
ram moramo mijenjati.
PRO - MIL 59
Varijable Početak programa. a
Analiza programa Naredbom int formirat b
ćemo u računalu pros-
#include <cstdlib> tor poput posude. U taj c
#include <iostream> prostor možemo spre-
using namespace std; mati brojeve. 3
int main() a
{ Formirat ćemo tri pros- 5
tora, prostor a, prostor b
int a; b i prostor c.
int b;
int c;
cin >> a; Naredbom cin u prostor a i prostor b
cin >> b; spremit ćemo broj koji smo unijeli
preko tipkovnice, npr. broj 3 i broj 5.
c = a + b;
Zbrojimo sadržaj prostora a i prostora
b, a rezultat spremimo u prostor c.
cout << c; 835
c=a+b
cout << endl; Sadržaj prostora c, a to je c
rezultat zbrajanja, ispišemo 8
system("PAUSE"); na zaslon računala.
return 0; PRO - MIL
} Skok u novi red.
60 Kraj programa.
C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
Ovom naredbom formiramo prostor u računalu u koji ćemo spremati brojeve.
Na početku taj prostor možemo zamisliti kao posudice u koje možemo staviti
brojeve, iako su to zapravo rezervirana mjesta u memoriji našeg računala.
Naredba za formiranje int a ; Oznaka ; obvezno dolazi program
prostora. na kraju naredbe.
int b; Ovdje se nalazi naziv prostora. odluke
int c;
Zašto svaki prostor ima naziv???
Ovim naredbama se for-
miraju još dva prostora, Zato što u jednom programu može-
prostor b i prostor c. mo imati više takvih prostora, pa
nam naziv prostora omogućuje da ih
razlikujemo.
Nakon formiranja prostor za spremanje brojeva je prazan i bio bi nam sasvim Polja
beskoristan kad u njega ne bismo mogli staviti neki broj.
U taj prostor broj možemo staviti na više načina, a jedan od njih je da ga une-
semo pomoću tipkovnice. Za to ćemo koristiti naredbu cin.
Sažimanje Veliki pro- Objekti Obrada teksta
Naredba za unos. cin >> a ; Oznaka ; obvezno dolazi
na kraju naredbe.
Ovdje stavljamo oznaku prostora u grami
koji ćemo unijeti broj. Dakle, broj
Ova oznaka stavlja se ćemo unijeti u prostor a i ne u neki koda
ispred naziva prostora u drugi prostor, npr. b ili c.
koji ćemo unijeti broj.
61
PRO - MIL
Varijable Naredba slična prethodnoj, samo što će se u
ovom slučaju unijeti broj spremiti u prostor b.
cin >> b ;
Osim što u te prostore možemo spremati brojeve, između njih možemo izvoditi
računske operacije na isti način kao što smo ih izvodili između brojeva.
U našem slučaju zbrojit ćemo sadržaj prostora a i sadržaj prostora b, a rezultat
tog zbrajanja spremit ćemo u prostor c.
Prostor c u koji će- c=a+b; Oznaka ; obvezno
mo spremiti rezultat. dolazi na kraju na-
redbe.
Znak jednakosti ima Oznaka računske ope-
istu funkciju kao i u racije između prostora.
matematici.
Naziv prvog prostora. Naziv drugog prostora.
Nakon što se naredba c = a + b; izvrši, u prostoru c nalazit će se rezultat zbra-
janja sadržaja prostora a i prostora b, ali da korisnik vidio rezultat moramo nare-
diti računalu da sadržaj prostora c ispiše na zaslon računala. To ćemo učiniti
ovom naredbom.
Naredba za ispis. cout << c ; Oznaka ; obavezno
dolazi na kraju na-
redbe.
Oznaka ispred sadr- Prostor c u koji će-
žaja koji ispisujemo. mo spremiti rezultat.
62 PRO - MIL
C++ programiranje za apsolutne početnike
Varijacije programa Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
Da bismo bolje razumjeli izradu programa koji koriste prostor za spremanje
brojeva, napravit ćemo niz izmjena na našem programu i opažat ćemo kako te
izmijene utječu na rad program.
#include <cstdlib> Ovaj program ima potpuno istu struktu- program
#include <iostream> ru kao prethodni, samo što ima drugači-
je nazive prostora za spremanje broje- odluke
using namespace std; va.
int main() Prvi prostor više se ne naziva a, nego
{ prvi. Drugi prostor više se ne naziva b,
nego drugi. Treći prostor više se ne
int prvi; naziva c, nego rezultat.
int drugi;
int rezultat; Prevedimo i pokrenimo ovaj program i
cin >> prvi; vidjet ćemo da radi jednako kao i pret-
cin >> drugi; hodni program.
rezultat = prvi + drugi;
cout << rezultat;
cout << endl;
system("PAUSE");
return 0;
}
Sad se postavlja pitanje po kojoj logici se biraju nazivi prostora za spre- Polja
manje brojeva. Pogledajmo neka pravila i sugestije.
Sažimanje Veliki pro- Objekti Obrada teksta
- Ne smiju se koristi naredbe; npr. int aaa; je dozvoljeno, a int cout; nije.
grami
- Koriste se samo brojevi i slova engleske abecede, dakle bez čžš.
koda
- Naziv ne smije sadržavati razmak; PrviBroj i prvi_broj je dozvoljeno, a
prvi broj nije.
- Ako naziv sadrži brojeve, prvi znak mora biti slovo, dakle a1 je dozvolje-
no, a 1a nije.
- Pametno je da naziv prostora govori što se u prostoru nalazi. Bolje je da
prostor u koji ćemo spremati površinu nazovemo povrsina nego qqy1.
- Dva različita prostora ne mogu imati isto ime.
PRO - MIL 63
Varijable Pokušamo li pokrenuti ovaj program, ra-
čunalo će dojaviti grešku.
#include <cstdlib>
#include <iostream> Do greške je došlo zato što smo ovdje
formirali prostor A, a ovdje smo pokušali
using namespace std; unijeti broj u prostor a.
int main() Računalo razlikuje velika i mala slova pa
{ njemu prostor a i prostor A nisu isto.
int A; S njegove točke gledišta mi ovdje poku-
int B; šavamo unijeti broj u prostor koji ne pos-
int c; toji.
cin >> a;
cin >> b; Zato će nas računalo u komentaru greške
c = a + b; upozoriti da ne zna što je to a.
cout << c;
cout << endl;
system("PAUSE");
return 0;
}
64 PRO - MIL
#include <cstdlib> C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
#include <iostream>
U ovom programu ovu naredbu nismo napi-
using namespace sali u ispravnom obliku kao cout << c; nego
std; u obliku cout << "c"; dakle sadržaj koji se
ispisuje stavili smo u navodnike kao što
int main() smo to naviknuli prilikom ispisa teksta koriš-
{ tenjem cout naredbe.
int a; Pokrenemo li ovaj program, on će se izvršiti
int b; i računalo nam neće dojaviti nikakvu greš-
int c; ku, ali kao rezultat nećemo dobiti ono što
cin >> a; smo očekivali.
cin >> b;
c = a + b; Vidimo da smo u prostor a unijeli 8, u pros-
cout << "c"; tor b unijeli smo 4, ali kao rezultat nismo
cout << endl; dobili broj 12, nego slovo c.
system("PAUSE");
return 0; Zašto?
}
cout << c; - ispisuje sadržaj prostora c.
odluke
cout << "c"; - ispisuje slovo c.
Polja
Ovaj tip greške veo- Sažimanje Veliki pro- Objekti Obrada teksta
ma je teško pronaći
u složenim programi- grami
ma, budući da raču-
nalo neće dojaviti koda
grešku i poziciju gre-
ške prilikom prevo- 65
đenja.
To se događa zato
što je program for-
malno ispravno napi-
san; cout << "c"; je
ispravna naredba, ali
ne radi ono što smo
htjeli.
PRO - MIL
Varijable Prostore za spremanje brojeva možemo
koristiti i za druge matematičke operaci-
#include <cstdlib> je.
#include <iostream>
Ovdje možemo vidjeti program za oduzi-
using namespace std; manje.
int main() Od sadržaja prostora broj1 oduzet će se
{ sadržaj prostora broj2, a rezultat će se
spremiti u prostor rezultat.
int broj1;
int broj2;
int rezultat;
cin >> broj1;
cin >> broj2;
rezultat = broj1 - broj2;
cout << rezultat;
cout << endl;
system("PAUSE");
return 0;
}
#include <cstdlib> Na sličan način možemo napraviti program
#include <iostream> za množenje sadržaja dvaju prostora.
using namespace std;
int main()
{
int broj1;
int broj2;
int rezultat;
cin >> broj1;
cin >> broj2;
rezultat = broj1 * broj2;
cout << rezultat;
cout << endl;
system("PAUSE");
return 0;
}
66 PRO - MIL
Problem dijeljenja C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
#include <cstdlib> Ostao nam je neriješen problem dijelje-
#include <iostream> nja.
Sadržaje prostora za spremanje broje-
using namespace std; va možemo dijeliti, ali će kao i prošli put
kad smo pokušali dijeliti, rezultat biti
int main() ispravan samo za brojeve čiji rezultat
{ dijeljenja nije decimalni broj.
int broj1; Ako je rezultat dijeljenja decimalni broj,
int broj2; rezultat će biti pogrešan.
int rezultat;
cin >> broj1; odluke
cin >> broj2;
rezultat = broj1 / broj2;
cout << rezultat;
cout << endl;
system("PAUSE");
return 0;
}
#include <cstdlib> Problem ćemo riješiti ovako napisanim Polja
#include <iostream> programom. Umjesto naredbom int,
prostor za spremanje brojeva formirat
using namespace std; ćemo naredbom float;
Pokrenemo li taj program, dobit ćemo
ispravan rezultat.
int main() Sažimanje Veliki pro- Objekti Obrada teksta
{
grami
float broj1;
float broj2; koda
float rezultat;
cin >> broj1;
cin >> broj2;
rezultat = broj1 / broj2;
cout << rezultat;
cout << endl;
system("PAUSE");
return 0;
}
PRO - MIL 67
Varijable
Ovo je još jedan način na koji možemo formirati prostor za spremanje brojeva.
U čemu je razlika između prostora formiranog int naredbom i prostora formira-
nog float naredbom???
U prostor formiran int naredbom možemo spremati samo brojeve bez decimal-
nog zareza, a u prostore formirane float naredbom možemo spremati brojeve
s decimalnim zarezom.
Naredba za formi- float broj1 ; Oznaka ; obvezno
ranje prostora za dolazi na kraju na-
spremanje brojeva redbe.
s decimalnim zare-
zom.
Naziv prostora. Uočimo da iz-
među broj i 1 nema razmaka.
Postavlja se pitanje bismo li mogli u naš program unijeti broj s decimalnim zare-
zom. Pokrenimo još jednom program iz prethodnog primjera i pokušajmo.
Vidimo da je moguće unijeti
decimalne brojeve u naš
program.
Broj 16,25 podijelili smo
brojem 2,5 i kao rezultat
ispravno dobili 6,5.
Pri tome moramo imati u
vidu da C++ kao decimalni
zarez zapravo ne koristi
zarez, nego točku.
Dakle, ako želimo unijeti
npr. 3,14 unijet ćemo 3.14
korištenjem tipkovnice.
68 PRO - MIL
C++ programiranje za apsolutne početnike
Uljepšavanje programa Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
Naši programi doduše rade, ali su tako ružni da bi teško bili ružniji. Korisnika program
dočeka crni ekran bez ikakvih uputa. Nakon što unesemo dva broja, dobit
ćemo treći bez ikakvog komentara što taj treći broj predstavlja.
Budući da smo mi napisali program, mi znamo da treba unijeti dva broja, da
nakon svakog unosa treba pritisnuti tipku Enter i mi znamo što predstavlja
treći broj koji smo dobili kao rezultat, ali netko drugi veoma bi teško koristio
naš program. Unesite i pokrenite ovaj program.
#include <cstdlib> U ovom programu na odluke
#include <iostream> početku programa, te
prije svakog unosa i Polja
using namespace std; ispisa rezultata nared-
bom cout ispisali smo
int main() adekvatan komentar
{ koji pomaže korisniku
da lakše shvati čemu
float broj1; program služi, što mora
float broj2; unijeti i što je dobio kao
float rezultat; rezultat.
cout << "Dijeljenje." << endl;
cout << "Unesite prvi broj." << endl; Ovakav program puno
cin >> broj1; je ugodniji za upotrebu
cout << "Unesite drugi broj." << endl; od programa bez ko-
cin >> broj2; mentara.
rezultat = broj1 / broj2;
cout << "Rezultat dijeljenja je:" << endl; Sažimanje Veliki pro- Objekti Obrada teksta
cout << rezultat;
cout << endl;
system("PAUSE");
return 0;
}
grami
koda
PRO - MIL 69
Varijable
Prethodni program mogli bismo još malo uljepšati dodavanjem praznih redova.
Unesimo i pokrenimo ovaj program.
#include <cstdlib> Naslov programa.
#include <iostream>
using namespace std; Dva skoka u novi red.
int main()
{ Komentar prvog unosa.
float broj1;
float broj2;
float rezultat;
cout << "Dijeljenje." << endl;
cout << endl; Prvi unos.
cout << endl;
cout << "Unesite prvi broj." << endl;
cin >> broj1; Prazni red.
cout << endl;
cout << "Unesite drugi broj." << endl;
cin >> broj2; Komentar drugog unosa.
cout << endl;
rezultat = broj1 / broj2;
cout << "Rezultat dijeljenja je:" << endl;
cout << rezultat; Drugi unos.
cout << endl;
cout << endl;
system("PAUSE"); Komentar rezultata.
return 0;
}
Dva skoka u novi red. Ispis rezultata.
70 PRO - MIL
C++ programiranje za apsolutne početnike
Nekoliko primjera programa Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
// ********************************* Ovo je program za program
// Program za izračun površine izračun površine
// ********************************* pravokutnika. Uni- odluke
jet ćemo ga u ra-
#include <cstdlib> čunalo i pokrenuti.
#include <iostream>
Struktura je ista
using namespace std; kao i struktura
prethodnog prog-
int main() rama, ali su prila-
{ gođeni komentari i
nazivi prostora za
float stranica_A; spremanje broje-
float stranica_B; va.
float povrsina;
cout << "Povrsina." << endl; Jedina novost je
cout << endl; komentar na po-
cout << endl; četku programa
cout << "Unesite prvu stranicu." << endl; koji se nalazi iza //
cin >> stranica_A; oznaka i opisuje
cout << endl; namjenu progra-
cout << "Unesite drugu stranicu." << endl; ma.
cin >> stranica_B;
cout << endl; Polja
povrsina = stranica_A * stranica_B;
cout << "Povrsina je:" << endl; Sažimanje Veliki pro- Objekti Obrada teksta
cout << povrsina;
cout << endl;
cout << endl;
system("PAUSE");
return 0;
}
Komentar započinje // ozna- grami
kom i pomaže nam da se
lakše snađemo ako program Prilikom prevođenja programa, kad prevo- koda
želimo kasnije koristiti. ditelj naiđe na // oznaku, skače u novi red
ne prevodeći ostatak reda.
Komentirati možemo namje-
nu programa ili pojedine
segmente programa.
PRO - MIL 71
Varijable
// ****************************** Osim što komentare
// Program za izračun brzine možemo pisati u zase-
// ****************************** bnom redu, možemo ih
pisati i na kraju nared-
#include <cstdlib> bi.
#include <iostream>
Pri tome imajmo na
using namespace std; umu da je
int main() float put; // komentar
{ ispravno, ali
float put; // prostor za put // komentar float put;
float vrijeme; // prostor za vrijeme ili
float brzina; // prostor za brzinu float // komentar put;
cout << "Brzina." << endl; nije. Dakle, ako ko-
mentar unosimo u red
cout << endl; s naredbom, komentar
mora biti na kraju reda.
cout << endl;
Postavlja se pitanje čemu
cout << "Unesite prevaljeni put." << endl; takvi komentari služe. Ako
smo upravo napisali prog-
cin >> put; ram, a program ima deset
redova, onda nam komen-
cout << endl; tari ne trebaju.
cout << "Unesite vrijeme." << endl; Ako napišemo veći prog-
ram, a želimo ga korigirati
cin >> vrijeme; nakon dvije godine, onda će
nam komentari pojedinih
cout << endl; dijelova programa uvelike
pomoći pri snalaženju u
brzina = put / vrijeme; programu.
cout << "Brzina je:" << endl; Komentari su korisni i ako
moramo korigirati program
cout << brzina; koji je netko drugi pisao.
cout << endl;
cout << endl;
system("PAUSE");
return 0;
}
72 PRO - MIL
C++ programiranje za apsolutne početnike
// ********************************************* Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
// Program za izračun volumena kvadrata
// *********************************************
#include <cstdlib>
#include <iostream> Ovo je primjer programa za izračun volu- program
mena kvadrata.
using namespace std;
Pokušajmo za vježbu sami smisliti neko-
int main() liko sličnih programa.
{
float stranica_A;
float stranica_B;
float stranica_C;
float volumen;
cout << "Izracun volumena." << endl;
cout << endl;
cout << "Unesite stranicu a." << endl;
cin >> stranica_A;
cout << "Unesite stranicu b." << endl; odluke
cin >> stranica_B;
cout << "Unesite stranicu c." << endl;
cin >> stranica_C;
cout << endl;
volumen = stranica_A * stranica_B * stranica_C;
cout << "Volumen je:" << endl;
cout << volumen;
cout << endl;
cout << endl; Polja
system("PAUSE");
return 0;
} Sažimanje Veliki pro- Objekti Obrada
teksta
grami
koda
PRO - MIL 73
Grafika
74 PRO - MIL
PRO - MIL Grafika
Sažimanje Veliki pro- Objekti Obrada Polja Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj C++ programiranje za apsolutne početnike
75 koda grami teksta odluke program
Grafika
Podešavanje programskog okruženja
1 - Kliknemo na Projekt. Da bi grafika funkcionirala,
2 - Zatim na Postavke projekta. prilikom instalacije progra-
ma moramo instalirati do-
datke kojim programskom
okruženju omogućuje pri-
kaz grafike.
Ako to nismo učinili, vrati-
mo se na uvodno poglavlje
i instalirajmo potrebne do-
datke.
Nakon toga podesit ćemo
programsko okruženje.
1 - Kliknemo na Parametes.
2 - Ovdje unesemo -lbgi -lgdi32
Kliknemo na Ok.
76 PRO - MIL
C++ programiranje za apsolutne početnike
Naš prvi grafički program Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
#include <cstdlib> Unesimo i pokrenimo ovaj prog-
#include <iostream> ram. Uočimo da su početak i kraj
#include <winbgim.h> programa izmijenjeni.
using namespace std; Na početku dodan je ovaj red, a program
na kraju je izbačena naredba:
int main() system("PAUSE");
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK); Klikom na Kompajlaj i pokreni pokrenemo
cleardevice(); program.
circle(320,240,180);
getch(); Otvorit će se dva prozora:
closegraph();
odluke
return 0; - tekstualni koji smo do sada koristili
}
- grafički u kojem će računalo nacrtati krug.
Polja
Sažimanje Veliki pro- Objekti Obrada teksta
grami
koda
PRO - MIL 77
Grafika Početak programa. Za razliku od dosa-
dašnjih programa, u ovom smo korigi-
Analiza programa rali početak dodavši mu još jednu na-
redbu.
#include <cstdlib>
#include <iostream> Ovom naredbom u program uključuje-
#include <winbgim.h> mo grafičke naredbe.
using namespace std;
int main() Ovdje određujemo veličinu grafičkog
{ prozora i broj boja.
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, ""); Otvaranje grafičkog prozora.
setbkcolor(WHITE); Određivanje boje pozadine.
setcolor(BLACK);
cleardevice(); Određivanje boje crte.
circle(320,240,180);
Briše stari sadržaj zaslona i stare pos-
78 tavke boja. Pokušajmo pokrenuti prog-
ram bez ove naredbe.
Naredba za crtanje kruga.
PRO - MIL
getch(); C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
closegraph();
Ovom naredbom zaustavljamo izvođe-
nje programa do trenutka dok ne priti-
snemo neku tipku na tipkovnici. Ima
istu namjenu kao i system(“PAUSE”)
u “normalnim” programima.
Da bismo bolje razumjeli ovu naredbu,
izbacimo je iz programa i pokušajmo
pokrenuti program bez nje.
Zatvaranje grafičkog prozora.
return 0; Kraj programa. Uočimo da ovdje više odluke
} nema naredbe system(“PAUSE”); Njenu
funkciju sada ima getch(); naredba.
Pogledajmo sada pobliže određene naredbe. Ovom naredbom određujemo tip
grafičkog prozora.
Polja
int gdriver = 9 ; Ovaj broj može biti između 1 i Sažimanje Veliki pro- Objekti Obrada teksta
10. Ako je 9, dobit ćemo VGA
PRO - MIL prozor čija maksimalna veličina grami
može biti 640 X 480 točaka i 16
boja. koda
Ako umjesto broja 9 stavimo
broj 6, dobit ćemo IBM 8514
prozor čija maksimalna veličina
može biti 1024 X 768 točaka i
256 boja.
Upotrijebimo li druge brojeve,
dobit ćemo manje prozore s ma-
njim brojem boja.
79
Grafika
Nakon što smo naredbom int gdriver = 9; odabrali tip grafičkog prozora, ovom
naredbom biramo rezoluciju grafičkog prozora.
int gmode = 2 ; Značenje ovog broja ovisi o tipu grafičkog pro-
zora koji smo odabrali.
Ako smo naredbom int gdriver = 9; odabrali
VGA prozor, stavimo li ovdje broj 0, dobit ćemo
prozor veličine 640 X 200 točaka. Stavimo li 1,
dobit ćemo prozor veličine 640 X 350 točaka, a
stavimo li broj 2 koji smo mi odabrali, dobit će-
mo prozor veličine 640 X 480 točaka.
Ako smo naredbom int gdriver = 6 ; odabrali
IBM 8514 prozor, stavimo li ovdje broj 0, dobit
ćemo prozor veličine 640 X 480 točaka, a sta-
vimo li broj 1, dobit ćemo prozor veličine 1024
X 768 točaka.
Ovom naredbom određuje se boja po- Ovdje unosimo naziv bo-
zadine. U našem slučaju bit će bijela. je. Naziv boje može biti:
setbkcolor( WHITE ); BLACK,
BLUE,
80 GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY,
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE.
PRO - MIL
C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
Osim navođenja imena boja, boje možemo odrediti i navođenjem njihove broj-
čane vrijednosti.
setbkcolor(COLOR( 255, 255, 255 )); Plava. program
Crvena. Zelena.
Dodat ćemo naredbu COLOR iza koje se nalaze tri broja čija vrijednost mo- odluke
že biti između 0 i 255.
Boje u računalu sastoje se od tri boje; crvene, zelene i plave. Sve ostale
boje nastaju miješanjem tih boja.
Prvim brojem određujemo intenzitet crvene boje, drugim intenzitet zelene i
trećim intenzitet plave boje.
Naredbom setbkcolor(COLOR(255,255,255)); dobit ćemo bijelu boju, a na-
redbom setbkcolor(COLOR(0,0,0)); dobit ćemo crnu boju.
Polja
Ovom naredbom određuje se boja kojom crtamo. Koristimo iste nazive boja Sažimanje Veliki pro- Objekti Obrada teksta
kao i u prethodnoj naredbi.
setcolor(BLACK); Kao i u prethodnoj naredbi, grami
setcolor(COLOR (0,0,0)); boje možemo odrediti navo-
đenjem njihovog naziva, a koda
možemo i pomoću brojeva
upotrebom naredbe COLOR.
PRO - MIL 81
Grafika
Ovo je naredba za crtanje kruga.
circle( 320, 240, 180 ) ;
Udaljenost središta od Udaljenost središta od Polumjer kruga.
lijevog ruba prozora gornjeg ruba prozora
240 640
320
Širina prozora,
180 u našem slu-
480 čaju 640 toča-
ka.
Visina prozora, u našem
slučaju 480 točaka.
82 PRO - MIL
Varijacije programa C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
#include <cstdlib> Napravit ćemo nekoliko prim- odluke
#include <iostream> jera da bismo lakše razumjeli
#include <winbgim.h> kako radi naredba za crtanje
kruga.
using namespace std;
Ovaj program sličan je pretho-
int main() dnom. Razlika je u tome što je
{ prethodni crtao samo jedan
krug, a ovaj će nacrtati nekoli-
int gdriver = 9; ko krugova različitog polumje-
int gmode = 2; ra, ali sa središtem u istoj toč-
initgraph(&gdriver, &gmode, ""); ki.
setbkcolor(WHITE);
setcolor(BLACK); Ovdje se nalaze četiri nared-
cleardevice(); be za crtanje četiri kruga.
circle(320,240,220);
circle(320,240,165); Pokrenemo li ovaj program,
circle(320,240,110); trebali bismo dobiti ovakav
circle(320,240,55); rezultat.
getch();
closegraph();
return 0;
}
Polja
Pokušajmo program pro- Sažimanje Veliki pro- Objekti Obrada teksta
mijeniti tako da povećamo
ili smanjimo broj krugova.
Pokušajmo promijeniti
brojeve koji određuju po-
lumjer kruga i položaj sre-
dišta kruga.
grami
koda
PRO - MIL 83
Grafika U ovom primjeru napravit
ćemo tri jednaka kruga, je-
#include <cstdlib> dan pored drugoga, što ćemo
#include <iostream> postići promjenom udaljenos-
#include <winbgim.h> ti središta krugova od lijevog
ruba prozora.
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle(160,140,80);
circle(320,140,80);
circle(480,140,80);
getch();
closegraph();
return 0;
}
Pogledajmo još nekoliko mogućnosti. #include <cstdlib>
U ovom slučaju promjenom udalje- #include <iostream>
nosti od gornjeg ruba prozora dobili #include <winbgim.h>
smo tri kruga, jedan iznad drugoga.
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle (320, 60, 60);
circle (320, 180, 60);
circle (320, 300, 60);
getch();
closegraph();
return 0;
}
84 PRO - MIL
C++ programiranje za apsolutne početnike
#include <cstdlib> Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
#include <iostream>
#include <winbgim.h> odluke
using namespace std; Polja
int main() Sažimanje Veliki pro- Objekti Obrada teksta
{
grami
int gdriver = 9;
int gmode = 2; koda
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE); 85
setcolor(BLACK);
cleardevice();
circle (60, 60, 60);
circle (180, 180, 60);
circle (300, 300, 60);
getch();
closegraph();
return 0;
}
#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle(320,240,220);
circle(220,140,50);
circle(420,140,50);
circle(320,240,30);
getch();
closegraph();
return 0;
}
PRO - MIL
Grafika Osim kružnice možemo nacrtati
i druge oblike, npr. pravokutnik.
Crtanje pravokutnika
Ovdje u program unesemo na-
#include <cstdlib> redbu za crtanje pravokutnika,
#include <iostream> a na zaslonu računala dobit
#include <winbgim.h> ćemo ovakav rezultat.
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
rectangle (160, 100, 480, 380);
getch();
closegraph();
return 0;
}
rectangle ( 160, 100, 480, 380 ); Naredba za crtanje
pravokutnika.
100 640
160 380 Naredbom rectan-
gle crtamo pravo-
480 kutnik, a sa četiri
480 broja koji se nala-
ze iza naredbe
86 rectangle određu-
jemo položaj gor-
njeg lijevog i do-
njeg desnog ugla
pravokutnika.
Funkciju pojedinih
brojeva možemo
vidjeti na crtežu.
PRO - MIL
C++ programiranje za apsolutne početnike
#include <cstdlib> Međusobno možemo kombinirati Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
#include <iostream> više pravokutnika.
#include <winbgim.h>
program
using namespace std;
odluke
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
rectangle (160, 100, 480, 380);
rectangle (190, 130, 450, 350);
rectangle (220, 160, 420, 320);
rectangle (250, 190, 390, 290);
getch();
closegraph();
return 0;
}
Pravokutnik možemo kombini- #include <cstdlib> Polja
rati s drugim oblicima. #include <iostream>
Pokušajmo za vježbu sami iz- #include <winbgim.h> Sažimanje Veliki pro- Objekti Obrada teksta
misliti nekoliko primjera, npr.
deblo stabla nacrtamo kao pra- using namespace std; grami
vokutnik, a krošnju kao krug.
int main() koda
PRO - MIL {
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle (320, 240, 220);
circle (220, 140, 50);
circle (420, 140, 50);
circle (320, 240, 30);
rectangle (260, 342, 380, 338);
getch();
closegraph();
return 0;
}
87
Grafika Crtu možemo nacrtati na više
načina, a uporaba naredbe line
Crtanje crte jedan je od njih.
#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
line (120, 100, 500, 380);
getch();
closegraph();
return 0;
}
line ( 160, 100, 480, 380 ); Naredba za crtanje
crte.
100 640
120 380 Naredbom line
crtamo crtu, a sa
500 četiri broja koji se
480 nalaze iza nared-
be line određuje-
88 mo početak i kraj
crte.
Funkciju pojedinih
brojeva možemo
vidjeti na crtežu.
PRO - MIL
C++ programiranje za apsolutne početnike
#include <cstdlib> Napravimo nekoliko crteža upo- Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
#include <iostream> rabom naredbe za crtanje crte.
#include <winbgim.h>
program
using namespace std;
odluke
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
line (100, 240, 540, 240);
line (320, 20, 320, 460);
getch();
closegraph();
return 0;
}
#include <cstdlib> Polja
#include <iostream>
#include <winbgim.h> Sažimanje Veliki pro- Objekti Obrada teksta
using namespace std; grami
int main() koda
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle (320, 240, 220);
circle (320, 240, 165);
circle (320, 240, 110);
circle (320, 240, 55);
line (100, 240, 540, 240);
line (320, 20, 320, 460);
getch();
closegraph();
return 0;
}
PRO - MIL 89
Grafika Osim uporabom naredbe line,
crtu možemo nacrtati i upora-
#include <cstdlib> bom naredbi moveto i lineto.
#include <iostream>
#include <winbgim.h> Naredbom moveto određuje-
mo početak crte, a naredbom
using namespace std; lineto određujemo kraj crte.
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
moveto (120, 100);
lineto (500, 380);
getch();
closegraph();
return 0;
}
moveto ( 120, 100 ); Ovom naredbom određujemo
početak crte.
100 640 Ovom naredbom odre-
120 380 đujemo kraj crte.
500 lineto ( 500, 380 );
480
90 PRO - MIL
C++ programiranje za apsolutne početnike
#include <cstdlib> Ovaj način crtanja pogodan Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
#include <iostream> je za crtanje više crta u nep-
#include <winbgim.h> rekinutom nizu.
using namespace std; Pogledajmo ovaj primjer.
int main() program
{
odluke
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
moveto(160, 240);
lineto(160, 450);
lineto(480, 450);
lineto(480, 240);
lineto(160, 240);
lineto(320, 120);
lineto(480, 240);
getch();
closegraph();
return 0;
}
Pogledajmo, korak po korak, #include <cstdlib> Polja
kako je nastao ovaj crtež. #include <iostream>
#include <winbgim.h>
Sažimanje Veliki pro- Objekti Obrada teksta
using namespace std;
grami
int main()
{ koda
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
moveto(160, 240);
lineto(160, 450);
getch();
closegraph();
return 0;
}
PRO - MIL 91
Grafika
#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
moveto(160, 240);
lineto(160, 450);
lineto(480, 450);
getch();
closegraph();
return 0;
}
#include <cstdlib> PRO - MIL
#include <iostream>
#include <winbgim.h>
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
moveto(160, 240);
lineto(160, 450);
lineto(480, 450);
lineto(480, 240);
getch();
closegraph();
return 0;
}
92
C++ programiranje za apsolutne početnike
#include <cstdlib> Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
#include <iostream>
#include <winbgim.h> odluke
using namespace std; #include <cstdlib>
#include <iostream>
int main() #include <winbgim.h>
{
using namespace std;
int gdriver = 9;
int gmode = 2; int main()
initgraph(&gdriver, &gmode, ""); {
setbkcolor(WHITE);
setcolor(BLACK); int gdriver = 9;
cleardevice(); int gmode = 2;
moveto(160, 240); initgraph(&gdriver, &gmode, "");
lineto(160, 450); setbkcolor(WHITE);
lineto(480, 450); setcolor(BLACK);
lineto(480, 240); cleardevice();
lineto(160, 240); moveto(160, 240);
getch(); lineto(160, 450);
closegraph(); lineto(480, 450);
return 0; lineto(480, 240);
} lineto(160, 240);
lineto(320, 120);
getch(); Polja
closegraph();
return 0; Sažimanje Veliki pro- Objekti Obrada teksta
}
grami
koda
PRO - MIL 93
Grafika
#include <cstdlib> #include <cstdlib>
#include <iostream> #include <iostream>
#include <winbgim.h> #include <winbgim.h>
using namespace std; using namespace std;
int main() int main()
{ {
int gdriver = 9; int gdriver = 9;
int gmode = 2; int gmode = 2;
initgraph(&gdriver, &gmode, ""); initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE); setbkcolor(WHITE);
setcolor(BLACK); setcolor(BLACK);
cleardevice(); cleardevice();
moveto(160, 240); moveto(160, 240);
lineto(160, 450); lineto(160, 450);
lineto(480, 450); lineto(480, 450);
lineto(480, 240); lineto(480, 240);
lineto(160, 240); lineto(160, 240);
lineto(320, 120); lineto(320, 120);
lineto(480, 240); lineto(480, 240);
rectangle(400, 320, 480, 450); getch();
rectangle(200, 260, 250, 340); closegraph();
rectangle(300, 260, 350, 340); return 0;
circle (550, 90, 80); }
line (0, 450, 640, 450);
getch();
closegraph();
return 0;
}
94 PRO - MIL
Crtanje točke C++ programiranje za apsolutne početnike Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
#include <cstdlib> Ponekad nam je potrebna samo
#include <iostream> jedna točka, kao u ovom primje-
#include <winbgim.h> ru gdje smo točkom označili
središte kruga.
using namespace std;
program
int main()
{ odluke
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle (320, 240, 220);
putpixel (320, 240, BLACK);
getch();
closegraph();
return 0;
}
putpixel ( 320, 240, BLACK ); Naredba za crtanje Polja
točke.
640 Sažimanje Veliki pro- Objekti Obrada teksta
380 Ovdje unosimo boju
točke koju određuje-
500 mo na isti način kao i
boju pozadine ili boju
crte.
grami
480
koda
PRO - MIL 95
Grafika Možemo li unutar grafičkog
prozora staviti tekst? Može-
Ispis teksta mo, ali nažalost, ne na način
na koji smo to do sada navikli
#include <cstdlib> raditi.
#include <iostream>
#include <winbgim.h> Ako prije naredbe za crtanje
kruga stavimo naredbu i za
using namespace std; ispis teksta, tekst će se ispisa-
ti, ali ne unutar grafičkog pro-
int main() zora, već unutar tekstualnog
{ prozora.
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
cout << "Ovo je krug." << endl;
circle (320, 240, 220);
getch();
closegraph();
return 0;
}
96 PRO - MIL
Upotrijebimo li ovu naredbu, C++ programiranje za apsolutne početnikePetlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj
tekst će se ispisati unutar
grafičkog prozora. #include <cstdlib>
#include <iostream>
#include <winbgim.h> program
using namespace std; odluke
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
outtext ("Ovo je krug.");
circle (320, 240, 220);
getch();
closegraph();
return 0;
}
#include <cstdlib> Naredbu za određivanje pozici- Polja
#include <iostream> je početka crte možemo iskori-
#include <winbgim.h> stiti za određivanje početka Sažimanje Veliki pro- Objekti Obrada teksta
teksta.
using namespace std; grami
97
int main() koda
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
moveto (320, 240);
outtext ("Ovo je krug.");
circle (320, 240, 220);
getch();
closegraph();
return 0;
}
PRO - MIL
Grafika
#include <cstdlib> Naredba outtextxy objedi-
#include <iostream> njuje naredbu za određivanje
#include <winbgim.h> pozicije teksta i naredbu za
ispis teksta.
using namespace std;
int main()
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
outtextxy (320, 240, "Ovo je krug.");
circle (320, 240, 220);
getch();
closegraph();
return 0;
}
Brojevima određujemo Unutar navodnika je
poziciju ispisa. tekst koji ispisujemo.
outtextxy ( 320, 240, "Ovo je krug." );
640
240
320 Ovo je krug.
480
98 PRO - MIL
C++ programiranje za apsolutne početnike
#include <cstdlib> Naredbom settextstyle mo- Petlje Donošenje Grafika Varijable Naš prvi Uvod Sadržaj program
#include <iostream> žemo mijenjati oblik i veličinu
#include <winbgim.h> slova te smjer ispisa teksta.
Stavljamo je prije naredbe za
using namespace std; ispis teksta.
int main() odluke
{
int gdriver = 9;
int gmode = 2;
initgraph(&gdriver, &gmode, "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
settextstyle (9, HORIZ_DIR, 1);
outtextxy (320, 240, "Ovo je krug.");
circle (320, 240, 220);
getch();
closegraph();
return 0;
}
Naredba za određivanje veličine i oblika slova te smjera ispisa.
settextstyle ( 9, HORIZ_DIR, 1 ); Polja
Ovaj broj određuje Veličina slova. Sažimanje Veliki pro- Objekti Obrada teksta
oblik slova. Njego-
va vrijednost može Smjer teksta:
biti između 0 i 10. HORIZ_DIR - vodoravni tekst.
VERT_DIR - uspravni tekst od dolje prema gore.
-VERT_DIR - uspravni tekst od gore prema dolje. grami
koda
PRO - MIL 99
Grafika
#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;
int main() Pogledajmo primjer prom-
{ jene veličine slova.
int gdriver = 9; #include <cstdlib>
int gmode = 2; #include <iostream>
initgraph(&gdriver, &gmode, ""); #include <winbgim.h>
setbkcolor(WHITE);
setcolor(BLACK); using namespace std;
cleardevice();
circle (320, 240, 220); int main()
settextstyle(9, HORIZ_DIR, 1); {
outtextxy(320, 200, "Ovo je krug.");
settextstyle(9, HORIZ_DIR, 2); int gdriver = 9;
outtextxy(320, 240, "Ovo je krug."); int gmode = 2;
settextstyle(9, HORIZ_DIR, 3); initgraph(&gdriver, &gmode, "");
outtextxy(320, 280, "Ovo je krug."); setbkcolor(WHITE);
settextstyle(9, HORIZ_DIR, 4); setcolor(BLACK);
outtextxy(320, 320, "Ovo je krug."); cleardevice();
getch(); circle (320, 240, 220);
closegraph(); settextstyle(9, HORIZ_DIR, 1);
return 0; outtextxy(320, 240, "Ovo je krug.");
} settextstyle(9, VERT_DIR, 1);
outtextxy(300, 240, "Ovo je krug.");
Pogledajmo primjer prom- settextstyle(9, -VERT_DIR, 1);
jene smjera ispisa teksta. outtextxy(500, 240, "Ovo je krug.");
getch();
closegraph();
return 0;
}
100 PRO - MIL