• В некотором вузе абитуриенты проходили предварительное тестирование, по результатам которого они могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по трём предметам, по каждому предмету абитуриент может набрать от 0 100 баллов. При этом к сдаче экзаменов в первом потоке допускаются абитуриенты, набравшие по результатам тестирования не менее 30 баллов по каждому из трёх предметов, причём сумма баллов должна быть не менее 140. На вход программы подаются сведения о результатах предварительного тестирования. Известно, что общее количество участников тестирования не превосходит 500. В первой строке вводится количество абитуриентов, принимавших участие в тестировании, N. Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя> <Баллы> Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов, <Баллы> – строка, содержащая два целых числа, разделенных пробелом – баллы, полученные на тестировании по каждому из трёх предметов. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Пример входной строки: Романов Вельямин 48 39 55 Напишите программу, которая будет выводить на экран фамилии и имена абитуриентов, допущенных к сдаче экзаменов в первом потоке. При этом фамилии должны выводиться в алфавитном порядке.

Ответы 1

  • uses crt;type oc=record       per,bt,tr:integer;end;ab=recordfam,im:string;ocen:oc;end;var b:array [1..50] of ab;l:ab;i,n,g,k,h:integer;beginclrscr;writeln ('введи количество абитуриентов');readln (n);Writeln ('Вводи фамилии, имена и 3 оценки');for i:=1 to n dowith b[i] dobeginreadln (fam);readln (im);readln (ocen.per,ocen.bt,ocen.tr);end;clrscr;for j:=1 to n dofor i:=1 to n-1 doif b[i].fam>b[i+1].fam then beginl:=b[i];b[i]:=b[i+1];b[i+1]:=l;end;writeln ('Список всех аббитуриентов:');for i:=1 to n dowriteln (b[i].fam,' ',b[i].im,' ',b[i].ocen.per,' ',b[i].ocen.bt,' ',b[i].ocen.tr);writeln ('Список допущенных аббитуриентов');for i:=1 to n dowith b[i] do beginwith ocen doif (per>30) and (bt>30) and (tr>30) and (per+bt+tr>140) then writeln (fam,' ',im,' ',ocen.per,' ',ocen.bt,' ',ocen.tr);end;readln;end.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years