- Что нужно знать
- Как это бывает на экзамене
- Разбор примера
- Типичные ошибки
- Проверь себя
- Ещё 4 раздела — в подписке
Что нужно знать
Операции с текстовым файлом
| Что делаешь | Паскаль | C++ |
|---|---|---|
| описываешь | var f: text; | ifstream fin; ofstream fout; |
| связываешь с именем | assign(f, 'tur.in'); | ifstream fin("tur.in"); |
| открываешь для чтения | reset(f); | открытие происходит при описании |
| открываешь для записи | rewrite(f); | ofstream fout("tur.out"); |
| читаешь | read(f, x); или readln(f, x); | fin >> x; |
| пишешь | write(f, x); или writeln(f, x); | fout << x; |
| закрываешь | close(f); | fin.close(); fout.close(); |
reset открывает уже существующий файл для чтения. rewrite создает файл вывода, а если он существует, очищает его. Закрытие через close при записи обязательно: без него последние данные могут не попасть в файл.
Как устроены данные в тестах
Входной файл почти всегда имеет один и тот же вид: в первой строке целое число , затем строк или значений. Отсюда и порядок действий в программе:
- 1)открываешь входной файл
- 2)читаешь из первой строки
- 3) раз читаешь строку или пару значений
- 4)считаешь
- 5)записываешь результат в выходной файл в требуемом формате
- 6)закрываешь оба файла
readln переходит на следующую строку после чтения, поэтому применяется, когда каждое значение на своей строке; read оставляет курсор на той же строке и нужен, когда в строке несколько значений.
Формат вывода
Читай требование до конца: «два числа, разделенные пробелом» или «по одной строке на каждого ученика» — это отдельно оцениваемые условия. В Паскале пробел пишется явно, writeln(f, k, ' ', c), а перевод строки дает writeln, а не write.
Где баллы
В задании на 16 баллов реального профиля баллы распределены так: 1 за описание типов и переменных, 1 за заголовок требуемой функции, 1 за операции с файлом, 1 за чтение , 1 за циклический оператор, 1 за чтение данных, 1 за вызов функции, остальные — за шаги алгоритма и за запись в файл, где даже пробел между значениями имеет свой балл. Поэтому незаконченная программа с верно открытыми файлами и написанным заголовком функции набирает реальные баллы.
Массив
Когда результат требует всех данных сразу, их держат в массиве: var c : array[1..50] of integer; в Паскале, int c[51]; в C++. Размер берется из верхней границы, данной в условии, например .
Полная структура на Паскале
assign(fin, 'date.in'); reset(fin);
assign(fout, 'date.out'); rewrite(fout);
readln(fin, n);
for i := 1 to n do readln(fin, a[i]);
writeln(fout, rezultat);
close(fin); close(fout);Остальное в уроке — в подписке
Настоящие задания ANCE по этой теме, разбор примера шаг за шагом, типичные ошибки и 7 вопросов для самопроверки — в подписке. «Что нужно знать» остаётся бесплатным.
Диагностика на настоящих заданиях ANCE остаётся бесплатной: 20 минут — где теряешь баллы, ещё 10–15 минут — ориентировочная оценка по каждому экзамену. Нужен только аккаунт, без карты.
Целый месяц — 299 лей: ≈ 10 лей за вечер занятий. Без автопродления.
BAC · реальный профиль · тренировочный тест № 1 · 2026Nota10
Текстовые файлы · 16 б.
Группа из туристов, которым были присвоены индексы от 1 до , разместилась на четырех этажах отеля. Этажи пронумерованных с 1 по 4. Каждый турист получил карточку – ключ от комнаты в отеле, на которой указан трехзначный номер. Первая цифра обозначает номер этажа, а две последние цифры – номер комнаты. По пути к своим комнатам некоторые туристы ошиблись этажом.