Вопрос школьника по предмету Информатика
Очень нужна помощь. Написать код на с#, даю 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 там не нужна. Забыл убрать с другого проекта
Похожие вопросы от пользователей
Всем, кто читает это, желаю добра)))
Срочно нужно сочинение на казахском языке… На тему моё хобби… Я очень люблю фотографировать, по этому мне нужно написать сочинение на эту тему… Кто может? Только пожалуйста без переводчика, так как делает ОГРОМНЕЙШИЕ ошибки! Кто может, пожалуйста, помогите… Завтра сдаём зачёт… Заранее огромное человеческое спасибо!
Надеюсь, что найдутся добрые люди…
P. S. Не всегда понимаю о чём речь в тексте… Прошу с переводом…