Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
16 / 12 / 4
Регистрация: 10.09.2018
Сообщений: 373

Робот может перемещаться в четырех направлениях

20.11.2018, 11:41. Показов 7754. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста решить задание.
Робот может перемещаться в четырех направлениях («11» — север, «12» — запад, «13» — юг, «14» — восток)
и принимать три цифровые команды: 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо.
Дан число (11, 12, 13 или 14) — исходное направление робота и целое число N (0, 1 или -1) — посланная ему команда.
Вывести направление робота после выполнения полученной команды (то есть север, запад, юг или восток).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2018, 11:41
Ответы с готовыми решениями:

Робот может перемещаться в четырех направлениях
Робот может перемещаться в четырех направлениях («С» – север, «З» – запад, «Ю» — юг, «В» — восток) и принимать три цифровые команды: 0 —...

Робот может перемещаться в четырех направлениях
Добрый день. Есть задача: Робот может перемещаться в четырех направлениях («11» — север, «12» — запад, «13» — юг, «14» — восток) и...

Робот может перемещаться в четырех направлениях. Написать весь путь робота
Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и принимать три цифровые команды: 0 —...

6
3 / 7 / 5
Регистрация: 18.10.2014
Сообщений: 177
20.11.2018, 12:03
Ну попробуй сделать цыкл
C#
1
while
на n шагов и в этом цкле вводи шаги. Для нахождения направления прибовляй к данному чилсу сделанные шаги.
0
384 / 184 / 107
Регистрация: 07.01.2016
Сообщений: 496
20.11.2018, 12:30
C#
1
2
3
4
5
6
7
8
9
10
11
12
        /// <summary>
        /// Возвращает идентификатор нового направления движения
        /// </summary>
        /// <param name="d0">Текущий идентификатор направления</param>
        /// <param name="turn">Идентификатор поворота</param>
        private int GetDirection(int d0, int turn)
        {
            int d = d0 + turn;
            if (d == 10) return 14;
            if (d == 15) return 11;
            return d;
        }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16113 / 11234 / 2887
Регистрация: 21.04.2018
Сообщений: 33,035
Записей в блоге: 2
20.11.2018, 12:48
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
enum TravEn
{
     Север = 11,
     Запад = 12,
     Юг = 13,
     Восток = 14,
     Неопределенно = 100 
}
 
enum CommEn
{
     Продолжить = 0,
     Налево = 1,
     Направо = -1,
     Неопределенно = 100 
}
 
TravEn trav=TravEn.Неопределенно ; // направление
Console.Write(" Введите начальное направление движения: ");
while (trav == TravEn.Неопределенно)
{
    string inp = Console.ReadLine();
    int inpInt = 0;
    if (int.TryParse(inp, out inpInt)  && Enum.IsDefined(typeof(TravEn), inpInt) )
         trav = (TravEn) inpInt;
    else
          Console.Write(" Ошибка ввода! \r\n Введите ещё раз начальное направление движения: "); 
} 
Console.WriteLine($" Начальное направление движения: {trav.ToString()}");\
 
CommEn comm=CommEn.Неопределенно ; // команда
Console.Write(" Enter в пустой сроке -> Выход ");
do
{
      Console.Write(" Введите команду: ");
      while (comm == CommEn.Неопределенно)
      {
            string inp = Console.ReadLine();
            int inpInt = 0;
            if (int.TryParse(inp, out inpInt)  && Enum.IsDefined(typeof(CommEn), inpInt) )
                   comm  = (CommEn) CommEn;
            else if (!string.IsNullOrWhiteSpace(inp))
                  Console.Write(" Ошибка ввода! \r\n Введите ещё раз команду: "); 
            else 
                  break;
      }
       if (!comm == CommEn.Неопределенно)
       {
            switch(comm)
           {
                case CommEn.Налево:
                     switch(trav)
                     {
                           case TravEn.Север : trav=TravEn.Запад; break;
                           case TravEn.Запад : trav=TravEn.Юг; break;
                           case TravEn.Юг : trav=TravEn.Восток; break;
                           case TravEn.Восток: trav=TravEn.Север; break;
                       }
                       break;
 
                case CommEn.Направо:
                     switch(trav)
                     {
                           case TravEn.Север : trav=TravEn.Восток; break;
                           case TravEn.Запад : trav=TravEn.Север ; break;
                           case TravEn.Юг : trav=TravEn.Запад ; break;
                           case TravEn.Восток: trav=TravEn.Юг ; break;
                       }
                       break;
              }
              Console.WriteLine($" Команда: {comm.ToString()}, направление движения: {trav.ToString()}");
              comm == CommEn.Неопределенно;
        }
        else
        {
               Console.WriteLine(" Выход из программы!");
               Console.WriteLine($" Конечное направление движения: {trav.ToString()}");
               Console.WriteLine(" Нажмите любую клавишу ..........");
               Console.ReadKey();
               return;
        }     
}
Писал здесь - возможны мелкие ошибки
0
16 / 12 / 4
Регистрация: 10.09.2018
Сообщений: 373
20.11.2018, 12:56  [ТС]
Весь код светиться красным
Миниатюры
Робот может перемещаться в четырех направлениях  
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
20.11.2018, 12:57
красТное
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16113 / 11234 / 2887
Регистрация: 21.04.2018
Сообщений: 33,035
Записей в блоге: 2
20.11.2018, 13:48
Лучший ответ Сообщение было отмечено DragonBorn88 как решение

Решение

Цитата Сообщение от DragonBorn88 Посмотреть сообщение
Весь код светиться красным
Ну, блин! Определения Enum надо же вынести из метода, а остальной код должен остаться в методе Main

Добавлено через 1 минуту
Цитата Сообщение от Почтальон Посмотреть сообщение
красТное
Ещё какое!


Добавлено через 39 минут
После исправления ошибок - полностью рабочий вариант!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
        enum TravEn
        {
            Север = 11,
            Запад = 12,
            Юг = 13,
            Восток = 14,
            Неопределенно = 100
        }
 
        enum CommEn
        {
            Продолжить = 0,
            Налево = 1,
            Направо = -1,
            Неопределенно = 100
        }
        static void Main(string[] args)
        {
            TravEn trav = TravEn.Неопределенно; // направление
            Console.Write(" Введите начальное направление движения: ");
            while (trav == TravEn.Неопределенно)
            {
                string inp = Console.ReadLine();
                int inpInt = 0;
                if (int.TryParse(inp, out inpInt) && Enum.IsDefined(typeof(TravEn), inpInt))
                    trav = (TravEn)inpInt;
                else
                    Console.Write(" Ошибка ввода! \r\n Введите ещё раз начальное направление движения: ");
            }
            Console.WriteLine($" Начальное направление движения: {trav.ToString()}");
 
            CommEn comm = CommEn.Неопределенно; // команда
            Console.Write(" Enter в пустой сроке -> Выход ");
            do
            {
                Console.Write(" Введите команду: ");
                while (comm == CommEn.Неопределенно)
                {
                    string inp = Console.ReadLine();
                    int inpInt = 0;
                    if (int.TryParse(inp, out inpInt) && Enum.IsDefined(typeof(CommEn), inpInt))
                        comm = (CommEn)inpInt;
                    else if (!string.IsNullOrWhiteSpace(inp))
                        Console.Write(" Ошибка ввода! \r\n Введите ещё раз команду: ");
                    else
                        break;
                }
                if (!(comm == CommEn.Неопределенно))
                {
                    switch (comm)
                    {
                        case CommEn.Налево:
                            switch (trav)
                            {
                                case TravEn.Север: trav = TravEn.Запад; break;
                                case TravEn.Запад: trav = TravEn.Юг; break;
                                case TravEn.Юг: trav = TravEn.Восток; break;
                                case TravEn.Восток: trav = TravEn.Север; break;
                            }
                            break;
 
                        case CommEn.Направо:
                            switch (trav)
                            {
                                case TravEn.Север: trav = TravEn.Восток; break;
                                case TravEn.Запад: trav = TravEn.Север; break;
                                case TravEn.Юг: trav = TravEn.Запад; break;
                                case TravEn.Восток: trav = TravEn.Юг; break;
                            }
                            break;
                    }
                    Console.WriteLine($" Команда: {comm.ToString()}, направление движения: {trav.ToString()}");
                    comm = CommEn.Неопределенно;
                }
                else
                {
                    Console.WriteLine(" Выход из программы!");
                    Console.WriteLine($" Конечное направление движения: {trav.ToString()}");
                    Console.WriteLine(" Нажмите любую клавишу ..........");
                    Console.ReadKey();
                    return;
                }
            } while (true);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2018, 13:48
Помогаю со студенческими работами здесь

Робот может перемещаться в четырех направлениях ("С" - север, "З" - запад, "Ю" - юг, "В" - восток) и принимать
Робот может перемещаться в четырех направлениях (&quot;С&quot; - север, &quot;З&quot; - запад, &quot;Ю&quot; - юг, &quot;В&quot; - восток) и принимать три цифровые...

Робот в четырех направлениях
Здравствуйте! Сделайте пожалуйста. Не могу, сложно что-то... Робот может перемещаться в четырех направлениях (&quot;С&quot; — север,...

Корабль может перемещаться в 4 направлениях и принимать 4 команды
Корабль может перемещаться в 4 направлениях(Север,Восток,Юг,Запад) и принимать 4 команды(вперёд,вправо,назад,влево).Корабль шёл сначала по...

Корабль может перемещаться в 4 направлениях и принимать 4 команды
Корабль может перемещаться в 4 направлениях(Север,Восток,Юг,Запад) и принимать 4 команды(вперёд,вправо,назад,влево).Корабль шёл сначала по...

Корабль может перемещатся в 4 направлениях и принимать 4 команды
Корабль может перемещатся в 4 направлениях ( север восток юг запад) и принимать 4 команды (вперёд вправо назад влево). Корабль шёл сначало...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru