programiranje 1 - teorija (c++)

14
C++/ PROGRAMSKI JEZIK Problem –zadatak koji trebamo riješiti pomoću računala.Mora biti zadan općenito, jasno i mora obuhvaćati sve moguće slučajeve. Algoritam-postupak kojim riješavamo problem.Mora imati 0 ili više ulaza i 1 ili više izlaza, a karakteristike algoritma su determiniranost, efektivnost i konačnost. Algoritam možemo zapisivati prirodnim jezikom, pseudokodom ili programskim jezikom (formalni jezik kojim se u računalu zapisuju algoritmi). Totalni algoritmi (engl. total algorythms) - algoritmi koji garantirano imaju kraj . Ulaz (engl. input) - informacije koje se daju algoritmu na obradu Ulazni podaci (engl. input data) - podaci koji se daju računalu na obradu Zalihost (engl. redundancy) - pojam koji se odnosi na suvišne podatke, odnosno dio podataka koji se može eliminirati bez da se izgube esencijalne informacije Program (engl. program) - organiziran niz naredbi koje kad se izvode, sile računalo da se ponaša i radi onako kako mu je naređeno. Programiranje – se bavi osmišljavanjem i izradom računalnih programa. Pseudokod (engl. pseudocode) - je algoritam zapisan riječima, pseudokod je rješenje u formi programa te je prilagođen logici obrade pomoću računala. Binarni sustav (engl. binary system) - brojevni sustav od dva člana, odnosno dva suprotna stanja koja se najčešće izražavaju kao 0 i 1. Podaci (engl. computer data) - niz na specifičan način prikazanih znakova u binarnom obliku koji predočuju informaciju, a mogu se obraditi ili proizvesti računalom. Statički podaci (engl. static data) - podaci kojima računalo odmah dodjeljuje sav potreban memorijski prostor i koji u toku obrade ne mijenjaju oblik

Upload: usisavac

Post on 27-Dec-2015

171 views

Category:

Documents


3 download

DESCRIPTION

Teorija za kolegij Programiranje1 iz 2. semestra, Fakulteta Organizacije i Informatike u Varaždinu, smjer IPS.

TRANSCRIPT

Page 1: PROGRAMIRANJE 1 - TEORIJA (C++)

C++/ PROGRAMSKI JEZIK

Problem –zadatak koji trebamo riješiti pomoću računala.Mora biti zadan općenito, jasno i mora obuhvaćati sve moguće slučajeve.

Algoritam-postupak kojim riješavamo problem.Mora imati 0 ili više ulaza i 1 ili više izlaza, a karakteristike algoritma su determiniranost, efektivnost i konačnost. Algoritam možemo zapisivati prirodnim jezikom, pseudokodom ili programskim jezikom (formalni jezik kojim se u računalu zapisuju algoritmi).

Totalni algoritmi  (engl. total algorythms) -  algoritmi koji garantirano imaju kraj . 

Ulaz (engl. input)   -  informacije koje se daju algoritmu na obradu

Ulazni podaci (engl. input data) - podaci koji se daju računalu na obradu

Zalihost (engl. redundancy) - pojam koji se odnosi na suvišne podatke, odnosno dio podataka koji se može eliminirati bez da se izgube esencijalne informacije

Program (engl. program) - organiziran niz naredbi koje kad se izvode, sile računalo da se ponaša i radi onako kako mu je naređeno.

Programiranje – se bavi osmišljavanjem i izradom računalnih programa.

Pseudokod (engl. pseudocode) - je algoritam zapisan riječima, pseudokod je rješenje u formiprograma te je prilagođen logici obrade pomoću računala.

Binarni sustav  (engl. binary system) - brojevni sustav od dva člana, odnosno dva suprotna stanja koja se najčešće izražavaju kao 0 i 1.

Podaci (engl. computer data) - niz na specifičan način prikazanih znakova u binarnom obliku koji predočuju informaciju, a mogu se obraditi ili proizvesti računalom.

Statički podaci (engl. static data) - podaci kojima računalo odmah dodjeljuje sav potreban memorijski prostor i koji u toku obrade ne mijenjaju oblik

Glavna svojstva objektno orijentiranog jezika -  1. enkapsulacija  ili učahurivanje (engl. encapsulation) -  spajanje podataka i operacija,2. skrivanje podataka  (engl. data hiding): privatnost,3. ponovna iskoristivost  (engl. inheritance): svojstvo nasljeđivanja i 4. polimorfizam (engl. polymorphysm): važno je što, a ne kako je nešto izvedeno

Kôd (engl. code) - sustav simbola ili znakova za način zapisivanja ili prikazivanja

Kompajler (engl. compiler) - program koji prevodi izvorni kôd u strojni kôd; 

Kompilacijski jezik (engl. compile language) označava programski jezik koji se implementira pomoću kompajlera

Page 2: PROGRAMIRANJE 1 - TEORIJA (C++)

Kompilirati (engl. compile) - pretvoriti izvorni kôd u strojni, binarni kôd; koraci:1. leksička analiza   koda (engl. lexical analysis) koja označava izdvajanje i prosljeđivanje

znakova i riječi sintaktičkom analizatoru2. sintaktička analiza   koda (engl. syntactic analysis), odnosno analiza i ispitivanje

podudarnosti koda s gramatikom programskog jezika3. semantička analiza   koda (engl. semantic analysis) koja pronalazi pogreške koje se nisu

mogle otkriti sintaktičkom analizom4. generiranje izvornog koda   u strojni (binarni) 5. optimizacija koda  (engl. code optomization) u smislu zauzeća memorijskog prostora ili

vremena potrebnog za izvođenje

Interpreter (engl. interpreter) - program koji  interpretira program korak-po-korak i konvertira ga u strojni kôd.

Interpretacijski jezik (engl. interpretative language) označava programski jezik koji interpreter koristi.

TIPOVI PODATAKA

Cjelobrojni podatak (engl. integer) - podatak koji pripada tzv. linearno totalno uređenom nizu cijelih brojeva koji je teorijski neograničen, jer mu je raspon vrijednosti +/- beskonačno; ako se, međutim, radi o memoriranju na određenom prostoru, tada je niz konačan i nabrojiv

Podaci s dvostrukom preciznošću (engl. double precision) - realni podaci koji se označavaju s double, što je izvedeno je iz činjenice da im se dodjeljuje dvostruko veći memorijski prostor: ako se 'običnim' realnim brojevima dodjeljuju 32 bita, brojevima tipa double dodijelit će se 64 bita (jedan bit za predznak, 11 za eksponent i 52 bita za mantisu), što će rezultirati većim rasponom vrijednosti

Znak (engl. character)-  nenumerički podatak koji zauzima memorijski prostor od jednog bajta (8 bitova) na kojem se slova i posebni znakovi prikazuju dogovorenim, a znamenke kombiniranim, matematičko-dogovorenim kôdom.

Tip podatka Veličina u bitovima Opseg

char 8 (1B) -128 do 127

unsigned char 8 (1B) 0 do 255

short int 16 (2B) -32768 do 32767

unsigned int 32 (4B) 0 do 65535int 32 (4B) -32768 do 32767

float 32(4B) 3,4x10-38 do 3,4x1038

double 64(8B) 1,7x10-308 do 1,7x10308

long double 80(10B) 3,4x10-4932 do 1,1 x104932

Page 3: PROGRAMIRANJE 1 - TEORIJA (C++)

OPERATORI

Operacija (engl. operation) - postupak koji želimo izvršiti

Operand ili faktor (engl. operand, factor) - podatak koji sudjeluje u operaciji

Operator (engl. operator) - znak ili riječ koja određuje vrstu operacije koju ce primjeniti na jednom ili više operanda.

Aritmeticki operatori Aritmetički operatori su operatori koji vrše aritmetičke operacije nad jednim ili dva operanda. Ukoliko se operacija izvodi nad jednim operandom govorimo o unarnim operatorima a ukoliko se operacija vrši nad dva operanda govorimo o binarnim operatorima. uključuju zbrajanje (+), oduzimanje (-), množenje (*),dijeljenje(/) i cijelobrojni ostatak dijeljenja (%).

Unarni operator  (engl. unary operator) - operator koji se upotrebljava u kombinaciji s jednim operandom. ++,--;

Binarni operator  (engl. binary operator) - operator koji se upotrebljava u kombinaciji s dva operanda

Bitovni operatori (engl. bitwise operators) - operatori pomoću kojih se može doprijeti u samu strukturu podatka, sve do bitova i ovisno o izboru mijenjati ih na razne načine;Vrste bitovnih operatora: komplement ~, bitovni I (&), bitovni ILI (||), EX-ILI (Ù), pomak ulijevo (<<) i pomak udesno( >>) .

Logički operatori – se koriste u logičkim izračunima, to su operatori koji služe za povezivanje uvijeta u složene uvijete (ovisne jedne o drugima). Nazivaju se još i Booleanovi operatori ili logičke poveznice, te se od jednostavnih tvrdnji mogu formirati složene tvrdnje pomoću kojih se izvodi određena logička operacija, odnosno postupak logičkog izračuna.Logički operatori: NE (!), I (&&) i ILI (||).

Relacijski operatori – operatori koji se koriste za usporedbu izraza ili vrijednosti, a kao rezultat se dobiva Bool vrijednost true ili false. ==,>=,<=,<,>,!=

Terarni (kondicionalni) operatori – operator koji ima 3 elementa koji ispituje vrijednost logičkog izraza, i ako je vrijednost true program izvrši prvi izraz, ako je vrijednost false tada program izvrši drugi izraz.

Logički izraz - izraz formuliran u obliku tvrdnje (sud) koja može, ali ne mora biti istinita. Logičkim izrazom ispituje se odnos (relacija) između subjekta i objekta (operanda).Relacija se označava relacijskim operatorom, a objekti su (barem jedan od njih) obično varijable čiji nam sadržaj nije unaprijed poznat. Ispitivanje se najčešće provodi naredbom if; ovisno o rezultatu ispitivanja, gdje se odabire buduća akcija.

Page 4: PROGRAMIRANJE 1 - TEORIJA (C++)

OSNOVE

Varijabla (engl. variable) – Imenovani dio memorije koji sadrži neku vrijednost.

Definicija varijable - postupak dodjeljivanja vrijednosti (sadržaja) varijabli

Deklarirati varijablu Svaku varijablu koju koristimo u programu moramo deklarirati, a to znači imenovati je i rezervirati određeni prostor u radnoj memoriji računala gdje će biti spremljena vrijednost te varijable.

Polje je mehanizam agregacije niza vrijednosti elemenata istog tipa koje su imenovane zajedničkim identifikatorom te se pojedini elementi polja dohvaćaju uz pomoć indeksa koji se navodi unutar uglatih zagrada iza imena polja (indeks svakog člana je njegova udaljenost od prvog člana i tako se dolazi do ostalih članova). Moguća su jednodimenzionalna i višedimenzionalna polja pri čemu se za adresiranje koristi toliko indeksa kolika je dimenzija polja.

Konstante (engl. constants) – podatci kojima ne možemo promijeniti vrijednost tijekom izvođenja programa, za uključivanje konstanti u predprocesorskom dijelu koristimo #define te naziv konstante i njezinu vrijednost.Možemo i deklarirati konstante u programu pomoću ključne riječi const zatim tipom i imenom konstante de pridruživanje vrijednosti konstanti.

Cjelobrojno dijeljenje - dijeljenje kod kojeg su dividend, divizor i rezultati - kvocijent i ostatak dijeljenja - cijeli pozitivni brojevi

Izlaz ili rezultati -   vrijednosti koje algoritam ‘vraća’

Izraz- svaki objekt koji u sebi sadrži ili predstavlja brojčanu vrijednost.

Sekvenca (engl. sequence) niz instrukcija obrade (naredbi) koje se izvode uzastopno, a formiraju se u obliku bloka naredbi. Početak sekvence označava se otvorenom vitičastom zagradom a kraj zatvorenom, te svaka instrukcija obrade unutar sekvence završava točka zarezom.

Iteracija ili ponavljanje (engl. iteration) – postupak ponavljanja nekih dijelova programa jednom ili više puta. Vrste: -iteracije s brojačem (tipa for)

-iteracije s uvjetnim izrazom (tipa while i do-while)

While-Iteracija tipa while se izvršava sve dok je logički uvjet koji je zadan u njenoj glavi istinit. Ova iteracija ima sintaksu :while (logički uvjet){ do { blok naredbi blok naredbi } }while (logički uvjet); -jedina iteracija iza čijeg kraja ide ;

Kod iteracije tipa do...while logički uvjet provjerava tek nakon prvog prolaska kroz tijelo petlje. Kod iteracija tipa for i while može dogoditi da se tijelo petlje ne izvrši ni jednom,ali kod iteracije tipa do...while tijelo se petlje mora izvršiti najmanje jedanput.

Grananje (selekcija) -   selekcije kod kojih se bira pomoću logičkog izraza ili vrijednosti jedna od ponuđenih sekvenci za izvršavanje određenih akcija. Postoje selekcije tipa if i else (grananje u dva smjera) te selekcije tipa switch (grananje u više smjerova).

Page 5: PROGRAMIRANJE 1 - TEORIJA (C++)

Switch - naredba višesmjernog grananja u okviru koje se programira onoliko slučajeva (case) koliko ima grana.Selektorski izraz je u pravilu cjelobrojna varijabla, o čijem sadržaju ovisi koji će se case izvoditi, case završava naredbom break, ili ce se nastaviti izvoditi svi ostali slučajevi.Može se programirati i tzv. default slučaj - akcija za one vrijednosti koje su se pojavile, a za koje nije predviđena posebna grana.

Skok  (engl. jump) - mjesto gdje se prekida slijedno odvijanje programa ili nastavlja na nekom drugom mjestu. Instrukcije za skokove su goto, break i continue.

ContinueContinue se koristi unutar petlje kako bi se prekinuo rad koraka petlje i odmahprešlo ponovo na glavu petlje, odnosno krenulo s sljedećim korakom petlje. Ona se može zamijeniti selekcijom.

Generalizirane selekcije (engl. generalized selection) -  selekcije koje se sastoje od niza naredbi if povezanih ili na strani ‘da’ (if-and-if-else) ili na strani ‘ne’ (if-or-if-else)

FUNKCIJA/STRUKTURA/UNIJA

FunkcijaFunkcije su izdvojeni dijelovi programskog koda koji imaju svoje ime. Osnovna ideja funkcija je da se neki dio koda napiše na jednom mjestu, a zatim se, po potrebi poziva na više mjesta.Time se skraćuje vrijeme pisanja cjelokupnog programa.Funkcija sadrži deklaraciju (povratni tip,ime funkcije,tip argumenata i ime argumenata koji su prosljeđeni i koji će se koristiti isključivo unutar funkcije) i tijelo funkcije (naredbe i povratne vrijednosti koje su istog tipa kao i funkcija, osim ako je funkcija tipa void() tada ne vraća povratne vrijednosti).

Rekurzivna funkcija (engl. recursion) - funkcija koja poziva samu sebe, tj. funkcija u čijoj se definiciji nalazi poziv te iste funkcije;

StrukturaSlog (struktura) je mehanizam agregacije koji se definira pomoću ključne riječi struct u kojem se povezuje više podataka koji mogu imati međusobno različite tipove, pri čemu se svaki podatak unutar sloga naziva komponenta sloga a komponentama sloga se pristupa preko identifikatora sloga (imena sloga).Sintaksa:struct ime_strukture {opis_komponenti} deklaracije varijabli;

UnijaMehanizam agregacije koji omogućuje da se različiti podaci čuvaju u istom memorijskom prostoru, što znaći da se prilikom upisa vrijednosti jednog podatkovnog člana automatski mijenjaju vrijednosti svih ostalih članova.Deklaracija unije je jednaka po sintaksi i svojstvima kao i deklaracija strukture, osim u ključnoj riječi union koja se koristi umjesto ključne riječi struct.

Sintaksa:union ime unije {alternativni podaci} identifikatori varijabli;

Page 6: PROGRAMIRANJE 1 - TEORIJA (C++)

Argumenti ili parametri – mogu se a i ne moraju koristiti. Javljaju se u okruglim zagradamanakon imena funkcije i može ih biti jedan ili više. Argumenti predstvljaju ulazne podatkefunkcije a ponašaju se i deklariraju isto kao i varijable. Ulazni parametri su vidljivi unutarfunkcije ali ne i izvan nje.

Sintaksa funkcijetip ime (parametri) {tijelo funkcije}

PRETRAŽIVANJE/SORTIRANJE

Dekompozicija (engl. decomposition) - postupno rastavljanje problema na manje dijelove, popularno nazvano top-down metoda ili postupak 'od općenitog prema detaljima'

Metoda podijeli pa vladaj- metoda podijeli pa vladaj se temelji na rekurzivnoj podijeli problema na dva ili više manjih problema istog ili sličnog tipa dok ne postanu dovoljno jednostavni da se riješe direktno, te se s time riješi i glavni problem.

Pretraživanja poljaPretraživanje polja je postupak traženja neke vrijednosti u skupu svih vrijednosti tj.elemenata polja. Pretraživanje polja je, uz sortiranje, jedan od najvažnijih algoritama uračunalstvu uopće.

Binarno pretraživanje: Algoritam binarnog pretraživanja funkcionira samo ako je polje sortirano i to na način da se prvo usporedi element u sredini polja s traženom vrijednosti i sada s obzirom na to da li je on manji ili veći od tražene vrijednosti poduzimamo sljedeće korake: · Ako je manji, onda traženi element (ako se nalazi u polju), mora biti u drugoj polovici polja · Ako je jednak, onda smo pronašli traženi element i završavamo · Ako je veći, ondaje traženi element (ako postoji u polju), mora biti u prvoj polovici polja

* ima više usporedbi nego slijedno pretraživanje!

Slijedno pretraživanje: Postupak pretraživanja polja od početka do kraja polja koje ne mora biti sortirano. Slijedno pretraživanje se prekida u momentu pronalaska člana s istom vrijednosti kao ključ pretraživanja (tražena vrijednost). Pretraživanje je izvedeno pomoću true i false vrijednosti, tako da se traži učitavanje vrijednosti ključa te se pretražuju svi elementi polja i ako koje odgovara traženom ključu vraća se glavnom programu povratna vrijednost true, a ako ne postoji vraća povratnu vrijednost false.

Sortiranja poljaSortiranje polja predstavlja pretvrobu niza elemenata polja iz početnog oblika u oblik ukojem je niz poredan prema željenom kriteriju (uzlazno, silazno, abecedno, itd.). U tipičnomslučaju radi se o soritranju vrijednosti od najmanje do najveće vrijednosti.

Sortiranje izborom (Selection sort)Algoritam funkcionira tako da se u polju pronađe element s najvećom vrijednosti i zatim se vrijednost tog elementa zamjeni s vrijednosti posljednjeg elementa u polju. Nakon toga se postupak ponavlja za sve elemente osim poljednjeg.

Page 7: PROGRAMIRANJE 1 - TEORIJA (C++)

Sortiranje zamjenom (Exchange sort)U ovom algoritmu se vrijednost posljednjeg elementa uspoređuje sa vrijednostima svihprethodnih elemenata. Ukoliko se naiđe na element sa većom vrijednosti po posljednjeg, vršise njihova zamjena itd. što će rezultirati time da će na kraju prvog prolaza na kraju polja bitielement s najvećom vrijednosti. Cijeli postupak se zatim ponavlja za pretposljednji element itako dalje, sve dok ne preostane samo jedan element.

Mjehuričasto sortiranje (Bubble sort)Ovaj algoritam sortiranja funkcionira tako da se svaki element polja uspoređuje sa elementom koji slijedi i ukoliko je sljedbenik tekućeg elementa veći vrši se zamjena njihovih vrijednosti. Nakon prvog prolaska element s najvećom vrijednosti će biti na kraju polja.

Merge sort: algoritam koji se temelji na metodi podjeli pa vladaj na način da se polje podijeli na dvije polovice te se sortira svaka polovica i na kraju se vrši spajanje tih dviju sortiranih polovica u jedno sortirano polje.

Sortiranje umetanjem (Insertion sort)Polje se kod ovog sortiranja dijeli na dva dijela: sortirani i nesortirani dio. Na početku se sortirani dio polja sastoji samo od prvog elementa polja. U svakom sljedećem koraku sortirani dio se poveća za jedan element a nesortirani smanji za jedan element prebacivanjem prvog elementa iz nesortiranog u sortirani dio polja. Prebacivanje se vrši tako da se promatrani element iz nesortiranog dijela uspoređuje s posljednjim elementom u soriranom dijelu, te ako je promatrani element iz nesortiranog manji, posljednji se element iz sortiranog dijela prebacuje za jedno mjesto dalje u polju. Nakon toga se promatrani element uspoređuje s pretposljednjim elementom u sortiranom polju itd., sve dok se ne naiđe na element u sortiranom dijelu polja koji je manji od promatranog elementa ili dok se i prvi element sortiranog dijela polja ne pomakne za jedno mjesto dalje u polju. Na taj se način oslobodilo mjesto u polju na koje se umeće novi element i povećava sortirani dio polja za jedan element.

QuickSort: Kod QuickSort algoritma polje se ne dijeli onakvo kakvo je, već se prije podjele polja na dva dijela elementi preraspoređuju. Određuje se neka vrijednost, koja se naziva kružni element ili sidro (pivot) a preostali se elementi raspoređuju s obzirom na njega. Elementi koji su manji od njega premještaju se u polju ispred njega, a oni koji su veći od njega se premještaju se iza njega. Nakon što se izvede ova transformacija potrebno je samo još sortirati dijelove polja koji se nalaze ispred i iza kružnog elementa, dok njihovo spajanje nije potrebno.

POKAZIVAČI

Alokacija (engl. allocation) -  postupak dodjele memorijskog prostora na kojem će se za vrijeme izvođenja programa nalaziti objekti s kojima se radi; 

Dealokacija (engl. deallocation) - postupak kojim se, nakon što su objekti ili program obavili svoj zadatak, alocirani prostor oslobađa za neku drugu namjenu. delete p;

Pokazivač (engl. pointer) –je varijabla koja sadrži adresu neke druge varijable u memoriji čija se vrijednost može mijenjati. Pokazivač se inicijalizira pomoću naredbe new, čime se rezervira memorijski prostor za novu dinamički varijablu a deinicijalizira naredbom delete. Pokazivač posredno pristupa objektu, može se preusmjeriti, za dohvaćanje vrijednosti objekta koristi zvjezdicu te mu je potreban neki memorijski prostor.

Page 8: PROGRAMIRANJE 1 - TEORIJA (C++)

Operator adrese (engl. address-of operator) - znak '&' pomoću kojeg se pokazivaču pridružuje adresa objekta

Operator delete - operator za oslobađanje memorijskog prostora koji je bio alociran dinamičkim objektima; Vidi

Operator dereferenciranja ili indirekcije (engl. dereferencing / indirection operator) - znak zvjezdice (*) koji služi za pridruživanje tipa objekta pokazivaču

Operator new - operator za dodjelu memorijskog prostora dinamičkim objektima; 

Pokazivač na pokazivač - pokazivač čiji je sadržaj adresa nekog drugog pokazivača. Označava se s dvije zvjezdice (**), a tip mu je određen tipom krajnjeg objekta

Pokazivači tipa void pokazuju na neodređeni tip, tj. na općenitu memorijsku lokaciju i mogu se usmjeriti na podatak bilo kojeg tipa

Nul-pokazivač (NULL) - pokazivač čija je vrijednost nula (pokazuje na lokaciju 0), što označava slobodni pokazivač. To je potrebno napraviti kada smo dealocirali memorijski prostor dinamičke varijable zbog toga što pokazivač zadržava staru vrijednost.

Dinamički podaci (engl. dynamic data) –su podaci kojima pristupamo preko pokazivača, te su njihove lokacije i veličine u memoriji zadane tek tijekom izvršavanja programa.

Dinamičko polje (engl. dynamic array) –dinamičko polje alocira se u radnoj memoriji prilikom izvođenja programa te mu broj elemenata nije unaprijed određen.Adresa svakog elementa polja izračunava se na temelju vrijednosti indeksa i adresa polja, te je dealokacija polja moguća tijekom izvođenja programa. *Razlika između dinamičkog i nedinamičkog polja je ta što kod nedinamičkog polja veličina polja mora bit konstanta vrijednost koju odredimo kada pišemo program a kod dinamičkog možemo dodijeliti potrebnu količinu memorije tijekom izvođenja programa.Kada alocirana dinamička memorija nije potrebna treba je dealocirati da bi se drugdje moglo dinamički alocirati jer memorija nije neograničena.

Hrpa (engl. heap) - tzv. FIFO (akronim od engl. First-In-First-Out) struktura u kojoj se prva pohranjena komponenta i dohvaća prva, u obliku hrpe bit će onaj dio glavne memorije koji služi za pohranjivanje dinamičkih objekata.Postupak dinamičke alokacije i dealokacije memorijskog prostora obavlja se pomoću operatora new (alokacija) i delete (dealokacija)

TEKST/DATOTEKE

Znakovni niz (engl. string) - linijska struktura slična polju, čiji su elementi podaci znakovnog tipa; budući da se niz najčešće upotrebljava u smislu jednog retka teksta, koji ne mora uvijek imati isti broj korisnih znakova, na kraju se uvijek nalazi znak ‘\0’ koji, ne samo da označava kraj niza, već omogućava korištenje tzv. standardnih modula za obradu teksta.

CIN.funkcije:cin.get() učitava jedan znak sa tipkovnice (ako je uneseno više slova učitava se prvi znak a ostali znakovi ostaju u spremniku za sljedede unose, dio je iostream biblioteke),

cin.getline(varijabla, max_duljina) učitava znakove sve do kraja retka bez obzira na razmake kao jedan string (dio je iostream biblioteke),

Page 9: PROGRAMIRANJE 1 - TEORIJA (C++)

cin.ignore() briše sadržaj spremnika kako se ne bi unio neželjeni sadržaj koji je zaostao od prije (dio je iostream biblioteke).

ASCII standard- je Američki standardni znakovni sustav koji tumači određene binarne brojeve u računalu tako da ih prikazuje kao brojeve, slova latinske abecede (26 znakova), i niz drugih znakova.

Tekstualne datoteke (engl. textual file) Tekstualna datoteka je datoteka koja se sastoji od redaka teksta koji mogu biti varijabilne (različite) dužine.Tekstualna datoteka je sekvencijalna datoteka u kojoj je sadržaj zapisan slijedno a to znači da ako želimo pročitati ili upisati neki podatak moramo najprije pročitati sve predhodne podatke.Tekstualna datoteka također sadrži specijalni znak za kraj reda (EOLN-\n). Koristi se biblioteka funkcija fstream te postoje 3 biblioteke zaglavlja za rad s tekstualnim datotekama. To su: · ofstream – za upis u datoteku –umetanjem teksta u datotečni tok pridružen datotečnom objektu· ifstream – za ispis iz datoteke –metodom getline datotečnog objekta u neki znakovni niz(redak)· fstream – za upis i ispis iz datoteke Metodom getline s: (argumentima znakovnog niza u koji se učitava,veličinom znakovnog niza)

Datoteka (engl. file) - skup binarnih podataka dostupnih različitim programima za čitanje ili upisivanje. Dijele se na tekstualne i binarne(tipizirane). Tekstualna datoteka je datoteka koja se sastoji od redaka teksta koji mogu biti varijabilne (različite) dužine.Tekstualna datoteka je sekvencijalna u kojoj je sadržaj zapisan slijedno a to znači da ako želimo pročitati ili upisati neki podatak moramo najprije pročitati sve predhodne podatke.Tekstualna datoteka također sadrži specijalni znak za kraj reda (EOLN). Binarna datoteka je skup bitovnih podataka koje ne sadrže znakove za kraj reda pa je binarna datoteka zato fiksne veličine.Binarni sadržaji se čitaju i upisuju u datoteku bez konverzija kao kod tekstualnog načina rada ali se kodbinarnih datoteka može pristupati zapisima izravno preko njihovog rednog broja u datoteci. Binarni način rada koristi se kod datoteka s fiksnom veličinom sloga jer bi svaka eventualna konverzija mogla sadržaj zapisa učiniti nečitljivim.

POVIJEST JEZIKA

GODINA JEZIK TATA

1949. ASEMBLER JOHN MAUCHLY1957. FORTRAN -1958. ALGOL -1972. C DENNIS RITCHIE1984. C++ BJARNE STROUSTRUP1994. JAVA -2002. C# ANDERS HEJSBERG

GODINA JEZIK TATA

1957. FLOW-MATIC -1959. COBOL -1964. BASIC DORTMAUTH UNI1971. PASCAL NIKLAUS WIRTH1977. MODULA 2 NIKLAUS WIRTH1988. OBERON -1990. VISUAL BASIC -1995. DELPHI ANDERS HEJLSBERG

Page 10: PROGRAMIRANJE 1 - TEORIJA (C++)