В некотором вузе абитуриенты проходили предварительное тестирование, по результатам которого они могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по трём предметам, по каждому предмет...

В некотором вузе абитуриенты проходили предварительное тестирование, по результатам которого они могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по трём предметам, по каждому предмету абитуриент может набрать от 0 100 баллов. При этом к сдаче экзаменов в первом потоке допускаются абитуриенты, набравшие по результатам тестирования не менее 30 баллов по каждому из трёх предметов, причём сумма баллов должна быть не менее 140. На вход программы подаются сведения о результатах предварительного тестирования. Известно, что общее количество участников тестирования не превосходит 500. В первой строке вводится количество абитуриентов, принимавших участие в тестировании, N. Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя> <Баллы> Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов, <Баллы> – строка, содержащая два целых числа, разделенных пробелом – баллы, полученные на тестировании по каждому из трёх предметов. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Пример входной строки: Романов Вельямин 48 39 55 Напишите программу, которая будет выводить на экран фамилии и имена абитуриентов, допущенных к сдаче экзаменов в первом потоке. При этом фамилии должны выводиться в алфавитном порядке.
Гость
Ответ(ы) на вопрос:
Гость
uses crt; type oc=record        per,bt,tr:integer; end; ab=record fam,im:string; ocen:oc; end; var b:array [1..50] of ab; l:ab; i,n,g,k,h:integer; begin clrscr; writeln ('введи количество абитуриентов'); readln (n); Writeln ('Вводи фамилии, имена и 3 оценки'); for i:=1 to n do with b[i] do begin readln (fam); readln (im); readln (ocen.per,ocen.bt,ocen.tr); end; clrscr; for j:=1 to n do for i:=1 to n-1 do if b[i].fam>b[i+1].fam then begin l:=b[i]; b[i]:=b[i+1]; b[i+1]:=l; end; writeln ('Список всех аббитуриентов:'); for i:=1 to n do writeln (b[i].fam,' ',b[i].im,' ',b[i].ocen.per,' ',b[i].ocen.bt,' ',b[i].ocen.tr); writeln ('Список допущенных аббитуриентов'); for i:=1 to n do with b[i] do begin with ocen do if (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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы