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
???