Как определить принадлежность точки октанту? - C#
Формулировка задачи:
Стоит задача - написать программу для определения принадлежности точки октанту. Октант - это четверть в трехмерном пространстве. Все довольно просто если бы не нужно было написать программу которая будет это делать с помощью всего трех атомарных условий(Условие над которым невозможно произвести дальнейшуюю декомпозицию. Тоесть условие которое больше нельзя разложить. Без логических операторов. ).
Максимум получилось сделать с помощью семи.
if (x>0) if (y>0) if (z>0) k = 1; else k = 8; else if (z>0) k = 4; else k = 5; else if (y>0) if (z>0) k = 2; else k = 7; else if (z>0) k = 3; else k = 6;
Решение задачи: «Как определить принадлежность точки октанту?»
textual
Листинг программы
static int GetOctant(int x, int y, int z) { var dict = new Dictionary<string, int>() { {"+++", 1 }, {"+-+", 2 }, {"+--", 3 }, {"++-", 4 }, {"-++", 5 }, {"--+", 6 }, {"---", 7 }, {"-+-", 8 } }; string xs = "+", ys = "+", zs = "+"; if (x < 0) xs = "-"; if (y < 0) ys = "-"; if (z < 0) zs = "-"; return dict[xs + ys + zs]; } static void Main(string[] args) { Console.Write("введите x: "); string s = Console.ReadLine(); int x = Int32.Parse(s); Console.Write("введите y: "); string s1 = Console.ReadLine(); int y = Int32.Parse(s1); Console.Write("введите z: "); string s2 = Console.ReadLine(); int z = Int32.Parse(s2); Console.Write(GetOctant(x, y, z)); Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д