Лучшие помощники
2 апреля 2023 21:58
837

Красный, синий и желтый называются основными цветами, потому что их нельзя получить путем смешения других цветов. При смешивании двух основных цветов получается вторичный цвет:если смешать красный и синий, то получится фиолетовый;

если смешать красный и желтый, то получится оранжевый;

если смешать синий и желтый, то получится зеленый.

Напишите программу, которая считывает названия двух основных цветов для смешивания. Если пользователь вводит что-нибудь помимо названий «красный», «синий» или «желтый», то программа должна вывести сообщение об ошибке. В противном случае программа должна вывести название вторичного цвета, который получится в результате.


Формат входных данных

На вход программе подаются две строки, каждая на отдельной строке.


Формат выходных данных

Программа должна вывести полученный цвет смешения либо сообщение «ошибка цвета», если введён был не цвет.


Примечание 1. Если смешать красный и красный, то получится красный и т.д.

1 ответ
Посмотреть ответы
Ответ:
// код написан на языке C#
using System;

namespace coloradds
{
class Program
{
static void Main(string[] args)
{
string[] maincolors = new string[3] { "красный", "синий", "желтый" };

string color1 = Console.ReadLine();
string color2 = Console.ReadLine();

if (Array.IndexOf(maincolors, color1) == -1 || Array.IndexOf(maincolors, color2) == -1)
{
Console.WriteLine("ошибка цвета");
} else
{
if(color1 == color2) Console.WriteLine(color1);
else
{
if((color1 == maincolors[0] && color2 == maincolors[1]) || (color1 == maincolors[1] && color2 == maincolors[0]))
{
Console.WriteLine("фиолетовый");
}
if ((color1 == maincolors[0] && color2 == maincolors[2]) || (color1 == maincolors[2] && color2 == maincolors[0]))
{
Console.WriteLine("оранжевый");
}
if ((color1 == maincolors[2] && color2 == maincolors[1]) || (color1 == maincolors[1] && color2 == maincolors[2]))
{
Console.WriteLine("зеленый");
}
}
}
Console.ReadKey();
}
}
}

Объяснение:
  • using System; - подключаем стандартную библиотеку для работы с консолью
string[] maincolors = new string[3] { "красный", "синий", "желтый" };
Создаем массив типа в котором будут хранится основные цвета.
В переменные типа string color1, color2 с консоли в водим название цвета с помощью конструкции:
  • string color1 = Console.ReadLine();
  • string color2 = Console.ReadLine();
Функция Array.IndexOf(maincolors, color1) позволяет найти в массиве элемент и возвращает его индекс и если индекс не найден, то функция вернет минус единицу, то есть если веденной строке есть неверно введенный цвет или другое слово, то программа выдаст единицу сработает if и программа напечатает, что есть «ошибка цвета» (Console.WriteLine("ошибка цвета");).
Если программа не обнаружила ошибки цвета, то попадаем в else.
  • if(color1 == color2) Console.WriteLine(color1);
Данная строчка проверят ввод одинаковых цветов и если это так, то программа выводит данный цвет и по-сути заканчивает свою работу, а если нет, то мы попадаем в else.
Условие if записано следующим образом:
if((color1 == maincolors[0] && color2 == maincolors[1]) || (color1 == maincolors[1] && color2 == maincolors[0]))
У нас возможна комбинация ввода:
  • красный и синий
  • синий и красный
И если это так хотя бы одна из комбинаций, то есть логическое или
(||), то выполняем if и выводим в консоль соответствующий цвет.
Для проверки берем конкретный цвет из массива maincolors, то есть пишем maincolors[i], где i тот цвет который нам необходим.
Аналогично написаны и два последrющих if.
В конце строчка Console.ReadKey(); написана для того, что консоль сразу не закрывалась после выполнения программы.
#SPJ3
0
·
Хороший ответ
4 апреля 2023 21:58
Остались вопросы?
Найти нужный