Учебное пособие Самара 2015 + 004. 43 Ббк 32. 973 Н 19


Download 1.98 Mb.
bet22/53
Sana15.08.2023
Hajmi1.98 Mb.
#1667321
TuriУчебное пособие
1   ...   18   19   20   21   22   23   24   25   ...   53
Bog'liq
Lekcii AiSD 2015

Bcnomozamennnuie QyHKuHii:
FILE* fopen(char* name, char* code) — OTK]3bITHé Marina (pac—
CMOT]3 HH BI›IIII .
int fclose(FILE* file) — 3I1K]3bITHé II$JJII1.
int access(char* name, int n) — n]3oBepKa Marina; per M H]3o- Bé]3Kii OnpeaealléTCs apryMeHTOM H, n = — n]3OBé]3KlI Ha cy ecTBO- BllHHe, 1 — HH BhIHOJIHIIéMOCTh, 2 — HH 3IInrics, 4 — HH UTéHHe, 6 — HH
3IIHHCh H UTéHHe, 7 — HU 3I1HHCI›, 9TéHHé H BI›IHOJIHIIéMOCTh H T.,Q. ]3H
ycneIIIHOM 3l1Bé]3IIIéHiiii QyHKuHII BO3B]3I1uitléT .
int fileno(FILE* file) — BO3B]3I1IIJIIéT IJéJIOUHGJIéHHhI H,QéHTH- QHKtlTO]3 (handler) Marina. DTa QyHKuHll o6écneUHBlléT CBII3h oToro n@éHTH§iHKaTOpa H yKasiITéJIII HH THH FILE. eDOUHcJIéHHI›I H,QéH-
THQHKIITO]3 Heo6xop v pns cnepyioiiieii QyHKuHii.
long filelength(int handle) — BO3B]3IIiiiIIéT ,QniiHy QaiiJIIl B 6II$JTIIX. 3HtlKOBI›I THH long nosBOJIIIéT cOs,QiIBtlTI› Qtl JII›I QJIHHO He 6onee 2 F6aiiT.
int fseek(FILE* file, long pos, int sign) — ne]3éMéIIIéHHé TeKy-
IlIé HO3HIJHH 3iIHHCH/GUHThIBiIHHII B QIIiiJIé B TouKy, yKasI›IBaeMyio apryMeHTOM O s, OTG U T BI›IHOJIHIIéTCII OT HtlUana Fianna, eGnH apry- MéHT siqn =, OT KOHIJII Marina npri siqn = 2, OT Texyiiieii nosri—
inn npri siqn = 1.
long ftell(FILE* file) — BO3B]3I1iiIIIéT TeKyiiiyio nosHIJHIO B Qllii- we. DTa i]iyHKuHII Honé3Htl Qcs npepsIqyiiieii.
int rewind(FILE* file) — ne]3éMéIIJéHHé TeKy en nO3HL(HH B HIV-
UIIJIO II SHH.
int rename(char* old name, char* new namé — Hé]3éHMéHOBl1-
HH II HH.
int unlink(char* name) — yuauéHHé Marina.
&yHKuHii zanucu7c•iuP bI8aHHR.
int getc(FILE* file) — cUHThIBlIHHé CHMBOJIa (6ailTII , HéCMOT]3II
HH TO, CTO BO3B]3 tIIJi1 T 3HI1H HH THHI1 i FI L .
int getw(FILE* file) — CUHThIBflHHé IléJIOFO UHCJIII
int putc(int c, FILE* file) — 3tlHHCb CHMBOJIII
int fputs(const char* s, FILE* filé) — sanncs cTpoxn
char* fgets(char* s, int n, FILE* file) — CUHTbIBIIHHé CT]3OKH
69
длиной п—1 символ
int fread(void* block, size t size, size t items, FILE* file) считывание из файла в блок памяти, адресуемый указателем b1ссk, данных в количестве iLems элементов, каждый элемент размером siz е байт. Указатель на тип vo id используется пото— му, что неизвестен заранее точный тип считываемых данных. siz е L — один из переименованных целых типов (для 32- разрядных систем — часто беззнаковый целый), определён в заго- ловочном файле sL dde I . h. Аргументы sіz е и i 4ems — взаи— мозаменяемые, например, можно прочитать 1 блок данных раз- мером 1000 байт или 1000 блоков размером 1 байт.
size t fwrite(const void* block, size t size, size t items, FILE* file) — запись блока в файл. Блок помечен как константный, чтот- бы внутри функции его нельзя было модифицировать.
Кроме этих функций запись в текстовый файл может вы- полняться функцией fprin L f, а считывание функцией fscan f . Обе эти функции относятся к функциям с переменным числом аргументов, рассмотрение которых выходит за рамки на- стоящего курса.


Вопросы и задания для самоконтроля



    1. Что такое файл?

    2. К какой группе структур данных относятся файлы?

    3. Какие действия необходимо выполнить для работы с

файлом?

    1. Различаются ли файлы по типам?

    2. Как в программах устанавливается связь с файлами?

    3. Какие способы организации связи с файлами вам из-

вестны?

    1. Какие операции можно выполнять над файлами?

    2. Как открыть файл для записи?

    3. Как открыть файл для считывания?

    4. Какая функция позволяет узнать длину файла?

    5. Как проверить, можно ли произвести запись в выбран- ный файл?

70


    1. Можно ли считать данные из произвольного места в файле? Если да, то как это сделать?

    2. Можно ли перемещаться по файлу? Если да, то с по-

мощью какой функции?

    1. Чем отличается запись действительных чисел в тексто-

вый и двоичный файлы?

    1. Требуется создать файл размером 8 Гбайт. Можно ли для работы с таким файлом использовать тип данных 1onq?

    2. Как получить размер файла?

    3. Можно ли в файл записывать разнотипную информа-

U ю?



    1. Как удалить содержимое существующего файла?

    2. Как обеспечить связь между файлами и функциями?

71


    1. Очереди

Все линейные динамические структуры данных могут быть отнесены к сппсковыж структурам. Именно такими явля- ются разные виды очередей и стеки. Динамическими эти струк- туры считаются по той причине, что их размер в процессе работы может изменяться — список может удлиняться или укорачиваться,



  • а элементы структур (включая самые первые) создаются и раз- рушаются при помощи операций или процедур динамического выделения и освобождения памяти.

Начнём рассмотрение этих структур данных с наиболее про-
стых, т.е. с очередей.
В общем случае, очередь — это линейный список, доступ к элементам которого происходит по принципу FIFO (First In and First Out — первым пришел и первым ушел).
Для очереди характерны две операции — занесение элемента в очередь и извлечение (считывание) элемента из очереди. В про- стой очереди для работы с данными доступны две позиции — на- ч‹zла (из этой позиции происходит извлечение) и конец (в эту по- зицию заносится входящий элемент) или « сoлoвп» и «хвост». Произвольный доступ к элементам, в отличии от массивов, фор- мально ne допускается. Операция извлечения (считывания) формально является разрушающей. Это означает, что считанные данные становятся недоступными. Возможно, явного разрушения (уничтожения) данных и не происходит, но к ним нет доступа, используя стандартные операции работы с очередью.
Области применения очередей могут быть разделены на две группы системное применение и прикладное. К примене- нию очередей в спсшежпых целях относятся:

  • диспетчеризация задач операционной системой;

буферизация ввода/вывода;
Прикладное применение:

  • моделирование процессов (например, систем массового

обслуживания);
использование очередей как вспомогательных структур данных в каких-либо алгоритмах (например, при поиске в графах).
72
ДНИМ из приме]ЗОВ Очереди ЯВЛRёТСІІ мaшиHa Тьюринга.
ОЛёё П]ЭОСТЬІМ МёХllНИЧёСКИМ П]ЭИМё]ЭОМ ЯВЛЯёТGя Труба с Теку- IIIëÈ TOJIЬKO В O@HOM НапраВлёННН ЖИдкОСТЬЮ.
Классификация очередей. Ухо архитектуре Очерё@Н @ёЈІЯТ-
СЯ HIS ЛННёЙНЬІё И КОЛЬЦёВЬІё (ЦНКЛИЧёGКНё). ПtЭ КСlЛичёсТВу позН-
ЦНЙ ЗІІПНСН Н СЧНТЫВІІНИЯ — НІ1 Н]ЗОСТЬІё Н UpHOp НАХРЕН Ы . Й]ЗОМё
TOгo cyiiiecTByeT сНегіиdЛЬНЬlЙ ВНД Очереди ЬвухвхоЬовая оче-
реЬь нпн Ьек (DEQue Double Ended Queue; queue — очередь).
На пракТНКё Очереди MoгyT реалиЗОВЬІВllТЬСя п]ЗН HOMOIIJH оЬномерных массивов нян связные списков, что хорошо иллю- CTpHpyeT раsличНё Между noгичecK HM Н QlfзпческпШ уроВНЯМН cTpyKTyp даННЬІХ (MIICCHB HIS изичёСКоМ ypoBHë ЯBЛRëTGR оче]Зё-
ДЬЮ HIS JIOFHЧëCKOM .
Нгіже іІ]ЭИВёД НЫ П]ЭИМё]ЭЬІ П]3oueayp saHëCëHHЯ И НЗВЛёЧёННЯ
ДЛЯ ЛИНё$ЈНО$Ј ОЧё]ЗёДН HIS ЯЗЫКІІХ tlCKdЛb Н THE .
ПporpaMMI1 ]ЗІІбоТЬІ С ЈІИНё$ЈНОЄ OUë]3ë@hЮ НІ1 fl3blKë ІІСКбЛЬ.

Programm Queue Test;


var
q:array[0..30] of Integer; (* LxodaebHBx maC-
CUB, HP KOTO OM U CT OUTCS One eQb *)

Download 1.98 Mb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling