Osnovni pojmovi

Sjedište: CARNET - Arhiva 2021 Loomen
E-kolegij: Pripreme za ispit iz informatike na državnoj maturi
Knjiga: Osnovni pojmovi
Otisnuo/la: Gost (anonimni korisnik)
Datum: ponedjeljak, 7. listopada 2024., 05:21

Opis

definiranje osnovnih pojmova

1. Osnovni pojmovi

Već vam je sigurno poznata činjenica kako namjenu računala određuje program koji se u tom trenutku na njemu izvršava. Zbog toga je razvoj programa jednako važan kao i razvoj računalnih komponenti.

Program je, u stvari, niz instrukcija (naredbi), koje (ako su poredane u ispravnom redoslijedu) daju određen rezultat.

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

Važno je istaknuti da izrada programa nije jednostavna. Za pisanje programa nije potrebno samo znanje programskog jezika, već treba znati primijeniti ispavan ALGORITAM za njegovo rješavanje.

Sam pojam algoritma nije usko vezan uz informatiku niti uz programiranje. Odnosi se na razrađen postupak koji nakon konačnog broja koraka dovodi do rješenja (ili spoznaje da ono ne postoji).

Zanimljivosti...

Riječ algoritam dolazi od latinskog prijevoda imena arapskog matematičara Abu Abdullah Muhammad ibn Musa al-Khwarizmi-a koji se smatra ocem algebre jer je definirao osnovna pravila rješavanja linearnih i kvadratnih jednadžbi.

Prvi zapis algoritma prilagođen računalu pripada Adi Byron iz 1842 (pa se zbog ovoga smatra prvom programerkom), a računao je Bernoullijeve brojeve. Računalo za koje je napisan je bio analitički stroj, kojeg je zamislio, ali nikad u potpunosti proveo u djelo, Englez Charles Babbage. Analitički stroj je trebalo biti prvo programabilno računalo, sastavljeno u potpunosti od mehaničkih dijelova. Mehanički dijelovi i fizička glomaznost su glavni razlozi zašto nikad nije završen.
Izvor: hr.wikipedia.org/wiki/Algoritam

2. Načini zapisivanja algoritma

Svaki algoritam može biti prikazan grafički (dijagramom tijeka) ili u pseudo jeziku. Programer sam odlučuje koji oblik zapisivanja algoritma mu bolje odgovara. Za manje programe dovoljno je u par rečenica zapisati način na koji se dolazi do rješenja. Kod većih programa, možda je razumljiviji slikovni prikaz pojedinih dijelova programa. Algoritam napravljen u ovoj fazi postaje jedan od važnijih dijelova dokumentacije. U slučaju da program nakon nekog vremena treba doraditi, bez prikaza i opisa algoritma to bi bilo gotovo nemoguće.

2.1. Dijagram tijeka

Dijagram tijeka je grafički prikaz algoritma. Postoje simboli za osnovne naredbe koje se slažu prema potrebi kako bi opisale zamišljeni algoritam:

simboli dijagrama tijeka

Prije sastavljanja programa izrađujemo grafički prikaz njegova tijeka koji će omogućiti lakše i brže sastavljanje programa.
Grafički prikaz tijeka izvođenja programa upućuje na radnje koje će se izvršavati u programu te na slijed tijeka programa. Sastavlja se i čita odozgo prema dolje, u smjeru poveznica, a ako je izvršena odluka, tada prema dolje ili udesno.
Tri su načina povezivanja simbola ovisno o zahtjevima programa:
a) SLIJED - niz naredbi koje se izvršavaju jedna za drugom;
b) ISPITIVANJE UVJETA - dio programa u kojemu na temelju odluke izvršavamo jedan ili drugi dio programa;
c) PETLJA - zatvoreni niz naredbi koje ponavljamo sve dok je zadovoljen postavljeni uvjet ponavljanja.

2.2. Prikaz algoritma u pseudojeziku

Možemo reći da je pseudo jezik (pseudokod) opis algoritma. To je prijelazni oblik između govornog i programskog jezika, a sadrži samo instrukcije u ispravnom redoslijedu. Lako je razumljiv i vrlo se jednostavno može prevesti u bilo koji programski jezik.

Ne postoji standardizirani pseudo jezik, ali zbog uvođenja državne mature, stručna radna skupina za informatiku "propisala" je standard kojeg bi se u školama trebali držati.

2.3. Aritmetički operatori

aritmetički operatori

Primjer:

Matematički izraz formula  u pseudo jeziku zapisujemo kao: (2*x+3)/4.

Za razliku od matematike, u programiranju koristimo dva dodatna operatora: cjelobrojno dijeljenje i ostatak cjelobrojnog dijeljenja. Radi se o dijeljenju koje ste učili u osnovnoj školi, kada još niste znali da postoje realni brojevi.

Podsjetimo se!
22:7=3 i ostatak 1
34:4=28 i ostatak 6

U pseudojeziku to zapisujemo ovako: 22 div 7 = 3, a 22 mod 7 = 1; 34 div 4 = 28,
34 mod 4 = 6.

Zadatak:

Izračunajte vrijednost sljedećih izraza:

  1. 37 div 4

  2. 43 mod 5

  3. 76 div 12

  4. 45 mod 9

Da bi znali pravilno zapisati i izračunati složeniji aritmetički izraz koji u sebi sadrži nekoliko jednostavnih operacija, osim operatora moramo znati i njihov prioritet (redoslijed izračunavanja).

Kao i u matematici, najviši prioritet imaju zagrade. Nakon zagrada operatori *, /, div i mod, a tek na kraju operatori + i -.

Prikazano u tablici to izgleda ovako:

Prioritet Operatori
1. ()
2. *, /, div, mod
3. +, -


Primjer:

Potrebno je izračunati vrijednost izraza: 13 div 4 + 31 mod 7

Sada znamo da se najprije računaju operacije div i mod.
Tako je: 13 div 4 = 3; 31 mod 7 = 3
Na dobivene rezultate primijenimo operator zbrajanja => 3 + 3 = 6.

Rezultat traženog izraza je 6.

Zadatak:

Izračunajte vrijednost izraza:

  1. 15 div 3 + 20 mod 5
  2. 17 div 3 * 7 mod 3
  3. 17 div 5 mod 3
  4. 4 + 4 * 7 div 3 mod 7
  5. 13*4 + 12 mod 5 - 43 div 2 mod 6

2.4. Relacijski operatori

Relacijski izraz je izraz u kojem se uspoređuju vrijednosti s lijeve i desne strane. Između vrijednosti koje se uspoređuju stoje relacijski operatori.

Operacija uspoređivanja Operator
Jednako =
Manje od <
Manje ili jednako <=
Veće od >
Veće ili jednako >=
Različito <>

Primjeri relacijskih izraza:

  1. x<y
  2. a<>b
  3. z>0
  4. a+b<c
  5. a mod 2 = 0

U četvrtom i petom primjeru nalaze se kombinirani izrazi (aritmetički i relacijski). U takvim situacijama najprije se izračunaju aritmetički izrazi, a nakon toga usporede dobivene vrijednosti.

To znači da relacijski operatori imaju najmanji prioritet!

Na primjer, u izrazu 3+5=6-4, najprije će se izračunati vrijednosti s lijeve i desne strane znaka jednakosti (8 i 2), a nakon toga će se ispitati jesu li dobivene vrijednosti jednake!

Sada možete uočiti zbog čega je potrebna razlika između naredbe pridruživanja (:=) i ispitivanja jednakosti (=). Kada ih različito zapisujemo, teže će doći do zabune u zapisu samog algoritma!

Kakvi su rezultati relacijskih izraza?

Kada uspoređujemo dvije vrijednosti, rezultat može biti LAŽ (0) ili ISTINA (1).

2.5. Logički operatori i prioriteti izvršavanja

Ako je potrebno usporediti više vrijednosti, primjerice provjeriti je li uneseni broj troznamenkast, u matematici to zapisujemo ovako: 99<a<1000.
U programiranju uglavnom ne možemo na taj način zapisivati relacijske izraze. Moramo provjeriti je li a>99 te je li a<1000.
U tu se svrhu koristimo logičkim operatorima I, ILI i NE.
logički operatori

Primjeri logičkih izraza:

  1. (a<1000) I (a>99)
  2.  A I B ILI NE C
  3.  (a+b<c) I c>0

Redoslijed izvršavanja operatora

Najveći prioritet ima logička operacija NE, zatim I te na kraju ILI.
U mješovitim izrazima u kojima se nalaze aritmetički, relacijski i logički operatori prioritet je sljedeći.

Primjer:
Koja je vrijednost logičkog izraza A I B ILI NE C ako su zadane sljedeće vrijednosti varijabli?
A = istina, B = neistina, C = neistina
A I B => istina I neistina = neistina
NE C => NE neistina = istina
A I B ILI NE C => neistina ILI istina = istina

2.6. Definirane funkcije

Za računanje složenijih izraza potrebne su nam i standardne matematičke funkcije. Na primjer, drugi korijen, kvadrat realnog broja i sl.

Iako tijekom pisanja algoritma na papiru bez problema možemo napisati potenciju, korijen ili apsolutnu vrijednost, u standardiziranom pseudo jeziku definirane su standardne matematičke funkcije:

Primjer

Matematički izraz u pseudo jeziku zapisujemo: sqrt (sqr ( x )+sqr ( y )) / abs( x )

Zadatak

Kolika je vrijednost izraza: Sqrt (Sqr (12) + Sqr (9)) / Abs (-5)?

Primjer

Vrijednost izraza round (4.56) + trunc (4.56) je 9.

Zbog čega?


Funkcija round zaokružuje broj 4.56 na 5, dok je trunc funkcija koja odbacuje realan dio zadanog broja. U našem slučaju to je 4.
Na kraju zbrojimo 5 + 4 i dobijemo 9!


3. Zadatci s provedenih ispita

  1. (2010, ljetni rok, zadatak 5) Kako izgleda matematički izraz koji u pseudojeziku ima oblik
    x := Sqr (Sqrt (a) – Sqrt (b)) / a * b;?


  2. (2010, ljetni rok, zadatak 20)  Kolika je vrijednost cjelobrojne varijable a nakon izvršavanja sljedeće naredbe (div je operator cjelobrojnoga dijeljenja, a mod operator ostatka cjelobrojnoga dijeljenja)?
    a := 35 div 5 mod 2 + 19 mod 5;

    A. 0
    B. 1
    C. 4
    D. 5

  3. (2010, jesenski rok, zadatak 5)  Zadan je matematički izraz z=k(x) pri čemu je k(x) najveći prirodni broj koji je
    manji ili jednak x. Koji će oblik imati taj izraz zapisan u pseudojeziku?
    A. z := Sqr (x);
    B. z := Round (Sqr (x));
    C. z := Trunc (Sqr (x));
    D. z := Sqrt (Sqr (x));

  4. (2010, jesenski rok, zadatak 20) Kolika je vrijednost cjelobrojne varijable x nakon izvođenja sljedeće naredbe
    (div je operator cjelobrojnoga dijeljenja, a mod operator ostatka cjelobrojnoga
    dijeljenja)?

    x := 155 mod 100 div 5 mod 6 div 2;

    A. 0
    B. 1
    C. 2
    D. 5

  5. (2010, jesenski rok, zadatak 25) Kolika je vrijednost izraza: (a > b) ILI NE(b > c) I (c > a) ako su zadane vrijednosti varijabli a := 1; b := 1; c := 2?

  6. (2011, ljetni rok, zadatak 9)  Kako se naziva programski jezik u kojem su programi pisani tako da ih računalo izvodi bez prethodnoga prevođenja, a naredbe se sastoje od nizova binarnih znamenaka?
    A. asembler
    B. pseudojezik
    C. strojni jezik
    D. viši simbolički jezik

  7. (2011, ljetni rok, zadatak 20) Koju će vrijednost imati varijabla a nakon izvođenja sljedeće naredbe?
    a := Round (Sqrt (35)) – Trunc (Sqrt (35)) ;

    A. 0
    B. 1
    C. 35
    D. 70

  8. (2011, ljetni rok, zadatak 21) Zadan je matematički izraz:

    Koji će oblik imati taj izraz zapisan u pseudojeziku?

    A. y := Sqr (Abs (x)) / Sqrt (x);
    B. y := Sqrt (x) / Sqr (x);
    C. y := Sqrt (Abs (x)) / Sqr (x);
    D. y := Sqr (x) / Sqrt (x);

  9. (2011, jesenski rok, zadatak 20) Koji je matematički izraz ekvivalentan sljedećemu izrazu u pseudojeziku?
    y := Sqrt (Abs (x)) / Sqr (x);
    A.
    B.
    C.
    D.

  10. (2011, jesenski rok, zadatak 21) Koju će vrijednost imati varijabla a nakon izvođenja sljedeće naredbe?
    a := Round (Sqrt (35)) * Trunc (Sqrt (35));
    A. 0
    B. 1
    C. 30
    D. 70

  11. (2012, ljetni rok, zadatak 16) Koji matematički izraz odgovara sljedećoj naredbi u pseudojeziku?
    x := sqrt(sqr(b)-a*c)/2*a*b;


  12. (2012, ljetni rok, zadatak 29) Kolika je vrijednost logičkog izraza NE A ILI NE B I NE C ako su zadane
    vrijednosti sljedećih varijabli?
    A = istina
    B = istina
    C = istina

  13. (2012, jesenski rok, zadatak 16) Kojom ćemo naredbom varijabli d pridružiti vrijednost decimalnog dijela realnog broja r?
    A. d:= r-trunc(r);
    B. d:= r-round(r);
    C. d:= round(r) div trunc(r);
    D. d:= round(r) mod trunc(r);

  14. (2012, jesenski rok, zadatak 29) Koja je vrijednost logičkoga izraza A I NE B ILI NE C ako su zadane sljedeće vrijednosti varijabli?
    A = laž
    B = laž
    C = istina

  15. (2013, ljetni rok, zadatak 16) Godina je prijestupna ako je djeljiva s 4, a nije djeljiva sa 100 ili ako je djeljiva s 400.
    Koji od navedenih izraza opisuje prethodnu rečenicu?
    A. (y div 400 = 0) ILI (y div 4 = 0) I (y div 100 = 0)
    B. (y mod 4 = 0) I (y mod 100 = 0) ILI (y mod 100 <> 0)
    C. (y div 400 = 0) ILI (y div 4 = 0) I (y div 100 <> 0)
    D. (y mod 4 = 0) I (y mod 100 <> 0) ILI (y mod 400 = 0)

  16. (2013, jesenski rok, zadatak 16) Varijabla x pripada intervalu [0,1] ili intervalu [10,20].
    Koji od navedenih izraza opisuje varijablu x?
    A. (x >= 0) ILI (x <= 1) I (x <= 20) ILI (x >= 10)
    B. (x <= 0) ILI (x >= 1) I (x >= 20) ILI (x <= 10)
    C. (x <= 0) I (x >= 1) ILI (x >= 20) I (x <= 10)
    D. (x >= 0) I (x <= 1) ILI (x <= 20) I (x >= 10)

  17. (2013, jesenski rok, zadatak 29) Kolika je vrijednost izraza (a > b) ILI NE (b < c) I (c < a) ako su zadane
    vrijednosti varijabli a = -1, b = 0, c = 1?

  18. (2014, ljetni rok, zadatak 16) Koja programska naredba u pseudojeziku odgovara sljedećemu matematičkom izrazu: ?

    A. x := a – sqr(a * b) / a * sqrt(b)
    B. x := a – sqrt(a * b) / a * sqr(b)
    C. x := (a – sqr(a * b)) / (a * sqrt(b))
    D. x := (a – sqrt(a * b)) / (a * sqr(b))

  19. (2014, ljetni rok, zadatak 17) Broj a ima svojstvo da je pozitivan paran broj koji nije djeljiv s 3. Koji od navedenih logičkih izraza opisuje prethodnu rečenicu?

    A. (a > 0) I (a mod 2 = 0) I (a mod 3 <> 0)
    B. (a div 2 = 0) I (a div 3 = 0) ILI (a > 0)
    C. (a div 3 <> 0) ILI (a div 2 = 0) ILI (a > 0)
    D. (a mod 3 <> 0) ILI (a mod 2 = 0) ILI (a >= 0)

  20. (2014, ljetni rok, zadatak 29) Kolika je vrijednost izraza (round(A / B) = A div B) I (trunc(A / B) = A mod B) ako su zadane vrijednosti varijabla: A = 4, B = 3?

  21. (2014, jesenski rok, zadatak 16) Koja programska naredba u pseudojeziku odgovara sljedećemu matematičkom izrazu: ?

    A. y := sqrt(sqr(r) – sqr(x - p)) + q;
    B. y := sqrt(sqr(r) – sqr(x - p) + q);
    C. y := sqr(sqrt(r) – sqrt(x - p)) + q;
    D. y := sqr(sqrt(r) – sqrt(x - p) + q);

  22. (2014, jesenski rok, zadatak 17) Potrebno je provjeriti je li broj a negativan ili je iz intervala [10, 20].
    Koji od navedenih logičkih izraza to provjerava?
    A. (a < 0) ILI (a >= 10) I (a <= 20)
    B. ((a < 0) ILI (a >= 10)) I (a <= 20)
    C. (a < 0) I ((a >= 10) ILI (a <= 20))
    D. (a < 0) ILI (a >= 10) ILI (a <= 20)

  23. (2014, jesenski rok, zadatak 29) Kolika je vrijednost izraza (A + B < C) ILI NE (sqrt(C) > A) I (sqr(B) <> C) ako su zadane vrijednosti varijabla: A = 7, B = 3, C = 9?

  24. (2015, ljetni rok, zadatak 16) Broj a je srednji po veličini od triju brojeva a, b i c.
    Koji od navedenih logičkih izraza opisuje broj a?
    A. (a > b) I (a < c) ILI (a < b) I (a > c)
    B. ((a > b) ILI (a < c)) ILI ((a < b) ILI (a > c))
    C. (a > b) I (a > c) ILI (a < b) I (a < c)
    D. ((a > b) I (a < c)) I ((a < b) I (a > c))

  25. (2015, jesenski rok, zadatak 16) Broj x može se opisati kao broj koji je djeljiv s brojevima 2, 3 i 7, a nije djeljiv s brojem 27. Koji od navedenih izraza opisuje prethodnu rečenicu?

    A. (x div 6 = 0) ILI (x div 7 = 0) ILI (x div 27 <> 0)
    B. (x div 6 = 0) I (x div 7 = 0) I (x div 27 <> 0)
    C. (x mod 6 = 0) I (x mod 7 = 0) ILI (x mod 27 <> 0)
    D. (x mod 6 = 0) I (x mod 7 = 0) I (x mod 27 <> 0)

  26. (2015, jesenski rok, zadatak 17) Kojom se programskom naredbom zapisuje sljedeći matematički izraz: ?

    A. y := sqr(x - sqrt(abs(x + 2))) / (4 * x);
    B. y := sqr(x - sqrt(abs(x + 2))) / 4 * x;
    C. y := (x - sqr(sqrt(abs(x + 2)))) / (4 * x);
    D. y := x - sqr(sqrt(abs(x + 2))) / (4 * x);

  27. (2016., ljetni rok, zadatak 16) Koja programska naredba u pseudojeziku može zamijeniti sljedeći matematički izraz?


    A. y := sqrt(abs(sqr(x) – a * (b + c)));
    B. y := sqr(abs(sqrt(x) – a * (b + c)));
    C. y := abs(sqrt(sqr(x) – a * (b + c)));
    D. y := sqrt(abs(sqr(x)) – a * (b + c));

  28. (2016., ljetni rok, zadatak 17) Koji će od sljedećih logičkih izraza biti istinit samo za a = 9?
    A. a > 0 I a < 10 ILI a mod 9 = 0
    B. a > 0 ILI a < 10 I a mod 9 = 0
    C. a > 0 ILI a < 10 ILI a mod 9 = 0
    D. a > 0 I a < 10 I a mod 9 = 0

  29. (2016., ljetni rok, zadatak 29) Koja je vrijednost izraza a + b > c I a + c > b I b + c > a
    ako su zadane vrijednosti varijabla a = 3, b = 1 i c = 2?

3.1. Rješenja

  1. B
  2. D
  3. C
  4. C
  5. 1 (istina)
  6. C
  7. B
  8. C
  9. D
  10. C
  11. B
  12. 0 (laž)
  13. A
  14. 0 (laž)
  15. D
  16. D
  17. 0 (laž)
  18. D
  19. A
  20. 1 (istina)
  21. A
  22. A
  23. 0 (laž)
  24. A
  25. D
  26. A
  27. A
  28. D
  29. 0 (laž)