Опубликовано 03.01.2018 по предмету Информатика от Гость

В некотором вузе абитуриенты проходили предварительное тестирование, по результатам которого они могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по трём предметам, по каждому предмету абитуриент может набрать от 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.

Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы