Форум программистов, компьютерный форум CyberForum.ru

Как подойти к решению задачи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача по функциям (сохранение данных в массиве, вывод, среднее значение) http://www.cyberforum.ru/cpp-beginners/thread924736.html
Напишите программу, которая запрашивает у пользователя 10 результатов игры в гольф, сохраняя их в массиве. При этом необходимо обеспечить возможность прекращения ввода до ввода всех 10 результатов. Программа должна отобразить все результаты в одной строке и сообщить их среднее значение. Реализуйте ввод, отображение и вычисление среднего в трех отдельных функциях, работающих с массивами.
C++ const_cast mutable в чем разница? спасибо. http://www.cyberforum.ru/cpp-beginners/thread924724.html
Объединение строк и запись в файл C++
Небольшая задача на C++ состоит в том что из файла t.txt считываются строки, затем заносятся в массив, объединяются и записываются в файл r.txt. Пример: Файл t.txt: char* word = new char ; Файл r.txt:
Разделение числа на цифры C++
Смущает часть моего алгоритма Для разделения числа на цифры я сделал следующее: Вместо int для числа использовал string(так как можно выделять каждый элемент отдельно) Потом создал вектор типа int. И присвоил каждому элементу vector значение соответствующего элемента string. Но как показали эксперименты, что бы правильно перевести из string в vector<int> нужно отнять 48: c = a - 48; Меня это...
C++ Принудительное завершение программы http://www.cyberforum.ru/cpp-beginners/thread924687.html
Здравствуйте. Ищу способы принудительного завершения программы. Посоветуйте что нибудь плз.
C++ Циклический ввод пары чисел Напишите программу, которая многократно запрашивает у пользователя пару чисел до тех пор, пока хотя бы одно из этой пары не будет равно 0. С каждой парой программа должна использовать функцию для вычисления среднего гармонического этих чисел. Функция должна возвращать ответ main () для отображения результата. Среднее гармоническое чисел — это инверсия среднего значения их инверсий;... подробнее

Показать сообщение отдельно
skident
23 / 23 / 2
Регистрация: 11.12.2011
Сообщений: 300
18.07.2013, 13:16  [ТС]     Как подойти к решению задачи
Не по теме:
ну данный форум очень хорош и когда я его открыл для себя, то нарадоваться не мог. Но вот последнее время есть какие-то непонятки: то тему не могу создать в разделе, то ответить человеку не могу в теме, вот вам плюсануть не могу... Надеюсь, что устранятся проблемки
По теме:
Важно: Я немного утрировал саму задачу, чтобы разобраться в какую сторону смотреть решение (вот поэтому куча неточностей в условии)!

По сути оригинальная задача звучит примерно так: Есть группы студентов с одинаковыми марками (ну пусть будет 2 группы красная и зеленая). Сидят они за 2-мя рядами парт, в каждом ряду по 4 парты.

1 2
К К
К К
З З
З З

У каждого из студентов по 100 марок их цвета, то есть у каждого К(красного) - 100 марок красных. В сумме дает нам 400 красных марок и 400 зеленых марок.

Ну и вот они начинают меняться между собой марками. Каждый из них обязан отдать на каждых 10 марок определенного цвета по 1 марке того же цвета соседям.

В итоге за первый ход каждый красный должен отдать по 10 красных марок соседу, а каждый зеленый студент по 10 зеленых марок.

То есть самые верхние красные и самые нижние зеленые студенты остаются с теми же 100 марками одного цвета. А вот уже средние К К и З З имеют в наличии по 10 марок другого цвета.

И вот уже при втором ходе эти средние К К и З З должны отдать по 9 марок своего цвета и по 1 марке не своего цвета всем своим соседям.
А значит за 2 хода у каждого из студентов будет по 2 вида марок.

Вывод: надо 2 хода(звонка)

Вроде ничего сложного, а вот в реальной задаче, может быть например вот такая ситуация:
1 2
К К
К
З З
З З

или
1 2
К К
К К
З З
З

ну или, что-то похожее, но в любом случае должна существовать хотя бы пара студентов с разными марками которые могут обмениваться между собой.

Ну и еще плюс этих груп может быть 3, 4.... 20

то есть может задача выглядеть так красный(К), голубой(Г), зеленый(З), желтый(Ж), оранжевый(О):

1 2 3 4 5
К К К Г Г
К К К К Г
З З З З З
З Ж Ж Ж Ж
О О О

Добавлено через 32 минуты
По поводу решения думаю делать, что-то в таком роде:
1. Класс группы в котором содержатся:
а. массив из 4 ссылок на соседние группы (если нет каких-то из соседов, то ссылка NULL).
б. массив из ссылок на всех студентов в группе (наверное двухмерный, но еще не знаю точно)
2. Класс Студент, содержит:
а. массив из 4 ссылок на соседей
б. динамический массив в котором записаны все его марки
в. динамический массив в котором записано сколько и каких марок отдать при следующем ходе
г. метод проверки есть ли у пользователя все марки


Как-то так, сегодня сяду за реализацию увижу недочеты и отпишусь, если кому интересно будет.
 
Текущее время: 22:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru