6. Imperativni jezici Flashcards

1
Q

Imperativna paradigma programiranja

A

Kod imperativne paradigme programiranja, program predstavlja skup naredbi koje menjaju njegovo stanje. Naredbama se opisuje algoritam za resavanje problema. Naredbe u imperativnim jezicima su
• Naredbe obrade
• Upravljacke strukture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Upravljacke strukture i njihov razvoj

A

Upravljacka struktura je instrukcija programa koja odreduje redosled izvrsavanja drugih instrukcija.
1957. godine je definisan prvi imperativni jezik FORTRAN. Pocetkom 70-ih godina definisana je metodologija strukturnog programiranja i programski jezik Pascal.
Strukturno programiranje znaci da se programske strukture mogu ugnjezdavati ali se ne mogu preklapati. Ovaj koncept je siroko prihvacen tako da danas svi prodceduralni i objektno-orijentisani jezici primenjuju ovu metodologiju. 1972. pojavljuje se C koji se smatra najkoriscenijim imperativnim jezikom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Osnovne upravljacke strukture

A

Upravljacka struktura je instrukcija koja odredjuje redosled izvrsavanja drugih instrukcija u programu. 3 osnovna tipa upravljackih struktura su: sekvenca, selekcija i petlja.

  • Sekvenca predstavlja niz instrukcija u programu koje se izvrsavaju redosledom kojim su zapisane.
  • Selekcija na osnovu ispunjenosti ili neispunjenosti nekog uslova odredjuje koji deo koda ce se izvrsiti.
  • Petlja definise ponavljanje izvrsenja nekog odredjnog skupa instrukcija.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Sekvenca naredbi ili blok

A

Sekvenca naredbi ili blok predstavlja niz instrukcija koje se izvrsavaju redosledom kojim su zapisane

Pascal i C# napisi

Blokovi se takodje cesto koriste za ogranicavanje opsega simbolickih imena (simbolicko ime unutar jednog bloka je lokalno, a u odnosu na sve blokove unutar tog bloka je globalno) Medjutim moze doci do problema konflikta imena ukoliko se jedno ime deklarise vise puta ( u C-u i C++-u vazi poslednja definicija imena, dok u Javi i C#-u program prijavljuje gresku)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Struktura selekcije ( grananja )

A
Naredba selekcije (if naredba) omogucava da se izvrsi jedan ili drugi deo koda u zavisnosti da li je neki uslov ispunjen ili ne.
//Pascal i C i Slika selekcije *3
Postoji i visestruko grananje (kao i struktura "Ceslja")
U C-u struktura ceslja izgleda kao
switch (izraz)
{
    case const1: naredba1 break;
    case const2: naredba2 break;
    ...
    [default: naredba;] //ukoliko nijedan uslov nije ispunjen
}

U programskom jeziku Java, switch struktura ima istu semantiku kao i u C-u, dok u C#-u switch struktura je namenjena za strukture tipa ceslja, gde je break obavezan cak i nakon default klazule.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Programske petlje

A

Omogucavaju visestruko izvrsavanje istog bloka naredbi programa.
Postoje:
• Brojacke petlje (sa unapred odredjenim brojem prolazaka kroz petlju)
• Petlje sa unapred nepoznatim brojem prolaza (petlje koje se izvrsavaju u slucaju da je uslov (koji moze biti na pocetku i na kraju petlje) ispunjen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Brojacke petlje

A

Brojacke petlje su petlje sa unapred poznatim brojem prolaza. Koriste specijalnu promenljivu koja je nazvana brojac koja pri svakom prolasku kroz petlju menja svoju vrednost pocev od zadate startne vrednosti sve do konacne vrednosti odredjene inkrementom.

//for za Pascal i C

Brojacke petlje takodje sluze i za obilazak kolekcija nekih podataka
int[] niz={1,2,5,7};
for(int i=0;i<4;i++) { …a[i]… }

U Javi i C#-u postoje posebne petlje namenjene za obilazak kolekcija a to su for(int element : a) u Javi i foreach(int element in a) u C#-u.

Postoje i ogranicenja za upotrebi petlji za rad sa kolekcijama.
Kod Jave kolekcija moze biti polje ili klasa koja implementira interfejs Collection
Kod C#-a kolekcija moze biti polje ili klasa koja implementira jedan od interfejsa (System.Collections.IEnumerator, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.Generic.IEnumerable).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Petlje sa unapred nepoznatim brojem prolaza

A

To su petlje koje se ponavljaju sve dok se ne ispuni odredjeni uslov (koji moze biti na pocetku ili na kraju petlje), tj. uslov se ispituje pre ili posle svakog prolaza kroz petlju.

Odredjivanje broja cifara u celom broju N pomocu petlje sa uslovom na pocetku
brcifara=1; N=N/10;
while(N!=0){N/=10;brcifara++;}

Odredjivanje broja cifara u celom broju N pomocu petlje sa uslovom na pocetku
do {N/=10; brcifara++} while(N!=0);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Naredbe prekida

A
  • Za prekidanje tekuce iteracije petlje : continue;
  • Za prekidanje tekuce programske strukture: break;
  • Za prekidanje izvrsenja tekuceg potprograma: return ili return izraz;
  • Za prekidanje tekuce strukture, niza ugnjezdenih struktura, tekuce funkcije ili niza pozvanih funkcija: throw izraz;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly