✎ Задать свой вопрос   *более 30 000 пользователей получили ответ на «Решим всё»

Задача 894 На вход программе подаются сведения о

УСЛОВИЕ:

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

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

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

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

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

РЕШЕНИЕ:

const LIM = 100;
var Info: array[1..LIM] of record
name: string;
sum: integer;
end;
i, k, N, mark, min1, min2, min3: integer;
c: char;
begin
readln(N);
{ ввод исходных данных }
for i:=1 to N do begin
Info[i].name := '';
for k:=1 to 2 do
repeat
read(c);
Info[i].name := Info[i].name + c;
until c = ' ';
Info[i].sum := 0;
for k:=1 to 3 do begin
read(mark);
Info[i].sum := Info[i].sum + mark;
end;
readln;
end;
{ поиск трех минимальных }
min1 := 20; min2 := 20; min3 := 20;
for i:=1 to N do begin
if Info[i].sum <min1 then begin
min3 := min2; min2 := min1;
min1 := Info[i].sum;
end
else if Info[i].sum <min2 then begin
min3 := min2;
min2 := Info[i].sum;
end
else if Info[i].sum <min3 then
min3 := Info[i].sum;
end;
{ вывод результата }
for i:=1 to N do
if Info[i].sum <= min3 then
writeln(Info[i].name);
end.

Вопрос к решению?
Нашли ошибку?

Добавил slava191, просмотры: ☺ 4014 ⌚ 10.04.2014. информатика 10-11 класс

Решения пользователей

Увы, но свой вариант решения никто не написал... Будь первым!
Хочешь предложить свое решение? Войди и сделай это!

Написать комментарий

Последние решения
(прикреплено изображение)
✎ к задаче 44522
Надо [b]знать[/b] и уметь применять формулу:

cos( α - β )=cos α cos β +sin α sin β

[b]знать[/b] значения тригонометрических функций
cos(π/4)=sin(π/4)=sqrt(2)/2

Уметь выполнять преобразования

Уравнение примет вид:

cos2x+cos2x+sin2x=sin2x-1
2cos2x=-1
cos2x=-1/2

Простейшее уравнение вида:

cosx=a

Решаем по формуле:
х= ± arccos(-1/2)+2πn, n ∈ Z

Уметь решать простейшие уравнения

Знать как найти arccos

✎ к задаче 44521
1) Найти ОДЗ

Под знаком логарифма должно быть положительное выражение
Основание логарифмической функции должно быть положительным и не равно 1

{27x>0 ⇒
{81x>0 ⇒
{81x ≠ 1 ⇒

2)
Перейти к логарифмам по одинаковому основанию. Лучше всего к основанию 3

Применить свойства логарифма ( логарифм произведения, логарифм степени)

log_(a)xy=log_(a)x+log_(a)y

log_(a)x^(k)=klog_(a)x


3) В результате получить логарифмическое квадратное неравенство


\frac{log_{3}9}{log_{3}(81x)}\cdot (\frac{log_{3}(27x)}{log_{3}\frac{1}{3}})^2\leq 4,5

Удобнее ввести замену переменной:

log_(3)x=t
✎ к задаче 44524
α =3,1м=310см=3100 мм=3,1*10^3 мм
β =4,2м=420см=4200 мм=4,2*10^3 мм
γ =23м=2300 см=23000 мм=2,3*10^4 мм
✎ к задаче 44518
(прикреплено изображение)
✎ к задаче 44509