Prezentacija "Programski jezik Pascal. Jezični uređivač teksta.". Osnove Pascal programiranja Prezentacija o Pascalu

Nikolaus Wirth Ali bilo bi pogrešno misliti da je Pascal jezik isključivo za učenje. Evo što je o tome rekao N. Wirth (1984.): “Tvrdilo se da je Pascal razvijen kao jezik za podučavanje. Iako je ova izjava točna, ali njezino korištenje u obuci nije bila jedina svrha. Zapravo, ne vjerujem u uspjeh korištenja alata i tehnika tijekom obuke koji se ne mogu koristiti u rješavanju nekih praktičnih problema. * *


Programski jezik Pascal Od tada, Pascal postaje sve popularniji, ne samo kao jezik za podučavanje principa programiranja, već i kao sredstvo za stvaranje prilično složenih softver. U svom izvornom obliku, Pascal je imao prilično ograničene mogućnosti, ali proširena verzija ovog jezika, Turbo Pascal, moćan je programski jezik.


Zašto PASCAL? Programski jezik Pascal dobio je ime po francuskom znanstveniku Blaiseu Pascalu koji je izumio prvi mehanički računski stroj davne 1642. godine. Bio je to sustav međusobno povezanih zupčanika, od kojih je svaki odgovarao jednoj znamenki decimalnog broja i sadržavao je brojeve od 0 do 9. Kad bi kotač napravio puni okret, sljedeći se pomaknuo za jednu znamenku. Pascalov stroj bio je stroj za zbrajanje.


Osnovne informacije o programskim jezicima Jezik je sustav znakova. Računalni jezik (strojni jezik) je binarni znakovni sustav. Stoga, da bi računalo razumjelo napisani program, on mora biti preveden na jezik koji računalo može razumjeti. Ovaj proces prevođenja naziva se prevođenje.




Integrirano okruženje Turbo Pascal-7.0 Veliku ulogu u masovnoj distribuciji Pascala odigrao je Borland International. Uspjela je stvoriti poznato razvojno okruženje Turbo. Bio je to veliki korak naprijed u olakšavanju procesa programiranja. Zašto turbo? Turbo u prijevodu s engleskog slenga znači ubrzanje. Kompajler koji je dio Turbo Pascala vrlo brzo prevodi program iz programskog jezika u strojne kodove.




Glavna sredstva jezika Simboli jezika su elementarni znakovi koji se koriste u pripremi teksta. Abeceda jezika je skup takvih simbola. Turbo Pascal 7.0 abeceda uključuje: sva latinična velika i mala slova arapske brojke (0 – 9) simbole + - * / =,. ; : _ () ( ) i druge pomoćne (rezervirane) riječi


Za snimanje naredbi, naziva funkcija, termina objašnjenja Turbo Pascal 7.0, postoji skup strogo definiranih riječi, koje se nazivaju pomoćne ili rezervirane (to su engleske mnemoničke kratice). Funkcijske riječi podijeljene su u tri skupine: operatori (READ, WRITELN itd.) nazivi funkcija (SIN, COS itd.) ključne riječi (VAR, BEGIN, END itd.) Osnovne jezične značajke


Naziv vrijednosti je njezina oznaka, to je riječ sastavljena od slova, brojeva i podvlaka, koja počinje slovom. Brojevi: cijeli brojevi, realni: fiksni zarez (-1,23; 654,2), pomični zarez (2, 437,). Šest operacija: + zbrajanje, - oduzimanje, / dijeljenje, * množenje, mod pronalaženje ostatka, div cjelobrojno dijeljenje.


Aritmetički izraz je sastavljen od imena, brojeva, znakova računskih operacija, matematičkih funkcija. Zagrade se koriste za označavanje redoslijeda operacija. Za kvadriranje se koristi oznaka sqr(x). Za izvlačenje kvadratnog korijena koristi se oznaka sqrt(x). Modul se označava abs(x).


Operator dodjele Naziv varijable:= aritmetički izraz. x:= 3,24 ili x:= x+4. Tip varijable 1. Ako je varijabla s lijeve strane realnog tipa, tada aritmetički izraz može biti ili cjelobrojnog ili realnog tipa. 2. Ako je varijabla s lijeve strane cjelobrojnog tipa, tada je aritmetički izraz samo cjelobrojni.


Struktura programa u Pascalu 1. dio - opis podataka i operatora. 2. dio - programski blok. Opći pogled na program: Program (naziv programa) label (popis oznaka) const (popis konstantnih vrijednosti) type (opisi složenih tipova podataka) var (opisi podataka programa) begin (početak bloka programa) (algoritam) kraj. (kraj programa)


Naziv programa: ne više od 8 znakova, počinje slovom. završavaju točkom. Opisni dio se sastoji od 4 dijela: oznake, konstante, imena i vrste varijabli. var ime i tip varijable: integer (cijeli broj), real (stvarno). Na primjer: var i, j: cijeli broj; x:stvarno; Opis svake vrste završava točkom i zarezom. Programski blok sadrži operatore koji opisuju algoritam za rješavanje problema.


Ulazne i izlazne naredbe: read (popis imena) - zaustavlja program i čeka da korisnik upiše brojeve na tipkovnici (odvojene razmakom) i pritisne ENTER. Na primjer: read(i, j); Nakon operacije ovog operatora, kursor se nalazi iza zadnjeg broja, ali se ne prevodi u novi red. Za pomicanje kursora u novi redak nakon unosa podataka, upotrijebite naredbu readln(popis imena). pisanje (izlazna lista) - Zapisuje podatke na ekran. Izlazna lista - nazivi rezultata izračuna odvojeni zarezima i tekstovi objašnjenja u apostrofima. Na primjer: write(x=, x); Na ekranu će se ispisati broj s fiksnom točkom. Na primjer: write(x=, x:6:2); ekran će prikazati broj od 6 znamenki, od kojih su dvije iza decimalne točke, (x =). Kursor se pomiče u novi red pomoću praznog izlaznog operatora writeln. readln prazan operator unosa






Rad u sustavu Turbo Pascal Alt + F10 - izbornik Datoteka - Novo - kreiranje nove datoteke Enter - treba staviti na kraj svakog retka Ctrl + Y - brisanje retka Enter - umetanje retka Za izvršavanje programa odaberite Pokreni u izbornik Prevoditelj - prevodi program iz Pascal jezika u strojni jezik i traži sintaktičke pogreške. 1. Ako se pronađu pogreške, uređivač će se vratiti, kursor će pokazati na pogrešku. 2. Ako se greške ne pronađu, program se izvršava










Ponekad, nakon riječi THEN i ELSE, morate izvršiti ne jednu, već nekoliko naredbi. Zatim se ti operatori nalaze u operatorskim zagradama. Početna zagrada je riječ BEGIN, a zatvorena zagrada je riječ END. Ispred riječi DRUGO ne stoji točka-zarez. Preporuča se da svaki par POČETAK - KRAJ bude napisan u jednom stupcu. IF uvjet THEN početak izjave 1; operater 2; iskaz N end ELSE početak iskaza 1; operater 2; operator M kraj ;




Program E3; var a,b: cijeli broj; započeti pisanje (unesite dva cijela broja odvojena razmakom, zatim pritisnite); readln(a,b); ako je mod 2 = 0 onda writeln (a je paran) else writeln (a je neparan); if b mod 2 = 0 then writeln (b - even) else writeln (b - odd); readln kraj.


3 if a>0 6 if a 0 6 if a 0 6 if a 0 6 if a0 6 if a title="3 if a>0 6 if a


Program E31; var a, y: pravi; započeti pisanje (unesite broj i pritisnite); readln(a); if a >0 then y:=3 else y:=6; napisati(y=,y); readln kraj. 0 zatim y:=3 inače y:=6; napisati(y=,y); readln kraj."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="Program E31; var a, y: pravi; započeti pisanje (unesite broj i pritisnite); readln(a); if a >0 then y:=3 else y:=6; napisati(y=,y); readln kraj."> title="Program E31; var a, y: pravi; započeti pisanje (unesite broj i pritisnite); readln(a); if a >0 then y:=3 else y:=6; napisati(y=,y); readln kraj."> !}


A+b ako a>b a*b ako a b a*b ako a b a*b ako a b a*b ako ab a*b ako a title="a+b ako a>b a* b ako a


Program E32; var a,b,x: pravi; započeti pisanje (unesite dva broja odvojena razmakom i pritisnite); readln(a); if a >b then x:=a+b else x:=a*b; napisati(x=,x); readln kraj. b zatim x:=a+b inače x:=a*b; napisati(x=,x); readln kraj."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="Program E32; var a,b,x: pravi; započeti pisanje (unesite dva broja odvojena razmakom i pritisnite); readln(a); if a >b then x:=a+b else x:=a*b; napisati(x=,x); readln kraj."> title="Program E32; var a,b,x: pravi; započeti pisanje (unesite dva broja odvojena razmakom i pritisnite); readln(a); if a >b then x:=a+b else x:=a*b; napisati(x=,x); readln kraj."> !}




Organizacija petlji Ponavljajuće radnje u programiranju nazivaju se petlje Operator bezuvjetnog skoka goto n, n je cijeli broj (ne više od 4 znaka), oznaka. Oznaka se ponavlja 3 puta: 1. U odjeljku Oznaka; 2.U goto naredbi; 3. Ispred operatora na kojeg se vrši bezuvjetni skok.


Organizacija ciklusa uz pomoć operatora uvjetnih i bezuvjetnih prijelaza. Zadatak. Nađi zbroj prvih dvadeset brojeva. (1+2+3….+20). a ……………20 S ………….


Euklidov algoritam: svaki put ćemo veći od brojeva smanjivati ​​za vrijednost manjeg sve dok oba broja ne postanu jednaka. Na primjer: Inicijalni 1 korak 2 korak 3 korak a= 25 b= gcd(a,b)=5


Program E5; var a, b: cijeli broj; početak pisanja (gcd=,a); readln; kraj. pisati (Upisati dva prirodna broja odvojena razmakom); readln(a,b); dok ab do if a>b then a:=a-b else b:=b-a; b zatim a:=a-b drugo b:=b-a;"> b zatim a:=a-b drugo b:=b-a;"> b zatim a:=a-b drugo b:=b-a;" title="Program E5 ;var a, b: integer;begin write(gcd=,a);readln;end.write(Unesite dva prirodna broja odvojena razmakom);readln(a,b);dok ab do if a>b then a:= a-b inače b:=b-a;"> title="Program E5; var a, b: cijeli broj; početak pisanja (gcd=,a); readln; kraj. pisati (Upisati dva prirodna broja odvojena razmakom); readln(a,b); dok ab do if a>b then a:=a-b else b:=b-a;"> !}




B zatim a:=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln (a,b);" title="Program E6; var a, b: integer; početak pisanja (HOD=,a); readln; kraj. ponavljaj dok a=b; ako a>b tada a :=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln (a,b);" class="link_thumb"> 40 !} Program E6; var a, b: cijeli broj; početak pisanja (HOD=,a); readln; kraj. ponavljati dok a=b; ako je a>b tada je a:=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln(a,b); b zatim a:=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln (a,b);"> b then a:=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln (a,b);"> b then a:= a-b ; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln (a,b);" title="Program E6; var a, b: integer; početak pisanja (HOD=,a); readln; kraj. ponavljaj dok a=b; ako a>b tada a :=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln (a,b);"> title="Program E6; var a, b: cijeli broj; početak pisanja (HOD=,a); readln; kraj. ponavljati dok a=b; ako je a>b tada je a:=a-b; if b>a then b:=b-a write (Unesite dva prirodna broja odvojena razmakom); readln(a,b);"> !}




Tema lekcije: "Ciklusi (ponavljanje) u programima"

1) Ponoviti i učvrstiti znanje o izradi linearnih, granastih programa; 2) Naučite pisati programe koristeći ciklički operator - FOR i:=1 TO n DO Begin naredbe (tijelo petlje) end ; 3) Primjena operatora u rješavanju tipičnih problema. Svrha lekcije:

Nedostaje umetnuti: Program Sql; Varijanta A, B, C, D, XI, X2: ??? ; Započni Writeln ("Unesite koeficijente kvadratne jednadžbe '); Readln (???); D:=B*B-4*A*C; Ako D

Pitanja za grupu: 1) Koja je razlika između granajućih i linearnih programa? 2) Uz pomoć kojih operatora se vrši izbor u programima? 3) početak….kraj - Što je to? Koja su pravila za korištenje programa?

1) I/O operatori; 2) Operatori izbora; 3) a:=a+3 - što će se dogoditi? 4) Navedite vrste podataka; 5) Uklonite nepotrebne AND, OR, END, NOT, IF ; 6); - što to znači? 7) Kako se označava kraj programa? 8) Navedite računske operacije. 9) Što je 120 mod 65 = ? 10) Izjave petlje.

Rasporedi prema tome: 1. Čitaj 2. Kraj 3. Početak 4. Cijeli broj 5. ; 6. If .. Then 7. := 8. Enter 9. End 10. Integers 11. Assign 12. Next action 13.Start 14.If..then

Je li rezultat manji od 3? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Pronađite 5 grešaka u programu: Program krug ; VAR Pi, r, S: pravi; Pi:=3.14, WRITELN('vvedite radiuc r='), READ(r); S=Pi*r*r; WRITELN('Ploshad kruga S= ', S) kraj

Programski krug ; VAR Pi, r, S: pravi; begin Pi:=3.14 , WRITELN('vvedite radiuc r=') , READ(r); S:=Pi*r*r; WRITELN('Ploshad kruga S= ', S) end .

Problem #1 Zadat je cijeli broj N, odredite je li paran ili neparan. 2, 4, 6, ... su parni, jer podijeljeno bez ostatka sa 2(N mod 2 =0) 1, 3, 7, ... - neparno, jer podijeljeno s 2 s ostatkom 1 (N mod 2 =1)

Algoritam Chislo algoritam; var N: cijeli brojevi; start Output('vvedite chislo') ; Ulaz (N) ; IF N mod 2 =0 T O Izlaz(N,'- chetnoe'); IF N mod 2 =1 T O Izlaz(N,'- nechetnoe'); kraj.

Zadatak № 2 Zadat je dvoznamenkasti cijeli broj N (DE), gdje je D - broj desetica, E - jedinica. Odredi hoće li zbroj znamenki ovog broja biti 10. Primjer: 28. će imati zbroj S =2+8=10, ali 27. neće imati S=2+7=9 Brojit ćemo desetice: D = N div 10, a jedinice: E= N mod 10

Algoritam Chislo algoritam; vars N,E,D,S: cijeli brojevi; start Output('vvedite chislo') ; Ulaz (N) ; E:=N mod 10; D:=N div 10; S:=E+D; IF S = 10 T O Izlaz('summa= 10') Inače ('summa10'); kraj.

Definicija: Programi u kojima se ista vrsta radnji ponavlja više puta - ciklički programi (s ponavljanjem).

Zadatak: Zadano je 100 prirodnih brojeva od 1 do 100 (1,2,3, ... 99,100) Izračunajte njihov zbroj i ispišite u varijablu S.

Algoritam zbroja; Varijabla i,S: cijeli brojevi; Početak S:=0; Za i:=1 do 100 ponovite Početak S:= S + i tijelo Kraj; ciklus Zaključak (S) Kraj.

zbroj programa; VAR i , S: cijeli broj; Počinje:=0; ZA i:=1 DO 100 DO početak S:=S+i kraj tijela; petlja WRITE(S) kraj.

zbroj programa; VAR i , S: cijeli broj; Počinje:=0; ZA i:=1 DO 100 DO početi S:=S+i ; tijelo WRITE('S', i, '=', s) kraja petlje; kraj.

Tijelo ciklusa su same radnje koje treba ponavljati mnogo puta. Tijelo ciklusa stavljamo u operatorske zagrade begin ... .. end;

ALT + F9 - popravi pogreške CTRL + F9 - pokrenite program ALT + F5 - pogledajte rezultat

Zadatak: 1) Prikazati stupac tablice množenja bilo kojeg cijelog broja N brojevima od 1 do 10. Primjer: N = 5, tada će stupac biti ovakav - 1*5=5 2*5=10 3*5= 15 i * N = P , gdje se i mijenja od …… .. 1…10 10*5=50

Domaća zadaća: komentirajte program za zadatak "O stupcu tablice množenja"

HVALA NA PAŽNJI!

  1. 1 Pascal
  2. 2. Pascal Pascal je razvio švicarski znanstvenik Niklaus Wirth. Pascal se smatra najvažnijim alatom za poučavanje metoda strukturiranog programiranja, a od 1983. godine uveden je u nastavni plan i program u školama za učenike koji se specijaliziraju za informatiku. U budućnosti je jezik Pascal poboljšan i stekao je nova svojstva koja se razlikuju od autorove verzije.
  3. 3. Pascal je relativno lak za naučiti, prilično je jasan i logičan, a budući da je prvi programski jezik koji se uči, podučava dobrim stilom.
  4. 4. Kao i prirodni jezici, svaki programski jezik ima svoj stil i pravila. Sintaksa programskog jezika skup je pravila koja određuju kako konstruirati ispravne programe od znakova abecede.
  5. 5. Abeceda jezika Pascal 26 latiničnih malih i 26 latiničnih velikih slova: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z podvlaka _ 10 znamenki: 0 1 2 3 4 5 6 7 8 9 znak operacije s: + -*/=<> < > <= >= := @ razdjelnici (separatori): . , " () (. .) ( ) (* *) .. : ; specifikatori: ^ # $
  6. 6. Struktura programa (1. zaglavlje programa) program Program_Name; (2. odjeljak za specificiranje korištenih modula) koristi List_of_Used_Modules; (3. Odjeljak opisa) label Label_Descriptions; const Descriptions_Consts; tip TypeDescriptions; var Variable_Descriptions; procedura Opis_procedura_i_funkcija; funkcija izvozi opise_izvezenih_imena; (4. Odjeljak izjava) početak Izjave kraj.
  7. 7. Pojednostavljena struktura programa (1. zaglavlje programa) program Program_Name; (2. odjeljak za specificiranje korištenih modula) koristi List_of_Used_Modules; (3. Odjeljak Opisi) const Descriptions_Consts; var Variable_Descriptions; (4. Odjeljak naredbi) početak Izjave programa end.
  8. 8. Naredbe programskog jezika nazivaju se operatori Razdjelnik operatora u Pascalu je; (točka i zarez)
  9. 9. Komentar je dio programskog teksta, odijeljen simbolima ( ). Komentari u programu imaju informativnu funkciju. (Moj prvi program) program first; begin writeln('Hello, World!') end.
  10. 10. Primjer: pravokutnik opseg program perimetar; (zaglavlje programa) uses crt; (crt - potreban za brisanje ekrana) var a,b:integer; (deklaracija varijable) P:cijeli broj; Početak (pokretanje programa) clrscr; (čisti zaslon) a:=12; (varijabli a dodjeljujemo vrijednost 12) b:=7; (varijabli b dodjeljujemo vrijednost 7) ​​P:=2*(a+b); (vrijednost izraza je dodijeljena P) write("P = ",P); (prikaži vrijednost P) kraj. (kraj programa)
  11. 11. Program u svom radu barata podacima. Neki podaci su postavljeni prije pokretanja programa, a nakon njegovog pokretanja zadržavaju svoje vrijednosti nepromjenjive tijekom trajanja programa. To su konstante. Ostali podaci mogu se promijeniti tijekom izvođenja programa. Zovu se varijable.
  12. 12.  Razlika između varijable i konstante je sasvim očita: tijekom izvođenja programa vrijednost varijable se može promijeniti, ali vrijednost konstante ne može. varijablevarijable konstantekonstante datadata
  13. 13. Pod varijablom podrazumijevamo ćeliju (“box”) u koju računalo može upisivati ​​(“dodavati”) podatke. Pod stanicom zapravo mislimo na "komad memorije" koji pohranjuje informacije. Za korištenje informacija pohranjenih u ćeliji, svaka ćelija mora imati svoje ime ili, kako se često kaže, identifikator. a b zbroj 5 3 8
  14. 14. Identifikatori. Imena (identifikatori) su elementi jezika - konstante, oznake, tipovi, varijable, procedure, funkcije, moduli, objekti.  Identifikator je niz slova, brojeva i podvlaka koji počinje slovom ili podvlakom i ne sadrži razmake.
  15. 15. Ime može sadržavati bilo koji broj znakova, ali 63 znaka su značajna.  Kao nazive u jeziku PASCAL nije dopušteno koristiti funkcijske riječi i standardna imena koja se koriste za imenovanje standardnih konstanti, tipova, procedura, funkcija i datoteka.  Primjeri naziva PASCAL jezika: A b12 r1m SIGMA gama I80_86
  16. 16. U Pascalu se zanemaruje razlika između malih i velikih slova, pa su imena NaMe i name ista.
  17. 17. Funkcionalna riječ je riječ koja u jeziku PASCAL ima određeno semantičko značenje koje se ne može mijenjati. Ponekad se naziva ključna riječ.
  18. 18. Servisne (rezervirane) riječi: ABSOLUTE EXPORTS LIBRARY SET ASSEMBLER EXTERNAL MOD SHL I FAR NAME SHR ARRAY FILE NIL STRING ASM FOR NEAR THEN ASSEMBLER FORWARD NOT BEGIN FUNCTION OBJECT TYPE CASE GOTO OF UNIT CONST IF OR UNTIL CONSTRUCTOR IMPLEMENTACIJA PAKIRAN KORISTI DESTRUKTOR IN PRIVATE VAR DIV INDEX PROCEDURE VIRTUAL DO NASLJEĐENI PROGRAM DOK DOWNTO INLINE PUBLIC WITH ELSE SUČELJE RECORD XOR END INTERRUPT REPEAT EXPORT LABEL RESIDENT
  19. 19. Razmaci se ne mogu koristiti unutar duplih znakova i rezerviranih riječi. Postoje imena koja se nazivaju standardnim. sin cos real true Za razliku od funkcijskih riječi, programer može redefinirati značenje standardnih imena.
  20. 20. Ovo je indikacija prevoditelju koliko memorije treba rezervirati za varijable našeg programa.  U prevedenom programu, svim varijablama se dodjeljuje prostor u memoriji, a svim varijablama se dodjeljuju nulte vrijednosti. Sve varijable koje se koriste u programu moraju biti deklarirane u odjeljku za deklaraciju varijabli nakon rezervirane riječi var. Deklariranje varijabli
  21. 21. Postoje različite vrste podataka...
  22. 22. Tipovi podataka Imena standardnih tipova unaprijed su definirani identifikatori i važe u bilo kojem trenutku u programu. Oni su opisani u standardnom modulu Sustava, koji je standardno uključen u popis korištenih modula. Korisnički definirani tipovi su dodatni tipovi (jednostavni i strukturirani) koje deklarira korisnik.
  23. 23. Standardni tipovi podataka 1. skupina cjelobrojnih tipova (Shortint, Integer, Longint, Byte, Word); 2. skupina realnih tipova (Single, Real, Double, Extended, Comp); 3. logički (Boolean tipovi) (Boolean, ByteBool, WordBool, LongBool); 4. znak (Char); 5. niz (String); 6. indeks (Pokazivač); 7. vrsta teksta (Text).
  24. 24. Grupa tipova cijelih brojeva Naziv tipa Vrsta raspon vrijednosti potrebna memorija Kratki cijeli broj s predznakom Shortint -128 .. 127 1 bajt Cijeli broj s predznakom Cijeli broj -32768 .. 32767 2 bajta Dugi cijeli broj s predznakom Longint -2147483648 .. 2147483647 4 bajta Kratki bez predznaka cijeli broj Bajt 0 .. 255 1 bajt Cijeli broj bez predznaka Riječ 0 .. 65535 2 bajta
  25. 25 Varb: bajt; zbroj, brojanje: cijeli broj; Deklaracija varijabli cjelobrojnog tipa summa:= -365; Koristiti
  26. 26. Brojevi u PASCAL-u obično se pišu u decimalnom zapisu. Pozitivni predznak broja može se izostaviti. Cijeli brojevi se pišu u obliku bez decimalne točke, na primjer: 217 -45 8954 +483
  27. 27. Grupa realnih tipova definira podatke koji su implementirani podskupom realnih brojeva. Var A: pravi; početi ... A:=0,65; … kraj.
  28. 28. Naziv tipa Tip Raspon vrijednosti Broj znamenki mantise Veličina (bajtovi) Realni broj jednostruke preciznosti Realno 2.9e-39 .. 1.7e+38 11 6 Realni broj Jednostruko 1.5e-45 .. 3.4e+ 38 7 4 Realni broj dvostruke preciznosti Double 5.0e-324 .. 1.7e+308 15 8 Extended Precision Real Number Extended 3.4e-4932 .. 1.1e+4932 19 10 Comp Real Integer -9.2e+18 .. 9.2e +18 19 8
  29. 29. Realni brojevi se pišu u obliku s decimalnim zarezom ili u obliku s decimalnim redoslijedom koji je predstavljen slovom E: 28,6 0,65 -0,018 4,0 5E12 -1,72E9 73,1E-16
  30. 30. Boolean tip podataka odgovara identifikatoru Boolean. Booleove varijable imaju veličinu od 1 bajta i mogu sadržavati TRUE ili FALSE vrijednosti. Vrijednost FALSE odgovara 0, svaki broj osim nule smatra se TRUE. Gumb Var, zastavica: boolean; Gumb Start:=true;
  31. 31. Vrsta znaka odgovara standardnom identifikatoru Char. Varijable i konstante znakovnog tipa mogu uzimati vrijednosti iz skupa znakova ASCII koda. Var simbol, bukva, z: char; Deklariranje simboličkih varijabli
  32. 32. Vrsta niza odgovara standardnom identifikatoru String. VarS: String; (string od 0 do 255 znakova) S2: String; (niz od 5 znakova)
  33. 33. Niz znakova je niz znakova iz ASCII skupa znakova unutar jednostrukih navodnika. Nizovi u PASCAL-u su niz znakova napisanih između apostrofa. Ako je potrebno koristiti sam apostrof kao smisleni znak u nizu, tada treba napisati dva apostrofa. Primjeri nizova: "STRING" "STRING" "AD" "UTANT"
  34. Znakovni tip, kao i cjelobrojni i Boolean tipovi, nazivaju se takozvanim ordinalnim tipovima.  Skup važećih vrijednosti bilo kojeg rednog tipa je uređen niz, čiji svaki element ima svoj redni broj (počevši od 0).
  35. 35. Funkcija Ord vraća redni broj ove vrijednosti u deklaraciji tipa. Ord(2)=2, Ord('0')=48 Writeln(ord('e')); WriteIn(ord('9'));
  36. 36. Tablica ASCII kodiranja ASCII (American Standard Code for Information Interchange; izgovara se "asci") je računalno kodiranje za predstavljanje latinične abecede, arapskih brojeva, nekih interpunkcijskih znakova i kontrolnih znakova. Uveo ga je Američki institut za norme ANSI.

1 slajd

LEKCIJA „UPOZNAVANJE S JEZIKOM PASCAL“ NA TEMU: Učitelj matematike i informatike, MBO USOSh br. 2, Kalach-on-Don, regija Volgograd Anisimova N.A.

2 slajd

SVRHA LEKCIJE: upoznati strukturu programa, operatore, pravila oblikovanja i interpunkciju jezika Turbo Pascal.

3 slajd

TURBO PASCAL programski sustav. Pascal je univerzalni programski jezik koji vam omogućuje rješavanje širokog spektra problema obrade informacija.

4 slajd

1) programski jezik Turbo Pascal; 2) integrirano programsko okruženje (prevodilac: prevodi program u strojni kod i interpreter: izvršava naredbe) SASTAV PROGRAMSKOG SUSTAVA TR:

5 slajd

1) latinična slova - velika i mala; 2) slova ruske abecede - velika i mala; 3) brojevi - od 0 do 9; 4) znakovi operacija - +, -, /, *, =, =; 5) znakovi za razdvajanje - () ( ) ; . , ‘ _% & # itd. Abeceda programskog jezika TURBO PASCAL

6 slajd

7 slajd

Zaglavlje programa Odjeljak deklaracije varijable Odjeljak izjave (glavno tijelo)

8 slajd

Odjeljak deklaracije varijabli počinje riječju Var nakon koje slijedi zarezima odvojena lista imena varijabli iste vrste. U Pascalu postoje dvije vrste brojeva: Realni i Integer. Imena varijabli sastavljena su od latiničnih slova i brojeva, pri čemu je prvi znak slovo. VAR popis varijabli istog tipa: INTEGER; popis sličnih varijabli:REAL;

9 slajd

Operaterski dio je glavni dio programa. Početak i kraj odjeljka označeni su službenim riječima BEGIN i END , koje su operatorske zagrade. Između ovih riječi nalaze se sve naredbe algoritma napisane u Pascalu (operatori). Razdjelnik operatora je točka-zarez. Na samom kraju programa stavlja se točka. POČNI ČITATI (ulazna lista); READLN(ulazna lista); varijabla:=aritmetički izraz; WRITE(izlazna lista); WRITELN(izlazna lista); KRAJ.

10 slajd

Unos početnih podataka s tipkovnice događa se na operatoru READ ili READLN (čitaj). Naredba READLN razlikuje se od READ samo po tome što se nakon unosa podataka kursor pomiče na početak nova linija. varijabla:=aritmetički izraz; WRITE(izlazna lista); WRITELN(izlazna lista); KRAJ. READ(ulazna lista); READLN(ulazna lista);

11 slajd

varijabla:=aritmetički izraz; Operator aritmetičke dodjele: lijevo je varijabla, desno je aritmetički izraz koji se procjenjuje. Složeni znak:= čita se kao "dodijeliti". Prvo se procjenjuje aritmetički izraz, a zatim se rezultirajuća vrijednost dodjeljuje varijabli. Primjer: a:= sqr (x) + sin (y) / (12*z + 5)

12 slajd

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x zbrajanje oduzimanje množenje dijeljenje cijeli broj dijeljenje ostatak dijeljenja

13 slajd

Pravila za pisanje aritmetičkih izraza Aritmetički izraz se piše u nizu Ne možete staviti dva znaka aritmetičkih operacija u niz Ne možete izostaviti znak množenja između faktora Koriste se samo zagrade Redoslijed operacija određen je njihovim prioritetima () F(x ) * / + - div mod

14 slajd

Izlaz rezultata se događa pomoću WRITE ili WRITELN (pisati). Rezultati se prikazuju redoslijedom kojim su navedeni. Razlika između izvršavanja naredbi WRITE i WRITELN je u tome što se nakon što se izvrši izlazna operacija na naredbi WRITELN, kursor pomiče na početak novog retka. WRITE(izlazna lista); WRITELN(izlazna lista);

15 slajd

Zadatak 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Vasya 5) “PesBarbos” 7) 8) _ABBA 9) A+B

16 slajd

programski zadatak1; var a, b: cijeli broj; x, y: pravi; započeti a:= 5; 10:=x; y:= 7,8; b:= 2,5; x:= 2*(a + y); a:= b + x; kraj. naziv varijable mora biti lijevo od znaka:= cijeli broj i razlomački dijelovi su odvojeni zarezom i neusklađenost tipa Neusklađenost tipa 2. ZADATAK: Pronađite pogreške u unosu programa.

PASCAL UVOD U PROGRAMSKI JEZIK 2006. STRUKTURA PREDMETA Sučelje i glavne definicije; struktura programa; prikazivanje tekstualnih informacija; unos s tipkovnice; povezivanje i korištenje modula sustava; rad s osnovnim tipovima podataka (cijeli broj, real, niz, polje, datoteka) rad s grafikom; korištenje potprograma (postupci i funkcije); korištenje modula. 2 SUČELJE OKRUŽENJA PASCAL Programski jezik Turbo Pascal 7.0 nalazi se u ljusci alata. Sadrži: uređivač teksta s više prozora; povezivač programa; program za ispravljanje pogrešaka; sustav pomoći; sastavljač. 3 SUČELJE PASCAL OKRUŽENJA 4 Popis otvorenih datoteka: Alt + 0 Brzi pristup otvorenim datotekama: Alt +<№ окна> OSNOVNE DEFINICIJE Rezervirana riječ je posebna riječ koju koristi programski jezik za odvajanje logičkih područja programa. Operator je jezična naredba koja izvodi neku radnju (provjera uvjeta, organiziranje petlje, itd.) Identifikator je ime koje programer slobodno bira za elemente programa. Tip podataka je karakteristika identifikatora koja definira skup vrijednosti koje može poprimiti (cijeli ili razlomački brojevi, znakovni nizovi, logički izrazi itd.). 5 OPĆA STRUKTURA PROGRAMA Program Program_name; Koristi odjeljak dodataka; Dio naljepnica s opisom naljepnica; Const dio deklaracije konstanti; Odjeljak tipa koji opisuje izvorne tipove podataka; Var odjeljak deklaracije varijable; Početak Glavni dio programa; kraj. Minimalni kod: 6 IZLAZ NA ZASLON Za prikaz informacija na ekranu koriste se sljedeći operatori: Write ili Writeln. F9 - Prevedi + Provjeri Ctrl+F9 - Pokreni F9 → Ctrl+F9 - Izbjegni greške Prikaz rezultata pokretanja programa 7 IZLAZ NA ZASLON Rezultat naredbi: WRITE "Prazna" naredba WRITELN dodaje prazan niz WRITELN 8 VJEŽBA Prikaz informacija na zaslon kao što je prikazano ispod Hello! Drago mi je da te vidim! zovi me kompjuter. Korišteni materijal: Izlazni iskazi: Write, WriteLn "Prazni" operator WriteLn; umeće prazan niz. 9 POVEZIVANJE DODATNIH MODULA Dodatni moduli proširuju mogućnosti vaših programa uvođenjem dodatnih operatora. Moduli se povezuju u odjeljku Upotreba. ProgramMy; Koristi Module1, Module2 ; ________________________ ________________________ ____________________________ ________________________ MODUL 1 Skup resursa 1 … MODUL N Moduli: Vlastiti skup resursa sustava N Brisanje zaslona s tekstom Čeka se pritisak na tipku Povezani modul pod nazivom CRT 10 IZLAZ ZASLONA NASLUČAJNIM GotoXY (X, Y: cijeli broj) Gdje je X, Y – poznavanje koordinirati na ekranu. X može poprimiti vrijednosti od 1 do 80, a Y od 1 do 25. Na primjer: Program Moj_program; (Spajanje modula) Koristi Crt; Početak (Očisti zaslon) ClrScr; (izlaz podataka) GotoXY(1, 1); napisati("▒"); GotoXY(80, 1); napisati("▒"); GotoXY(1, 25); napisati("▒"); GotoXY(80, 25); napisati("▒"); (kašnjenje zaslona) ReadKey; kraj. Program prikazuje simbol “▒” (šifra 177) u kutovima ekrana. 11 IZLAZ U BOJI TextColor (Boja); Određuje boju znakova. TextBackground(Boja); Određuje boju familijarnosti. ProgramMyProgram; Koristi crt; Begin TextColor(Red); TextBackGround(plavo); Write("Izvan"); Boja teksta (bijela); Write("trava, "); Boja teksta (zelena); TextBackGround(žuto); Write("na travi"); TextBackGround(Magenta); Write("ogrjevno drvo. "); Kraj. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Boje Crna Plava Zelena Cijan Crvena Magenta Smeđa Svijetlosiva Tamnosiva SvijetloPlava Svijetlozelena SvjetloCijanska SvjetloCrvena SvjetloMagenta Žuta Bijela 12 – crna – plava – zelena – cijan – crvena – lila - smeđa - svijetlo siva - tamno siva - plava - svijetlo zelena - svijetlo cijan - ružičasta - svijetlo lila - žuta - bijela VRIJEDNOSTI Podatkovne operacije IDENTIFIKATORI Pojam identifikator odnosi se na konstante, varijable, funkcije, procedure, komponente i druge korisnički definirane objekti Dopušteni znakovi: latinična slova, brojevi, podvlaka Ograničenja: Ne smije počinjati znamenkom, ali može počinjati podvlakom Ne može biti više riječi Ne može se podudarati ni s jednom ključnom riječi Identifikatori ne razlikuju velika i mala slova. Netočni identifikatori: Podaci Moje ime 2Array Var ( ( ( ( koriste se ruski znakovi ) Postoji razmak ) Počinje brojem ) Odgovara ključnoj riječi ) brojevi, znakovni nizovi, logički izrazi itd.). 16 INTEGER DATA TYPE 17 Konačan skup mogućih vrijednosti type byte shortint word integer longint range 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! Izvan raspona dovodi do pogreške! veličina DEKLARACIJA VARIJABLI Varijabla je identifikator koji može pohraniti neku vrijednost (broj, niz, itd.) i promijeniti je tijekom rada programa. Sintaksa: Var<имя переменной> : <тип переменной>; Program program_name; Koristi odjeljak dodataka; Var odjeljak deklaracije varijable; Početak Glavni dio programa; kraj. Prostor rezerviran u memoriji računala za 3 varijable 18 POSTAVLJANJE VRIJEDNOSTI VARIJABLAMA Za postavljanje vrijednosti varijable morate koristiti operator dodjele:= Sintaksa zapisa:<Переменная> := <Значение>; Vrijednost 3 upisuje se u varijablu (cijeli broj) pod nazivom A 19 OPERACIJE S CIJELOBROJNIM VARIJABLAMA 20 Aritmetičke operacije: + - * / Standardne operacije: div | mod | sqr Ne može se koristiti s cjelobrojnim tipovima Varijabla imena S postavljena je na zbroj vrijednosti pohranjenih u varijablama X i Y Vrijednost pohranjena u varijabli imena S prikazana je na ekranu VJEŽBA 21 1. Napišite program koji prikazuje rezultat množenja brojeva 15 i 20 2. Napišite program koji prikazuje vrijednost funkcije f 2 x 3 y , kada je x=11, y=3 Korišteni materijal: Varijable su deklarirane u odjeljku Var Cjelobrojni tip se zove Integer Sintaksa za dodjeljivanje vrijednosti varijabli je:<Переменная> := <Значение> ; Iza svakog operatera nalazi se znak; (osim početka i zadnjeg kraja) STVARNI TIP PODATAKA Skup vrijednosti √ √ Redni tip Realni tip Jednosmjerna kompatibilnost: Real Integer Real! Izvan raspona i nepoštivanje pravila kompatibilnosti dovodi do pogreške! 22 OPERACIJE S REALNIM VARIJABLAMA 23 Standardne operacije: pi | Trg | grijeh | Cos | trbušnjaci | exp | Ln Okrugli | Trunc (realni → cijeli broj) Na primjer (X, S – Realni tip): X:= pi/3; S:= Sin(X) * 100; Napiši(Okruži(S)); Omjer vrijednosti pohranjenih u varijablama X i Y unosi se u varijablu pod nazivom S. Položaj broja i broj znakova u razlomku broja E označava snagu broja. 5.6E-5 = 5.6·10-5 STRING DATA TYPE 24 Stringovi su uređeni skup znakova. Nizovi su zatvoreni apostrofima. Nizovi nisu kompatibilni s cjelobrojnim i realnim tipovima. Tip Raspon Niz 255 znakova ( Osnovni operatori niza ) + ( ulančavanje ) Dužina (S); ( duljina niza ) Na primjer: X:= 'Vasya'; Write('In your name', Length(X), 'lit.'); S:=X; X:=S; VJEŽBA Napišite program koji prikazuje rezultat dijeljenja brojeva 12,89 i 0,22 sa samo tri značajne znamenke iza decimalne točke, u sljedećem formatu: prvi broj podijeljen drugim brojem = rezultat Write (X:1:3, ' razdelit na ' , y:1 :3, ' = ' z:1:3) Upotrijebljeni materijal: Vrsta niza naziva se String Stringovi su zatvoreni u postrofe Stringovi su spojeni znakom + U iskazu prikaza, različiti tipovi odvojeni su zarezom 25 TIPKOVNICA INPUT 26 Kako biste unijeli podatke s tipkovnice, morate koristiti operator unosa: Read ili ReadLn. Sintaksa: Čitaj (N1, N2, ... Nn); Gdje su N1,N2, ... Nn varijable (cijeli broj, real, string) U varijablu X upisuje se vrijednost unesena s tipkovnice.Nakon unosa vrijednosti potrebno je pritisnuti tipku Enter.Ako u varijabli ima više varijabli operatorom, unose se odvojeni razmakom ili pritiskom na tipku Enter VJEŽBA 27 1. Napišite mini-kalkulator koji izračunava zbroj dvaju brojeva unesenih s tipkovnice. 2. Napišite program koji traži vaše ime, a nakon što napišete svoje ime prikazuje pozdrav. Na primjer, ako ste unijeli ime Vanja, program će prikazati izraz: Zdravo, Vanja!!! Korišteni materijal: Ulazni iskazi: Read, ReadLn OPERATORI UVJETNI OPERATOR 29 Uvjetni operator implementira “grananje”, tj. mijenja redoslijed izvršavanja operatora ovisno o istinitosti ili netočnosti nekog uvjeta. Provjera uvjeta NE Radnja 1 Ići ću na plažu Pada kiša DA Radnja 2 Uzet ću suncobran Radnja 3 Ići ću u kino PROVJERI UVJETE Operacije usporedbe: > - više< - меньше = - равно >= - veće ili jednako<= - меньше или равно <>- nije jednako 30 Logičke operacije: Ne I Ili - Ne -I - Ili Na primjer: Ako je moja visina > Petyina visina, Onda sam viši od Petye Ako (pada kiša) Ili (pada snijeg), Onda ću ostati na dom Ako Ne ((pada kiša ) I (vjetar)), onda ću ići u šetnju Kada se koristi logičke operacije, uvjeti su u zagradama SINTAKSA UVJETNOG IZJAVA Kratki oblik: Ako<условие>zatim<оператор>; Na primjer, ako je vrijednost u varijabli X manja od 0, tada se vrijednost 1 upisuje u istu varijablu: Ako je X<0 Then X:= 1; Полная форма: If <условие>zatim<оператор_1>drugo<оператор_2>; Na primjer: If X>5 Then X:= X - 1 Else X:= X + 1; Nakon riječi Then i Else može se koristiti samo jedan operator. Prije riječi Else znak; nedostaje 31 VJEŽBA 32 1. Napišite program koji prima ulazni iznos u dolarima i iznos u eurima, a zatim prikazuje u kojoj je valuti iznos veći (1 dolar = 28 rubalja, 1 euro = 35 rubalja) 2. Napišite program , koji uzima tri broja kao ulaz, a zatim prikazuje njihov maksimum. Korišteni materijal: Oblici uvjetnog operatora: If<условие>Zatim<оператор>; Ako<условие>Zatim<оператор_1>Drugo<оператор_2>; Prije drugog znaka; nije postavljeno Operacije usporedbe: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Zatim započnite X:= 1; Y:= -1; WriteLn('Informacija prihvaćena'); End Else WriteLn('Greška'); 33 CASE SELECT OPERATOR Izborna naredba koristi se za zamjenu ugniježđenih konstrukcija uvjetne naredbe. Sintaksa zapisa velikih i malih slova<порядковая_переменная>od<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Drugo<оператор_N+1>; kraj; Možete koristiti zagrade u naredbi odabira Opcijski niz 34 SELECT STATEMENT CASE Slučaj Visina učenika 16..30: Vi ste učenik osnovne škole; 31,32,33: Vi ste u razredu 5-6; 34..50: Vi ste srednjoškolac. Zarez se koristi za popis vrijednosti, dvotočka se koristi za odabir raspona. Inače očito niste student; kraj; Slučaj x od -128..-1: writeln('Negativno'); 0: writeln('Ništa'); 1..127: writeln('Pozitivno') Else WriteLn('Izvan raspona'); kraj; 35 VJEŽBA Napišite program koji zadanim brojem prikazuje odgovarajući dan u tjednu. Na primjer, unesite broj 2, program bi trebao ispisati 'utorak'. Ako je broj izvan 1..7, tada bi trebala biti prikazana poruka da ne postoji takav dan. Korišteni materijal: Operator odabira: Slučaj<порядковая_переменная>od<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Drugo<оператор_N+1>; kraj; 36 CIKLUSI 37 Algoritmi se nazivaju ciklički, u kojima se izvršavanje nekih operatora provodi opetovano s istim modificiranim podacima (na primjer, postupak množenja brojeva njihovim višestrukim zbrajanjem). U Pascalu postoje tri operatora petlje: For (petlja s parametrom ili za određeni broj ponavljanja) While (petlja WHILE) Ponavljanje (petlja BEFORE) Ako je poznat broj ponavljanja, onda je bolje koristiti operator petlje s parametar. PETLJA S PARAMETROM 38 Petlja za određeni broj ponavljanja s povećanjem ili smanjenjem vrijednosti parametra For (param) := (start_value) To (end_value) Do (operator) ; Tijelo petlje Napomene Parametar je cjelobrojnog tipa; Možete koristiti operatorske zagrade u petlji; Ne možete promijeniti parametar petlje u tijelu petlje; Parametar ciklusa se povećava za jedan; Početna vrijednost > krajnja vrijednost, inače se tijelo petlje zanemaruje; Za smanjenje parametra, umjesto Do, koristite DownTo. PETLJA S PARAMETROM 39 Napišite program koji traži cijele brojeve (a, b), gdje je := <нач_зн>Do<кон_зн>Čini<оператор>; Parametar je cjelobrojnog tipa (obično Integer); Možete koristiti operatorske zagrade u petlji; Parametar petlje se povećava za 1. 40 PETLJA WHILE. dok (uvjet) do (izjava); U tijelu koda napisanom ispod, petlja se nikada neće izvršiti: x:=1; Dok je x>1 do x:=x-1; Možete dobiti beskonačnu petlju. Na primjer: x:=1 Dok je x>0 do x:=x+1; 41 WHILE LOOP Program koji prikazuje zbroj brojeva od a do b. Dok nije pritisnuta tipka, započnite Delay(2000); kraj; Petlja se izvodi sve dok promjenjiva varijabla f ne postane veća od vrijednosti b 42 VJEŽBA 43 1. Astronauti su odlučili posaditi breze na Mjesecu i svake godine kako bi udvostručili broj breza, prve godine su posadili 3 breze. Ispiši na ekranu za koliko će godina broj breza prijeći 10 000. 2. Napiši program koji određuje najveći broj unesenih brojeva s tipkovnice (unos broja završava brojem 0). Ispod je preporučeni izgled zaslona: Unesite brojeve. Za dovršetak unosa unesite 0. 89 15 0 Maksimalan broj je 89. Korišteni materijal: naredba While petlje: While<условие>čini<оператор>; Dok petlja prvo testira uvjet, i samo ako je istinit, izvršava glavni dio petlje. REPEAT LOOP 44 Repeat petlja prvo izvršava tijelo petlje i tek onda provjerava uvjet Repeat (loop_body) Until (uvjet); Nema potrebe za korištenjem složene izjave u ponavljanju petlje, jer ova konstrukcija omogućuje izvođenje ne jedne, već nekoliko naredbi zatvorenih između riječi Repeat i Until. REPEAT LOOP ("Do tada") Program koji prikazuje zbroj brojeva od a do b. Petlja se izvodi sve dok promjenjiva varijabla f ne postane veća od vrijednosti b 45 USPOREDBA PETLJI For While Repeat 46 Odabir modela petlje ovisi samo o pogodnosti njegove upotrebe u određenoj situaciji. Gotovo uvijek možemo koristiti drugu vrstu petlje umjesto jedne.VJEŽBA Izračunajte vrijednost funkcije y x 3 x 2 16 x 43 za x koji varira u rasponu od -4 do uključivo 4 s korakom od 0,5. Korišteni materijal: Izjava petlje Ponavljanje: Ponavljanje<тело_цикла>Do<условие>Petlja Repeat prvo izvršava tijelo petlje, a tek onda provjerava uvjet 47 PREKIDI CIKLUSA 48 Za fleksibilnu kontrolu cikličkih operatora koriste se procedure: Break - izlaz iz petlje; Nastavi - završetak sljedećeg prolaza ciklusa; Primjeri: Pronađite minimalni broj i za koji je zbroj brojeva od 1 do i veći od 100. Čim s (zbroj brojeva od 1 do i) postane veći od 100, pokreće se naredba break i petlja izlazi . s:=0; za I:= 1 do 100 započnite ako je s>100 zatim prekid; s:= s + i; kraj; Writeln ('minimalni broj i takav da je (1+2+..+i)>100 jednako ',i); S tipkovnice se unosi 10 brojeva, au petlji se uzima u obzir zbroj samo pozitivnih brojeva. Ako je broj negativan, tada se izvršava naredba continue, koja započinje sljedeći prolaz petlje. s:=0; za I:= 1 do 10 započnite Readln(k); ako k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A := 7; NIZOVI Niz je deklariran u odjeljku Var: (Ime) : Niz [ (početna_vrijednost) .. (krajnja_vrijednost) ] od (tip) ; Primjeri deklaracije polja: Var A: Niz niza; B: niz realnih; C: niz cijelih brojeva; Primjeri popunjavanja nizova vrijednostima: A:='Vasya'; A:='Petya'; O:='Maša'; A:='Olesya'; Napiši(A); Za f:=1 do 10 napravite C[f] := f*2; Za f:=1 do 10 napravite WriteLn(C[f]); 51 VJEŽBA 52 Napišite program koji od korisnika traži 7 cijelih brojeva i pohranjuje ih u niz. Niz sadrži najveći element i prikazuje se na ekranu. Na primjer: Unesite 1. broj: 4 Unesite 2. broj: 8 Unesite 3. broj: 9 Unesite 4. broj: 2 Unesite 5. broj: 4 Unesite 6. broj: 5 Unesite 7. broj: 0 Maksimalni broj: 9 Korišteni materijal: Deklaracije polja:<Имя>:niz[<нач_зн> … <кон_зн>] od<тип>; Pristup polju:<Имя массива> [ <Индекс>] GENERATOR SLUČAJNIH BROJEVA (RNG) Za generiranje slučajnih brojeva u programu se koriste sljedeći operatori: Randomize – RNG inicijalizacija. Deklariše se samo na samom početku programa; Random - generira slučajni broj od 0 do 1 (stvarni tip); Random (N) - generira slučajni broj od 0 do N-1 (cjelobrojni tip); 53 VIŠEDIMENZIONALNI NIZOVI 54 Popis intervala za svaku dimenziju polja (Ime) : Niz [ (početna_vrijednost) .. (krajnja_vrijednost) , (početna_vrijednost) .. (krajnja_vrijednost) , (itd) ] od (tip) ; Primjer deklaracije dvodimenzionalnog niza (matrice, tablice) sa 4 reda i 6 stupaca: Var A: Array of Integer; Primjer popunjavanja niza: Za i:=1 do 4 do Za j:=1 do 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 VJEŽBA Napišite program koji popunjava dvodimenzionalni niz slučajnim brojevima od -10 do 20 i ispisuje zbroj elemenata koji se nalaze duž dijagonale stola. Korišteni materijal: RNG inicijalizacija: Nasumično postavljanje Nasumični broj od 0 do N-1: Nasumično (N) █ 8e*BOtCDrTVzHGJ1aBD>@B\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq >vF(LmBcV^Adz4P4.6b]o(QkB8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(QkV █ 8c8df]e"v,su>+),VAEFBjFV,W$Q- █ y0G1GjN$-eB|sqZ0`QnV%\BD%y █ █ █ - terminator linije █ - varijabla datoteke terminatora Kreiranje, čitanje, pisanje, zatvaranje RAD S DATOTEKAMA Redoslijed radnji pri radu s datotekama: 1. Deklaracija varijable datoteke (FP); 2. Pridruživanje FP datoteci; 3. Otvaranje datoteke za čitanje/pisanje; 4. Operacije s datotekom 5. Zatvaranje datoteke (također je prekinuta veza između datoteke i FP-a) 1. Deklaracija FP-a<Имя>: Datoteka od<тип> ; <Имя>:tekst; Varf: Tekst; h: datoteka cijelih brojeva; 2. Povezivanje FP-a s datotekom dodjele (<ФП>, <имя файла>); Dodijeli (f, 'c:\my\Data.ghm') 58 RAD S DATOTEKAMA 3. Otvaranje datoteke za čitanje/pisanje Reset (<ФП>); - otvara datoteku za čitanje Rewrite (<ФП>); - otvara datoteku za pisanje 4. Operacije s datotekom Read (<ФП>, <П1> , <П2>, …); - učitava u varijable<П1>, <П2>itd. jedan element na poziciji pokazivača. Pisati(<ФП> , <П1> , <П2>, …); - zapisuje vrijednosti varijabli u datoteku<П1>, <П2>itd. jedan element na poziciji pokazivača. EoLn(<ФП>); - vraća True ako je dosegnut kraj niza. EoF(<ФП>); - vraća True ako je dosegnut kraj datoteke. 5. Zatvaranje datoteke Zatvori (<ФП>); 59 RAD S DATOTEKAMA Pojednostavite program ako znate da je matrica 5x5 (koristite For petlju) 60 VJEŽBA 61 Napišite program "DOM-3". Prva datoteka sadrži imena sudionika u nominativu. U drugom ista imena, ali u akuzativu. U trećem - popis izraza osjećaja ili neke vrste radnje (voli, ne voli, ljubi, želi ugristi, voli, poštuje, mrzi, želi vidjeti, grli). Program bi trebao nasumično uzeti informacije iz tih datoteka i stvoriti novu prema sljedećem principu:<имя в им. пад> <чувство/действие> <имя в вин. пад> Olga voli Sergeja Oleg želi vidjeti Romana Katya poštuje Nastju Itd. Materijal koji se koristi: Naziv operatora: Assign, Rewrite, Reset, Write, Read, Close. GRAPHICS GRAPHICS Za rad s grafikom u Pascalu potrebne su dvije datoteke - modul graph.tpu i upravljački program grafičkog adaptera egavga.bgi. Prvi je u direktoriju \UNITS, a drugi je u \BGI. ! egavga.bgi vozač. Obavezno kada se pokreće exe datoteka! Za crtanje je potrebno: 1. spojiti modul GRAPH (u dijelu Uses); 2. inicijalizirati grafiku (InitGraph); 3. nacrtati nešto; 4. zatvorite grafički mod (CloseGraph) 63 GRAFIKA Inicijalizacija grafičkog moda Nacrtajte liniju. Olovka ide od točke (0,0) do točke (639, 479). PROGRAM Primer_1; Koristite Graph, crt; VarGd,Gm: cijeli broj; POČETAK Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Line (0,0,639,479); ReadKey; CloseGraph; END. 639 px. Koordinatni sustav 479 px. trokut 2. Nacrtajte pravokutnik u središtu zaslona pomoću strane dva puta manje od odgovarajućih strana ekrana Materijal koji se koristi: Grafički modul: Graph Inicijalizacija grafike: InitGraph Zatvaranje grafičkog načina: CloseGraph;GRAPHICS + COLOR SetColor(Color: word); Postavlja boju olovke GetColor: word; Vraća boja olovke SetBkColor(boja: riječ); Postavlja boju pozadine GetBkColor: riječ; Vraća boju pozadine Boje Crna Plava Zelena Cijan Crvena Magenta Smeđa SvijetloSiva TamnoSiva SvjetloPlava SvjetloZelena SvjetloCijansko SvjetloCrveno SvjetloMagenta Žuta Bijela 66 - crna - plava - zelena - cijan - crvena - lila - smeđa - svijetlo siva - tamno siva - cijan - svijetlo zelena - svijetlo cijan - ružičasta - svijetlo lila - žuta - bijela GRAFIČKI PRIMITIVI Linija (x, y); Crta liniju od trenutne koordinate olovke do koordinata (x, y). Premjesti na (x, y); Postavlja olovku na (x,y) koordinate. PutPixel(x, y, boja); Bojom crta točku na koordinatama (x,y). GetPixel(x, y): riječ; Vraća boju točke na koordinatama (x,y). Pravokutnik(x1, y1, x2, y2); Crta obrise pravokutnika. Krug (x, y, r); Crta kružnicu sa središtem u (x,y) i radijusom r. SetLineStyle (Ln, 0, T) Mijenja parametre obrisa. Ln - stil linije (0..3): 67 x1, y1 T - debljina linije: 1 = normalno; 3 = debelo. FillEllipse(x, y, xr, yr); Crta ispunjenu elipsu sa središtem na (x,y) s polumjerima Xr i Yr. PostaviFillStyle(Tip, Boja); Postavlja vrstu (0..11) i boju šrafure zatvorenih oblika ClearDevice; Čisti grafički zaslon bojeći ga trenutnom bojom pozadine x2, y2 GRAFIČKE PRIMITETE 68 VJEŽBA 69 1. Napišite program koji na ekranu monitora crta kuću; 2. Napišite program koji na ekranu monitora iscrtava zvjezdano nebo sa zvijezdama slučajnog radijusa (od 1 do 5 piksela) i slučajnog položaja. Boja je također nasumična (bijela, svijetlo siva, tamno siva); Korišteni materijal: SetColor(Boja: riječ); - Postavlja boju crteža SetBkColor (boja: riječ); - Postavlja trenutnu boju pozadine. linija(x, y); - Crta liniju od trenutne koordinate pera do (x,y) koordinata. Premjesti na (x, y); - Postavlja olovku na (x,y) koordinate. PutPixel(x, y, boja); - Bojom crta točku s koordinatama (x,y). Pravokutnik(x1, y1, x2, y2); - Gradi obris pravokutnika od linija trenutne boje. Krug (x, y, r); - Crta kružnicu sa središtem u (x,y) i radijusom r. FillEllipse(x, y, xr, yr); - Crta popunjenu elipsu sa središtem (x,y) s radijusima Xr i Yr. GRAFIKA + ANIMACIJA Pauza u ms. 70 PODPROGRAMI PODPROGRAMI Potprogrami vam omogućuju da odaberete ponavljajući dio koda u zasebne fragmente i umetnete ih na potrebna mjesta u programu. Funkcija, za razliku od procedure, vraća rezultat poziva. Procedure Funkcije Potprogrami: napisani između ključne riječi Početak Kraj; identificiraju se nazivima koji su napisani prema pravilima za određivanje identifikatora; može imati ulazne i izlazne parametre; potpuno ponovite strukturu glavnog programa. 72 Program Moj; Potprogram 1 [Kod potprograma 1] Podprogram 2 [Kod potprograma 2] Početak potprograma 2 Potprogram 1 Primjer sistemskih rutina: Write("OK"); ClrScr; Duljina (S); slučajan; // // // // procedura s jednim parametrom procedura bez parametara funkcija s jednom parametrom funkcija bez parametara Potprogram 2 Kraj. PODPROGRAMI (SPR) Ugniježđenje potprograma Program Potprogram 1 Potprogram 3 Potprogram 4 Potprogram 2 . Imena varijabli opisanih u DEP-u mogu biti ista kao imena varijabli iz drugih DEP-ova (ista varijabla može biti deklarirana u svakom od DEP-ova). Ime varijable opisane u PPR-u štiti istoimene varijable iz PPR-a koji obuhvaća danu (ako su iste varijable deklarirane u PPR1 i PPR3, te će varijable biti jedinstvene u svakom PPR-u). Varijable programa se nazivaju globalne, a varijable potprograma lokalne. PROCEDURE BEZ PARAMETARA Sintaksa zapisa: Procedura (naziv procedure); (Odjeljak varijabli, konstanti, tipova, oznaka, modula) Begin (Tijelo procedure); kraj; Primjer korištenja procedure bez parametara: 74 PROCEDURE BEZ PARAMETARA Primjer izbjegavanja istoimenih varijabli: Program My_program; Koristi crt; varA:niz; // Opis procedure Procedure My_Procedure; varA:niz; Početak A:= "Podrutina"; Upišite(A); kraj; Početak A:= "Tijelo"; Upišite(A); moj_postupak; Upišite(A); kraj. // Poziv procedure 75 PROCEDURE S PARAMETRIMA 76 Kako bi potprogrami bili univerzalniji, koriste se posebni mehanizmi za razmjenu podataka između programa i njegovih potprograma. Sistemske procedure s parametrima: SetColor (Red); ( Procedura s Rectangle (0, 0, 639, 479); ( Procedura s InitGraph (Gd,Gm,'d:\BP\bgi"); ( Procedura s ( parametri jedan parametar ) nekoliko parametara ) nekoliko različitih vrsta ) ) Snimanje procedure sintakse s parametrima Procedura (Ime) ((Područje ulaznih varijabli) Var (Područje izlaznih varijabli (svaka varijabla ima svoju Var))); Struktura područja: Varijabla_1, Varijabla_2, … : Vrsta; .. ......... ............. Varijabla_N-1, Varijabla_N, ... : Vrsta; Bilo koja regija može biti odsutna PROCEDURE S PARAMETRIMA Upotreba ulaznih parametara Procedura za crtanje pravokutnik koji obrubljuje ekran, određena boja Bez parametara S parametrima Procedura Cir; Početak PostaviBoju (i); PostaviBkBoju (b); Pravokutnik (0, 0, 639, 479); Kraj; Procedura Cir (i, b:Integer); Početak SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Pozivanje procedure u programu: Pozivanje procedure u programu: i:=6; b:=12; Cir; Cir (6, 12);77 POSTUPCI S PARAMETRIMA Korištenje izlaznih parametara radijan. PROGRAM EX_26_3; VAR x,a: stvarno; POSTUPAK Rad(alfa: stvarno; var betta: stvarno); (izlazna varijabla) BEGIN Betta:= pi*alfa/180; KRAJ; BEGIN Write("Unesite kut u stupnjevima: "); readln(x); Rad(x, a); (Poziv procedure) Writeln("He je jednak kutu u radijanima = ",a:6:4); KRAJ. 78 VJEŽBA 79 1. Napišite proceduru za crtanje trokuta u sljedećem formatu: Trokut (x1,y1, x2,y2, x3,y3, boja) 2. Napišite proceduru za izračunavanje površine pravokutnika u sljedećem obliku format: SRect (a, b, S) gdje je S izlazni parametar procedure. Korišteni materijal: Postupak (Naziv) ((Područje ulazne varijable) Var (Područje izlazne varijable)); Struktura područja: Variable_1, Variable_2, … : Vrsta; ........................ Varijabla_N-1, Varijabla_N, … : Vrsta; FUNKCIJE 80 Sintaksa funkcije Funkcija ((Područje ulazne varijable) Var (Područje izlazne varijable)): (Tip) ; Dizajn procedure Dizajn funkcije Procedura S(a,b:real; var s:real); Početak s:= a+b; kraj; Funkcija Sum(a,b: real): real; Početni zbroj:= a+b; kraj; Poziv procedure Poziv funkcije S(10, 20, A); Napiši(A); A:= S(10, 20); Napiši LN(A); Napiši LN (S(20, 30)); Preporučljivo je oblikovati neki potprogram kao funkciju samo ako se očekuje neki rezultat njegovog rada. Ako je potprogram usmjeren samo na izvođenje određenog niza radnji (prikazivanje, crtanje itd.), bolje ga je napisati kao proceduru. VJEŽBA Napišite funkciju za izračunavanje površine pravokutnika u sljedećem formatu: SRect (a, b) Korišteni materijal: Funkcija (Naziv) ((Ulazna površina varijable) Var (Površina izlazne varijable)): (Tip) ; Struktura područja: Variable_1, Variable_2, … : Vrsta; ........................ Varijabla_N-1, Varijabla_N, … : Vrsta; 81 MODULI MODULI 83 Jedinica (UNIT) je samostalna programska cjelina čije resurse (procedure i funkcije) mogu koristiti drugi programi. ProgramMy1; Koristi Module1, Module2 ; __________________________ __________________________ ________________________________ __________________ MODUL 1 Komplet resursa 1 … Program My2; Koristi Module1, Module2 ; __________________________ __________________________ ________________________________ __________________ MODUL N Skup resursa N Moduli su povezani s programom kroz odjeljak USES MODULES. STRUKTURA 84 Modul se sastoji od sljedećih dijelova: 1. Zaglavlje modula. 2. Dio sučelja. (opisi vidljivih objekata) 3. Provedbeni dio. (opisi skrivenih predmeta) 4. Inicijalizacijski dio (po izboru). Jedinica (naziv modula); Sučelje ( Odjeljak globalnih varijabli, konstanti, tipova) ( Moduli ) ( Popis zaglavlja procedura i funkcija ) Implementacija ( Odjeljak lokalnih varijabli, konstanti, tipova) ( Implementacija procedura i funkcija ) Početak (Inicijalizacijski dio ) Kraj. ! Naziv zaglavlja modula mora odgovarati nazivu datoteke modula! MODULI Primjer modula: Jedinica Moja_jedinica; Varms sučelja: Array of Real; ( Globalni niz ) Funkcija Cub(x:integer):Integer; ( Funkcija Cub = x^3 ) Funkcija ext4(x:integer):Integer; ( Funkcija ext4 = x^4 ) Funkcija implementacije Cub(x:integer):Integer; ( Implementacija funkcije Cub ) Begin Cub:= x*x*x; kraj; Funkcija Ext4(x:cijeli broj):Cijeli broj; ( Implementacija funkcije ext4 ) Begin Ext4:= x*x*x*x; kraj; kraj. 85 VJEŽBA 86 Napišite modul s jednom funkcijom i jednom procedurom: ( Izračun funkcije X1=1/x ) X1(a:real):real; ( Postupak za ispis riječi S na ekranu, na poziciji X, Y WriteXY(S: String; X, Y: Iteger); Korišteni materijal (struktura modula): Jedinica (Ime modula); Sučelje ( Sekcija globalnih varijabli, konstante, tipovi) ( moduli ) ( Popis zaglavlja procedura i funkcija ) Implementacija ( Dio lokalnih varijabli, konstanti, tipova) ( Implementacija procedura i funkcija ) Početak ( Dio inicijalizacije ) Kraj. )