Песни о Паскале | страница 118
> then begin { если оценки в четверти были }
> Rating:= Sum / Cnt; { вычисляем и печатаем ср. балл }
> Writeln(OutFile, Counter:3, Fam:18, Cnt:8,
> Sum:14, Rating:11:1);
> end
> else { а если оценок не было }
> Writeln(OutFile, Counter:3, Fam:18,' : Ученик не аттестован');
>end;
>begin {--- Главная программа ---}
> Counter:= 0; { обнуляем счетчик строк }
> { открываем входной файл }
> Assign(InFile,'Journal2.in'); Reset(InFile);
> { создаем выходной файл }
> Assign(OutFile,'Journal2.out'); Rewrite(OutFile);
> { выводим шапку таблицы }
> Writeln(OutFile, 'Номер Фамилия Количество Сумма Средний');
> Writeln(OutFile, ' оценок баллов балл');
> { пока не конец входного файла… }
> while not Eof(InFile) do begin
> Counter:= Counter+1; { наращиваем счетчик строк }
> HandleString; { обрабатываем строку }
> { переход на следующую строку }
> if not Eof(InFile) then Readln(InFile);
> end;
> { закрываем оба файла }
> Close(InFile); Close(OutFile);
>end.
• Для чтения отдельного слова в строке файла не годятся ни оператор Readln (он прочитает всю строку), ни оператор Read, который не видит конца строки. Слово читается посимвольно оператором Read с отслеживанием признака окончания строки и других условий.
• Строку выходного файла можно формировать порциями, применяя несколько вызовов процедуры Write. Каждый такой вызов формирует часть строки и продвигает позицию записи, оставляя её в текущей строке. Для перехода к следующей строке вызывается процедура Writeln.
А) Напишите программу для преобразования первого варианта базы данных «Police.txt» (которая содержит по одному числу в строке) во второй вариант (будет содержать по три числа в строке).
Б) Файл с физическими данными старшеклассников содержит три колонки: фамилия, рост и вес ученика. Создайте программы для решения следующих задач:
• отбор кандидатов для занятий баскетболом, – рост кандидата должен составлять не менее 175 см;
• поиск учеников с избыточным весом, для которых разница между ростом ученика (см) и его весом (кг) составляет менее 100.
Ваши программы должны сформировать соответствующие файлы с фамилиями и данными учеников.
Глава 32
Порядковые типы данных
Вот поле битвы, где там и сям мелькают спины бегущего противника. Разгоряченные боем, наши полки готовы гнать его хоть на край света. Но что это? Зачем полководец прекращает атаку и велит трубить сбор? Поверьте, он знает свое дело: выигрыш битвы – ещё не победа в войне. Предстоят новые сражения, и надо укрепить армию: дать отдых бойцам, накормить, подлечить и вновь построить в боевые порядки.