Osnovne algoritamske strukture 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Osnovne algoritamske strukture



Linijska struktura

 

Slika 137 Linijska struktura

 

Ovo je tip algoritma u kojima se svaka operacija izvršava samo jedanput. To je u stvari sekvenca ili niz instrukcija koje se izvršavaju u slijedu, jedna za drugom. Primjer ove algoritamske grupe izgleda ovako:

Granajuća struktura

Karakteristika ove grupe algoritama je to što se neke operacije izvršavaju u zavisnosti od ispunjenosti određenih uslova. To znači da u određenom dijelu programa postoji selekcija, na osnovu koje treba izvršiti jedan ili drugi dio programa. Grafički izgled ove algoritamske grupe je sljedeći:

 

=

 

Slika 138 Granajuća struktura

 

Ciklička struktura - petlja

Ciklički algoritmi su algoritmi gdje se operacije izvršavaju više puta. To je zatvoreni krug instrukcija koje se u programu ponavljaju toliko puta dok se ne zadovolji postavljeni uslov. Primjer ove algoritamske grupe prikazan je na sljedećoj slici:

Slika 139 Ciklička struktura - petlja

Struktura sa podalgoritmima

Veza između algoritma i podalgoritma – lista ulazno-izlaznih parametara

· stvarna lista parametara – parametri koji se prosljeđuju podalgoritmu iz glavnog algoritma

· formalna lista parametara – lista parametara pozvanog algoritma

Broj, redoslijed i vrsta parametara stvarne i formalne liste treba da se poklapaju.

 

Slika 140 Struktura sa podprogramima

PRAKTIČNI PRIMJERI ALGORITAMA I NJIHOVE TRANSFORMACIJE U PROGRAMSKI JEZIK

ZADATAK 1: Napisati algoritam i program (QBASIC) za zbrajanje prvih N prirodnih brojeva.

AlgoritamProgram

Slika 141 Algoritam i program (QBASIC) za zbrajanje prvih N prirodnih brojeva

ZADATAK 2: Napisati algoritam i program koji učitava N cijelih brojeva. Izračunati zbroj svih pozitivnih i zbroj svih negativnih brojeva.

Algoritam Program

Slika 142 Algoritam i program koji učitava N cijelih brojeva

Algoritam predstavlja esencijalni programerski alat – bez algoritma nema ni programa. Koraci algoritma predstavljaju jednoznačne radnje koje, nakon transformacije u programski jezik, računar razumijeva. U nekoj sažetijoj formi moglo bi se reći da je algoritam dekompozicija kompleksnih radnji na njihove jednoznačne i neupitne faktore. Tu vrijedi stara mudrost: "Umjetnost se zasniva na jednostavnosti!". Upravo ta sposobnost da se kompleksni problem svede na niz jednostavnih koraka zaista predstavlja umjetnost! Da bi se to uspjelo, pored programerovog intelekta, potrebna je i velika doza kreativnosti i maštovitosti, ali ta maštovitost ne smije preći u apstrakciju, jer krajnji rezultat uvijek mora biti determinisan i racionalan.

Racionalnost u izradi algoritma mora uzimati u obzir resurse vremena i memorije, mogućnosti ulaznih/izlaznih komponenti, energije i mnogih drugih tehničkih performansi. Optimalnost korištenja ovih parametara pokazuje nam programsku (algoritamsku) efikasnost i funkcionalnost. Znači, krajnji produkt – algoritam, pored matematičko-logičkih zahtjeva, mora ispunjavati i potrebnu dozu ove, uslovno rečeno, tehničke komponente. Samo algoritam/program koji zadovoljava sve ove nijanse jeste funkcionalan i poželjan za primjenu.

 

Kompjuterski program

Kompjuterski programi su algoritmi napisani na način koji kompjuter može da razumije. Program je niz instrukcija koji kompjuteru određuju šta i kako treba da uradi. Svaka instrukcija predstavlja određenu naredbu koju kompjuter može izvršiti. To je najmanji element programa. U kompjuterskoj obradi instrukcije se nalaze u glavnoj memoriji centralne jedinice jedna do druge, onako kako slijede u programu. Program se izvršava upravo redoslijedom kako su instrukcije napisane, ako kompjuteru nije naređeno da radi na drugi način, tj. ako nije naveden redni broj naredbe od koje treba nastaviti izvođenje programa.

 

Najvažnije vrste instrukcija su:

· Instrukcija ulaza/izlaza (npr. čitanje ili pisanje, pomoću kojih se obavlja komunikacija između kompjutera i okruženja);

· Instrukcije grananja (obavljaju preskakanje i prekidanje toka izvođenja programa);

· Instrukcije računanja (sabiranje, oduzimanje, množenje, dijeljenje, potenciranje);

· Logičke instrukcije (ispituju se određene vrijednosti, porede dvije veličine, utvrđuje predznak i sl.);

· Instrukcije prijenosa (izvršavaju prijenos podataka unutar centralne jedinice sa jednog memorijskog mjesta na drugo).

Dakle, osnovni cilj kompjuterskog programiranja je da se od ulaznih podataka dobiju izlazni rezultati obrade.

Kompjuteri pomoću kompjuterskih programa najčešće rješavaju složene obrade podataka.

Postupak programiranja se može razmatrati kroz nekoliko koraka:

· Identifikacija zadataka za obradu podataka.

· Izbor odgovarajuće metode programiranja.

· Pisanje algoritma i programa.

· Implementacija programa.

Programi se obično pišu u nekom višem programskom jeziku, koji kompjuter u tom obliku ne razumije. Kompjuter jedino razumije program u mašinskom jeziku. Tu konverziju obavljaju programi prevodioci ili kompajleri.

Izvorni (source) program se piše sintaksom višeg programskog jezika i editorom se unosi u računar. Onda nastupa program za prevođenje, koji se nalazi u biblioteci sistemskog softvera. On program prevodi u ekvivalentni asemblerski program, a zatim tako dobiveni program prevodi u program na mašinskom jeziku. Ovaj program se naziva izvršni (object) program i on je sposoban da svojim izvođenjem riješi određeni problem. Takvi nastali programi se memorišu na neku od sekundarnih memorija (npr. magnetni disk) i po potrebi se pozivaju, kada treba riješiti konkretan problem za koji je pisan. Pozvani izvršni program se sa sekundarne memorije prebacuje u glavnu ili operativnu memoriju kompjutera, gdje procesor preuzima instrukciju po instrukciju i pod kontrolom operativnog sistema ih izvršava do kraja programa. Kad se jedan program realizuje on svoje mjesto u glavnoj memoriji ustupa drugom programu i tako dalje.

 

 



Поделиться:


Последнее изменение этой страницы: 2019-04-27; просмотров: 596; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.152.162 (0.017 с.)