Как определить принадлежность точки октанту? - C#

Узнай цену своей работы

Формулировка задачи:

Стоит задача - написать программу для определения принадлежности точки октанту. Октант - это четверть в трехмерном пространстве. Все довольно просто если бы не нужно было написать программу которая будет это делать с помощью всего трех атомарных условий(Условие над которым невозможно произвести дальнейшуюю декомпозицию. Тоесть условие которое больше нельзя разложить. Без логических операторов. ). Максимум получилось сделать с помощью семи.
Листинг программы
  1. if (x>0)
  2. if (y>0)
  3. if (z>0)
  4. k = 1;
  5. else
  6. k = 8;
  7. else if (z>0)
  8. k = 4;
  9. else
  10. k = 5;
  11. else if (y>0)
  12. if (z>0)
  13. k = 2;
  14. else
  15. k = 7;
  16. else if (z>0)
  17. k = 3;
  18. else
  19. k = 6;

Решение задачи: «Как определить принадлежность точки октанту?»

textual
Листинг программы
  1.  static int GetOctant(int x, int y, int z)
  2.         {
  3.             var dict = new Dictionary<string, int>()
  4.             {
  5.                 {"+++", 1 },
  6.                 {"+-+", 2 },
  7.                 {"+--", 3 },
  8.                 {"++-", 4 },
  9.                 {"-++", 5 },
  10.                 {"--+", 6 },
  11.                 {"---", 7 },
  12.                 {"-+-", 8 }
  13.             };
  14.             string xs = "+", ys = "+", zs = "+";
  15.             if (x < 0) xs = "-";
  16.             if (y < 0) ys = "-";
  17.             if (z < 0) zs = "-";
  18.             return dict[xs + ys + zs];
  19.         }
  20.  
  21.         static void Main(string[] args)
  22.         {
  23.  
  24.             Console.Write("введите x: ");
  25.             string s = Console.ReadLine();
  26.             int x = Int32.Parse(s);
  27.             Console.Write("введите y: ");
  28.             string s1 = Console.ReadLine();
  29.             int y = Int32.Parse(s1);
  30.             Console.Write("введите z: ");
  31.             string s2 = Console.ReadLine();
  32.             int z = Int32.Parse(s2);
  33.             Console.Write(GetOctant(x, y, z));
  34.             Console.ReadKey();
  35.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы