270 likes | 1.11k Views
Paskalio programavimo kalba. Parengė MRU prof. D. Dzemydienė Naudota literatūra: 1. Kompiuterija. Studentams, moksleiviams, besidomintiems. KTU. 2001 2. Paskaitų konspektai parengti VGTU technomatematikos specialybės studentams. www.techmat.vgtu.lt/konspektai/Algoritmai/Paskaita61.pdf
E N D
Paskalio programavimo kalba Parengė MRU prof. D. Dzemydienė Naudota literatūra: 1. Kompiuterija. Studentams, moksleiviams, besidomintiems. KTU. 2001 2. Paskaitų konspektai parengti VGTU technomatematikos specialybės studentams. www.techmat.vgtu.lt/konspektai/Algoritmai/Paskaita61.pdf 3. Internetinis žinynas Wikipedia 4. A. Juozapavičius. Duomenų struktūros ir algoritmai. VU. 2003. Prieiga internete 5. G. Grigas. Programavimas Paskaliu. Internetinis vadovėlis. http://www.ipc.lt/21z/mokymas/mokymopr/el/ek/knyga1.htm
Paskalio programavimo kalba- tai procedūrinė kalba Programavimo kalba, kaip ir bet kuri kita, turi savo abėcėlę. Paskalio kalbos abėcėlę sudaro: • raidės: a, b, c, … • skaitmenys: 0, 1, 2, 3, … • skyrybos ženklai: : , ; . ? … • operacijų (veiksmų) ženklai: +, -, >, … • keletas dešimčių sutartinių žodžių, program,begin,end. N.Virtas - programuotojas, sukūręs Paskalio kalbą.
Programos struktūra Paskalio kalbos programą sudaro šios dalys: • antraštė; • aprašai; • veiksmai; • programos pabaigos požymis - taškas.
Paskalio programos bendroji struktūra {Aprašomoji dalis} Programe Programos_vardas; {Globaliosios instrukcijos kompiliatoriui} Uses {išorinių programinių modulių iškviečiamų programoje aprašai} Modulis1, Modulis2,..., Modulisk; Label {Programoje naudojamų pažymėtų vietų aprašai} Žymė_1, Žymė_2,...,Žymė_n; Type {Sudėtingesnių duomenų struktūrų aprašai} tipo_vardas1: tipo_aprašas1, tipo_vardas2: tipo_aprašas2, ... tipo_vardasm: tipo_aprašasm; Const {Išvardijamos naudojamos konstantos ir jų reikšmės} konstantos vardas1=reikšmė1, konstantos vardas2=reikšmė2, ... konstantos vardasn=reikšmėn, Var {Programoje naudojamų kintamųjų aprašai} kintamojo_vardas1/kintamųjų sąrašas1: duomenų tipas1, kintamojo_vardas2/kintamųjų sąrašas2: duomenų tipas2, ... kintamojo_vardasj/kintamųjų sąrašasj: duomenų tipasj; {Programoje naudojamų paprogramių aprašai}
Dviejų skaičių sumavimas Dabar šį algoritmą užrašysime Paskalio kalba: program sumavimas; var a, b, suma: integer; begin read (a, b); suma := a + b; writeln (suma) end. var (variable - “kintamasis”) writeln (wrlte line - “rašyti eilutėmis”), kuris vadinamas spausdinimo arba rašymo sakiniu. Dviejų skaičių sumavimo algoritmo struktūrograma.
Paskalio programavimo kalbų atmainos • Lietuvoje paplitęs Turbo Paskalio kompiliatorius, dažnai vadinamas Turbo Paskalio sistema ar net paprasčiausiai Turbo Paskaliu. • N.Virto sukurta kalba vadinama standartiniu Paskaliu. • Standartinis Paskalis buvo sukurtas taip, kad jis kuo geriau tiktų bendro pobūdžio uždaviniams užrašyti ir kuo mažiau priklausyti nuo kompiuterio tipo. Ypač jis tinka pradedantiesiems, kai mokomasi algoritmavimo konstrukcijų. • Turbo Paskalis apima standartinį Paskalį, tačiau teikia dar daug galimybių valdyti patį kompiuterį. Kadangi mes domėsimės pačių algoritmų rašymu, tai mums visiškai pakaks standartinio Paskalio konstrukcijų.
Kiekvienam kintamajam kompiuteris skiria vietą savo atmintinėje. Ten saugoma to kintamojo reikšmė - konkretus duomuo.
Kintamųjų aprašų pavyzdys: var a, b: integer; x, y, z: real;
Reiškinys • tai konstantos ir kintamieji, sujungti operacijų (veiksmų) ženklais bei lenktiniais skliaustais. Reiškinių Paskalio kalba pavyzdžiai: (pl + p2 + p3) / 3 skl + sk2 - sk3 div 10 (a + b) * (a - b)
Priskyrimo sakinys • - tai kintamasis ir reiškinys, atskirti priskyrimo simboliu (:=). Atlikus programą gauta reiškinio reikšmė priskiriama kairėje esančiam kintamajam. Priskyrimo sakinių pavyzdžiai: sk := 5; suma := x + y;
Algoritmas kvadratinio trinario ax2 +bx +c reikšmei rasti Paskalio kalba: program trinaris; var a, b, c, x, r :real; begin read (a, b, c, x); r := a * x * x + b * x + c; writeln (r) end.
Parašykime algoritmą nurodytam parų skaičiui p išreikšti valandomis ir minutėmis • Iš struktūrogramos lengvai užrašysime programą: program laikas; var p, val, min : integer; begin read (p); val := p * 24; min := val * 60; writeln (val, min : 7) end.
Parašykime sakinių seką kintamųjų a ir b reikšmėms sukeisti vietomis: tarp := a; a := b; b := tarp;
Kintamojo tr reikšmė - triženklis skaičius. Parašykime algoritmą šio skaičiaus skaitmenų sumai rasti. • Paskalio kalba neturi operacijos, kuri išskirtų skaičiaus skaitmenis - tai reikia išreikšti aritmetinėmis operacijomis. Pirmąjį triženklio skaičiaus skaitmenį gauname dalydami šį skaičių iš 100: s1 := tr div 100. Antrąjį skaitmenį gauti sudėtingiau. Iš pradžių reikia atmesti pirmąjį skaičiaus skaitmenį, po to - likusį dviženklį skaičių dalyti iš 10: s2 := tr mod 100 div 10. Galima ir kitaip - pirma atmesti trečiąjį skaitmenį, po to - pirmąjį: s2 := tr div 10 mod 10. Trečiasis skaitmuo lygus liekanai, gautai padalijus skaičių iš 10: s3 := tr mod 10. Taigi triženklio skaičiaus skaitmenų sumą galima apskaičiuoti šitokiu algoritmu: program triženklis; var tr, {triženklis skaičius} s1, s2, s3, {jo skaitmenys} suma : integer; {skaitmenų suma} begin read (tr); s1 := tr div 100; {pirmasis skaitmuo} s2 := tr mod 100 div 10; {antrasis skaitmuo} s3 := tr mod 10; {trečiasis skaitmuo} suma := s1 + s2 + s3; writeln (suma) end.
Loginis duomuo turi tik dvi reikšmes: “teisinga” ir “neteisinga” • Paskalio kalboje jos žymimos vardais: true - teisinga false - neteisinga. • Loginius duomenis, kaip ir skaičius, galima vartoti rašymo sakiniuose, su jais galima atlikti logines operacijas, jų reikšmes galima priskirti loginiams kintamiesiems. Kintamieji, galintys įgyti logines reikšmes, aprašuose žymimi žodžiu boolean. Pavyzdžiui, aprašu: • var x, log: boolean;
Neigimo operacijos • Inversijos operacija labai paprasta: ją atlikus, esama loginė reikšmė pakeičiama priešinga. • Ji žymima sutartiniu žodžiu not (“ne”) ir paprastai vadinama lietuviškai - neigimu.
Sudarysime loginį reiškinį, kurio reikšmė būtų true, jeigu x patenka į intervalą [a; b], arba false, jeigu nepatenka: log := (a <= x) and (x <= b) • Matematikoje tokia sąlyga užrašoma paprasčiau: a <=x <=b. Programavime bet kurios lyginimo operacijos a <= x rezultatas būtų loginė reikšmė (true arba false) ir tada jos nebegalima lyginti su skaičiumi b. Todėl tenka šią sąlygą išskaidyti į dvi paprastesnes ir jas sujungti konjunkcijos operacija.
Šakojimosi sakiniai • if x <= 0 then y := 0; else y := x; Šitaip nurodoma atlikti vieną veiksmą iš dviejų: y := 0 arba y := x priklausomai nuo sąlygos - kintamojo x reikšmės.