Таблица футбольного чемпионата - 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.
Объяснение кода листинга программы
- Объявление переменных:
- h: текстовый файл для чтения
- n: размер таблицы
- a: двумерный массив для хранения таблицы
- i, j, k, kp, kv, f: булевые переменные для обработки данных
- nf: имя файла для чтения
- s: строка для вывода
- Открытие файла с помощью функции assign и проверка его на открытие с помощью функции IOResult.
- Чтение первого числа в массив n для определения размера таблицы.
- Вывод таблицы на экран с помощью двух вложенных циклов for и функции write.
- Закрытие файла после чтения.
- Поиск команд без поражений с помощью двух вложенных циклов for и булевых переменных kv и kp. Если количество побед больше, чем поражений, то команда считается командой без поражений.
- Вывод команд без поражений на экран с помощью функции writeln.
- Проверка наличия команд без поражений с помощью условного оператора if и вывод соответствующего сообщения.
- Количество команд, имеющих побед больше чем поражений, сохраняется в переменной k.
- Запрос на ввод с помощью функции readln в конце программы для завершения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д