Općenito o programiranju

Sjedište: CARNET - Arhiva 2021 Loomen
E-kolegij: Osnove programiranja u jeziku Python
Knjiga: Općenito o programiranju
Otisnuo/la: Gost (anonimni korisnik)
Datum: petak, 17. svibnja 2024., 00:02

Opis

Osnove programiranja

1. Osnovni pojmovi

Definicija prema Wikipediji:

Programiranje je pisanje uputa računalu što i kako učiniti, a izvodi se u nekom od programskih jezika. Programiranje je umjetnost i umijeće u stvaranju programa za računala. Stvaranje programa sadrži u sebi pojedine elemente dizajna, umjetnosti, znanosti, matematike kao i inžinjeringa.

1.1. Programska podrška

›Programska podrška (software) je skup svih programa koji se mogu izvršavati na računalu.
Podjela software-a (programa):

1) ›Sistemski programi

  • ›Operacijski sustavi kao MS-DOS, UNIX, Linux (Fedora, RedHat, Mandrake Ubuntu), Windows (95, NT, XP, 7, 8)
  • Pogonski programi - driveri
  • ›Mrežni programi (NFS, TCP/IP)
  • Ostali uslužni programi - antivirusni programi, programi za čišćenje diska...
›
›2) Aplikativni programi (korisnički programi)
  • ›Rješava probleme specifične za neku problematiku
  • ›Uredski programi - Tablični kalkulatori (npr. Excel), uređivači teksta (npr. Word)
  • Multimedija - Obrada slike (npr. Photoshop ili GIMP), obrađivači slike filma i zvuka, playeri ...
  • Tehničko crtanje (npr. AutoCAD)
  • Pretraživači interneta, računalne igre
  • ...
Bez operativnog sustava ne mogu raditi korisnički programi, a odnos među njima prikazuje sljedeća slika.

1.2. Program

Računalom upravlja niz naredbi (instrukcija) koje ›piše programeri na način da nižu naredbe u smislenom redoslijedu.
Kombinacijom naredbi nastaje program.
›Naredbe moraju biti u obliku u kojem će ih računalo razumjeti.
›Programski jezici omogućuju pisanje računalnih programa.
›Svaki programski jezik koristi ključne riječi od kojih se formiraju naredbe računalu.
Svaki programski jezik ima propisana pravila slaganja ključnih riječi u naredbe - sintaksu.
Ako se ne zadovolji propisana sintaksa, program će biti neispravan i neće se moći izvršiti.

1.3. Algoritam

›Algoritam predstavlja precizno opisan način rješenja nekog problema
›Jednoznačno određuje što treba napraviti
Mora imati konačan broj koraka opisanih instrukcijom
Ako se neki od koraka izostavi ili se promjeni njihov redoslijed algoritam neće biti korsitan.
Primjer algoritma korištenja bankomata:
  • ›umetnite karticu u čitač tako da magnetska traka bude s donje desne strane
  • ›„u slučaju da to od Vas uređaj zatraži odaberite jezik
  • ›„odaberite iznos ili uslugu
  • ›„odgovorite želite li potvrdu
  • ›„uzmite karticu
  • ›„uzmite novac
  • ›„uzmite potvrdu ako ste potvrdili da ju želite

Primjer algoritma korištenja vatrogasnog aparata:

1.4. Izvorni i izvršni oblik programa

›Računalo (procesor) razumije samo programe napisane u strojnom (binarnom) obliku.
›Svaki drugi oblik zapisa programa potrebno je prije izvođenja prevesti u binarni oblik.
›Program u binarni oblik prevodi program prevodioc (kompajler ili interpreter).
Kompajleri prevode cijeli program u strojni opblik prije početka njegovog izvršavanja.
Interpreteri prevode program u strojni oblik jednu po jednu naredbu za vrijeme izvođenja programa.
Većina suvremenih programskih jezika koristi kompajler, pa je potrebno izvršiti kompajliranje da bi se program mogao pokrenuti. Kompajliranje je postupak prevođenja izvornog programskog koda (kojeg piše programer) u izvršni programski kod razumljiv računalu.

2. Programski jezici

Programski jezici omogućuju pisanje programa od strane programera. Programski jezik omogućuje pisanje izvornog ili izvršnog koda. Kod suvremenih programskij jezika izvorni se kod prevodi u izvršni kod namijenjen određenoj platformi (npr. iOS, Windows, Linux ...)
›Programski jezici se mogu podijeliti na:
  • ›strojne jezike
  • ›simboličke jezike niske razine
  • ›simboličke jezike visoke razine

2.1. Strojni jezik

›Strojni jezik je najniža razina prikaza programa.
›Program pisan strojnim jezikom je u binarnom obliku i može se odmah izvršavati na računalu.
›Strojni je jezik vezan uz građu određenog računala i svaki tip procesora ima sebi svojstven strojni jezik.
›Pisanje programa u strojnom jeziku je vrlo složeno i zahtijeva dobro poznavanje građe računala.

2.2. Simbolički jezik niske razine

›Simbolički su jezici nastali kako bi se olakšalo programiranje jer ljudi lakše pamte simbole nego binarne brojeve.
›Asembler (engl. assembler) je sibolički jezik u kome je svaka binarna naredba strojnog jezika predočena odgovarajućim nizom simbola.
›Naredbe strojnog jezika predočuju se simbolima koji se najčešće sastoje od kombinacije nekoliko slova, npr.:
  • ›ADD
  • ›SUB
  • ›CMP

›Svaka od tih kombinacija slova obično je kratica engleskog opisa naredbe pa se lako pamti.

2.3. Simbolički jezici visoke razine

Simbolički jezici visoke razine imaju višu razinu apstrakcije u odnosu na strojni jezik. Umjesto da barataju sa registrima ili memorijskim adresama (kao strojni jezici), jezici visoke razine barataju sa varijablama, nizovima te složenim aritmetičkim izrazima što programeru omogućuje orjentaciju na rješavanje logičkog problema umjesto na arhitekturu procesora.
›Kod simboličkih jezika visoke razine se više naredbi strojnog jezika predočuje jednom simboličkom naredbom.
›
Naredbe viših programskih jezika mnogo su više nalik govornom jeziku, lakše  su za pamćenje i upotrebu od naredbi simboličkih jezika niže razine.
›U drugoj polovini 20.-og stoljeća nastaju programski jezici FORTRAN, COBOL, BASIC, PASCAL, programski jezik C i mnogi drugi.
Suvremeni programski jezici su objektonoi orijentirani kao npr. C++, Java, Python, C#, VisualBasic

2.4. Dijagram tijeka i pseudokod

›Grafički prikaz algoritma naziva se dijagram tijeka.
›Dijagram tijeka je koristan jer pregledno prikazuje algoritam, omogućava lakšu analizu i provjeru predloženog rješenja, te pronalaženje boljih postupaka rješavanja zadatka.
›Dijagram tijeka se sastoji od jednostavnih geometrijskih likova spojenih usmjerenim crtama.
›Usmjerene crte pokazuju tijek rješavanja zadatka pa odatle i naziv dijagrama.

Alat za crtanje dijagrama tijeka:

http://www.gliffy.com/

3. Strukturno programiranje

Strukturno programiranje je metoda pisanja programa koja za stvaranje programske strukture koristi 3 algoritamska konstrukta:

- slijed (sekvenca)
- grananje (selekcija)
- ponavljanje (iteracija)

3.1. Slijedno izvođenje programa

Program se sastoji od naredbi koje se izvršavaju jedna nakon druge. Naredba mora završiti kako bi započela sljedeća naredba.

Ukoliko naredba čeka primjerice unos vrijednosti s tipkovnice (int(input("Unesi prvi broj:"))), cijeli program zaustavlja s izvođenjem sve dok vrijednost ne bude unesena.

Primjer programa u Pythonu:

a=int(input("Unesi prvi broj:"))

b=int(input("Unesi drugi broj:"))

c=a+b

print("Zbroj brijeva je:"",c)

Prikaz dijagrama tijeka:

3.2. Selekcija - grananje programa

Grananje programa omogućuje da se program izvodi ovisno o parametrima koji se provjeravaju za vrijeme izvođenja programa. Uvjet može npr. biti odgovor korisnika programa preko tipkovnice. Parametriziranje programa omopgćuje da program bude prilagodljiv i da se ponašanje programa mjenja prematrenutačnim okolostima.

Logički uvjeti baziraju se na logičkim operatorima koji se primjenjuju na jednom ili više operanada unutar logičkih izraza.

Prikaz selekcije korištenjem dijagrama tijeka: