Professional Documents
Culture Documents
RAUNALNI JEZIK-jezik kojim se komunicira s raunalom PROGRAMSKI JEZIK-podvrsta raunalnih jezika, sastoji se od naredbi STROJNI JEZIK-najnii, izvorni jezik kojeg razumije raunalo ASSEMBLER-mnemoniki zapis strojnog jezika PREVODITELJ (COMPILER)- program koji prevodi naredbe jednog jezika u naredbe drugog INTERPRETER-program koji ita program napisan u jednom jeziku i u letu ga pretvara u naredbe drugog jezika te ih pritom izvrava SUTINA PROGRAMIRANJA RAZVOJNI ALAT- kompletno okruenje u kojem se piu programi i aplikacije npr. Turbo Pascal, Visual Studio, Borland Delphi... PROGRAMSKI JEZIK- sredstvo komuniciranja s raunalom( u njemu piemo programe)npr. BASIC, Pascal, C, Java, C# ... PRENOSIVOST- osobina da se program napisan u jednom jeziku moe izvravati na vie razliitih raunalnih platformi (Windows, Unix...) JAVA- nije samo programski jezik ve virtualno raunalo koje omoguava Java programima da se izvravaju u identinoj okolini bez obzira o kojem se raunalu radi; programi u Javi mogu se bez izmjena i bez potrebe za prevoenjem izvravati na svim raunalima i operacijskim sustavima za koje postoji Java radno okruenje VIZUALNO PROGRAMIRANJE-nain programiranja u kojem programer razvija suelje koristei grafike objekte, bez mnogo programiranja; najvei broj programa za OS Windows nastao je vizualnim programiranjem- veinom se koriste Microsoftovi razvojni alati (Visual Studio, Visual Studio .NET (itaj:dot net)) PROGRAMIRANJE U DUBINU ALGORITAM- postupak rjeavanja odreenog problema DIJAGRAM TIJEKA- grafiki nain prikaza algoritama PSEUDOKOD- tekstualni nain prikaza algoritama, nevezan za programski jezik
ULAZ/IZLAZ
POETAK
PROGRAM
KRAJ
END
PRIDRUIVANJE VRIJEDNOSTI
GRANANJE
DA
NE
C=A+B
KRAJ
Pr. 2. Program koji e osobi starijoj od 13 godina pokrenuti igru, dok e mlaima vratiti poruku Premladi ste. Broj godina osoba unosi sama. POETAK
brojgodina
NE
Brojgodina>13
DA
Premladi ste
Pokreni igru
KRAJ
Pr. 3. Zadati konstantu (=3.14159), uitati radius r, te izraunati opseg (O) i povrinu (P) kruga. POETAK
=3.14159
O=2 r
P=r2
O, P
KRAJ
=3.14159
NE
r>0
DA
O=2 r
P=r2
O, P
KRAJ
Zadaci... 1. Nacrtaj blok dijagram koji e uitavati stranicu kvadrata A te ispisivati opseg i povrinu kvadrata. 2. Nacrtaj blok dijagram koji e kao ulaz koristiti vrijednosti osnovica ( A i C) jednakokranog trapeza te visinu jednakokranog trapeza, a ispisivati e opseg i povrinu trapeza.
3. Nacrataj blok dijagram koji e za zadani broj godina ispisivati: ukoliko je broj godina manji od 18 ispisuje se Igri moete pristupiti tek sa navrenih 18 godina, a u suprotnom ispisuje tekst: Pokreni igru. 4. Nacrataj dijagram tijeka podataka koji e uitati tri broja (A, B, C) te ispisati najvei. 5. Nacrtaj dijagram tijeka podataka koji e uitati tri broja te ih ispisati u rastuem redoslijedu. 6. Nacrtaj dijagram tijeka podataka koji e uitati dva prirodna broja , a iapisati e najvei zajedniki djelitelj uitanih brojeva.
Rjeenje: 4. POETAK
A, B, C
max:=A
NE
B>max
DA
max:=B
NE
C>max
DA
max:=C
max
KRAJ
6. POETAK
a, b
NE
a>0
DA
NE
a<b
DA Zamijeni (a,b)
a=a-b
KRAJ
POSTUPCI PROGRAMIRANJA
Programiranje moemo definirati kao prilagoavanje problema rjeavanju na elektronikom raunalu. Kodiranje je samo jedna faza programiranja, a prije kodiranja treba dobro definirati problem, skicirati rjeenje i sastaviti algoritam. Ako je pripremni dio dobro napravljen kodiranje bi trebalo biti brzo i jednostavno. Nakon kodiranja treba rjeiti jo neke probleme: otklanjanje greaka, sreivanje dokumentacije i odravanje programa. (Dokumentacija je posebno vana kod veih projekata na kojima radi vie ljudi, ali i nuna ak i kad samo jedna osoba radi na projektu (moda e kasnije druga osoba razvijati ili odravati program).
Faze programiranja:
Analiza problema: na poetku treba znati to elimo raditi, koje ulazne podatke koristimo i koje izlazne podatke trebamo dobiti. Planiranje: dokumentirati to je sve potrebno da bi se projekt izveo do kraja (broj ljudi, vrijeme, resursi i dr.); skiciranje rjeenja i izabir najpovoljnijeg rjeenja, programskog jezika i sl. Kodiranje: Kodiranje je zapisivanje algoritama u izabranom programskom jeziku. Kod treba pisati itko i jasno, sa to manje kompliciranih zahvata. Ispravljanje pogreaka: moe biti najtea faza; sintaksne pogreke pronalaze i ispravljaju razni pomoni alati; logike pogreke nastaju zbog krivog algoritma ili zbog pogreke u pisanju programa-otkrivamo ih prikladno odabranim ulaznim podacima za koje unaprijed znamo rezultate. Dokumentacija: izrada dokumentacije kontinuiran je posao koji poinje sa zadavanjem problema, a nastavlje se pisanjem algoritama i programa. Na kraju je nuno sreivanje cjelokupne dokumentacije, jer nakon odreenog vremena kod postaje nerazumljiv i samom autoru. Odravanje: nakon to je napravljen, program treba odravati, dotjerivati i prilagoavati novim zahtjevima. Odravanje je mnogo lake ukoliko je dokumentacija potpuna i razumljiva.
S2
Sn
Pr 1.
C=A+B
KRAJ
TRUE
FALSE
TRUE
FALSE
Viestruko grananje
L1
L2
Ln
POETAK
ODGOVOR
NE
DA ODGOVOR
Registriraj program
Molimo Vas da idui put registrirate program Hvala na registraciji
KRAJ
Ponavljanje- jedan dio koda izvrava se vie puta; naziva se jo i petlja, a u programskim
jezicima realizira se na razliite naine (for, while, repeat) Provjera uvjeta na poetku petlje
FALSE B TRUE
FALSE
TRUE
v:=x, y
Brojac=1 r Zbroj=0
NE Brojac<=N
DA
Zbroj=Zbroj+Brojac Brojac=Brojac+1
Zbroj
KRAJ
Ime je niz alfanumerikih znakova. Imenom oznaavamo program, funkciju, tip, proceduru,
varijablu i konstantu. Prvi znak uvijek mora biti slovo. Broj znakova u imenu nije odreen, ali se samo prvih osam znakova uzima u obzir. Prema tome dva su imena razliita ako se razlikuju bar u jednom od prvih osam znakova. Ime mora biti razliito od kljune rijei i jedinstveno. Pascal doputa velika i mala slova, ali ih ne razlikuje. Pr. broj dvapi dva_pi x2 novoime konst Nepravilno zadana imena: b r o j zbog razmaka u imenu 2piprvi znak je broj x 2 u imenu se nalazi -, a to je posebni znak novo ime razmak u imenu const kljuna rije
U Pascalu su definirana i standardna imena ije je znaenje unaprijed odreeno, ali se moe predefinirati u programu.
Broj
Koristimo cijele (integer) i realne (real) brojeve zapisane u dekadskom brojevnom sustavu. Broj moe imati predznak + ili -. Predznak + se ne mora pisati. Cijeli broj se zapisuje kao niz znamenki i ne smije sadravati decimalnu toku niti eksponent. Realni brojevi sadre decimalnu toku. Ispred i iza decimalne toke mora biti bar jedna znamenka. Realni se broj moe pisati i sa decimalnim eksponentom (2.0E5). Ispred slova E mora biti realni ili cijeli broj, a iza obavezno cijeli broj.
Pr. Cijeli 0 brojevi Realni 0.0 brojevi 007 -1E7 +985 +1.0 1234 3.1415 9 -10 2.5E-5 -015 3.5E+12
Nepravilno napisani brojevi: Cijeli brojevi: 0.0 1234. 11 1E5 MXCV cijeli brojevi ne mogu imati decimalnu toku cijeli brojevi ne mogu imati decimalnu toku c.b. ne mogu imati razmak eksponent rimski zapis
Realni brojevi: 0 cijeli broj 1. nedostaje znamenka iza toke 2.5E3.0 eksponent mora biti cijeli broj 2.5*E-5 znak * nije doputen 1.E5 nedostaje znamenka iza toke 7 E5 razmak nije doputen
Oznaka naredbe je niz od jedne do najvie etiri znamenke (cijeli broj od 0 do 9999). Konstanta je zadana nepromjenjiva vrijednost ili podatak. Ona moe biti numerika,
logika ili tekstualna. U Pascalu su definirane neke standardne konstante: maxint true false Pr. Konst=2375 Konst=+23 Konst=0.5E-5 Konst='END' Konst=maxint Konst=true najvei cijeli broj istina la
Zadaci: 1. Koja su imena ispravna: a) real b) end c) poetak d) stop e) character f) do g) 2pi h) +predznak i) pascal j) f(x) k) dftg 2. Koji su brojevi krivo zapisani realni brojevi u Pascalu? a) 0015.0200 b) .25 c) 5.7E5.0 d) 1. e) 0 f) 33E-12 g) 3.E3 3. Sljedee brojeve zapiite u eksponencijalnom obliku: a) 384400000 b) 6378160 c) 40070368 d) 0,005 e) 0,000000056696 4. Naite i obrazloite greke u definiciji konstanti: CONST kraj='end',dobar:false; broj:=123; pi='3.14159'; + broj=100; + kut=2pi; - (*) za=FOR; -
STRUKTURA PROGRAMA-
Zaglavlje- kljuna rije je PROGRAM i ime programa Blok- opis podataka i svih akcija
- deklaracija oznaka - deklaracija konstanti - definicija tipoa - deklaracija varijabli - deklaracija funkcija - deklaracija procedura naredbe - ovaj odjeljak mora postojati u svakom bloku; naredbe opisuju akcije koje e se izvravaju; nalaze se IZMEU klunih rijei BEGIN i END, a meusobno ih odvajamo znakom tokazarez (;) VRSTE NAREDBI-MATEMATIKA LOGIKAPoetak i kraj programa, komentar u Pascalu su za to rezervirane dvije rijei: begin i end komentar se u Pascalu pie u vitiastim zagradama begin { ovo je kometar } end.
Pridruivanje vrijednosti varijablama u dijagramu tijeka pridruivanje se oznaava pravokutnikom u Pascalu operator pridruivanja je :=
Uitavanje i ispisivanje podataka unos i ispis podataka u dijagramu tijeka oznaavaju se trapezima ili paralelogramima u Pascalu za to upotrebljavamo naredbu WRITELN, READLN var ime: string; begin writeln('Unesite ime: '); readln(ime); writeln('Vae ime je ', ime); end.
Operacije ponekad elimo vei dio koda obuhvatiti unutar jedne operacije- tako nastaju funkcije i procedure; razlika je u tome to funkcije vraaju povratnu vrijednost, dok procedure ne vraaju nikakvu vrijednost operacije, funkcije i procedure u dijagramu tijeka prikazuju se istim elementom pridruivanja: PRAVOKUTNIKOM procedure IspisiIme (ime:string) begin writeln(ime); end; begin IspisiIme('Ivan'); end. Primjeri:
program Hello; begin Write('Hello world'); Readln; end.
program Hello_2; uses crt; begin ClrScr; Write('Hello world'); Readln; end.
{Ovaj program e oistiti monitor te ispisati "Hello world" , a zatim ekati da korisnik odabere tipku Enter.}
program Hello_3; uses crt; begin ClrScr;{isti ekran} Write('Hello world');{ispisuje "Hello world"} Readln;{eka da korisnik pritisne tipku enter} end.
Naredba TextBackground mijenja boju pozadine teksta. Ukoliko eli promijeniti boju cijelom ekranu mora upotrijebiti naredbu ClrScr.
program Colors_1; uses crt; begin TextBackground(Red); Writeln('Hello'); TextColor(White); ClrScr; end.
{Ovaj program e oistiti monitor, ispisati zadane podatke , a zatim ekati da korisnik odabere tipku Enter.} program ispis; uses crt; (*ispis teksta*) begin ClrScr; write('Programski jezik'); writeln('Pascal'); writeln; writeln('Niklaus Wirth-1971.'); readln; end.
- TIPOVI PODATAKA
1. JEDNOSTAVNI a) Standardni - cjelobrojni (integer) - realni (real) - znakovni (char) - logiki (Boolean) b) Korisniki - pobrojani (enumerated) - intervalni (subrange) 2. SLOENI a) skup (SET) b) niz (ARRAY) c) zapis (RECORD) d) datoteka (FILE) 3. POKAZIVAI
U Turbo Pascalu i Free Pascalu postoje jo i ovi tipovi podataka: Tip podataka Broj bitova Opseg Byte 8 0-255 Shortint 8 -128 - 127 Integer 16 -32768 - 32767 Word 16 0 - 65535 Logint 32 -2147483648 - 2147483647
Na cjelobrojnom tipu podataka definirani su sljedei standardni operatori: + zbrajanje oduzimanje * mnoenje div, mod i * imaju vii div cjelobrojno dijeljenje (17 div 8=2) prioritet od + i mod ostatak cjelobrojnog dijeljenja (17 mod 8=1)
Na cjelobrojnom tipu podataka definirani su sljedee standardne funkcije: abs(i) sqr(i) succ(i) pred(i) trunc(i) round(i) apsolutna vrijednost kvadrat sljedbenik prethodnik cijeli dio realnog broja zaokruuje x na najblii cijeli broj abs(-15)=15 sqr(6)=36 succ(6)=7 pred(6)=5 trunc(3.25)=3 round(3.5)=4
-9.2E18 do 9.2E18
Opi oblik deklaracije: var a:char; Na znakovnom tipu podataka definirani su sljedee standardne funkcije: ord(c) chr(n) redni broj znaka c (npr. ord('A')=65 ) znak iji je redni broj n (npr. chr(65)='A' ) Meusobno inverzne funkcije
- mogu se upotrijebiti i operacije usporeivanja (npr. 'A'<'M') - definirane su i funkcije succ(c) sljedbenik succ('c')='d' pred(c) prethodnik pred('c')='b'
Nad logikim tipom podataka definirani su sljedei standardni operatori: NOT AND OR negacija (NE) konjukcija (I) disjunkcija (ILI)
Relacijski operatori (=,<,>,<=,>=,<>) daju rezultate logikog tipa. Standardne funkcije koje daju vrijednosti logikog tipa su: odd(x) eof(d) eoln(d) ako je x neparan, daje vrijednost true, inae je false ako je kraj datoteke, daje vrijednost true ako je kraj linije datoteke, daje vrijednost true
Ovako definirani tip podataka naziva se pobrojani. Varijablama pobrojanog tipa ne moemo se sluiti u naredbama read i write.
Standardne funkcije su: ord(x) succ(x) pred(x) redni broj elementa x (redni broj prvog je 0) sljedbenik prethodnik
Ako u programu elimo ograniiti podruje vrijednosti varijable, tada definiramo tip podataka koji se naziva intervalni. Na njemu su definirane iste operacije i funkcije kao i na pobrojanom tipu. type dani=1 . . 30; slova='A' . . 'Z'; var a: dani; b: slova;
Primjer1: Napiite program koji e od zadana tri broja ispisati najvei: program maksimum; var a,b,c,max:integer; begin writeln('Zadaj tri broja:'); readln(a,b,c); max:=a; if b>max then max:=b; if c>max then max:=c; writeln('Najvei je:',max); readln; end. program maksimum; uses crt; var a,b,c,max:integer; begin ClrScr; writeln('Zadaj tri broja:'); readln(a,b,c); max:=a; if b>max then max:=b; if c>max then max:=c; writeln('Najvei je:',max); readln; end.
Primjer2: Napisati program koji e izraunavati sumu prvih n prirodnih brojeva. Za sumu n ( n + 1) koristiti formulu: 1 + 2 + 3 + ... + n = (suma:=n*(n+1)DIV2 ) 2 program suma_brojeva; uses crt; (*suma prirodnih brojeva*) type prirodni=1..maxint; var n,suma:prirodni; begin ClrScr; write('Unesi broj do kojeg eli izraunati zbroj:'); readln(n); suma:=n*(n+1)div 2; writeln('Suma do ' ,n, 'je ',suma); readln; end.
OPERATORI I IZRAZI
Kombinacijom varijabli, konstanti i operatora nastaju izrazi. Osnovni elementi izraza su faktori. Faktor moe biti: - Konstanta bez predznaka - Varijabla - Poziv funkcije - Izrazi u zagradama Izrazi su rijei ili simboli koji odreuju da se s varijablama u programu neto uini. VARIJABLA - objekt ija se vrijednost mijenja tijekom rada programa. - ime varijable je stalno - varijable omoguavaju definiranje postupaka na razliitim podacima - svaka varijabla mora biti deklarirana (deklaracijom se odreuje samo tip vrijednosti, ne i poetna vrijednost) - na temelju tipa svakoj se varijabli pridruuje odreeni memorijski prostor Pr. VAR i,j,k :integer; broj : 1..99; x,y,sum :real; dobar :boolean; dan : (po,ut,sr,ce,pe,su,ne);
OPERATOR PRIDRUIVANJA
Simbol Primjer: a:=a*3; a:=b+2; :=
ARITMETIKI OPERATORI
+ * / div mod zbrajanje oduzimanje mnoenje dijeljenje cjelobrojno dijeljenje ostatak pri cjelobrojnom dijeljenju
apsolutna vrijednost broja x drugi korijen broja x x na kvadrat sin x cos(x) arkus takgens od x e na x lnx poveava vrijednost cjelobrojne varijable za 1 smanjuje vrijednost cjelobrojne varijable x za 1
3x + 2 y 4z
f:=(3*x+2*y)/(4*z);
f =a+
2b c d2
f:=a+(2*b-c)/(d*d);
Relacijski operatori: <, <=, =, >, >=, <> Logiki operatori: NOT, AND, OR
Zadatak : Napii program koji e raunati aritmetiku sredinu tri upisana broja. program aritmeticka_sredina; uses crt; (*aritmetika sredina tri uitana broja*) var a,b,c,S:real; begin ClrScr; writeln('Unesi tri broja za koje eli izraunati aritmetiku sredinu'); readln(a,b,c); S:=(a+b+c)/3; writeln('Aritmetika sredina brojeva ',a,' ',b,' ',c,' je: ' ,S); readln; end. Zadatak : Napii program koji e raunati geometrijsku sredinu tri upisana broja.Geometrijska sredina brojeva a i b zadana je formulom: S = a * b .
Zadatak : Napii program koji e raunati opseg krunice za zadani radius r. program opseg_kruznice; uses crt; (*raunanje opsega krunice za zadani r*) var r,o:real; begin ClrScr; writeln('Unesi radius'); readln(r); o:=2*r*Pi; writeln('Opseg je ',o); readln; end. Zadatak : Napii program koji e raunati opseg i povrinu pravokutnika, te duljinu dijagonale pravokutnika. Kao ulazne podatke unijeti stranice pravokutnika a i b.
Zadatak : Napii program koji e uitavati prirodni broj n te ispisivati njegov kvadrat i korijen. program ispis; uses crt; (*ita prirodni broj te ispisuje njegov kvadrat i korijen*) var n:1..maxint; begin ClrScr; writeln('Unesi prirodni broj n'); readln(n); writeln(n, 'na kvadrat je ',sqr(n)); writeln('Drugi korijen broja n je ',sqrt(n)); readln; end. Zadatak : Napii program koji e uitavati znak te za njega ispisivati njegov redni broj.
program redni_broj; uses crt; var znak:char; begin ClrScr; writeln('Upii znak:'); readln(znak); writeln(znak:5, 'Redni broj znaka je ',ord(znak)); readln; end. Zadatak : Napii program koji e uitati i spisati tvoje ime. program stringovi; (*tip string oznaava niz znakova*) uses crt; var ime:string; begin ClrScr; writeln('Upii svoje ime:'); readln(ime); writeln(ime, ' je full cool!'); readln; end.
Zadatak : Napii program koji e uitavati dva cijela broja x i y, a ispisivati e njihovu: sumu, razliku, umnoak, kvocjent, rezultat cjelobrojnog dijeljenja, te ostatak cjelobrojnog dijeljenja. program opracije; uses crt; var x,y:integer; begin ClrScr; writeln('Upisi dva cijela broja:'); readln(x,y); writeln('x + y = ',x+y); writeln('x - y = ',x-y); writeln('x * y = ',x*y); writeln('x / y = ',x/y); writeln('x MOD y = ',x MOD y); writeln('x DIV y = ',x DIV y); readln; end.