Вопрос школьника по предмету Информатика
Очень нужна помощь. Написать код на с#, даю 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 там не нужна. Забыл убрать с другого проекта
Похожие вопросы от пользователей
ПЛАН
1. краткая биография
2. деятельность
3. значение
СРОЧНО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ЗАРАНЕЕ СПАСИБО!)
1)77( 1,1а -3в) — 3,2 ( 4,5в — 50 а ) +99а 2) 1,3 (х+20 у) -40 (0,9у -х) + 63у