
- •Глава 1 «Знакомство с языком»
- •«Шаблон»
- •«Типы данных»
- •«Первая комбинированная программа»
- •«Первая самостоятельная программа»
- •Глава 2 «Алгоритмические операторы»
- •«Структура типа Линейная или Следование»
- •«Структура типа Ветвление»
- •«Структура типа Цикл»
- •«Цикл со счётчиком»
- •«Цикл с постусловием»
- •«Цикл с предусловием»
- •Глава 3 «Оператор выбора case»
- •«Метки и псевдоциклы с оператором goto»
- •«Операторы деления div и mod»
- •«Рандомные числа»
- •«Некоторые полезные функции и операторы»
- •«Комментарии»
- •«Файлы. Процедуры и функции при работе с файлами»
«Комментарии»
Иногда требуется объяснить самому себе в будущем или для того, чтобы не забыть, что делать та или иная команда или программа. Для этого используются комментарии. Они бывают двух типов:
• Одиночные – комментарии, записываемые в одну строку
• Многострочные – комментарии, записываемые в блок.
Например:
// одиночный комментарий
или
{
1
2
многострочный
}
Использование:
«Файлы. Процедуры и функции при работе с файлами»
Очень важно усвоить эту тему, потому что она Вам понадобится всегда!
Процедуры для работы с файлами:
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.
Примеры программ работы с файлами:
Чтение данных из файла и вывод содержимого на экран (файл должен существовать):
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. В следующей главе будет рассказано о массивах