Задачи для начинающих
позволяют работать сотням программ управления сразу в одном контроллере
Вообще то нам обычно нужна была одна программа, дай бы бог ёё там разместить
Большое преимущество данного языка, не нужно объяснять, что такое "спагетти код" - всё сразу и так видно
Если мне надо будет программить какое то железо, то я лучше возьму С.я когда то, еще будучи студентом, весьма хорошо освоил язык Ассемблер, и писал игрушки для самодельных компьютеров Специалист и Синклер (ZXSpectrum). На кафедре тоже для Синклера написал управление сигнализацией, в паре с коллегой который оборудование разработал.
Так вот тогда мне казалось что я могу всё, и язык С и в руки брать не хотел даже для ознакомления.
Но позже ебстественно понял что С может быть поудобнее, а потом и С++ оценил.
ольшое преимущество данного языка, не нужно объяснять, что такое "спагетти код" - всё сразу и так виднопредлагаю написать на С управление светоформ или светом. И тогда мы сравним какой из кодов званию спагети более соответствует.
Такого в задаче управления писать нельзя. Хорошо хоть мои знакомые "железнячники" этого не знаютне знают потому как узкоспециализированные задачи пишут.
Если был они управление роботом к примеру что машины клепает написать попробовали, и так чтобы алгоритм мобильно менять можно было, то оценили бы специальные языки программирования. Ибо они для этого заточены.
вот к примеру в приаттаченом файле во что генерируется упраление светофором если генерировать в СиШарп
----
странно текстовый файл приаттачить не удаётся, потому привожу его содержимое.
.......
// input
public bool Button; // кнопка пешехода
// output
public bool R, Y, G; //светофор для машин
public bool R2, G2; // светофор для пешеходов
//local
public bool BB;
public int Branch1 = 1;
public int Branch1_Prev;
public int Branch1_T;
public bool Branch1_Pulse = true;
public int Branch2 = 1;
............................
if (Branch1_Pulse)
{
_ _ Branch1_Prev = Branch1;
_ _ Branch1_T = Environment.TickCount;
}
switch (Branch1)
{
_ _ case 1: /*S1*/
_ _ {
_ _ _ _ /*машины едут, пешеходы стоят*/
_ _ _ _ R = Y =_ G2 = false;
_ _ _ _ G = R2 = true;
_ _ _ _ /*пешеход нажал кнопку*/
_ _ _ _ if (BB)
_ _ _ _ {
_ _ _ _ _ _ /*прошло ли достатоно времени для потока машин*/
_ _ _ _ _ _ if ((Environment.TickCount - Branch1_T) > 5000)
_ _ _ _ _ _ {
_ _ _ _ _ _ _ _ Branch1 = 2;
_ _ _ _ _ _ }
_ _ _ _ }
_ _ }
_ _ break;
_ _ case 2:
_ _ {
_ _ _ _ /*машинам желтый*/
_ _ _ _ Y = true; G = false;
_ _ _ _ /*выдержать желтый*/
_ _ _ _ if ((Environment.TickCount - Branch1_T) > 2000)
_ _ _ _ {
_ _ _ _ _ _ Branch1 = 3;
_ _ _ _ }
_ _ }
_ _ break;
_ _ case 3:
_ _ {
_ _ _ _ /*машины стоят*/
_ _ _ _ Y = false; R = true;
_ _ _ _ /*люди идут*/
_ _ _ _ R2 = false; G2 = true;
_ _ _ _ /*пусть люди походят*/
_ _ _ _ if ((Environment.TickCount - Branch1_T) > 5000)
_ _ _ _ {
_ _ _ _ _ _ Branch1 = 4;
_ _ _ _ }
_ _ }
_ _ break;
_ _ case 4:
_ _ {
_ _ _ _ /*люди стоят*/
_ _ _ _ R2 = true; G2 = false;
_ _ _ _ /*игнорировать нажатия кнопки пока люди ходили*/
_ _ _ _ BB = false;
_ _ _ _ /*машинам желтый*/
_ _ _ _ Y = true; R = false;
_ _ _ _ /*коротенькая пауза*/
_ _ _ _ if ((Environment.TickCount - Branch1_T) > 1000)
_ _ _ _ {
_ _ _ _ _ _ Branch1 = 1; /*S1*/
_ _ _ _ }
_ _ }
_ _ break;
}
Branch1_Pulse = Branch1 != Branch1_Prev;
switch (Branch2)
{
_ _ case 1: /*S1*/
_ _ {
_ _ _ _ /*пешеход нажал кнопку*/
_ _ _ _ if (Button )
_ _ _ _ {
_ _ _ _ _ _ Branch2 = 2;
_ _ _ _ }
_ _ }
_ _ break;
_ _ case 2:
_ _ {
_ _ _ _ /*пешеход отжал кнопку*/
_ _ _ _ if (!(Button ))
_ _ _ _ {
_ _ _ _ _ _ /*запомнить это нажатие*/
_ _ _ _ _ _ BB = true;
_ _ _ _ _ _ Branch2 = 1; /*S1*/
_ _ _ _ }
_ _ }
_ _ break;
}
Значит код потрясающий говорите, до спагетти как до неба? И сотня светофоров получается нажатием одной кнопы?я говорю то что сказал уже, а всякий тупой стёб без малейшей аргументации мне не интерестен.
Заявляется (исходно) что описывается автомат, а решение предлагается в виде говнокода... Синтезировали бы обычный автомат - все было бы приемлемо.ну ясно что всё что не автомат, то говнокод. Я бы глянул на этот говноавтомат на досуге, да боюсь такое и показать стыдно.