![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
npl |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: http://npfiles.ru Репутация: ![]() ![]() ![]() |
Даны названия N различных обществ (N заданное число), фигуристы которых участовали в соревновании. О каждом фигуристе известно: фамилия, название общества и 10 оценок за его выступление. Требуется для каждого спортивного общества определить фигуриста, показавшего наивысший результат, считая его единственным. Баллы, полученные фигуристом, подсчитываются следующим образом: максимальная и минимальная оценки отбрасываются, а из остальных формируется средняя. При вводе данных обеспечить уникальность наименований обществ и обязательную принадлежность фигуриста к одному из них.
|
![]() ![]() |
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
"Пришел барин и всех рассудил." :D
[ ] Мне кажется, вряд ли здесь кто-то не понимает по-русски. Скорее дело в другом: нужен текст на Паскале, а самому переводить с русского на Паскаль не хочтся, - пусть лучше это сделает кто-то другой! Тем более, что исправлять явно указанный недостаток автор этой темы не захотел, решив, очевидно, что и так сойдет. Между тем программа, работающая с текстовыми файлами, должна быть нечувствительна к количеству пробелов, разделяющих слова, т.е. совершенно одинаково обрабатывать "Иванов Динамо" и " Иванов Динамо ". Приведеная же программа, очевидно, с текстовыми файлами работать не умеет, а умеет только с файлами опредедленной структуры. Теперь по поводу задачи в целом (заодно уважаемый volvo сможет сравнить со своим вариантом). - Предусмотреть типы данных для фигуриста (в исходном коде уже есть) и для спортивного общества (название, Ф.И.О. ОДНОГО спортсмена, его средний результат). - Описать переменную для спортсмена (уже есть), массив длины N для обществ (благо, в условии она задана. Можно потребовать, чтобы первой строкой в файле указывалось количество обществ: для учебных/олимпиадных задач - обычное дело. А можно и не требовать: вместо массива организовать список, выделяя память для каждого очередного элемента по мере их поступления) и целую переменную для длины заполненной части массива. - написать функции (декомпозиция - великая вещь!) для: а) разбора строки с заполнением полей "фигуриста": на входе - строка из файла, возвращает - подсчитанное среднее. Функция должна уметь разбирать файлы вроде: Иванов и.И. "Спартак" 1 2 3 4 5 6 7 8 9 10 Сидоров Иван Петрович "Крылья Советов" 3, 4, 5, 5, 7, 8, 9, 10, 11, 12 Мохаммед Ибн Али ПЕру де Оннорре "ООО Челси им. Абрамовича" 2;3;4;5;6;7;8;9;10;1 Смит Джон "Определитель Матрицы" 8.0,7.0, 9, 3., 4, 1.0, 7, 5,9,2 Петров-Водкин Кузьма С. "Спартак" 3,2 1,3,2 1,3 2,1 1,1 б) поиска и добавления обществ: на входе - строка-имя общества, на выходе - номер найденного общества в массиве. Должна просматривать уже сформированную часть массива обществ, если не нашла - завести новое, обнулив все поля. Порядок действия программы: 1. Открыть файл. 1а. При необходимости считать строку с количеством обществ и выделить память для массива. 2. Цикл до окончания файла: - читаем строку - разбираем ее - находим номер общества - если средний балл спортсмена найденного общества ниже, чем вновь считанного, заменяем все данные общества новым спортсменом 3. Закрыть файл. 4. Вывести в цикле на печать заполненный массив обществ. Кстати, размещать в общедоступном месте (например, на форуме) програму без комментаиев - mauvais ton. Должна быть минимум одна строка коментария на 5-7 строк кода. Должны быть откомментированы все процедуры и функции: назначение и список параметров. Должны быть откомментированы все новые типы и их поля, а также глобальные переменные. Естественно, не должно быть коментариев типа: r := sqrt(x*x + y*y); {присваиваем переменной r значение sqrt(x*x + y*y)} |
Malice |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Начнем тогда уж.. Внесу свою лепту для начала
![]() type |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 0:02 |