Хелпикс

Главная

Контакты

Случайная статья





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 символов от него:

p := Pos(' ', s); s := Copy(s,p+6,Length(s)); или так p := Pos(' ', s); Delete(s, 1, p+5);

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:



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.