Я решил эту задачу на языке C#‚ используя конструкцию switch case для определения текущей ориентации локатора и выполняющихся команд. Вот код моего решения⁚
csharp
using System;
class Program
{
static void Main
{
char orientation ‘C’; // исходная ориентация локатора
int N1 1; // первая команда (поворот налево)
int N2 -1; // вторая команда (поворот направо)
switch (orientation)
{
case ‘C’⁚ // север
switch (N1)
{
case 1⁚ // поворот налево
orientation ‘З’; // запад
break;
case -1⁚ // поворот направо
orientation ‘В’; // восток
break;
case 2⁚ // поворот на 180°
orientation ‘Ю’; // юг
break;
}
break;
case ‘З’⁚ // запад
switch (N1)
{
case 1⁚
orientation ‘Ю’;
break;
case -1⁚
orientation ‘С’;
break;
case 2⁚
orientation ‘В’;
break;
}
break;
case ‘Ю’⁚ // юг
switch (N1)
{
case 1⁚
orientation ‘В’;
break;
case -1⁚
orientation ‘З’;
break;
case 2⁚
orientation ‘С’;
break;
}
break;
case ‘В’⁚ // восток
switch (N1)
{
case 1⁚
orientation ‘С’;
break;
case -1⁚
orientation ‘Ю’;
break;
case 2⁚
orientation ‘З’;
break;
}
break;
}
switch (orientation)
{
case ‘C’⁚
Console.WriteLine(″Локатор остался севером″);
break;
case ‘З’⁚
Console.WriteLine(″Локатор повернулся на запад″);
break;
case ‘Ю’⁚
Console.WriteLine(″Локатор повернулся на юг″);
break;
case ‘В’⁚
Console.WriteLine(″Локатор повернулся на восток″);
break;
}
}
}
При входных данных orientation ‘C’‚ N1 1 и N2 -1 программа выведет на экран ″Локатор повернулся на запад″‚ что означает‚ что ориентация локатора после выполнения команд будет на запад. Можно изменить значения orientation‚ N1 и N2‚ чтобы получить другие результаты.