110 likes | 439 Views
Struktūrinis programavimas ir duomenų tipai. Liutauras Ričkus 3 paskaita. Struktūrinis programavimas. Bet koks algoritmas gali būti išreikštas: seka; sąlyga (pakanka nepilnos sąlygos ); kartojimu (ciklu). Struktūrinis programavimas pascal.
E N D
Struktūrinis programavimas ir duomenų tipai Liutauras Ričkus 3 paskaita
Struktūrinis programavimas • Bet koks algoritmas gali būti išreikštas: • seka; • sąlyga (pakanka nepilnos sąlygos); • kartojimu (ciklu).
Struktūrinis programavimas pascal • Visų šių struktūrų tiesioginiai atitikmenys yra Pascalkalboje: • seka - tai iš eilės surašyti sakiniai (vykdomi nuosekliai); • sąlygą atitinka sąlygos sakinys ("if"), yra numatyta tiek pilnos, tiek nepilnos sąlygos galimybės; • predciklas- ciklo sakinys "while"; • postciklas- ciklo sakinys "repeat".
Duomenų struktūros • Tipas apibrėžiamas: • Aibe • Operacijomis • Paprastieji tipai • Tolydieji • Diskretieji • Visos reikšmės aibė • Ord() – eilės numerį • Pred() – prieš ją einančią(precedes ) • Succ() – po jos einančią(succeeds )
Pascal paprastieji duomenų tipai (1) • Vardinis tipas • Aprašymas typesavd = (pirm, antr, treč, ketv, penkt, šešt, ekm); spalva = (mėlyna, geltona, raudona); • Operacijos • pred, succ, ord ir palyginimo • Atkarpos tipas • Aprašomas apribojant diskretų tipą typedarb = pirm..penkt; skaitmuo = 0 .. 9; • Loginis tipas • Loginio tipo aprašyti nereikia, kadangi jis yra standartinis. (true, false) • Operacijos • and, or, xor, not
Pascal paprastieji duomenų tipai(2) • Sveikas tipas • Žymimas reikšminiu žodžiu integer. [-215iki215 - 1] • Operacijos • Aritmetinės (+, - , *, /, div, mod) • Palyginimo (=, <>, <=, >=, >) • standartinės funkcijos (succ, pred, ord, abs, sqr, sqrt, arctan, cos, exp, ln, sin).
Pascal paprastieji duomenų tipai(3) • Simbolinis tipas • Šis tipas žymimas reikšminiu žodžiu char. • Operacijos: visos diskrečių ir palyginimo • Realus tipas • Realusis tipas yra žymimas reikšminiu žodžiu realarba extended. • Operacijos • Aritmetinės (+, -, *, /) • Palyginimo (=, <>, <=, >=, >) • Standartinės iš kurių dažnai naudojamos: • Abs (x) – absoliuti reikšmė, • sqr(x) – kelia x kvadratu (x*x), • sqrt(x) – traukia šaknį(x), • round(x) – apvalina reikšmę, • trunc(x) – atmeta trupmeninę dalį, • kitos, kaip antai sin,cos, exp, ln.
C ir pascal tipų atitikmenys C kalboje nėra loginio tipo, todėl rekomenduojama naudoti unsignedchar.
C paprastieji tipai - vardinis • Vardinis tipas Enumsavd {pirm, antr, trec, ketv, pentk, sest, sekm}; • Pavyzdys programos #include <stdio.h> enummonths {JAN=1, FEB, MAR, APR, MAY, JUN, JUL, AUG,SEP, OCT, NOV, DEC}; intmain() { enummonthsmonth; inti; printf("Iveskiteskaiciu nuo 1 iki 12 \n"); scanf("%d", &i); switch(i) { caseJAN: caseFEB: caseDEC: printf("ZIEMA \n"); break; caseMAR: caseAPR: caseMAY: printf("PAVASARIS \n"); break; caseJUN: caseJUL: caseAUG: printf("VASARA \n"); break; caseSEP: caseOCT: caseNOV: printf("RUDUO \n"); break; default: printf("netinkamasskaicius \n"); } return0; }
Kintamieji • Pascal kintamieji var x1, x2: real; i, j, skaitiklis : integer; p : boolean; c: char; raide: ‚a‘ .. ‚z‘; n:1..100; • C kintamieji inti,j,k; floatx,y,z; char c; • Priskirti reikšmes floatsum = 0.0; intbigsum = 0; charletter = ‘a‘;