ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.04.2025

Просмотров: 1491

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Федеральное агенство по образованию российской федерации

1. Основные категории и понятия информатики

1.2. Информация: структура, форма, измерение

2. Техническое и программное обеспечение пэвм

2.1. Структура аппаратных средств пэвм

2.2. Программное обеспечение пэвм

3. Основы алгоритмизации

3.2.Формы представления алгоритмов

3.2.1. Алгоритм линейной структуры.

3.2.2. Алгоритм разветвляющейся структуры.

Да нет да да Рис 3.11

3.2.3. Алгоритмы циклической структуры.

4.2. Структура программы на языке Паскаль

4.3. Скалярные стандартные типы данных

4.4. Скалярные, пользовательские типы данных

5. Структурные типы данных

5.3. Записи

5.4. Записи с вариантами

5.6.Файлы

6. Операции над данными скалярных типов. Выражения

7. Операторы языка Паскаль

7.1. Простые операторы

7.2. Структурные операторы

8. Примеры программ на языке Паскаль

8.1. Пример 1. Арифметические выражения. Оператор присваивания

8.3. Пример 3. Программа обработки одномерного массива

8.4. Пример 4. Программа обработки двумерного массива

True False True False False

8.5. Пример 5. Программа обработки символьных строк

8.6. Пример 6. Программа обработки двумерного массива с вводом элементов матрицы из текстового файла

9.Разработка программ сложной структуры

9.1. Процедуры и функции

9.2. Область действия идентификаторов при использовании процедур и функций. Локальные и глобальные переменные

9.3. Передача данных в подпрограмму с помощью параметров. Формальные и фактические параметры

9.4. Использование процедур и функций

True False Рис. 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

True False Рис. 9.12

9.7. Модули

10. Динамические структуры данных

10.2. Объявление и создание динамических структур данных. Указатели

Приложение. Контрольные вопросы

Литература

После связывания файловой переменной с файлом на внешнем устройстве его необходимо открыть для обработки в режиме чтения или записи. Для любых типов файлов для открытия в режиме чтения используется стандартная процедура reset, обращение к которой имеет вид:

reset(<имя файловой переменной>).

Процедура resetпредполагает, что открываемый файл существует. В противном случае, возникает ошибка. При открытии файла создается указатель текущей позиции файла и устанавливается на первую компоненту файла. Указатель текущей позиции файла отмечает ту компоненту файла, которая доступна для чтения в текущий момент во время выполнения программы. Компоненты файла нумеруются с нуля.

Для открытия файла в режиме записи используется стандартная процедура rewrite, обращение к которой имеет вид:

rewrite(<имя файловой переменной>).

Процедура rewriteдопускает, что открываемый файл существует. Если открываемый файл отсутствует, то он будет сначала создан на внешнем устройстве, а затем открыт. При открытии файла создается указатель текущей позиции файла и устанавливается на первую компоненту файла. Если файл уже существовал, то после выполнения процедурыrewriteвсе данные этого файла стираются, и запись информации производится в начало файла.

Процедура открытия существующего файла в режиме добавления appendприменима только к файлам типаtext. Обращение к процедуреappendимеет следующий вид:

append(<имя файловой переменной типаtext>). Если открываемый файл отсутствует, то при выполнении процедурыappendвозникает ошибка ввода-вывода. При открытии файла в режиме добавления новые данные записываются в конец файла.

Завершение действий с любым файлом выполняется процедурой close(<имя файловой переменной>). Работа с файлами осуществляется с использованием буферов в оперативной памяти. Одним из действий процедурыcloseявляется очистка буферов ввода-вывода. Без выполнения этой процедуры часть информации, предназначенная для записи в файл, может быть потеряна.

При работе с файлами автоматически проверяются ошибки ввода-вывода. Если проверка включена по умолчанию или с помощью директивы компилятора{$I+}, то при возникновении ошибки выполнение программы автоматически завершается. Если проверка выключена с помощью директивы{$I-}, то программа продолжает работу и проверить результат можно с помощью стандартной функцииIOResult. ФункцияIOResultвозвращает код завершения последней операции ввода-вывода. ЕслиIOResultравно нулю, то завершение операции – успешно. Например, в записанном ниже фрагменте программы проверяется корректность открытия существующего файла:


VAR

F1: text;

Fn: string;

……………..

begin

……………….

write(‘Введите имя файла: ’);

readln(Fn);

assign (F2,Fn);

{$I-}

reset(F1);

{$I+}

If IOResult<>0 then begin

Writeln(‘файл не найден!’);Halt;

end;

……………………………..

Процедура Haltпроизводит немедленное завершение выполнения программы.

Процедуры ввода-вывода для текстовых файлов.

Текстовый файл в программе объявляется через файловую переменную типа textи представляет собой последовательность символьных строк переменной длины, разделенных специальным символом«конец строки». В конце текстового файла размещается признак «конец файла».

Эти признаки проверяются соответствующими стандартными функциями, возвращающими логическое значение:

  • Eoln(<имя файловой переменной типаtext>) – возвращает значениеtrue, если достигнут конец строки;

  • Eof(<имя файловой переменной типаtext>) – возвращает значениеtrue, если достигнут конец файла.

Текстовый файл содержит символьную информацию, которая считывается из файла с помощью стандартных процедур:

  • Read(<имя файловой переменной >,< список ввода >) ;

  • Readln(<имя файловой переменной >,< список ввода >).

Процедура Readlnв отличие от процедурыReadпосле ввода всех переменных в списке игнорирует непрочитанные данные до конца текущей строки, и последующее чтение осуществляется с новой строки. ПроцедураReadln<имя файловой переменной > (без списка ввода) производит переход к следующей строке файла.

Запись данных в текстовый файл осуществляется с помощью стандартных процедур:

  • write(<имя файловой переменной >,< список вывода >) ;

  • writeln(<имя файловой переменной >,< список вывода >).

Процедура writelnв отличие от процедураwriteвыполняет запись символа «конец строки» и может вызывать без списка вывода:writeln<имя файловой переменной >. Пример программы ввода элементов матрицы из текстового файла приведен в разделе 8.6 данного учебного пособия.

Процедуры ввода-вывода для типизированных файлов

Чтение из типизированных файлов выполняется только с помощью стандартной процедуры

Read(<имя файловой переменной >,< список ввода >).

В списке ввода содержатся переменные того же типа, что и тип файла. При считывании в каждую переменную данных из файла указатель текущей позиции перемещается на следующую компоненту файла. Если указатель текущей позиции файла находится за последним компонентом файла, то достигнут конец файла, и стандартная функция Eof(<имя файловой переменной >) возвратит значениеTrue.


Запись данных в типизированный файл осуществляется с помощью стандартной процедуры:

write(<имя файловой переменной >,< список вывода >) ;

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

Для работы с файлом в режиме прямого доступа предназначены следующие стандартные процедуры и функции:

FilePos– функция, возвращающая номер текущей позиции указателя в файле;

FileSize– функция, возвращающая текущий размер файла;

Seek– процедура, перемещающая указатель файла на заданную позицию;

Truncate– процедура, которая усекает размер файла до текущей позиции.

Процедуры ввода-вывода для нетипизированных файлов.

При объявлении нетипизированного файловой переменной указывается только ключевое слово file. С помощью файловых переменных без типа можно обращаться к файлам любого типа и логической структуры. В нетипизированных файлах нет жестко установленной единицы чтения/записи, в отличие от типизированных файлов. При работе с файлами без типа для ввода-вывода используются стандартные процедурыBlockReadиBlockWrite, соответственно.

Чтение компонент из файла производится процедурой: BlockRead(F,Buf,N,Result),

где F– имя файловой переменной;

Buf– переменная любого типа, являющаяся буфером для размещения вводимой информации;

N– число компонент, которое нужно прочитать;

Result– переменная, в которую помещается фактическое число прочитанных компонент.

Запись компонент в файл производится процедурой: BlockWrite(F,Buf,N,Result),

где F– имя файловой переменной;

Buf– переменная любого типа, являющаяся буфером для размещения выводимой информации;

N– число компонент, которое нужно записать;

Result– переменная, в которую помещается фактическое число записанных компонент.


6. Операции над данными скалярных типов. Выражения

Выражение – это синтаксическая единица языка программирования, определяющая способ вычисления некоторого значения. Выражение является формулой, состоящей из операндов и знаков операций.

Операнды – это данные, которые участвуют в вычислении; в качестве операндов могут быть константы, переменные и функции со списками параметров в круглых скобках.

Операции делятся на унарные и бинарные операции. Унарные операции имеют только один операнд, который записывается после знака операции. Бинарные операции имеют два операнда, знак операции записывается между операндами.

Последовательность выполнения операций в выражении определяется тремя факторами:

  • приоритетом операций;

  • порядком расположения операции;

  • использованием скобок.

Выражение, тип значения которого является арифметическим, называется арифметическим выражением. Выражение, тип значения которого является булевским, называется логическим выражением. Выражение, значение которого является символом или символьной строкой, называется символьным выражением.

По характеру выполняемых действий операции над данными скалярных типов можно разбить на следующие группы:

  1. арифметические операции:

    1. унарные: +,-;

    2. бинарные: +,-,*,/,div,mod;

  2. операции отношения:

= , <>, <=,>=,>,<;

  1. логические операции:

not, and, or, xor;

  1. поразрядные операции:

not, and, or, xor, shl, shr.

Унарные, арифметические операции представлены в табл. 6.1.

Табл. 6.1. Унарные операции

Операция

Действие

Тип операндов

Тип результата

+

Сохранение знака

Целый вещественный

Целый вещественный

-

Изменение знака

Целый вещественный

Целый вещественный

Бинарные, арифметические операции представлены в табл. 6.2.

Табл. 6.2. Бинарные операции

Операция

Действие

Тип операндов

Тип результата

+

Сложение

Целый вещественный

Целый вещественный

-

Вычитание

Целый вещественный

Целый вещественный

*

Умножение

Целый вещественный

Целый вещественный

/

Деление

вещественный

Вещественный

Div

Деление нацело

Целый

Целый

Mod

Остаток от деления

Целый

Целый


Операции отношения представлены в таблице 6.3.

Табл. 6.3 . Операции отношения

Операция

Сравнение на

Тип операндов

Тип результата

=

Равно

Совместимый скалярный тип

Булевский

<>

Не равно

Совместимый скалярный тип

Булевский

<

Меньше

Совместимый скалярный тип

Булевский

>

Больше

Совместимый скалярный тип

Булевский

<=

Меньше или равно

Совместимый скалярный тип

Булевский

>=

Больше или равно

Совместимый скалярный тип

Булевский

Логические операции выполняются по правилам булевой алгебры, представленным в таблице 6.4.

Табл. 6.4. Таблица истинности логических операций

Операнды

Операции

A

B

Not A

A and B

A or B

A xor B

False

False

True

False

False

False

False

True

True

False

True

True

True

False

False

False

True

True

True

True

False

True

True

False

Логические операции and (конъюнкция), or (дизъюнкция), xor (исключающее ИЛИ) являются бинарными; операнды A и B булевского типа, и результат – булевского типа. Логическая операция not является унарной; ее операнд и результат имеют булевский тип.

Стандартные, математические функции приведены в табл. 6.5. Математические функции можно использовать только с аргументами целого и вещественного типа.