1 / 22

Uvod u programiranje - matematika – V predavanj e

Uvod u programiranje - matematika – V predavanj e. Vesna Veličković vesna@pmf.ni.ac.rs. Tok izvršenja programa. Upravljačke strukture S ekvenca G rananje P etlje M oguće je proizvoljno kombinovanje. Petlje. Naredbe u petlji se izvršavaju nula ili više puta.

remedy
Télécharger la présentation

Uvod u programiranje - matematika – V predavanj e

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uvod u programiranje- matematika –V predavanje Vesna Veličković vesna@pmf.ni.ac.rs

  2. Tok izvršenja programa Upravljačke strukture • Sekvenca • Grananje • Petlje Moguće je proizvoljno kombinovanje.

  3. 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

  4. 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.

  5. 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.

  6. 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 <naredba1> ; <naredba2> ; ... <naredbaN> end

  7. 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!

  8. Beskonačna petlja k := 1; while k < 10 do writeln (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.

  9. Ispravan primer Naredba u petlji mora da menja uslov! k := 1; while k < 10 do begin writeln (k); k := k+1; end

  10. 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 writeln (k); k := k+1; end

  11. FOR i WHILE for i:=1 to 10 do writeln (i) i := 1; while i<=10 do begin writeln (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.

  12. 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 writeln (2*i) i := 2; while i<=n do begin writeln (i); i := i + 2; end

  13. Akumuliranje grešaka • Odštampati f(x) za x od m do n sa korakom 1/3 x := m; while x <= n do begin f := <računaj f(x)>; writeln (f); x := x + 1/3 end

  14. Iteracija • Izračunati koren jednačine x – 10 * ln(x) = 0. x0 biramo proizvoljno x1 := 10 * ln(x0); x2 := 10 * ln(x1); ... Postupak prekidamo kada se dostigne tačnost eps, odnosno kada bude |xn – xn-1| < eps. Ako se postupak ne završi za k koraka, pretpostavljamo da postupak divergira, pa ga prekidamo.

  15. read (x0); x := 10 * ln(x0); i := 1; while (i <= k) and (abs(x-x0) >= eps) do begin x0 := x; x := 10 * ln(x0); i := i + 1 end

  16. Iteracija • Izračunati sin(x) sa zadatom tačnošću eps.

  17. U ovom slučaju tačnost znači

  18. S := 0; n := 0; a := x; while abs(a) >= eps do begin S := S + a; a := - sqr(x)*a / ((2*n+3)*(2*n+2)); n := n+1 end

  19. Domaći zadatak 8 • Izračunati cos(x) sa zadatom tačnošću eps.

  20. Rad sa fajlovima type fajl = fileofreal; var n, i : integer; broj : real; f : fajl;

  21. Čitanje brojeva iz fajla assign (f, 'f.dat');reset (f); n := 0; whilenot eof (f) dobegin n := n + 1; read (f, broj); { radimo nešto sa brojem } end; close (f);

  22. Upisivanje brojeva u fajl assign (f, 'f.dat'); rewrite (f); for i:=1 to n do begin { izračunavanje broja } write (f, broj); end; close (f);

More Related