Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: C++ Функция сортировки массива структур по возрастанию балла
СообщениеДобавлено: 05 янв 2014, 23:42 
Не в сети
Мастер
Зарегистрирован:
17 ноя 2013, 12:34
Сообщений: 224
Cпасибо сказано: 21
Спасибо получено:
1 раз в 1 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Задана структура с именем student, которая содержит два поля: Ф.И.О.; балл.
Необходимо реализовать функцию сортировки массива структур по возрастанию балла. Написать программу, которая иллюстрирует работу этой функции.Написать нужно на языке С++

Можете подкинуть идею как писать?а то я условие не могу понять :(

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Функция
СообщениеДобавлено: 06 янв 2014, 03:10 
Не в сети
Light & Truth
Аватара пользователя
Зарегистрирован:
18 авг 2013, 14:27
Сообщений: 1978
Откуда: Москва
Cпасибо сказано: 384
Спасибо получено:
1069 раз в 855 сообщениях
Очков репутации: 197

Добавить очки репутацииУменьшить очки репутации
А что непонятно в условии? Структура - объект, который позволяет "связать" несколько переменных в одну. В Вашем случае - фио студента (символьн.) и его оценка (числ.). То есть запись состоит из двух полей. Так как студентов много, то мы имеем дело с массивом таких записей. Их количество равно количеству студентов. Задача - упорядочить (отсортировать) массив по возрастанию оценок.

Как вариант могу предложить пузырьковый метод сортировки.
Вам потребуется переменная-флаг (истина-ложь).

Суть метода: многократно пробегаем по массиву от начала до конца. На каждом студенте сравниваем его оценку с предыдущим студентом. Если у предыдущего оценка выше, то меняем их местами. Процесс нужно закончить тогда, когда при очередном проходе по массиву не было выполнено ни одной "перемены мест". Если же "перемена мест" была, то делаем следующий проход по массиву (от начала до конца). Для того, чтобы отследить, была ли "перемена", используем переменную-флаг. Перед началом очередного пробега по массиву, флаг выставляем в значение "ложь", а при "обмене" студентов присваиваем флагу "истина". Если к концу прохода флаг всё ещё "ложь", то значит обмена не произошло, то есть всё отсортировано - работа программы завершена.

Алгоритм:
1. Начало цикла do (...while)
1.1 Флагу присваиваем "ложь"
1.2 Организуем цикл прохода по массиву, начиная со второго студента
1.2.1 Если оценка этого студента ниже, чем у предыдущего, то меняем их местами (swap) и выставляем флаг в "истина".
1.3 Переходим к следующему студенту.
2. Конец цикла (п.1) while флаг (продолжать, пока флаг равен "истина")

Ну, как-то так.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Функция
СообщениеДобавлено: 06 янв 2014, 16:45 
Не в сети
Beautiful Mind
Зарегистрирован:
07 мар 2012, 08:11
Сообщений: 1433
Cпасибо сказано: 45
Спасибо получено:
193 раз в 179 сообщениях
Очков репутации: 73

Добавить очки репутацииУменьшить очки репутации
Фразы "подкиньте идею", "не могу понять условие" следует переводить так: "напишите за меня всю программу, полностью и с комментариями" :)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Функция
СообщениеДобавлено: 06 янв 2014, 17:10 
Не в сети
Администратор
Аватара пользователя
Зарегистрирован:
23 фев 2010, 22:52
Сообщений: 6003
Cпасибо сказано: 3247
Спасибо получено:
3150 раз в 2273 сообщениях
Очков репутации: 652

Добавить очки репутацииУменьшить очки репутации
tan_tan писал(а):
Задана структура с именем student, которая содержит два поля: Ф.И.О.; балл.
Необходимо реализовать функцию сортировки массива структур по возрастанию балла. Написать программу, которая иллюстрирует работу этой функции.Написать нужно на языке С++
Можете подкинуть идею как писать?а то я условие не могу понять

Чтобы понять условие, начните с терминологии: почитайте, что такое в C++ функция, сортировка, массив, структура. Начните с самых истоков, попытайтесь понять самые простые примеры на эту тему.

Это несложно, попробуйте открыть методичку / учебник.

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 4 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
C++ Отсортировать по возрастанию простые числа массива

в форуме Информатика и Компьютерные науки

lexus1401

4

4265

29 май 2014, 17:16

Индекс массива является не допустимым для этого массива

в форуме MathCad

artem_naumenko

9

695

04 янв 2022, 19:38

Сортировки данных в c++

в форуме Информатика и Компьютерные науки

kvadratisharic

0

390

13 мар 2018, 23:18

Программа сортировки

в форуме Информатика и Компьютерные науки

Nataly-Mak

5

563

28 авг 2020, 13:22

Изоморфизм алгебраических структур

в форуме Линейная и Абстрактная алгебра

rain_walker

8

235

20 сен 2021, 15:26

Распределение электронов по возрастанию таблица

в форуме Химия и Биология

ammo77

27

768

03 янв 2023, 08:49

Названия структур абстрактной алгебры

в форуме Линейная и Абстрактная алгебра

Alexandr_efremov

1

249

03 окт 2017, 11:10

Вычисление балла по набору показателей

в форуме Размышления по поводу и без

clf

15

462

07 апр 2018, 20:46

Быстрый поиск элементов массива

в форуме Численные методы

alex345

0

409

26 сен 2014, 14:14

Обращение к элементу массива ячеек

в форуме MATLAB

GriFFoN

0

460

14 апр 2015, 22:35


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved