ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.04.2025
Просмотров: 1458
Скачиваний: 1
СОДЕРЖАНИЕ
Федеральное агенство по образованию российской федерации
1. Основные категории и понятия информатики
1.2. Информация: структура, форма, измерение
2. Техническое и программное обеспечение пэвм
2.1. Структура аппаратных средств пэвм
2.2. Программное обеспечение пэвм
3.2.Формы представления алгоритмов
3.2.1. Алгоритм линейной структуры.
3.2.2. Алгоритм разветвляющейся структуры.
3.2.3. Алгоритмы циклической структуры.
4.2. Структура программы на языке Паскаль
4.3. Скалярные стандартные типы данных
4.4. Скалярные, пользовательские типы данных
6. Операции над данными скалярных типов. Выражения
8. Примеры программ на языке Паскаль
8.1. Пример 1. Арифметические выражения. Оператор присваивания
8.3. Пример 3. Программа обработки одномерного массива
8.4. Пример 4. Программа обработки двумерного массива
8.5. Пример 5. Программа обработки символьных строк
8.6. Пример 6. Программа обработки двумерного массива с вводом элементов матрицы из текстового файла
9.Разработка программ сложной структуры
9.3. Передача данных в подпрограмму с помощью параметров. Формальные и фактические параметры
9.4. Использование процедур и функций
9.5. Массивы – параметры процедур и функций
True False True False Рис. 9.7
True False True False True False Рис 9.9
9.6. Рекурсивные процедуры и функции
True False Рис. 9.10 True False
10. Динамические структуры данных
10.2. Объявление и создание динамических структур данных. Указатели
фиксированную часть;
вариантную часть.
Вариантные компоненты включаются в зависимости от признака. Тип записи с вариантами объявляется следующим образом:
Type <имя типа> = record
Case<признак варианта>: <тип признака>of
<константа 1>: (<описание поля 11>;
< описание поля 12>;
< описание поля 1n1>);
<константа 2>: (<описание поля 21>;
< описание поля 22>;
< описание поля 2n2>);
……
<константа k>: (<описание поляk1>;
< описание поля k2>;
< описание поля knk>);
End;
Например,
Type Coordinates = record
case kind: (dekart,polar) of
dekart: (x, y: real);
polar: (r, fi: real)
End;
В данном примере определено объединение двух взаимно исключающих вариантов. Однако на практике приходится объединять два типа с частично совпадающими компонентами. Для такой ситуации применяется тип «запись с вариантами», который объявляется следующим образом типа:
Type <имя типа> = record
<поле 1>: <тип 1>;
<поле 2>: <тип 2>;
……
<поле n>: <типn>;
Case<признак варианта>: <тип признака>of
<константа 1>: (<описание поля 11>;
< описание поля 12>;
< описание поля 1n1>);
<константа 2>: (<описание поля 21>;
< описание поля 22>;
< описание поля 2n2>);
……
<константа k>: (<описание поляk1>;
< описание поля k2>;
< описание поля knk>);
End;
Примером записи с вариантами является карточка отдела кадров, которая различается для дипломированных специалистов и работающих студентов:
Type Zap_OK = record
Fio:string[80]; {Фамилия, имя, отчество }
TabN: integer; {}
Otdel: integer; {}
Gpr: integer; {}
Case prizn: byte of
1: (spec_dipl:string[80]; {специальность по диплому}
nom_dipl: string[10]; {номер диплома}
stag:integer); {стаж работы по специальности}
2: (Nmvuz:string[80]; {наименование вуза, где учится сотрудник}
Nk:byte; { номер курса}
P_I_O:byte) {признак использования учебного отпуска}
End;
Множества
Тип-множество, используемый в языке Паскаль, соответствует понятию множества в математике, и создается с помощью следующего конструктора типа:
Type T = set of T0;
где T0 – базовый тип или тип элементов множества.
Значением переменной XтипаTявляются множества элементов типаT0. Например, тип-множество целых чисел от 1 до 31 может быть описан следующим образом:
Type intset = set of 1..31;
Переменной Xтипаintsetможно присвоить значения с помощью оператора присваивания, например:
Var X: intset;
………………..
X:=[1,4,9,16,25];
Элементы множества записываются в квадратных скобках. Оператор
X;=[]; присваивает переменной Х значение пустого множества.
Операции над переменными типа-множества выполняются по правилам теории множеств.
|
Операция |
Действие |
Тип операндов |
Тип результата |
|
+ |
Объединение множеств |
Множество |
Множество |
|
- |
Разность множеств |
Множество |
Множество |
|
* |
Пересечение множеств |
Множество |
Множество |
|
= |
Сравнение на равенство |
Множество |
Булевский тип |
|
<> |
Сравнение на неравенство |
Множество |
Булевский тип |
|
A>=B |
B – подмножество A |
Множество |
Булевский тип |
|
in |
Определение принадлежности множеству |
Левый операнд – базовый тип; правый – множество элементов базового типа |
Булевский тип |
5.6.Файлы
Любая программа должна взаимодействовать с внешней средой, выдавая (сохраняя) результаты своей работы и, возможно, получая исходные данные для работы. Под внешней средой понимаются любые устройства, позволяющие осуществлять ввод, вывод и запоминание информации. Взаимодействие с внешней средой, или ввод-вывод данных, в программе выполняется посредством обработки специальных объектов данных – файлов, а точнее, переменных типа «файл».
Файлом называется конечное множество компонент одного и того же типа, расположенных во внешней памяти. Компоненты файла могут быть любого типа. Число компонент не объявляется заранее и может изменяться. Новая компонента добавляется только в конец файла. У понятия файл есть две стороны. С одной стороны , файл – это именованная область внешней памяти, содержащая некоторую информацию. Файл в таком понимании называется физическим файлом. Физический файл имеет имя файла во внешней памяти, которое регистрируется в некотором каталоге (папке) на диске средствами операционной системы.
С другой стороны, файл – это тип данных, определенный в программе как последовательность компонент заданного типа. Файл в таком понимании называется логическим файлом. Тип «файл» в Паскаль – программе можно объявить в разделе TYPEследующим образом:
TYPE<имя типа «файл»>=fileof<тип компонент файла>;
Например,
TYPE NumberFL = file of integer;
Объявив тип «файл», можно описывать файловые переменные заданного типа в разделе VAR:
VAR F1: NumberFL;
Тип «файл» можно определять непосредственно при описании файловой переменной, тогда ее объявление имеет следующий вид:
VAR F1: file of integer;
В программе на Паскале все действия с конкретным физическим файлом производятся с использованием файловой переменной с помощью стандартных процедур и функций из библиотеки системы программирования на Паскале (модуль System).
С файлами выполняются следующие операции:
связывание файловой переменной с конкретным физическим файлом на внешнем устройстве;
открытие файла для работы в заданном режиме: для чтения, для записи или для добавления;
чтение информации из файла;
запись информации в файл;
закрытие файла.
Кроме того, в модуле Systemсодержатся процедуры и функции, позволяющие работать с папками: создавать, удалять и переименовывать папки, а также удалять и переименовывать файлы.
Способ объявления файловой переменной определяет вид файла, способ хранения информации в файле и стандартные процедуры и функции, используемые для обработки файла. Файловую переменную можно задать одним из трех способов:
VAR F1: file of <тип компонент>;
F2: text;
F3: file;
где F1 – типизированный файл; каждая его компонента имеет заданный тип;
F2 – текстовый файл; его компоненты – строки символов;
F3 – нетипизированный файл; тип его компонент не указан, что делает его совместимым с любыми файлами.
Доступ к компонентам файлов.
Любой программе на Паскале5доступны без каких-либо предварительных объявлений два файла со стандартными файловыми переменными:
Input– для чтения данных со стандартного устройства ввода (клавиатуры);
Output– для вывода на стандартное устройство вывода (видеомонитор).
Все другие файлы становятся доступными программе после объявления файловой переменной и ее связывания с физическим файлом.
Процесс обработки файла можно представить в виде блок-схемы, показанной на рис. 5.1.
Рис.
5.1





Связывание файловой переменной с физическим файлом выполняет процедура Assign, обращение к которой имеет вид:
Assign(<имя файловой переменной>,<имя файла на внешнем устройстве>);
где <имя файловой переменной> - это переменная типа «файл», объявленная в программе;
<имя файла на внешнем устройстве> - это строка символов, содержащая полное имя файла на диске и, возможно, путь к этому файлу.
Например,
Assign(F1,’c:\prog1.txt’);
Assign(F2,’a:\c1\data1.txt’);
Имя физического файла может вводиться пользователем с клавиатуры. Например,
VAR Name: string;
F2: file of integer;
………………………..
write(‘Введите имя файла: ’);
readln(Name);
assign (F2,Name);
…………………………
В этом фрагменте программы в качестве второго аргумента процедуры assignиспользуется переменнаяName, значение которой - строка, содержащая имя физического файла.