Задача по электротехнике, [советую заглянуть - Lapp :) ] |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача по электротехнике, [советую заглянуть - Lapp :) ] |
Иваныч |
30.11.2008 19:12
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Реальное имя: Иван Репутация: 0 |
Задача такова:
Надо соединить 3 кнопки, 3 лампочки и 1звонок так, чтобы при нажатии кнопки1 ( Кн1 ) загарается лампочка1 ( Л1 ) и звенит звонок, при нажатии Кн2 загарается Л2 и звенит звонок, и при нажатии Кн3 загарается Л3 и звени звонок. Главная загвостка в том, что Лампочки(в последовательности) и звонок должны работать в полную силу. Напряжение 220В Кнопки с самовозвратом, 4 контактные (2 контакта на вкл состояние, и 2 на выкл) Нельзя добавлять ничего лишнего(т.е конденсаторы, рэле, сопротивление и таму подобное) Это всё будет ставится якобы в камуналке Эскизы прикрепленных изображений |
Lapp |
12.12.2008 4:37
Сообщение
#2
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Ко всем, кто находит удовольствие в решении чисто программистских задач, просьба - дочитать этот мессадж до конца .
Это всё будет ставится якобы в камуналке Н-да.. Первой моей реакцией на эту тему было, ессно, перенести ее в Физику. Но потом я подумал, что возможно, что нужно не просто представить решение, а сделать способ нахождения такой схемы - то есть, программу . И еще я подумал, что прога-то будет несложная. Ну, я и написал ее. А потом, счастливо улыбаясь, запустил... И тут я понял, что мне не увидеть результатов. По крайней мере - живым . Способ не включал в себя никаких научных достижений, а был основан на полном переборе вариантов, и оценка времени его выполнения скромно зашкаливала за сотни лет (очень грубая оценка).. И тогда я бросил эту задачу, и даже не стал писать ответ в тему. Но потом она снова попалась мне на глаза, и я понял, что мне не уйти от нее . И я решил пооптимизировать.. Возможностей для этого оказалось достаточно. И через некоторое время я смог получить ответ в упрощенном варианте (квартира с двумя жильцами ). Интересно, что программа нашла не то решение, которое я придумал своим мозгом (без помощи электроники). Вот это решение, найденное моим лаптопом меньше, чем за минуту (проу прощения за качество камеры в моем телефоне): Вместе с неизменными атрибутами: Ниже привожу саму программу. Написана на Obect Pascal, хотя это не очень существенно (никаких виртуальных методов). Приглашаю всех желающих приложить руку к ее оптимизации. Комментарии включены самые ограниченные, но я опишу подробно, если кто-то проявит интерес (и если сами не разберетесь ). Если кто-то предложит другой метод - более эффективный - ваще будет здорово . Но в любом случае постарайтесь не ограничиваться словами.. Критика также принимается в любом (приличном) виде. Желаю успеха! uses P.S. Время, может, не самое подходящее - типа сессия близко, но - who cares? P.P.S. А не такая и мелкая, как мне казалось - рука устала елозить мышой, пока метил ее.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
xds |
12.12.2008 13:55
Сообщение
#3
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Мое решение (интуитивное). Подходит для любого количества жильцов.
Сообщение отредактировано: xds - 12.12.2008 14:01 -------------------- The idiots are winning.
|
andriano |
12.12.2008 23:35
Сообщение
#4
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Хочу отметить, что в условии не оговорено ни одного из следующих условий:
1. Возможности функционирования схемы при нажатии нескольких кнопок одновременно. 2. Сотношения между напряжением в сети и номинальными напряжениями лампочек и звонка. Предлагаю схему: Три цепочки из лампочки и последовательно соединенного с ней звонка включены в параллель. Вся эта конструкция последовательно соединена со звонком. При этом, естественно, номинальные токи лампочки и звонка должны быть равны, а напряжение в сети - сумме их номинальных напряжений. Режим одновременного нажатия на кнопки схема не предусматривает так же, как и оба варианта, опубликованные ранее. Достоинства схемы: 1. Легкость обобщения на произвольное количество лампочек и кнопок. 2. В конструкции допустимо использование "стандартных" кнопок, т.е. имеющих лишь одну пару контактов на замыкание (без размыкающих контактов). Схема не лишена недостатков, в частности, перегрузка звонка в нештатном режиме работы (при замыкании нескольких кнопок одновременно). Но мне это кажется меньшим недостатком, чем то, что опережение замыкания перед размыканием (в штатном режиме) ведет к КЗ. |
Lapp |
13.12.2008 0:35
Сообщение
#5
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Узнаю "раннего" andriano, готового спорить до бесконечности из-за никому неинтересных деталей..
Хочу отметить, что в условии не оговорено ни одного из следующих условий: ... а также стандарты на изоляцию проводов, типы ламп и девичья фамилия бабушек жильцов.. 1. Возможности функционирования схемы при нажатии нескольких кнопок одновременно. 2. Сотношения между напряжением в сети и номинальными напряжениями лампочек и звонка. Хорошо, я оговорю. 1. Одновременное нажатие кнопок запрещено и грозит выплатой полной стоимости оборудования (даже в случае его сохранности), плюс штраф в размере 2.71828 минимальных зарплат. 2. Номинальное значение напряжения ламп и звонка в точности равно напряжению в сети. И добавлю от себя (по просьбе электрика Васи) еще один пункт: 3.14. ПАЛЬЦЫ В РИЗЕТКИ НЕСУВАТЬ!!!!! Предлагаю схему: Ты лучше нарисуй, хотя мне уже не нравятся слово "последовательно" и подозреваемая мной множественность звонков..Три цепочки из лампочки и последовательно соединенного с ней звонка включены в параллель. Вся эта конструкция последовательно соединена со звонком. При этом, естественно, номинальные токи лампочки и звонка должны быть равны, а напряжение в сети - сумме их номинальных напряжений. Режим одновременного нажатия на кнопки схема не предусматривает так же, как и оба варианта, опубликованные ранее. Достоинства схемы: Схема xds делает это с блеском.1. Легкость обобщения на произвольное количество лампочек и кнопок. 2. В конструкции допустимо использование "стандартных" кнопок, т.е. имеющих лишь одну пару контактов на замыкание (без размыкающих контактов). ... ибо контакты на размыкание безумно дороги в производстве, что особенно существенно при гигантских масштабах нашего Проекта.. Схема не лишена недостатков, в частности, перегрузка звонка в нештатном режиме работы (при замыкании нескольких кнопок одновременно). Но мне это кажется меньшим недостатком, чем то, что опережение замыкания перед размыканием (в штатном режиме) ведет к КЗ. Если таковые (двойные) кнопки выпускаются производством, они должны быть сертифицированы и гарантированы от подобных нештатных ситуаций.Ладно, хватит шутить - andriano, ты правда не видишь, что задача имеет чисто академический характер? Решение привел xds, решение правильное и т.д. и т.п.. Но! Но мне очень жаль, что никто из ответивших не понял меня.. Задача провисела тут несколько дней, и ни у кого не появилось мысли ее решить. Стоило же мне сказать, что задача в этом разделе может нести в себе другой смысл - как тут же появились желающие пофлудить физикой в паскалевском разделе.. Моя программа - не Бог весть какое чудо, но она все же вносит некоторое разнообразие в бесконечные "расставить сторки по.." Она решает только эту конкретную задачу, причем за непозволительно большое время, но все же дает некоторое понятие о неких других задачах, которые могут решаться программным способом. Я надеялся на дискуссию именно по программированию, а не по физике (когда я начал решать ее программно, я как бы заблокировал себе мысли об обычном решении). Что ж, не вышло.. Наверное, надо действительно перенести тему в Физику, а свой пост опубликовать отдельно в FAQ - хотя, я не назвал бы этот вопрос часто задаваемым.. я подумаю. Чего и вам желаю.. Take it easy! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
13.12.2008 11:37
Сообщение
#6
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Узнаю "раннего" andriano, готового спорить до бесконечности из-за никому неинтересных деталей.. ... Но мне очень жаль, что никто из ответивших не понял меня.. ... Задача провисела тут несколько дней, и ни у кого не появилось мысли ее решить. ... Я надеялся на дискуссию ... Вопрос о том, кто именно готов обсуждать никому не интересные детали, конечно, интересен, но ответ на него, на мой взгляд, не столь однозначен. Я честно попытался прочитать программу, но, увы, не преуспел в этом. Виной этому: 1. Во-первых - моя лень. 2. Во-вторых - то, что стиль написания несколько отличается от того, к которому я привык: varЯ бы не стал называть глобальную переменную однобуквенным идентификатором, но это в данном случае неважно, по крайней мере. на данном этапе еще не помешало погиманию, а вот это: t: integer; // Номер следующего соединения при сборкея действительно не могу понять. Из 4-х слов понимаю смысл только первого. Что такое соединение? Каким образом они нумеруются? (хотя бы в пределах одной схемы или в процессе перебора по разным вариантам схем) Что такое сборка? typeПравильно ли я перевел на "свой" язык? type tPin= array[1..255] of byte; // Массив выводовКак соотносятся между собой выводы и контакты? Что означает каждое из 255 вариантов значения вывода? constructor Create(ip: integer);Что обозначает входная переменная? Pos: byte; // Состояние переключателя: 0, 1Почему переменная, принимающая только два значения, имеет тип byte, а не boolean? И какой цифре соответствует состояние "замкнуто", а какой "разомкнуто"? (интуитивно кажется 1 и 0 соответственно, но хотелось бы знать наверняка) И, на мой взгляд, в программе катастрофически не хватает комментариев: мне представляется, что КАЖДЫЙ заголовок процедуры или функции должен сопровождать описанием ее назначения, а также описанием каждого из параметров. Общая доля комментариев в коде, если не ошибаюсь, должно составлять около 30%. Прошу понять меня правильно: я не высказываю претензий к автору, я пытаюсь объяснить, почему я не стал разбираться в этой программе. (т.к. автор высказывает претензии ко мне - почему не прочитал и не разобрался?) Сообщение отредактировано: andriano - 13.12.2008 12:17 |
Текстовая версия | 29.03.2024 15:34 |