Title: JU Gimnazija
1JU Gimnazija Živinice Informatika
Pascal i programiranje
Pripremio prof. Ilija Lucic dipl.ing.el.
2Pascal
- Prva verzija jezika Pascal pojavila se 1968.
godine - Formalno je standardizirana tek 1983
- Najpopularniji i najrasprostranjeniji je Turbo
Pascal, trenutacno ver. 7.0, tvrtke BORLAND
www.gimnazijazivinice.tk
3Namjena Pascala
- Primarna je namjena Pascala u rješavanju problema
- "algoritamske prirode
- strukturnoga programiranja
- primjenom više tipova i struktura podataka
www.gimnazijazivinice.tk
4Osnovne karakteristike Pascala
- Obavezno je deklariranje svih varijabli programa
- Odredene kljucne rijeci, na primjer BEGIN, IF,
THEN, WHILE, "rezervirane" su i ne smiju se
koristiti kao imena. - Standardni tipovi podataka su realni,
cjelobrojni, logicki i znakovni - Standardne strukture podataka su polja, slogovi,
skupovi i datoteke - Procedure i funkcijski potprogrami mogu se
pozivati rekurzivno
www.gimnazijazivinice.tk
5Osnovne karakteristike Pascala-proširenja za
Turbo Pascal
- Uvedena je standardna struktura niz znakova
(string) s odgovarajucim funkcijama i procedurama
- U dijelu deklaracija i definicija moguce je
inicijalizirati vrijednosti varijabli - Uvedene su dvije naredbe, HALT i EXIT, za prekid
izvršavanja programa i prijevremeni izlazak iz
potprograma(time je u potpunosti istisnuta
upotreba naredbe GOTO. ) - Mogucnost rada s objektima (kao u Vizual Basic-u
)
www.gimnazijazivinice.tk
6Primjena Turbo Pascala
- Primjene u tehnici, ekonomiji, matematici,
fizici, hemiji, društveno-humanistickim
znanostima, itd - izradu sistemskog softvera
- izradu aplikativnog softvera (graficki paketi,
baze podataka, obrada teksta, upravljanje
procesima, itd
www.gimnazijazivinice.tk
7Osnove Pascala
- Ucenje Pascala i pisanje prvih programa zahtijeva
dosta uvodnih razmatranja - Dosta formalnih pravila i precizne terminologije
- Samouke programere i one koji godinama
programiraju u jezicima za programiranje druge
ili trece generacije, Pascal najcešce demotivira
nekim svojim formalizmima. - Programiranje-posebna, ne baš laka disciplina
- Ovladavanje Pascalom zahtijeva postupnost,
temeljitost i strpljivost u radu - Takoder podrazumijeva predznanje iz odredenih
podrucja matematike i strog, formalan pristup.
www.gimnazijazivinice.tk
8Matematicke osnove
- Izucavanje Pascala i programiranja zahtijeva
strog, formalan pristup. Takoder podrazumijeva
solidno predznanje iz matematike, posebno
matematicke logike i teorije skupova. Zbog toga
ovo poglavlje sadrži kratak pregled teorije
skupova i matematicke logike.
www.gimnazijazivinice.tk
9Skupovi
- Skup- kolekcija elemenata npr. Skup dana u
sedmici su slijedeci elementi Ponedjeljak,
utorak, srijeda, cetvrtak, petak, subota,
nedjelja - Relacije
- Funkcije
www.gimnazijazivinice.tk
10Matematicka logika
- Elementarni sud
- jednakoltgt razlicitolt manjelt manje ili
jednakogt vecegt vece ili jednako - Na primjer, relacijski izraz (elementarni sud) "9
gt 5" citat cemo "9 je vece od 5". - Svi elementarni sudovi moraju imati jedno i samo
jedno svojstvo"biti istinit" ili "biti lažan"
www.gimnazijazivinice.tk
11Matematicka logika
- Od elementarnih sudova moguce je, uz pomoc
nekoliko logickih operacija, graditi složene
sudove. - Negacija, konjukcija, disjunkcija, implikacija
- I složeni sud biti ce istinit ili lažan
- Ako su "a" i "b" sudovi, onda je ab novi složeni
sud ili konjunkcija sudova "a" i "b". - a b a bF F FF T FT F FT T T
- T-true
- F-folse
www.gimnazijazivinice.tk
12Konjukcija
- Operacija konjunkcije po smislu približno
odgovara vezniku "i". Na primjer, elementarni
sudovi "6 je djeljivo sa 3", "10 je vece od 5"
istiniti su, pa je istinita i njihova konjunkcija
"6 je djeljivo sa 3 i 10 je vece od 5". - Medutim, elementarni sudovi "3 je djeljivo sa 7"
i "3 je vece od 7" lažni su, pa je lažan i
složeni sud "3 je djeljivo sa 7 i 3 je vece od
7".
www.gimnazijazivinice.tk
13Disjunkcija oznacava se sa " ? " i cita "ili"
- a b a ? bF F FF T TT F TT T T
- U matematickoj logici operacija disjunkcije
odgovara neiskljucnom vezniku "ili".
www.gimnazijazivinice.tk
14Jezici za programiranje
- Kompjuter može uraditi samo ono za što je netko
dao instrukcije (program) - niz logickih i
aritmetickih operacija napisanih u jeziku
kompjutera. - Kompjuter takve instrukcije izvršava brzo i
gotovo nepogrešivo, upravo onako kako su zadane. - Kompjuter može izvršiti samo mali broj veoma
jednostavnih operacija - Oduzimanje, množenje i dijeljenje svodi se na
operacije zbrajanja i pomicanja znamenki - Kompjuter "razumije" i može izvršiti samo
instrukcije mašinskog jezika
www.gimnazijazivinice.tk
15Mašinski programski jezici
- l) Prva generacija mašinski jezici2) Druga
generacija - simbolicki (asemblerski) jezici3)
Treca generacija - jezici za programiranje
visokog nivoa4) Cetvrta generacija jezici
cetvrte generacije
www.gimnazijazivinice.tk
16Mašinski prog. jezik
- Primjer, u nekom simbolickom jeziku može se
napisati - -ADD X, Y
- Umjesto mašinske instrukcije
- -00111 001110 010101
- 00111 komanda za zbir
- X 001110
- Y 010101
www.gimnazijazivinice.tk
17Jezici za programiranje visokog nivoa
- Ada, ALGOL 60 i 68, APL, BASIC, C, COBOL,
FORTRAN, ICON, LISP, Modula-2, Pascal, PL/1,
PROLOG, SNOBOL, itd - za ucenje programiranja (LOGO, BASIC, Pascal)
- za rješavanje znanstvenih problema - algoritamski
algebarski jezici (ALGOL, APL, BASIC, FORTRAN,
Pascal) - za obradu podataka (COBOL, PL/1)
- za sistemske programe (Ada, C, Modula-2)
- za sisteme umjetne inteligencije (LISP, PROLOG)
- za obradu teksta (ICON, SNOBOL, TEX), itd
www.gimnazijazivinice.tk
18Jezici za programiranje visokog nivoa
- Jezici za programiranje visokog nivoa podvrgnuti
su standardima s propisanom sintaksom i
semantikom, cime je u velikoj mjeri postignuta
neovisnost o karakteristikama kompjutera i
operacijskog sistema na kome su instalirani.
www.gimnazijazivinice.tk
19Jezici cetvrte generacije
- Karakteristika je tih jezika da su potpuno
prilagodeni krajnjim korisnicima - neprogramerima
u principu, a primjenjuju ih veoma uspješno i
informaticari (programeri i analiticari sistema)
radi ubrzanja procesa programiranja. - Proceduralni i neproceduralni jezici
www.gimnazijazivinice.tk
20Jezici cetvrte generacije
- Proceduralni jezik specificira kako ce nešto biti
izvršeno, a neproceduralni što ce biti izvršeno,
ne ulazeci u detalje kako. - Mašinski jezik je proceduralan
- Za druge se jezike može govoriti o postotku
proceduralnosti ili neproceduralnosti - Jezici cetvrte generacije su neproceduralni, ili
su to u vecem postotku. - Suvremeni jezici trece i cetvrte generacije
kombinacija su proceduralnih i neproceduralnih
komponenti. To je, opcenito, poželjno jer se
neproceduralnim komponentama ubrzava
programiranje i pojednostavljuje upotreba jezika,
dok se proceduralnim komponentama proširuje obim
primjena jezika u rješavanju problema
www.gimnazijazivinice.tk
21Definiranje jezika za programiranje
- Jezici za programiranje daleko su jednostavniji
od prirodnih - leksicka struktura, sintakticka struktura i
semantika jezika
www.gimnazijazivinice.tk
22LEKSICKA STRUKTURA
- Definirati leksicku strukturu nekog jezika znaci
definirati alfabet i rjecnik - Alfabet je skup svih znakova koji se koriste u
pisanju - To su slova, znamenke, operacije, te drugi
znakovi. - propisano je koje rijeci treba tretirati kao
imena, a koje kao operatore
www.gimnazijazivinice.tk
23SINTAKTICKA STRUKTURA
- Pravila koja odreduju da li niz simbola pripada
jeziku ili ne, nazivaju se sintaksa jezika.
www.gimnazijazivinice.tk
24HIJERARHIJSKA STRUKTURA JEZIKA
- Jezik za programiranje može se definirati kao
notacijska tehnika (pismo) kojom se na kompaktan,
nedvosmislen i konacan nacin specificira niz
operacija koje ce biti izvršene nad nekim
objektima - podacima - Odredeni niz tih operacija napisan u nekom jeziku
naziva se program. - programpotprogramnaredbe
- izrazi___________?___________? ? ?
- podaci operacije funkcije
www.gimnazijazivinice.tk
25TIPOVI I STRUKTURE PODATAKA
- Podaci su na nivou mašinskog jezika predoceni od
znakova binarnog alfabeta , npr. 011001101 - U višim programskim jezicima nije isti tip
podataka odreden za sve vrste podataka zato se
uvodi pojam tipa podataka - - Brojcani (cjelobrojni i realni)- Logicki-
Znakovni - - Cjelobrojni tip
- Tip podataka je skup vrijednosti koje imaju
izvjesne zajednicke osobine. Najznacajnija od
njih je skup operacija koje su definirane nad
vrijednostima tog tipa.
www.gimnazijazivinice.tk
26Tipovi podataka
- Jedan od osnovnih razloga za uvodenje tipova bio
je omogucivanje kontrole korektnosti upotrebe
vrijednosti razlicitog tipa i operacija s njima u
izrazima programa. - razliciti tipovi vrijednosti zahtijevaju razlicit
broj celija za memoriranje
www.gimnazijazivinice.tk
27Cjelobrojni tip
- podskup je skupa cijelih brojeva
- operacije cjelobrojne aritmetike
- zbrajanje,
- oduzimanje,
- množenje,
- cjelobrojno dijeljenje i
- potenciranje.
- Koliko velik cjelobrojni broj možemo napisati
odredeno je duljinom pridružene memorijske
celije( 16 bitni procesori, 32bitni, 64bitni isl)
www.gimnazijazivinice.tk
28Realni tip
- podskup realnih brojeva
- definirane su standardne operacije realne
aritmetike - zbrajanje,
- oduzimanje,
- množenje,
- dijeljenje i
- potenciranje
www.gimnazijazivinice.tk
29Logicki tip
- dvije logicke konstante true (istina) i false
(neistina, laž). - definirane su Booleove operacije
- negacija,
- konjunkcija i disjunkcija,
- a u nekim jezicima i implikacija i
- još neke druge složene operacije
www.gimnazijazivinice.tk
30Znakovni tip
- Skup vrijednosti znakovnoga tipa skup svih
znakova dopuštenih u jeziku za programiranje koji
se nalaze na tastaturi (engleski alfabet) - Operacije nad znakovima operacija nastavljanja a
rezultat te operacije nije znak vec niz znakova
www.gimnazijazivinice.tk
31Imena
- Ime je rijec koja se tvori prema pravilima
leksicke strukture jezika - memorija kompjutera sastoji od celija koje mogu
pamtiti vrijednost bilo kojega tipa - Celije su razlicite duljine, od jednog bajta do
nekoliko memorijskih rijeci, ovisno o tipu
podataka. - Svaka celija ima ime koje je obicno varijabla
jezika za programiranje
www.gimnazijazivinice.tk
32Varijable i konstante
- Opcenito, podaci bilo kojega tipa mogu biti
- varijable
- konstante
- U jezicima za programiranje pojam "varijable"
koristi se za nešto što postoji s vremenom i koje
u svakom trenutku ima izvjesnu vrijednost kao u
matematici x i y. - Tip varijable odreduje iz kojeg ce se skupa
vrijednosti dodjeljivati (pridruživati) varijabli
- Konstante imaju odredene vrijednosti koje se ne
mijenjaju tokom izvršavanja programa. Na primjer,
-123 je cjelobrojna konstanta, a 0.505 realna
www.gimnazijazivinice.tk
33Strukture podataka
- Primitivne" varijable - koje predstavljaju same
sebe i dalje se ne dijele - Strukturirane varijable
- Polje
- Niz
- Slog
- Datoteka
- i skup kao strukturirani tip podataka
-
www.gimnazijazivinice.tk
34Polje
- Polje (array) je kolekcija elemenata istog tipa
(na primjer realnog ili znakovnog) objedinjenih u
k-dimenzionalnoj strukturi - A (i1, i2, ..., ik)
- Jednodimenzionalno polje B(n) naziva se vektor
- B(l), B(2), ..., B(n) ,
- dvodimenzionalno matrica C(m,n)
- C(1, 1) C(l,2) C(l,3) ... C(l,n)C(2,l) C(2,2)
C(2,3) ... C(2,n)... ... ... ... ...C(m,l)
C(m,2) C(m,3) ... C(m,n)
www.gimnazijazivinice.tk
35Niz (string)
- kolekcija znakova koja se na razini jezika za
programiranje tretira kao nedjeljiva cjelina - Zbog toga se niz znakova cesto promatra kao
primitivni tip podataka, nad kojim je najce?ce
definirana samo operacija nastavljanja - je znakova poseban slucaj jednodimenzionalnog
polja ciji su elementi znakovi - niz znakova predstavlja strukturu podataka
znakovnog tipa
www.gimnazijazivinice.tk
36Slog (record)
- Struktura podataka koju cini uredena kolekcija
opcenito razlicitih primitivnih ili
strukturiranih tipova podataka - Nad komponentama sloga dopuštene su operacije
suglasno njihovom tipu - Svaka komponenta sloga ima jedinstveno ime kojim
se na nju upucuje. - Npr. Slog je dnevnik ucenika sa poljima ime,
prezime, adresa, matematika, fizika itd. Niz se
ovdje koristi za polja koja su znakovnog tipa za
ime, prezime isl.
www.gimnazijazivinice.tk
37Datoteka (file)
- organizirana kolekcija zapisa, obicno pohranjena
na sekundarnoj memoriji kompjutera - sekvencijalan (u nizu)
- datoteke s direktnim pristupom zapisima
- Zapis je podatak primitivnog ili strukturiranog
tipa.
www.gimnazijazivinice.tk
38Skup (set)
- uredena kolekcija podataka istog primitivnog tipa
- Na nivou jezika za programiranje promatra se kao
nedjeljiva cjelina nad kojim su definirane
skupovne operacije (unija, presjek i razlika).
www.gimnazijazivinice.tk
39Izrazi
- Izrazi nisu naredbe vec sintakticke strukture
koje, opcenito, sadrže operande (varijable,
konstante i funkcije) i operacije - aritmeticke,
- znakovne i
- logicke izraze
www.gimnazijazivinice.tk
40Naredbe
- Elementarne akcije izracunavanja, dodjeljivanja i
kontrole redoslijeda izracunavanja specificiraju
se naredbama jezika za programiranje - primitivne (jednostavne)
- strukturirane (složene) naredbe - Strukturirane
naredbe su, na primjer, naredbe WHILE i REPEAT
petlje u Pascalu - Ova podjela odraz je sintakse naredbi. Osim nje,
ponekad se naredbe, na temelju svoga znacenja,
dijele na - naredbe za izracunavanje
- naredbe za kontrolu toka izvršavanja
- deklarativne naredbe
- ulazno/izlazne naredbe, itd.
www.gimnazijazivinice.tk
41Potprogrami
- Potprogrami su takoder strukturirane naredbe koje
sadrže grupu primitivnih i strukturiranih naredbi
- cjeline po svojoj funkciji i operacijama koje
obavljaju. - procedure i
- funkcijske potprograme
www.gimnazijazivinice.tk
42PROGRAMI
- Najviša hijerarhijska struktura elemenata
programa - Program sada možemo definirati kao niz naredbi,
primitivnih i složenih, kojim se opisuje postupak
ulaza, izracunavanja i izlaza podataka i
rezultata izracunavanja.
www.gimnazijazivinice.tk
43Semantika jezika
- Kad se zna da je naredba sintakticki korektna
postavlja se pitanje Šta je njeno znacenje? - Interpretativna semantika neke naredbe jezika za
programiranje jest ucinak njezinog izvršenja na
odredenom kompjuteru. - N 55 je dodjeljivanje vrijednosti (broja) 55
varijabli s imenom N - semantika naredbe
- Write (N)
- bit ce ispis vrijednosti varijable N na monitoru.
www.gimnazijazivinice.tk
44Osnovna struktura Pascala
- Leksicka struktura
- velika i mala slova engl. alfabeta A B ... Y Z a
b ... y z - brojke 0 1 ... 8 9
- posebni znakovi - / lt gt ( ) .
' _ , _at_ - Alfabet Pascala klase rijeci
- rezervirane rijeci
- imena
- standardna imena
- brojevi
- nizovi znakova
- posebni simboli
www.gimnazijazivinice.tk
45Rezervirane rijeci
- LEKSICKA PRAVILA
- Rijeci se pišu kompaktno, bez razmaka. Jedino se
u nizu znakova razmak smatra dijelom rijeci. - Znacenje rijeci koje sadrže velika slova ostaje
nepromijenjeno ako se umjesto velikih slova
napišu ista takva mala slova. Dakako, to ne
vrijedi za nizove
www.gimnazijazivinice.tk
46Promjenljive i konstante
- Koliku vrijednost ima neka promjenljiva
neposredno nakon deklaracije? - Program Opasnagreska (i,o)
- Var broj integer
- begin
- writeln (broj)
- End.
- Program IspravnaVerzija (i,o)
- Var broj integer
- begin
- broj5 dodjeljivanje vrijednosti
promjenljivoj broj - writeln (broj)
- End.
47Promjenljive i konstante
- Program ObimKruga (i,o)
- Const pi3.14ovo je imenovana konstanta
- Var o,rreal
- begin
- writeln (unesite podatak za poluprecnik
kruga) - ovo pod apostrofima u naredbi writeln je
neimenovana konstanta - readln (r)
- o2rpi
- Writeln (Obim kruga je , o34)
- Readln
- End.
- Pi3.14
48Cjelobrojni izrazi
- sabiranje cijelih brojeva za rezultat daje
cijeli broj - - Oduzimanje cijelih brojeva za rezultat daje
cijeli broj - Množenje cijelih brojeva za rezultat daje
cijeli broj - DIV izraz za dijelnje cijelih brojeva za
rezultat daje cijeli broj - Npr. 48 div 5 (rezultat ove operacije je 9)
- MOD izraz za racunanje ostatka od dijeljenja
cijelih brojeva a za rezultat daje cijeli broj - Npr. 48 mod 5 (rezultat ove operacije je 3)
- (52)7 sqr (4) (vrijednost ovog izraza je
(52)x7 42 65 - Cjelobrojne funkcije
- Abs(x)
- Sqr(x)
49Primjer izraza
- Program primjerizraza (i,o)
- Var a,b,c real
- Begin
- A5
- B3
- C (B2)2
- B(C3)/a
- Writeln(a23)
- Writeln(b2)
- Writeln(c)
- Readln
- End.
- (nova vrijednost upisana u promjenljivu b briše
predhodnu vrijednost koja je bila u njoj
zapamcena)
50- Program zdravomajstore (i,o)
- Begin
- Writeln(Zdravo kompjuteru!)
- Writeln(Pozdravlja te grupa izborne nastave iz
informatike) - Readln
- End.
51PrimjerPrekoracenja
- Program prekoracenje (i,o)
- Var a,b,c integer
- Begin
- a1235
- B2331
- C a2b
- Writeln(c)
- Readln
- End.
- Ovdje je prekoracen dozvoljeni opseg za cijeli
broj koji zavisi od racunara, 16 bitni procesor,
32 bitni procesor ili 64bitni procesor.
52Realni izrazi
- sabiranje
- - Oduzimanje
- Množenje
- / Dijeljenje
- Funkcije sa realnim varijablama
- Sqrt (x) - Kvadratni korijen od x
- Ln(x) prirodni logaritam od x (po bazi
e2,71828) - Exp (x) eksponencijalna funkcija ex
- Sin (x) sinus od x (x u radijanima)
- Cos (x) cos od x (x u radijanima)
- Atan(x)- arcustangens od x (x u radijanima)
53Realni izrazi
Program realni izraz Var x,y,z,iireal Begin w
riteln(unesite vrijednosti za varijable) Readl
n(x) Readln(y) Readln(z) i(x/y
z)/(x/y z/(xy) 1) Writeln (ispiši
vrijednost za izracunatu varijablu
i,i32) Readln End.
54Testiranje naucenog
- Šta su imenovane konstante, kako se deklariraju i
cemu služe? - Koliku vrijednost ima neka promjenljiva
neposredno nakon deklaracije? - Kako se nekoj promjenljivoj može dodijeliti
vrijednost? - Kako se tvore cjelobrojni a kako realni izrazi?
- Šta je prekoracenje opsega?
55Testiranje naucenog
- Neki od navedenih izraza nisu ispravno napisani
za Pascal. Koji? - X4/ sqrt (x-2)
- X-2
- X/2
- 2-//3))2
- Sqrt 3
- 2(3(45
- 23(45)
- Sqr(sqrt(3))
- 2(3(45))
56Testiranje naucenog
- Izracunati koliko je
- 372 div 5
- 372 mod 5
- 372 / 5
- 1 div 100
- 1 mod 100
- 1 / 100
- 2.38e2 abs (2-sqrt (3) sqr ( 4 ))
- Kako bi u najkracem obliku napisali matematicki
izraz - ( x y 3)8
- Koristite x8 (x2)22
57Testiranje naucenog
- Prevedite slijedece izraze iz Pascala u
standardnu matematsku notaciju - Sqrt(x)/y
- x3x-3
- 4.12e3a
- 2/(xabs(1-x))
- Sqrt (sqr(a) sqr (b))
- (a2) / ( 3 b/(1b))
- Sqr (sqrt (a) sqrt (b))
- (x 3) / (2 x/ ( 1x))
- 2/sqrt ( 1 sqrt ( 1x ) / 2)
58Testiranje naucenog
- Prevedite slijedece izraze iz standardne
matematske notacije u ispravan Pascalov izraz - X3
- Tg (x y )
- 9,2 . (3 . 104 4,44 . 103 )
-
-
- 23-5sin(x2 ) x 1
- Log2 ( x 1 )
- x x3 -1
- Cemu služe funkcije pred i succ?
- To su izrazi nad znakovima ( slovima)
- Funkcije
- pred (predhodnik) vraca neposredno predhodnika
- Succ (sljedbenik) vraca neposrednog sljedbenika
svog argumenta - Koji su logicki irazi?
- jednakoltgt razlicitolt manjelt manje ili
jednakogt vecegt vece ili jednako - i funkcijenegacija, konjunkcija i disjunkcija,
59Testiranje naucenog
- Ukoliko cjelobrojne promjenljive x i y imaju
redom vrijednosti 3 i 8, koje vrijednosti imaju
slijedeci izrazi - X gt 5
- (xgt5) and (ylt7)
- (xgt5) or (ylt7)
- Not (xgt5)
60Hvala za pažnju!
Pripremio prof. Ilija Lucic dipl.ing.el.