Программа
PROGRAM Football_Champion;
USES CRT; { Подключение модуля CRT }
CONST n=10; { Количество команд }
TYPE ResultType=array[1..n,0..n+1] of integer; { Тип - таблицы чемпионата
с номерами команд в первых ячейках строк и суммой в последней ячейке }
VAR Result:ResultType; { Результаты чемпионата }
PROCEDURE GetResult (var B:ResultType); { Процедура ввода матрицы }
Var i,j:word; { Счетчики }
Begin
Randomize; { Инициализация ГСЧ }
for i:=1 to n do { Цикл ввода строк матрицы }
begin
B[i,0]:=i; { Запись номера команды }
B[i,n+1]:=0; { Сброс суммы очков команды }
for j:=1 to n do { Цикл ввода элементов матрицы }
begin
if i=j
then B[i,j]:=0 { Определение диагональных элементов }
else if Random(3)=0 { Определение результата }
then B[i,j]:=3
else if Random(2)=0
then B[i,j]:=1
else B[i,j]:=0;
B[i,n+1]:=B[i,n+1]+B[i,j] { Набор суммы очков команды }
end
end
End;
PROCEDURE OutResult (B:ResultType); { Процедура вывода матрицы }
Var i,j:word; { Счетчики }
Begin
for i:=1 to n do { Цикл вывода строк матрицы }
begin
Write(B[i,0]:2,' '); { Вывод номера команды }
for j:=1 to n do { Цикл вывода элементов матрицы }
Write (B[i,j],' '); { Вывод элемента матрицы }
WriteLn(' ',B[i,n+1]:3) { Вывод суммы очков команды и конца строки }
end
End;
PROCEDURE Sort(var B:ResultType);
Var i,j:word;
NumBestLine:word; { Номер строки с наибольшей суммой очков }
Buf:integer; { Временная переменная для переноса элементов матрицы }
Begin
for i:=1 to n-1 do { Цикл сортировки }
begin
NumBestLine:=i;
{ Определение лучшей из оставшихся строк номером текущей строки }
for j:=i+1 to n do { Цикл просмотра оставшейся цасти таблицы }
if B[NumBestLine,n+1]<B[j,n+1] { Если текущая строка лучше "лучшей" }
then NumBestLine:=j; { то - переопределение лучшей }
if NumBestLine<>i { Если текущая строка не является лучшей }
then for j:=0 to n+1 do { то - перестановка строк }
begin
{ Перестановка элемента строки: }
Buf:=B[i,j];
B[i,j]:=B[NumBestLine,j];
B[NumBestLine,j]:=Buf
end
end
End;
BEGIN
ClrScr; { Очистка экрана }
GetResult(Result); { Создание таблицы чемпионата }
WriteLn('Исходная таблица чемпионата'); { Вывод заголовка }
OutResult(Result); { Вывод таблицы чемпионата }
Sort(Result); { Сортировка строк }
WriteLn; { Пропуск строки }
WriteLn('Рейтинговая таблица чемпионата'); { Вывод заголовка }
OutResult(Result); { Вывод таблицы чемпионата }
END.
ПРОГРАММА
***************
* *
* П У С К *
* *
***************
:
:
*****************
* *
* *
* ClrScr *
* *
* *
*****************
:
:
*****************
* * * *
* * * *
* * GetResult * *
* * * *
* * * *
*****************
:
:
*****************
* 'Исходная *
таблица
* чемпионата' *
*****************
:
:
*****************
* * * *
* * * *
* * OutResult * *
* * * *
* * * *
*****************
:
:
*****************
* * * *
* * * *
* * Sort * *
* * * *
* * * *
*****************
:
:
*****************
* 'Рейтинговая *
таблица
* чемпионата' *
*****************
:
:
*****************
* * * *
* * * *
* * OutResult * *
* * * *
* * * *
*****************
:
:
***************
* *
* К О Н Е Ц *
* *
***************
GetResult
***************
* *
* П У С К *
* *
***************
:
:
*****************
* *
* *
* Randomize *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
*********** :
* * :
* * :
* i=1..n *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
* * : :
* * : :
*********** : :
: : :
: ***************** :
: * * :
: * B[i,0]:=i * :
: * * :
: * B[i,n+1]:=0 * :
: * * :
: ***************** :
: : :
: .∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙: :
: : : :
: : *********** :
: : * * :
: : * * :
: : .∙∙∙∙* j=1..n * :
: : : * * :
: : : * * :
: : : *********** :
: : * : :
: : * * : :
: : * * `∙∙∙∙∙∙∙∙∙∙∙∙'
: : Нет * * Да
: : .∙∙∙∙∙∙∙* i=j *∙∙∙∙∙∙∙∙.
: : : * * :
: : : * * :
: : : * * :
: : * * *****************
: : * * * *
: : * * * *
: : Да * * Нет * B[i,j]:=0 *
: : .∙∙* Random(3)=0 *∙∙∙. * *
: : : * * : * *
: : : * * : *****************
: : : * * : :
: : : * : :
: : : : :
: : : * :
: : ***************** * * :
: : * * * * :
: : * * Да * * Нет :
: : * B[i,j]:=3 * .∙∙* Random(2)=0 *∙∙. :
: : * * : * * : :
: : * * : * * : :
: : ***************** : * * : :
: : : : * : :
: : : : : :
: : : : : :
: : : ***************** ***************** :
: : : * * * * :
: : : * * * * :
: : : * B[i,j]:=1 * * B[i,j]:=0 * :
: : : * * * * :
: : : * * * * :
: : : ***************** ***************** :
: : : : : :
: : : `∙∙∙∙∙∙∙∙∙∙.∙∙∙∙∙∙<∙∙∙' :
: : : : :
: : `∙∙∙∙∙∙∙∙∙∙.∙∙∙∙∙∙∙∙∙∙∙' :
: : : :
: : `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
: : :
: : :
: : *****************
: : * *
: : * B[i,n+1]:= *
: : * *
: : *B[i,n+1]+B[i,j]*
: : * *
: : *****************
: : :
: `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
:
:
:
***************
* *
* К О Н Е Ц *
* *
***************
OutResult
***************
* *
* П У С К *
* *
***************
:
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙.
: :
*********** :
* * :
* * :
* i=1..n *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
* * : :
* * : :
*********** : :
: : :
: ***************** :
: :
: * * :
: B[i,0] :
: * * :
: :
: ***************** :
: : :
: .∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙: :
: : : :
: : *********** :
: : * * :
: : * * :
: : .∙∙∙∙∙∙∙∙∙∙∙* j=1..n * :
: : : * * :
: : : * * :
: : : *********** :
: : : : :
: : : : :
: : ***************** ***************** :
: : :
: : * * * * :
: : B[i,j] B[i,n+1] :
: : * * * * :
: : :
: : ***************** ***************** :
: : : : :
: `∙∙∙∙∙∙∙∙∙∙' `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
:
***************
* *
* К О Н Е Ц *
* *
***************
Sort
***************
* *
* П У С К *
* *
***************
:
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙.
: :
*********** :
* * :
* * :
* i=1..(n-1) *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
* * : :
* * : :
*********** : :
: ***************** :
: * * :
: * * :
: * NumBestLine:=i* :
: * * :
: * * :
: ***************** :
: : :
: : :
: .∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙: :
: : : :
: : *********** :
: : * * :
: : * * :
: : .∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙* j=(i+1)..n * :
: : : * * :
: : : * * :
: : : *********** :
: : : : :
: : : : :
: : : `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
: : * : :
: : * * B[NumBestLine,n+1] : :
: : * * <B[j,n+1] : :
: : * * : :
: : * *∙∙∙∙∙∙∙∙∙∙∙. : :
: : * * : : :
: : * * ***************** * :
: : * * * * * * :
: : * * * * * :
: : : * NumBestLine:=j* Да * * Нет :
: : : * * .∙∙* NumBestLine *∙∙. :
: : : * * : * <>i * : :
: : : ***************** : * * : :
: : : : : * * : :
: : `∙∙∙∙∙∙∙∙∙.∙∙∙∙<∙∙∙∙' : * : :
: : : : : :
: `∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙' : : :
: : : :
: .∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙: : :
: : : : :
: : *********** : :
: : * * : :
: : * * : :
: : .∙∙∙∙* j=0..(n+1) * : :
: : : * * : :
: : : * * : :
: : : *********** : :
: : : : : :
: : ***************** : : :
: : * * `∙∙∙∙∙∙∙∙∙∙.∙∙∙∙∙∙<∙∙∙' :
: : * * : :
: : * NumBestLine:=j* : :
: : * * `∙∙∙∙∙∙∙∙∙∙∙∙∙'
*************** : * *
* * : *****************
* К О Н Е Ц * : :
* * `∙∙∙∙∙∙<∙∙∙∙'
***************
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию