Transcript Pascal i programiranje
Osnove Pascala
preuzeto sa sajta www.gimnazijazivinice.tk
1 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. Paskal
Primjena Turbo Pascala
2 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 Paskal
Semantika jezika
3 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 efekt njezinog izvršenja na određenom računaru. N := 55 je dodjeljivanje vrijednosti (broja) 55 varijabli s imenom N semantika naredbe Write (N) biće ispis vrijednosti varijable N na monitoru.
Paskal
Jezici za programiranje
4 računar može uraditi samo ono za što je netko dao instrukcije (program) - niz logičkih i aritmetičkih operacija računar takve instrukcije izvršava brzo i gotovo nepogrešivo, upravo onako kako su zadane. računar može izvršiti samo mali broj veoma jednostavnih operacija Oduzimanje, množenje i dijeljenje svodi se na operacije sabiranja i pomicanja cifri računar "razumije" i može izvršiti samo instrukcije mašinskog jezika Paskal
Definisanje jezika za programiranje
5 Jezici za programiranje daleko su jednostavniji od prirodnih leksička struktura, sintaktička struktura i semantika jezika Paskal
LEKSIČKA STRUKTURA
6 definisati leksičku strukturu nekog jezika znači definisati alfabet i rječnik Alfabet je skup svih znakova koji se koriste u pisanju To su slova, cifre, operacije, te drugi znakovi. propisano je koje riječi treba tretirati kao imena, a koje kao operatore Paskal
SINTAKTIČKA STRUKTURA
7 Pravila koja odreduju da li niz simbola pripada jeziku ili ne, nazivaju se sintaksa jezika. Paskal
Skupovi
8 Skup- kolekcija elemenata – npr. Skup dana u sedmici su slijedeći elementi: Ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedjelja Relacije Funkcije Paskal
TIPOVI I STRUKTURE PODATAKA
9 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 - slovnini - Cjelobrojni tip Tip podataka je skup vrijednosti koje imaju izvjesne zajedničke osobine. Najznačajnija od njih je skup operacija koje su definisane nad vrijednostima tog tipa. Paskal
Tipovi podataka
10 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 memorisanje Paskal
HIJERARHIJSKA STRUKTURA JEZIKA
11 Jezik za programiranje može se definisati 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 Određen i niz tih operacija napisan u nekom jeziku naziva se program.
program potprogram naredbe izrazi ___________?___________
? ? ?
podaci operacije funkcije
Paskal
Cjelobrojni tip
12 podskup je skupa cijelih brojeva operacije cjelobrojne aritmetike: sabiranje, oduzimanje, množenje, cjelobrojno dijeljenje i potenciranje. Koliko velik cjelobrojni broj možemo napisati određeno je dužinom pridružene memorijske celije( 16 bitni procesori, 32bitni, 64bitni isl) Paskal
Realni tip
13 podskup realnih brojeva definisane su standardne operacije realne aritmetike: sabiranje, oduzimanje, množenje, dijeljenje i potenciranje Paskal
Logički tip
14 dvije logičke konstante: true (istina) i false (neistina, laž). definisane su Booleove operacije: negacija, konjunkcija i disjunkcija, a u nekim jezicima i implikacija i još neke druge složene operacije Paskal
Slovni (znakovni) tip
15 Skup vrijednosti slovnoga tipa : skup svih znakova – slova dopuštenih u jeziku za programiranje koji se nalaze na tastaturi (engleski alfabet) Operacije nad znakovima: operacija nastavljanja a rezultat te operacije nije znak već niz znakova Paskal
Imena
16 Ime je riječ koja se tvori prema pravilima leksičke strukture jezika memorija računara sastoji se od ćelija koje mogu pamtiti vrijednost bilo kojega tipa Ćelije su razlicite dužine, od jednog bajta do nekoliko memorijskih riječi, zavisno o tipu podataka. Svaka ćelija ima ime koje je obično varijabla jezika za programiranje Paskal
Varijable i konstante
17 Uopšte, 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 Paskal
Strukture podataka
18 “Primitivne" varijable - koje predstavljaju same sebe i dalje se ne dijele Strukturirane varijable Polje Niz Slog Datoteka i skup kao strukturirani tip podataka Paskal
Polje
19 Polje (array) je kolekcija elemenata istog tipa (na primjer realnog ili slovninog) 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) Paskal
Niz (string)
20 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 definisana samo operacija nastavljanja je znakova poseban slucaj jednodimenzionalnog polja ciji su elementi znakovi niz znakova predstavlja strukturu podataka slovninog tipa Paskal
Slog (record)
21 Struktura podataka koju čini uređena kolekcija uopšte 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 slovninog tipa za ime, prezime isl.
Paskal
Datoteka (file)
22 organizirana kolekcija zapisa, obicno pohranjena na sekundarnoj memoriji računara sekvencijalan (u nizu) datoteke s direktnim pristupom zapisima Zapis je podatak primitivnog ili strukturiranog tipa. Paskal
Skup (set)
23 uređena kolekcija podataka istog primitivnog tipa Na nivou jezika za programiranje promatra se kao nedjeljiva cjelina nad kojim su definisane skupovne operacije (unija, presjek i razlika ). Paskal
Izrazi
24 Izrazi nisu naredbe već sintaksne strukture koje, uopšteno, sadrže operande (varijable, konstante i funkcije) i operacije aritmetičke, znakovne (slovne) i logičke izraze Paskal
Naredbe
25 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.
Paskal
Potprogrami
26 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 Paskal
PROGRAMI
27 Najviša hijerarhijska struktura elemenata programa Program sada možemo definisati kao niz naredbi, primitivnih i složenih, kojim se opisuje postupak ulaza, izračunavanja i izlaza podataka i rezultata izračunavanja.
Paskal
Osnovna struktura Pascala
28
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 rezervisane riječi imena standardna imena brojevi nizovi znakova posebni simboli Paskal
rezervisane riječi
29 LEKSIČKA PRAVILA : Riječi se pišu kompaktno, bez razmaka. Jedino se u nizu znakova-slova 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 Paskal
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 +4 2 =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)
Realni izrazi
+ sabiranje Oduzimanje * Množenje / Dijeljenje Funkcije sa realnim varijablama Sqrt (x) - Kvadratni korijen od x Ln(x) – prirodni logaritam od x (po bazi e=2,71828) Exp (x) – eksponencijalna funkcija e x 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.