Turarbek
@Turarbek
Делаю первые шаги в АйТи

Как решить задачу?

У меня трудности с решение задачи в Яндекс.Практикум. Как решить, пробовал несколько решений, но ясности нечего не дало. Спасибо за помощь!
Условие: Чтобы разделить ввод данных и их обработку, вынесите объявление переменных red, green и blue за пределы функции.
Обратите внимание, что теперь при запуске скрипта диалог prompt() срабатывает, а тело функции бездействует.
Мой код:
function makeColorString(){
console.log(green = +'green');
console.log(bgValue);
var red = 255;
var green = 0;
var blue = 0;
var bgValue = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
var red = prompt('ведите насыщенность красного в виде числа от 0 до 255');
var green = prompt('Введите насыщенность зелёного в виде числа от 0 до 255');
var blue = prompt('Введите насыщенность синего в виде числа от 0 до 255');
var red = prompt ('255');
var green = prompt ('0');
var blue = prompt ('0');
red = Number(red);
blue = Number(blue);
if (isNaN(red)) {
  red = prompt('В качестве значения насыщенности красного вы ввели не число. Пожалуйста, введите число от 0 до 255.', '255');
  red = Number(red);
} else if (red < 0) {
  red = 0;
  console.log ('Наименьшее из возможных чисел — ноль, мы подставили значение 0.');
} else if (red > 255) { 
  red = 255;
  console.log ('Наибольшее возможное число — 255, мы подставили его.');
} else {
  console.log('Вы определили насыщенность красного как ' + red);
}

if (isNaN(green)) {
  green = prompt('В качестве значения насыщенности красного вы ввели не число. Пожалуйста, введите число от 0 до 255.', '0');
  green = Number(green);
} else if (green < 0) { 
  green = 0;
  console.log ('Наименьшее из возможных чисел — ноль, мы подставили значение 0.');
} else if (green > 255) {
  green = 255;
  console.log ('Наибольшее возможное число — 255, мы подставили его.');
} else {
  console.log('Вы определили насыщенность красного как ' + green);
}


if (isNaN(blue)) {
  blue = prompt('В качестве значения насыщенности красного вы ввели не число. Пожалуйста, введите число от 0 до 255.', '0');
  blue = Number(blue);
} else if (blue < 0) {
  blue = 0;
  console.log ('Наименьшее из возможных чисел — ноль, мы подставили значение 0.',);
} else if (blue > 255){
  blue = 255;
  console.log ('Наибольшее возможное число — 255, мы подставили его.');
} else {
  console.log('Вы определили насыщенность красного как ' + blue);
}
console.log(isNaN(red));
console.log(red + blue);
console.log(red + green +blue);
}
  • Вопрос задан
  • 2543 просмотра
Пригласить эксперта
Ответы на вопрос 2
@yastas
Привет! Мы, кстати, поддерживаем студентов много где, если вдруг ещё будут сложности, смело пишите, все пароли-явки вот здесь: https://yandex.ru/support/praktikum/feedback.html :)

Теперь во вашему вопросу: нужно вынести строки

var red = prompt('ведите насыщенность красного в виде числа от 0 до 255');
var green = prompt('Введите насыщенность зелёного в виде числа от 0 до 255');
var blue = prompt('Введите насыщенность синего в виде числа от 0 до 255');

До начала функции makeColorString(). Диалоги prompt — первое, что мы спрашиваем у пользователя, а значит эти три строки должны быть самыми первыми в коде. В конце каждого диалога нужно проставить значения по умолчанию, для red — 255, для green и blue — 0. Строки примут следующий вид:

var red = prompt('Введите насыщенность красного в виде числа от 0 до 255', 255);
var green = prompt('Введите насыщенность зелёного в виде числа от 0 до 255', 0);
var blue = prompt('Введите насыщенность синего в виде числа от 0 до 255', 0);

Все остальные строки, которые относятся к объявлению переменных red, green и blue можно удалить. Это следующие строки:

var red = 255;
var green = 0;
var blue = 0;
var red = prompt ('255');
var green = prompt ('0');
var blue = prompt ('0');

В начале функции makeColorString() объявим переменную var bgValue и её значение:

var bgValue = 'rgb(' + red + ', ' + green + ', ' + blue + ')';

Затем используем приведение к числу в следующем виде:

переменная = Number(переменная) для red и blue, а также переменная = +переменная для green. В блоках if для green и blue нужно проверить тексты — диалоги prompt() и вызовы консоли показывают текст для красного цвета, а должны показывать для синего и зелёного, как названия переменных.

После трех условных конструкций if в конце функции должны идти три вызова console.log():

console.log(bgValue);
console.log(red + green + blue);
console.log(isNaN(red));

И всё :)
Ответ написан
Комментировать
@plushka71
T. K. Держи ответ!
var red = 255;
function makeColorString() {
if (isNaN(red)) {
red = prompt('В качестве значения насыщенности красного вы ввели не число. Пожалуйста, введите число от 0 до 255.', 255);
red = Number(red);
} else if (red < 0) {
red = 0;
console.log('Наименьшее из возможных чисел — ноль, мы подставили значение 0.');
} else if (red > 255) {
red = 255;
console.log('Наибольшее возможное число — 255, мы подставили его.');
} else {
console.log('Вы определили насыщенность красного как ' + red);
}
}
var green = 0;
function makeColorString() {
if (isNaN(green)) {
green = prompt('В качестве значения насыщенности зеленого вы ввели не число. Пожалуйста, введите число от 0 до 255.', 0);
green = Number(green);
} else if (green < 0) {
green = 0;
console.log('Наименьшее из возможных чисел — ноль, мы подставили значение 0.');
} else if (green > 255) {
green = 255;
console.log('Наибольшее возможное число — 255, мы подставили его.');
} else {
console.log('Вы определили насыщенность зелёного как ' + green);
}
}
var blue = 0;
function makeColorString() {
if (isNaN(blue)) {
blue = prompt('В качестве значения насыщенности синего вы ввели не число. Пожалуйста, введите число от 0 до 255.', 0);
blue = Number(blue);
} else if (blue < 0) {
blue = 0;
console.log('Наименьшее из возможных чисел — ноль, мы подставили значение 0.');
} else if (blue > 255) {
blue = 255;
console.log('Наибольшее возможное число — 255, мы подставили его.');
} else {
console.log('Вы определили насыщенность синего как ' + blue);
}
}
var bgValue = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
console.log(bgValue);
var red = prompt('Введите насыщенность красного в виде числа от 0 до 255', '255');
var green = prompt('Введите насыщенность зелёного в виде числа от 0 до 255', '0');
var blue = prompt('Введите насыщенность синего в виде числа от 0 до 255', '0');
red = Number(red);
blue = Number(blue);
green = +green;
console.log(red + blue);
console.log(isNaN(red));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 14:12
30000 руб./за проект
19 апр. 2024, в 14:10
500 руб./за проект