Struktura selekcije
Download
Report
Transcript Struktura selekcije
Programski jezici
Osnovne upravljačke strukture
Osnovne upravljačke strukture
Sekvenca naredbi i blok
Struktura selekcije
Struktura višestruke selekcije
Programske petlje
Bezuslovno grananje
Upravljačke strukture
Omogućavaju definisanje toka programa
Javljaju se u programskom jeziku Pascal i
implementiraju osnovne algoritamske strukture
Standardno sredstvo u višim programskim
jezicima proceduralnog tipa
Definišu program u skladu sa konceptom
strukturnog programiranja
Slične upravljačke strukture u većini viših
programskih jezika
Upravljačke strukture
Dovoljan skup naredbi za upravljanje tokom
programa obuhvata:
Strukturu selekcije
if B then St else Sf;
Strukturu višestruke selekcije
case X of
Xa : Sa;
Xb: Sb;
end;
Strukturu iteracije
while B do S;
Kriterijumi za upravljačke strukture
Smisao naredbi mora biti jasan i jednoznačan;
Sintaksa naredbe treba da bude tako postavljena
da dozvoljava hijerarhijsko ugrađivanje drugih
naredbi, što mora da bude jednoznačno
definisano i jasno iz samog teksta programa;
Potrebno je da postoji mogućnost lake
modifikacije naredbi;
Sekvenca naredbi
Jedan od osnovnih koncepata u strukturnim
jezicima
Uveden radi lakše implementacije drugih
upravljačkih struktura
Algol 60 – složena naredba
begin
naredba 1;
naredba 2;
naredba 3;
end
Blok
Algol 60 – uopštenje sekvence naredbi
Blok je upravljačka struktura koja sadrži opise
lokalnih promenljivih i sekvencu naredbi
Zatvara se kao i sekvenca, zagradama begin i end
begin
integer var1, var2;
naredba 1;
naredba 2;
naredba 3;
end
Blok
Promenljive opisane u bloku su lokalne
promenljive tog bloka, a globalne za sve blokove
sadržane u njemu
U slučaju predefinisanja promenljivih koje
postoje u spoljnom bloku, u okviru bloka važe
nove definicije kao lokalne definicije bloka
Van bloka prestaje dejstvo lokalnih definicija
Globalne i lokalne promenljive
Sopstvene promenljive bloka
Čuvaju vrednosti po izlasku iz bloka, vrednosti
su dostupne pri ponovnom ulasku u blok
Struktura selekcije
Omogućava definisanje više mogućih tokova
programa i jedno je od osnovnih sredstava za
pisanje fleksibilnih programa
if-then struktura
if-then-else struktura
Struktura selekcije if then
Obično se implementira kao jednostavan,
poseban slučaj if-then-else strukture
Fortran
Algol
Ada
Struktura selekcije if then else
Javlja se prvi put u jeziku Algol 60
Postoji u svim proceduralnim jezicima
false
else-grana
uslov
true
then-grana
Nedostaci if-then-else
Mogućnost različitog tumačenja u slučaju
ugneždenih struktura
Koriste se sintaksna i semantička pravila za
ovakve situacije
Nadovezivanje if naredbi
Noviji i pouzdaniji koncept koristi ključne reči
kojima se otvara i zatvara struktura
Struktura višestruke selekcije
Omogućava izbor jedne od više mogućih naredbi ili grupa
naredbi u zavisnosti od vrednosti određenog izraza
Može se simulirati if-then-else strukturom
Algoritam višestruke selekcije
true
false
false
false
true
true
Struktura višestruke selekcije
Pascal
C
Programske petlje
Programske petlje, strukture iteracije
Višestruko ponavljanje određene sekvence
Omogućava da se složeni problemi reše
jednostavnim programima
Brojačke petlje
Logički kontrolisane petlje
pre-test petlje (while)
post-test petlje (until)
Brojačka petlja
for petlja – u opštem
slučaju
izvršava se sekvenca
naredbi određen broj
puta
brojač petlje
početna vrednost
krajnja vrednost
Logički kontrolisana petlja
while petlja – u opštem
slučaju
pre-test petlja, uslov se
ispituje pre svakog
izvršavanja sekvence
naredbi
sekvenca se izvršava sve
dok je uslov zadovoljen,
odnosno ima vrednost
true
Logički kontrolisana petlja
until petlja – u opštem
slučaju
post-test petlja, uslov se
ispituje posle svakog
izvršenja sekvence
sekvenca naredbi se
izvršava najmanje
jednom
manje je zastupljena u
programskim jezicima
Primeri petlji
Prekid petlje
Bezuslovno grananje
Omogućava realizaciju i najsloženijih algoritama,
u sprezi sa naredbama selekcije
Nedostatak je nepregledan kod podložan
greškama
U konceptu strukturnog programiranje izbačene
naredbe za bezuslovno grananje jer se nastoji da
sve strukture imaju jedan ulaz i jedan izlaz
Naredbe za bezuslovno grananje postoje u
mnogim jezicima koji podržavaju koncept
strukturnog programiranja
Naredba GOTO
Naredba za bezuslovno grananje
Prelazak na deo programa označen labelom
Labela (oznaka) označava naredbu na koju se
pod dejstvom naredbe GOTO prenosi
upravljanje
U nekim jezicima se kao labele koriste
identifikatori
Pitanja
???