Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Osnove programiranja
Algoritmi
Sadržaj
Algoritmi i strukture podataka Istorijat i definicija algoritma Osnovni koraci rešavanja problema na računaru Koraci algoritma Vrste algoritamskih šema Primeri Predstavljanje algoritama pomoću blok
dijagrama
Algoritmi i strukture podataka
U računarstvu, u njegovom delu koji se odnosi na programiranje, susrećemo se sa dva osnovnapojma:
Strukture podataka predstavljaju “statički” aspekt nekog programa - ono sa ČIME se radi.
Algoritmi predstavljaju “dinamički” aspektprograma - ono ŠTA se radi.
Istorijat
Sama reč algoritam vodi poreklo od imena jednog oddeset najcenjenijih matematičara svih vremena, Al Horezmija (Algorizmi)
Po Horezmiju bilo koji matematički problem možeraščlaniti na korake, tj. niz pravila.
U početku to su pravila računanja s brojevima a kasnijei pravila obavljanja ostalih zadataka u matematici.
U XX veku, pojavom računara, pojam se proširuje naračunarstvo.
Definicija
Algoritam je skup pravila formulisanih zarešavanje nekog zadatka.
Neformalno, algoritam je potpuno (precizno) definisana procedura (postupak) koji uzima(dobija) jednu ili više ulaznih vrednosti i daje(proizvodi, generiše) jednu ili više izlaznihvrednosti.
Sastoji se od konačnog niza koraka koji se odvijaju određenim redosledom.
Osnovni koraci rešavanja problema na računaru
Ceo proces rešavanja problema pomoćuračunara može se podeliti u etape: Precizna formulacija ili opis problema Izrada matematičkog oblika, ili modela, problema, Algoritmizacija problema ili projektovanje
algoritama, Programiranje ili kodiranje, Testiranje problema, Dobijanje i analiza rezultata.
Koraci algoritma
Primer 1.
Opisati dijagramom algoritam koji ispisujeporuku ,,Zdravo”na ekranu.
Opisati algoritam prirodnim jezikom značidetaljno, jasno, precizno, nedvosmisleno itačnim redosledom opisati korake koji voderešenju problema.
1. Ispisati (prikazati) poruku ,,Zdravo”
Primer 2.
Opisati prirodnim jezikom algoritam zasabiranje dva proizvoljna broja: a i b koji rezultirara brojem c.
1. Uneti vrednosti za promenljive a i b. 2. Izračunati zbir promenljivih a i b i
dodeliti ih promenljivoj c. 3. Prikazati vrednosti promenljivih a, b, c.
Primer 3.
Napisati algoritam koji proveravada li je dati proizvoljni broj paranili nije, a potom to i ispisuje.
1. Unos vrednosti nepoznate a2. Ako je ostatak pri deljenju broja
a sa 2 jednak 0, ispisuje se “Paran”
3. U suprotnom se ispisuje vrednost “Nije paran”
Primer 4. Ugnježdeni IF
Za uneti broj a odrediti da li je pozitivan, negativan ili nula i ispisati odgovarajuću poruku.
1. Unos vrednosti nepoznate a2. Ako je broj a pozitivan ispisuje se “Broj je pozitivan”3. Ako je broj a negativan ispisuje se “Broj je negativan”4. U suprotnom se ispisuje vrednost “Uneli ste nulu!”
IF u IF-u
Primer 5.
Prikazati prvih n prirodnih brojeva;
Brojač koji će brojati cikluse – i; početna vrednost i=1;
U svakom ciklusu se proverava da li je brojač dostigao vrednost n.
i=1, i=2, …, i<=n
Primer 5.
Console.WriteLine("Unesite broj n:");int n = int.Parse(Console.ReadLine());
int i=1; do { Console.WriteLine(i);
i=i+1; }
while (i <= n) ;
Vrste algoritamskih šema
Na osnovu prethodnih primera može se zaključiti o podeli algoritamskih šema: Linijske algoritamske šeme – svaki algoritamski
korak izvšava se najviše jedanput u toku izvršavanjaalgoritma: proste (Primer1 i 2) i razgranate (Primer3 i 4).
Ciklične algoritamske šeme - šeme kod kojih se jedan ili više algoritamskih koraka može izvršavativiše puta (makar dva), u toku jednog izvršavanjacelog algoritma (Primer 5).
Složene algoritamske šeme - šeme koje se dobijaju kombinacijom prethodno navedenih šema.
3 osnovna tipa algoritma
U algoritmu se uočavaju tri operacije: Sekvencijalne, Selektivne (odlučivanje) IF...THAN...(ELSE) Repetitivne (ponavljanje) DO...WHILE, FOR
Tri tipa algoritma Kombinacijom ova tri tipa osnovnih algoritama
je moguće opisati (modelirati) bilo koji sistem, bez obzira na njegovu složenost.