Таблица футбольного чемпионата - Pascal (92366)

Узнай цену своей работы

Формулировка задачи:

никто не сталкивался с такой задачкой??? тфблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, приндалежащие главной диоганали,равны нулю,а каждый элемент не епринадлежащий главной диагонали,равны 2,1 или 0(числу очков набранных в игре:2-выйгрыш,1ничья,0-проигрыш.)и храниться в текстовом файле. Найти: а)число команд,имеющих больше побед чем поражений. б)определить номера команд,прошедших чемпионат без поражений. я пробывала сделать у меня такая чушь получилась вот разочаровалась и решила попросить помощи...

Решение задачи: «Таблица футбольного чемпионата»

textual
Листинг программы
uses crt;
var h:text;
    a:array[1..20,1..20] of byte;
    n,i,j,k,kp,kv,f:byte;
    nf,s:string;
begin
clrscr;
write('Имя файла для чтения: ');
readln(nf);
nf:=nf+'.txt';
assign(h,nf);
{$I-} reset(h);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Не могу открыть файл ',nf);
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
read(h,n);{читаем первое число-размер таблицы}
writeln('Таблица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    read(h,a[i,j]);{читаем таблицу}
    write(a[i,j]:3);{выводим на экран}
   end;
  writeln;
 end;
writeln;
close(h);
writeln('Команды без поражений:');
k:=0;f:=0;
for i:=1 to n do
  begin
   kv:=0;kp:=0;
   for j:=1 to n do
    begin
     if (a[i,j]=0)and(i<>j)then kp:=kp+1;{количество поражений}
     if a[i,j]=1 then kv:=kv+1;{количество выигрышей}
    end;
   if kp=0 then{если нет поражений}
    begin
     writeln(' команда ',i);{выводим}
     f:=1;{фиксируем}
    end;
   if kv>kp then k:=k+1;{если побед больше, считаем}
  end;
writeln;
if f=0 then writeln('Команд без поражений нет!');
writeln('Количество команд, имеющих побед больше чем поражений=',k);
readln
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • h: текстовый файл для чтения
    • n: размер таблицы
    • a: двумерный массив для хранения таблицы
    • i, j, k, kp, kv, f: булевые переменные для обработки данных
    • nf: имя файла для чтения
    • s: строка для вывода
  2. Открытие файла с помощью функции assign и проверка его на открытие с помощью функции IOResult.
  3. Чтение первого числа в массив n для определения размера таблицы.
  4. Вывод таблицы на экран с помощью двух вложенных циклов for и функции write.
  5. Закрытие файла после чтения.
  6. Поиск команд без поражений с помощью двух вложенных циклов for и булевых переменных kv и kp. Если количество побед больше, чем поражений, то команда считается командой без поражений.
  7. Вывод команд без поражений на экран с помощью функции writeln.
  8. Проверка наличия команд без поражений с помощью условного оператора if и вывод соответствующего сообщения.
  9. Количество команд, имеющих побед больше чем поражений, сохраняется в переменной k.
  10. Запрос на ввод с помощью функции readln в конце программы для завершения работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы