1. Результат соревнований по пятиборью представлен в виде матрицы 5х5 (5 спортсменов и 5...

0 голосов
94 просмотров

1. Результат соревнований по пятиборью представлен в виде матрицы 5х5 (5 спортсменов и 5 видов соревнований), в которых указаны места, занятые каждым спортсменом в данном виде. Найти лучшего спортсмена (наименьшая сумма мест).
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 3, 1 или 0 (число очков, набранных в игре: 3 - выигрыш, 1 - ничья, 0 - проигрыш):
2. Найти число команд, имеющих больше побед, чем поражений;
3. Определить номера команд, прошедших чемпионат без поражений;
4. Выявить, имеется хотя бы одна команда, выигравшая более половины игр.
НА ЯЗЫКЕ Pascal/


Информатика (38 баллов) | 94 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

1.
var
a:array[1..5,1..5] of integer;
i,j,sum,min,n:Integer;
begin
min:=25;
for i:=1 to 5 do
begin
Writeln('Введите места ', i,' спортсмена');
for j:=1 to 5 do
Read(a[i,j]);
end;

for i:=1 to 5 do
begin
for j:=1 to 5 do
sum:=sum+a[i,j];
if sumbegin
min:=sum;
n:=i;
sum:=0;
end;
end;
Writeln(n, ' спортсмен лучший');
end.

2.
var
a:array[1..20,1..20] of integer;
sum:array[1..20] of integer;
i,j,n,k:integer;
begin
Writeln('Введите количество команд');
Readln(n);
For i:=1 to n do
for j:=1 to n do
if i = j then a[i,j]:=0 else
begin
Writeln('Введите количество очков, заработаных ', i ,' командой в матче поротив ', j, ' команды');
Read(a[i,j]);
end;
For i:=1 to n do
for j:=1 to n do
sum[i]:= sum[i]+ a[i,j];

for i:=1 to n do
if sum[i]>(3*(n-1)/2) then k:=k+1;

Writeln(k ,' команд(а,ы) имеют больше побед, чем поражений');
end.

3.
var
a:array[1..20,1..20] of integer;
sum:array[1..20] of integer;
i,j,n:integer;
begin
Writeln('Введите количество команд');
Readln(n);
For i:=1 to n do
for j:=1 to n do
if i = j then a[i,j]:=0 else
begin
Writeln('Введите количество очков, заработаных ', i ,' командой в матче поротив ', j, ' команды');
Read(a[i,j]);
end;
For i:=1 to n do
for j:=1 to n do
sum[i]:= sum[i]+ a[i,j];

for i:=1 to n do
if sum[i] = 3*(n-1) then Write(i, ' ');
Write(' команд(а,ы) прошли чемпионат без поражений!');
end.

4.
var
a:array[1..20,1..20] of integer;
sum:array[1..20] of integer;
i,j,n,k:integer;
begin
Writeln('Введите количество команд');
Readln(n);
For i:=1 to n do
for j:=1 to n do
if i = j then a[i,j]:=0 else
begin
Writeln('Введите количество очков, заработаных ', i ,' командой в матче поротив ', j, ' команды');
Read(a[i,j]);
end;
For i:=1 to n do
for j:=1 to n do
if a[i,j]<>1 then
sum[i]:= sum[i]+ a[i,j];

for i:=1 to n do
if sum[i] > (3*(n-1))/2 then k:=k+1;
Write(k,' команд выиграли более половину игр');
end.

(894 баллов)
0

Спасибо большое

0

Пожалуйста)