Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 43

Doc. dr. sc. Irena Itoka Otkovi Sveuilite J.J.

Strossmayera Graevinski fakultet u Osijeku

RAUNALNO PROGRAMIRANJE
lekcija I ALGORITMI
Osijek, ak. god. 2012/2013.

to je raunalni sustav?

2/43

to je raunalni sustav?
Raunalo je elektroniki stroj koji obrauje ulazne podatke ili informacije (INPUT) i proizvodi iz njih nove ili izlazne podatke (OUTPUT).
Raunalo obrauje podatke na osnovu programa koji je napisan za odreenu primjenu. Program po kome raunalo radi mora za vrijeme izvravanja biti u memoriji raunala.

3/43

to je program?
Skup naredbi (instrukcija) raunalu za rjeavanje odreenog problema naziva se program.

Proces pisanja instrukcija za raunalo naziva se programiranje.

4/43

PREDNOSTI KORITENJA RAUNALA


BRZINA
TONOST

RAZNOVRSNOST

5/43

ALGORITMI
Persijski matematiar Al-Khowarizmi (Abu Ja'far Mohammed Ibn Musa al Khowarizmi ) u udbeniku matematike (oko 825. godine n.e.) prikazao je rjeenja nekih aritmetikih problema u obliku uputstava koja su se sastojala od tono odreenih osnovnih koraka. Ovakva uputstva su kasnije nazvana algoritmima. Razvojem raunala algoritmi su postali samostalno i vano podruje raunalnih znanosti.
6/43

ALGORITMI to je algoritam?
Algoritam je, u opem sluaju, konani redosljed operatora, elementarnih obrada i pravila o njihovoj primjeni u cilju dobijanja rjeenja nekog problema. Izvoenje svakog operatora predstavlja jedan algoritamski korak. Sa raunalnog gledita ova definicija nije dovoljna pa se mora dopuniti jo nekim uvjetima koje algoritam mora zadovoljiti. To su: - definiranost, - konanost i - rezultat.
7/43

ALGORITMI
Definiranost. Svaka operacija ili pravilo mora imati definirano i samo jedno znaenje, tj. rezultat svake operacije mora biti jasno definiran. Konanost. Svaki korak mora biti takav da bi ga, bar u prinicipu, mogao izvesti ovjek, koristei olovku i papir, za konano vrijeme. Postoje jednostavni i jednoznani postupci koji nisu algoritmi jer su beskonani sa gledita broja koraka potrebnog za dobijanje rezultata. Algoritmi se moraju zaustaviti poslije izvrenog konanog broja koraka i u konanom vremenu.
8/43

ALGORITMI
U vezi sa primjenom raunala treba napomenuti da vrijeme rada raunala potrebno za zavretak algoritma treba biti razumno kratko.
Rezultat. Po zavretku algoritma mora postojati mogunost da se ustanovi rezultat njegovog rada, odnosno da li je algoritam postigao svoj cilj ili nije. Pojam algoritma ne mora biti vezan za primjenu raunala. Algoritmi se koriste u svakodnevnom ivotu za izvravanje razliitih aktivnosti (na pr. kuharski recepti).
9/43

ALGORITMI
Postoje razliite mogunosti za predstavljanje algoritma, ali se on najee pretstavlja grafiki pod imenom dijagram tijeka programa (flowchart).
U ovom dijagramu pojedine akcije prikazane su tono odreenim grafikim simbolima ime se osigurava jednostavnost, preglednost i jednoznanost zapisa algoritma. Najee koriteni simboli su prikazani na sljedeem slajdu.
10/43

ALGORITMI
Grafiki simbol Znaenje Terminator

Unoenje podataka Izdavanje podataka Obrada podataka


Odluka

Povezivanje algoritamskih koraka

11/43

ALGORITMI Struktura algoritma


Pod strukturom algoritma podrazumijeva se redosljed izvravanja pojedinih vrsta algoritamskih koraka u algoritmu.
Sa stanovita ovog redosljeda postoje tri osnovne algoritamske strukture: - linijska, - razgranata i - ciklika.

12/43

ALGORITMI
Linijska struktura Algoritamski koraci se izvravaju jedan za drugim redosljedom kojim su napisani. Primjer Algoritam za zamjenu kotaa na automobilu.

POETAK

1. Pripremi dizalicu 2. Pripremi rezervni kota 3. Olabavi vijke na kotau 4. Podigni auto 5. Odvrni vijke na kotau 6. Skini kota 7. Stavi rezervni kota 8 . Zavrni vijke na kotau 9. Spusti auto 10. Zategni vijke 11. Spremi dizalicu 12. Spremi rezervni kota
KRAJ

13/43

ALGORITMI
Razgranata struktura Struktura algoritma u kojoj tok operacija ovisi o ispunjenosti nekih uvjeta zove se razgranata struktura. Primjer Algoritam za prelazak ulice sa semaforom.

POETAK

1. Stani ispred kolnika 2. Pogledaj semafor

NE

Zeleno svjetlo

DA

3. ekaj zeleno svjetlo 4. Prijei ulicu

3. Prijei ulicu

KRAJ
14/43

ALGORITMI
Ciklika struktura Algoritam kod kog se odreeni broj algoritamskih koraka ponavlja vie puta ima cikliku strukturu. Ako je broj ponavljanja dijela algoritma poznat unaprijed, struktura je konstantna (brojaki ciklus). Primjer - algoritam za punjenje deset boca vodom. Ako broj ponavljanja nije poznat unaprijed, nego ovisi od ispunjenosti nekog uvjeta struktura je promijenljiva (uvjetni ciklus). Primjer - algoritam za prelazak ulice bez semafora.
15/43

POETAK 1. Otvori vodu Ponovi 10 puta

ALGORITMI

POETAK

1. Stani ispred kolnika

2. Pogledaj lijevo i desno


2.

Uzmi praznu bocu 3. Napuni je vodom 4. Zatvori bocu 5. Odloi punu bocu

NE

Nema vozila

DA

3. Saekaj malo 6. Zatvori vodu KRAJ KRAJ

4. Prijei ulicu

Konstantna ciklika struktura

Uvjetna ciklika struktura 16/43

ALGORITMI
Sloene algoritamske strukture Sloene algoritamske strukture sastoje se od proizvoljnog broja, proizvoljnih kombinacija osnovnih algoritamskih struktura.

17/43

RIJEAVANJE PROBLEMA PRIMJENOM RAUNALA


Koraci: 1. 2. 3. 4. Izbor i formulacija problema, Analiza problema, Izbor metoda za rjeavanje problema, Projektiranje programa,

18/43

ALGORITMI
"TOP-DOWN" PROJEKTIRANJE

Na svakom nivou postoji algoritam za rjeavanje problema.


Svaki modul moe se zamijeniti drugim modulom koji mu je funkcionalno ekvivalentan.
19/43

RIJEAVANJE PROBLEMA PRIMJENOM RAUNALA


Koraci: 1. 2. 3. 4. 5. 6. 7. 8. Izbor i formulacija problema, Analiza problema, Izbor metoda za reavanje problema, Projektiranje programa, Kodiranje algoritma, Ispitivanje korektnosti programa, Izrada dokumentacije, Odravanje programa.
20/43

FUNKCIONALNA SHEMA RAUNALA

ULAZNE JEDINICE

KONTROLNA JEDINICA

SREDINJA MEMORIJA

JEDINICE VANJSKE MEMORIJE

IZLAZNE JEDINICE

ARITMETIKO LOGIKA JEDINICA

21/43

Komunikacija sa raunalom

01100111101

22/43

Komunikacija sa raunalom

23/43

Tipovi jezika
Strojni jezik (binarni) Asemblerski (strojno orijentirani), Jezici vieg nivoa (proceduralno orijentirani), Problemski orijentirani jezici, Objektno orijentirani jezici.

24/43

Programski jezici
FORTRAN = FORmula TRANslation COBOL = Common Bussines Oriented Language ALGOL = ALGOrithmic Language PL/I = Programing Language I (one) BASIC = Beginners All Purpose Symbolic Instruction Code PASCAL ADA Jezici srednje razine C, C++ Visual Basic
25/43

Programski jezici
Program se pie u izvornom jeziku (source language). Raunalo izvrava program u strojnom jeziku (object language).

IZVORNI PROGRAM

PROGRAM PREVODITELJ

STROJNI JEZIK

26/43

Programski jezici
Program prevoditelj kompajler (compiler) prevodi program napisan u izvornom jeziku u strojni jezik.

Proces prevoenja se zove kompilacija.


Kod asemblerskih jezika proces prevoenja se zove asembliranje. SVAKO RAUNALO MORA IMATI PROGRAM PREVODITELJ ZA SVAKI PROGRAMSKI JEZIK KOJI SE KORISTI.
27/43

Programski jezici
Cilj prevoenja ne mora uvijek biti strojni jezik.
To moe biti neki meujezik ili drugi programski jezik (target language).

Na primjer, iz FORTRAN-a u C++.


Ako je cilj prevoenja meujezik, onda se obino iz vie programskih jezika prevodi u isti meujezik, a zatim posebnim optimizacijskim prevoditeljem iz meujezika u strojni jezik.
28/43

Programski jezici
Interpretativni i interaktivni programski jezici su jezici kod kojih se svaka naredba moe tumaiti i izvravati neovisno od ostalih programskih naredbi.
Interpreteri prepoznaju i izvravaju naredbe jednu po jednu, to olakava, ali i usporava rad programa, naroito kod ciklusa (petlji ).

29/43

Programski jezici
Svaki programski jezik se sastoji od:
Skupa znakova, Rjenika, Sintakse (pravila gramatike), Semantike (znaenja svake naredbe).

30/43

Struktura programa
Program je skup naredbi (instrukcija) za raunalo, napisanih za rjeavanje jednog problema.
Naredbe programskog jezika formiraju se koristei rijei iz rjenika programskog jezika i nazive koje programer dodijeljuje memorijskim lokacijama u koje su uskladiteni podaci sa kojima se radi u programu, a prema pravilima sintakse jezika.

31/43

Struktura programa
Svaka naredba se zavrava oznakom za kraj naredbe. U velikom broju programskih jezika oznaka za kraj naredbe je toka-zarez (;).
Naredbe se izvravaju redosljedom kojim su napisane, ukoliko taj redosljed nije izmijenjen posebnim naredbama za izmijenu toka programa (grananje i ciklusi).

32/43

Struktura programa
U svim programskim jezicima znakovi koji se mogu koristiti za formiranje elemenata jezika su:
alfabetski velika i mala slova engleske abecede,

numerini znamenke 0,1,2,3,4,5,6,7,8,9


specijalni ovisno od jezika (. , = ; + zagrade itd.) Znakovi iz prva dva skupa (alfabetskih i numerikih) nazivaju se alfanumerini.

33/43

Imena podataka
Podatci sa kojima program radi moraju se za vrijeme izvravanja programa nalaziti u memoriji raunala. U naredbama programa zadaju se memorijske lokacije na kojima se nalaze podatci sa kojima naredba radi.
Korisnik se poziva na podatke tako to dodijeljuje imena ovim lokacijama na temelju pravila sintakse.
34/43

Imena podataka
Program prevoditelj u postupku prevoenja povezuje ova imena sa memorijskim lokacijama (adresama) u kojima e biti memorirani ti podatci.
Za vrijeme prevoenja program prevoditelj pravi tablicu (symbol table) u kojoj sa jedne strane stoji ime koje je korisnik dodijelio podatku, a sa druge strane adresa u memoriji na koju je uskladiten podatak.
35/43

Imena podataka

Prilikom dodijeljivanja imena lokacijama treba voditi rauna da nas asociraju na podatak koji predstavljaju.

36/43

Imena podataka
Postoje dvije grupe memorijskih lokacija za podatke:
konstante - lokacije u kojima se podaci postavljaju prije poetka rada programa i ne mijenjaju za vrijeme rada programa, varijable (promijenljive) - lokacije kod kojih se sadraj (podatci memorirani u njima) mijenjaju za vrijeme rada programa.
37/43

Imena podataka
Za imenovanje adresa lokacija, kao i drugih elemenata programa, koriste se simbolina imena. Ova imena sastoje se od jednog ili vie (6 do 63 u zavisnosti od programskog jezika) alfanumerinih znakova (u nekim programskim jezicima mogu biti i neki specijalni znakovi), od kojih prvi znak imena mora biti slovo.
38/43

Imena podataka
Primjer
ISPRAVNO JOSIP A1234 M1V2 Povrsina_kruga NEISPRAVNO MARA$ 1AB

39/43

Imena podataka
Ime varijable je uvijek formirano kao simbolino ime. Ime konstante moe biti:

simbolino ime (simbolina konstanta ili konstantna varijabla) ili vrijednost memorirana na lokaciji konstante (broj ili tekst).
40/43

Imena podataka

Konstante su imena podataka koja su jednaka vrijednosti podataka. Svaki tip podataka ima odgovarajui tip konstante.

41/43

Tipovi podataka
Podaci sa kojima raunala rade dijele se, prema nainu njihovog memoriranja u raunalu, na sljedee tipove: cijeli brojevi, realni brojevi u obinoj tonosti realni brojevi u dvostrukoj tonosti znakovni podatci logiki podatci
42/43

KRAJ

43/43

You might also like