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

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

Ответ:
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 там не нужна. Забыл убрать с другого проекта




Конечно, я помогу вам написать код на C# для данной задачи. Вот пример решения:
csharpusing 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;
}
}
}
Обратите внимание, что это простой пример, и в реальных условиях следует учесть дополнительные аспекты, такие как обработка некорректных вводов, более сложные проверки на горизонтальность, и т.д.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili