Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Файлдар






Паскаль тіліндегі файл дегеніміз – саны шектелмеген бір типті мә ліметтердің реттелген жиыны. Файлдар негізінен мә ліметтерді сақ тауғ а, жинауғ а жә не ө ң деуге арналғ ан. Файлдардың ең басты ерекшелігі – олар оперативтік жадыда емес, сыртқ ы жадыда сақ талады. Бұ дан файлдар - ө ң деуге арналғ ан ақ параттарды сақ тау жә не жинақ тау ү шін пайдаланылады деуге болады. Яғ ни, файлдық тип программаны компьютердің сыртқ ы қ ұ рылғ ыларымен байланыстыратын жалғ ыз тип болып табылады.

Паскаль тілінде файлдық типті ү ш тү рге бө ліп қ арастыруғ а болады:

типтелген файлдар;

текстік файлдар;

типтелмеген файлдар. Типтелген файл дың кез келген компонентінің ұ зындығ ы тұ рақ ты болып табылады, себебі компонент типі сипаттау кезінде анық талады да, ә рбір компонентке белгілі бір жады кө лемі бө лінеді. Бұ л файлдың ә рбір компонентіне реттік номері бойынша тікелей қ атынауғ а мү мкіндік береді.

Типтелген файлдарды сипаттауғ а file of қ ызметші сө зі қ олданылады. Жалпы тү рде жазылуы: Файлдық айнымалы: file of тип; Бұ л жерде тип файлдық типтен басқ а кез келген тип болуы мү мкін. Типтелген файл компоненттері бойымен жылжуды жең ілдету мақ сатында Паскаль тілінде арнайы процедуралар мен функциялар қ арастырылғ ан:

fileSize(< файлдық айнымалы>) – файлдағ ы компоненттер санын анық тайтын функция;

filePos(< файлдық айнымалы>) – кө рсеткіштің ағ ымдағ ы позициясын анық тайтын функция;

seek(< файлдық айнымалы>, n) – кө рсеткішті файлдың n номерлі компонентіне жылжытатын процедура;

Типтелмеген файлдарды сипаттау кезінде оның компоненттерінің типі кө рсетілмейді. Типтелмеген файлдарды сипаттау Паскаль тілінде келесі тү рде жү зеге асырылады: Файлдық айнымалы: file; Типтелмеген файлдар кез келген файлмен сә йкестендіріледі жә не типтелген файлдарғ а қ арағ анда тез ө ң деледі. Мұ ндай файлдарғ а ақ паратты енгізу жә не шығ ару блоктап жү зеге асырылады. Типтелмеген файлды мә ліметтер оқ у немесе жазу ү шін ашу кезінде екінші параметр ретінде байттармен файл блогының кө лемі кө рсетіледі. Ү нсіз келісім бойынша блок кө лемі 128 байтқ а тең.

Типтелмеген файлдан мә ліметтер оқ у ү шін Blockread процедурасы қ олданылады. Жалпы тү рде жазылуы:

Blockread(< файлдық айнымалы>, < компонент>, < компоненттер саны>)

Текстік файлдар текстік ақ параттарды сақ тауғ а арналғ ан. Текстік файлдарды сипаттау ү шін text қ ызметші сө зі қ олданылады. Жалпы тү рде жазылуы:

Файлдық айнымалы: text;

Текстік файл компоненттерінің кө лемі ә ртү рлі болуы мү мкін. Файлдың ә рбір жолымен жұ мыс бірінші жолдан бастап тек тізбектей ғ ана орындалуы мү мкін. Жоғ арыда айтылғ ан типтелген файлдарғ а қ олданылатын процедуралар мен функцияларды текстік файлдарғ а қ олдануғ а болмайды. Текстік файл қ ұ рылғ ан кезде ә рбір жолдың соң ына EOLN (end of line -жолдың соң ы) арнайы белгісі қ ойылады. Кө рсеткіштің жолдың соң ына жеткендігін тексеру ү шін EOLN логикалық функциясы қ олданылады. Жазылуы: EOLN(< файлдық айнымалы>).

 

2𝟧 -26-41. Динамикалық массивтер

Программаның орындалу кезінде массивтегі элементтер санын анық тап, массив ү шін жадыдан қ ажет ө лшемді бө ле аламыз. Массивпен жұ мыс жасалып болғ ан соң, алдың ғ ы бө лінген жадыны босатуғ а болады. Жадыны осылайша бө лу арқ ылы анық талатын массивтер динамикалық деп аталады. х динамикалық массивінің і-ші элементі x^[i] деп жазылады.

Динамикалық массивтермен жұ мыс жасау барысында келесі ретті сақ тау керек:

кө рсеткіштерді сипаттау керек.

жадыдан орын бө лу керек.

динамикалық массивті ө ң деу керек.

жадыны босату керек.

Динамикалық матрица дегеніміз, ә рқ айсысы бір жолды (немесе бір бағ анды) адрестейтін кө рсеткіштер массиві.

Динамикалық матрицаның сипатталуын қ арастырайық. Мә ліметтер типі massiv жә не оғ ан кө рсеткіш din_massiv берілген болсын.

Type massiv=array[1..1000] of real;

Din_massiv=^massiv;

 

27-42-4𝟧. Сызық ты тізімдер. Стек пен кезек

Ө зара кө рсеткіштермен байланысқ ан бір типтік элементтер қ атарын тізім деп атаймыз. Айталық, ө зара кө рсеткіштер тізбегімен байланысқ ан біртипті элементтер қ атары берілсін. Ә рбір элемент, соң ғ ысынан басқ а, мә ліметтерімен қ оса келесі элементке кө рсеткіштен қ ұ ралғ ан болсын. Мұ ндай қ ұ рылым сызық ты бірбағ ытталғ ан тізім деп аталады. Тізім элементі жазба болып табылады. Ө рістері: мә лімет жә не типтік кө рсеткіш. Тізім элементін сипаттау ү шін алдымен типтік кө рсеткіш сипатталады, содан соң оның базалық типі сипатталады:

Type lst_ptr=^lst_type;

Lst_type=record

Data: datatype;

Next: lst_ptr;

End;

Стек – бір типті мә ліметтер тізбегінің арнайы қ ұ рылымы. Бұ л мә ліметтерге ену мү мкіндін алу ү шін стектің тө бесі деп аталатын белгілі бір позиция пайдаланылады.

Стектің жеке мә ліметі – оның элементі деп аталады. Стектегі элементтер бірінен соң бірі орналасқ ан.

Стек ү шін екі негізгі операция маң ызды орын алады: стекке мә лімет қ осу жә не стектен мә лімет алу.

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

Стектен мә ліметті алу кезінде тө бесіндегі мә лімет алынып, барлық элементтер бір позицияғ а жоғ ары жылжиды.

Ширет – мә ліметтерді алу тек оның басынан, ал мә ліметтерді қ осу ү шін тек соң ына ғ ана мү мкін болатын біртипті мә ліметтер тізбегінің арнайы қ ұ рылымы.

Ширеттің де жеке мә ліметі оның элементі деп аталады. Стектегі сияқ ты ширетте де элементтер бірінің соң ына бірі орналасады.

Мұ нда да екі негізгі опеарция: ширетке мә ліметтерді қ осу жә не одан мә лімет алу.

Ширетке мә ліметті қ осу кезінде ол ширеттің соң ғ ы элементінің артына орналасып, ө зі соң ғ ы элемент болып кетеді.

Ал ширеттен мә ліметті алу кезінде, мә лімет ширеттің басынан алынып, қ алғ ан мә ліметтер бір позицияғ а басына қ арай жылжиды.

 

29-36-37.

Паскаль тілінің графикалық мү мкіндіктері.

Graph модулін іске қ осу ү шін программаның модульдерді қ осу бө лімінде UsesGraph деп жазамыз. Графиктермен жұ мыс істеу алдында оғ ан сә йкес келетін монитор режимін орнату қ ажет. Паскаль тілінде алдын ала бекітілген драйверлер саны бар. Графиктік режимді іске қ осу келесі процедураның кө мегімен жү зеге асырылады:

InitGraph(var Driver, Mode: integer; Path: string);

Графикалық режимде жұ мыс істеуге арналғ ан процедуралар мен функциялар

Графиктік режиммен жұ мыс істеуге арналғ ан келесі процедуралар мен функциялар қ арастырылғ ан:

CloseGraph процедурасы – графиктік режимді жабуғ а арналғ ан.

SetColor процедурасы – бейнеленетін символдар мен тү зулердің тү сін орнатады.

GetColor функциясы – ағ ымдағ ы тү сті қ айтарады.

GetMaxColor функциясы - GetColor функциясына параметр ретінде беруге болатын ең ү лкен мә нді анық тайды.

SetBkColor процедурасы – фон тү сін орнатады.

SetPalette процедурасы – палитра тү сін жаң а тү ске ауыстырады.

SetFillStyle процедурасы – бояу тү сін жә не нұ сқ асын анық тайды.

GetX, GetY – ағ ымдағ ы нү ктенің тік жә не кө лденең координаталар мә нін қ айтарады.

MovеTo процедурасы – ағ ымдағ ы кө рсеткішті берілген координата бойынша орналастырады.

ClearDevice процедурасы – экранды тазартып, ағ ымдағ ы кө рсеткішті экранның жоғ арғ ы сол жақ бұ рышына орналастырады.

PutPixel процедурасы – берілген орынғ а берілген тү с бойынша нү кте салады.

Line процедурасы – берілген координаталар бойынша екі нү кте арасына тү зу салады.

LineTo процедурасы – ағ ымдағ ы орыннан бастап берілген координатағ а дейін тү зу сызады.

SetLineStyle процедурасы – тү зудің жаң а тү рін бейнелейді.

Rectangle процедурасы – берілген координаталары бойынша тө ртбұ рыш салады

Circle процедурасы – шең бер салады.

OutText процедурасы – ағ ымдағ ы орыннан бастап тексті шығ арады.

 

40. Динамикалық жадымен жұ мыс

Динамикалық жады дегеніміз - жалпы жады кө лемінен мә ліметтер сегментін (64Кб), стекті (16Кб) жә не ехе-кодты алып тастағ андағ ы қ алғ ан бө лігі.

Жадыны басқ арудың негізгісі – ұ яшық тың немесе байттың адресі. Паскальда жадыны басқ ару ү шін арнайы мә ліметтер типі енгізілген. Бұ л мә ліметтер типі – кө рсеткіштер деп аталады. Кө рсеткіштің мә ні – байттың адресі. Кез-келген динамикалық айнымалы ү шін жады new процедурасы кө мегімен бө лінеді. Оның параметрі болып типтелген кө рсеткіш табылады. Процедураны шақ ыру кезінде кө рсеткіш мә ліметтерді орналастыруғ а болатын динамикалық адреске сә йкес мә нді қ абылдайды. Кө рсеткіштермен жә не динамикалық жадымен жұ мыс жасау кезінде new, dispose процедураларының дұ рыс қ олданылуын жә не адрестермен, динамикалық жадымен жұ мыс жасауды қ адағ алап отыру керек, себебі транслятор мұ ндай қ ателіктерді бақ ыламайды. Осы тектес қ ателер ә серінен компьютер уақ ытша істен шығ уы мү мкін.

Кө рсеткіштерді қ олданғ ан кезде пайдаланылатын кейбір функцияларды қ арастырайық.

Addr(var x) функциясы х параметрінің адресін береді (нә тиже типі - pointer). Бұ л фунцияғ а сә йкес болатын операция - @, оның операндасы ретінде адресін табу керек болатын объект болып табылады.

seg(x) функциясы х параметрінің сегментін табады (типі word).

ofs(x) функциясы х параметрінің ығ ысуын береді (типі word).

ptr(sg, ofs: word) функциясы sg жә не ofs мә ндерін, sg нө мірі бар сегментте, оның басынан ofs байтқ а ығ ысқ ан байт адресінен тұ ратын кө рсеткішке тү рлендіреді.

Қ осымша:

 

 

Бү тін типтер
Тип атауы Жадыдан алатын орны, байт Мә ндер диапазоны
Byte   0..255
ShortInt   -128..+127
Word   0..65535
Integer   -32768..+32767
LongInt   -2 147 483 648..+2 147 483 647

 

Нақ ты типтер
Жадыдан алатын орны, байт Тип атауы Нақ ты мә нге ие цифрлар саны Мә ндер диапазоны
  Real 11..12 -39..+38
  Double 15..16 -324..+308
  Extended 19..20 -4951..+4932
  Comp 19..20 -2*1063 +1..+2*1063 -1

 

Мазмұ ны:

1. 1. Прог-у тіл-ң классификациясы

2. 2. Паскаль тіл-ң нег эл-і, станд функ-р, айнымалы-р, тұ рақ ты-р

3. 3. Прог қ ұ рылымы, қ ызм сө з-р, комментарийлер

4. 4-𝟧. Меншіктеу операторы, енгізу, шығ ару, сызық ты прог-у






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.