Вопрос задан 07.07.2023 в 15:56. Предмет Информатика. Спрашивает Романова Ангелина.

Очень нужна помощь. Написать код на с#, даю 75 баллов ♡ Плоскую балку удерживают два винтовых

механизма, закрепленных по краям. Поворот левого механизма на один градус по часовой стрелке поднимает левый край балки на 2 см (против часовой, соответственно, опускает на 2 см). Поворот правого механизма на 1 градус поднимает (или опускает) балку на 3 см. высота механизмов изменяется в пределах от 0 до 100 см. В программе присутствуют три пользователя с разными ролями. 1 – может видеть высоту левого и правого края балки, 2 – крутить левый механизм, 3 – правый. Изначальная высота левого и правого края балки задается случайным образом при создании объекта (в диапазоне от 0 до 100 см). задача – установить балку горизонтально. Должна быть предусмотрена возможность сменить роль пользователя не завершая работу программы.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Москалёв Артём.

Ответ:

using System;

using System.Linq;

class NewClass

{

   static int

       height_left = (new Random()).Next(0, 100),

       height_right = (new Random()).Next(0, 100),

       user_permission = 1;

   static void change_left(int value)

   {

       //по часовой - положительно

       // против - отрицательное.

       if(user_permission == 2)

       {

           int temp = height_left + value * 2;

           if(temp > 100 && temp < 0)

               System.Console.WriteLine("Инструкция не выполнена. Значение выйдет из диапазона [0;100].");

           else    

               height_left = temp;

       }

       else

           System.Console.WriteLine("Переключите пользователя. На данном уровне прав процедура недоступна.");

   }

   static void change_right(int value)

   {

       if(user_permission == 3)

       {

           int temp = height_right + value * 3;

           if(temp > 100 && temp < 0)

               System.Console.WriteLine("Инструкция не выполнена. Значение выйдет из диапазона [0;100].");

           else    

               height_right = temp;

       }

       else

           System.Console.WriteLine("Переключите пользователя. На данном уровне прав процедура недоступна.");

   }

   static void get_height()

   {

       if(user_permission == 1)

           System.Console.WriteLine("Левый конец поднят на {0}.\nПравый конец поднят на {1}.", height_left, height_right);

       else  

           System.Console.WriteLine("Переключите пользователя. На данном уровне прав процедура недоступна.");

   }

   static void change_permission(int value)

   {

       if(value > 0 && value < 4)

           user_permission = value;

       else  

           System.Console.WriteLine("Неверные данные. Доступные уровень прав: [1;3].");

   }

   static void Main()

   {

       int value = 0;

       while(value < 5)

       {

           System.Console.WriteLine("Выберите операцию:");

           System.Console.WriteLine("1. Сменить пользователя.");

           System.Console.WriteLine("2. Изменить высоту левого края.");

           System.Console.WriteLine("3. Изменить высоту правого края.");

           System.Console.WriteLine("4. Проверить высоту концов.");

           System.Console.WriteLine("5. Завершить работу.");

           

           value = int.Parse(System.Console.ReadLine());

           switch(value)

           {

               case 1:

               {

                   System.Console.WriteLine("Введите уровень прав: ");

                   change_permission(int.Parse(System.Console.ReadLine()));

                   break;

               }

               case 2:

               {

                   System.Console.WriteLine("Введите значение: ");

                   change_left(int.Parse(System.Console.ReadLine()));

                   break;

               }

               case 3:

               {

                   System.Console.WriteLine("Введите значение: ");

                   change_right(int.Parse(System.Console.ReadLine()));

                   break;

               }

               case 4:  

               {

                   get_height();

                   break;

               }

               case 5:

                   value = 10;  

                   break;

           }

       }

   }

}

Объяснение:

В общем.

Стандартные значения(высота края) из рандома.

Если я правильно понял суть задачи, то, считаю, выполнил правильно.

Если что, пиши, исправлю.

system.linq там не нужна. Забыл убрать с другого проекта


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я помогу вам написать код на C# для данной задачи. Вот пример решения:

csharp
using System; class Program { static void Main(string[] args) { Random random = new Random(); double leftHeight = random.Next(0, 101); // Изначальная высота левого края балки double rightHeight = random.Next(0, 101); // Изначальная высота правого края балки int currentUserRole = 1; // Изначальная роль - пользователь 1 while (true) { Console.WriteLine($"Высота левого края балки: {leftHeight} см"); Console.WriteLine($"Высота правого края балки: {rightHeight} см"); Console.WriteLine($"Текущий пользователь: {currentUserRole}"); if (currentUserRole == 1) { Console.WriteLine("1 - Просмотреть высоту балки"); Console.WriteLine("2 - Поворот левого механизма"); Console.WriteLine("3 - Поворот правого механизма"); } else if (currentUserRole == 2) { Console.WriteLine("1 - Просмотреть высоту балки"); Console.WriteLine("2 - Поворот левого механизма"); } else if (currentUserRole == 3) { Console.WriteLine("1 - Просмотреть высоту балки"); Console.WriteLine("2 - Поворот правого механизма"); } Console.Write("Выберите действие: "); int choice = int.Parse(Console.ReadLine()); if (choice == 1) { // Просмотр высоты балки continue; } else if (choice == 2) { // Поворот левого механизма if (currentUserRole == 1 || currentUserRole == 2) { Console.Write("Введите угол поворота левого механизма: "); double angle = double.Parse(Console.ReadLine()); leftHeight += angle * 2; } } else if (choice == 3) { // Поворот правого механизма if (currentUserRole == 1 || currentUserRole == 3) { Console.Write("Введите угол поворота правого механизма: "); double angle = double.Parse(Console.ReadLine()); rightHeight += angle * 3; } } // Проверка на горизонтальность балки if (Math.Abs(leftHeight - rightHeight) <= 0.001) { Console.WriteLine("Балка установлена горизонтально!"); break; } // Смена роли пользователя currentUserRole = (currentUserRole % 3) + 1; } } }

Обратите внимание, что это простой пример, и в реальных условиях следует учесть дополнительные аспекты, такие как обработка некорректных вводов, более сложные проверки на горизонтальность, и т.д.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос