410 likes | 732 Views
T1. Įvadas. T1. Strukt ū rinio programavimo samprata. T1. Programavimo kalba turi į takos programos struktūrai, tačiau yra nusistovėję bendri reikalavimai rašomos programos struktūrai Programoje galima skirti dvi griežtas dalis: na u dojamų priemonių aprašymas,
E N D
T1. Įvadas Algoritmai ir objektinis programavimas
T1 Struktūrinio programavimo samprata. Algoritmai ir objektinis programavimas
T1 • Programavimokalba turi įtakos programos struktūrai, tačiau yra nusistovėję bendri reikalavimai rašomos programos struktūrai • Programoje galima skirti dvi griežtas dalis: • naudojamų priemonių aprašymas, • veiksmus aprašantys sakiniai. Algoritmai ir objektinis programavimas
T1 Pradžia Aprašai Veiksmai Pabaiga Konstantos, duomenų tipai, kintamieji, paprogramės Veiksmus aprašantys sakiniai (pagrindinė programa) Paskalio kalba rašomoms programoms galioja griežta taisyklė: naudojamos priemonės jau turi būti aprašytos Algoritmai ir objektinis programavimas
T1 Pradžia Aprašai Veiksmai Pabaiga Tiek mokantis programuoti, tiek rašant taikomąsias programas, naudinga laikytis griežtų reikalavimų programos struktūrai, nes: • programa lengviau skaitoma, ją lengviau taisyti, derinti, keisti, papildyti; • lengviau nagrinėti ir suprasti kitų parašytas programas • lengviau ir greičiau galima suprasti programavimo pradmenis Algoritmai ir objektinis programavimas
T1 program Pirmoji; var x, y : integer; begin Write('x = '); ReadLn(x); Write('y = '); ReadLn(y); WriteLn('Suma = ', x + y); Readln; end. Pradžia Aprašai Veiksmai Pabaiga x = 5 y = 12 Suma = 17 Algoritmai ir objektinis programavimas
T1 Programavimo stilius, kultūra Algoritmai ir objektinis programavimas
T1 Visame tekste laikomasi vienodų ir aiškių teksto išdėstymo taisykliųKintamųjų vardai ir kiti vardai visoje programoje rašomi vienodu stiliumiPrograma parengta laikantis struktūriškumo – uždavinio sprendimas suskaidytas į atskirų veiksmų grupes Algoritmai ir objektinis programavimas
T1 Laikomasi vaizdžiųteksto skyrybos taisyklių: po skyrybos ženklų paliekamas tarpas, operacijųženklai atskiriami tarpais ir pan.Komentuojamos esminės teksto vietos, veiksmų grupės, kintamieji, nusakoma procedūrų bei funkcijų paskirtis Algoritmai ir objektinis programavimas
T1 Programavimo technologijos reikalavimai • atskiros veiksmų grupės užrašomos procedūromis (funkcijomis); • iš procedūros (funkcijos) antraštės (pavadinimo, faktinių ir formaliųjų parametrų, komentarų) yra visiškai aiški procedūros (funkcijos) paskirtis ir atliekami veiksmai; • blokai (programos, funkcijos, procedūros) be būtino reikalo nėra labai ilgi (jie turėtų tilpti į vieną–du ekranus); Algoritmai ir objektinis programavimas
T1 Programavimo technologijos reikalavimai • tame pačiame bloke nėra skirtingų veiksmų grupių (pvz. negerai, jei vienoje procedūroje, duomenys rikiuojami ir spausdinamas surikiuotas sąrašas); • gebama išvengti nereikalingų globaliųjų parametrų: procedūros bei funkcijos gauna duomenis ir grąžina rezultatus naudojant parametrus; Algoritmai ir objektinis programavimas
T1 Programavimo technologijos reikalavimai • Kintamieji, skirti saugoti duomenims ir rezultatams, gali būti globalūs • Parinktos tinkamos duomenų struktūros; jos aprašomos programos teksto pradžioje ir galioja visoje programoje; nėra lokaliųjų duomenų struktūrų; Algoritmai ir objektinis programavimas
T1 Algoritmų išraiškos būdai. Struktūrogramos (Nassi-Shnaiderman diagrams) Algoritmai ir objektinis programavimas
T1 Veiksmų seka gali būti pateikiama labai skirtingais būdais Žodiniu pasakojimu, laisvos formos aprašymu Matematinėmis išraiškomis Schemomis, paveikslais Recepto forma Simbolinėmis schemomis (“blokinės” schemos) Struktūrogramomis Diagramomis Algoritmai ir objektinis programavimas
T1 1973 m. I.Nassi ir B.ShneidermanNassi-Shneiderman diagrams Europoje paplitęs pavadinimas struktūrogramos Tai grafinis veiksmų sekos aprašymo būdas, tenkinantis struktūrinio programavimo reikalavimus I.Nassi and B.Shneiderman. Flowchart Techniques for Structured Programming. ACM, 1973 August, vol. 8, Num. 8. 12-26 p.p. Algoritmai ir objektinis programavimas
Ta + b > cN d := a + b d := a / b kol x < b Skaičiavimai x := x + h x := a, b Skaičiavimai T1 x := a + b Priskyrimo veiksmas Alternatyva (if sakinys) Ciklas kol (while) Ciklas dėl (for) Algoritmai ir objektinis programavimas
T1 Baziniai duomenų tipai Sveikieji skaičiai integer15 -25 365 Realieji skaičiai real12.456 -2.456 Simboliai char’A’ ’s’ Loginiai booleantrue false Algoritmai ir objektinis programavimas
T1 Kintamieji Skelbiami prieš programą ir galioja nuo aprašymo vietos iki programos pabaigos var x, y : integer; a, b, c :real; sim : char; yra : boolean; Kintamieji skirti duomenims saugoti Gali saugoti tik tokią reikšmę, kokia nurodyta kintamojo apraše Visi kintamieji gauna vietą kompiuterio atmintinėje reikšmei saugoti Algoritmai ir objektinis programavimas
T1 Bazinės Paskalio konstrukcijos (priskyrimas, sąlygos operatorius, ciklas) Algoritmai ir objektinis programavimas
T1 Programos struktūra program Vardas; begin end. FreePascal programos trafaretas program Bevarde1; begin WriteLn('Labas'); Readln; end. Algoritmai ir objektinis programavimas
T1 x := a + b Priskyrimo veiksmas var x : integer; y : real; a : char; b : boolean; x := 15; y := x + 2.56; a := ’B’; b := true; Algoritmai ir objektinis programavimas
T1 x := a + b Priskyrimo veiksmas x := x + 15; var x : integer; x 36 Atmintinėje kintamasis turi reikšmę 36 Algoritmai ir objektinis programavimas
T1 x := a + b Priskyrimo veiksmas x := x + 15; var x : integer; x 36 Atliekama dviejų skaičių sudėtis: 36 + 15 Gaunamas rezultatas 51 Algoritmai ir objektinis programavimas
T1 x := a + b Priskyrimo veiksmas x := x + 15; var x : integer; x 3651 Atliekama dviejų skaičių sudėtis: 36 + 15 Gaunamas rezultatas 51 Rezultatas 51 užrašomas į kompiuterio atmintinę Algoritmai ir objektinis programavimas
Ta + b > cN d := a + b d := a / b T1 if a + b > c then d := a + b else d := a / b; Algoritmai ir objektinis programavimas
Ta + b > cN d := a + b T1 if a + b > c then d := a + b; Algoritmai ir objektinis programavimas
Ta + b > cN d := a / b T1 if a + b > c then else d := a / b; Algoritmai ir objektinis programavimas
x := a kol x < b x := x + sin(x + a) x := x + h x := a, b y := (a + x) / b Spausdinti ’y= ’, y T1 x := a; while x < b dobegin x := x + sin(x + a); x := x + h; end; for x := a to b do begin y := (a + x) / b; WriteLn(’y= ’, y); end; Algoritmai ir objektinis programavimas
T1 Elementarūs algoritmai(pavyzdžiai) Algoritmai ir objektinis programavimas
Pradžia Kvadratai a := 10, 20 Spausdinti a*a Pabaiga T1 Suskaičuoti skaičių nuo 10 iki 20 kvadratus program Kvadratai; var a : integer; begin for a := 10 to 20 do WriteLn(a * a); ReadLn; end. Algoritmai ir objektinis programavimas
T1 Suskaičuoti skaičių nuo 10 iki 20 kvadratus program Kvadratai; var a : integer; begin for a := 10 to 20 do WriteLn(a, ’ ’, a * a); ReadLn; end. Algoritmai ir objektinis programavimas
T1 Suskaičiuoti skaičių nuo 10 iki 20 kvadratus program Kvadratai; var a : integer; begin WriteLn(’ a a*a’); for a := 10 to 20 do WriteLn(a, ’ ’, a * a); ReadLn; end. Algoritmai ir objektinis programavimas
T1 Suskaičiuoti skaičių nuo 10 iki 20 kvadratus program Kvadratai; var a : integer; begin WriteLn(’ a a*a’); WriteLn(’----------- ’); for a := 10 to 20 do WriteLn(a, ’ ’, a * a); ReadLn; end. Algoritmai ir objektinis programavimas
Pradžia Funkcija Įvesti a Spausdinti lentelės antraštę x := 1, 6 y := a * x Spausdinti x, y Spausdinti lentelės pabaigą Pabaiga T1 Skaičiuoti y = a * x, kai x = 1, 2, . . ., 6 program Funkcija; var a, x, y : integer; begin Write('a = '); ReadLn(a); WriteLn('-----------------'); WriteLn(' x y '); WriteLn('-----------------'); for x := 1 to 6 do begin y := a * x; WriteLn(' ', x, ' ', y); end; WriteLn('-----------------'); Readln; end. Algoritmai ir objektinis programavimas
T1 Skaičiuoti y = a * x, kai x = 1, 2, . . ., 6 program Funkcija; var a, x, y : integer; begin Write('a = '); ReadLn(a); WriteLn('-----------------'); WriteLn(' x y '); WriteLn('-----------------'); for x := 1 to 6 do begin y := a * x; WriteLn(' ', x, ' ', y); end; WriteLn('-----------------'); Readln; end. Algoritmai ir objektinis programavimas
T1 Skaičiuoti y = a * x, kai x = xp, xp+1, . . ., xg program Funkcija; var a, xp, xg, x, y : integer; begin Write(' a = '); ReadLn(a); Write('xp = '); ReadLn(xp); Write('xg = '); ReadLn(xg); WriteLn('-----------------'); WriteLn(' x y '); WriteLn('-----------------'); for x := xp to xg do begin y := a * x; WriteLn(' ', x, ' ', y); end; WriteLn('-----------------'); Readln; end. Algoritmai ir objektinis programavimas
T1 Skaičiuoti y = a * x, kai x = xp, xp+1, . . ., xg program Funkcija; var a, xp, xg, x, y : integer; begin Write(' a = '); ReadLn(a); Write('xp = '); ReadLn(xp); Write('xg = '); ReadLn(xg); WriteLn('-----------------'); WriteLn(' x y '); WriteLn('-----------------'); for x := xp to xg do begin y := a * x; WriteLn(x:4, ' ', y:5); end; WriteLn('-----------------'); Readln; end. Algoritmai ir objektinis programavimas
T1 Jūsų klausimai Algoritmai ir objektinis programavimas