Вывести ориентацию локатора после выполнения заданных команд (Case) - C (СИ)
Формулировка задачи:
Помогите решить очень нужно, наперёд спасибо.(через case)
Локатор ориентирован на одну из сторон света («С» — север, «З» — запад,
«Ю» — юг, «В» — восток) и может принимать три цифровые команды поворота:
1 — поворот налево, -1 — поворот направо, 2 — поворот на 180°.
Дан символ C — исходная ориентация локатора и целые числа N1 и N2 — две
посланные команды. Вывести ориентацию локатора после выполнения этих команд.
Исходные данные
Исходная ориентация: C = 'В'
Команды:
N1 = 1 N2 = 1
Пример верного решения
Новая ориентация: 'З'
Решение задачи: «Вывести ориентацию локатора после выполнения заданных команд (Case)»
textual
Листинг программы
#include <stdio.h> char direction(int value); int rumb(int value, int dir); int main() { char dir = 'E'; int value = 0, n1 = 1, n2 = 1; value = rumb(value, n1); value = rumb(value, n2); dir = direction(value); printf("%c\n", dir); return 0; } int rumb(int value, int dir) { switch (dir) { case -1: value += 90; break; case 1: value -= 90; break; case 2: value += 180; } if (value > 360) value %= 360; else if (value < 0) value += 360; return value; } char direction(int value) { switch(value) { case 270: return 'N'; // С case 180: return 'W'; // В case 90: return 'S'; // Ю case 0: return 'E'; // З } }
Объяснение кода листинга программы
- Объединение, содержащее функции main(), rumb() и direction(), представлено в виде исходного кода на языке C.
- В функции main() определены переменные: dir (строка, представляющая направление локатора), value (целое число, представляющее значение угла), n1 (целое число, представляющее значение угла), n2 (целое число, представляющее значение угла).
- Значение переменной value обновляется вызовом функции rumb(), передавая в качестве аргументов текущее значение value и переменную n1.
- Значение переменной value обновляется вызовом функции rumb(), передавая в качестве аргументов текущее значение value и переменную n2.
- Переменная dir обновляется вызовом функции direction(), передавая в качестве аргумента текущее значение value.
- С помощью функции printf() выводится значение переменной dir.
- Функция main() возвращает 0, завершая работу программы.
- В функции rumb() определён оператор switch, который выбирает действие в зависимости от значения переменной dir.
- При значении dir равном -1 значение переменной value увеличивается на 90.
- При значении dir равном 1 значение переменной value уменьшается на 90.
- При значении dir равном 2 значение переменной value увеличивается на 180.
- Значение переменной value проверяется на выхождение за пределы от 0 до 360.
- Если значение переменной value больше 360, оно заменяется на остаток от деления на 360.
- Если значение переменной value меньше 0, оно заменяется на разность между 360 и остатком от деления на 360.
- Функция rumb() возвращает значение переменной value.
- В функции direction() определён оператор switch, который выбирает направление в зависимости от значения переменной value.
- При значении value равном 270 возвращается направление 'N'.
- При значении value равным 180 возвращается направление 'W'.
- При значении value равным 90 возвращается направление 'S'.
- При значении value равным 0 возвращается направление 'E'.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д