1 DATU STRUKTŪRAS 2. lekcija – Datu jēdziens. Datu tipa jēdziens. Datu tipu klasifikācija.

Презентация:



Advertisements
Похожие презентации
1 DATU STRUKTŪRAS 4. lekcija – Masīva jēdziens. Matricas jēdziens un interpretācija. Elementa meklēšana vektorā. Deskriptors un tā lietojums. Vektora adresēšanas.
Advertisements

1 DATU STRUKTŪRAS Praktiskās nodarbības doc. Natālija Prokofjeva.
1 DATU STRUKTŪRAS 3. lekcija – Datu struktūras jēdziens. Datu struktūras un to klasifikācija. Rakstzīmju virknes jēdziens.
DATU STRUKTŪRAS 2. lekcija. Piemēri.. Piemērs Program pointeri; Var p,q:^integer; Begin {1} new(p); new(q); {2} p^:=7; q^:=p^-2; {3} q:=p; {4} dispose(p);
Rīgas Tehniskā universitāte Datorzinātnes un informācijas tehnoloģijas fakultāte Lietišķo datorsistēmu institūts Programmatūras izstrādes tehnoloģijas.
Transformators. Par transformatoru sauc statisku elektromagnētisku ierīci, kuras uzdevums ir pārveidot maiņstrāvas spriegumu. Transformatorus lieto ļoti.
Kas ta ir tūrisms? Tūrisms personu darbības, kas saistītas ar ceļošanu un uzturēšanos ārpus savas pastāvīgās dzīvesvietas brīvā laika pavadīšanas, lietišķo.
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday's the end of the week. Put them all together, in good or stormy weather, Seven days will.
PR kā menedžmenta funkcija PR как функция управления.
S I N H R O N Ā S M A Š Ī N A S 2.daļa. Statora trīsfāzu tinumi Statora trīsfāzu tinumus veido no trim vienfāzes tinumiem, kuru sākumi nobīdīti par 120.
Elektrisko mašīnu pamati. Literatūra A.Zviedris Elektriskās mašīnas. Rīga, Zvaigzne, J.Dirba, K.Ketners, N.Levins, V.Pugačevs Transporta.
ELEKTRISKĀS PIEDZIŅAS JĒDZIENS Vēsturiski pirmie elektromehāniskie pārveidotāji bija dinamomašīnas un līdzstrāvas dzinēji (1870.g.). Tam sekoja strauja.
ASINHRONĀS MAŠĪNAS. Asinhrono dzinēju gadā izgudroja talantīgais krievu zinātnieks M. Doļivo-Dobrovoļskis. Vienkāršā uzbūve, darba drošums, samērā.
Одномерный массив Turbo Pascal 9 класс. Объясните каждый шаг в программе. Что делает программа? Сколько раз срабатывает цикл? Var A : array [1..10] of.
Тема: Нахождение минимального и максимального элемента в массиве.
5.Дана матрица А и вектор Х соответствующих размерностей. Нечетные строки матрицы заменить элементами вектора Х. Результаты работы: n=4 m=
Массивы в Паскале. Создание массива: var a:array [1..5] of integer; i:integer; begin for i:=1 to 5 do begin write ('a[',i,']='); readln(a[i]); end; end.
KvadrātvienādojumiKvadrātvienādojumi 8.klase matemātikas skolotāja O.Maļkova.
Рекурсивные структуры данных Списки, двоичные деревья.
Canad Erenerth Četras karaļvalstisCanad Erenerth Četras karaļvalstis Canad Erenerth meistargrupas dibinātājs Andrejs Irbe g.
Транксрипт:

1 DATU STRUKTŪRAS 2. lekcija – Datu jēdziens. Datu tipa jēdziens. Datu tipu klasifikācija

2 Informācijas jēdziens Enciklopēdijas vārdnīcā informācija raksturojas kā vispār zinātnisks jēdziens, kas iekļauj informācijas apmaiņu starp cilvēkiem, cilvēku un automātu, automātu un automātu; signālu apmaiņu dzīvnieku un augu pasaulē; pazīmju nodošanu no šūnas šūnā, no organisma organismā Informācija ir jebkuras ziņas par objektu, procesu un notikumu no apkārtējās pasaules.

3 Datu (data) jēdziens Dati un informācija ir sinonīmiski jēdzieni, kas tomēr nav identiski. Dati ir formalizētā veidā attēlota informācija jaunas informācijas iegūšanai. Datiem ir noteikta uzbūve jeb struktūra. Struktūra ir datu elementu saistības raksturs un to izkārtojums objektā vai sistēmā.

4 Datu tipa (data type) jēdziens Matemātikā datus klasificē pēc noteiktām pazīmēm un īpašībām. Ir skaitliskie dati un loģiskie dati. Skaitliskie dati iedalāmi veselos, reālos un kompleksos skaitļos. Dati glabājas datoru atmiņā, un datori operē ar datiem. Šie dati ir klasificējami pēc datu tipiem. Katrā programmēšanas valodā ir definēti savi konkrēti datu tipi.

5 Datu tips nosaka: vērtību tipu iespējamu vērtību apgabalu atmiņas apjomu un datu glabāšanas formātu pieļaujamās operācijas un funkcijas

6 Datu tipu klasifikācija Datu tips Skalārs datu tipsStrukturēts datu tips Predefinēts skalārs datu tips Lietotāja definēts skalārs datu tips Predefinēts strukturēts datu tips Lietotāja definēts strukturēts datu tips

7 Predefinēts skalārs datu tips char integer (byte, word, shortint, longint) real (double, single, extended) boolean

8 Lietotāja definēts skalārs datu tips uzskaitāmais datu tips diapazona datu tips lietotāja datu tips rādītāja datu tips

9 Predefinēts strukturēts datu tips virknes tips (string) masīva tips (array) ieraksta tips (record) kopas tips (set) faila tips (file) objekta tips (object)

10 Lietotāja definēts strukturēts datu tips tabulas (table) saraksti (list) steki (stack) rindas (queue) koki (tree) grafi (graph)

11 Uzskaitāmais tips Aprakstot šo tipu, programmētājs uzdod (uzskaita) visas tās vērtības, kuras mainīgajam varēs piešķirt, ja tas būs aprakstīts kā šī tipa mainīgais. Uzskaitāmā tipa mainīgie programmā var pieņemt tikai tādas vērtības, kuras uzskaitītas vērtību sarakstā. Piemēram: Type Vasara=('Junijs', 'Julijs', 'Augusts'); Uzskaitāmajam tipam pieļaujamas tikai salīdzināšanas operācijas, tam pielietojamas standartfunkcijas: Succ(x) -> uzdod aiz simbola x sekojošu simbolu no vērtību saraksta; Pred(x) -> uzdod aiz simbola x iepriekšējo simbolu no vērtību saraksta; Ord(x) -> uzdod simbola x kārtas numuru konkrētā simbolu kopā.

12 Piemērs Program Week; Type Week = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); Var Day: Week; Begin Day := Thursday; if (Day = Sunday) or (Day = Saturday) then Writeln('Brīvdiena') else Writeln(' Darbadiena'); End. Vērtību sakārtots kopums

13 Diapazona datu tips Jebkuram skalāram lielumam, izņemot daļskaitļus, var izveidot jaunu skalāru lielumu ar vērtību ierobežojumu kādā intervālā (diapazonā). Intervāla noteikšana paaugstina programmas drošību, ekonomē atmiņas izmantošanu, kā arī programmas izpildes laikā kontrolē piešķiršanas operācijas. Intervālu (diapazonu) var noteikt: 1) tipu apraksta daļā; Type =.. ; 2) mainīgo apraksta daļā; Var [,..]:.. ; kur - apakšējā robeža; - augšējā robeža.

14 Operācijas const X = 50; Y = 10; Type Interval = ; Gads = ; Scale = 2 * (X - Y)..(X + Y); Var burts: 'A'..'Z'; atzime: 1..10; Ar ierobežotiem mainīgiem saistītas kārtības operācijas ORD, SUCC, PRED, kā arī salīdzināšanas operācijas: >,, >=,<=.

15 Piemērs Kārtības operācijas nosaka elementa numuru, kas atbilst uzdoto vērtību sarakstam. Šis numurs sākas ar nulli (pirmais elements), kam seko vieninieks (otrais elements), utt. Tātad, ja uzdod mainīgo vērtības: CIPARS:='2'; BURTS:='B'; DIENA:=OTR; Tād izpildot rindiņu: WRITE (CIPARS, ORD(CIPARS), BURTS, ORD (BURTS), DIENA); Iegūsim: 2 50 B 66 1 Šeit '2' - mainīga CIPARS vērtība, '50' - cipara '2' kods, 'B' - mainīgā BURTS vērtība, '66' - burta 'B' kods, '1' - vērtības OTR numurs mainīgajam diena. VAR CIPARS: '0'..'9'; BURTS: 'A'..'Z'; DIENA: (PIR, OTR, TRE, CET, PIE, SES, SVE);

16 Masīva tips (array) Katrs programmā lietotais masīvs ir jānodefinē, piešķirot nosaukumu un norādot dimensiju skaitu, masīvu maksimālo elementu skaitu un elementu tipu. Var : Array [.. ] of ; kur, - jebkurš vesels skaitlis. Piemēram: Var Diena : Array [1..7] of String; masīva elementu indeksu vērtības, 1 – masīva elementu mazākais indekss (masīva Diena 1. elementa indekss); 7 – masīva elementu lielākais indekss (masīva Diena pēdējā elementa indekss).

17 Ieraksts (record) Ieraksts ir datu struktūra, kurā sakopoti dažāda tipa un dažāda garuma dati. Atsevišķu ieraksta lauku sauc par ieraksta komponenti. Datu tips ir jāuzdod katrai ieraksta komponentei, datu tips var būt jebkurš - skalārs vai strukturēts. type Date = record Day: ; Month: ; Year: ; end; work = record id: string [20]; start: Date; stop: Date; end;

18 Ieraksts (record) (2) Ieraksta lauki var būt izvietoti vairākos hierarhijas līmeņos. Lai organizētu piekļuvi ieraksta laukiem, lieto selektoru – saliktu nosaukumu, kurā ieraksta mainīgo un atsevišķas komponentes nosaukumu atdala ar punktu. Katram hierarhijas līmenim jāparedz punkts un lauka nosaukums.

19 Ieraksts (record) (3) Piemēram: var Q: work; Saliktie nosaukumi: Q.id – piekļuve darba nosaukumam, Q.start.Year – piekļuve darba uzsākšanas gadam, Q.stop.Day – piekļuve darba pabeigšanas dienai. writeln(Q.id, Q.start.Year, Q.stop.Day); Ieraksta lauku apstrādei plaši lieto operatoru with, piemēram: with Q do writeln(id, start.Year, stop.Day);

20 Kopas tips (set) Daži aprēķini pamatojas uz kopu jēdziena. Lai PASCAL valodā uzdotu kopu, jāpārskata tās elementi: PROGRAM KOPA; VAR A: SET OF 'A'..'Z'; B: CHAR; BEGIN A: = ['A','D','Q']; READ (B); WRITE (B IN A); END. "TRUE", ja tiks ievadīts viens no kopas A burtiem. Citos gadījumos dators paziņos: "FALSE"

21 Piemēri Datora visu simbolu kopa: VAR M: SET OF CHAR; Noteikta intervāla veselo skaitļu kopa: VAR G: SET OF ; Visu ciparu kopa: VAR C: SET OF '0'..'9';

22 Faila tips (file) Fails - tā ir informāciju elementu kopa (skaitļu, simbolu, kodu), kas pēc fiksēta nosaukuma pieejama datoram (magnētiskais disks, magnētiskā lenta, optiskais disks utt.). Par failu var programma, teksts, tabula, datora ekrāna kopija, katalogs, burtu grafiskie kodi un tml. Fails var būt tukšs, t.i., nesatur nevienu elementu, izņemot faila nosaukumu. Tāda gadījumā saka, ka faila garums ir vienāds ar nulli. Citos gadījumos garumu (apjomu) mēra baitos. Piemēram, ja failā atrodas kādas grāmatas teksts, kas sastāv no simboliem, tad runā par faila garuma baitiem, jo katram simbolam atbilst viens baits. Bet, ja failā atrodas piemēram, 130 veselie skaitļi, tad faila garums ir 260 baiti, jo viens veselais skaitlis datorā aizņem divus baitus. Līdzīgā kārtā var izvērtēt jebkura faila garumu.

23 Operācijas Atvēršana Gatavo failu lasīšana Jauno failu ierakstīšana Aizvēršana

24 Datu tipu raksturojumi Praktiski katrā programmēšanas valodā ir iebūvēts vienkāršo datu tipu komplekts; var būt arī līdzekļi, kas nodrošina iespēju definēt jaunus tipus. Datu tipa specifikācija raksturo datu tipu: kādas vērtības var pieņemt attiecīgie mainīgie, kā tos var izmantot, kādas operācijas un funkcijas tiem var pielietot utt. Datu tipa realizāciju izvēlas kompilatora izstrādātājs (pamatojoties uz specifikāciju, aparatūru un savu gaumi): kā novietot datus atmiņā, pēc kādiem algoritmiem aprēķināt funkciju un operāciju rezultātus, kādā mērā var izmantot iebūvētos datu tipus un iebūvētās operācijas.

25 Pamatelementi Datu tipa specifikācijas pamatelementi ir: atribūti, kas raksturo dotā tipa datu objektus (tipa nosaukums un precizējoši parametri) vērtības, kuras var pieņemt dotā tipa datu objekti operācijas, kuras nosaka iespējamās manipulācijas ar dotā tipa datu objektiem

26 Operācijas Pēc operandu skaita izdala šādas operāciju grupas: unāras operācijas: viens operands un viens rezultāts, piemēram, x++; bināras operācijas: divi operandi un viens rezultāts, piemēram, x+y; operācijas ar lielāku operandu skaitu (sastopamas samēra reti), piemēram: (x>0)?sqrt(x):-x*x;

27 Datu tipa realizācijas pamatelementi: datu objektu attēlošanas veids datora atmiņā operāciju attēlošanas veids - operāciju realizācijas algoritmi

28 Datu objekts Datu objekts ir viens vai vairāki datu elementi, kas glabājas datora atmiņā kā viens vesels. Dažus datu objektus nosaka (definē) programmētājs (piemēram, mainīgos un konstantes), citus datu objektus nosaka (veido pēc nepieciešamības) sistēma (piemēram, apakšprogrammu aktivizācijas ieraksti). Katram datu objektam ir noteikts dzīves laiks, piemēram, globālie dati eksistē visu laiku, kamēr izpildās programma, bet lokālie dati dzīvo tikai kamēr izpildās "dzimtā" apakšprogramma.

29 Mainīgais Mainīgais ir datu objekts, kuru programmētājs tieši definēja un nosauca. Uzskata, ka mainīgais ir tāds datu objekts, kura vērtību var mainīt, pielietojot piešķires operāciju, un parasti tas notiek vairākas reizes tā dzīves laikā. Konstante ir datu objekts, kura vārds ir saistīts ar vienu vērtību dzīves laika gaitā. Piemēram, programmas fragmentā: const int Max=100; int Av=Max/2; /* Max=100 ir konstante ar vārdu, "2" - burtiskā konstante, Av - mainīgais. */

30 Datu apraksts Datu apraksts ir speciāls operators, kas paziņo translatoram informāciju par datu objektu vārdiem un tipiem. Datu apraksta vieta programmā nosaka arī to dzīves laiku (globālie un lokālie dati). Ir dažādi datu apraksta varianti: tiešs apraksts (katra objekta tips ir tieši norādīts) pēc noklusēšanas (tipu nosaka objekta vārds)

31 Datu apraksts nodrošina: optimizāciju, efektīvi izvietojot datus atmiņā atmiņas vadības optimizāciju, izmantojot informāciju par objektu dzīves laiku (piemēram, ja vairāki objekti aprakstīti vienā vietā apakšprogrammas sākumā, tad pēc apakšprogrammas izpildes var "izmest" no atmiņas visu datu bloku uzreiz) iespēju izvēlēties pareizu operācijas variantu, ja tā ir pārslogota tipu kontroli.

32 Tipu kontrole Statiskā tipu kontrole iespējama valodās, kurās visi dati ir aprakstīti (tieši vai pēc noklusēšanas). Dinamiskā tipu kontrole nepieciešama, ja datu apraksti netiek izmantoti un datu tipu nosaka to vērtības (kas var mainīties programmas izpildes laikā). dinamiskā tipu kontrole statiskā tipu kontrole

33 Rādītāja datu tips Rādītājs - baita adrese atmiņā. tipizēts rādītājs un netipizēts rādītājs Piemērs: Var p1: ^integer; p2: ^real; Var p: pointer;

34 Operācijas := ; 1) rādītājs 2) funkcija, kuras vērtība ir rādītājs 3) konstante NIL salīdzināšanas operācijas: =,, = Piemērs: const p: ^ real = NIL; begin... if p = NIL then NEW(p);... dispose(p); p := NIL;... end;

35 Piemēri Var p1,p2: ^integer; p3: ^real; pp: pointer; p1 := p2; p1 := p3; pp := p3; p1 := pp; Kļūda! i^ := 2; r^ := 2*pi; r^ := sqr(r^) + i^ - 17;

36 Netipizēts rādītājs Lai strādāt ar netipizēto rādītāju, izmanto šādas procedūras: GETMEM(P,SIZE) - atmiņas rezervēšana FREEMEM(P,SIZE) – atmiņas atbrīvošana P – netipizēts rādītājs, SIZE - izmērs baitos.