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

«Комментарии»

Иногда требуется объяснить самому себе в будущем или для того, чтобы не забыть, что делать та или иная команда или программа. Для этого используются комментарии. Они бывают двух типов:

• Одиночные – комментарии, записываемые в одну строку

• Многострочные – комментарии, записываемые в блок.

Например:

// одиночный комментарий

или

{

1

2

многострочный

}

Использование:

«Файлы. Процедуры и функции при работе с файлами»

Очень важно усвоить эту тему, потому что она Вам понадобится всегда!

  1. Процедуры для работы с файлами:

  • Assign(f,’c:\name.txt’); - команда ASSIGN связывает файловую переменную `f` типа `text` с файлом `name.txt`, который находится в папке(на диске) `C:\`.

  • Rewrite(f); - команда REWRITE используется для пересоздания файла, связанного с текстовой переменной `f` типа `text`. Если файл существует, он удаляется и создаётся новый. Если файла не существует – просто создаётся новый файл. Файл будет иметь конечное имя, описанное в процедуре ASSIGN. В данном случае – `name.txt`. После выполнения команды файл открыт.

  • Reset(f); - команда RESET используется для открытия файла в режиме `только чтение`, связанного с текстовой переменной `f` типа `text` для последующего чтения данных из файла(файл должен существовать).

  • Append(f); - команда APPEND используется для открытия файла в режиме `чтение-запись`, связанного с текстовой переменной `f` типа `text` для последующего чтения или редактирование данных файла(файл должен существовать).

  • Close(f); - команда CLOSE используется для закрытия файла, связанного с текстовой переменной `f` типа `text`(файл должен быть открыт)

  • Read[ln](f,x); - команда READ[ln] используется для чтения данных из файла, связанного с текстовой переменной `f` типа `text`, одной строки в переменную X(тип переменной должен совпадать с типом данных в файле).

  • Write[ln](f,x); - команда WRITE[ln] используется для записи данных в файл, связанного с текстовой переменной `f` типа `text`, из переменной X.

  1. Примеры программ работы с файлами:

    • Чтение данных из файла и вывод содержимого на экран (файл должен существовать):

Uses crt; //подключение модуля CRT – работа с графическим окном

Var f:text; s:string; //объявление переменных: `f` типа `text` и `s` типа `string`

BEGIN //Начало исполнимой части

ClrScr; //Очистка экрана (необязательная процедура)

Assign(f,’C:\input.txt’); //связывание переменной `f` с текстовым файлом `input.txt`

Reset(f); //Открытие файла в режиме `только чтение`

Readln(f,s); //Чтение строки из файла в переменную `S`

Close(f); //Закрытие файла

Writeln(s); //Вывод содержимого переменной `S` в графическое окно CRT

END. //Конец исполнимой части (конец программы)

  • Запись введённых данных с клавиатуры в файл (файл должен существовать):

Uses crt; //подключение модуля CRT – работа с графическим окном

Var f:text; s:string; //объявление переменных: `f` типа `text` и `s` типа `string`

BEGIN //Начало исполнимой части

ClrScr; //Очистка экрана (необязательная процедура)

Readln(s); //Чтение введённой пользователем строки в переменную `S`

Assign(f,’C:\output.txt’); //связывание переменной `f` с текстовым файлом `output.txt`

Append(f); //открытие файла в режиме `чтение-запись`

Writeln(f,s); //Запись содержимого переменной `S` в файл

Close(f); //закрытие файла

END. //Конец исполнимой части (конец программы)

Запомните шпаргалку сверху – это очень важно!

Для того, чтобы работать с файлом, нужно выполнить условия:

  • Файл должен существовать, если мы не хотим открыть уже существующий

  • Имя файла не должно содержать пробелов и кириллицу

  • Файл должен быть закрыт до завершения программы

Как работать с файлами?

Для начала, объявим файловую переменную `f`(как правило, `f`, `k` или `g`) типа TEXT(файловый тип).

Затем свяжем переменную `f` с файлом командой ASSIGN.

Пересоздадим файл `f`. Запишем в файл рандомные числа. Закроем файл. Проверим.

Программа ничего не выведет на экран, так как данные записываются в файл:

Проверим содержимое файла:

Примечание: файл создаётся там, где сохранена программа или в указанном месте в операторе assign:

ASSIGN(f, ‘C:\output.txt’) – файл создастся на диске `C:\`.

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

Вывод на экран:

Содержимое файла:

Для чего в программе используется дополнительная переменная `a` типа `real`? Для того, чтобы запоминать случайно сгенерированное число, иначе, программа каждый раз будет выводить новое – на экран и в файл. Присвоил рандомное число переменной `а` и записал его на экран и в файл. Затем снова новое значение.

Для считывания данных из файла, используются те же функции, только вместо REWRITE – APPEND или RESET, а вместо WRITELN – READLN.

Пусть имеется файл `input.txt`:

Программа будет выглядеть так:

На вывод:

Появился новый оператор – EOF(END OF FILE) – означает конец файла. Возвращает true или логическую 1, если достигнут конец файла, false или 0 – если ещё не конец.

Дословно по циклу: повторять считывание и вывод строк, пока не будет достигнут конец файла.

Задание №11:

«Написать программу, считающую сумму любого количества чисел, заранее содержащихся в файле `input.txt`, и вывести сумму на экран, затем записать в файл `output.txt`». Можете делать по частям – как будет удобно.

Тесты для программы:

Входные данные (input.txt)

Выходные данные (output.txt)

4 99 17

120

-5 181 10

186

-1 10 9

18

-10 -1 11

0

P.S. В следующей главе будет рассказано о массивах