выше оператор мы должны изменить так:
Rating:= Sum / Cnt;
Вот теперь должно заработать! Запустив новый вариант программы и открыв выходной файл, вы найдете вот что.
Номер Количество Сумма Средний
оценок баллов балл
1 3 12 4.00000000000000E+0000
2 4 20 5.00000000000000E+0000
3 4 18 4.50000000000000E+0000
4 3 10 3.33333333333212E+0000
5 2 7 3.50000000000000E+0000
Что бы это значило? Средний балл считается верно, но печатается очень странными уродливыми числами! Не пугайтесь, перед вами научный формат представления вещественного числа, он удобен для изображения очень маленьких и очень больших чисел. Например, известное физикам и химикам число Авогадро (примерно 6,022140 умноженное на 10 в 23-й степени) изображается как 6.022140E+0023. Но нам этот формат не подходит, и мы заменим его, задав спецификатор ширины поля.
Для вещественных чисел спецификатор состоит из двух частей, разделяемых двоеточием. Первая часть задает общую ширину поля печати (так же, как и для целых чисел), а вторая – количество цифр после запятой (после точки). Чтобы напечатать переменную Rating с одним знаком после точки при общей ширине поля в 12 позиций, нам следует применить такой оператор печати.
Writeln(OutFile, Counter:3, Cnt:13, Sum:14,
Теперь вновь запустим программу и полюбуемся на результат.
Номер Количество Сумма Средний
оценок баллов балл
1 3 12 4.0
2 4 20 5.0
3 4 18 4.5
4 3 10 3.3
5 2 7 3.5
Прекрасно! Изрядно потрудившись и одолев ряд ошибок, мы достигли цели! Осталось лишь подытожить завоевания этой главы.
• Функция Eoln следит за признаком конца текущей строки, применяется совместно с оператором WHILE.
• Для продвижения позиции чтения в начало следующей строки вызывайте процедуру Readln, указывая лишь один параметр – файловую переменную.
• Данные внутрь процедур и функций можно передавать через глобальные переменные; такой прием допустим для несложных программ.
• Целые числа не содержат дробной части. Для действий с дробными числами применяют вещественные типы, например, Real.
• Для получения дробного результата деления пользуйтесь операцией «/» (косая черта). Операция DIV при делении отбрасывает дробную часть.
• Для ровной печати чисел применяйте спецификаторы ширины поля.
А) Функция Trunc выделяет целую часть вещественного числа, например:
Writeln (Trunc( 12.345 )); { 12 }
Исследуйте её и придумайте способ выделения дробной части вещественного числа. Напишите подходящую функцию и программу для её проверки.