Задачи для начинающих
вот к примеру в приаттаченом файле во что генерируется упраление светофором если генерировать в СиШарп
----
странно текстовый файл приаттачить не удаётся, потому привожу его содержимое.
.......
// 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;
}