Ответы пользователя по тегу Алгоритмы
  • Как ввести неопределённое количество строк С++?

    Therapyx
    @Therapyx
    Data Science
    смотря на сколько привередливый проф. Может быть реально как сказал Алексей, но
    обычно в универе такие ключевые слова как "неопределенное" означает что-то динамическое. Т.е. Вектор.
    Для самых отбитых можно сделать функцию буфера, т.е. если ветор имеет более "х" строк, то выкачать это в фаил (но не думаю, что это потребуется).
    А алгоритм в принципе простой, надо только перевести в код

    Инициализируй переменную статуса меню
    Задекларируй Вектор, куда будут попадать все данные
    Инициализируй переменные для статистики (если их много, желательно сделай отдельный класс, а на этом месте будет обьект этого класса).

    напиши while loop и используй сканнер, который добавляет строки в вектор до тех пор, пока к примеру пользователь не нажмет 0, где 0 будет считаться выходом из программы, т.е. break

    тут выбор, или ты сразу после добавления строки делаешь статистику, или после того как пользовательно нажмет кнопку "0" и тогда для всего вектора.
    Если же второе, то делаешь опять for loop на вектор и на каждую строку пишешь нужную обработку статистики.

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

    Проблему я вижу в другом, "я только начала изучать строки, я не знаю векторов и много еще чего"
    Как ты это писать то собираешься? Готовься к малому сну )) А выучить это надо, я думаю с такими заданиями дальше у вас будет по нарастающей. Пропустишь это - потом опустишь вообще руки.
    Конкретно с некоторыми позициями тут помогут спокойно. Писать же все... Для этого есть фриланс.
    Ответ написан
  • Как найти объект класса в листе по одному или по нескольким его полям?

    Therapyx
    @Therapyx
    Data Science
    1) Делаешь итерацию листа
    2) На каждом индексе машины делаешь запросы аттрибутов через getcarModel() из класса машины. Гетеры и сетеры конечно же надо добавить в класс Car
    В итоге внутри for(foreach) loop, по типу:
    cars[indexNr].getcarModel()
    3) Проверяешь на соответствие с сохраненными параметрами, которые ввёл пользователь. Так как у тебя 0..n, то я бы делал, что-то на подобии
    "если строка не пустая", то сравни cars[indexNr].getcarModel() из пункта 2 с введенной пользователем строкой.
    4) Если хоть 1 из параметров внутри for loop'e не совпадает, то continue.
    5) Если все параметры были найдены в каком-либо из обьектов, то
    cars.RemoveAt(Актуальный индекс из фор лупа);

    Но можно сделать все куда проще и еффективнее. Например в каждой машине сделать уникальный индекс, который бы отображался бы пользователю. К примеру машина, которая она ищет = айди 12. А айди 12 это ничто иное как позиция в листе. Тогда можно было бы обойтись одной строкой
    cars.RemoveAt(Index); в функции DeleteCar
    Ответ написан
    Комментировать
  • Мне нужно сообщить программисту, как работает моя сложная система. Каким образом это лучше сделать?

    Therapyx
    @Therapyx
    Data Science
    Sequence diagram - то, как обьекты и классы взаимодействуют на практике.
    use case diagram - для более абстрактного представления архитектуры.
    class diagram - уже для более детального разбора классов, взаимодействий и их параметров.

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

    проги: К примеру MagicDraw
    Ответ написан
    Комментировать
  • Как узнать сложность (количество переходов) в поиске по хэш таблице?

    Therapyx
    @Therapyx
    Data Science
    Написать свою хеш таблицу, в ручную и на каждую функцию ->next() считать каунтер))
    По идее, если память не изменяет просто так взять и посчитать сложность хешпоиска в STL нельзя, разве что его править(но могу конечно и ошибаться). Ибо учил все это в плюсах.
    В Хештаблице неизвестное кол во коллизий.
    К примеру представь телефонный справочник
    Хешсимвол А - связь с Артём -> next() -> Алекс -> next() -> Аня....
    Хешсимвол Б - связь с Билл-> next() -> Боря - next() -> Бронислав....
    Артем знает Алекса, но Артем не нает Аню
    Билл знает Борю, но Билл не знает Бронислава
    Таким принципом идет связь между елементами связанными с "хешем". Поэтому чтобы посчитать конечную инстанцию. Надо пройтись по всему связанному списку и постчитать его позицию в данном "на этот момент" состоянии твоей таблицы. После каждого измениня в хеше - оно может измениться.

    п.с. если же есть такие "уникальные" функции в жаве, то интересно будет почитать тоже. Но сомниваюсь... ))
    Ответ написан
    Комментировать
  • Как проверить несколько диапазонов значений?

    Therapyx
    @Therapyx
    Data Science
    Задача интересная, но увы времени на нее всю у меня точно сейчас не будет. Но я бы начал так
    представим для в примере 1 человек ввел их "куда-то в GUI".
    1) Пишешь функцию конвертации всевозможных операторов в числа. К примеру > eto 1, < eto 2. И в обратную сторону.
    2) Проходишь по всем правилам, которые ввел пользователь и добавляешь в контейнер парами (оператор, число).
    3) продумываешь всевозможные комбинации конфликтор. В твоем варианте видно уже сразу 3.
    Если число от оператора 1(>) меньше, чем от оператора 2(<), то = конфликт.
    И по такому принципу делаешь быдло паттерны пока не покроешь все исключения.
    В идеале же надо аггригировать и делать более сложную структуру. Но я не думаю, что это нужно в твоем примере.
    Ответ написан
    Комментировать
  • Видеоаналитика. Возможно ли следить за объектом на большой скорости?

    Therapyx
    @Therapyx
    Data Science
    Более уверен, что можено. Определять веткоры обьектов попадающие в кадр -> А зоны, которые должны сохранятся в БД могут служить как тригеры, в коих если обьект заходит - то вся нужна инфа просто сохраняется в БД.
    Дак вот если отвечать конкретно на вопрос, можно ли? - безусловно можно.
    А вот конкретно как? - на этот счет опять же уверен, что есть куча разных реализаций и продуктов по этой тематике.
    Ответ написан
    3 комментария
  • Какой алгоритм проверки условия?

    Therapyx
    @Therapyx
    Data Science
    Дак по первому условию может быть списанно любые 2 вида товаров в кол-ве 3 шт.
    Если первое списание будет полностью из SKU1 и второе в размере двух единиц из SKU1 и одной из SKU2, то в SKU2 остается ровно 4 для двух списываний из 2го условия.
    Или я видимо не так понял первое условие, но "Любые 2 вида товароров 3шт". Все таки должно подразумивать в себе и возможность комбинирования этих товаров, там ведь не указанно, что списание может быть любым, но все 3 штуки должны быть списанны именно из 1го SKU
    Ответ написан
    4 комментария
  • Что такое информатика и с чем её едят?

    Therapyx
    @Therapyx
    Data Science
    Что такое информатика очень легко гуглится. А насчет, что изучают? вот тебе пример расписание бакалавра информатики в Германии :)
    https://www.h-da.de/fileadmin/h_da/Studium/Studien...
    Если что не поймешь или не сможешь перевести гугл переводчиков, спрашивай в комментах, отвечу что и как.
    Ответ написан
    6 комментариев