Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1601

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
1.46 Mб
Скачать

этого файла и открытию его вновь, но уже для добавления файла.

Дополнительные процедуры и функции для работы с файлами.

Выше были рассмотрены процедуры инициации файлов. Рассмотрим дополнительные процедуры и функции. Процедура CLORE. Закрывает файл, однако связь файловой переменой с именем файла, установленная ранее процедурой ASSIGN сохраняется.

Формат обращения:

CLORE (<ф.п.>);

Процедура RENAME. Переименовывает файл. Формат обращения:

RENAME (<ф.п.>, < новое имя>);

Здесь <новое имя> - строковое выражение, содержащее новое имя файла. Перед выполнением данной процедуры необходимо закрыть файл.

Процедура ERASE. Уничтожает файл. Формат обращения:

ERASE (<ф.п.>);

Перед выполнением данной процедуры файл должен быть закрыт.

В Turbo Pascal существует еще множество дополнительных процедур и функций (FLUSH, EOF, GETDIR, MKDIR, RMDIR и т.д.), рассмотренных в соответствующей литературе.

Здесь же рассмотрим только процедуры READ, WRITE и функцию EOF.

Процедура READ. Предназначена для считывания в программу данных из текстового файла (символов, строк и чисел). Формат обращения:

READ (<ф.п.>, <сп.ввода>); или READ (< сп. ввода>);

Здесь <сп. ввода> - список ввода: последовательность из одной или более переменных типа CHAR, STRING, а та же любого целого или вещественного типа.

Рассмотрим пример: пусть имеется программа, в которой имеются следующее описание переменных:

Var

Salary: Real;

Name: String; Separator: Char; My Data: Text;

Здесь, последняя строка объявляет переменную MyData, относящуюся к типу TEXT. Тип TEXT – это стандартный тип для текстовых файлов.

Далее, если в программе будет:

Read ( MyData, Salary, Separator, Name);

то этот оператор будет считывать три элемента данных из файла MyData, отправляя первый из них в переменную Salary, второй - в Separator и третью – в Name.

При этом, Turbo Pascal «знает» откуда ему с помощью этого оператора считывать данные, т.к. самый первый параметр оператора Read представляет собой переменную типа TEXT и Turbo Pascal считывает данные из файла соответствующего этой переменой ( в противном случае данные считываются с клавиатуры).

Заметим, что для считывания множества элементов из файла необходимо использовать оператор цикла.

Процедура READLN. Данная процедура идентична процедуре Read за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к Readln или Read начинается с первого символа новой троки.

Процедуры WRITE и WRITELN. Обеспечивают вывод информации из программы в текстовый файл или передачу ее на логические устройства. Формат обращения:

WRITE (< ф.п. >, <сп. вывода>); или WRITE (<сп. вывода>); Здесь <сп.вывода>- список вывода: последовательность из одного или более выражений типа CHAR, STRING и т.д.

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

Функция EOF. Логическая функция, тестирующая конец файла. Возрастает – TRUE? Если файловый указатель стоит в конце файла. При записи это означает, что очередной компонент будет добавлен в конце файла, при чтении – это файл исчерпан. Формат обращения:

EOF (<ф.п>): BOOLEAN;

Рассмотрим конкретную программу, в которой осуществляется считывание из исходного файла, содержащего целые числа (по одному числу в строке) и записывает каждое число, вместе с его квадратным корнем и квадратом, в выходной файл.

Program Squ; Var

InFile, out File: Text; {входной и выходной файл} InFileName: String; {имя входного файла}

Next Num: Real; {следующие число}

Begin

{Подготовка файлов для записи и считывания} Write (‗Введите имя файла‘);

Readln (InFileName); {ввести имя для INFile} Assign (InFile, InFileName);

Reset (InFile); {открытие InFile для считывания}

Assign (OutFile,‘ Squares.Txt‘);

Rewrite (OutFile); {открытие OutFile для записи}

{Запись в выходной файл «шапки» будущей таблицы}

Writeln (OutFile,‘N‘:10, ‗корень‘:15, ‗квадрат‘:15); {Считывание каждого числа из входного файла и запись каждой строки в выходной файл.}

While not EOF (InFile) do Begin

Readln (InFile, Next Num); {Следующе число}

Writeln (OutFile, NextNum: 10:2

Sqrt (NextNum):15:2, Sqr (NextNum):15:2);

End;

{закрытие файла} Cloze (InFile);

Cloze (OutFile);

Writeln (‗Таблица корней и квадратов‘; ‗Выведены в файл Squares.txt.‘);

end.

Работа программы (после запуска) начинается со считывания в переменную InFileName, принадлежащую типу String, полного имени файла с входной информацией. После выхода из цикла, файлы закрываются, и имя выходного файла (Squares.txt) выводится на экран, чтобы пользователь программы знал, где искать результаты работы программы. Обычно, имея дело с текстовым файлами, программисты используют расширения TXT (что соответствует TEXT) и DAT(что соответствует Data).

Пробный запуск программы, результаты которого: <Введите имя файла >Numbers.txt

Таблица корней и квадратов выведена в файл Squares.txt показывает, что программа выводит на экран две строки. Первая из них представляет собой приглашение, в ответ на которое пользователю следует с клавиатуры ввести внешнее имя файла, содержащего входную информацию (Numbers.txt). А вторая строка выводит имя выходного файла (Squares.txt), которое задает второй оператор Assign в программе.

После открытия файлов, программа записывает в выходной файл заголовок будущей таблицы. Затем начинается выполнение цикла while, в котором оператор Readl считывает каждое число из файла с входной информацией, а оператор

Writeln записывает в следующую строку выходного файла три результата (число, квадратный корень и квадрат). Хотя число (значащих) символов в выводимой строке может варьироваться, программа всегда записывает в эту строчку 40 символов, включая символ <eoln> (т.е. если символ меньше в строку добавляется нужное число пробелов).

Заметим, что числа, которые считываются в выходной файл, не выводится на экран дисплея. Кроме того, следует отметить, что внутри цикла нет необходимости выводить на экран приглашение, т.к. элементы данных в этом случае не вводится интерактивно.

Обратим внимание на то, что при использовании функции EOF для управления повторением цикла, никакого предварительного считывания не требуется. Взамен, оператор Readln внутри цикла считывает все строки данных, включая первую. Если файл окажется пустым, цикл While не выполняется и оба файла закрываются. В этом случае выходной файл будет содержать только заголовок таблицы, который туда записаны.

В таблице 4.2.3. показан пример файла с входными данными (левый столбец) и пример выходного файла (три столбца справа).

Файл Numbers.txt

Файл Squares.txt

 

N

квадратичный

квадрат<eoln>

 

 

корень

 

100<eoln>

100.00

10.00

10000<eoln>

4.00 <eoln><eof>

4.00

2.00

16.00<eoln><eof>

ЗАКЛЮЧЕНИЕ.

В данном учебном пособии затронут круг вопросов, связанных с изучением дисциплины ―Информатика‖ студентами заочной формы обучения специальностей ― Электромеханика ― и

―Электрофикация и автоматизация сельского хозяйства‖ и может быть полезна студентам других специальностей, различных форм обучения.

Основной целью пособия является научить студента самостоятельно составлять элементарные программы на алгоритмическом языке Turbo Pascal с последующей их реализацией на персональном компьютере.

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

Отсутствует в пособии структура, арифметические и логические основы работы ЭВМ, а также системное программное обеспечение. Кроме того, не представлены средства графического представления информации, материал по работе с различными редакторами(Word, Exсel, Edit) и т.д.

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

Восполнить данный пробел студенты могут из соответствующих литературных источников.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК.

20.Фаронов В.В. Турбо – Паскаль 7.0 Начальный курс – М.: ―Нолидж‖, 1997.

21.Фаронов В.В. Основы Турбо – Паскаля. – М.: ―МВТУ – ФЕСТОДИДАКТИК‖, 1993.

22.Фаронов В.В. Программирование на персональных ЭВМ в среде Турбо – Паскаль.

– М.: МВТУ, 1992.

23.Фаронов В.В. Практика программирования. – М.: ―МВТУ – ФЕСТОДИДАКТИК‖,

1993.

24.Фаронов В.В. Паскаль и Windows. – М.: ―МВТУ – ФЕСТОДИДАКТИК‖, 1995.

25.Турбо – Паскаль 7.0 - Киев: Издательская группа BNV, 1998.

26.Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0, - М.: ― ДИАЛОГ – МИФИ‖, 1996.

27.Элиат Б. Коффман Turbo Pascal, 5-е издание.: Пер. с англ. – М.: Издательный дом

―Вильямс‖, 2003.

28.Бежанова М.М., Москвина Л.А., Поттосин И.В.

Практическое программирование. Структуры данных и алгоритмы: Учебник. – М.:

лотос, 2001.

29.Бежанова М.М., Москвина Л.А. Практическое программирование. Примеры создания программ на языке Паскаль. – М.: Научный мир, 2001.

30.Бежанова М.М., Голубева Л.А., Москвина Л.А. Практическое программирование. Вып.1: Учебное пособие. – Новосибирск: НГУ, 1998.

31.Бородич Ю.С., Вальвачев А.Н., Кузьмич А.И. Паскаль для персональных компьютеров. – Минск: Высш. шк.: БФ ГИТМП ―Ника‖, 1991.

32.Васильев П.П. Турбо Паскаль – мой друг. – М.: Компьютер, ЮНИТИ, 1995.

33.Федоров А. Особенности программирования на Вorland Pascal. – Киев: Диалектика,

1994.

34.Справочник по программам и функциям Вorland Pascal

With Objects 7.0 – Киев: ―Диалектика‖ 1993.

35.Информатика: Базовый курс / С.В. Симонович и др. СПБ: Питер,2000.

36.Аладьев В.З. и др. Основы информатики. Учебное пособие. М.: Филинь, 1998.

37.Григорьев В.Л. Микропроцессор i 486. Архитектура и программирование (в 4-х книгах). – М.: Гранал, 1998.

38.Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal. – Киев:

BEK+, М.: DECC, 1999.

ОГЛАВЛЕНИЕ.

Введение - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

3.Общие вопросы - - - - - - - - - - - - - - - - - - - - - - - -

1.1.Понятие об информации информатике и информационных технологиях- - - - - - - -- - -

-- - -

1.2.Общая характеристика процессов сбора, передачи, обработки и накопления

информации - - -

1.3. Единицы измерения количества информации- 4. Арифметические и логические основы работы ЭВМ - - - - - - - -- - - - - - - -- - - - - - - -- - -

- - - - --

2.1. Системы счисления - - - - - - - - - - - - - - -- - - -

4.3. Арифметические основы работы ЭВМ -- - - - -

4.4. Логические основы работы ЭВМ - - - - - - -- - -

5. Основы алгоритмизации и программирования-- - -

3.1. Основные этапы подготовки и решения инженерных задач на ЭВМ - - - -

-- - - - - - - - - - - -

5.2. Структурная схема алгоритма - - - - - - - - - -- -

5.3. Основные принципы реализации программы на ЭВМ - - - -- - - -- - - -- - - -- - - -- - -

-- - - -- -

 

 

6. Алгоритмический язык Turbo Pascal - - -

- - - - - - -

4.1. Вводная часть - - - -

- - - - - - - - - - - - - - - - -- -

4.1.1. Алфавит языка Pascal- - -

-- - - - - - - - - - - - -

4.1.2. Константы языка - - - - - - -

- - -- - - - - - - - -

4.1.3.Понятие идентификатора - - - - --- - - - - - - --

4.1.4.Именованные константы - - - -- - - - - - - - - -

4.1.5.Понятие данных - - -- - - - - - - - - - - - - - - - -

4.1.6.Переменные и массивы - - -- -- - - - -- - - - --

4.1.7.Набор стандартных функций на Pascal - - - -

6.2.Основная часть - - - - - - -- - - - - - - - - - - - - - - - -

6.2.1.Структура программы на языке Pascal - - - -

6.2.2.Комментарии - - - - - - - - - - - - - - - - - - - - - -

6.2.3. Раздел операторов -- - - - -- ---

-- - - - -

 

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

- -- - - - - - - -

 

6.2.5. Программирование с использованием структуированных типов данных -- - - -

--

Заключение - - - -- - -- -- - - - - - - - -

- - - - - - - - - - - - -

 

Библиографический указатель - - --

- - - - - -

 

Учебное издание Юршин Евгений Дмитреевич

Рог Александр Иванович

АЛГОРИТМИЧЕСКИЙ ЯЗЫК TURBO PASCAI

Ректор Выпускающий редактор И.В. Медведова

ЛРN066815 от 25.08.99. Подписано в печать

2

Формат 60 84 16. Бумага для множественных аппаратов. Усл. печ .л. . Уч. – изд. Л. Тираж 150 экз.

Заказ №

Воронежский государственный технический университет 394026 Воронеж, Московский проспект. 14

3