На городской олимпиаде по информатике участникам было предложено выполнить 3 задания, каждое из которых оценивалось по 25-балльн
ой шкале. Известно, что общее количество участников первого тура олимпиады не превосходит 250 человек. На вход программы подаются сведения о результатах олимпиады. В первой строке вводится количество участников N. Далее следуют N строк, имеющих следующий формат:
<Фамилия> <Имя> <Баллы>
Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов; <Баллы> – строка, содержащая три целых числа, разделенных пробелом, соответствующих баллам, полученным участником за каждое задание первого тура. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Примеры входных строк:
Петрова Ольга 25 18 16
Калиниченко Иван 14 19 15
Напишите программу, которая будет выводить на экран фамилию и имя участника, набравшего максимальное количество баллов. Если среди остальных участников есть ученики, набравшие такое же количество баллов, то их фамилии и имена также следует вывести. При этом имена и фамилии можно выводить в произвольном порядке.
Program Bally;
var a:array[1..250] of string;
N,l,max,x,i,b,p:integer;
z,k:string;
begin
max:=0;
readln(N);
for i:=1 to N do readln(a[i]);
z:=a[1];
l:=Pos(' ',z); Delete(z,1,l);
l:=Pos(' ',z); Delete(z,1,l);
Val(copy(z,1,Pos(' ',z)-1),x,l); max:=max+x;
Delete(z,1,Pos(' ',z));
Val(copy(z,1,Pos(' ',z)-1),x,l); max:=max+x;
Delete(z,1,Pos(' ',z));
Val(z,x,l); max:=max+x;
for i:=2 to N do begin
z:=a[i];
b:=0;
l:=Pos(' ',z); Delete(z,1,l);
l:=Pos(' ',z); Delete(z,1,l);
Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x;
Delete(z,1,Pos(' ',z));
Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x;
Delete(z,1,Pos(' ',z));
Val(z,x,l); b:=b+x;
if b>max then max:=b;
end;
for i:=1 to N do begin
z:=a[i];
b:=0;
l:=Pos(' ',z);
p:=l;
Delete(z,1,l);
l:=Pos(' ',z); p:=p+l;
Delete(z,1,l);
Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x;
Delete(z,1,Pos(' ',z));
Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x;
Delete(z,1,Pos(' ',z));
Val(z,x,l); b:=b+x;
if b=max then begin
z:=a[i];
delete(z,p,length(z)-p+1);
writeln(z);
end;
end;
end. Наверное так!!
<u>// PascalABC.NET 3.3, сборка 1627 от 27.01.2018</u> <u>// Внимание! Если программа не работает, обновите версию!</u>
begin var s:=Arr('первое', 'второе','третье','четвертое','пятое'); var p,r:real; var c:char; Write('Введите первое число: '); Readln(r); for var i:=0 to 3 do begin Write('Выберите ',s[i], ' действие (a) сложить, b) вычесть,'); Write('c) умножить, d) разделить): '); Readln(c); Write('Введите ',s[i+1],' число: '); Readln(p); case c of 'a':r+=p; 'b':r-=p; 'c':r*=p; 'd':r/=p; end; Writeln('Результат: ',r) end end.
Алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд. Это свойство алгоритма называется понятностью<span>. Алгоритм не должен быть рассчитан на принятие каких-либо самостоятельных решений исполнителем, не предусмотренных составителем алгоритм</span>