Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2021, 23:12   #1
DAndy_boy
Новичок
Джуниор
 
Регистрация: 11.10.2021
Сообщений: 1
По умолчанию Программирование алгоритма работы сложных устройств

Уже достаточно давно, когда учился на военной кафедре была поставлена задача, на подумать, как сделать программу тренажёр для обучения работы на боевой машине. Большое кол-во блоков* тумблеров, лампочек, индикаторов аналоговых и цифровых. Огромное число зависимостей: чтобы запустилось тут, надо нажать там, докрутить здесь и пока не загорелось тут, отключить вот это и т.д. Программе так и не суждено было реализоваться. Кафедра давно кончилась, программировать постоянно и углублённо так и не пришлось,* но очень хочется узнать как программируются такие вещи? Как реализовывается логика каждого блока и их взаимодействия? Подскажи что можно почитать на эту тему? Может есть открытые проекты подобного рода?
DAndy_boy вне форума Ответить с цитированием
Старый 12.10.2021, 08:47   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Вот вам симулятор самолета: https://www.flightgear.org/download/source-code/
waleri вне форума Ответить с цитированием
Старый 12.10.2021, 15:53   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

DAndy_boy, это как езда на велосипеде. Вначале страшно и боездно. А потом само все начинает получаться и идет все как по маслу. И главное человек не может вспомнить, что ему мешало в самом начале сесть и поехать и почему он падал?

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

Вначале простые проекты, затем задачи на динамическое программирование, потом средней сложности на создание классов (операторы присвоения и копирования). Потом готовый проект.
Рассказывают про разбиение задачи на подзадачи. На верное выстраивание иерархии классов по принципу Барбары. Про тесную связанность и передачу параметров по значению, а не по ссылке.

Даже есть задачи на декомпозицию автомобиля. Где нужно создать эм... 3-4 класса 3-4 методами. (Карбюратор, мотор, шасси, кузов)
Впрочем такие задачи мало кто понимает, так как у такого студиозуса должен быть багаж определенных знаний.

Ваша задача очень проста там же только тумблеры и кнопки. Вам нужно всего лишь изучить устройство реальной машины. И понять её принцип работы. Тогда разбить на составные блоки не составит труда. И закодировать их.

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

Индикаторы это вообще самое простое. Пусть индикатор это лампочка. Лампочка хранит свое состояние включена выключена или разбита. И у ней есть метод(функция) который всякий раз при его вызове должен отрисовать её состояние.

Исполнительные механизмы еще проще. Так как они тупо хранят текущее значение. Можно добавить звуковые эффекты.

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

А блок управления он обычно проверяет некоторые условия и передает преобразовывает одни данные в другие. К примеру давления с руля , в напряжение мотора. От датчика к исполнительному механизму.


Впрочем я уже увлекся.


C++ курс Франка
Порублев. Алгоритмы и программы. Решение олимпиадных задач.djvu
Боровский А.Н.-Qt4.7+. Практическое программирование на C++-БХВ-Петербург (2012)
Стивен МакКонналл Совершенный код (2005)
Мухортов В. В., Рылов В.Ю. Объектно-ориентированное программирование
Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес-Приемы объектно-ориентированного проектирования. Паттерны проектирования
Фаулер Мартин (Fowler Martiп)-Рефакторинг - улучшение существующего кода-Символ-Плюс (2003)
Robert Nystrom - Game Programming Patterns
Тут должны быть книги по игровым движкам.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 12.10.2021 в 16:56.
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование работы внешних устройств по прерываниям(дисплей, клавиатура) Алексей Ильин Помощь студентам 1 17.06.2011 22:17
Создание устройств(электроника, программирование контролеров и тд и тп) Пепел Феникса Компьютерное железо 14 13.09.2010 15:45
Программирование сложных циклов FcDonalds Помощь студентам 2 24.12.2008 22:49