You are on page 1of 20

_______________________________________________________________________

PRIMJER 1
Napraviti algoritam za izračunavanje zbira prvih n prirodnih brojeva.
1, 2, 3, ..., n-1, n
Za n=6: 1, 2, 3, 4, 5, 6
RJEŠENJE
Rasčlaniti problem na jednostavnije potprobleme. Utvrditi redoslijed izvršavanja:

1. neka z bude 0
2. Neka a bude 1
3. Izračunati z+a
4. Neka z bude z+a
5. Ako je a=n, rješenje je z
6. Povećaj a za 1
7. Vrati se na tačku 3

Korak prvi drugi treći četvrti peti šesti


prolazak prolazak prolazak prolazak prolazak prolazak
1 z=0
2 a=1
3 z+a=1 z+a=3 z+a=6 z+a=10 z+a=15 z+a=21
4 z= z+a=1 z= z+a=3 z= z+a=6 z= z+a=10 z= z+a=15 z= z+a=21
5 a=1 <>n a=2 <>n a=3 <>n a=4 <>n a=5 <>n a=6 =n
6 a=2 a=3 a=4 a=5 a=6
7 vrati na 3 vrati na 3 vrati na 3 vrati na 3 vrati na 3

U opisu ovog postupka nalaze se i podaci (brojne vrijednosti) n, z i a. Tokom izvršavanja


postupka ove vrijednosti se mijenjaju pa se nazivaju PROMJENLJIVE.
Ne postoji računar koji na osnovu opisa problema može naći rješenje.
Zbog toga je potrebno ovo rasčlanjivanje.
Opis postupka i dalje je neprihvatljiv za računar. Potrebno je dalje rasčlanjivanje dok se
na kraju algoritam ne izrazi programskim jezikom, tj. dok se ne prevede u formu
PROGRAMA. U Bejziku to može da izgleda ovako:

10 INPUT N
20 LET Z=0
30 LET A=1
40 LET Z=Z+A
50 IF A=N THEN PRINT Z:STOP
60 LET A=A+1
70 GOTO 40
_______________________________________________________________________
_
_______________________________________________________________________
_

PRIMJER 2
Nacrtati dijagram toka za popravku neispravne lampe.
RJEŠENJE

_______________________________________________________________________
_
_______________________________________________________________________
_
PRIMJER 3
Napraviti dijagram toka za program koji pomaže učenju daktilografije.
RJEŠENJE
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 4
Napraviti algoritam koji učitava tri broja i prikaže najveći od njih. Provjeriti da li se
rješenje može proglasiti algoritmom, na osnovu 7 uslova koje neko rješenje treba da
ispuni da bi zaslužilo naziv algoritma, navedenih ispod.

Da bi rješenje zaslužilo naziv algoritma treba da ispuni sledećih 7 uslova:


1. Nakon izvođenja svakog koraka zna se koji korak je sledeći
2. Postoji jasno definisana početna tačka izvođenja, te jedan ili više mogućih završetaka
3. Opisani postupak rješavanja je konačan
4. Predloženi postupak rješavanja je jednoznačan (determinisan)
5. Algoritam mora uvijek dovesti do nekog rješenja
6. Za date početne uslove algoritam mora uvijek osigurati iste rezultate, inače njihovo
izvođenje ne bi imalo smisla.
7. Algoritam bi se morao primijeniti na čitavu klasu srodnih problema sa različitim
ulaznim veličinama.

RJEŠENJE
Tekstualni algoritam sastoji se iz sledećih koraka:
1. učitaj tri broja (A, B, C)
2. pretpostavi da je A najveći (MAX=A)
3. ako je B>MAX, tada je MAX=B
4. ako je C>MAX, tada je MAX=C
5. ispiši vrijednost varijable MAX

Da li predloženo rješenje zadovoljava svih 7 uslova?


1. Prvo se izvodi korak 1 a zatim koraci 2, 3, 4 i 5.
2. Početna tačka je zadavanje vrijednosti varijabli (A, B, C) , a završetak je samo jedan,
tj. određivanje najvećeg od tri zadana broja.
3. Provodeći zadani algoritam u nekom konačnom vremenu doći će se do rješenja te je
postupak konačan
4. Ništa nije prepušteno slučaju. Pobrojani koraci 1, 2, 3, 4, 5 su determinisani, mogu se
automatski provoditi i prepustiti računaru.
5. Rješenje je u najgorem slučaju A=B=C, tj. u najgorem slučaju nema maksimuma a i to
se prihvata kao rješenje.
6. Za iste vrijednosti varijabli uvijek će se dobiti ista vrijednost za maksimum, pošto je
skup brojeva uređen (uvijek se zna koji je broj veći, a koji manji).
7. Postupak se može primijeniti na sve vrijednosti varijabli A, B i C iz skupa cijelih
brojeva.

Vidimo da predloženo rješenje ispunjava svih 7 postavljenih uslova i može se prihvatiti


kao algoritam.

Dijagaram toka:
_______________________________________________________________________
_
_______________________________________________________________________
_
PRIMJER 5
Napraviti dijagram toka za program koji izračunava zbir prvih 50 prirodnih brojeva.
RJEŠENJE
_______________________________________________________________________
_

_______________________________________________________________________
_
PRIMJER 6:
Napisati program koji za zadane vrijednosti x i y izračunava vrijednost funkcije:
F(x, y) = e−2 Xsin(3y - x)
RJEŠENJE

'PROGRAM F(x,y)
Print "Unesite vrijednosti za X i Y: �"
Input "X =�"; X
Input "Y =�"; Y
F = Exp(-2*X) * Sin(3*Y-X)
Print F
End
_______________________________________________________________________
_

PRIMJER 7
Izračunati y za zadano x1 i x2 po formuli:

RJEŠENJE

‘Program Petlja
Print "Unesite dva broja:"
Input "X1 = � "; X1
Input "X2 = � "; X2
If (X1 < X2) Then
Y = X1+X2
Else
Y = X1*X2
End if
Print "Rezultat je Y = � "; Y
End

Kada se u blokovima nalazi samo po jedna naredba, tada se može pisati samo jedna
naredba:
If (X1 < X2) Then Y = X1+X2 Else Y = X1*X2
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 8
Riješiti prethodni zadatak korištenjem naredbi IF...THEN, tj.
Izračunati y za zadano x1 i x2 po formuli:

RJEŠENJE
‘Program petlja
Print "Unesite dva broja:"
Input "X1 = �"; X1
Input "X2 = �"; X2
If (X1 < X2) Then
Y = X1+X2
End if
If (X1 >= X2) Then
Y = X1*X2
End if
Print "Rezultat je Y = �"; Y
End
_______________________________________________________________________
_
_______________________________________________________________________
_

PRIMJER 9
Napisati program za izračunavanje
Ilustrovati primjenu IF naredbe u okviru druge IF naredbe.
RJEŠENJE
'Program PetljaUgnijezdena
Print "Unesite dva broja:"
Input "X1 = �"; X1
Input "X2 = �"; X2
If (X1 < X2) Then
Y = X1+X2
Else
If (X1 = X2) Then
Y = X1*X2
Else
Y = X1-X2
End If
End If
Print "Rezultat je Y = �"; Y
End
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 10
Riješiti prethodni zadatak korištenjem naredbi IF...THEN, tj.
Napisati program za izračunavanje

RJEŠENJE
'Program Petlja3
Print "Unesite dva broja:"
Input "X1 = �"; X1
Input "X2 = �"; X2
If (X1 < X2) Then
Y = X1+X2
End if
If (X1 = X2) Then
Y = X1*X2
End if
If (X1 > X2) Then
Y = X1-X2
End If
Print "Rezultat je Y = �"; Y
End

_______________________________________________________________________
_

PRIMJER 11
Riješiti prethodni zadatak korištenjem logičkog uslovnog prelaska, tj.
Napisati program za izračunavanje

RJEŠENJE

’Program logickiuslprelazak
Print "Unesite dva broja:"
Input "X1 = �"; X1
Input "X2 = �"; X2
If (X1 < X2) Then Y = X1+X2
If (X1 = X2) Then Y = X1*X2
If (X1 > X2) Then Y = X1-X2
Print "Rezultat je Y = �"; Y
End
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 12
Napisati program koji se ciklički ponavlja a izračunava
y=x2 i z=x3
Prekid programa postiže se zatvaranjem radnog prozora.

'Program beskonacniciklus
10 Print "Unesite jedan broj:"
Input "X = �"; X
Y = X^2
Z = X^3
Print "Rezultati su:"
Print "Y = "; Y
Print "Z = "; Z
Goto 10
End
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 13
Odrediti najmanji pozitivan korijen transcendentne jednačine:
A
sin( x ) =
x
za zadanu vrijednost parametra A iz intervala [0,1;1,0]. Za izračunavanje korijena
primijeniti iterativni postupak:
A
xi +1 = , i = 0,1,2,...
sin( xi )
π
gdje je x0 = . Iterativni postupak prekinuti kada bude ispunjen uslov:
2
xi +1 − xi ≤ε

gdje je ε=10-4 zadana tačnost.


Za ovakve cikluse ne može se unaprijed znati broj ponavljanja.
RJEŠENJE
'Program transc
EPS = 1.E-4
10 Input "Unesite vrijednost za A: � "; A
If (A < 0.1) Then Goto 10
If (A > 1) Then Goto 10
X = 3.141592*0.5
20 X1 = A/Sin(X)
IF (Abs(X1-X) < EPS) Then Goto 30
X = X1
GOTO 20
30 Print "Korijen jednacine sin(x) = A/x je:"
Print "A = �"; A
Print "X = �"; X
End
_______________________________________________________________________
_

_______________________________________________________________________
_
PRIMJER 14
Napisati program koji izračunava sumu 6 brojeva.
RJEŠENJE
Izlazni kriterijum je ispitivanje da li je vrijednost promjenljive N jednaka nuli. Ciklična
struktura je realizovana logičkom uslovnom naredbom IF, kombinovanom sa GOTO
naredbom. Brojevi se unose jedan po jedan.

'Program Suma
N = 6
Y = 0
Print "Unesite broj za sumiranje:"
10 Input X
Y = Y+X
N = N-1
If (N <> 0) Goto 10
Print "Suma unesenih brojeva iznosi: �"; Y
End
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 15
Napisati program koji izračunava sumu 6 unesenih brojeva korištenjem For...Next petlje.
RJEŠENJE
'Program suma
Y = 0
Print "Unesite brojeve za sumiranje:"
For i = 1 To 6
Input X
Y = Y+X
Next i
Print "Suma unesenih brojeva iznosi: �"; Y
End
_______________________________________________________________________
_
_______________________________________________________________________
_

PRIMJER 16
Napisati program koji izračunava sumu N unesenih brojeva korištenjem For...Next
petlje.
RJEŠENJE
'Program SumaN
Y = 0
Print "Unesite koliko brojeva zelite sumirati:"
Input "N = "; N
Print "Unesite brojeve za sumiranje:"
For i = 1 To N
Input X
Y = Y+X
Next i
Print "Suma unesenih brojeva iznosi: �"; Y
End
_______________________________________________________________________
_
_______________________________________________________________________
_

PRIMJER 17
Vrijednost promjenljive koja broji nikada ne mijenjati unutar same petlje!
Petlja će se pokvariti:

For X=1 To 5
X=3
Next X

Na kraju svakog ciklusa je X=4, ova petlja For...Next postaje beskonačna petlja!
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 18
Napisati program koji broji do 10
RJEŠENJE
'broj do deset
x = 0
while x < 10
x = x + 1
print x
wend
end
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 19
Napisati program koji broji do 10 korištenjem Loop While i Loop Until
RJEŠENJE:

do
print a
a = a + 1
loop while a < 11

do
print b
b = b + 1
loop until b = 11
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 20
Nacrtati dijagram toka za program koji će učitati niz brojeva, te odrediti i ispisati
minimalni element tog niza.
RJEŠENJE
_______________________________________________________________________
_

_______________________________________________________________________
_

PRIMJER 21
Nacrtati dijagram toka za program koji će učitati niz brojeva, te odrediti i ispisati
maksimalni element tog niza.
RJEŠENJE

_______________________________________________________________________
_
_______________________________________________________________________
_
PRIMJER 22
Nacrtati dijagram toka za program koji će učitati tri broja i ispisati razliku između
najvećeg i zbira preostala dva.
RJEŠENJE

_______________________________________________________________________
_
PRIMJER 23
Koliko različitih brojeva je moguće prikazati u brojnom sistemu sa osnovom B sa n
različitih cifara?
RJEŠENJE
Kapacitet broja sa n cifara: (kod kalkulatora i računara n je ograničeno)
K=Bn
B je osnova brojnog sistema.

PRIMJER 24:
Sa 5 cifara u dekadskom sistemu (osnova 10) moguće je prikazati?
Sa 3 cifre u binarnom sistemu (osnova 2) moguće je prikazati?
Sa 32 cifre u binarnom sistemu (osnova 2) moguće je prikazati?
Sa 8 cifara u oktalnom sistemu (osnova 8) moguće je prikazati?
Sa 2 cifre u heksadecimalnom sistemu (osnova 16) moguće je prikazati?

RJEŠENJE
Sa 5 cifara u dekadskom sistemu (osnova 10) moguće je prikazati K= 105=100000
različitih brojeva.

Sa 3 cifre u binarnom sistemu (osnova 2) moguće je prikazati K= 23=8 različitih brojeva:


000
001
010
011
100
101
110
111

Sa 32 cifre u binarnom sistemu (osnova 2) moguće je prikazati K=232=4294967296


različitih brojeva.

Sa 8 cifara u oktalnom sistemu (osnova 8) moguće je prikazati K= 88= 16777216 različita


broja.

Sa 2 cifre u heksadecimalnom sistemu (osnova 16) moguće je prikazati K= 162=256


različitih brojeva.
PRIMJER 25
10110.0112=1∙24+0∙23+1∙22+1∙21+0∙20+0∙2-1+1∙2-2+1∙2-3=1∙24+1∙22+1∙21+1∙2-2+1∙2-3
=16+4+2+0.25+0.125=22.37510

PRIMJER 26
527.48=5∙82+2∙81+7∙80+4∙8-1=5∙64+2∙8+7∙1+4∙0.125=320+16+7+0.5=343.510

PRIMJER 27
19C16=1∙162+9∙161+12∙160=1∙256+9∙16+12∙1=256+144+12=41210

PRIMJER 28
Predstaviti broj -25.
7 6 5 4 3 2 1 0
0 0 0 1 1 0 0 1 broj 2510
7 6 5 4 3 2 1 0
1 1 1 0 0 1 1 0 prvi komplemet (nepotpuno komplementiranje)
+
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1 dodamo 1 na prvi komplement (potpuno komplementiranje)
7 6 5 4 3 2 1 0
1 1 1 0 0 1 1 1 v=103-128=-25