Professional Documents
Culture Documents
1
Primjer1: Program računa i ispisuje zbroj za a=5 i b=3.
2
Tipovi podataka
Računalu je važno s kakvim podacima barata. Ovisno o vrsti razlikujemo:
• Cjelobrojne tipovi podataka (int)
• Realne tipovi podataka (obične (float) i dvostruke preciznosti(double))
• Znakovne tipovi podataka (char i string)
• Korisničke definirane tipove (strukture)
Svaki tip podatak zauzima određenu veličinu (memoriju) u računalu i ima određeni doseg ili
opseg. U sljedećoj tablici dan je prikaz vrsta podataka, veličine u bitovima koju taj podatak
zauzima u memoriji računala i opseg u kojem se može nalaziti u programskom jeziku C.
Osnovni tip cijelog broja je int. On može imati negativnu ili pozitivnu vrijednost unutar
prikazanih granica. Tip podatka long koristi se kada nam je za varijablu potrebno veće
područje. Tipovi podataka mogu biti predznačni signed i to znači da je u jednom bitu
smještena informacija o tome da li je broj pozitivan ili negativan. Neke varijable ne mogu
nikada poprimiti negativnu vrijednost pa ih deklariramo kao nepredznačne ili unsigned.
Realni brojevi imaju decimalni dio. Zovemo ih još i floating-point (plivajući zarez)
brojevima. Ime su dobili po načinu predstavljanja takvih brojeva u memoriji računala. Taj tip
podatka naziva se float. Tipovi podataka doble i long double su poput tipa float, jedino
omogućavaju da se smjeti veći broj znamenaka sa većom preciznošću..
Za znakovni tip podataka koristimo se sa char (što je isto kao i signed char). Ukoliko
želimo koristiti kompletan set znakova treba upotrijebiti unsigned char. Kada baratamo s
riječima i rečenicama možemo koristiti i tip - string (niz znakova).
Često se javlja potreba da kod izvođenja programa želimo zadržati sadržaj ekrana da
pročitamo rezultate izvođenje programa. Za to će nam poslužiti naredba getch() koja učita
jedan znak i nastavlja program, bez pritiska na tipku Enter. Često se koristi kao posljednja
naredba u programu,a nalazi se u datoteci funkcija conio.h
3
Aritmetički operatori
Operacija Operator
Zbrajanje +
Oduzimanje -
Množenje *
Dijeljenje /
Ostatak cjelobrojnog dijeljenja
Na primjer 7%2=1 jer je 7 podijeljeno s 2 %
jednako 3, a ostatak je jedan
Matematičke funkcije
Osnovne koje na početku treba znati:
Varijable
Varijable u programu su promjenjive veličine. Mogu biti:
- brojčane (cijeli ili decimalni broj)
- znakovne
Najbolje je da se svaka varijabla koja se koristi u programu deklaira na početku programa, ali
u C++ se može deklarirati bilo gdje u programu. Deklaracija se sastoji od tipa podatka i
jednog ili više imena varijabli.Osim deklaracije ponekad je varijable potrebno i inicijalizirani
tj. postaviti na početnu vrijednost, najčešće je to 0, ali može biti i 1 (na primjer kod množenja
brojeva). Ako se varijabla u ne postavi na početnu vrijednost ona će biti nepredvidiva tj.
početna vrijednost može biti bilo koji broj pa će program krivo raditi (računati).
Imena varijabli
Sva imena varijabli trebaju započinjati slovom engleskog alfabeta ili podvlakom _. Za ostatak
imena koriste se slova ili brojevi. Znakovi interpunkcije, odnosno kontrolni znakovi se ne
smiju koristiti. Za prepoznavanje imena varijabli bitna su prva 32 znaka. Broj znakova iznad
32 se zanemaruje. Postoje razlike između malih i velikih slova tj. program ih prepoznaje kao
različite znakove u imenima varijabli.
4
Primjeri deklaracija varijabli:
Varijabla broj deklarirana je kao cijeli broj. Varijabla znak deklarirana je kao znak tj. ona
može biti bilo koje slovo ili broj, ali brojevi koji su deklarirani kao znak ne mogu se
oduzimati, zbrajati, množiti i dijeliti niti nad njima mogu vršiti bilo koje matematičke
operacije.
Varijabla temp deklarirana je kao decimalni broj.
Konstante
Konstante imaju tijekom programa određenu vrijednost koja se ne može promijeniti. Ključna
riječ u deklariranje i inicijalizaciju konstante je const iza koje slijedi tip konstante i njezina
vrijednost.
Primjeri konstanti:
Naredba cin
Naredbom cin unosimo podatke s tipkovnice i pridružujemo ih varijablama u programu.
Varijable kojima želimo pridružiti vrijednosti zapisujemo iza naredbe cin. Na primjer,
naredbom
cin>>a;
cin >>a>>b
Naredba cout
Naredbom cout ispisujemo tekst, vrijednosti matematičkih izraza i vrijednosti varijabli u
programu. Tekst koji želimo ispisati navodimo unutar navodnika, a varijable čije vrijednosti
želimo ispisati pišemo iza naredbe. Na primjer, naredbom
cout<<"Pozdrav";
5
cout <<2+2;
cout<< a;
6
Funkcija ulaza - scanf
Funkcija koja je zadužena za spremanje podataka u određene varijable zove se scanf. Ona se
može koristiti za različite tipove podataka koji se na različite načine spremaju u memoriju.
Zbog toga je potrebno funkciji scanf opisati koji tip podataka želimo čitati. Opći oblik
funkcije scanf je:
opis_formata sačinjava niz znakova koji sadrže jedan ili više opisanih formata. Opis formata
se sastoji od oznake postotka (%) iza kojeg slijedi slovo, koje opisuje tip podatka koji se
upotrebljava. Jedan ili više opisa formata je smješteno između dvostrukih navodnika, a
najčešće korišteni opisi formata nalaze se u priloženoj tablici.
Slijedeći neophodni dio funkcije scanf je adresa na koju će podaci biti spremljeni. Potrebno
je napomenuti da je potrebno navesti adresu varijable pomoću znaka &. Svaka varijabla u C++
ima specifičnu adresu u memoriji.
Potrebno je voditi računa da se ova funkcija koristi za definirani oblik i tip podatka koji je
potrebno unijeti. Međutim, ako ulazni podatak ne odgovara ulaznom formatu, ponašanje
funkcije je nepredvidivo što rezultira pogrešnim izvođenjem programa.
Stoga je važno da vodite računa o pravilnom zapisivanju opisa formata kojeg koristite.
printf ("opis_formata",varijabla,varijabla,...);
7
Postoji nekoliko znakova koji kontroliraju kako se tekst prikazuje na ekranu, a funkcija
printf omogućava da se bilo koji od tih znakova ispiše na ekranu.
8
Primjer 2: Napiši program kojim će te unijeti radijus kruga i izračunati opseg i površinu
kruga.
U naredbi scanf i printf se može pisati više formata zapisa zajedno što znači da unosimo i
ispisujemo više vrijednosti varijabli istovremeno.
Formati zapisa, u naredbi scanf se mogu odvojiti razmakom ili zarezom što uvjetuje i način
upisa (na primjer s razmakom unosimo 2 3 , a zarezom 2,3)
9
Primjer 2: Unesi dva cijela broja i ispisi njihov zbroj.
(Napomena: za unos i ispis koristi funkciju scanf i printf tako da se brojevi unose s zarezom
npr: 2,3)
Objašnjenje:
Broj mjesta rezerviran za ispis detaljnije se regulira brojem ispred formata.
Na primjer za ispis cijelih brojeva možemo napisati:
printf("\nZbroj brojeva %3d %2d je %4d ",a,b,c); gdje stoji da će za prvi broj u
ispisu biti rezervirana 3 mjesta za drugi 2 za rezultat zbrajanja 4 mjesta.
Za ispis decimalnih brojeva možemo napisati:
printf ("\n Zbroj brojeva %.4f %.2f je %.3f ",a,b,c);
gdje %f znači da se radi o decimalnim brojevima, .4 označava da će za ispis decimalnog
dijela prvog broja biti rezervirana 4 mjesta, za decimalni dio drugog 2, a za decimalni dio
trećeg broja 3 mjesta.
x++
++x
x poprimiti vrijednost 2.
Međutim u matematičkom izrazu vrlo je važno na kojem mjestu pišemo inkrement jer on
utječe na konačan rezultat. Pogledajmo primjer
Neka je x=5
Napišemo li u programu: y=++x to znači da će se prvo x uvećati za jedan a zatim pridružiti
varijabli y. Rezultat je: x=6 i y=6
10
Ako napišemo y=x++, tada se prvo x pridruži varijabli y pa se x -u doda jedan. Rezultat je:
y=5, x=6.
Relacijski operatori
Računala u svom radu upotrebljavaju jednostavnu logiku sa dvije vrijednosti; ukoliko je uvjet
istinit (true), vrijednost je 1; ukoliko je lažan (false), vrijednost je 0. Relacijski operatori
prikazani su u slijedećoj tablici:
Logički operatori
Moguće je u testu kombinirati više od jednog uvjeta. To postižemo upotrebom jednog od tri
logička operatora prikazana u slijedećoj tablici:
Operator Značenje
&& I (AND), svi uvjeti moraju biti istiniti da rezultat uvjeta bio istinit
|| ILI (OR), najmanje jedan od uvjeta mora biti istinit da bi rezultat uveta bio istinit
! NE (NOT), negacija uvjeta
Primjer 1:
(a==c)&&(a>d)
rezultat je istinit samo ukoliko je a jednak c i a veći od d. Programski jezik C radi tako da
ukoliko je prvi uvjet (sa lijeve strane) lažan, drugi uvjet se neće testirati, jer je I izraz lažan,
ukoliko je jedan od uvjeta lažan.
Primjer 2:
(a==c)||(a>d)
rezultat je istinit ukoliko je bilo koji od uvjeta istinit. Ukoliko je prvi uvjet istinit, nije
potrebno daljnje testiranje, rezultat je svakako istinit.
11
If i if..else naredbe
Jednostavna if naredba ima oblik:
if (uvjetni izraz){
naredba ili blok naredbi;
}
Uvjet može biti jednostavan relacijski izraz ili kombinacija izraza spojenih s logičkim
operatorima. Izraz mora biti unutar okruglih zagrada. Naredba if radi tako da se ispita uvjet i
u skladu sa istinitom ili lažnom vrijednošću uvjetnog izraza izvršavaju naredbe. Ukoliko je
izraz istinit, naredba ili blok naredbi, koje slijede, se izvršavaju. Ukoliko želimo koristiti blok
naredbi, one moraju biti zatvorene unutar vitičastih zagrada.
Primjer 1: Unesi broj. Ako je uneseni broj pozitivan ispiši njegov prethodnik, a ako je
negativan ispiši njegov sljedbenik.
Primjer 2: Napiši program kojim će se unijeti tri realna broja te ispisati najmanji.
12
Višestruki izbor pomoću if ....else
if (uvjetni izraz){
naredba ili blok naredbi;
}
else{
alternativna naredba ili blok naredbi;
}
Izjave if...else je moguće ugrađivati jednu u drugu. U sljedećem općem primjeru zelena
petlja je ugrađena u plavu.
13
Primjer 1: Unijeti dva broja. Ako je prvi veći od drugog ispisati njihov zbroj, a ako nije (prvi
veći od drugog) ispisati njihov umnožak.
Petlja for
Programsku petlju for u C++-u zapisujemo na sljedeći način:
Objašnjenje:
Inicijalizacija kontrolne varijable podrazumijeva postavljanje početne vrijednosti.
Početna vrijednost je UVIJEK broj koji se pridružuje varijabli petlje. Najčešće početna
vrijednost iznosi 1, ali može imati i drugu vrijednost 100, 200, ili bilo koji drugi broj.
Uvjet podrazumijeva postavljanje uvjeta izvršavanja petlje. Ako je uvjet zadovoljen, naredbe
unutar petlje će se izvršiti. Ako uvjet nije zadovoljen (ispunjen) petlja će se završiti i program
će nastaviti sa svojim izvođenjem s prvom prvom naredbom izvan petlje.
14
Kontrolna varijabla, kontrolira izvođenje petlje i svaki put kad se naredbe unutar petlje
izvedu, ona promijeni svoju vrijednost. Njezina uloga, najčešće je da "broji" koliko se puta
petlja izvela pa korak promjene kontrolne varijable najčešće iznosi 1. Međutim, postoje
programske situacije u kojima korak, odnosno promjena kontrolne varijable može iznositi 2 ili
3. Općenito promjena kontrolne varijable može biti bilo koji cijeli broj.
15
Primjer 3: Ispiši sve prirodne brojeve između 1 i N, koji su djeljivi sa 3.
Petlja while
Petlja while izvršava jednu ili više naredbi, sve dok je zadani uvjet istinit.
While naredbu pišemo:
while (uvjet)
{
blok naredbi;
}
Kod petlje while se može dogoditi da se naredbe unutar petlje ne izvrše niti jednom; ako
uvjet nije zadovoljen.
Kod petlje do-while, ne postoji takav slučaj, odnosno naredbe se uvijek bar jednom izvedu.
16
Primjer 1: Za niz od 5 različitih brojeva ispiši zbroj.
Petlja do-while
Za razliku od while petlje ova petlja se izvede bar jednom jer se uvjet ispituje na njezinom
kraju. Naredbe unutar petlje se izvršavaju dok je uvjet istinit (dok ne postane lažan). Kada
uvjet postane lažan završava se petlja i program se nastavlja izvođenjem prve naredbe iza
zagrade petlje.
do{
blok naredbi;
} while (uvjet);
Obratite pažnju da se točka-zarez koja označava kraj naredbe zapisuje iza while uvjeta.
17
Primjer:Za niz prirodnih brojeva od 1-N ispiši sumu (zbroj ) neparnih.
Funkcije
Funkcije su cjelovite skupine naredbi koje izvršavanjem ispunjavaju određene zahtjeve.
Omogućavaju raščlanjivanje problema na jednostavnije - manje cjeline, čime doprinose boljoj
preglednost izvornog koda i jednostavnijem rješenjem. Funkcija se definira na slijedeći
način:
gdje je:
- tip_funkcije određuje tip vrijednosti koju pozvana funkcija vraća u nadređenu funkciju,
a može biti bilo koji od osnovnih tipova podataka (int, char, float, double, void),
- ime_funkcije je identifikator preko kojeg se funkcija poziva, dok je
- lista_argumenata lista formalnih parametara sa pripadajućim tipovima preko kojih se niz
podataka iz nadređene funkcije prenose u pozvanu funkciju.
Funkcija u glavni program vraća jednu ili niti jednu vrijednost ovisno o tipu funkcije.
Za prijenos vrijednosti u nadređeni program koristi se naredba return;.
Funkcija se poziva na slijedeći način: ime_funkcije(stvarna lista_argumenata);
Funkcije se mogu pozivati u izrazima, petljama, ili kao argumenti u pozivima drugih funkcija.
Svaka korištena funkcija se mora najaviti prije poziva.
18
Primjer1: Napiši program kojim će se pomnožiti cijela dva broja i ispisati rezultat.
Za množenje cijelih brojeva napiši funkciju.
19
Zadaci za samostalni rad:
Ovisno o tome razlikujemo numeričke i znakovne nizove. U definiranom nizu, svi podaci
moraju biti istog tipa. Nije moguće u istom nizu miješati brojeve i znakove. Svaki član u nizu
ima svoje mjesto. To mjesto zovemo INDEKS. Osim mjesta, član niza ima i svoju vrijednost.
Na primjer: Ako kažemo da želimo definirati niz imena A koji će imati 7 članova i čiji će
članovi biti cijeli brojevi, onda ćemo u programskom to napisati ovako: int A[7].
Grafički prikazano to izgleda ovako :
Vidimo da svaki član niza ima svoje mjesto (indeks) i vrijednost. Indeksi idu od 0-6 i zapisani
su unutar uglatih zagrada.
Tako na primjer vrijednost prvog člana niza A[0] iznosi 2, drugog ,A[1], iznosi 3 itd. Uočimo
da članovi niza idu od 0 do N-1 gdje je N broj koji govori koliko ima članova niza.
Postoje jednodimenzionalni, dvodimenzionalni i višedimenzionalni nizovi.
Jednodimenzionalni nizovi
Jednodimenzionalni nizovi imaju samo jedan niz podataka. Na primjer niz A prikazan u
tablici ima 7 članova. Svi članovi su cijeli brojevi i nalaze se poredani su jedan iza drugoga (u
nizu).
A[0] A[1] A[2] A[3] A[4] A[5] A[6]
34 5 3 21 5 3 76
20
Kako bi program mogao raditi s nizom, na početku programa potrebno je rezervirati memoriju
u računalu. To se radi naredbom za deklaraciju koja se općenito zapisuje:
int a[10] – da je deklariran niz cijelih brojeva koji se zove a i ima ukupno 10 članova, a
indeksi idu od 0 do 9
float X[8] – da je deklariran niz decimalnih brojeva koji se zove X i ima ukupno 8 članova ,
a indeksi idu od 0 do 7
char b[30] - da je deklariran niz od 30 znakova
Važno je uvijek rezervirati više prostora nego što će se u programu koristiti jer će inače
program neće raditi ispravno. Na primjer ako deklariramo da ćemo koristiti niz od 10 članova,
a unesemo 20 program neće moći prihvatiti preostalih 10 članova niza te neće moći ispravno
raditi.
Niz se može zadati unutar programa ili unosom s tipkovnice (naredbom cin ili scanf). Ako
se vrijednosti članova niza zadaju unutar programa navode se unutar vitičastih zagrada npr:
naredbom A[6]={2,34,1,67,99,7}; je zadan niz A kojeg čini 6 cijelih brojeva.
Kada se vrijednosti članova niza unose preko tipkovnice (naredbom cin) koristi se petlja for.
Petljom for unose se jedna po jedan član niza, povećavanjem kontrolne varijable za jedan. U
nastavku je dio programskog koda koji pokazuje unos članova niza pomoću petlje for.
for (i=0;i<N;i++) {
cin>>X[i];
}
for (i=0;i<N;i++) {
cout>>X[i];
}
21
Primjer 1: Unesi N članova niza X pomoću for petlje te ih zatim ispiši na zaslon računala,
također petljom for.
22
Dvodimenzionalni nizovi
Karakteristika dvodimenzionalnih nizova je da imaju više redaka i stupaca.Tablicom u
nastavku predstavljen je cjelobrojni niz naziva
A[0,0] = 2
A[0,1] = 4
A[0,2] = 5
A[0,3] = 6
A[1,0] = 0
A[1,1] = 3
A[1,2] = 9
A[1,3] = 7
int A[2][4]={{2,4,5,6},{0,3,9,7}};
gdje prvi broj označava broj redaka, a drugi broj stupaca. Kao i kod jednodimenzionalnih
nizova prvi redak i stupac imaju redni broj (index) 0.
23
Primjer: Unesi niz od N cijelih brojeva te ispiši sortiran niz od najmanjeg do najvećeg.
Nizovi znakova
Za rad s nizom znakova možemo koristiti tip string ili char. Tip string se koristi u slučaju
ako radimo s riječima ili rečenicama, dok tip char radi samo s jednim znakom. DEfiniramo li
polje ili niz znakova tipa char, također ćemo moći raditi s riječima ili rečenicama.
Pri rad s tipom string na početku programa potrebno je izvršiti deklaraciju varijabli
naredbom;
string ime_varijable;
Budući da varijabla string prilikom unosa unese znakove jedne riječi, postoji posebna
naredba za unos cijele rečenice:
getline(cin, ime_varijable);
24
Primjer 1: Unesi i ispiši svoje ime.
Primjer 2: Unesi rečenicu " Danas učim programiranje u C++." te ju nakon unosa ispiši na
zaslonu računala.
Niz znakova možemo i definiramo kao jednodimenzionalni nizi čiji su elementi znakovi
(char).
Znakovni niz se deklarira kao i svaki jednodimenzionalni niz, navođenjem tipa char, imena
niza i njegove duljine.
Kod određivanja duljine niza znakova treba voditi računa o tome da niz znakova završava nul
znakom (\0) koji zauzima jedno mjesto niza.
Niz se inicijalizira tako da se njegov sadržaj navodi unutar dvostrukih navodnika ( " " ).
Za učitavanje i ispis znakovnih nizova mogu se koristiti standardni načini učitavanja i
ispisivanja elemenata jednodimenzionalnog niza
(cout , cin , printf(), scanf() u kombinaciji s petljom for).
Osim ovog načina mogu se koristiti i funkcije:
- gets() - koja omogućuje unošenje niza znakova sa standardnog ulaza.
- puts() - koja omogućava ispis niza znakova na standardni izlaz.
(Obje funkcije nalaze u biblioteci stdio.h)
25
Primjer 1: Napiši program kojim se unosi niz znakova i ispisuje duljina učitanog niza.
Strukture
Struktura je kombinacija skupa istih ili različitih tipova podataka koje formira sam korisnik,
prema vlastitim potrebama.
U C++u se struktura općenito zapisuje:
struct ime_strukture
{
najava članova strukture;
};
gdje je struct ključna riječ koja označava početak najave strukture, ime_strukture koju
najavljujemo, a unutar vitičastih zagrada navodimo sve čalnove(varijable) koje želimo kreirati
strukturom.
Varijable strukture mogu se navesti :
a) odmah iza strukture
struct ime_strukture
{
najava članova strukture;
} lista strukturnih varijabli;
Članovima strukturne varijable pristupa se preko imena strukturne varijable i strukturne točke
(.) operatora.
U nastavku je primjer programa u kojem se unose podaci za: ime, prezime, matični broj,
prosjek i datum rođenja za sve učenike jednog razreda (najviše 40). Nakon unosa svih
26
podataka traži se učenik s najboljim prosjekom te se na kraju programa na zaslonu računala
ispisuju svi podaci za učenika koji ima najbolji prosjek.
Objašnjenje: U programu su definirane dvije strukture: datum i ucenik. Struktura datum služi
za unos datuma rođenja učenika i sastoji se od dana, mjeseca i godine rođenja. Druga
struktura se zove ucenik i sadrži 2 niza znakova (za ime i prezime), matični broj i prosjek
ocjena. Niz (polje) razred se sastoji od struktura tipa učenik.
Na primjer poziv za ispis varijable razred[0].rodjendan.godina će dati za ispis godine rođenja
za 1. učenika, a razred[1].prosjek će dati ispis prosjeka za 2. učenika.
27
U nastavku je isti primjer, ali uz korištenje naredbi za formatirani ulaz i izlaz (printf i scanf).
28
Datoteke
Datoteke omogućuju pohranjivanje velike količine podataka koji se mogu koristiti neovisno o
programu.
Datoteke mogu biti tekstualne ili binarne. U nastavku će biti opisane tekstualne datoteke.
2 su osnovna načina upisa/ispisa podataka u datoteku:
- formatirani
- neformatirani
Primjer1: Otvaranje datoteke primjer.txt i upis teksta "Ovo je primjer pisanja teksta u
datoteku". Datoteka će se nalaziti u radnoj mapi tvrdog diska te se može pročitati izlaskom iz
C++ a i pokretanjem programa Blok za pisanje (NotePad).
29
Primjer 2: Ispis (čitanje) sadržaja prethodnim zadatkom kreirane datoteke primjer.txt.
Želimo li koristiti formatirani upis/spis podataka u datoteku koristiti ćemo naredbe fscanf()
i fprintf().
Prije otvaranja datoteke programu ćemo naredbom FILE *identifikator; najaviti da ćemo
raditi s datotekom. Identifikator je naziv datoteke koji ćemo koristiti u programu, a zvjezdica
govori da se radi o pokazivaču.
Datoteku ćemo otvoriti funkcijom fopen(), a nakon uporabe zatvoriti funkcijom fclose();.
Općenito se te funkcije zapisuju:
fopen("ime_datoteke","način_otvaranja");
fclose(identifikator);
Ime datoteke zadaje se po istom pravilu kao i naziv varijable, a način otvaranja datoteke
(tekstualne) određuje njezine mogućnosti. Tako na primjer može postojati datoteka koja se
može samo čitati ili u koju se mogu samo zapisivati podaci samo. Načini otvaranja se bilježe
slovom (r, w, r+) i detaljnije su opisani u tablici.
30
Način otvaranja Objašnjenje
Otvara tekstualnu datoteku za čitanje. Ako datoteka ne postoji javlja
"r"
pogrešku.
"w" Otvara tekstualnu datoteku za pisanje u nju.
"a" Otvara tekstualnu datoteku za dodavanje novih podataka na njen kraj.
Otvara tekstualnu datoteku za čitanje i pisanje. Ako ne postoji javlja
"r+"
pogrešku.
Otvara tekstualnu datoteku za čitanje i pisanje. Ako datoteka ne postoji
"w+" kreirat će ju. Ako datoteka postoji, svi podaci iz nje bit će izbrisani prije
upisivanja novih.
Otvara tekstualnu datoteku za dodavanje novih podataka na njen kraj.
"a+"
Ako datoteka ne postoji bit će kreirana
if(f==NULL)
{
printf("Greska pri otvaranju");
exit(1);
}
Ako je uvjet (f==NULL) ispunjen na zaslonu računala će se ispisat poruka "Greška pri
otvaranju".
31
Primjer 1: Napišite program koji u radnoj mapi kreira datoteku test1.txt i u nju smješta prvih
100 cijelih brojeva.
(Napomena: nakon izvođenja programa izađite i u radnoj mapi provjerite da li imate
datoteku test1.txt.
Njezin sadržaj možete pročitati s programom Blok za pisanje (NotePad))
Primjer 2: Napišite program koji će pročitati sadržaj iz datoteke iz prošlog zadatka i ispisati
njezin sadržaj na zaslonu računala.
32
Objekti i klase
U novije vrijeme u konceptu programiranja koriste se objekti i klase.
Objekt u realnom svijetu, može biti: automobil ili bicikl, a u programskoj igri lopta ili neki
lik. Svaki objekt je definiran stanjem i ponašanjem; na primjer, stanje lika u igri može biti: lik
trči, skače ili stoji, a ponašanje lika možemo definirati brzinom trčanja i visinom skoka. U
programu je objekt opisan varijablama koje mu određuju stanje i metodama koje mu određuju
ponašanje.
Klasa predstavlja nacrt (predložak) objekta. Stoga se uvijek prvo kreiraju klase na temelju
kojih se proizvode objekti. Na primjer, kada kreiramo klasu za lik, u igri možemo kreirati više
likova koji mogu imati drugačije stanje (npr:neki lik može letjeti) i ponašanje (ima brzinu
letenja).
Pogledajte u nastavku video u kojem učenici kroz primjere u razredu objašnjavaju osnovne
pojmove objektnog programiranja, a to su:
- klase
- objekti
- svojstva
- metode i
- događaji
http://msdn.microsoft.com/en-us/beginner/cc963989.aspx
33
Primjer 1: U ovom primjeru kreirana je klasa koja se zove Primjer i koja sadrži funkciju
Ispis().
Funkcija Ispis() ispsuje tekst "Ispis teksta na zaslon racunala koristenjem klase Ispis" na
zaslonu računala.
34
Primjer 2:
U primjeru 2 zadana je klasa pravokutnik koja ima dvije varijable: stranicu a i stranicu b. To
su "stanja" pravokutnika, odnosno pravokutnik je određen veličinama tih stranica.U klasi se
nalaze i dvije funkcije: povrsina() i opseg() koje mu određuju "ponašanje", odnosno određeno
je pravokutniku možemo računati opseg i površinu.
U glavnom programu naredbom pravokutnik prvi; je deklariran objekt prvi prema predlošku
koji je opisan u klasi pravokutnik. Zna se da objekt ima dva stanja prvi.str1 i prvi.str2. Budući
da su to javne varijable u klasi pravokutnik, naredbom prvi.opseg(); se može dobiti izračun
opsega za objekt prvi, a naredbom prvi.povrsina(); površina za objekt prvi.
35