(участникам олимпиады)
В соответствии с рекомендациями методической комиссии по проведению областных, территориальных и республиканских олимпиад по информатике, как для ввода данных в программу, так и вывода из нее должны использоваться текстовые файлы. Поэтому участники олимпиад должны уметь создавать и обрабатывать текстовые файлы средствами одного из языков программирования.
Следует обратить внимание, что при решении задач этого этапа можно сделать следующее. Написать на языке Pascal программу, которая решает поставленную задачу, но использует стандартные ввод с клавиатуры и вывод на экран. Затем просто переназначить стандартный ввод-вывод. Для этого в начале тела программы (раздела операторов) сразу после служебного слова BEGIN необходимо добавить следующие две строки.
assign(INPUT, 'INPUT.TXT'); assign(OUTPUT, 'OUTPUT.TXT');
Открыть для чтения стандартный ввод, для записи стандартный вывод, добавив следующие две строки.
reset(INPUT); rewrite(OUTPUT);
В конце тела программы (раздела операторов) сразу перед служебным словом END необходимо добавить следующие две строки, закрывающие ввод-вывод.
close(INPUT); close(OUTPUT);
Для программы на языке Basic такого же простого рецепта мы дать не можем.
Требуется написать программу, определяющую максимальную длину строки в заданном тексте.
Технические требования:
Входной файл: INPUT.TXT.
Выходной файл: OUTPUT.TXT.
Формат входных данных:
Входной файл INPUT.TXT содержит последовательность строк, причем длина каждой из них не превосходит 10000.
Формат выходных данных:
Выходной файл OUTPUT.TXT содержит значение длины самой длинной строки заданного текста.
Пример файла входных данных:
Первая_и Вторая_строка.
Пример файла выходных данных:
14
program primer; var InFile, OutFile: text; C: char; I, MaxD: integer; begin MaxD:=0; assign(InFile, 'INPUT.TXT'); assign(OutFile, 'OUTPUT.TXT'); reset(InFile); rewrite(OutFile); while not(eof(InFile)) do begin I:=0; while not(eoln(InFile)) do begin I:=I+1; read(InFile,C) end; readln(InFile); if I>MaxD then MaxD:=I end; writeln(OutFile,MaxD); close(InFile); close(OutFile) end.
DIM MaxD AS INTEGER, I AS INTEGER OPEN "INPUT.TXT" FOR INPUT AS #1 OPEN "OUTPUT.TXT" FOR OUTPUT AS #2 MaxD = 0 WHILE NOT (EOF(1)) I = -1 DO C$ = INPUT$(1, #1) I = I + 1 LOOP WHILE NOT (C$ = CHR$(13)) C$ = INPUT$(1, #1) IF I > MaxD THEN MaxD = I WEND PRINT #2, MaxD CLOSE #1 CLOSE #2 END
© Пермский областной Оргкомитет олимпиад школьников по информатике, 2001