Svakodnevni život svake osobe je rješavanje ogromnog broja zadataka različite složenosti na poslu ili tokom učenja. Neki zadaci su toliko jednostavni da kada ih izvršavamo, neke radnje radimo automatski bez razmišljanja. Rješenje bilo kojeg problema, čak i najjednostavnijeg, u pravilu se provodi uzastopno u nekoliko koraka. Ovakav niz u rješavanju problema naziva se algoritam. Danas ćemo pogledati šta su linearni algoritmi, kako je prikazana njihova struktura, kako su rešeni i programirani.
Algoritamski jezik
Ovaj koncept je tačan recept za izvođača da izvrši određeni niz radnji, koji ima za cilj rješavanje zadatka.
Ovaj jezik je sredstvo za opisivanje algoritama kojiobično fokusiran na korisnika.
U kompjuterskom jeziku, ovo je tačan recept koji definiše proces izračunavanja. To, pak, vodi od početnih podataka, koji variraju, do originalnog rezultata.
Razvoj algoritma je prilično komplikovan i dugotrajan proces. To je tehnika za sastavljanje (razvijanje) niza radnji namijenjenih rješavanju problema uz pomoć računara.
Svojstva algoritma
Među nekretninama izdvajaju se:
- finiteness - sastoji se u završetku cijelog algoritma u određenom konačnom broju faza (koraka);
- definiranost (jedinstvenost) - predstavlja jedinstvenost interpretacije pravila za izvođenje radnji, kao i redoslijeda po kojem se one izvode;
- performanse - postizanje željenog rezultata u bilo kojem konačnom broju koraka;
- razumljivost - instrukcije moraju biti jasne izvođaču;
- masovni karakter - algoritmi bi trebali biti u stanju da riješe cijelu klasu specifičnih problema sa općim iskazom problema.
Linearni algoritmi. 9. razred informatike
Već smo razmotrili definicije i svojstva ovog koncepta. Sada razgovarajmo o njegovim tipovima:
- linear;
- branching;
- sa ciklusom.
Zainteresovani smo za linearne algoritme. Šta su oni? Oni sadrže naredbe koje se moraju izvršavati jedna za drugom u jasnom nizu.
Linearna struktura algoritma može se napisati verbalnoi grafički oblik.
Dajmo primjer napisan u verbalnom obliku. Dakle, zadatak: spremite se za školu. Rješenje:
- Početak.
- Ustani.
- Vježba.
- Operite.
- Obuci se.
- Doručkovati.
- Prikupite aktovku.
- Kraj.
Grafički oblik gornjeg procesa će biti sljedeći:
Linearni algoritam u obliku blok dijagrama
Diagram toka je ilustrativan prikaz algoritma, u kojem je svaka pojedinačna faza prikazana pomoću blokova predstavljenih u obliku različitih geometrijskih oblika. Osim toga, odnos između koraka (drugim riječima, redoslijed izvođenja korak po korak) je označen strelicama koje povezuju oblike (blokove). Svaki blok prati natpis. Za tipične radnje u linearnom algoritmu koriste se sljedeći geometrijski oblici:
- Blok početka-kraja algoritma. Na bloku je natpis "početak" ili "kraj".
- Blokiraj "ulaz-izlaz podataka". Ovaj blok je prikazan kao paralelogram. Na njemu su postavljeni sljedeći natpisi: "ulaz", "izlaz", "štampanje". Oni su takođe praćeni listom ulaznih ili izlaznih varijabli, respektivno.
- Aritmetički blok ili blok odlučivanja. Odgovara pravougaoniku. Blok treba da ima natpis: "operacija", "grupa operacija".
Rješenje linearnih algoritama je prikazano uz pomoć ovakvih blok dijagrama. Dalje, hajde da pričamo o karakteristikamadodjele vrijednosti.
Linearni računski algoritmi
Glavna elementarna akcija u računarskom algoritmu je dodeljivanje određene vrednosti promenljivoj. U slučaju kada je vrijednost konstante određena tipom njene notacije, vrijednost varijable će dobiti određenu vrijednost isključivo kao rezultat dodjele. To se može učiniti na dva načina: korištenjem komande dodjele; koristeći naredbu za unos.
Primjer rješenja linearnog algoritma
Dajmo primjer opisa pravila za dijeljenje običnih razlomaka linearnim algoritmom, koji u školskim udžbenicima imaju sljedeći sadržaj:
- brojilac razlomka 1 mora se pomnožiti sa nazivnikom razlomka 2;
- imenilac razlomka 1 mora se pomnožiti brojinikom razlomka 2;
- potrebno je zapisati razlomak, u kojem je brojilac rezultat 1 boda, a nazivnik rezultat 2 boda. Algebarski oblik ovog pravila je sljedeći:
a/b: c/d=(ad)/(bd)=m/n.
Dakle, hajde da napravimo algoritam za dijeljenje razlomaka za kompjuter. Kako ne bismo bili zbunjeni, koristit ćemo iste oznake za varijable kao u formuli koja je gore navedena. a, b, c, d – početni podaci u obliku cjelobrojnih varijabli. Rezultat će također biti cjelobrojne vrijednosti. Rješenje u algoritamskom jeziku bi bilo:
alg Dijeljenje razlomaka
počni
target a, b, c, d, m, n
unesite a, b, c, d
m:=ad
n:=b c
izlaz m, n
con
Grafički oblik rješenja
Šema linearnog algoritma opisanog iznad izgleda ovako:
Komanda za dodjelu vrijednosti ima sljedeći format:
Varijabla:=izraz.
Znak ":=" se čita kao dodjela.
Dodjela je komanda koja je potrebna da računar uradi sljedeće:
- procjena izraza;
- dodjela primljene vrijednosti varijabli.
Gore navedeni algoritam sadrži dvije komande kao zadaću. U dijagramu toka, instrukcija dodjeljivanja mora biti napisana u pravokutniku koji se zove računski blok.
Kada se opisuju linearni algoritmi, nema posebne potrebe za obaveznim poštivanjem strogih pravila prilikom pisanja izraza. Možete ih napisati koristeći uobičajenu matematičku formu. Na kraju krajeva, ovo nije striktna sintaksa programskog jezika.
U datom primjeru algoritma postoji i naredba za unos:
Unesite a, b, c, d.
Ulazna komanda u blok dijagramu je zapisana u paralelogramu, odnosno u I/O bloku. Izvršavanjem ove naredbe procesor prekida rad dok korisnik ne izvrši određene radnje. Naime: korisnik treba da unese ulazne varijable (njihove vrijednosti) na uređaj za unos (tastaturu) i pritisne Enter, koji služi kao tipka za unos. Važno je da se vrednosti unose istim redosledom kao i odgovarajuće varijable u listi unosa.
Linearni algoritam. Njegovoprogramiranje
Kao što je spomenuto na početku članka, linearni programi mogu uključivati sljedeće operatore:
- zadatak;
- input;
- izlaz.
Odnosno, uz pomoć navedenih operatora, vrši se programiranje linearnih algoritama.
Dakle, operator dodjeljivanja u programskom jeziku piše se ovako:
NEKA A=B, gdje je A varijabla, B je izraz. Na primjer, A=Y + 20.
Izvod za unos izgleda ovako:
INPUT, na primjer: INPUT S
Operator za izlaz podataka, vrijednosti, piše se na sljedeći način:
PRINT. Na primjer PRINT S.
Uzmimo jednostavan primjer. Moramo da napišemo program koji će pronaći zbir brojeva A i B unetih sa tastature.
U programskom jeziku dobićemo program čiji je tekst prikazan ispod.
Ulazni i izlazni operatori u programskom jeziku Pascal
Pascal ne pruža posebne operatore za ulazne ili izlazne operacije koje koriste linearne algoritme. U programima se razmjena informacija vrši korištenjem ugrađenih procedura. Pošto nema potrebe za preliminarnim opisom standardne procedure, ona je dostupna svakom programu koji sadrži poziv. Također, naziv navedene procedure nije nikakva rezervirana riječ.
Kada unosite podatke, koristite takve izjave za upućivanje na standardnu proceduru unosa podataka koja je već ugrađena uprogram.
Pročitaj (A, B, C), gdje su A, B, C varijable koje je potrebno unijeti u RAM radi memorisanja.
Readlnn (x1, y, x2) – nakon završetka unosa, kursor se pomiče na početak novog reda.
Readlnn; - označava očekivanje pritiska na "Enter". Obično se ova izjava ubacuje u tekst prije posljednjeg "Kraj" kako bi se rezultati programa sačuvali na ekranu sadržaja.
Prikaz monitora podataka se vrši korištenjem sljedećih operatora:
Write (A, V, S) – specificiranjem vrijednosti A, V, S u jednom redu, kursor ne napušta trenutni red.
Writeln (z, y, z2) – nakon završetka ispisa vrijednosti, kursor na ovoj poziciji će se pomjeriti u novi red.
Writeln; - označava preskakanje jednog reda i prelazak na početak novog.
Unos i izlaz podataka u Pascal jeziku se vrši uz pomoć tako jednostavnih operatora.