Вывести список фамилий участников в порядке убывания набранных ими очков - QBasic (27353)
Формулировка задачи:
Всем привет!
Имеется таблица результатов шахматного турнира с N участниками.(Выигрыш-1 очко,ничья -0.5 очка,проигрыш -
0 очков )Вывести список фамилий участников в порядке убывания набранных ими очков,сопроводив его указанием
для каждого участника суммы очков,занятого места и числа побед.Исходная информация вводится с клавиатуры .
Есть также программа.
Если есть возможность ,то можете описать ход решения для того,чтобы проще ориентироваться и читать программу ?
Решение задачи: «Вывести список фамилий участников в порядке убывания набранных ими очков»
textual
Листинг программы
CLS TYPE ChessT Uchas AS STRING * 10 ' имена участников Ochki AS SINGLE ' число очков Pobed AS SINGLE ' число побед END TYPE INPUT "N = "; n ' Ввод числа участников DIM Table(n) AS ChessT ' Наша таблица DIM Turn(n, n) ' Турнирная таблица FOR i = 1 TO n INPUT "NAME = "; Table(i).Uchas ' Ввод имён участников NEXT i REM Заполнение турнирной таблицы REM --------------------------------------------- FOR i = 1 TO n ' i - первый участник в партии FOR j = i TO n ' j - второй IF i >= j THEN 100 PRINT "CHISLO Ochkov Uchastnika"; i; "s"; j; INPUT Ochki ' IF Ochki = .5 THEN Turn(i, j) = Ochki Turn(j, i) = Ochki ELSE Turn(i, j) = Ochki Turn(j, i) = 1 - Ochki END IF 100 NEXT j, i REM Подсчет очков и побед FOR i = 1 TO n FOR j = 1 TO n Table(i).Ochki = Table(i).Ochki + Turn(i, j) ' подсчет очков IF Turn(i, j) = 1 THEN ' подсчет побед Table(i).Pobed = Table(i).Pobed + Turn(i, j) END IF NEXT j, i REM Сортировка участников по количеству очков REM ------------------------------------------- FOR i = 1 TO n - 1 FOR j = i + 1 TO n IF Table(i).Ochki < Table(j).Ochki THEN SWAP Table(i), Table(j) END IF NEXT j, i REM Вывод на экран CLS FOR i = 1 TO n IF i <= 3 THEN COLOR 11 ELSE COLOR 13 PRINT Table(i).Uchas; USING "#.# #"; Table(i).Ochki; Table(i).Pobed NEXT i END
Объяснение кода листинга программы
- Объявление переменных и типа данных:
n
- количество участников (целое число)Table
- массив структур типаChessT
(имена участников и их очки)Turn
- матрица для турнирной таблицы
- Ввод данных:
- Задается количество участников (
n
) - Вводятся имена участников и их очки
- Задается количество участников (
- Заполнение турнирной таблицы:
- Происходит расчет значений для матрицы
Turn
на основе введенных очков
- Происходит расчет значений для матрицы
- Подсчет очков и побед:
- Происходит подсчет общего количества очков и побед для каждого участника
- Сортировка участников по количеству очков:
- Применяется алгоритм сортировки пузырьком для сортировки участников по убыванию очков
- Вывод на экран:
- Выводится список участников, отсортированный по убыванию очков
- Для каждого участника выводится его имя, количество очков и побед, разделенные символом
#
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д