|
|||||
for k:=1 to 2 do begin. s := Copy(s, p+1, Length(s)-p);. Val(s, k, r);. k := StrToInt(s);. for i:=1 to N do begin. Delete(s, 1, p+5);. Val(s, k, r);. for k:=1 to 99 do. if (C[k] <> 0) and (C[k]<Min) then Min := C[k];for k:=1 to 2 do begin p := Pos(' ', s); s := Copy(s, p+1, Length(s)-p); end; 11) в пп. 8-10 описан достаточно общий метод, при котором инициалы могут быть любой длины, (но без пробела); в данном случае в условии четко сказано, что инициалы представляют собой именно 4 символа (буква, точка, буква, точка), поэтому можно найти первый пробел, а затем взять «хвост», который идет через 6 символов от него:
12) для преобразования номера школы из символьного вида в числовой можно использовать функцию Val: Val(s, k, r); эта процедура (Turbo Pascal, Borland Pascal, PascalABC, среда АЛГО) преобразует символьную строку s в числовое значение k; с помощью переменной r обнаруживается ошибка: если раскодировать число не удалось (в строке не число), в r будет записан нуль (здесь мы не будем обрабатывать эту ошибку, полагая, что все данные правильные); если вы работаете на ПаскалеABC (никто не может вам запретить написать, что этот так), вместо Val можно использовать более удобную и понятную функцию StrToInt: k := StrToInt(s); 13) таким образом, основной цикл выглядит так: for i:=1 to N do begin readln(s); { читаем очередную строку } { выделяем часть после второго пробела } p := Pos(' ', s); Delete(s, 1, p+5); { определяем номер школы k } Val(s, k, r); C[k] := C[k] + 1; { увеличиваем счетчик k-ой школы } end; 14) дальше стандартным алгоритмом определяем в массиве C минимальный элемент Min, не учитывая нули (школы, из которых не было участников): Min := N; for k:=1 to 99 do if (C[k] <> 0) and (C[k]<Min) then Min := C[k]; здесь интересна первая строчка, Min:=N: по условию всего было N участников, поэтому минимальное значение не может быть больше N; обратите внимание, что привычный вариант (который начинается с Min:=C[1]) работает неверно, если из первой школы не было ни одного участника 15) и выводим на экран номера всех школ (обратите внимание – номера!), для которых C[k]=Min:
|
|||||
|