ju gimnazija Živinice informatika
DESCRIPTION
JU Gimnazija Živinice Informatika. Pascal i programiranje. Pripremio: prof. Ilija Lučić dipl.ing.el. Pascal. Prva verzija jezika Pascal pojavila se 1968. godine Formalno je standardizirana tek 1983 Najpopularniji i najrasprostranjeniji je Turbo Pascal, trenutačno ver. 7.0, tvrtke BORLAND. - PowerPoint PPT PresentationTRANSCRIPT
Paskal i programiranje - Ilija Lučić
1
Pascal
Paskal i programiranje - Ilija Lučić
2
Prva verzija jezika Pascal pojavila se 1968. godine Formalno je standardizirana tek 1983Najpopularniji i najrasprostranjeniji je Turbo Pascal,
trenutačno ver. 7.0, tvrtke BORLAND
Namjena Pascala
Paskal i programiranje - Ilija Lučić
3
Primarna je namjena Pascala u rješavanju problema "algoritamske” prirode strukturnoga programiranja primjenom više tipova i struktura podataka
Osnovne karakteristike Pascala
Paskal i programiranje - Ilija Lučić
4
Obavezno je deklariranje svih varijabli programa Odredene ključne rijeci, na primjer BEGIN, IF, THEN,
WHILE, "rezervirane" su i ne smiju se koristiti kao imena.
Standardni tipovi podataka su realni, cjelobrojni, logički i znakovni
Standardne strukture podataka su polja, slogovi, skupovi i datoteke
Procedure i funkcijski potprogrami mogu se pozivati rekurzivno
Osnovne karakteristike Pascala-proširenja za Turbo Pascal
Paskal i programiranje - Ilija Lučić
5
Uvedena je standardna struktura niz znakova (string) s odgovarajucim funkcijama i procedurama
U dijelu deklaracija i definicija moguće 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. )
Mogućnost rada s objektima (kao u Vizual Basic-u )
Primjena Turbo Pascala
Paskal i programiranje - Ilija Lučić
6
Primjene u tehnici, ekonomiji, matematici, fizici, hemiji, društveno-humanističkim znanostima, itd;
izradu sistemskog softvera; izradu aplikativnog softvera (grafički paketi, baze
podataka, obrada teksta, upravljanje procesima, itd
Osnove Pascala
Paskal i programiranje - Ilija Lučić
7
Učenje 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 treće generacije, Pascal najčešce demotivira nekim svojim formalizmima.
Programiranje-posebna, ne baš laka disciplinaOvladavanje Pascalom zahtijeva postupnost, temeljitost i
strpljivost u radu Također podrazumijeva predznanje iz određenih područja
matematike i strog, formalan pristup.
Matematičke osnove
Paskal i programiranje - Ilija Lučić
8
Izučavanje Pascala i programiranja zahtijeva strog, formalan pristup. Također podrazumijeva solidno predznanje iz matematike, posebno matematičke logike i teorije skupova. Zbog toga ovo poglavlje sadrži kratak pregled teorije skupova i matematičke logike.
Skupovi
Paskal i programiranje - Ilija Lučić
9
Skup- kolekcija elemenata – npr. Skup dana u sedmici su slijedeći elementi: Ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedjelja
RelacijeFunkcije
Matematička logika
Paskal i programiranje - Ilija Lučić
10
Elementarni sud= jednako
<> različito< manje<= manje ili jednako> veće>= veće ili jednako
Na primjer, relacijski izraz (elementarni sud) "9 > 5" čitat ćemo "9 je veće od 5".
Svi elementarni sudovi moraju imati jedno i samo jedno svojstvo:"biti istinit" ili "biti lažan"
Matematička logika
Paskal i programiranje - Ilija Lučić
11
Od elementarnih sudova moguće je, uz pomoć nekoliko logičkih operacija, graditi složene sudove.
Negacija, konjukcija, disjunkcija, implikacijaI složeni sud biti će istinit ili lažan Ako su "a" i "b" sudovi, onda je a^b novi složeni sud ili
konjunkcija sudova "a" i "b". a b a ^ b
F F FF T FT F FT T T
T-trueF-folse
Konjukcija
Paskal i programiranje - Ilija Lučić
12
Operacija konjunkcije po smislu približno odgovara vezniku "i". Na primjer, elementarni sudovi "6 je djeljivo sa 3", "10 je veće od 5" istiniti su, pa je istinita i njihova konjunkcija "6 je djeljivo sa 3 i 10 je veće od 5".
Međutim, elementarni sudovi "3 je djeljivo sa 7" i "3 je veće od 7" lažni su, pa je lažan i složeni sud "3 je djeljivo sa 7 i 3 je veće od 7".
Disjunkcija označava se sa " ٧ " i čita "ili"
Paskal i programiranje - Ilija Lučić
13
a b a ٧ bF F FF T TT F TT T T
U matematičkoj logici operacija disjunkcije odgovara neisključnom vezniku "ili".
Jezici za programiranje
Paskal i programiranje - Ilija Lučić
14
Kompjuter može uraditi samo ono za što je netko dao instrukcije (program) - niz logičkih i aritmetičkih 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
Mašinski programski jezici
Paskal i programiranje - Ilija Lučić
15
l) Prva generacija – mašinski jezici2) Druga generacija - simbolički (asemblerski) jezici3) Treća generacija - jezici za programiranje visokog nivoa4) Četvrta generacija – jezici četvrte generacije
Mašinski prog. jezik
Paskal i programiranje - Ilija Lučić
16
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
Jezici za programiranje visokog nivoa
Paskal i programiranje - Ilija Lučić
17
Ada, ALGOL 60 i 68, APL, BASIC, C, COBOL, FORTRAN, ICON, LISP, Modula-2, Pascal, PL/1, PROLOG, SNOBOL, itd
za učenje 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
Jezici za programiranje visokog nivoa
Paskal i programiranje - Ilija Lučić
18
Jezici za programiranje visokog nivoa podvrgnuti su standardima s propisanom sintaksom i semantikom, čime je u velikoj mjeri postignuta neovisnost o karakteristikama kompjutera i operacijskog sistema na kome su instalirani.
Jezici cetvrte generacije
Paskal i programiranje - Ilija Lučić
19
Karakteristika je tih jezika da su potpuno prilagođeni krajnjim korisnicima - neprogramerima u principu, a primjenjuju ih veoma uspješno i informatičari (programeri i analitičari sistema) radi ubrzanja procesa programiranja.
Proceduralni i neproceduralni jezici
Jezici četvrte generacije
Paskal i programiranje - Ilija Lučić
20
Proceduralni jezik specificira kako će 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 četvrte generacije su neproceduralni, ili su to u većem
postotku. Suvremeni jezici treće i četvrte generacije kombinacija su
proceduralnih i neproceduralnih komponenti. To je, općenito, 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
Definiranje jezika za programiranje
Paskal i programiranje - Ilija Lučić
21
Jezici za programiranje daleko su jednostavniji od prirodnih
leksička struktura, sintaktička struktura i semantika jezika
LEKSIČKA STRUKTURA
Paskal i programiranje - Ilija Lučić
22
Definirati leksičku strukturu nekog jezika znaci definirati alfabet i rječnik
Alfabet je skup svih znakova koji se koriste u pisanju To su slova, znamenke, operacije, te drugi znakovi. propisano je koje riječi treba tretirati kao imena, a koje
kao operatore
SINTAKTIČKA STRUKTURA
Paskal i programiranje - Ilija Lučić
23
Pravila koja odreduju da li niz simbola pripada jeziku ili ne, nazivaju se sintaksa jezika.
HIJERARHIJSKA STRUKTURA JEZIKA
Paskal i programiranje - Ilija Lučić
24
Jezik za programiranje može se definirati kao notacijska tehnika (pismo) kojom se na kompaktan, nedvosmislen i konačan nacin specificira niz operacija koje ce biti izvršene nad nekim objektima - podacima
Odredeni niz tih operacija napisan u nekom jeziku naziva se program. program
potprogram
naredbe
izrazi
___________?___________? ? ?
podaci operacije funkcije
TIPOVI I STRUKTURE PODATAKA
Paskal i programiranje - Ilija Lučić
25
Podaci su na nivou mašinskog jezika predočeni od znakova binarnog alfabeta , npr. 011001101
U višim programskim jezicima nije isti tip podataka određen za sve vrste podataka zato se uvodi pojam tipa podataka:- Brojčani (cjelobrojni i realni)- Logički- Znakovni- Cjelobrojni tip
Tip podataka je skup vrijednosti koje imaju izvjesne zajedničke osobine. Najznačajnija od njih je skup operacija koje su definirane nad vrijednostima tog tipa.
Tipovi podataka
Paskal i programiranje - Ilija Lučić
26
Jedan od osnovnih razloga za uvođenje tipova bio je omogućivanje kontrole korektnosti upotrebe vrijednosti različitog tipa i operacija s njima u izrazima programa.
različiti tipovi vrijednosti zahtijevaju različit broj ćelija za memoriranje
Cjelobrojni tip
Paskal i programiranje - Ilija Lučić
27
podskup je skupa cijelih brojeva operacije cjelobrojne aritmetike:
zbrajanje, oduzimanje, množenje, cjelobrojno dijeljenje i potenciranje.
Koliko velik cjelobrojni broj možemo napisati određeno je duljinom pridružene memorijske celije( 16 bitni procesori, 32bitni, 64bitni isl)
Realni tip
Paskal i programiranje - Ilija Lučić
28
podskup realnih brojeva definirane su standardne operacije realne aritmetike:
zbrajanje, oduzimanje, množenje, dijeljenje i potenciranje
Logicki tip
Paskal i programiranje - Ilija Lučić
29
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
Znakovni tip
Paskal i programiranje - Ilija Lučić
30
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
Imena
Paskal i programiranje - Ilija Lučić
31
Ime je riječ koja se tvori prema pravilima leksičke strukture jezika memorija kompjutera sastoji od ćelija koje mogu pamtiti
vrijednost bilo kojega tipa Ćelije su razlicite duljine, od jednog bajta do nekoliko
memorijskih riječi, ovisno o tipu podataka. Svaka ćelija ima ime koje je obično varijabla jezika za
programiranje
Varijable i konstante
Paskal i programiranje - Ilija Lučić
32
Općenito, 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 određuje iz kojeg će se skupa vrijednosti dodjeljivati (pridruživati) varijabli
Konstante imaju određene vrijednosti koje se ne mijenjaju tokom izvršavanja programa. Na primjer, -123 je cjelobrojna konstanta, a 0.505 realna
Strukture podataka
Paskal i programiranje - Ilija Lučić
33
“Primitivne" varijable - koje predstavljaju same sebe i dalje se ne dijele
Strukturirane varijable Polje Niz Slog Datoteka i skup kao strukturirani tip podataka
Polje
Paskal i programiranje - Ilija Lučić
34
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)
Niz (string)
Paskal i programiranje - Ilija Lučić
35
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
Slog (record)
Paskal i programiranje - Ilija Lučić
36
Struktura podataka koju čini uređena kolekcija općenito 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 upućuje.
Npr. Slog je dnevnik učenika sa poljima ime, prezime, adresa, matematika, fizika itd. Niz se ovdje koristi za polja koja su znakovnog tipa za ime, prezime isl.
Datoteka (file)
Paskal i programiranje - Ilija Lučić
37
organizirana kolekcija zapisa, obicno pohranjena na sekundarnoj memoriji kompjutera sekvencijalan (u nizu) datoteke s direktnim pristupom zapisima
Zapis je podatak primitivnog ili strukturiranog tipa.
Skup (set)
Paskal i programiranje - Ilija Lučić
38
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).
Izrazi
Paskal i programiranje - Ilija Lučić
39
Izrazi nisu naredbe vec sintakticke strukture koje, opcenito, sadrže operande (varijable, konstante i funkcije) i operacije aritmeticke, znakovne i logicke izraze
Naredbe
Paskal i programiranje - Ilija Lučić
40
Elementarne akcije izračunavanja, dodjeljivanja i kontrole redoslijeda izračunavanja 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 značenja, dijele na: naredbe za izračunavanje naredbe za kontrolu toka izvršavanja deklarativne naredbe ulazno/izlazne naredbe, itd.
Potprogrami
Paskal i programiranje - Ilija Lučić
41
Potprogrami su također strukturirane naredbe koje sadrže grupu primitivnih i strukturiranih naredbi - cjeline po svojoj funkciji i operacijama koje obavljaju. procedure i funkcijske potprograme
PROGRAMI
Paskal i programiranje - Ilija Lučić
42
Najviša hijerarhijska struktura elemenata programa Program sada možemo definirati kao niz naredbi,
primitivnih i složenih, kojim se opisuje postupak ulaza, izračunavanja i izlaza podataka i rezultata izračunavanja.
Semantika jezika
Paskal i programiranje - Ilija Lučić
43
Kad se zna da je naredba sintaktički korektna postavlja se pitanje: Šta je njeno značenje?
Interpretativna semantika neke naredbe jezika za programiranje jest učinak njezinog izvršenja na određenom kompjuteru. N := 55 je dodjeljivanje vrijednosti (broja) 55 varijabli s
imenom N semantika naredbe
Write (N)
bit će ispis vrijednosti varijable N na monitoru.
Osnovna struktura Pascala
Paskal i programiranje - Ilija Lučić
44
Leksička struktura velika i mala slova engl. alfabeta: A B ... Y Z a b ... y z brojke: 0 1 ... 8 9 posebni znakovi: + - * / = < > ( ) [ ] { } . : ; ' _ , ^ @ $ #
Alfabet Pascala: klase riječi rezervirane riječi imena standardna imena brojevi nizovi znakova posebni simboli
Rezervirane rijeci
Paskal i programiranje - Ilija Lučić
45
LEKSIČKA PRAVILA :Riječi se pišu kompaktno, bez razmaka. Jedino se u
nizu znakova razmak smatra dijelom riječi. Značenje riječi koje sadrže velika slova ostaje
nepromijenjeno ako se umjesto velikih slova napišu ista takva mala slova. Dakako, to ne vrijedi za nizove
Promjenljive 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 broj:=5; {dodjeljivanje vrijednosti promjenljivoj broj}writeln (broj);
End.
Promjenljive i konstante
Program ObimKruga (i,o):Const pi=3.14;{ovo je imenovana konstanta}Var o,r:real;
beginwriteln (‘unesite podatak za poluprečnik kruga’);
{ovo pod apostrofima u naredbi writeln je neimenovana konstanta}readln (r);o:=2*r*pi;Writeln (‘Obim kruga je: ‘, o:3:4);
ReadlnEnd.Pi=3.14
Cjelobrojni 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 brojDIV izraz za dijelnje cijelih brojeva za rezultat daje cijeli brojNpr. 48 div 5 (rezultat ove operacije je 9)MOD izraz za računanje ostatka od dijeljenja cijelih brojeva
a za rezultat daje cijeli broj Npr. 48 mod 5 (rezultat ove operacije je 3)(5+2)*7 + sqr (4) (vrijednost ovog izraza je (5+2)x7 +42 =65Cjelobrojne funkcije Abs(x)Sqr(x)
Primjer izraza
Program primjerizraza (i,o);Var a,b,c: real;Begin
A:=5;B:=3;C:= (B+2)*2;B:=(C+3)/a;Writeln(a:2:3);Writeln(b:2);Writeln(c);
ReadlnEnd.(nova vrijednost upisana u promjenljivu b briše predhodnu vrijednost koja je
bila u njoj zapamćena)
Program zdravomajstore (i,o);
BeginWriteln(‘Zdravo kompjuteru!’);
Writeln(‘Pozdravlja te grupa izborne nastave iz informatike’);
Readln
End.
Paskal i programiranje - Ilija Lučić
50
PrimjerPrekoračenja
Program prekoračenje (i,o);Var a,b,c: integer;Begin
a:=1235;B:=2331;C:= a*2*bWriteln(c);
ReadlnEnd.Ovdje je prekoračen dozvoljeni opseg za cijeli broj koji zavisi od
računara, 16 bitni procesor, 32 bitni procesor ili 64bitni procesor.
Realni izrazi
+ sabiranje- Oduzimanje * Množenje / DijeljenjeFunkcije sa realnim varijablamaSqrt (x) - Kvadratni korijen od xLn(x) – prirodni logaritam od x (po bazi e=2,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)
Realni izrazi
Program realni izraz;
Var: x,y,z,i:ireal;
Begin
writeln(‘unesite vrijednosti za varijable’);
Readln(x);
Readln(y);
Readln(z);
i:=(x/y + z)/(x/y – z/(x+y) + 1);
Writeln (‘ispiši vrijednost za izračunatu varijablu i:’,i:3:2);
Readln
End.
Testiranje naučenog
1. Šta su imenovane konstante, kako se deklariraju i ćemu služe?
2. Koliku vrijednost ima neka promjenljiva neposredno nakon deklaracije?
3. Kako se nekoj promjenljivoj može dodijeliti vrijednost?
4. Kako se tvore cjelobrojni a kako realni izrazi?
5. Šta je prekoračenje opsega?
Paskal i programiranje - Ilija Lučić
54
Testiranje naučenog
Neki od navedenih izraza nisu ispravno napisani za Pascal. Koji?1. X+4/ sqrt (x-2)
2. X*-2
3. X*/2
4. 2*-+//3))2
5. Sqrt 3
6. 2*(3+(4*5
7. 2*[3*(4*5)]
8. Sqr(sqrt(3))
9. 2*(3*(4*5))
Paskal i programiranje - Ilija Lučić
55
10.(((x+y)))
Testiranje naučenog
Izračunati koliko je:1. 372 div 5
2. 372 mod 5
3. 372 / 5
4. 1 div 100
5. 1 mod 100
6. 1 / 100
7. 2.38e2 +abs (2-sqrt (3) + sqr ( 4 ))
8. Kako bi u najkraćem obliku napisali matematički izraz
( x + y – 3)8
Koristite x8 =[(x2)2]2
Paskal i programiranje - Ilija Lučić
56
Testiranje naučenog
Prevedite slijedeće izraze iz Pascala u standardnu matematsku notaciju Sqrt(x)/y x+3x-3 4.12e3*a 2/(x+abs(1-x)) Sqrt (sqr(a) + sqr (b)) (a+2) / ( 3 + b/(1+b)) Sqr (sqrt (a) + sqrt (b)) (x + 3) / (2 + x/ ( 1+x)) 2/sqrt ( 1 + sqrt ( 1+x ) / 2)
Paskal i programiranje - Ilija Lučić
57
• a + b / a – b• 3.32e3*x
Testiranje naučenog
Prevedite slijedeće izraze iz standardne matematske notacije u ispravan Pascalov izraz X3
Tg (x + y ) 9,2 . (3 . 104 – 4,44 . 103 ) 2:{3-5[sin(x2 ) – x]} + 1 Log2 ( x + 1 ) |x + | x3 -1||
Paskal i programiranje - Ilija Lučić
58
)33( 3233babbaa
Čemu služe funkcije pred i succ?
•To su izrazi nad znakovima ( slovima)•Funkcije
•pred (predhodnik) vraća neposredno predhodnika•Succ (sljedbenik) vraća neposrednog sljedbenika svog argumenta
Koji su logički irazi? = jednako<> različito< manje<= manje ili jednako> veće>= veće ili jednako i funkcije:negacija, konjunkcija i disjunkcija,
Testiranje naučenog
Ukoliko cjelobrojne promjenljive x i y imaju redom vrijednosti 3 i 8, koje vrijednosti imaju slijedeći izrazi: X > 5 (x>5) and (y<7) (x>5) or (y<7) Not (x>5)
Paskal i programiranje - Ilija Lučić
59
Paskal i programiranje - Ilija Lučić
60