Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Задачи для начинающих

5160   12 13 14 15 16 17 18 19 20 21 22 все
Murr патриот17.02.21 04:35
Murr
NEW 17.02.21 04:35 
в ответ koder 16.02.21 21:02

не кусками километрового кода, а объектами

-----

А как ты предлагаешь это получить из диаграммы?

Составитель диаграммы вообще не имеет представления об классах и методах.

Это было раз. Второе - там не обязательно Шарп-код на выходе - могут быть какие-то блоки команд для оборудования...

Murr патриот17.02.21 04:45
Murr
NEW 17.02.21 04:45 
в ответ AlexNek 16.02.21 23:30

когда вообще ни одного коммента от начинающих не было.

-----

А как они могут быть если не только они, но и те кто давно с тобой общаются, узнают об том что является приемлемым решением только тогда, когда ты предъявляешь свое решение? безум



Может книжку напишешь, по методике форумного обучения

-----

Это к студентам педов.

Но могу сразу сказать, что схема останется той же.

koder патриот17.02.21 06:54
koder
NEW 17.02.21 06:54 
в ответ Murr 17.02.21 04:35, Последний раз изменено 17.02.21 06:55 (koder)
Второе - там не обязательно Шарп-код на выходе

Я оценил конкретный кусок кода. Я не оценивал функтиональность - только читаемость.

Программист коренной житель17.02.21 09:03
NEW 17.02.21 09:03 
в ответ AlexNek 15.02.21 20:09
Задача не для начинающих.

Я не ставил задачу :) Если хочешь иметь решение для начинующих, то будь людезен сформулировать задачу соответствующим образом.


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

Класс - это основополагающая контрукция в C#. Так что это первое, что должны изучить начинающие. А соответственно основные понятия ООП.


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

Нет ничего удивительного в каких-то мелких багах, особенно если учесть, что код я писал в браузере и даже не компилировал его :) Не понятно также что ты ожидал увидеть, последовательность состояний вроде правильная.


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

Реализация класса TrafficLightButton кажется мне тривиальной - геттер IsPressed - запрашиет состояние напрямую у железки, а функция Reset - сбрасывает кнопку в состояние "не нажата". Тут есть зависимость от конкретного железа, так что показать код не могу.


AlexNek патриот17.02.21 14:14
AlexNek
NEW 17.02.21 14:14 
в ответ Программист 17.02.21 09:03
то будь любезен сформулировать задачу соответствующим образом.

Ну тот же светофор, может поначалу без кнопочки. Главное, что бы понятно было как работает для начинающих.

Я вот еще не знаю какие требования к кнопочке. Самое простое, просто уменьшать горение зеленого сигнала машинкам на какое то время?


Не понятно также что ты ожидал увидеть

По крайней мере то, что мы видим на перекрестках: R Y G Y R

Но это не принципиально, можно подкрутить.


геттер IsPressed - запрашиет состояние напрямую у железки

То бишь на обычной винде работать принципиально не будет? Только с какой то железякой?


AlexNek патриот17.02.21 14:22
AlexNek
NEW 17.02.21 14:22 
в ответ anly 16.02.21 19:09

Запустить код так и не смог хммм

Пока вопросу по тому что вижу:

  • Чем отличается кнопка BB от Button?
  • Какой смысл в определении нажатия и отжатия кнопки?


Ну и вопрос немного не связанный с примером. Отчего нельзя использовать осмысленные имена, а не B1,B2 и т.п. ?

Murr патриот17.02.21 14:59
Murr
NEW 17.02.21 14:59 
в ответ AlexNek 17.02.21 14:14

Самое простое, просто уменьшать горение зеленого сигнала машинкам на какое то время?

-----

А-а-а... фиг тебе... дожидайся Красного Машинам и удлиняй его... смущ

AlexNek патриот17.02.21 15:36
AlexNek
NEW 17.02.21 15:36 
в ответ Murr 17.02.21 14:59

Можно еще и пропускать несколько циклов, что бы пешеходы не постоянно уменьшали время проезда бебе

anly патриот17.02.21 16:33
anly
NEW 17.02.21 16:33 
в ответ AlexNek 17.02.21 14:22
Запустить код так и не смог
это попробуй
Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот17.02.21 16:34
anly
NEW 17.02.21 16:34 
в ответ anly 17.02.21 16:33

или это

Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот17.02.21 16:40
anly
17.02.21 16:40 
в ответ AlexNek 17.02.21 14:22, Последний раз изменено 17.02.21 16:42 (anly)
Чем отличается кнопка BB от Button?
ВВ это не кнопка, а внутренняя переменная запоминающая нажатие Кнопки. Т.к. реакция на кнопку не всегда мгновенна: может машинам только только зеленый загорелся, поэтому пусть пешеходы ждут, но их нажатие уже запомнилось.
Какой смысл в определении нажатия и отжатия кнопки?
на случай если кнопку нажали, но отжимать не хотят. Чтобы не циклилось там.
Отчего нельзя использовать осмысленные имена, а не B1,B2 и т.п. ?
да можно конечно. B1 это сокращенно Branch1. Но можно обозвать "ВеткаСветофора", а если хочется поинформативнее то можно добавить имя любимой собаки и погоды на завтра.улыб
Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот17.02.21 17:04
anly
NEW 17.02.21 17:04 
в ответ AlexNek 16.02.21 23:41
У нас вроде эти времена давно прошли смущ Хотя оптимизация часто бывает и нужна. Мы просто с Вами живем в различных мирах и понять друг друга будет действительно сложно.
да нет, понять не сложно. Любой, даже супер-пупер компьютер станет дохлым если подходящую задачку подкинуть.

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

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

......

Помню выпустили новую версию проги (которой контроллеры программируют) ну естественно старым кундам предлагать стали. А они тупо собрали тест и начали гонять фирмварэ библиотеки, и сказали а почему функциональные блоки тут работают от 2х до 5ти раз медленнее, чем в старой системе?!

Дык потому что молодые люди, летающие в облаках КлинКодаДеволопмена их разработали! Кунды не могут ведь оценить всю красоту их исходников. Вот и пришлось красоту рушить и даже на вызовах функций экономить.улыб

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

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот17.02.21 17:17
AlexNek
NEW 17.02.21 17:17 
в ответ anly 17.02.21 16:34, Последний раз изменено 17.02.21 17:19 (AlexNek)

второй вариант тоже не работает хммм


Выдает енто и зависает


Auto Green True

Pedestrian Red True


Вот как проверяю

 private static void Main(string[] args)
        {
            TrafficLight3 trafficLight = new TrafficLight3();
            while (true)
            {
                trafficLight.RunStep();
            }
        }

ну еще от базового класса наследуюсь и удаляю "светофоры"

AlexNek патриот17.02.21 17:23
AlexNek
NEW 17.02.21 17:23 
в ответ anly 17.02.21 16:40
ВВ это не кнопка, а внутренняя переменная запоминающая нажатие Кнопки

Где так и подумал, но коммент говорил другое.


на случай если кнопку нажали, но отжимать не хотят.

ну видимо заморочки контроллеров, для ПК об этом и не думаешь смущ

anly патриот17.02.21 17:41
anly
NEW 17.02.21 17:41 
в ответ AlexNek 17.02.21 17:17
второй вариант тоже не работает

все работает. чтото у тебя

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот17.02.21 17:45
AlexNek
NEW 17.02.21 17:45 
в ответ anly 17.02.21 17:04
Дык потому что молодые люди, летающие в облаках КлинКодаДеволопмена их разработали!

Проблему тут не в ССД. Да и в нашем мире обычно другие проблемы.

Вот буквально живой пример. Если прога, года рождения 2000 на С++. Размером сейчас больше 300 тыс. строк, классы попадаются под 10 тыс. строк с функциями длиной больше 1000 строк.

Как её править знают буквально пара человек, но и те боятся что то трогать, потому что фиг его знает как это аукнется.

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


Была бы грамотно написана, не было бы многих проблем.

AlexNek патриот17.02.21 17:49
AlexNek
NEW 17.02.21 17:49 
в ответ anly 17.02.21 17:41

Да я бы и так поверил, что в твоей среде всё работает.

Но у меня есть только С# файл, может с инициализацией чего не того.

AlexNek патриот17.02.21 17:55
AlexNek
NEW 17.02.21 17:55 
в ответ anly 17.02.21 17:41
что то у тебя

Может быть, но я в упор не понимаю, как можно перейти на шаг 2 не нажимая никаких кнопок

switch (B1)
            {
                /*машины едут, пешеходы стоят*/
                case 1: /*S1*/
                    {
                        /*пешеход нажал кнопку*/
                        if (BB)
                        {
                            /*прошло ли достатоно времени для потока машин*/
                            if (Environment.TickCount - B1_T > 5000)
                            {
                                /*машинам желтый*/
                                B1 = 2; /*S2*/
                            }
                        }
anly патриот17.02.21 18:04
anly
NEW 17.02.21 18:04 
в ответ AlexNek 17.02.21 17:55, Последний раз изменено 17.02.21 18:06 (anly)

Надо нажать а потом отжать Button.

Естественно метод Process надо вызывать каждый раз

не нажимая кнопок нельзя. ибо это пешеходный светофор по кнопке

Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот17.02.21 18:13
anly
NEW 17.02.21 18:13 
в ответ anly 17.02.21 18:04

вот совсем без кнопок

Проклят нарушающий межи ближнего своего (Втор.27:17)