menu
person

Задача №2910

На вход про­грам­ме по­да­ют­ся све­де­ния о сдаче эк­за­ме­нов уче­ни

Поиск задачи:

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

Ива­нов Петр 4 2 4

 

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

 

По­яс­не­ние.

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

name:string;

sum:integer;

end;

с:char;

i,j,N,m:integer;

begin

readln(N);

for i:=l to N do

begin

p[i].name:= ' ';

repeat

   readln(c);

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

until c=' ';   

repeat

  read(с);

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

until c=' ';   

p[i].sum:=0; 

for j:=1 to 3 do

begin

read(m);

if m=2 then p[i].sum:=p[i].sum+1

end; 

readln;

end;

for i:=1 to N do

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

for i:=1 to N do

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

for i:=1 to N do

if p[i].sum=1 then writeln(p[i].name)

end.

Категория: по информатике | Добавил: Просмотров: 1 | Теги: Об­ра­бот­ка символьных строк | Рейтинг: 0.0/0
Всего комментариев: 0