Uvod u programiranje matematika VI predavanje Petlje FOR

  • Slides: 26
Download presentation
Uvod u programiranje - matematika – VI predavanje Petlje. FOR. WHILE Vesna Veličković vesna@pmf.

Uvod u programiranje - matematika – VI predavanje Petlje. FOR. WHILE Vesna Veličković vesna@pmf. ni. ac. rs

Tok izvršenja programa Upravljačke strukture • Sekvenca (begin. . . end) • Grananje (if,

Tok izvršenja programa Upravljačke strukture • Sekvenca (begin. . . end) • Grananje (if, case) • Petlje Moguće je proizvoljno kombinovanje.

Petlje Naredbe u petlji se izvršavaju nula ili više puta. U Pascal-u postoje tri

Petlje Naredbe u petlji se izvršavaju nula ili više puta. U Pascal-u postoje tri naredbe koje realizuju petlje (cikluse): • For • While • Repeat

Suma {suma n elemenata koji se učitavaju sa tastature} var n, i : integer;

Suma {suma n elemenata koji se učitavaju sa tastature} var n, i : integer; S, element : real; begin <učitaj n>; S : = 0; for i : = 1 to n do begin <učitaj element >; S : = S + element; end; <štampaj S>; end.

Proizvod {proizvod n elemenata koji se izračunavaju} var n, i : integer; P, element

Proizvod {proizvod n elemenata koji se izračunavaju} var n, i : integer; P, element : real; begin <učitaj n>; P : = 1; for i : = 1 to n do begin element : = <izraz>; P : = P * element; end; <štampaj P>; end.

Aritmetička sredina • Suma svih brojeva se podeli brojem brojeva S : = 0;

Aritmetička sredina • Suma svih brojeva se podeli brojem brojeva S : = 0; for i : = 1 to n do begin <učitavanje ili izračunavanje elementa> S : = S + element; end; aritmeticka. Sredina : = S / n;

Parovi type decaci = (Mirko, Marko, Slavko); devojcice = (Anja, Ana, Sonja, Sanja); var

Parovi type decaci = (Mirko, Marko, Slavko); devojcice = (Anja, Ana, Sonja, Sanja); var dec : decaci; dev : devojcice; begin for dec : = Mirko to Slavko do for dev : = Anja to Sanja do <štampanje para (dec, dev)> end.

Da li svi elementi zadovoljajaju neki uslov - tipična greška for i : =

Da li svi elementi zadovoljajaju neki uslov - tipična greška for i : = 1 to n do begin <učitavanje ili izračunavanje elementa> if <element zadovoljava uslov> then svi. Zadovoljavaju. Uslov : = TRUE; else svi. Zadovoljavaju. Uslov : = FALSE; end;

Da li svi elementi zadovoljajaju neki uslov svi. Zadovoljavaju. Uslov : = TRUE; for

Da li svi elementi zadovoljajaju neki uslov svi. Zadovoljavaju. Uslov : = TRUE; for i : = 1 to n do begin <učitavanje ili izračunavanje elementa> if <element ne zadovoljava uslov> then svi. Zadovoljavaju. Uslov : = FALSE; end;

Da li je formula f(p, q) tautologija – tipična greška • p, q, f,

Da li je formula f(p, q) tautologija – tipična greška • p, q, f, tautologija : boolean; for p : = true downto false do for q : = true downto false do begin f : = <formula>; if f { ili f = TRUE } then tautologija : = TRUE else tautologija : = FALSE; end;

Da li je formula f(p, q) tautologija • p, q, f, tautologija : boolean;

Da li je formula f(p, q) tautologija • p, q, f, tautologija : boolean; tautologija : = TRUE; for p : = true downto false do for q : = true downto false do begin f : = <formula>; if not f then tautologija : = FALSE; end;

Domaći zadatak 7 • Ispitati da li je data formula tautologija.

Domaći zadatak 7 • Ispitati da li je data formula tautologija.

Komentari • Ključne reči podvlačimo • Komentari između zagrada { } ili (* *).

Komentari • Ključne reči podvlačimo • Komentari između zagrada { } ili (* *). Linijski komentar od // do kraja reda. • '; ' se piše – posle deklaracija, definicija i – između dve naredbe u složenoj naredbi (begin. . . end)

Konstante Ne menja vrednost u toku izvrsenja programa. • Definicija konstanti const <ime konstante>

Konstante Ne menja vrednost u toku izvrsenja programa. • Definicija konstanti const <ime konstante> = <konstanta> ; Konstanta određenog tipa Primer. const pi = 3. 14; max = 50; ime = 'Ana';

Integer tipovi u Delphi-u Ime tipa opseg vredniosti format Short. Int -128. . 127

Integer tipovi u Delphi-u Ime tipa opseg vredniosti format Short. Int -128. . 127 sign. 8 -bit Small. Int -32 768. . 32 767 sign. 16 -bit Long. Int -2 147 483 648. . 2 147 483 647 sign. 32 -bit Int 64 -263. . 263 -1 sign. 64 -bit Byte 0. . 255 unsign. 8 -bit Word 0. . 65 535 unsign. 16 -bit 0. . 4 294 967 295 unsign. 32 -bit Long. Word Integer = Long. Int, Cardinal = Long. Word

Real tipovi u Delphi-u opseg vredniosti značajne cifre bit Real 48 2. 9 e-39.

Real tipovi u Delphi-u opseg vredniosti značajne cifre bit Real 48 2. 9 e-39. . 1. 7 e 38 11 - 12 6 Single 1. 5 e-45. . 3. 4 e 38 7 -8 4 Double 5. 0 e-324. . 1. 7 e 308 15 - 16 8 3. 6 e-4951. . 1. 1 e 4932 19 - 20 10 -263. . 263 -1 19 - 20 8 Ime tipa Extended Comp Currency Real = Double -922337203685477. 5808. . 922337203685477. 5807

Petlje Naredbe u petlji se izvršavaju nula ili više puta. U Delphi-ju postoje tri

Petlje Naredbe u petlji se izvršavaju nula ili više puta. U Delphi-ju postoje tri naredbe koje realizuju petlje (cikluse): • For • While • Repeat

Izbor naredbe za petlju • Ako znamo tačan broj prolazaka kroz petlju, biramo FOR.

Izbor naredbe za petlju • Ako znamo tačan broj prolazaka kroz petlju, biramo FOR. • Ako ne znamo tačan broj prolazaka kroz petlju, pitamo se da li se kroz petlju mora proći bar jedanput. • Ako se kroz petlju mora proći bar jedanput, biramo REPEAT. • Ako se kroz petlju ne mora proći ni jedanput, biramo WHILE.

WHILE petlja while <uslov> do <naredba> Uslov je logički izraz. Primenjuje se kada ne

WHILE petlja while <uslov> do <naredba> Uslov je logički izraz. Primenjuje se kada ne znamo broj prolazaka kroz petlju, čak i kada nismo sigurni da se kroz petlju uopšte treba proći. U tom slučaju izlazak iz petlje mora biti definisan nekim uslovom.

Složena naredba u WHILE • Ako je unutar while naredbe potrebno napisati više od

Složena naredba u WHILE • Ako je unutar while naredbe potrebno napisati više od jedne naredbe, stavljamo ih u složenu naredbu. while <uslov> do begin <naredba 1> ; <naredba 2> ; . . . <naredba. N> end

Izvršenje WHILE naredbe Naredba u petlji se izvršava sve dok je ispunjen uslov. •

Izvršenje WHILE naredbe Naredba u petlji se izvršava sve dok je ispunjen uslov. • Prvo se izračuna vrednost uslova. • Ako je ta vrednost TRUE, izvršava se naredba u petlji. Zatim se ponovo ispituje uslov. • Ako je je ta vrednost FALSE, izlazi se iz petlje. Napomena: Sa while naredbom možemo napraviti beskonačnu petlju!

Beskonačna petlja k : = 1; while k < 10 do <štampaj k>; Izvršenje:

Beskonačna petlja k : = 1; while k < 10 do <štampaj k>; Izvršenje: K se postavi na 1. Ispita se uslov k < 10. Kako je k=1<10, uslov je zadovoljen i izvršava se naredba u petlji (odštamta se k=1). Ponovo se ispituje uslov. I dalje je k=1<10, pa se ponovo štampa k=1. Ponovo se ispituje uslov. . . Na ovaj način smo napravili beskonačnu petlju.

Ispravan primer Naredba u petlji mora da menja uslov! k : = 1; while

Ispravan primer Naredba u petlji mora da menja uslov! k : = 1; while k < 10 do begin <štampaj k>; k : = k+1; end

Kada se ne ulazi u petlju Uslov u while naredbi se ispituje pre nego

Kada se ne ulazi u petlju Uslov u while naredbi se ispituje pre nego što se izvrši naredba u petlji. Može se desiti da uslov odmah na početku bude netačan, pa se onda u petlju uopšte ne ulazi. k : = 1; while k < 0 do begin <štampaj k>; k : = k+1; end

FOR i WHILE for i: =1 to 10 do <štampaj i > i :

FOR i WHILE for i: =1 to 10 do <štampaj i > i : = 1; while i<=10 do begin <štampaj i >; i : = i + 1; end While je najopštija naredba petlje. Sve što se može uraditi sa for, može se uraditi i sa while.

FOR i WHILE Nekada je while zgodnija, čak i ako znamo tačan broj prolazaka

FOR i WHILE Nekada je while zgodnija, čak i ako znamo tačan broj prolazaka kroz petlju. • Odštampati sve parne brojeve do n. for i: =1 to n div 2 do <štampaj 2*i > i : = 2; while i<=n do begin <štampaj i >; i : = i + 2; end