Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
61 / 60 / 72
Регистрация: 10.01.2016
Сообщений: 381
Записей в блоге: 13
1

Вывести направление робота после выполнения полученной команды

22.08.2016, 09:25. Просмотров 1692. Ответов 6
Метки нет (Все метки)

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

Есть рабочая программа на Pascal:
Pascal
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
program Case10;
var
  C:Char; //*
  N:Integer;
begin
  Write('Введите текущее напрление перемещения робота: ');
  Readln(C);
  Write('Введите команду: ');
  Readln(N);
 
  Case C of
   'N':Case N of
         1:C:='W';
         0:C:='N';
        -1:C:='E';
       end;
   'E':Case N of
         1:C:='N';
         0:C:='E';
        -1:C:='S';
       end;
   'S':Case N of
         1:C:='E';
         0:C:='S';
        -1:C:='W';
       end;
   'W':Case N of
         1:C:='S';
         0:C:='W';
        -1:C:='N';
       end;
  end;
  Writeln(C);
end.
Аналогично сделал на С++:
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
#include <iostream>
#include <clocale>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int N;
    char C;
    cout << "Введите исходное направление робота: ";
    cin >> C;
    cout << "\nНовая команда: ";
    cin >> N;
    switch (C) {
        case 'С': switch (N) {
            case  0: cout << "Север";  break;  //продолжить движение
            case  1: cout << "Запад";  break;  //поворот налево
            case -1: cout << "Восток";    break;  //поворот направо
            default: cout << "Неверная команда.";
        }
        case 'Ю': switch (N) {
            case  0: cout << "Юг";        break;      //продолжить движение
            case  1: cout << "Восток";    break;  //поворот налево
            case -1: cout << "Запад";  break;  //поворот направо
            default: cout << "Неверная команда.";
        }
        case 'З': switch (N) {
            case  0: cout << "Запад";  break;  //продолжить движение
            case  1: cout << "Юг";        break;      //поворот налево
            case -1: cout << "Север";  break;  //поворот направо
            default: cout << "Неверная команда.";
        }
        case 'В': switch (N) {
            case  0: cout << "Восток";    break;  //продолжить движение
            case  1: cout << "Север";  break;  //поворот налево
            case -1: cout << "Юг";        break;      //поворот направо
            default: cout << "Неверная команда.";
        }
    default: cout << "Неверная команда.";
    }
 
    cin.get();
    cin.ignore();
}
Однако результат программы всегда один и тот же - "Неверная команда". )
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2016, 09:25
Ответы с готовыми решениями:

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

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

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

Вывести направление робота после выполнения полученной команды
1. Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 —...

6
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,512
22.08.2016, 10:07 2
СЮЗВ замените на NSWE
1
61 / 60 / 72
Регистрация: 10.01.2016
Сообщений: 381
Записей в блоге: 13
22.08.2016, 10:18  [ТС] 3
А с кириллицей не работает?
0
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,512
22.08.2016, 10:30 4
ну проблема в этом была?
C++
1
switch (C+64) {
0
61 / 60 / 72
Регистрация: 10.01.2016
Сообщений: 381
Записей в блоге: 13
22.08.2016, 10:34  [ТС] 5
Рабочий код:
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
int N;
    char C;
    cout << "Введите исходное направление робота: ";
    cin >> C;
    cout << "\nНовая команда: ";
    cin >> N;
    switch (C) {
        case 'N': switch (N) {
            case  0: cout << "Север";  break;      //продолжить движение
            case  1: cout << "Запад";  break;      //поворот налево
            case -1: cout << "Восток";    break;      //поворот направо
            default: cout << "Неверная команда.";
        } break;
        case 'S': switch (N) {
            case  0: cout << "Юг";        break;      //продолжить движение
            case  1: cout << "Восток";    break;      //поворот налево
            case -1: cout << "Запад";  break;      //поворот направо
            default: cout << "Неверная команда.";
        } break;
        case 'W': switch (N) {
            case  0: cout << "Запад";  break;      //продолжить движение
            case  1: cout << "Юг";        break;      //поворот налево
            case -1: cout << "Север";  break;      //поворот направо
            default: cout << "Неверная команда.";
        } break;
        case 'E': switch (N) {
            case  0: cout << "Восток";    break;      //продолжить движение
            case  1: cout << "Север";  break;      //поворот налево
            case -1: cout << "Юг";        break;      //поворот направо
            default: cout << "Неверная команда.";
        } break;
    default: cout << "Неверная команда.";
    }
А это что:
C++
1
switch (C+64) {
?
0
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,512
22.08.2016, 10:37 6
Цитата Сообщение от SW Developer Посмотреть сообщение
А это что:
для славянофилов
1
61 / 60 / 72
Регистрация: 10.01.2016
Сообщений: 381
Записей в блоге: 13
22.08.2016, 10:39  [ТС] 7
Спасибо, для славянофилов тоже работает. )))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2016, 10:39

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

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

Вывести направление робота после выполнения полученной команды
Помогите с задачей на delphi Робот может перемещаться в четырех направлениях («С» — север, «З» —...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.