Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Razdel_1_2007.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
421.96 Кб
Скачать

9. Складені типи даних: структури (записи)

Структура — это совокупность переменных, объединенных под одним именем.

Объявление структуры создает шаблон, который можно использовать для создания ее объектов. Переменные, из которых состоит структура, называются членами. Члены структуры связаны друг с другом по смыслу.

Ключевое слово struct сообщает компилятору, что объявляется структура.

Общий вид объявления структуры такой:

struct тег {

тип имя-члена;

тип имя-члена;

тип имя-члена;

. . .

} переменные-структуры;

Рассмотрим пример с тегом "дата", который состоит из: число (день, месяц, год), название недели и месяца:

struct date {

int day ;

int month ;

int year;

char day_name[15];

char mon_name[14];

} arr[100],*pd,data,new_data;

В данном примере объявляются:

data, new_data - переменные типа структуры date;

pd - указатель на тип data

arr - массив из 100 элементов, каждый элемент которого имеет тип date.

Описание структуры не выделяет место в памяти под элементы структуры. Ее описание определяет только так называемый шаблон, который описывает характеристики переменных, которые будут размещены в конкретной структуре. Для внесения изменений и зарезервирования памяти необходимо после фигурной скобки, которая завершает описание структуры указать список идентификаторов (пред. программа) либо отдельно объявить переменные.

10. Файлові типи даних. Файли прямого доступу.

ТП вводит особый файловый тип, являющийся обобщенным файловым типом. Его обозначение состоит только из слова File без указания типа компонент.

Задание файловой переменной Файловый тип или переменную можно задать одним из трех способов:          <имя> = FILE OF <тип> <имя>     &nbsp- имя файлового типа (правильный идентификатор); FILE OF &nbsp- зарезервированные слова; <тип>     &nbsp- любой тип Turbo Pascal кроме файлов.

В зависимости от способа объявления можно выделить три вида файлов: А) типизированные файлы (задаются предложением FILE OF);

Б) текстовые файлы (определяются типом TEXT);

В) нетипизированные файлы (определяются типом FILE).

Хоча доступ до елементів файлу послідовний (тобто до кожного елементу файлу можна дістатись, лише починаючи з початку файлу), є можливість використати стандартні функції, які дозволяють організувати роботу з файлами так званого прямого доступу.

1. int fgetpos ( FILE *fp, fpos_t *pos); - заносить в змінну pos , типом якої є fpos_t (це еквівалент типу long int), значення поточної позиції в файлі fp. Повертає 0, якщо позиція pos успішно визначена.

2. int fsetpos ( FILE *fp, fpos_t *pos); - встановлює в файлі fp поточну позицію в положення, визначене вказівником pos. Останній мав бути раніше визначений функцією fgetpos. Повертає 0, якщо позиція pos успішно встановлена.

3. int fseek ( FILE *fp, long offset, int from_where ); - встановлює в файлі fp поточну позицію в положення, що відстоїть на offset байтів від положення, визначеного аргументом from_where в сторону кінця файлу при offset>0 і в сторону початку при offset<0. Аргумент може набувати значення однієї з трьох стандартних констант: SEEK_SET (=0) відлік від початку файлу; SEEK_CUR (=1) відлік від поточної позиції в файлі; SEEK_END (=3) відлік від кінця файлу. Повертає 0, якщо позиція успішно встановлена.

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