Математический форум Math Help Planet
Обсуждение и решение задач по математике, физике, химии, экономике Теоретический раздел |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
новый онлайн-сервис число, сумма и дата прописью |
|
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Страница 1 из 1 |
[ Сообщений: 4 ] |
|
Автор | Сообщение | |
---|---|---|
tan_tan |
|
|
Необходимо реализовать функцию сортировки массива структур по возрастанию балла. Написать программу, которая иллюстрирует работу этой функции.Написать нужно на языке С++ Можете подкинуть идею как писать?а то я условие не могу понять |
||
Вернуться к началу | ||
radix |
|
|
А что непонятно в условии? Структура - объект, который позволяет "связать" несколько переменных в одну. В Вашем случае - фио студента (символьн.) и его оценка (числ.). То есть запись состоит из двух полей. Так как студентов много, то мы имеем дело с массивом таких записей. Их количество равно количеству студентов. Задача - упорядочить (отсортировать) массив по возрастанию оценок.
Как вариант могу предложить пузырьковый метод сортировки. Вам потребуется переменная-флаг (истина-ложь). Суть метода: многократно пробегаем по массиву от начала до конца. На каждом студенте сравниваем его оценку с предыдущим студентом. Если у предыдущего оценка выше, то меняем их местами. Процесс нужно закончить тогда, когда при очередном проходе по массиву не было выполнено ни одной "перемены мест". Если же "перемена мест" была, то делаем следующий проход по массиву (от начала до конца). Для того, чтобы отследить, была ли "перемена", используем переменную-флаг. Перед началом очередного пробега по массиву, флаг выставляем в значение "ложь", а при "обмене" студентов присваиваем флагу "истина". Если к концу прохода флаг всё ещё "ложь", то значит обмена не произошло, то есть всё отсортировано - работа программы завершена. Алгоритм: 1. Начало цикла do (...while) 1.1 Флагу присваиваем "ложь" 1.2 Организуем цикл прохода по массиву, начиная со второго студента 1.2.1 Если оценка этого студента ниже, чем у предыдущего, то меняем их местами (swap) и выставляем флаг в "истина". 1.3 Переходим к следующему студенту. 2. Конец цикла (п.1) while флаг (продолжать, пока флаг равен "истина") Ну, как-то так. |
||
Вернуться к началу | ||
zer0 |
|
|
Фразы "подкиньте идею", "не могу понять условие" следует переводить так: "напишите за меня всю программу, полностью и с комментариями"
|
||
Вернуться к началу | ||
Alexdemath |
|
|
tan_tan писал(а): Задана структура с именем student, которая содержит два поля: Ф.И.О.; балл. Необходимо реализовать функцию сортировки массива структур по возрастанию балла. Написать программу, которая иллюстрирует работу этой функции.Написать нужно на языке С++ Можете подкинуть идею как писать?а то я условие не могу понять Чтобы понять условие, начните с терминологии: почитайте, что такое в C++ функция, сортировка, массив, структура. Начните с самых истоков, попытайтесь понять самые простые примеры на эту тему. Это несложно, попробуйте открыть методичку / учебник. |
||
Вернуться к началу | ||
[ Сообщений: 4 ] |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |