Upload
lamdung
View
231
Download
3
Embed Size (px)
Citation preview
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););
}}