Задания
Версия для печати и копирования в MS Word
Тип Д19 C4 № 3109
i

На вход про­грам­ме по­да­ют­ся све­де­ния о сдаче эк­за­ме­нов уче­ни­ка­ми 9-х клас­сов не­ко­то­рой сред­ней школы. В пер­вой стро­ке со­об­ща­ет­ся ко­ли­че­ство уче­ни­ков N, ко­то­рое не мень­ше 10, но не пре­вос­хо­дит 100, каж­дая из сле­ду­ю­щих N строк имеет сле­ду­ю­щий фор­мат:

<Фа­ми­лия> <Имя> <оцен­ки>,

где <Фа­ми­лия> – стро­ка, со­сто­я­щая не более чем из 20 сим­во­лов, <Имя> – стро­ка, со­сто­я­щая не более чем из 15 сим­во­лов, <оцен­ки> – через про­бел три целых числа, со­от­вет­ству­ю­щие оцен­кам по пя­ти­балль­ной си­сте­ме. <Фа­ми­лия> и <Имя>, а также <Имя> и <оцен­ки> раз­де­ле­ны одним про­бе­лом. При­мер вход­ной стро­ки:

Ива­нов Петр 4 5 3

Тре­бу­ет­ся на­пи­сать как можно более эф­фек­тив­ную про­грам­му, ко­то­рая будет вы­во­дить на экран фа­ми­лии и имена трех худ­ших по сред­не­му баллу уче­ни­ков. Если среди осталь­ных есть уче­ни­ки, на­брав­шие тот же сред­ний балл, что и один из трех худ­ших, то сле­ду­ет вы­ве­сти и их фа­ми­лии и имена.

Спрятать решение

Ре­ше­ние.

var p:array[1..100] of record

name:string;

sum:integer;

end;

c:char;

i,j,N,s1,s2,s3,m:integer;

begin

readln(N);

for i:=1 to N do

begin

p[i].name:='';

repeat

read(c);

p[i].name:=p[i].name+c

until c=' ';

repeat

read(c);

p[i].name:=p[i].name+c

until c=' ';

p[i].sum:=0;

for j:=1 to 3 do

begin

read(m);

p[i].sum:=p[i].sum+m

end;

readln;

end;

s1:=20; s2:=20; s3:=20;

for i:=1 to N do

begin

if p[i].sum < s1 then

begin

s3:=s2;

s2:=s1;

s1:=p[i].sum

end else

if p[i].sum < s2 then

begin

     s3:=s2;

     s2:=p[i].sum

end

else

if p[i].sum < s3 then s3:=p[i].sum;

end;

for i:=1 to N do

if p[i].sum < = s3 then writeln(p[i].name);

end.

Спрятать критерии
Критерии проверки:

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
Про­грам­ма ра­бо­та­ет верно, т. е. опре­де­ля­ет верно опре­де­ля­ет ча­сто­ту встре­ча­ю­щих­ся букв, для любых вход­ных дан­ных про­из­воль­но­го раз­ме­ра, про­смат­ри­ва­ет вход­ные дан­ные один раз, не со­дер­жит вло­жен­ных цик­лов, в тек­сте про­грам­мы не ана­ли­зи­ру­ет­ся каж­дая ан­глий­ская буква в от­дель­но­сти.

До­пус­ка­ет­ся на­ли­чие одной син­так­си­че­ской ошиб­ки.

4
Про­грам­ма со­став­ле­на верно, но со­дер­жит не­ра­ци­о­наль­но­сти: вход­ные дан­ные за­по­ми­на­ют­ся в мас­си­ве сим­во­лов или стро­ке или вход­ной поток про­смат­ри­ва­ет­ся не­сколь­ко раз, про­грам­ма может со­дер­жать вло­жен­ные циклы. До­пус­ка­ет­ся на­ли­чие не более трех син­так­си­че­ских оши­бок.3
Про­грам­ма со­став­ле­на в целом верно с вло­жен­ны­ми цик­ла­ми или без, или об­ра­ба­ты­ва­ет каж­дую букву явным об­ра­зом (26 или 52 опе­ра­то­ра IF или опе­ра­тор CASE, со­дер­жа­щий 26 или 52 ва­ри­ан­тов), но, воз­мож­но, вы­во­дит зна­че­ние не пер­вой по ал­фа­ви­ту из ис­ко­мых букв. Воз­мож­но в ре­а­ли­за­ции ал­го­рит­ма со­дер­жат­ся 1–2 ошиб­ки (ис­поль­зу­ет­ся знак «<»

вме­сто «>», «or» вме­сто «and» и т. п.). Воз­мож­но, не­кор­рект­но ор­га­ни­зо­ва­на ра­бо­та со вход­ным фай­лом. До­пус­ка­ет­ся на­ли­чие не более пяти син­так­си­че­ских оши­бок.

2
Про­грам­ма, воз­мож­но, не­вер­но ра­бо­та­ет при не­ко­то­рых вход­ных дан­ных, но по при­ве­ден­но­му тек­сту ре­ше­ния ясно, что эк­за­ме­ну­е­мый по­ни­ма­ет, из каких эта­пов долж­но со­сто­ять ре­ше­ние за­да­чи. Про­грам­ма, воз­мож­но, не­вер­но об­ра­ба­ты­ва­ет не­ко­то­рые вход­ные

дан­ные, на­при­мер, от­сут­ству­ет или пред­ло­жен не­кор­рект­ный ал­го­ритм об­ра­бот­ки строч­ных или про­пис­ных букв, или они под­счи­ты­ва­ют­ся по от­дель­но­сти, или про­грам­ма со­дер­жит ошиб­ку в ал­го­рит­ме по­ис­ка мак­си­му­ма. Воз­мож­но, вы­во­дит толь­ко ис­ко­мую букву и не вы­во­дит ко­ли­че­ство букв. До­пус­ка­ет­ся на­ли­чие не более семи син­так­си­че­ских оши­бок.

1
За­да­ние не вы­пол­не­но или вы­пол­не­но не­вер­но0
Мак­си­маль­ный балл4