Algoritmi - uvod u programiranje
Sjedište: | CARNET - Arhiva 2021 Loomen |
E-kolegij: | Algoritmi i programiranje 1. razred |
Knjiga: | Algoritmi - uvod u programiranje |
Otisnuo/la: | Gost (anonimni korisnik) |
Datum: | srijeda, 25. prosinca 2024., 09:02 |
Opis
Programske strukture
Algoritmi
Izrada algoritama potiče:
- kreativnost
- prosuđivanje
- iznalaženje različitih načina za rješavanje problema
Algoritam je procedura koja do posljednjih detalja opisuje aktivnosti i njihov redoslijed, potreban da se obradom ulaznih podataka, u konačnom broju koraka dođe do izlaznih podataka, odnosno rješenja.
Programski jezik C++ je viši programski jezik koji je razvijen za objektno orijentirano programiranje a razvijen je u Bell Labsu (laboratorij telekomunikacijske tvrtke Bell) pod rukovodstvom Bjarne Stroustropa tokom 1980-tih kao proširenje programskog jezika C.
Za pisanje programskog koda u C++-u koristiti ćemo CodeBlocks (ili DEVC++)
- Konačnost – mora uvijek završiti nakon konačnog broja koraka
- Definiranost – svaki korak mora biti precizno definiran – akcije koje treba poduzeti moraju biti jednoznačno (nedvosmisleno) definirane
- Ulaz – može ali i ne mora imati ulazne veličine koje su dane inicijalno prije početka algoritma
- Izlaz – ima jednu ili više izlaznih veličina koje su u specificiranom odnosu sa ulaznim veličinama
- Efikasnost - sve operacije koje se obavljaju u algoritmu moraju biti jednostavne tako da se mogu obaviti u točno i u konačnom vremenu
Algoritam je prvi od koraka pri pretvorbi zadatka u računalni program.
Algoritam možemo zapisati:- pseudojezikom (pseudo kodom)
- dijagramom tijeka
- programskim kodom u odabranom programskom jeziku
Pseudojezik (pseudokod) je tobožnji program (grč. pseudos – laž) koji se sastoji od kratkih izraza na govornom jeziku koji opisuju i ukratko objašnjavaju pojedine zadatke algoritma.
Za pisanje pseudojezika možemo koristiti bilo koji tekstualni editor.
Dijagram tijeka je grafički prikaz algoritma. Sastoji od nekoliko jednostavnih geometrijskih likova spojenih usmjerenim crtama. Usmjerene crte pokazuju tijek rješavanja zadatka pa odatle i naziv dijagrama.
Za izradu dijagrama tijeka koristiti ćemo aplikaciju Flowgorithm.
Prednosti dijagrama tijeka:
- pregledno prikazuje algoritam
- omogućava lakšu analizu i provjeru predloženog rješenja
- omogućuje pronalaženje boljih postupaka rješavanja zadatka - optimizaciju
Operatori, funkcije, naredbe
Programska struktura je ustrojstvo programa, odnosno način i redoslijed rješavanja pojedinih manjih radnji da bi se došlo do konačnog rješenja zadatka.
Da bismo od ulaznih podataka došli do izlaznih, podatke je potrebno pohraniti u memoriji. Mjesto u memoriji rezervirano za pohranu podatka naziva se varijabla. Varijablama dajemo sugestivna imena. Ime ne smije početi brojem, a može sadržavati slova engleskog alfabeta, brojeve i _.
Obrada podataka najčešće se svodi ma matematičke i logičke operacije i funkcije nad njima.
Operatori
Definirane funkcije
Prioritet izvršavanja
Osnovne naredbe u programskim jezicima
*sve tablice preuzete su sa sjedišta NCVOO
Pri zapisu algoritma pseudojezikom zanemarujemo tipove podataka.
No da bismo na bilo koji način obrađivali podatke u aplikaciji Flowgorithm (dijagram tijeka) moramo im odrediti tip, kako bi računalo znalo kako s njima postupati.
Flowgorithm razlikuje:
- Cjelobrojne tipove podataka (integer)
- Realne tipove podataka (real)
- Tekstualne tipove podataka (string)
- Logičke tipove podataka (boolean)
- Konstante - vrijednosti im se ne mijenja (npr. g=9.81 m/s2 ili π = 3.14)
- Varijable – promjenjive se (često ih unosi korisnik tijekom izvođenja programa ili su među rezultat)
- Može sadržavati kombinaciju engleskih slova A-Z ili a-z, brojeva 0-9
- Prvi znak mora biti slovo
- Ne smiju se koristiti razmaci
- Ne smiju biti jednaki ključnim riječima (naredbama) ili alternativnom oznakama operatora
- Aplikacija ne razlikuje velika i mala slova
- Treba izbjegavati dugačka imena
Želimo li neku vrijednost koristiti kao konstantu, definiramo je kao varijablu i dodijelimo joj vrijednost unutar dijagrama tijeka.
Za rad sa stringovima nema puno funkcija koje možemo zapisati pseudojezikom i dijagramom tijeka.
U biti stringove možemo samo zbrajati, odnosno spojiti:
ili zapisano pseudojezikom:
Pojedine operacije se u pseudo jeziku izvršavaju različitim prioritetima
Redoslijed izvršavanja | Operatori |
1. | ( ) |
2. | NE |
3. | *, /, div, mod, I |
4. | +, - , ILI |
5. | <, <=, >=, <>, = |
1. primjer:
x=23 div 5* 5 mod 3
Svi su operatori ravnopravni, izraz se izvršava s lijeva u desno ovim redoslijedom:
1. 23 div 5 = 4
2. 4 * 5 = 20
3. 20 mod 3 = 2 (ostatak dijeljenja 20/3)
4. x=2
2. primjer:
x=(23 div 5)*( 5 mod 3)
Zagrade poništavaju prioritete operatora pa se izvršava ovim redoslijedom:
1. 23 div 5 = 4
2. 5 mod 3= 2
3. 4 * 2 = 8
4. x = 8
3. primjer:
x = 3*4+6/3–(7 mod 6)
1. 7 mod 6 = 1
2. 3 * 4 = 12
3. 6 / 3= 2
4. 12 + 2 - 1 = 13
5. x = 13
U pseudo jeziku koristimo ključne riječi ulaz i izlaz. Tip varijabli nije potrebno deklarirati, a odjednom možemo unositi i ispisivati više vrijednosti. Npr.:
ulaz (a,b)
O=2*(a+b)
P=a*b
izlaz (O,P)
U dijagramu tijeka također imamo ulaz i izlaz u posebnim oblicima (paralelogram plave i zelene boje). Prije unosa podataka potrebno je deklarirati tipove varijabli. Za ulaz podataka koristimo zasebne ulazne elemente, dok ispis - izlaz možemo napraviti u jednom izlaznom elementu.