algoritmi, programi, programski jezicimafpz.fpz.hr/~goldh/racunalstvo0607/predavanja -...

Post on 06-Feb-2018

231 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ALGORITMI, PROGRAMI, ALGORITMI, PROGRAMI, PROGRAMSKI JEZICI PROGRAMSKI JEZICI

PodaciPodaci, , informacijeinformacije, , komunikacijakomunikacija

Podaci i informacijePodaci i informacije

PodaciPodaci -- fizifiziččkiki opisiopisi pojmovapojmova, , idejaideja, , apstrakcijaapstrakcijaInformacijeInformacije -- znaznaččenjaenja pridrupridružženaena podacimapodacimaČČemuemu sluslužžee podacipodaci? ? –– pprijenosrijenosuu informacijainformacija, , –– pohranpohranii informacijainformacija zaza budubuduććee upotrebeupotrebe,,–– izvođenjizvođenjuu novihnovih informacijainformacija obradomobradom podatakapodataka premaprema

određenimodređenim pravilimapravilima

ČČemuemu sluslužžee informacijeinformacije? ? –– PodrPodršška ka u u procesimaprocesima odluodluččivanjaivanja i i upravljanjaupravljanja

KKomunikacijaomunikacija

RazmjenaRazmjena podataka (informacija) podataka (informacija) izmeđuizmeđu–– ljudiljudi–– ljudiljudi i i strojevastrojeva–– strojevastrojeva

TemeljiTemelji se se nana zajednizajedniččkomkom dogovorudogovoru o o znaznaččenjuenju fizifiziččkihkih simbolasimbola ((podatakapodataka) ) kojikojipredstavljajupredstavljaju pojmovepojmove, , ččinjeniceinjenice iliili idejeideje i i pravila njihove razmjenepravila njihove razmjene

ALGORITMIALGORITMI

Operacije i raOperacije i raččunanjaunanja

OperacijaOperacija–– PravilPraviloo zaza radrad s s podacimapodacima (+, (+, -- , *, div, /, , *, div, /, modmod))PodaciPodaci i i operacijeoperacije -->> raraččunanjeunanje

6+3=9, 66+3=9, 6--3=3, 6*3=183=3, 6*3=186 div 3=2, 7 div 2=3, 7/2=3.5, 6 div 3=2, 7 div 2=3, 7/2=3.5,

6 6 modmod 2=0, 7 2=0, 7 modmod 2=12=1RaRaččunanjeunanje ((postupakpostupak rjerješšavanjaavanja))–– konakonaččanan skupskup operacijaoperacija primijenjenprimijenjen nana konakonaččanan

skupskup podatakapodataka s s ciljemciljem rjerješšavanjaavanja postavljenogpostavljenogzadatkazadatka

AlgoritamAlgoritam

RaRaččunanjeunanje kojekoje rjerješšavaava postavljenipostavljeni zadatakzadatakZnaZnaččajkeajke algoritmaalgoritma::–– PopisPopis operacijaoperacija ((uputauputa) ) kojekoje opisujuopisuju izvrizvrššavanjeavanje

nekognekog postupkapostupka izraizražženen nana jasanjasan i i logilogiččanan nanaččinin–– OperacijeOperacije iziz popisapopisa ((koracikoraci algoritmaalgoritma) ) morajumoraju bitibiti

neposrednoneposredno izvediveizvedive–– NedvosmislenNedvosmislen–– ZavrZavrššavaava u u konakonaččnomnom brojubroju korakakoraka

DobroDobro oblikovanioblikovani strukturiranistrukturirani algoritamalgoritam olakolakššavaavaččitljivostitljivost i i razumljivostrazumljivost postupkapostupka raraččunanjaunanja

OsnovneOsnovne strukturestrukture pripri konstrukcijikonstrukcijialgoritmaalgoritma

SlijednaSlijedna–– koracikoraci se se izvrizvrššavajuavaju u u slijeduslijedu jedanjedan izaiza

drugogadrugoga, a , a pojedinipojedini korakkorak se se izvrizvrššavaava samosamojedanputjedanput

IzbornaIzborna–– izabireizabire se i se i izvrizvrššavaava samosamo jednajedna odod ponuđenihponuđenih

mogumoguććnostinostiPonavljanjaPonavljanja–– izvođenjeizvođenje jednogjednog iliili viviššee korakakoraka se se ponavljaponavlja

Primjer: Primjer: ObraObraččunun telefonskihtelefonskihtrotrošškovakova

ZadatakZadatak: : SastaviteSastavite algoritamalgoritam zazaizraizraččunavanjeunavanje telefonskihtelefonskih trotrošškovakova nanakrajukraju mjesecamjeseca, , akoako susu poznatipoznati brojbrojpotropotroššenihenih telefonskihtelefonskih impulsaimpulsa, , cijenacijenajednogjednog impulsaimpulsa tete iznosiznos telefonsketelefonskepretplatepretplate. U . U iznosiznos telefonsketelefonske pretplatepretplateurauraččunaunatto o jeje 100 100 impulsaimpulsa..

PoPoččetnoetno poznatipoznati podacipodaci

BrojBroj potropotroššenihenih telefonskihtelefonskih impulsaimpulsa–– IMPULSIIMPULSI

CijenaCijena jednogjednog impulsaimpulsa–– CIJENACIJENA

IznosIznos telefonsketelefonske pretplatepretplate–– PRETPLATAPRETPLATA

BrojBroj impulsaimpulsa urauraččunatunat u u pretplatupretplatu–– 100100

ŽŽeljenieljeni rezultantnirezultantni podatakpodatak

IznosIznos ukupnihukupnih telefonskihtelefonskih trotrošškovakova–– TROTROŠŠAKAK

VarijableVarijable

VeliVeliččineine kojakoja poprimajupoprimaju vrijednostivrijednosti izizskupaskupa dopudopušštenihtenih vrijednostivrijednosti. . VrijednostVrijednostvarijablevarijable tijekomtijekom izvrizvrššavanjaavanja određujeodređujealgoritamalgoritam

IMPULSI, CIJENA, PRETPLATA, TROIMPULSI, CIJENA, PRETPLATA, TROŠŠAKAK

KonstanteKonstante

VeliVeliččininee stalnestalne vrijednostivrijednosti

100100

IzraIzraččunavanjeunavanje trotrošškaka

VIVIŠŠAK = IMPULSI AK = IMPULSI –– 100100

TROTROŠŠAK = PRETPLATA + VIAK = PRETPLATA + VIŠŠAK * CIJENAAK * CIJENA

KoraciKoraci algoritamaalgoritama

1.1. UnesiUnesi podatkepodatke: : –– IMPULSI, CIJENA, PRETPLATAIMPULSI, CIJENA, PRETPLATA

2.2. Ako IMPULSI > 100 Ako IMPULSI > 100

oondanda VIVIŠŠAK AK ←← IMPULSI IMPULSI –– 100100iinanaččee VIVIŠŠAK AK ←← 00

3.3. TROTROŠŠAK AK ←← PRETPLATA + VIPRETPLATA + VIŠŠAK * CIJENAAK * CIJENA

4.4. IspiIspišši i rezultatrezultat–– TROTROŠŠAKAK

ObjaObjaššnjenjenjenje

1. Pridruživanje vrijednosti varijablama2. Pravilo zaključivanja:

Ako je UVJET zadovoljen (da/ne)onda izračunaj (da)inače izračunaj (ne)

3. Operacija pridruživanja (←)- varijabli s lijeve strane znaka pridruživanja pridružuje se

vrijednost izraza s desne strane znaka pridruživanja

4. Ispis vrijednosti varijable

DijagramDijagram tokatoka / Simboli/ Simboli

PreglednijiPregledniji prikazprikaz algoritmaalgoritma korikorišštenjemtenjemstandardnihstandardnih grafigrafiččkihkih simbolasimbola

PoPoččetaketak iliili krajkraj algoritmaalgoritma

UlazUlaz i/i/iliili iizlazzlaz ppodatakaodataka

PPridruridružživanjeivanje vrijednostivrijednosti vvarijablamaarijablama

Simboli dijagrama tokaSimboli dijagrama toka

MjestoMjesto izboraizbora, , grananjagrananja

PoPoččetaketak strukturestrukture ponavljanjaponavljanja

PPodalgoritamodalgoritam,, alalgoritamgoritam ččijiiji susu detaljidetalji

oopisanipisani drugdjedrugdje ((procedure,procedure, ffunkcijeunkcije))

RedoslijedRedoslijed izvođenjaizvođenja korakakoraka aalgoritmalgoritma

DijagramDijagram tokatoka algoritmaalgoritma zaza obraobraččununtelefonsktelefonskihih trotrošškovakova

VIŠAK <- IMPULSI - 100 VIŠAK <- 0

IMPULSICIJENA

PRETPLATATROŠAK <- PRETPLATA + VIŠAK * CIJENA

TROŠAK

SVRŠETAK

IMPULSI > 100DA NE

POČETAK

1

1

Dijagram tokaDijagram toka

ZadaciZadaci

Z1. Z1. KolikoKoliko iznoseiznose vrijednostivrijednosti varijablivarijabli nana krajukrajuizvođenjaizvođenja postupkapostupka prikazanprikazanogog dijagramomdijagramom tokatoka??

Z.2 Z.2 SastaviteSastavite dijagramdijagram tokatoka zaza izraizraččunavanjeunavanjepovrpovrššineine trokutatrokuta akoako susu poznatepoznate njegove njegove stranicestranice aa, , bb i i cc ..

cc bb

aa

Z.3 Z.3 SastaviteSastavite dijagramdijagram tokatoka programaprograma kojikojitrebatreba proproččitatiitati dvadva troznamenkastatroznamenkasta cijelacijelabrojabroja tete izraizraččunatiunati i i ispisatiispisati njihovnjihovumnoumnožžakak, , kolikoliččniknik (realni i (realni i cijelobrojnicijelobrojni) ) i i ostatakostatak. . TipoveTipove podatakapodataka izraziteizraziteidentifikatorimaidentifikatorima programskogprogramskog jezikajezikaPascal.Pascal.

Z.4 Z.4 SastaviteSastavite dijagramdijagram tokatoka zaza izraizraččunavanjeunavanjearitmetiaritmetiččkeke sredinesredine N N prirodnihprirodnih brojevabrojeva..

Z.5 Z.5 SastaviteSastavite dijagramdijagram tokatoka zaza izraizraččunavanjeunavanjezbroja parnih i neparnih brojeva niza od zbroja parnih i neparnih brojeva niza od nn prirodnih brojeva.prirodnih brojeva.

Z.6 Z.6 SastaviteSastavite dijagramdijagram tokatoka zaza izraizraččunavanjeunavanjezbrojazbroja prvihprvih nn ččlanovalanova nizaniza::

RARAČČUNALNI UNALNI PROGRAMPROGRAMII

Programi i programski jeziciProgrami i programski jezici

ProgramProgram–– AAlgoritamlgoritam prilagođenprilagođen za za izvođenjeizvođenje na na raraččunaluunalu

Programski jezikProgramski jezik–– SredstvoSredstvo za za izraizražžavanjavanjee programaprograma–– SluSlužži za opisi za opis

zzadatkaadatka, podataka , podataka –– ŠŠTO?, TO?, ČČIME?IME?postupka rjepostupka rješšavanja avanja –– KAKO?KAKO?

OpisOpis zadatkazadatka i postupka rjei postupka rješšavanjaavanja

ŠŠTO?, TO?, ČČIME?IME?–– OpisOpis zadatka, zadatka, polaznihpolaznih podatakapodataka, , žželjenih eljenih

rezultatarezultata i i njihovihnjihovih međusobnihmeđusobnih zakonitostizakonitosti, , relacijarelacija

KAKO?KAKO?–– OpisOpis postupkapostupka rjerješšavanjaavanja–– RedoslijedRedoslijed primjeneprimjene zakonitostizakonitosti, , relacijarelacija na na

podacima da bi se dobio podacima da bi se dobio žželjeni rezultateljeni rezultat

ŽŽivotni ciklus programaivotni ciklus programaPostavljanje zadatka, problemaPostavljanje zadatka, problemaSastavljanje algoritmaSastavljanje algoritmaProgramiranjeProgramiranje

–– prilagođavanje algoritma za izvođenje na raprilagođavanje algoritma za izvođenje na raččunaluunaluKodiranjeKodiranje programaprograma

–– pisanjepisanje programprograma u programskom jezikua u programskom jezikuUnos, preUnos, prevođenje i izvođenje programavođenje i izvođenje programaTestiranjeTestiranje programaprograma

–– provjeraprovjera rada rada premaprema postavljenimpostavljenim zahtjevimazahtjevimaIspravljanjeIspravljanje pogrepogreššakaaka u u programuprogramuDokumentiranjeDokumentiranje programaprograma

–– opisopis algoritamaalgoritama i i uporabeuporabe programaprogramaOdrOdržžavanjeavanje programaprograma

–– promjenapromjena programaprograma premaprema zahtjevimazahtjevima korisnikakorisnika

Pristupi programiranjuPristupi programiranju

Strukturirano programiranjeStrukturirano programiranjeObjektu usmjereno programiranjeObjektu usmjereno programiranjeProgramiranje agenataProgramiranje agenata

StrukturiranoStrukturirano programiranjeprogramiranje

SustavniSustavni pristuppristup programiranjuprogramiranju1.1. DeklaracijaDeklaracija podatakapodataka

popispopis varijablivarijabli i i njihovihnjihovih tipovatipovattipip podatkapodatka utvrđujeutvrđuje skupskup dopudopušštenihtenih vrijednostivrijednostivarijablevarijable

2.2. IzvedbeniIzvedbeni diodioredoslijedredoslijed izvođenjaizvođenja naredbinaredbi programaprograma ((korakakorakaalgoritmaalgoritma))

StrukturaStruktura programaprograma izraizražženaenaprogramskimprogramskim jezikomjezikom PPascalascal

programprogram .......... (*(* zaglavljezaglavlje programaprograma *)*).................... (*(* deklaracijadeklaracija podatakapodataka *)*)..........

beginbegin (* (* popoččetaketak *)*).................... (*(* iizvedbenizvedbeni diodio *)*)..........

endend. . (* (* svrsvrššetaketak *)*)

AlgoritamAlgoritam zaza obraobraččunun telefonskihtelefonskih trotrošškovakovazapisanzapisan u u programskomprogramskom jezikujeziku PPascalascal

programprogram TelefonTelefon;;varvar impulsiimpulsi, vi, viššakak: : integerinteger;;pretplatapretplata, , cijenacijena, , trosaktrosak: : realreal;;

beginbeginreadlnreadln((impulsiimpulsi, , cijenacijena, , pretplatapretplata));;

ifif impulsiimpulsi > 100 > 100 thenthen viviššakak := := impulsiimpulsi -- 100100elseelse viviššakak := 0;:= 0;

trotroššakak := := pretplatapretplata + vi+ viššakak * * cijenacijena;;writelnwriteln((' ' TroTroššakak iznosiiznosi ', ', trotroššak:6:2, ' ak:6:2, ' knkn''))endend..

Navođenje varijabli i tipovaNavođenje varijabli i tipova

vvarar nazivnaziv: tip;: tip;–– nazivnaziv: : impulsiimpulsi i vii viššakak

tiptip: i: integernteger–– varijable varijable poprimajupoprimaju vrijednostivrijednosti iziz skupaskupa cijelihcijelih brojevabrojeva

–– nazivnaziv: : pretplatapretplata, , cijenacijena i i trotroššakaktiptip: r: realeal

–– varijablevarijable poprimajupoprimaju vrijednostivrijednosti iziz skupaskupa decimalnihdecimalnih, , realnihrealnihbrojevabrojeva

IskaziIskazi, , naredbenaredbe u u programskomprogramskom jezikujeziku PPascalascalse se zavrzavrššavajuavaju znakomznakom ; (; (totoččkaka zarezzarez))

PridruPridružživanje i ispis vrijednostiivanje i ispis vrijednosti

readlnreadln( ....... )( ....... )–– proproččitajitaj vrijednostivrijednosti s s ulazneulazne jedinicejedinice raraččunalaunala

((tipkovnicatipkovnica, , datotekadatoteka) i ) i pridrupridružžii ihih varijablamavarijablamanavedenimnavedenim unutarunutar zagradazagrada

writelnwriteln( ....... ) ( ....... ) –– ispiispiššii teksttekst komentarakomentara i i vrijednostivrijednosti varijablivarijabli nana

standardnustandardnu izlaznuizlaznu jedinicujedinicu raraččunalaunala ((zaslonzaslon, , datotekadatoteka, , tiskalotiskalo))

Operatori i strukture nadzoraOperatori i strukture nadzora

SStrukturatruktura uvjetauvjetaif ... then ... if ... then ... eelselse ((akoako ... ... ondaonda ... ... iinanaččee))OOperacijaperacija pridrupridružživanjaivanja:=:=AAritmetiritmetiččkiki operatorioperatori

+, +, -- , *, / , *, / --ZZapisapis tekstateksta kojikoji ććee bitibiti neposrednoneposredno ispisanispisan' ........ '' ........ '

Formati ispisaFormati ispisa

FFormatormat ispisaispisa vrijednosti vrijednosti varijablevarijable

varijabla:n:mvarijabla:n:m

n = n = ukupniukupni brojbroj mjestamjesta zaza ispisispis

m = m = brojbroj decimalnihdecimalnih mjestamjesta

PripremaPriprema programaprograma zaza izvođenjeizvođenje

1.1. UUnosnos izvornogizvornog programaprograma u u raraččunalounalo2.2. PPrevođenjerevođenje i i tvorbatvorba izvedbenogizvedbenog oblikaoblika3.3. IIzvođenjezvođenje programaprograma

UnosUnos izvornogizvornog programaprograma u u raraččunalounalo

PrijenosPrijenos tekstateksta, , izvornogizvornog oblikaoblika, , programaprogramas s papirnatogpapirnatog medijamedija u u memorijumemoriju raraččunalaunalatete njegovanjegova pohranapohrana u u datotekudatoteku nanamagnetskommagnetskom medijumediju (disk) (disk) pomopomoććuuprogramaprograma zaza uređivanjeuređivanje tekstatekstaDatotekaDatoteka imenovaniimenovani skupskup povezanihpovezanihpodatakapodataka kojikoji ččineine logilogiččnunu cjelinucjelinu(program, (program, mjernimjerni podacipodaci, , dokumentdokument, , slikaslika, , zvuzvuččnini zapiszapis, video , video zapiszapis))

UnosUnos izvornogizvornog programaprograma u u raraččunalounalo

PrevođenjePrevođenje i i tvorbatvorba izvedbenogizvedbenog oblikaoblika

Program Program izraizražženen programskimprogramskim jezikomjezikom u u izvornomizvornom oblikuobliku ččitljivomitljivom ččovjekuovjeku program program jezijeziččnognog prevoditeljaprevoditelja prevodiprevodi u u ciljniciljni, , strojustroju ččitljiviitljivi -- ččovjekuovjeku gotovogotovo neneččitljiviitljivi, , izvedbeniizvedbeni oblikoblikIzborIzbor programaprograma zaza prevođenjeprevođenje ovisiovisi o o programskomprogramskom jezikujeziku u u kojemkojem jeje zapisanzapisanizvorniizvorni programprogram

PrevođenjePrevođenje i i tvorbatvorba izvedbenogizvedbenog oblikaoblika

IzvođenjeIzvođenje programaprograma

PunjenjePunjenje izvedbenogizvedbenog oblikaoblika programaprograma u u memorijumemoriju i i pokretanjepokretanje programaprograma pomopomoććuuupravljaupravljaččkihkih naredbinaredbi operacijskogoperacijskog sustavasustavararaččunalaunalaOperacijskiOperacijski sustavsustav -- program program zaza upravljanjeupravljanjeradomradom raraččunalaunala, , nadzornadzor programskoprogramsko--sklopovskihsklopovskihsredstavasredstava raraččunalaunala i i komunikacijukomunikaciju s s ččovjekomovjekomNNakonakon pokretanjapokretanja programaprograma unoseunose se se putemputemulazneulazne jedinicejedinice popoččetnoetno poznatipoznati podacipodaci, a , a raraččunalounalo nana temeljutemelju programaprograma izraizraččunavaunavarezultantnurezultantnu vrijednostvrijednost kojukoju ispisujeispisuje nana izlaznojizlaznojjedinicijedinici raraččunalaunala

IzvođenjeIzvođenje programaprograma

Dohvat radnog okruDohvat radnog okružženjaenja

http://www.freepascal.org

Pokretanje radnog okruPokretanje radnog okružženjaenja

Unos programaUnos programa

Spremanje programaSpremanje programa

Prevođenje programaPrevođenje programa

Izvođenje programaIzvođenje programa

ALGORITAM ZA OBRAALGORITAM ZA OBRAČČUN TELEFONSKIH TROUN TELEFONSKIH TROŠŠKOVA KOVA ZAPISAN U PROGRAMSKOM JEZIKU CZAPISAN U PROGRAMSKOM JEZIKU C

main()main(){{

intint impulsiimpulsi, , visakvisak;;floatfloat pretplatapretplata, , cijenacijena, , trosaktrosak;;scanfscanf("%f %d %f", &("%f %d %f", &pretplatapretplata, &, &impulsiimpulsi, &, &cijenacijena););if (if (impulsiimpulsi > 100) > 100)

visakvisak = = impulsiimpulsi -- 100;100;elseelse visakvisak = 0;= 0;trosaktrosak = = pretplatapretplata + + visakvisak**cijenacijena;;printf("Trosakprintf("Trosak iznosiiznosi %f %f knkn", ", trosaktrosak););

}}

top related