Текстовый алгоритм.
Начало.
п. 1. Регистрация участников
п. 1.1. Ввод имени спортсмена, участвующего в чемпионате.
Ввод поле Tempstring
п. 1.2. Если введена пустая строка, то перейти к п. 1.1.
п. 1.3. Вывод «продолжить ввод участников»
Ввод О
Если О = да перейти к п. 1.1, иначе перейти к п. 1.4
п. 1.4. Отображаем через переменную NumSportsmen количество участников.
п. 1.5. Выполнить цикл по i от 0 до NumSportsmen с шагом 1.
Поле allSportsmen[i].Name присвоить Tempstring.
п. 2. Ввод оценок участников
п. 2.1. Выполнить цикл по i от 0 до NumSportsmen с шагом 1.
п. 2.2. Выполнить цикл по j от 0 до Numpodhod с шагом 1.
Вывод поля Name объекта allSportsmen[i]
Вывод поля j
Ввод поле Score[j,0] объекта allSportsmen[i]
Ввод поле Score[j,1] объекта allSportsmen[i]
Ввод поле Score[j,2] объекта allSportsmen[i]
Ввод поле Score[j,3] объекта allSportsmen[i]
п. 3. Сложение оценок спортсмена на одном подходе и вычисление количества высоких оценок спортсмена.
п. 3.1. Выполнить цикл по i от 0 до NumSportsmen с шагом 1.
п. 3.2. Выполнить цикл по j от 0 до Numpodhod с шагом 1.
п. 3.3. Выполнить цикл по k от 0 до NumScores с шагом 1.
п. 3.4. Поле Temp присвоить allSportsmen[i].Scores[j, k] для обозначения текущей оценки.
п. 3.5. Увеличить на 1 значение allSportsmen[i].VisScores[j, Temp] для расчета числа оценок Temp.
п. 3.6. Поле allSportsmen[i].Summapodhod[j] присвоить allSportsmen[i].Summapodhod[j]+allSportsmen[i].Scores[j,k].
п. 4.1. Выполнить цикл по i от 0 до NumSportsmen с шагом 1.
п. 4.2. Поле allSportsmen[i].Summa[0] присвоить allSportsmen[i].Summapodhod[0].
п. 5. Пока sorthod меньше NumSportsmen, делать п. 5.1, иначе перейти к п. 9.1.
п. 5.1. Выполнить цикл по i от 1 до NumSportsmen с шагом 1.
п. 5.2. Выполнить цикл по j от 0 до Numpodhod с шагом 1.
п. 5.3. Если allSportsmen[i].Summapodhod[j] больше allSportsmen[i - 1].Summapodhod[j], перейти к п. 5.4, иначе к перейти п. 6.1.
п. 5.4. Поле Temp присвоить allSportsmen[i].Summapodhod[j].
п. 5.5. Поле allSportsmen[i].Summapodhod[j] присвоить allSportsmen[i-1].Summapodhod[j].
п. 5.6. Поле allSportsmen[i-1].Summapodhod[j] присвоить Temp.
п. 5.7. Выполнить цикл по l от 0 до NumScores с шагом 1.
п. 5.7.1. Поле Temp присвоить allSportsmen[i].Scores[j,l].
п. 5.7.2. Поле allSportsmen[i].Scores[j,l] присвоить allSportsmen[i-1].Scores[j,l]].
п. 5.7.3. Поле allSportsmen[i-1].Scores[j,l] присвоить Temp.
п. 5.8. Выполнить цикл по l от 0 до 10(включительно) с шагом 1.
п. 5.8.1. Поле Temp присвоить allSportsmen[i].VisScores[j,l].
п. 5.8.2. Поле allSportsmen[i].VisScores[j,l] присвоить allSportsmen[i-1].VisScores[j,l]].
п. 5.8.3. Поле allSportsmen[i-1].VisScores[j,l] присвоить Temp.
п. 5.9. Поле Tempstring присвоить allSportsmen[i].Name[j].
п. 5.10. Поле allSportsmen[i].Name[j] присвоить allSportsmen[i-1].Name[j].
п. 5.11. Поле allSportsmen[i-1].Name[j] присвоить Tempstring.
п. 5.12. Перейти к п. 7.
п. 6.1. Если allSportsmen[i].Summapodhod[j] равна allSportsmen[i - 1].Summapodhod[j], перейти к п. 6.1.1, иначе к перейти п. 8.
п. 6.1.1. Поле k1 равно 10, а поле sorted равно 0.
п. 6.2. Пока поле sorted равно 0, делать п. 6.2.1, иначе перейти к п. 8.
п. 6.2.1. Если allSportsmen[i].VisScores[j, k1] больше, чем allSportsmen[i - 1].VisScores[j, k1], то делать п. 6.3, иначе перейти к п. 8.
п. 6.3. Поле Temp присвоить allSportsmen[i].Summapodhod[j].
п. 6.4. Поле allSportsmen[i].Summapodhod[j] присвоить allSportsmen[i-1].Summapodhod[j].
п. 6.5. Поле allSportsmen[i-1].Summapodhod[j] присвоить Temp.
п. 6.6. Выполнить цикл по l от 0 до NumScores с шагом 1.
п. 6.6.1. Поле Temp присвоить allSportsmen[i].Scores[j,l].
п. 6.6.2. Поле allSportsmen[i].Scores[j,l] присвоить allSportsmen[i-1].Scores[j,l]].
п. 6.6.3. Поле allSportsmen[i-1].Scores[j,l] присвоить Temp.
п. 6.7. Выполнить цикл по l от 0 до 10(включительно) с шагом 1.
п. 6.7.1. Поле Temp присвоить allSportsmen[i].VisScores[j,l].
п. 6.7.2. Поле allSportsmen[i].VisScores[j,l] присвоить allSportsmen[i-1].VisScores[j,l]].
п. 6.7.3. Поле allSportsmen[i-1].VisScores[j,l] присвоить Temp.
п. 6.8. Поле Tempstring присвоить allSportsmen[i].Name[j].
п. 6.9. Поле allSportsmen[i].Name[j] присвоить allSportsmen[i-1].Name[j].
п. 6.10. Поле allSportsmen[i-1].Name[j] присвоить Tempstring.
п. 6.11. Поле sorted равно 1 и перейти к п. 8.
п. 6.12. Если allSportsmen[i].VisScores[j,l] больше allSportsmen[i-1].VisScores[j,l], то не менять спортсменов в массиве местами, поле sorted равно 1 и перейти к п. 8.
п. 7. Если поле k1 не равно 0, уменьшить значение k1 на 1, иначе поле sorted равно 1.
п. 8. Увеличить значение sorthod на 1 и перейти к п. 6.1.
п. 9.1. Выполнить цикл по i от 0 до NumSportsmen с шагом 1.
п. 9.2. Выполнить цикл по j от 1 до Numpodhod с шагом 1 (j=1, т.к. сумма очков после первого подхода равна сумме очков первого подхода).
п. 9.3. Выполнить цикл по k от 0 до NumSportsmen с шагом 1 (для проверки сходства по имени в sortSportsmen и allSportsmen).
п. 9.4. Если поле sortSportsmen[i].Name[j - 1] равно allSportsmen[k].Name[j], перейти к п. 9.5., иначе перейти к п. 9.4.1.
п. 9.5. Поле sortSportsmen[i].Summa[j] присвоить sortSportsmen[i].Summa[j - 1] + allSportsmen[k].Summapodhod[j].
п. 9.6. Полю sortSportsmen[i].Name[j] присвоить allSportsmen[k].Name[j].
п. 9.7. Перейти к п. 9.4.1.
п. 10. Поле sorted равно 0.
п. 10.1. Пока sorthod меньше NumSportsmen, делать п. 10.2., иначе перейти к п. 11.
п. 10.1.1. Выполнить цикл по i от 1 до NumSportsmen с шагом 1.
п. 10.2. Выполнить цикл по j от 0 до Numpodhod с шагом 1.
п. 10.3. Если sortSportsmen[i].Summa[j] больше sortSportsmen[i - 1].Summa[j], перейти к п. 10.3.1., иначе перейти к п. 10.4.1.
п. 10.3.1. Полю Tempstring присвоить sortSportsmen[i].Name[j].
п. 10.3.2. Полю sortSportsmen[i]. Name[j] присвоить sortSportsmen[i-1]. Name[j].
п. 10.3.3. Полю sortSportsmen[i-1]. Name[j] присвоить Tempstring.
п. 10.3.4. Полю Temp присвоить sortSportsmen[i].Summa[j].
п. 10.3.5. Полю sortSportsmen[i].Summa[j] присвоить sortSportsmen[i-1].Summa[j].
п. 10.3.6. Полю sortSportsmen[i-1].Summa[j] присвоить Temp.
п. 10.4.1. Если sortSportsmen[i].Summa[j] равна sortSportsmen[i - 1].Summa[j], перейти к п. 10.4.1.1.,, иначе перейти к п. 10.6.8.
п. 10.4.1.1. Выполнить цикл по k от 0 до NumSportsmen с шагом 1.
п. 10.4.2. Если j не равно 0, то перейти к п. 10.4.3. и поле k1 присвоить j-1, иначе повторяется п. 10.2. для следующего j.
п. 10.4.3. Если поле sortSportsmen[k].Name[k1] равно sortSportsmen[i].Name[j], то перейти к п. 10.5.1., иначе повторяется п. 10.4.1. для следующего k.
п. 10.5.1. Выполнить цикл по l от 0 до NumSportsmen с шагом 1.
п. 10.5.2. Если поле sortSportsmen[l].Name[k1] равно sortSportsmen[i - 1].Name[j], то перейти к п. 10.6.1., иначе повторяется п. 10.5.1. для следующего l.
п. 10.6.1. Если k меньше l, то перейти к п. 10.6.2., иначе перейти к п. 10.7.1.
п. 10.6.2. Полю Tempstring присвоить sortSportsmen[i].Name[j].
п. 10.6.3. Полю sortSportsmen[i]. Name[j]. присвоить sortSportsmen[i-1]. Name[j].
п. 10.6.4. Полю sortSportsmen[i-1]. Name[j] присвоить Tempstring.
п. 10.6.5. Полю Temp присвоить sortSportsmen[i].Summa[j].
п. 10.6.6. Полю sortSportsmen[i].Summa[j]. присвоить sortSportsmen[i-1].Summa[j].
п. 10.6.7. Полю sortSportsmen[i-1].Summa[j] присвоить Temp.
п. 10.7. Увеличить значение sorthod на 1 и перейти к п. 10.1.
п. 11. Вывести на экран победителя.
Вывод поля «Победителем стал: »
Вывод поля Name[Numpodhod - 1] массива sortSportsmen[0]
Вывод поля «с результатом: »
Вывод поля Summa[Numpodhod - 1] массива sortSportsmen[i]