(участникам олимпиады)

Справочная информация
(10-11 класс, 2000-2001 учебный год, Пермская область)



Составитель — к.ф.-м.н. Деменев А.Г.

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

Следует обратить внимание, что при решении задач этого этапа можно сделать следующее. Написать на языке 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
Решение на языке Turbo Pascal
	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.
Решение на языке Quick Basic
	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

Рейтинг ресурсов УралWeb
Сайт создан в системе uCoz