Program, programiranje, programski jezici

Sjedište: CARNET - Arhiva 2021 Loomen
E-kolegij: e-Ekonomac
Knjiga: Program, programiranje, programski jezici
Otisnuo/la: Gost (anonimni korisnik)
Datum: nedjelja, 24. studenoga 2024., 16:32

Opis



1. Ponovimo već naučeno!

Prethodni sat naučili smo što je pojam algoritam u svakodnevnom životu. Proučite sliku ispod i ponovite naučeno!

algoritam

Svaki pojedini korak u izvršavanju algoritma se zove algoritamski korak.  Zamjena algoritamskih koraka dovodi do pogrešaka u realizaciji algoritma (npr. u algoritmu izrade torte, ako ne slijedimo precizno upute nećemo dobiti željenu tortu). 

Uvjeti koje mora zadovoljiti dobar algoritam su:

  • točnost - daje točan ishod za sve moguće ulaze i problemske situacije
  • brzina - daje točan ishod u zadovoljavajućem vremenskom razdoblju
  • razumljivost - mora biti razumljiv i primjenjiv i u drugim okolnostima
Svaki algoritam sastavljen je od osnovnih algoritamskih postupaka. To su:

  • slijed – jedan ili više koraka koji se izvode jedan za drugim  
  • grananje – odluka koji slijed koraka treba izvršiti s obzirom na postavljeni uvjet  
  • ponavljanje (petlja) – slijed algoritamskih koraka koji se provodi određeni broj puta gdje broj ponavljanja može biti unaprijed određen ili ovisi o zadanom uvjetu

konstrukti

2. Algoritam, program i programiranje

Nakon što smo razjasnili općenito što je algoritam, stavimo pojam algoritma u kontekst svijeta računala. 

Algoritam je konačan skup koraka koji računalu detaljnu opisuju što treba napraviti. Da bi računalo moglo razumjeti dane upute što i kako treba raditi one trebaju biti napisane nekim programskim jezikom. Uputa računalu napisana u programskom jeziku koja određuju što računalo treba napraviti predstavlja računalni PROGRAM. Program se sastoji od niza algoritamskih koraka odnosno INSTRUKCIJA (ili naredaba) koje se izvršavaju po strogo određenom redoslijedu te nakon njihovog provođenja dobivamo određeni rezultat. 

Zašto je značajno da se naredbe izvršavaju po strogo određenom redoslijedu? Odgovor na to pitanje možemo pronaći u razumijevanjem jednostavnog algoritma kuhanja kave. Npr. možemo li staviti kavu prije vode? Ili prije nego što voda proključa? Zašto je značajno slijediti algoritamske korake i što ćemo dobiti ukoliko algoritamske korake budemo preskakali?


Zaključimo:

Program je skup naredaba ili instrukcija poredanih po strogo određenom redoslijedu, nakon čijeg provođenja dobivamo određeni rezultat. Osnovni element programa je naredba ili instrukcija.

Pisanjem programa bave se programeri, a pišu ih u odabranim programskim jezicima.

Izrada programa nije jednostavna. Za pisanje programa nije potrebno samo znanje programskog jezika, već treba znati primijeniti i ispravan algoritam za njegovo rješavanje.


3. Zapis algoritma

U osnovi je algoritme moguće zapisivati na dva načina:

  1. Prirodnim (govornim) jezikom
  2. Umjetnim jezikom 

Na primjer, iz prethodno danih primjera, algoritam bankomat smo prikazali prirodnim jezikom.

Umjetni jezik je jezik u kojem su raspoređena posebna pravila, riječi i simboli s pomoću kojih se zapisuju algoritmi. Osim upotrebe programskog jezika u kojem pišemo programe, razvijena su još dva načina na koje možemo prikazati algoritam - dijagram tijeka i pseudojezik. Oni se primjenjuju u pripremnoj fazi razrade algoritma prije samog kodiranja, odnosno prije pisanja programskih naredaba u određenom programskom jeziku. 

Dijagram tijeka služi za grafički zapis algoritma i pri tome se služimo osnovnim standardnim likovima: 

dijagram tijeka

Besplatna desktop aplikaciju za izradu i simulaciju dijagrama tijeka http://flowgorithm.org/

Pseudojezik se može smatrati pojednostavljenim programskim jezikom. Njegova su pravila puno jednostavnija nego pravila pravoga programskog jezika, a algoritam zapisan pseudojezikom može se lako prepisati u bio koji viši programski jezik.

Na slici ispod vidimo opis osnovnih naredaba pseudojezika:

pseudojezik

Primjer jednostavnih naredbi zapisanih pomoću pseudojezika:

pseudo naredbe

Primjer načina zapisa algoritma, izvadak iz uputa za državnu maturu iz informatike: 

upute DM 

4. Faze programiranja

Algoritam je razrađen postupak koji nakon konačnog broja koraka dovodi do rješenja problema.

Pogledajmo primjer jednog problema: 

problem

Pogledajmo sada kroz koje smo sve korake prošli od uočavanja problema do njegova rješenja:

koraci

Strelice na slici pokazuju da ćemo se morati vraćati na neke prethodne korake ako nismo dovoljno dobro odradili neki od njih. 

Koraci u izradi algoritma:

faze

Zadatak:

Poredaj po brojevima faze programiranja  - Nakon klika na poveznicu (ljubičasti tekst) idi u Zabavni kutak - 

5. Programski jezici

Umjetni jezik osmišljen za komunikaciju s računalom u kojem pišemo programe zove se PROGRAMSKI JEZIK. Svaki programski jezik određen je dopuštenim znakovima, ključnim riječima i pravilima koja nam govore kako ćemo pisati i kombinirati naredbe programa. Danas postoje mnogi različiti programski jezici i svaki od njih ima neke svoje posebnosti. 

Domaći rad:  izraditi umnu mapu sa spomenutim te aktualnim programskim jezicima u svijetu (odabrati 5 najzastupljenijih programskih jezika trenutno u svijetu).  Za svaki od njih kratko navedite uporabu.

Razvoj programskih jezika kroz generacije:

Već u prvom razredu smo naučili da računala razumiju samo jezik nula i jedinica. Takav jezik je nastao u ranim 50-im godinama prošlog stoljeća i naziva se strojnim jezikom. Strojni jezik je razumljiv računalu, ali je složen za programiranje jer se sve naredbe zapisuju nizovima nula i jedinica. Možete samo zamisliti koliko je teško uočiti pogrešku u takvim nizovima nula i jedinica!

S obzirom da nam je prirodnije koristiti se riječima nego nizovima nula i jedinica, programeri koji su razvijali programe u strojnom jeziku, težili su razvijanju programskih jezika koji umjesto nula i jedinica rabe riječi i simbole. Takvi se jezici nazivaju simboličkim programskim jezicima. Simboličke jezike dijelimo na jezike niže i više razine.

instrukcija

U jezicima niže razine (npr. asemblerski jezik) pojedine se naredbe označavaju karticama koje podsjećaju na njihovu namjenu (npr. MUL - množenje, ADD - zbrajanje). Iako su čovjeku razumljiviji od strojnog jezika, ti jezici pripadaju skupini jezika usmjerenih na računalo. Svaka naredba u nižem simboličkom jeziku mijenja jednu naredbu u strojnom jeziku

U programskim jezicima više razine, koji su nastali otprilike 1960. godine, naredbe su kratke riječi koje se lako pamte.  Za razliku od jezika niže razine, većina naredaba viših programskih jezika mijenja niz naredbi strojnog jezika. Glavna karakteristika viših simboličkih jezika je orijentiranost prema programeru - jezik je sličniji govornom jeziku, a za programiranje nije nužno detaljno poznavanje hardvera. 

Primjeri viših programskih jezika s kojima ste možda već susreli u osnovnoj školi su Logo, Basic ili C (rabe se njihove razne inačice). Učeći spomenute jezike, osim usvajanja sintakse programskog jezika, usvaja se i tehnika tzv. strukturnoga programiranja. Radi se o tome da se početni problem podijeli u više manjih problema. Rješavamo jedan po jedan, a zatim ih spajamo u cjelinu kao  Lego kockice. Takav pristup programiranju često se naziv i top-down programiranje jer se osnovni problem razlaže u više manjih cjelina. 

zapis programa

Iako danas programe piše u višim programskim jezicima računalo i dalje razumije samo strojni jezik. Zbog toga postoje programi prevoditelji koji programe napisane u višem programskom jeziku prevode u strojni jezik. Programe prevoditelje dijelimo u dvije skupine: kompajlere i interpretere. 

Kompajleri (engl. compliers) prevode cijeli program, stvaraju izvršnu (.exe) inačicu koju zatim izvršavaju, a interpreteri prevode naredbu po naredbu i svaku naredbu odmah izvršavaju. 

Posljednjih godina u programiranju prevladavaju tzv. objektno orijentirani jezici. Za razliku od proceduralnih jezika u kojima je naglasak na algoritmu u objektnom programiranju glavnu ulogu imaju objekti koji sadržavaju podatke i funkcije (koje se u objektnom programiranju nazivaju metodama).