Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4444УМК17.11.05каз_Delphi.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.42 Mб
Скачать

Бақылау сұрақтары

  1. Мәліметтердің қандай типтерін бағдарламалаушы құра алады?

  2. ?

  3. Мәліметтердің қандай реттiк типтерiн бағдарламалаушы құра алады?

  4. Қандай функциялар реттiк типтiң айнымалылары үшiн қолданылады?

  5. Мәліметтердің қандай бүтiнсанды физикалық типтерi Сiзге мәлiм?

Дәріс 7. Компоненттер палитрасындағы парақтар. Мәтіндік ақпараттарды енгізуге және бейнелеуге арналған компоненттер Деректердің құрылымдық типтері. Массивтер. Жиын.

Құрылымдық типтердің деректері құрылымдықпен қоса басқа типтердің деректерінен тұрады. Құрылымдық типтердің деректеріне жататындар:

  • жолдар;

  • массивтер;

  • жиындар;

  • жазбалар;

  • файлдар;

  • кластар.

Бұл типтерді 7-9 дәрістерде қарастырамыз.

Жолдар

Жолдар (жолдық типтер) 2.4 кестесінде көрсетілген үш физикалық және бір жалпы типтермен көрсетілген.

Кесте 2.4- Деректердің жолдық,физикалық типтері

Белгіленуі

Символдардың максимал ұзындығы

ShortString

255

AnsiString

Шамамен 2*1031

WideString

Шамамен 2*1030

ShortString типінің деректері  256 элементтен тұратын – array[0..255] массиві болып табылатын жолды сипаттайды.Бұл массивтің (жолдар) нольдік байты жолдың ұзындығына көрсетеді. Бұрын мұндай жол String типімен сипатталатын. ShortString типі тілдің алдыңғы версияларымен сәйкестендіру үшін енгізілген.

AnsiString және WideString динамикалық массивтерді сипаттайды, олардың максимал ұзындығы компьютердің негізгі жадысының өлшемімен шектелген. AnsiString деректерінің типі ANSI кодында , ал WideString- Unicode кодында кодталады.

String типі ShortString немесе AnsiString типтеріне сәйкес келетін жалпы тип болып табылады.Бұл $H компиляторының директивасы.Келісіммен {$H+} және AnsiString-ке тең String типі қолданылады.Проекттің параметрлер файлында “+” белгі директивасы(және де басқа директивалар) Н=1 жазбасына ,”-” белгісі H=1 жазбасына сәйкес келеді.Шығарушы тип интерпритациясын проект параметрінің терезесі арқылы Huge String жалаушасын іске қосып немесе алып басқарады.

Жолдар фактілі түрде символдар массиві болғандықтан , жолдың бөлек символына үшін жолдың атын және осы символдың позициясын квадратты жақшада көрсету керек, мысалы strName[1].

Қарастырылған типтерден басқа PChar типі бар .Ол нолдік аяқталуы бар аталған жол болып табылады.Оның соңында #0 коды бар.Жолдың максимал ұзындығы компьютердің негізгі жадысының өлшемімен шектелген.

Массивтер

Массив деп жалпы бір аты бар біртипті элементтердің тізбектелген жиыны. Массив элементі болып құрылымдықпен қоса әр түрлі типтердің деректері болуы мүмкін.Массивтің әр элементі массив атымен және индекспен(массивтегі элемент номері) немесе егер массив көпөлшемді болса, онда индекстермен анықталады.массивтің бөлек элементіне 111 үшін осы массивтің аты және квадрат жақшаға алынған элемент номері, мысалы arr[1,35] немесе arr[7].

Индексті позициялар саны массив өлшемділігін анықтайды. Сонымен қатар массив өлшемділігі шектелмейді.Математикада бірөлшемді массив аналогі болып вектор , ал екіөлшемді массив аналогі болып матрица саналады.Массив элементтерінің индекстері қатарланған типке жатуы тиіс.Бір массивтің әр түрлі индекстерінің әр түрлі типтері болуы мүмкін.Ең жиі кездесетін индекс типі бүтін тип болып табылады.

Массивтер динамикалық және статикалық болып бөлінеді.Статикалық массив индекс шекаралары және сәйкес оның өлшемдері хабарлаған кезде , яғни программа компиляциясынан бұрын белгілі болады.Сатикалық массивтің типінің жазылу форматы:

Array[индекстер типі] of <Элементтер типі>;

Мысал.Статикалық массивтерді хабарлау.

Type tm=Array[1..10,1..100] of real;

Var arr1,arr2:tm;

Arr3:Array[20..100] of char;

Arr4:Array[‘a’..’z’] of integer;

arr1 және arr2 айнымалылары 1000 элементтен - 10 жол және 100 бағаннан тұратын екіөлшемді массив болып табылады. Осы массивтердің әр элементі real типті санды сипаттайды. arr1 және arr2 массивтерін хабарлау үшін tm арнайы типі енгізілген. arr3 және arr4 айнымалылары сәйкес 81 символ және 26 бүтін сан бірөлшемді массиві болып табылады.

Динамикалық массив тек оның элементтерінің типі көрсетілетін, ал массив өлшемі программаның орындалу барысында белгілі болатын массив болып табылады. Динамикалық массив қолдану кезінде динамикалық массивтің типін суреттеу форматы 4 версиясынан бастап мүмкін болды:

Array of<Элементтер типтері>;

Программаның орындалу барысында динамикалық массивтің өлшемін беру SetLength (var S; NewLength:Integer) процедурасы арқылы жүзеге асады.Бұл процедура s динамикалық массивіне NewLength-ке тең жаңа өлшем орнатады.Динамикалық массив және оның элементтерімен операцияларды тек массив өлшемін енгізгеннен соң орындауға болады.

Динамикалық массивтің өлшемін берген соң оның ұзындығын,минимал және максимал элементінің номерін анықтау үшін сәйкесінше Length(), Low() , High() функциялары қолданылады. Динамикалық массивтің номірленуі нолден басталады, сондықтан Low() функциясына ноль мәні қайтарылады.

Мысал. Динамикалық массивті қолдану.

Var n:integer;

m: Array of real;

Setlength(m,100);

For n:=0 to 99 do m[n]:=n;

SetLength(m,200);

Нақты сандардан тұратын динамикалық массивті сипаттаған соң 100 элементкке тең массив өлшемі анықталады. Әр элементке массивтегі номеріне тең мән беріледі.Элемент номірленуі нольден басталғандықтан ,соңғысының номері 99-ға тең. Циклдан кейін массив өлшемі 200-ге дейін үлкейеді.

Динамикалық көпөлшемді массивтің типін сипаттау үшін:

Array of array of <Элементтер типі>

конструкциясы қолданылады

Көпөлшемді динамикалық массив үшін SetLength(var S; NewLength1, NewLength2:Integer) процедурасы көмегімен жаңа өлшемдер орнату әр индекс үшін орындалады.

Массивке әрекет ,сонымен қатар енгізу және шығару операциялары, элемент бойынша жасалады. Элементті өңдеу цикл қолдану арқылы жүзегеиасады. Массив (бір объект сияқты) қатынас операцияларында және меншіктеу операторында қатыса алады. Бұл кезде массивтер құрылымы бойынша сәйкес болуы керек ,яғни бірдей типтер индекстері және бірдей типтер элементі болуы керек.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]