Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача по функциям (сохранение данных в массиве, вывод, среднее значение) https://www.cyberforum.ru/ cpp-beginners/ thread924736.html
Напишите программу, которая запрашивает у пользователя 10 результатов игры в гольф, сохраняя их в массиве. При этом необходимо обеспечить возможность прекращения ввода до ввода всех 10...
C++ const_cast mutable
в чем разница? спасибо.
Объединение строк и запись в файл C++
Небольшая задача на C++ состоит в том что из файла t.txt считываются строки, затем заносятся в массив, объединяются и записываются в файл r.txt. Пример: Файл t.txt: char* word = new char ;...
C++ Разделение числа на цифры Смущает часть моего алгоритма Для разделения числа на цифры я сделал следующее: Вместо int для числа использовал string(так как можно выделять каждый элемент отдельно) Потом создал вектор типа... https://www.cyberforum.ru/ cpp-beginners/ thread924693.html
C++ Принудительное завершение программы https://www.cyberforum.ru/ cpp-beginners/ thread924687.html
Здравствуйте. Ищу способы принудительного завершения программы. Посоветуйте что нибудь плз.
Циклический ввод пары чисел C++
Напишите программу, которая многократно запрашивает у пользователя пару чисел до тех пор, пока хотя бы одно из этой пары не будет равно 0. С каждой парой программа должна использовать функцию...
Сортировка текстовой стороки по алфавиту C++
Какую функцию лучше использовать для сортировки, введённого с клавиатуры, текста? Считать строку у меня получилось, а как отсортировать не знаю. #include <iostream> #include <string> #include...
C++ Увеличение разрядности Проблема следующая: в процессе вычисления 32битных чисел возникает переполнение. Причём значительное. Хотелось бы получить результат 512 битный. Ну или хотя бы 256. Кто-нибудь сталкивался с этой... https://www.cyberforum.ru/ cpp-beginners/ thread924651.html
C++ ATL Service и переодическая задача https://www.cyberforum.ru/ cpp-beginners/ thread924643.html
Необходимо написать сервис для вин, использую для этой цели шаблон в VS2010(С++, АТЛ). Переопределяю события(при старте, паузе...) - всё ок. Реализую нужный функционал. Как реализовать...
C++ Указатель на базовый класс и на производный Пытаюсь разобраться с классами и наследованием. Сама эта задача из Дейтела "Как программировать на C++" Есть базовый класс Точка и у него один наследник Круг. В самой программе определяю две... https://www.cyberforum.ru/ cpp-beginners/ thread924626.html
23 / 23 / 6
Регистрация: 11.12.2011
Сообщений: 300
18.07.2013, 13:16  [ТС] 0

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

18.07.2013, 13:16. Просмотров 1427. Ответов 14
Метки (Все метки)

Ответ

Не по теме:
ну данный форум очень хорош и когда я его открыл для себя, то нарадоваться не мог. Но вот последнее время есть какие-то непонятки: то тему не могу создать в разделе, то ответить человеку не могу в теме, вот вам плюсануть не могу... Надеюсь, что устранятся проблемки
По теме:
Важно: Я немного утрировал саму задачу, чтобы разобраться в какую сторону смотреть решение (вот поэтому куча неточностей в условии)!

По сути оригинальная задача звучит примерно так: Есть группы студентов с одинаковыми марками (ну пусть будет 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 ссылок на соседей
б. динамический массив в котором записаны все его марки
в. динамический массив в котором записано сколько и каких марок отдать при следующем ходе
г. метод проверки есть ли у пользователя все марки


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

Вернуться к обсуждению:
Как подойти к решению задачи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2013, 13:16
Готовые ответы и решения:

Каким аспектам программирования стоит посвятить своё внимание? Как правильно подойти к обучению?
Здраствуйте, у меня накопилась парочка вопросов. Учу с++, дошел до классов. Цель- GameDev и...

Как вы подходите к решению новых для вас задач
Вопрос имеет с одной стороны косвенное, а с другой прямое отношение к программированию и языку С++....

как подойти к решению задачи?
привет всем! очередная проблема, но на этот раз даже не знаю с какой стороны подкрасться к ее...

Создание анкеты: как подойти к решению задачи
Как написать с чего начать?(мне завтра уже надо сдавать это) 1. В редакторе VBA MS Word...

14
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.