Prezentacija "Programski jezik Pascal. Uređivač teksta jezika.". Prezentacija o osnovama Pascal programiranja na Pascalu

Nikolaus Wirth Ali bilo bi pogrešno misliti da je Pascal jezik isključivo za učenje. Evo šta je o tome rekao N. Wirth (1984): „Tvrdilo se da je Pascal razvijen kao jezik za podučavanje. Iako je ova izjava tačna, ali njena upotreba u obuci nije bila jedina svrha. Zapravo, ne vjerujem u uspješnost korištenja tokom treninga takvih alata i tehnika koje 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 kreiranje 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, je moćan programski jezik.


Zašto PASCAL? Programski jezik Pascal dobio je ime po francuskom naučniku Blaiseu Pascalu, koji je izumio prvu mehaničku mašinu za računanje davne 1642. godine. Bio je to sistem međusobno povezanih zupčanika, od kojih je svaki odgovarao jednoj cifri decimalnog broja i sadržavao je brojeve od 0 do 9. Kada bi se točak potpuno okrenuo, sledeći se pomerao za jednu cifru. Pascalova mašina bila je mašina za sabiranje.


Osnovne informacije o programskim jezicima Jezik je sistem znakova. Računarski jezik (mašinski jezik) je binarni znakovni sistem. Stoga, da bi kompjuter razumio pisani program, on mora biti preveden na jezik koji kompjuter može razumjeti. Ovaj proces prevođenja naziva se prevođenje.




Integrisano okruženje Turbo Pascal-7.0 Ogromnu ulogu u masovnoj distribuciji Pascala odigrao je Borland International. Uspela je da stvori čuveno Turbo razvojno okruženje. Bio je to veliki korak naprijed u olakšavanju procesa programiranja. Zašto turbo? Turbo u prijevodu sa engleskog slenga znači ubrzanje. Kompajler koji je deo Turbo Pascala vrlo brzo prevodi program iz programskog jezika u mašinske kodove.




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


Za snimanje naredbi, imena funkcija, objašnjenja Turbo Pascal 7.0, postoji skup strogo definiranih riječi, koje se nazivaju pomoćne ili rezervisane (ovo su engleske mnemoničke skraćenice). Funkcionalne riječi su podijeljene u tri grupe: operatori (READ, WRITELN, itd.) nazivi funkcija (SIN, COS, itd.) ključne riječi (VAR, BEGIN, END, itd.) Osnovne jezične karakteristike


Naziv vrijednosti je njena oznaka, riječ je od slova, brojeva i donjih crta, koja počinje slovom. Brojevi: cijeli brojevi, realni: fiksni zarez (-1,23; 654,2), pokretni zarez (2, 437,). Šest operacija: + sabiranje, - oduzimanje, / deljenje, * množenje, mod pronalaženje ostatka, div celobrojno deljenje.


Aritmetički izraz se konstruiše od imena, brojeva, znakova aritmetičkih operacija, matematičke funkcije. Zagrade se koriste za označavanje redoslijeda operacija. Za kvadriranje se koristi notacija sqr(x). Za izdvajanje kvadratnog korijena koristi se notacija sqrt(x). Modul se označava abs(x).


Operator dodjeljivanja Ime varijable:= aritmetički izraz. x:= 3,24 ili x:= x+4. Tip varijable 1. Ako je promenljiva sa leve strane realnog tipa, onda aritmetički izraz može biti celobrojnog ili realnog tipa. 2. Ako je varijabla s lijeve strane cjelobrojnog tipa, tada je aritmetički izraz samo cijeli broj.


Struktura programa u Pascal-u 1. dio - opis podataka i operatora. Dio 2 - programski blok. Opšti pogled na program: Program (ime programa) oznaka (lista oznaka) const (lista konstantnih vrijednosti) tip (opisi složenih tipova podataka) var (opisi podataka programa) begin (početak programskog bloka) (algoritam) kraj. (kraj programa)


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


Ulazni i izlazni iskazi: read (lista imena) - zaustavlja program i čeka da korisnik ukuca brojeve na tastaturi (odvojene razmakom) i pritisne ENTER. Na primjer: read(i, j); Nakon operacije ovog operatora, kursor se nalazi iza posljednjeg broja, ali se ne prevodi u novi red. Da biste pomaknuli kursor u novi red nakon unosa podataka, koristite naredbu readln(list of names). write (izlazna lista) - Zapisuje podatke na ekran. Izlazna lista - nazivi rezultata proračuna odvojeni zarezima i tekstovi objašnjenja u apostrofima. Na primjer: write(x=, x); Broj fiksne tačke će biti odštampan na ekranu. Na primjer: write(x=, x:6:2); ekran će prikazati broj od 6 cifara, od kojih dvije iza decimalnog zareza, (x =). Prazan izlazni operator writeln pomera kursor u novi red. readln prazan operator unosa






Rad u Turbo Pascal sistemu Alt + F10 - meni Datoteka - Novo - kreiraj novu datoteku Enter - treba staviti na kraj svakog reda Ctrl + Y - izbrisati red Enter - ubaciti red Za izvršavanje programa, izaberite Pokreni meni Prevodilac - prevodi program iz Pascal jezika u mašinski jezik i traži sintaksičke greške. 1. Ako se pronađu greške, onda će se editor vratiti, kursor će pokazati na grešku. 2. Ako se greške ne pronađu, program se izvršava










Ponekad, nakon riječi THEN i ELSE, trebate izvršiti ne jednu, već nekoliko naredbi. Tada se ovi operatori stavljaju u operatorske zagrade. Početna zagrada je riječ BEGIN, a završna zagrada je riječ END. Ne postoji tačka-zarez ispred riječi ELSE. Preporučuje se da se svaki par POČETAK - KRAJ upiše u jednu kolonu. IF uslov THEN započni naredbu 1; operater 2; izraz N kraj ELSE početak izraz 1; operater 2; operator M end ;




Program E3; var a,b: cijeli broj; započnite pisanje (unesite dva cijela broja odvojena razmakom, a zatim pritisnite); readln(a,b); ako je mod 2 = 0 onda writeln (a je paran) inače writeln (a je neparan); ako je b mod 2 = 0 onda writeln (b - paran) inače writeln (b - neparan); readln end.


3 ako a>0 6 ako a 0 6 ako a 0 6 ako a 0 6 ako a0 6 ako je naslov="3 ako a>0 6 ako a


Program E31; var a, y: real; započnite pisanje (unesite broj pa pritisnite); readln(a); ako je >0 onda y:=3, inače y:=6; napisati(y=,y); readln end. 0 zatim y:=3, inače y:=6; napisati(y=,y); readln end."> 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: real; započnite pisanje (unesite broj pa pritisnite); readln(a); ako je >0 onda y:=3, inače y:=6; napisati(y=,y); readln end."> title="Program E31; var a, y: real; započnite pisanje (unesite broj pa pritisnite); readln(a); ako je >0 onda y:=3, inače y:=6; napisati(y=,y); readln end."> !}


A+b ako a>b a*b ako a b a*b ako a b a*b ako a b a*b ako je ab a*b ako je naslov="a+b ako a>b a* b ako je a


Program E32; var a,b,x: realno; započnite pisanje (unesite dva broja odvojena razmakom, a zatim pritisnite); readln(a); ako je a >b onda x:=a+b else x:=a*b; napisati(x=,x); readln end. b onda x:=a+b ostalo x:=a*b; napisati(x=,x); readln end."> 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: realno; započnite pisanje (unesite dva broja odvojena razmakom, a zatim pritisnite); readln(a); ako je a >b onda x:=a+b else x:=a*b; napisati(x=,x); readln end."> title="Program E32; var a,b,x: realno; započnite pisanje (unesite dva broja odvojena razmakom, a zatim pritisnite); readln(a); ako je a >b onda x:=a+b else x:=a*b; napisati(x=,x); readln end."> !}




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


Organizacija ciklusa uz pomoć operatora uslovnih i bezuslovnih prelaza. Zadatak. Nađi zbir prvih dvadeset brojeva. (1+2+3….+20). a ……………20 S ………….


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


Program E5; var a, b: cijeli broj; započeti pisanje (gcd=,a); readln; kraj. napisati (Unesite dva prirodna broja odvojena razmakom); readln(a,b); dok ab do ako je a>b onda a:=a-b else b:=b-a; b zatim a:=a-b else b:=b-a;"> b zatim a:=a-b ostalo b:=b-a;"> b zatim a:=a-b ostalo 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 uradi ako je a>b onda a:= a-b else b:=b-a;"> title="Program E5; var a, b: cijeli broj; započeti pisanje (gcd=,a); readln; kraj. pisati (Unesite dva prirodna broja odvojena razmakom); readln(a,b); dok ab do ako je a>b onda a:=a-b else b:=b-a;"> !}




B onda a:=a-b; ako je b>a onda b:=b-a napiši (Unesite dva pozitivna cijela broja razdvojena razmakom); readln (a,b);" title="Program E6; var a, b: cijeli broj; počni pisati (HOD=,a); readln; kraj. ponavljaj do a=b; ako a>b onda a :=a-b; ako je b>a onda b:=b-a napiši (Unesite dva prirodna broja razdvojena razmakom); readln (a,b);" class="link_thumb"> 40 !} Program E6; var a, b: cijeli broj; započeti pisanje (HOD=,a); readln; kraj. ponavljati dok a=b; ako je a>b onda a:=a-b; ako je b>a onda b:=b-a napiši (Unesite dva pozitivna cijela broja razdvojena razmakom); readln(a,b); b onda a:=a-b; ako je b>a onda b:=b-a pisati (Unesite dva pozitivna cijela broja odvojena razmakom); readln (a,b);"> b onda a:=a-b; ako je b>a onda b:=b-a napiši (Unesite dva prirodna broja razdvojena razmakom); readln (a,b);"> b onda a:= a-b ; ako je b>a onda b:=b-a pisati (Unesite dva pozitivna cijela broja odvojena razmakom); readln (a,b);" title="Program E6; var a, b: cijeli broj; počni pisati (HOD=,a); readln; kraj. ponavljaj do a=b; ako a>b onda a :=a-b; ako je b>a onda b:=b-a napiši (Unesite dva prirodna broja razdvojena razmakom); readln (a,b);"> title="Program E6; var a, b: cijeli broj; započeti pisanje (HOD=,a); readln; kraj. ponavljati dok a=b; ako je a>b onda a:=a-b; ako je b>a onda b:=b-a pisati (Unesite dva pozitivna cijela broja odvojena razmakom); readln(a,b);"> !}




Tema lekcije: "Ciklusi (ponavljanje) u programima"

1) Ponoviti i učvrstiti znanja o izradi linearnih, granajućih programa; 2) Naučite da pišete programe koristeći ciklički operator - FOR i:=1 TO n DO Begin izjave (telo petlje) end ; 3) Primijeniti operatore u rješavanju tipičnih problema. Svrha lekcije:

Nedostaje umetanje: Program Sql; Var A, B, C, D, XI, X2: ??? ; Počnite Writeln ("Unesite koeficijente kvadratne jednadžbe'); Readln (???); D:=B*B-4*A*C; ako je D

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

1) I/O operateri; 2) izbor operatera; 3) a:=a+3 - šta će se dogoditi? 4) navesti tipove podataka; 5) Uklonite nepotrebne AND, OR, END, NOT, IF ; 6); - šta to znači? 7) Kako se označava kraj programa? 8) Navedite aritmetičke operacije. 9) Šta je 120 mod 65 = ? 10) Naredbe petlje.

Rasporedite u skladu s tim: 1. Pročitajte 2. Kraj 3. Početak 4. Cijeli broj 5. ; 6. Ako .. Zatim 7. := 8. Unesite 9. Kraj 10. Cijeli brojevi 11. Dodijelite 12. Sljedeća akcija 13. Početak 14. Ako..onda

Da li je 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: real; Pi:=3.14, WRITELN('vvedite radiuc r='), READ(r); S=Pi*r*r; WRITELN('Plošad kruga S= ', S) kraj

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

Zadatak №1 Za cijeli broj N odredite da li je paran ili neparan. 2, 4, 6, ... su parni, jer podijeljeno bez ostatka sa 2(N mod 2 =0) 1, 3, 7, ... - neparno, jer podijeljeno sa 2 sa 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,'- četno'); IF N mod 2 =1 T O Izlaz(N,'- nechetnoe'); kraj.

Zadatak № 2 Dat je dvocifreni cijeli broj N (DE), gdje je D - broj desetica, E - jedinica. Odredi da li će zbir cifara ovog broja biti 10. Primer: 28. će imati zbir S =2+8=10, ali 27. neće imati S=2+7=9 Brojaćemo desetice: D = N div 10, i 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 mnogo puta - ciklični programi (sa ponavljanjem).

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

Sum algoritam; Varijabla i,S: cijeli brojevi; Start S:=0; Za i:=1 do 100 ponavljanja Početak S:= S + i tijelo Kraj; ciklus Zaključak (S) Kraj.

programska suma; VAR i , S: cijeli broj; BeginS:=0; FOR i:=1 DO 100 DO početak S:=S+i body end; kraj petlje WRITE(S).

programska suma; VAR i , S: cijeli broj; BeginS:=0; ZA i:=1 DO 100 DO započeti S:=S+i ; tijelo WRITE('S', i, '=', s) kraja petlje; kraj.

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

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

Zadatak: 1) Prikazati kolonu tablice množenja bilo kojeg cijelog broja N brojevima od 1 do 10. Primjer: N = 5, tada će kolona biti ovakva - 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: komentirati program za zadatak "O koloni tablice množenja"

HVALA VAM NA PAŽNJI!

  1. 1 Pascal
  2. 2. Pascal Pascal je razvio švajcarski naučnik Niklaus Virt. Pascal se smatra najvažnijim alatom za podučavanje metoda strukturiranog programiranja i od 1983. godine uveden je u nastavni plan i program u školama za učenike koji se specijalizuju za informatiku. U budućnosti, jezik Pascal je poboljšan i dobio je nova svojstva koja se razlikuju od autorske verzije.
  3. 3. Pascal je relativno lak za učenje, prilično jasan i logičan, a kao prvi programski jezik koji se uči, uči dobrom stilu.
  4. 4. Kao i prirodni jezici, svaki programski jezik ima svoj stil i pravila. Sintaksa programskog jezika je skup pravila koja određuju kako da se konstruišu ispravni programi od znakova abecede.
  5. 5. Pascal abeceda 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 znak za donju crtu _ 9 cifara = 1 cifra 8 - 10 cifara<> < > <= >= := @ delimiteri (separatori): . , " () (. .) ( ) (* *) .. : ; specifikacije: ^ # $
  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 Opisi_Consts; type TypeDescriptions; var Variable_Descriptions; procedure Descriptions_of_procedures_and_functions; izvoz funkcija Opisi_izvezenih_imena; (4. Odjeljak sa izjavama) početak Izjave završavaju.
  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. Sekcija sa izjavama) početak Programski izrazi završavaju.
  8. 8. Komande programskog jezika nazivaju se operatori Operatorski separator u Pascalu je; (tačka-zarez)
  9. 9. Komentar je dio programskog teksta, omeđen simbolima ( ). Komentari u programu imaju informativnu funkciju. (Moj prvi program) program prvo; begin writeln('Hello, World!') end.
  10. 10. Primjer: programski perimetar pravougaonika; (zaglavlje programa) koristi crt; (crt - potreban za brisanje ekrana) var a,b:integer; (deklaracija varijable) P:integer; Početak (početak programa) clrscr; (očisti ekran) a:=12; (vrijednost 12 dodjeljujemo varijabli a) b:=7; (vrijednost 7 dodjeljujemo varijabli b) P:=2*(a+b); (vrijednost izraza je dodijeljena P) write("P = ",P); (prikaži vrijednost P) kraj. (kraj programa)
  11. 11. Program se u svom radu bavi podacima. Neki podaci se postavljaju prije pokretanja programa, a nakon pokretanja zadržavaju svoje vrijednosti ​​promjenjive tokom cijelog trajanja programa. To su konstante. Ostali podaci se mogu promijeniti tokom izvršavanja programa. Zovu se varijable.
  12. 12.  Razlika između varijable i konstante je sasvim očigledna: tokom izvršavanja programa vrednost varijable se može promeniti, ali vrednost konstante ne može. varijablevarijable konstantekonstante datadata
  13. 13. Pod promenljivom podrazumevamo ćeliju („kutiju“) u koju računar može da upiše („doda“) podatke. Pod ćelijom zaista mislimo na "komad memorije" koji pohranjuje informacije. Da bi se koristile informacije pohranjene u ćeliji, svaka ćelija mora imati svoje ime ili, kako se često kaže, identifikator. a b zbir 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 donjih crta koji počinje slovom ili donjom crtom i ne sadrži razmake.
  15. 15. Ime može sadržavati bilo koji broj znakova, ali 63 znaka su značajna.  Nije dozvoljeno koristiti funkcijske riječi i standardna imena kao imena u PASCAL jeziku, koji 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, tako da su imena NaMe i name ista.
  17. 17. Funkcionalna riječ je riječ koja u PASCAL jeziku ima određeno semantičko značenje koje se ne može mijenjati. Ponekad se to naziva ključnom riječi.
  18. 18. Servisne (rezervisane) riječi: ABSOLUTE EXPORTS BIBLIOTEKA SET ASSEMBLER P EXTERNAL MOD SHL I FAR NAME SHR ARRAY FILE NIL STRING ASM ZA NEAR THEN ASSEMBLER PROSLJEDI DA NE POČNE FUNKCIJU OBJEKAT OBJEKAT UPOZORENJE VRSTA OBJEKTA ISPOD VRSTA SLUČAJA ORGANO UPRAVLJANJE SLUČAJEMSTRUKON UPRAVLJANJE TORMA PRIVATNI VAR DIV INDEX POSTUPAK VIRTUALNO URADI NASLJEĐENI PROGRAM DOK JE U INLINE JAVNOM SA DRUGIM INTERFEJSOM RECORD XOR KRAJ PREKIDA PONAVLJANJE IZVOZA OZNAKA RESIDENT
  19. 19. Razmaci se ne mogu koristiti unutar dvostrukih znakova i rezerviranih riječi. Postoje imena koja se nazivaju standardnim. sin cos real true Za razliku od funkcijskih riječi, značenje standardnih imena programer može redefinirati.
  20. 20. Ovo je indikacija kompajleru koliko memorije treba rezervisati za varijable našeg programa.  U kompajliranom programu, svim varijablama je dodijeljen prostor u memoriji, a svim varijablama su dodijeljene nulte vrijednosti. Sve varijable koje se koriste u programu moraju biti deklarirane u odjeljku deklaracije varijable nakon rezervirane riječi var. Deklarisanje varijabli
  21. 21. Postoje različite vrste podataka...
  22. 22. Tipovi podataka Imena standardnih tipova su unaprijed definirani identifikatori i važeći su u bilo kojem trenutku u programu. Oni su opisani u standardnom Sistemskom modulu, koji je podrazumevano uključen u listu korišćenih modula. Korisnički definirani tipovi su dodatni tipovi (jednostavni i strukturirani) koje je deklarirao korisnik.
  23. 23. Standardni tipovi podataka 1. grupa cjelobrojnih tipova (Shortint, Integer, Longint, Byte, Word); 2. grupa realnih tipova (Single, Real, Double, Extended, Comp); 3. logički (Boolean tipovi) (Boolean, ByteBool, WordBool, LongBool); 4. karakter (Char); 5. string (String); 6. indeks (Pointer); 7. vrsta teksta (Text).
  24. 24. Grupa integer tipova Naziv tipa Tip raspon vrijednosti potrebna memorija Potpisani kratki cijeli broj Shortint -128 .. 127 1 bajt Potpisani cijeli broj -32768 .. 32767 2 bajta Potpisani dugi cijeli broj Longint -2147483648 .. 426 Unsigned short by . cijeli broj Bajt 0 .. 255 1 bajt Nepotpisani cijeli broj Riječ 0 .. 65535 2 bajta
  25. 25 Varb: bajt; suma, count: cijeli broj; Deklarisanje varijabli cjelobrojnog tipa summa:= -365; Koristi
  26. 26. Brojevi u PASCAL-u se obično pišu u decimalnim zapisima. Pozitivan predznak broja se može izostaviti. Cijeli brojevi se zapisuju u obliku bez decimalnog zareza, na primjer: 217 -45 8954 +483
  27. 27. Grupa realnih tipova definira podatke koji se implementiraju podskupom realnih brojeva. Var A: pravi; početi ... A:=0,65; … kraj.
  28. 28. Naziv tipa Tip Raspon vrijednosti Broj cifara mantise Veličina (bajtovi) Realni broj jednostruke preciznosti Real 2.9e-39 .. 1.7e+38 11 6 Realni broj Single 1.5e-45 .. 3.4e+ 38 7 4 Realni broj dvostruke preciznosti Dvostruko 5.0e-324 .. 1.7e+308 15 8 Realni broj proširene preciznosti Prošireno 3.4e-4932 .. 1.1e+4932 19 10 Comp Realni cijeli broj -9.2e+18 . +18 19 8
  29. 29. Realni brojevi se pišu u obliku sa decimalnim zarezom ili u obliku pomoću decimalnog reda 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, bilo koji broj osim nule smatra se TRUE. Var dugme, zastavica: boolean; Dugme Start:=true;
  31. 31. Tip znaka odgovara standardnom identifikatoru Char. Varijable i konstante tipa znakova mogu uzimati vrijednosti iz skupa znakova ASCII koda. Var simbol, bukva, z: char; Deklarisanje simboličkih varijabli
  32. 32. Tip stringa odgovara standardnom identifikatoru String. VarS: String; (niz od 0 do 255 karaktera) S2: String; (niz od 5 karaktera)
  33. 33. Niz znakova je niz znakova iz ASCII skupa znakova zatvoren u jednostruke navodnike. Nizovi u PASCAL-u su niz znakova napisanih između apostrofa. Ako je potrebno koristiti sam apostrof kao značajni znak u nizu, tada treba napisati dva apostrofa. Primjeri nizova: "STRING" "STRING" "AD" "UTANT"
  34. Tip karaktera, kao i integer i Boolean tipovi, nazivaju se takozvanim redni tipovi.  Skup važećih vrijednosti bilo kojeg ordinalnog tipa je uređeni 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. ASCII tablica kodiranja ASCII (Američki standardni kod za razmjenu informacija; izgovara se "asci") je kompjutersko kodiranje za predstavljanje latinice, arapskih brojeva, nekih znakova interpunkcije i kontrolnih znakova. Uveo ga je Američki institut za standarde ANSI.

1 slajd

LEKCIJA „UPOZNAVANJE SA JEZIKOM PASKALA“ NA TEMU: Nastavnik matematike i računarstva, MBO USOSh br. 2, Kalač na Donu, oblast Volgograd Anisimova N.A.

2 slajd

CILJ ČASA: saznati strukturu programa, operatore, pravila formatiranja i interpunkciju jezika Turbo Pascal.

3 slajd

TURBO PASCAL sistem za programiranje. Pascal je univerzalni programski jezik koji vam omogućava rješavanje širokog spektra problema obrade informacija.

4 slajd

1) Turbo Pascal programski jezik; 2) integrisano programsko okruženje (kompajler: prevodi program u mašinski kod i interpreter: izvršava komande) SASTAV PROGRAMSKOG SISTEMA 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 varijable počinje riječju Var iza koje slijedi lista imena varijabli istog tipa razdvojenih zarezima. Postoje dvije vrste brojeva u Pascalu: Real i Integer. Imena varijabli sastavljena su od latiničnih slova i brojeva, pri čemu je prvi znak slovo. VAR lista varijabli istog tipa: INTEGER; lista sličnih varijabli:REAL;

9 slajd

Sekcija operatera je glavni dio programa. Početak i kraj sekcije označeni su uslužnim riječima BEGIN i END , koje su operatorske zagrade. Između ovih reči su smeštene sve komande algoritma napisane u Pascal-u (operatori). Operator za razdvajanje je tačka i zarez. Tačka se stavlja na sam kraj programa. POČNI ČITANJE(ulazna lista); READLN(ulazna lista); varijabla:=aritmetički izraz; WRITE(izlazna lista); WRITELN(izlazna lista); KRAJ.

10 slajd

Unos početnih podataka sa tastature se dešava na operatoru READ ili READLN (čitanje). 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čkog dodjeljivanja: na lijevoj strani je varijabla, na desnoj strani je aritmetički izraz koji treba procijeniti. Složeni znak:= čita se kao "dodijeli". 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 x 2 |x| x sabiranje oduzimanje množenje podjela cijeli broj podjela ostatak dijeljenja

13 slajd

Pravila za pisanje aritmetičkih izraza Aritmetički izraz je zapisan 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 javlja putem WRITE ili WRITELN (pisanja). Rezultati se prikazuju redoslijedom kojim su navedeni. Razlika između izvršavanja naredbi WRITE i WRITELN je u tome što nakon što se izvrši izlazna operacija na WRITELN naredbi, kursor se pomiče na početak novog reda. 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: realno; početak a:= 5; 10:=x; y:= 7,8; b:= 2,5; x:= 2*(a + y); a:= b + x; kraj. ime varijable mora biti lijevo od znaka:= cijeli broj i razlomak su razdvojeni zarezom i neusklađenost tipa Nepodudaranje tipa ZADATAK 2: Pronađite greške u unosu programa.

PASCAL UVOD U PROGRAMSKI JEZIK 2006 STRUKTURA PREDMETA Interfejs i glavne definicije; struktura programa; Prikaz tekstualnih informacija; unos sa tastature; povezivanje i korištenje sistemskih modula; rad sa osnovnim tipovima podataka (celobrojni, realni, string, niz, fajl) rad sa grafikom; korištenje potprograma (procedura i funkcija); korišćenje modula. 2 INTERFEJS PASCAL OKRUŽENJA Programski jezik Turbo Pascal 7.0 je zatvoren u ljusci alata. Uključuje: uređivač teksta sa više prozora; programski linker; program za otklanjanje grešaka; sistem pomoći; kompajler. 3 INTERFEJS PASCAL OKRUŽENJA 4 Lista otvorenih fajlova: Alt + 0 Brzi pristup otvorenim fajlovima: Alt +<№ окна> OSNOVNE DEFINICIJE Rezervirana riječ je posebna riječ koju programski jezik koristi za odvajanje logičkih područja programa. Operator je jezička komanda koja izvodi neku radnju (provjera uslova, organiziranje petlje, itd.) Identifikator je ime koje programer slobodno bira za elemente programa. Tip podataka je karakteristika identifikatora koji definira skup vrijednosti koje može poprimiti (cijeli ili razlomčki brojevi, nizovi znakova, logički izrazi, itd.). 5 OPŠTA STRUKTURA PROGRAMA Program Naziv_programa; Koristi sekciju dodataka; Odjeljak za opis etikete na etiketi; Const odeljak deklaracije konstanti; Odjeljak tipa koji opisuje izvorne tipove podataka; Odjeljak deklaracije varijable Var; Početak Glavno tijelo programa; kraj. Minimalni kod: 6 IZLAZ NA EKRAN Za prikaz informacija na ekranu, koriste se sljedeći operatori: Write ili Writeln. F9 - Prevedi + Verificiraj Ctrl+F9 - Pokreni F9 → Ctrl+F9 - Izbjegni greške Prikaz rezultata izvršavanja programa 7 IZLAZ NA EKRAN Rezultat naredbi: WRITE "Empty" WRITELN naredba dodaje prazan niz WRITELN 8 VJEŽBA Prikaži informacije na ekranu kao što je prikazano ispod Zdravo! Drago mi je da te vidim! zovi me kompjuter. Korišteni materijal: Izlazni izrazi: Write, WriteLn "Empty" operator WriteLn; umeće prazan niz. 9 POVEZIVANJE DODATNIH MODULA Dodatni moduli proširuju mogućnosti vaših programa uvođenjem dodatnih operatora. Moduli su povezani u odjeljku Koristi. ProgramMy; Koristi Module1, Module2 ; ________________________ ________________________ ______________________________ ________________________ MODUL 1 Skup resursa 1 … MODUL N Moduli: Sistem vlastiti skup resursa N Brisanje tekstualnog ekrana Čekanje na pritisak na tipku Povezani modul pod nazivom CRT 10 SLUČAJNI IZLAZ NA EKRAN GotoXY (X, Y: Integer) Gdje X, Y – poznavanje koordinata na ekranu. X može imati vrijednosti od 1 do 80, a Y od 1 do 25. Na primjer: Program My_program; (Veza modula) Koristi Crt; Započni (Obriši ekran) ClrScr; (izlaz podataka) GotoXY(1, 1); write("▒"); GotoXY(80, 1); write("▒"); GotoXY(1, 25); write("▒"); GotoXY(80, 25); write("▒"); (kašnjenje ekrana) ReadKey; kraj. Program prikazuje simbol “▒” (šifra 177) u uglovima ekrana. 11 IZLAZ U BOJI TextColor (Boja); Određuje boju znakova. TextBackground(Boja); Određuje boju poznatosti. ProgramMyProgram; Koristi crt; Boja za početak teksta (crvena); TextBackGround(plava); Write("Spolja"); Boja teksta (bijela); Write("trava, "); Boja teksta (zelena); TextBackGround(žuta); Write("na travi"); TextBackGround(Magenta); Write("drva za ogrjev. "); 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 tamno siva svijetloplava svijetlo zelena svijetlo cijan svijetlocrvena svjetlo magenta ž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 IDENTIFIKATORI operacija podataka Termin identifikator primjenjuje se na konstante, varijable, funkcije, procedure, komponente i druge korisnički definirane objekti Dozvoljeni znakovi: latinična slova, brojevi, donja crta Ograničenja: Ne smije početi cifrom, ali može početi donjom crtom Ne može biti više riječi Ne može odgovarati nijednoj od ključnih riječi Identifikatori ne razlikuju velika i mala slova . Netačni identifikatori: Podaci Moje ime 2Array Var ( ( ( ( koriste se ruski znakovi ) Postoji razmak ) Počinje brojem ) Odgovara ključnoj riječi ) brojevi, nizovi znakova, logički izrazi, itd.). 16 INTEGER TIP PODATAKA 17 Konačan skup mogućih vrijednosti tip bajt kratka riječ cijeli broj longint raspon 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! Izvan dometa rezultira greškom! size DEKLARACIJA Varijabli Varijabla je identifikator koji može pohraniti neku vrijednost (broj, niz, itd.) i promijeniti je tokom rada programa. Sintaksa: Var<имя переменной> : <тип переменной>; Program program_name; Koristi sekciju dodataka; Odjeljak deklaracije varijable Var; Početak Glavno tijelo programa; kraj. Prostor rezervisan u memoriji računara za 3 varijable 18 PODEŠAVANJE VRIJEDNOSTI U VRIJEDNOSTI Da biste postavili vrijednost varijable, morate koristiti operator dodjeljivanja:= Sintaksa zapisa:<Переменная> := <Значение>; Vrijednost 3 se unosi u varijablu (cijeli broj) pod nazivom A 19 OPERACIJE SA CIJELObrojnim varijablama 20 Aritmetičke operacije: + - * / Standardne operacije: div | mod | sqr Ne može se koristiti sa cjelobrojnim tipovima Varijabla pod nazivom S je postavljena na zbir vrijednosti pohranjenih u varijablama X i Y Vrijednost pohranjena u varijabli pod nazivom S prikazuje se 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: Promjenljive su deklarirane u Var sekciji. Tip cjelobrojnog broja se naziva Integer Sintaksa za dodeljivanje vrednosti varijabli je:<Переменная> := <Значение> ; Nakon svakog operatora stavlja se znak; (osim za početak i zadnji kraj) REAL TIP PODATAKA Skup vrijednosti √ √ Redni tip Realni tip Jednosmjerna kompatibilnost: Real Integer Real! Izvan dometa i nepoštivanje pravila kompatibilnosti dovodi do greške! 22 OPERACIJE SA REALNIM Varijablama 23 Standardne operacije: pi | Square | grijeh | Cos | trbušnjaci | exp | Ln Round | Trunc (real → cijeli broj) Na primjer (X, S – Realni tip): X:= pi/3; S:= Sin(X) * 100; Napiši (Okrugla(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 TIP PODATAKA 24 Nizovi su uređeni skup znakova. Nizovi su zatvoreni u apostrofe. Stringovi nisu kompatibilni s cijelim i realnim tipovima. Tip Opseg String 255 karaktera ( Osnovni string operatori ) + ( konkatenacija ) Dužina (S); ( dužina niza ) Na primjer: X:= 'Vasya'; Write('U tvoje ime', Dužina(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 cifre iza decimalne zapete, u sljedećem formatu: prvi broj podijeljen sa drugim brojem = rezultat Write (X:1:3, ' razdelit na ' , y:1 :3, ' = ' z:1:3) Korišteni materijal: Vrsta stringa se zove String Nizovi su zatvoreni u postrofe Nizovi su spojeni znakom + U iskazu za prikaz, različite vrste su odvojene zarezom 25 TASTATURA INPUT 26 Da biste unijeli informacije sa tastature, morate koristiti operator za unos: Read ili ReadLn. Sintaksa: Read (N1, N2, ... Nn); Gdje su N1, N2, ... Nn varijable (cjelobrojne, realne, string) U varijablu X upisuje se vrijednost unesena sa tastature. Nakon unosa vrijednosti morate pritisnuti tipku Enter. Ako postoji više varijabli u operatora, unose se odvojeno razmakom ili pritiskom na tipku Enter VEŽBA 27 1. Napišite program mini kalkulatora koji izračunava zbir dva broja unesena sa tastature. 2. Napišite program koji traži vaše ime, a nakon što upišete vaše ime prikazuje pozdrav. Na primjer, ako ste unijeli ime Vanya, program će prikazati frazu: Zdravo, Vanya!!! Korišćeni materijal: Ulazni iskazi: Read, ReadLn OPERATORI USLOVI OPERATOR 29 Uslovni operator implementira „grananje“, odnosno menja redosled izvršavanja operatora u zavisnosti od istinitosti ili netačnosti nekog uslova. Provjera stanja NE Akcija 1 Idem na plažu Kiša pada DA Akcija 2 Uzeću kišobran Akcija 3 Idem u kino PROVJERI USLOVE Operacije poređenja: > - više< - меньше = - равно >= - veće ili jednako<= - меньше или равно <>- nije jednako 30 Logičke operacije: Ne I Ili - Ne -I - Ili Na primjer: Ako je moja visina > Petjina visina, onda sam viši od Petye Ako (kiša pada) ili (sniježi), onda ću ostati na home Ako ne ((kiša je) I (vjetar)), onda ću ići u šetnju Kada koristim logičke operacije, uslovi su stavljeni u zagrade SINTAKSA USLOVNOG IZJAVA Kratak oblik: Ako<условие>onda<оператор>; 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 <условие>onda<оператор_1>ostalo<оператор_2>; Na primjer: Ako je X>5 Tada je X:= X - 1 Drugo X:= X + 1; Samo jedan operator se može koristiti iza riječi Then i Else Prije riječi Else, sign; nedostaje 31 VEŽBA 32 1. Napišite program koji prima ulazni iznos u dolarima i iznos u evrima, a zatim prikazuje u kojoj valuti je taj iznos veći (1 dolar = 28 rubalja, 1 evro = 35 rubalja) 2. Napišite program , koji uzima tri broja kao ulaz, a zatim prikazuje njihov maksimum. Korišteni materijal: Oblici uvjetnog operatora: If<условие>Onda<оператор>; Ako<условие>Onda<оператор_1>Inače<оператор_2>; Prije znaka Else; nije postavljeno Operacije poređenja: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Zatim Početak X:= 1; Y:= -1; WriteLn('Informacija prihvaćena'); End Else WriteLn('Error'); 33 CASE SELECT OPERATOR Naredba izbora se koristi za zamjenu ugniježđenih konstrukcija uvjetnih izraza. Sintaksa notacije padeža<порядковая_переменная>of<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Inače<оператор_N+1>; kraj; Možete koristiti zagrade u naredbi za odabir Opcioni 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 navođenje vrijednosti, dvotačka se koristi za odabir raspona. Inače Vi očigledno niste student; kraj; Slučaj x od -128..-1: writeln('Negativno'); 0: writeln('Nil'); 1..127: writeln('Pozitivno') Drugo WriteLn('Izvan opsega'); kraj; 35 VEŽBA Napišite program koji, dat broj, prikazuje odgovarajući dan u sedmici. Na primjer, unesite broj 2, program bi trebao ispisati 'utorak'. Ako je broj izvan 1..7, tada bi se trebala prikazati poruka da takav dan ne postoji. Korišteni materijal: Operator odabira: kućište<порядковая_переменная>of<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Inače<оператор_N+1>; kraj; 36 CIKLUSI 37 Algoritmi se nazivaju ciklični, u kojima se izvršavanje nekih operatora vrši više puta sa istim izmijenjenim podacima (na primjer, postupak množenja brojeva njihovim višestrukim sabiranjem). U Pascalu postoje tri izraza petlje: For (petlja sa parametrom ili za određeni broj ponavljanja) While (petlja WHILE) Repeat (petlja PRED) Ako je broj ponavljanja poznat, onda je bolje koristiti operator petlje sa parametar. PETLJA SA PARAMETROM 38 Petlja za određeni broj ponavljanja sa povećanjem ili smanjenjem vrijednosti parametra For (param) := (početna_vrijednost) To (end_value) Do (operator) ; Tijelo petlje Napomene Parametar je cjelobrojni tip; 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; Da biste smanjili parametar, umjesto To koristite DownTo. PETLJA SA PARAMETROM 39 Napišite program koji traži cijele brojeve (a, b), gdje je a := <нач_зн>To<кон_зн>Uradi<оператор>; Parametar je cjelobrojnog tipa (obično Integer); Možete koristiti operatorske zagrade u petlji; Parametar petlje se povećava za 1. 40 PETLJA WHILE Petlja While prvo testira uslov, i samo ako je tačna, izvršava tijelo petlje. dok (uvjet) do (izjava); U tijelu koda napisanom ispod, petlja se nikada neće izvršiti: x:=1; Dok x>1 radi x:=x-1; Možete dobiti beskonačnu petlju. Na primjer: x:=1 Dok je x>0 radi x:=x+1; 41 WHILE LOOP Program koji prikazuje zbir brojeva od a do b. Dok nije pritisnut, započnite Delay(2000); kraj; Petlja traje 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 udvostručiti broj breza, prve godine su posadili 3 breze. Ispišite na ekranu za koliko godina će broj breza premašiti 10 000. 2. Napisati program koji određuje maksimum unesenih brojeva sa tastature (unos broja završava se brojem 0). Ispod je preporučeni izgled ekrana: Unesite brojeve. Unesite 0 da biste dovršili unos 89 15 0 Maksimalan broj je 89. Korišteni materijal: izjava while petlje: While<условие>uradi<оператор>; Dok petlja prvo testira uslov, i samo ako je istinit, izvršava glavno tijelo petlje. REPEAT LOOP 44 Petlja Repeat prvo izvršava tijelo petlje i tek onda provjerava uslov Ponavljanje (telo_petlje) Do (uslov); Nema potrebe za korištenjem složenog izraza u petlji Repeat, jer ova konstrukcija omogućava izvršavanje ne jednog, već nekoliko naredbi zatvorenih između riječi Repeat i Until. REPEAT LOOP ("Do tada") Program koji prikazuje zbir brojeva od a do b. Petlja traje sve dok promjenjiva varijabla f ne postane veća od vrijednosti b. 45 UPOREĐIVANJE petlji za vrijeme ponavljanja 46 Izbor modela petlje ovisi samo o pogodnostima 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 koja varira u rasponu od -4 do uključujući 4 sa korakom od 0,5. Korišteni materijal: Naredba petlje Ponavljanje: Ponavljanje<тело_цикла>Do<условие>Petlja Repeat prvo izvršava tijelo petlje, a tek onda provjerava uslov 47 PREKIDA CIKLUSOVA 48 Procedure se koriste za fleksibilnu kontrolu cikličkih operatora: Break - izlaz iz petlje; Nastavak - završetak sljedećeg prolaza ciklusa; Primjeri: Pronađite minimalni broj i za koji je zbir brojeva od 1 do i veći od 100. Čim s (zbir brojeva od 1 do i) postane veći od 100, naredba break se pokreće i petlja izlazi . s:=0; za I:= 1 do 100 počinje ako je s>100 onda prekida; s:= s + i; kraj; Writeln ('minimalni broj i takav da je (1+2+..+i)>100 jednako ',i); Sa tastature se unosi 10 brojeva i zbir samo pozitivnih brojeva se smatra u petlji. Ako je broj negativan, tada se izvršava naredba continue, koja započinje sljedeći prolaz petlje. s:=0; za I:= 1 do 10 počinje 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 deklarisan u Var sekciji: (Ime) : Niz [ (početna_vrijednost) .. (krajnja_vrijednost) ] od (tip) ; Primjeri deklaracije niza: Var A: Niz niza; B: Niz Reala; C: Niz cijelih brojeva; Primjeri popunjavanja nizova vrijednostima: A:='Vasya'; A:='Petya'; A:='Maša'; A:='Olesya'; Napiši); Za f:=1 do 10 uradite C[f] := f*2; Za f:=1 do 10 uradite 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 maksimalan 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 niza:<Имя>:Niz[<нач_зн> … <кон_зн>] of<тип>; Pristup nizu:<Имя массива> [ <Индекс>] GENERATOR SLUČAJNIH BROJEVA (RNG) Za generiranje slučajnih brojeva u programu koriste se sljedeći operatori: Randomize – RNG inicijalizacija. Deklariše se samo na samom početku programa; Random - generiše nasumični broj od 0 do 1 (stvarni tip); Random (N) - generiše nasumični broj od 0 do N-1 (cjelobrojni tip); 53 MULTIDIMENZIONALNI NIZOVI 54 Lista intervala za svaku dimenziju niza (Ime) : Niz [ (početna_vrijednost) .. (krajnja_vrijednost) , (početna_vrijednost) .. (krajnja_vrijednost) , (etc) ] od (tip) ; Primjer deklariranja dvodimenzionalnog niza (matrice, tablice) sa 4 reda i 6 stupaca: Var A: Niz cijelog broja; 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 Napisati program koji ispunjava dvodimenzionalni niz slučajnim brojevima od -10 do 20 i ispisuje zbir elemenata koji se nalaze duž dijagonale stola. Korišteni materijal: RNG inicijalizacija: Randomize Slučajni broj od 0 do N-1: Slučajni (N) 55 RAD SA DATOTEKAMA RAD SA DATOTEKAMA 57 [email protected]$ku⌂|"Hd9v*9(L*M=BYGRMxduB █ 8e*BOtCDrTVzHGJ1aBD>@B\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?HqB>vF^Ad .6b]o(QkV8 █ 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 █ █ █ Variable terminator fajl █ - terminator linije Kreiranje, čitanje, pisanje, zatvaranje RAD SA DATOTEKAMA Redosled radnji pri radu sa fajlovima: 1. Deklarisanje varijable fajla (FP); 2. Povezivanje FP sa fajlom; 3. Otvaranje fajla za čitanje/pisanje; 4. Operacije sa fajlom 5. Zatvaranje fajla (veza između fajla i FP-a je takođe prekinuta) 1. Deklaracija FP-a<Имя>: File of<тип> ; <Имя>:text; Varf: Tekst; h: Datoteka Integer; 2. Povezivanje FP-a sa fajlom Assign (<ФП>, <имя файла>); Dodijeli (f, 'c:\my\Data.ghm') 58 RAD SA DATOTEKAMA 3. Otvaranje datoteke za čitanje/pisanje Reset (<ФП>); - otvara fajl za čitanje Rewrite (<ФП>); - otvara fajl za pisanje 4. Operacije sa fajlom Read (<ФП>, <П1> , <П2>, …); - čita u varijable<П1>, <П2>itd. jedan element na poziciji pokazivača. Pisati(<ФП> , <П1> , <П2>, …); - upisuje vrijednosti varijabli u datoteku<П1>, <П2>itd. jedan element na poziciji pokazivača. EoLn(<ФП>); - vraća True ako je dostignut kraj niza. EoF(<ФП>); - vraća True ako je dostignut kraj datoteke. 5. Zatvaranje datoteke Zatvori (<ФП>); 59 RAD SA DATOTEKAMA Pojednostavite program ako znate da je matrica 5x5 (koristite For petlju) 60 VEŽBA 61 Napišite program "DOM-3". Prvi fajl sadrži imena učesnika u nominativnom padežu. U drugom, ista imena, ali u akuzativu. U trećem - lista izražavanja osećanja ili neke vrste radnje (voli, ne voli, ljubi, želi da grize, voli, poštuje, mrzi, želi da vidi, grli). Program bi trebao nasumično uzimati informacije iz ovih datoteka i kreirati novi prema sljedećem principu:<имя в им. пад> <чувство/действие> <имя в вин. пад> Olga voli Sergeja Oleg želi da vidi Romana Katja poštuje Nastju itd. Korišteni materijal: Naziv operatora: Assign, Rewrite, Reset, Write, Read, Close. GRAFIKA GRAFIKA Za rad sa grafikom u Pascalu, potrebne su dve datoteke - modul graph.tpu i drajver grafičkog adaptera egavga.bgi. Prvi je u direktoriju \UNITS, a drugi u \BGI. ! egavga.bgi drajver. Obavezno kada se pokreće exe fajl! Za crtanje potrebno je: 1. spojiti GRAF modul (u odeljku Koristi); 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 tačke (0,0) do tačke (639, 479). PROGRAM Primer_1; Koristite Graph, crt; VarGd,Gm: Integer; BEGIN Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Linija (0,0,639,479); ReadKey; CloseGraph; END. 639 px. Koordinatni sistem 479 px. trougao 2. Nacrtajte pravougaonik u sredini ekrana sa strane dva puta manje od odgovarajućih strana ekrana Korišteni materijal: Grafički modul: Graph Inicijalizacija grafike: InitGraph Zatvaranje grafičkog načina: CloseGraph;GRAFIKA + COLOR SetColor(Boja: word);Postavlja boju olovke GetColor: word; Vraća boja olovke SetBkColor(color: word); Postavlja boju pozadine GetBkColor: word; Vraća boju pozadine Boje crna plava zelena cijan Crvena magenta smeđa svijetlosiva tamno siva svijetloplava svijetlo zelena svijetlo cijan svijetlocrvena svjetlost magenta žuta bijela 66 - crna - plava - zelena - cijan – crvena – lila – smeđa – svijetlo siva – tamno siva – nebesko plava – svijetlo zelena – svijetlo cijan – roza – svijetlo lila – žuta – bijela GRAFIČKI PRIMITETI Linija (x, y); Crta liniju od trenutne koordinate olovke do (x,y) koordinata. Premjesti prema(x, y); Postavlja olovku na (x,y) koordinate. PutPixel(x, y, Boja); Crta tačku na koordinatama (x,y) pomoću boje. GetPixel(x, y): word; Vraća boju tačke u koordinatama (x,y). Pravougaonik(x1, y1, x2, y2); Crta obrise pravougaonika. Krug (x, y, r); Crta kružnicu sa centrom na (x,y) i radijusom r. SetLineStyle (Ln, 0, T) Mijenja parametre obrisa. Ln - stil linije (0..3): 67 x1, y1 T - debljina linije: 1 = normalna; 3 = debelo. FillEllipse(x, y, xr, yr); Crta popunjenu elipsu sa središtem na (x,y) poluprečnika Xr i Yr. SetFillStyle(Tip, Boja); Postavlja tip (0..11) i boju šrafure zatvorenih oblika ClearDevice; Briše grafički ekran bojeći ga u trenutnu boju pozadine x2, y2 GRAFIČKI PRIMITETI 68 VJEŽBA 69 1. Napišite program koji crta kuću na ekranu monitora; 2. Napišite program koji crta zvjezdano nebo na ekranu monitora sa zvijezdama slučajnog radijusa (od 1 do 5 piksela) i nasumične lokacije. Boja je također nasumična (bijela, svijetlo siva, tamno siva); Korišteni materijal: SetColor(Boja: word); - Postavlja boju crteža SetBkColor (boja: word); - Postavlja trenutnu boju pozadine. linija (x, y); - Crta liniju od trenutne koordinate olovke do (x,y) koordinata. Premjesti prema(x, y); - Postavlja olovku na (x,y) koordinate. PutPixel(x, y, Boja); - Crta tačku sa koordinatama (x,y) sa Bojom. Pravougaonik(x1, y1, x2, y2); - Pravi obris pravougaonika od linija trenutne boje. Krug (x, y, r); - Crta krug sa centrom na (x,y) i poluprečnikom r. FillEllipse(x, y, xr, yr); - Crta popunjenu elipsu sa središtem na (x,y) s polumjerima Xr i Yr. GRAFIKA + ANIMACIJA Pauza u ms. 70 PODPROGRAMI PODPROGRAMI Potprogrami vam omogućavaju da selektujete ponavljajući deo koda u zasebne fragmente i ubacite ih na potrebna mesta u programu. Funkcija, za razliku od procedure, vraća rezultat poziva. Procedure Funkcije Potprogrami: napisano između ključne riječi Begin End; identifikuju se imenima, koja su napisana prema pravilima za određivanje identifikatora; može imati ulazne i izlazne parametre; potpuno ponovite strukturu glavnog programa. 72 Program My; Potprogram 1 [Kod potprograma 1] Potprogram 2 [Kod potprograma 2] Početak Potprogram 2 Potprogram 1 Primjer sistemskih rutina: Write("OK"); ClrScr; Dužina (S); random; // // // // Procedura s jednim parametrom procedura bez parametara funkcija s jednom parametarskom funkcijom bez parametara Potprogram 2 Kraj. PODPROGRAMI (SPR) Ugniježđenje potprograma Programski potprogram 1 potprogram 3 potprogram 4 potprogram 2 . Imena varijabli opisanih u DEP-u mogu biti ista kao i imena varijabli iz drugih DEP-ova (ista varijabla može biti deklarirana u svakom od DEP-ova). Ime varijable opisane u PPR-u štiti varijable istog imena od PPR-a koji obuhvata datu (ako su iste varijable deklarirane u PPR1 i PPR3, tada će ove varijable biti jedinstvene u svakom PPR-u). Programske varijable se nazivaju globalne, a varijable potprograma lokalne. PROCEDURE BEZ PARAMETARA Sintaksa zapisa: Procedura (ime procedure); (Sekcija varijabli, konstanti, tipova, oznaka, modula) Početak (Tijelo procedure); kraj; Primjer korištenja procedure bez parametara: 74 PROCEDURE BEZ PARAMETARA Primjer escapeing varijabli istog imena: Program My_program; Koristi crt; varA:string; // Opis procedure Procedure My_Procedure; varA:string; Početak A:= "Podprogram"; WriteIn(A); kraj; Početak A:= "Tijelo"; WriteIn(A); my_procedure; WriteIn(A); kraj. // Poziv procedure 75 PROCEDURE SA PARAMETRIMA 76 Da bi potprogrami postali univerzalniji, koriste se posebni mehanizmi za razmjenu podataka između programa i njegovih potprograma. Sistemske procedure sa parametrima: SetColor (Red); ( Procedura sa pravougaonikom (0, 0, 639, 479); ( Procedura sa InitGraphom (Gd,Gm,'d:\BP\bgi"); ( Procedura sa ( parametar jedan parametar ) nekoliko parametara ) nekoliko različitih tipova ) ) Snimanje sintaktičke procedure sa parametrima Procedura (Naziv) ((Oblast ulaznih varijabli) Var (Oblast izlaznih varijabli (svaka varijabla ima svoju Var))); Struktura područja: Varijabla_1, Varijabla_2, … : Tip; .. ......... ............. Varijabla_N-1, Varijabla_N, ... : Tip; Bilo koji od regiona može biti odsutan PROCEDURE SA PARAMETRIMA Korišćenje ulaznih parametara Procedura za crtanje pravougaonik koji graniči sa ekranom, specificirana boja Bez parametara Sa parametrima Procedura Cir; Početak SetColor (i); SetBkColor (b); Pravougaonik (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 PROCEDURE SA PARAMETRIMA Upotreba izlaznih parametara procedure ra pretvaranja ugla iz stepeni u radijane. PROGRAM EX_26_3; VAR x,a: realno; POSTUPAK Rad(alfa: real; var betta: real); (izlazna varijabla) BEGIN Betta:= pi*alfa/180; END; BEGIN Write("Unesite ugao u stepenima: "); readln(x); Rad(x, a); (Poziv procedure) Writeln("On je jednak uglu 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 format: SRect (a, b, S) gdje je S izlazni parametar procedure. Korišteni materijal: Procedura (Naziv) ((Oblast ulazne varijable) Var (Oblast izlazne varijable)); Struktura područja: Varijabla_1, Varijabla_2, … : Tip; ........................ Varijabla_N-1, Varijabla_N, … : Tip; 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): realna; Početni zbir:= a+b; kraj; Poziv procedure Poziv funkcije S(10, 20, A); Napiši); A:= S(10, 20); WriteLN(A); WriteLN (S(20, 30)); Preporučljivo je dizajnirati neku potprogramu kao funkciju samo ako se očekuje neki rezultat njenog rada. Ako je potprogram fokusiran 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) ((Površina ulazne varijable) Var (Površina izlazne varijable)): (Vrsta) ; Struktura područja: Varijabla_1, Varijabla_2, … : Tip; ........................ Varijabla_N-1, Varijabla_N, … : Tip; 81 MODULI MODULI 83 Jedinica (UNIT) je nezavisna programska jedinica čije resurse (procedure i funkcije) mogu koristiti drugi programi. ProgramMy1; Koristi Module1, Module2 ; __________________________ __________________________ ________________________________ __________________ MODUL 1 Resource Kit 1 … Program My2; Koristi Module1, Module2 ; __________________________ __________________________ ________________________________ __________________ MODUL N Skup resursa N Moduli su povezani s programom preko odjeljka KORISTI MODULE. STRUKTURA 84 Modul se sastoji od sljedećih dijelova: 1. Zaglavlje modula. 2. Interfejs dio. (opisi vidljivih objekata) 3. Implementacijski dio. (opisi skrivenih objekata) 4. Dio za inicijalizaciju (opciono). Jedinica (naziv modula); Interfejs ( Sekcija globalnih varijabli, konstanti, tipova) ( Moduli ) ( Lista procedura i zaglavlja funkcija ) Implementacija ( Sekcija lokalnih varijabli, konstanti, tipova) ( Implementacija procedura i funkcija ) Početak (Inicijalizacijski dio) Kraj. ! Ime zaglavlja modula mora odgovarati imenu datoteke modula! MODULI Primjer modula: Jedinica My_Unit; Interface Varms: Array of Real; ( Globalni niz) Funkcija Cub(x:integer):Integer; ( Funkcija Cub = x^3 ) Funkcija ext4(x:integer):Integer; ( Funkcija ext4 = x^4 ) Implementacija Funkcija Cub(x:integer):Integer; ( Implementacija funkcije Cub ) Begin Cub:= x*x*x; kraj; Funkcija Ext4(x:integer):Integer; ( Implementacija funkcije ext4 ) Begin Ext4:= x*x*x*x; kraj; kraj. 85 VEŽBA 86 Napišite modul sa jednom funkcijom i jednom procedurom: (Proračun funkcije X1=1/x) X1(a:real):real; (Procedura 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); Interfejs ( Sekcija globalnih varijabli, konstante, tipovi) ( moduli ) ( Lista procedura i zaglavlja funkcija ) Implementacija ( Sekcija lokalnih varijabli, konstanti, tipova) ( Implementacija procedura i funkcija ) Početak (Inicijalizacijski dio ) Kraj. )