3. Izračunavanje vrednosnih funkcija 2014
3
Slika 1.Blez Paskal
Sadržaj:
Sadržaj _________________________________________________________________________________ 3
O Paskal-u ______________________________________________________________________________ 4
Tabeliranje vrednostnih funkcija ___________________________________________________________ 6
Izračunavanje sume i proizvoda ____________________________________________________________ 7
Ispitivanje svojstava celih brojeva __________________________________________________________ 9
Zaključak ______________________________________________________________________________ 11
Literatura _____________________________________________________________________________ 12
4. Izračunavanje vrednosnih funkcija 2014
4
Slika 1.Blez Paskal
O Paskal-u
Paskal (Pascal) je imperativni programski
jezik, koji je 1974. godine razvio Niklaus Virt,
kao jezik pogodan za učenje strukturnog
programiranja. Imenovan je po čuvenom
francuskom matematičaru i filozofu Blezu
Paskalu. Standardizovan je 1983. godine od
strane Međunarodnog komiteta za
standardizaciju. Paskal se danas koristi kao
početni program za obuku budućih programera.
Istorija Paskal-a
Krajem 60-ih godina švajcarski naučnik
Niklaus Virt imao je za cilj da napravi jezik u
kome bi se mogla efikasno realizovati obuka
programera. Međutim, danas Pascal ima mnogo
širu primenu. On se koristi ne samo za pisanje
programa u raznim oblastima primene računara
već i kao jezik za sistemsko i vizuelno
programiranje. Vizuelni Pascal, realizovan
paketom Delphi, danas je jedan od najpopularnijih jezika za projektovanje Windows aplikacija.
To je jednostavan jezik koji se može brzo naučiti, i u njemu se mogu pisati algoritamski vrlo
složeni programi. Programski jezik Pascal razvio je, izmedju 1968 i 1970, na temeljima tad
popularnog jezika ALGOL-a, radi prevazilaženja poteškoća koje su se javljale programiranjem u
višim programskim jezicima sekvencijalnog karaktera (FORTRAN, COBOL, ALGOL i BASIC),
kao i zbog potreba uvođenja standardnog programskog jezika za učenje u školama i fakultetima.
Virt je programskom jeziku dao ime Pascal u čast francuskog filozofa i matematičara Bleza
Paskala, koji je 1641. izumeo mehanički kalkulator. Prva specifikacija objavljena je 1971. Već
od 1972 Pascal se počinje izučavati na fakultetima kao jezik prikladan za uvod u programiranje.
Prvobitna standardizacija jezika dogodila se 1983. Pascal uvodi paradigmu strukturnog i
proceduralnog programiranja, što znači da se programski kod razlaže na samostalne strukture -
podatke i podprograme, koji se ne izvršavaju u istom redosledu u kom su navedeni, kao što je
slučaj kod naredbi sekvencijalnih programskih jezika, nego se po potrebi pozivaju i izvode.
Sedamdesetih godina Pascal stiče veliku popularnost te se u velikoj meri koristi za aplikacijsko i
i sistemsko programiranje.
5. Izračunavanje vrednosnih funkcija 2014
5
Slika 2. Turbo Paskal
Borlandov Pascal
1983. pojavljuje se Turbo Pascal firme Borland, prvo integrisano razvojno okruženje
(IDE).
Turbo Pascal objedinjuje sve funkcije ciklusa razvoja softvera u jedan celovit program
(pisanje koda, kompajlovanje, linkovanje, debugovanje), a istovremeni pristup svakoj od
funkcija bez potrebe pokretanja zasebnih programa i gašenja predhodno pokrenutih je doprineo
još većoj popularizaciji Pascala u softverskoj industriji, jer su programeri do tad morali pokretati
zasebno nekoliko različitih programa (editor, kompajler, linker, debugger) da bi dovršili konačan
program. IDE Turbo Pascal je masovno korišćen, kako zbog mogućnosti velike uštede vremena
pri razvoju softvera, tako i zbog svoje niske cene i licence koja je omogućivala kupovinu samo
jedne kopije proizvoda bez obzira na kolikom broju kompjutera će softver biti korišćen. Osim
Turbo Pascala, Borland je izporučivao i skuplju verziju IDE-a pod nazivom Borland Pascal koja
se od Turbo Pascala neznatno razlikovala po mogućnostima i imala uključen izvorni kod
standardnih modula. Od novina koje uvodi Borland u Turbo Pascal značajna je mogućnost
deljenja koda na odvojene datoteke, takozvane module.
6. Izračunavanje vrednosnih funkcija 2014
Ako je potrebno izračunati vrednosti nekih funkcija za seriju početnih vrednosti
argumenata onda se za to mogu koristiti ciklusi. Koji ciklus će se koristiti zavisi od odnosa
između vrednosti argumenata. Ako postoji neko pravilo na osnovu kojeg se argumenti menjaju i
to tako da se unapred zna broj vrednosti argumenata možemo koristiti bilo koju vrstu ciklusa.
Ako se ne može unapred znati koliko puta će se računati vrednost funkcije onda ćemo koristiti
neki od ciklusa sa uslovom.
Nekad treba ispisati vrednosti trigonometrijskih funkcija sin i cos na intervalu od ao do
bo stepeni sa korakom od co. Zadatak ćemo rešiti primenom ciklusa while. Kao početnu vrednost
argumenta funkcije uzećemo broj a, odrediti vrednost funkcije i ispisati je, a zatim povećavati
argument dok ne stignemo do broja b. Potrebno je voditi računa o tome da trigonometrijske
funkcije rade sa uglovima u radijanima. Zadatak je jednostavno moguće rešiti i korišćenjem
ciklusa repeat uz uslov da korisnik upiše da je a<b, a ako nije, pre primene rešenja, treba
zameniti vrednosti promenljivih. Rešenje pomoću ciklusa for nije tako jednostavno.
6
Tabeliranje vrednostnih funkcija
Slika 3. Ciklus While
Slika 4. Ciklus Repeat
7. Izračunavanje vrednosnih funkcija 2014
Ako je potrebno računati sume ili proizvode neke grupe brojeva koji imaju neku
funkcionalnu zavisnost, uglavnom mogu se koristiti sve vrste ciklusa, ali se najčešće koristi
ciklus for jer je takvo rešenje najjednostavnije (osim u nekim specifičnim slučajevima). Neka
treba sabrati sve parne brojeve od a do b. Najjednostavnije rešenje je:
7
Izračunavanje sume i proizvoda
Slika 4. Ciklus Repeat
Slika 5. Ciklus sa uslovom
Naravno, postavljanje početnog broja na paran broj veći ili jednak broju a moglo se izvesti
i pomoću jedne If naredbe, ali to je već stvar “ukusa”. Na isti način bi se rešavali i zadaci sa
proizvodom brojeva. Ako bi trebalo sabirati ili množiti brojeve koji nisu celi, onda bi trebalo
koristiti cikluse sa uslovom jer je rešenje jednostavnije nego sa brojačkim ciklusima (a ponekad i
jedino moguće).
9. Izračunavanje vrednosnih funkcija 2014
Problemi tipa: odrediti da li je broj prost, ispisati sve proste delioce broja, ispisati
savršene brojeve do n, ispisati Armstrongove brojeve do n i slični, mogu se rešavati bilo kojom
vrstom ciklusa, a često se koristi i kombinovanje različitih vrsta, da bi se rešenje pojednostavilo.
Prikazaćemo prvi algoritam. Broj je prost ako osim 1 i samog sebe nema drugih delioca, zato
ćemo izbrojati takve delioce:
bd:=0; // broj delioca različitih od 1 i samog broja je na početku 0
For del:=2 to broj-1 do // počinjemo testiranje od 2 do prvog manjeg broja
If broj mod del=0 then bd:=bd+1; // ako je broj deljiv uvećavamo broj delilaca za 1
9
Ispitivanje svojstava celih brojeva
Slika 7. Ispitivanje svojstava celih
brojeva
If bd>0 then // ispisati broj nije prost
U algoritmu ima puno nepotrebnih testiranja, pa je neefikasan i ne treba ga koristiti. Bilo
koji broj, osim samog sebe, nema delioca koji su veći od njegove polovine. Broj nije prost ako
ima bar jednog delioca različitog od 1 i samog sebe, pa nema potrebe tražiti sve takve delioce.
Bolji algoritam se prekida čim se pronađe prvi takav delilac:
Prvi uslov u ciklusu je jasan. Objasniću drugi. Algoritam je zamišljen da se ciklus prekida
čim se naiđe na prvog delioca koji je veći od 1. To znači, ako je broj deljiv sa 2 nema potrebe
proveravati da li je deljiv sa svojom polovinom; ako je broj deljiv sa 3 nema potrebe proveravati
da li je deljiv svojom trećinom i tako dalje do nekog broja n. Da bismo pronašli koji je to broj
10. Izračunavanje vrednosnih funkcija 2014
formiramo niz parova delilaca koji kao proizvod daju taj broj, odnosno: 2 * broj/2, 3 * broj/3, 4 *
broj/4 ... Prvi delilac stalno raste, drugi se stalno smanjuje i prvi je uvek manji od drugog. Jasno
je da prvi delilac ne može biti veći od korena tog broja (jer ako je veći mora se pomnožiti sa
brojem koji je manji od njega da bi se dobio broj). Znači, poslednji delilac u ovom nizu je koren
početnog broja, zato je to poslednji broj za koji proveravamo da li može biti delilac početnog i
ako je delilac veći od korena broja znači da nismo našli nijednog delioca, pa je početni broj
prost.
10
12. Izračunavanje vrednosnih funkcija 2014
12
Literatura
1. http://sr.wikipedia.org/sr/%D0%9F%D0%B0%D1%81%D0%BA%D0%B0%D0%BB_%28%D0
%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_
%D1%98%D0%B5%D0%B7%D0%B8%D0%BA%29
2. “RAČUNARSTVO I INFORMATIKA”, Dušan Tomić, “Zavod za udžbenike” Beograd
3. http://znakoviporedputa.com/religija- i-zivot/523-blez-paskal
4. http://profesorka.wordpress.com/2011/11/02/uvod-u-pascal/
5. http://www.tehnickaue.edu.rs/srp/cas/?conid=1799