600 likes | 834 Views
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.
E N D
JU Gimnazija Živinice Informatika Pascal i programiranje Pripremio: prof. Ilija Lučić dipl.ing.el. Paskal i programiranje - Ilija Lučić
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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Namjena Pascala • Primarna je namjena Pascala u rješavanju problema • "algoritamske” prirode • strukturnoga programiranja • primjenom više tipova i struktura podataka www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Osnovne karakteristike Pascala • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Osnovne karakteristike Pascala-proširenja za Turbo Pascal • 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 ) www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Primjena Turbo Pascala • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Osnove Pascala • 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 disciplina • Ovladavanje Pascalom zahtijeva postupnost, temeljitost i strpljivost u radu • Također podrazumijeva predznanje iz određenih područja matematike i strog, formalan pristup. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Matematičke osnove • 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Skupovi • Skup- kolekcija elemenata – npr. Skup dana u sedmici su slijedeći elementi: Ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedjelja • Relacije • Funkcije www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Matematička logika • 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" www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Matematička logika • Od elementarnih sudova moguće je, uz pomoć nekoliko logičkih operacija, graditi složene sudove. • Negacija, konjukcija, disjunkcija, implikacija • I 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 ^ bF F FF T FT F FT T T • T-true • F-folse www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Konjukcija • 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". www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Disjunkcija označava se sa " ٧ " i čita "ili" • a b a ٧ bF F FF T TT F TT T T • U matematičkoj logici operacija disjunkcije odgovara neisključnom vezniku "ili". www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Jezici za programiranje • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Mašinski programski jezici • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Maš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 Paskal i programiranje - Ilija Lučić
Jezici 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 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Jezici za programiranje visokog nivoa • 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Jezici cetvrte generacije • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Jezici četvrte generacije • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Definiranje jezika za programiranje • Jezici za programiranje daleko su jednostavniji od prirodnih • leksička struktura, sintaktička struktura i semantika jezika www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
LEKSIČKA STRUKTURA • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
SINTAKTIČKA STRUKTURA • Pravila koja odreduju da li niz simbola pripada jeziku ili ne, nazivaju se sintaksa jezika. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
HIJERARHIJSKA STRUKTURA JEZIKA • 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. • programpotprogramnaredbe izrazi___________?___________? ? ? podaci operacije funkcije www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
TIPOVI I STRUKTURE PODATAKA • 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Tipovi podataka • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Cjelobrojni tip • 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) www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Realni tip • podskup realnih brojeva • definirane su standardne operacije realne aritmetike: • zbrajanje, • oduzimanje, • množenje, • dijeljenje i • potenciranje www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Logicki 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 Paskal i programiranje - Ilija Lučić
Znakovni 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 Paskal i programiranje - Ilija Lučić
Imena • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Varijable i konstante 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Strukture 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 Paskal i programiranje - Ilija Lučić
Polje • 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 Paskal i programiranje - Ilija Lučić
Niz (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 Paskal i programiranje - Ilija Lučić
Slog (record) 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Datoteka (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 Paskal i programiranje - Ilija Lučić
Skup (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 Paskal i programiranje - Ilija Lučić
Izrazi • 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 Paskal i programiranje - Ilija Lučić
Naredbe • 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Potprogrami • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
PROGRAMI • 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Semantika jezika • 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. www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Osnovna struktura Pascala • 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
Rezervirane rijeci 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 www.gimnazijazivinice.tk Paskal i programiranje - Ilija Lučić
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; begin writeln (‘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); Readln End. 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 broj DIV izraz za dijelnje cijelih brojeva za rezultat daje cijeli broj Npr. 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 =65 Cjelobrojne 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); Readln End. (nova vrijednost upisana u promjenljivu b briše predhodnu vrijednost koja je bila u njoj zapamćena)
Program zdravomajstore (i,o); Begin Writeln(‘Zdravo kompjuteru!’); Writeln(‘Pozdravlja te grupa izborne nastave iz informatike’); Readln End. Paskal i programiranje - Ilija Lučić