|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.10.2021, 23:12 | #1 |
Новичок
Джуниор
Регистрация: 11.10.2021
Сообщений: 1
|
Программирование алгоритма работы сложных устройств
Уже достаточно давно, когда учился на военной кафедре была поставлена задача, на подумать, как сделать программу тренажёр для обучения работы на боевой машине. Большое кол-во блоков* тумблеров, лампочек, индикаторов аналоговых и цифровых. Огромное число зависимостей: чтобы запустилось тут, надо нажать там, докрутить здесь и пока не загорелось тут, отключить вот это и т.д. Программе так и не суждено было реализоваться. Кафедра давно кончилась, программировать постоянно и углублённо так и не пришлось,* но очень хочется узнать как программируются такие вещи? Как реализовывается логика каждого блока и их взаимодействия? Подскажи что можно почитать на эту тему? Может есть открытые проекты подобного рода?
|
12.10.2021, 08:47 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Вот вам симулятор самолета: https://www.flightgear.org/download/source-code/
|
12.10.2021, 15:53 | #3 |
Лис
Старожил
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программирование работы внешних устройств по прерываниям(дисплей, клавиатура) | Алексей Ильин | Помощь студентам | 1 | 17.06.2011 22:17 |
Создание устройств(электроника, программирование контролеров и тд и тп) | Пепел Феникса | Компьютерное железо | 14 | 13.09.2010 15:45 |
Программирование сложных циклов | FcDonalds | Помощь студентам | 2 | 24.12.2008 22:49 |