Но пробел в кавычках трудно разглядеть. Лучше сравнивать код символа с кодом пробела (который равен 32), что и сделано внутри функции.

Испытание

Теперь все готово, запустите программу. Что оказалось в выходном файле «Journal2.out»? Наверное, вот это.

Номер Фамилия       Количество       Сумма       Средний

ученика       оценок       баллов       балл

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

Если не считать кривых колонок, неплохо. Кривизну даёт разная длина фамилий учеников. Можно выровнять колонки, вычисляя спецификатор ширины в зависимости от длины фамилии. Или поступить иначе, – дополнить фамилии до одинаковой длины пробелами справа, например:

      while Length(Fam) < 12 do Fam:= Fam + Char(32);

Этот оператор уместен после чтения фамилии. Окончательный вариант программы со всеми дополнениями и уточнениями представлен ниже.

      { P_31_1 – Обработка классного журнала, второй этап }

var InFile, OutFile : text; { входной и выходной файлы }

    Counter: integer;       { счетчик строк в файле }

{----- Функция чтения фамилии -----}

function ReadFam: string;

var sym: char;

S : string;

begin

s:=''; { очистка накопителя строки }

{ чтение символа до первой буквы }

repeat Read(InFile, sym); until Ord(sym)>32;

{ чтение последующих символов }

repeat

s:= s+sym;

if Eoln(InFile) then Break;

Read(InFile, sym);

until not ((Ord(sym)>32));

ReadFam:= S;

end;

      {----- Процедура обработки строки -----}

procedure HandleString;

var N : integer; { оценка, прочитанная из файла }

      Cnt: integer; { количество оценок }

      Sum: integer; { сумма баллов }

      Rating: Real; { средний балл }

      Fam: string; { фамилия }

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату