//switch: sizes //Сделайте задание Comparison: sizes из предыдущего ДЗ используя switch const changeSystem = () => { const value = prompt( 'write down size of jeans in measure USA from 6 to 16', '' ); if (value.trim() === '') return changeSystem(); let usaSystemToRussian; switch (Number(value)) { case 6: usaSystemToRussian = 40; break; case 8: usaSystemToRussian = 42; break; case 10: usaSystemToRussian = 44; break; case 12: usaSystemToRussian = 46; break; case 14: usaSystemToRussian = 48; break; case 16: usaSystemToRussian = 50; break; default: usaSystemToRussian = null; } usaSystemToRussian ? alert(`size in Ukraine equal to ${usaSystemToRussian}`) : changeSystem(); }; //switch: if //Перепишите пример ниже, используя if. // let color = prompt('Введите цвет', ''); // switch (color) { // case 'red': // document.write("
красный
"); // case 'black': // document.write( // "
черный
" // ); // break; // case 'blue': // document.write("
синий
"); // case 'green': // document.write("
зеленый
"); // break; // default: // document.write("
Я не понял
"); // } const switchIf = () => { let color = prompt('Введите цвет', ''); if (color === 'red') { document.write("
красный
"); } else if (color === 'black') { document.write( "
черный
" ); } else if (color === 'blue') { document.write("
синий
"); } else if (color === 'green') { document.write("
Я не понял
"); } }; //prompt: or //Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert) //если пользователь не введет возраст или нажмет отмену //(т.е.prompt выдаст пустую строку или null, интерпретируемую как false). const age = (message) => { const value = prompt(`How old are you ${message}`); if (value === null || value.trim() === '') return; Number(value) ? alert(`you was born in ${new Date().getFullYear() - value}`) : age('? Please file field!!!'); }; //confirm: or this days //C помощью этого же трюка сделайте капризного робота, который в confirm //спрашивает "шопинг?", а в случае отказа - выводить alert "ты - бяка". const robotConfirm = () => { const value = confirm(`Do you wanna shop?`); switch (value) { case false: alert(`Are you coddled girl!!!`); break; case true: alert(`Keep going daddy!!!`); break; default: console.log(`whoops`); } }; //confirm: if this days //Сделать тоже самое с помощью if. const robotConfirmIf = () => { const value = confirm(`Do you wanna shop?`); if (value === false) { alert(`are you coddled girl!!!`); } else { alert(`Keep going`); } }; //triple prompt //Трижды вызывать prompt, сохранить в переменные фамилию, //имя и отчество.Вывести ФИО c помощью alert. const triplePrompt = () => { const secondName = prompt('Write down your second name please'); const firstName = prompt('write down your first name please'); const patronymic = prompt('write down your patronymic please'); if (!secondName || !firstName || !patronymic) return triplePrompt(); alert(`${secondName} ${firstName} ${patronymic}`); }; //default: or //Используя ИЛИ || добавьте имена по умолчанию, которые будут сохраняться во //внутренних переменных если пользователь ввел пустую строку или нажал //"Отмена".Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов" const triplePromptOr = () => { const secondName = prompt('Write down your second name please') || 'Golovko'; const firstName = prompt('write down your first name please') || 'Svetlana'; const patronymic = prompt('write down your patronymic please') || 'Fedorovna'; alert(`${secondName} ${firstName} ${patronymic}`); }; //default: if //Сделайте тоже самое с помощью if и else const triplePromptIf = () => { const secondName = prompt('Write down your second name please'); const firstName = prompt('write down your first name please'); const patronymic = prompt('write down your patronymic please'); if ((secondName, firstName, patronymic)) { alert(`${secondName} ${firstName} ${patronymic}`); } else { alert('Zubenko Vladimir Viktorovich'); } }; //login and password //Напишите код, который спрашивает логин, проверяет его на верность, //в случае если логин верен, просит ввести пароль и проверяет его.В случае //несовпадения логина или пароля выводить alert с текстом ошибки. //В случае успешного логина - alert с поздравлением.Правильные логин: admin и пароль: qwerty.Используйте вложенные if и else. const LogIn = () => { const rightCredentials = { login: 'Yaho', password: 'Qwerty', }; const login = prompt('Write down your login please', ''); const password = prompt('Write down your password please', ''); if ( login === rightCredentials.login && password === rightCredentials.password ) { alert('Well done you are loged!'); } else { alert('Wrong credentials'); LogIn(); } }; //currency calc //Калькулятор обмена валют. Первый prompt спрашивает валюту: //"usd" или "eur".С помощью switch установите обменный курс для валюты, //выбранной пользователем, после чего спросите величину //и переведите её из гривны в выбранную на первом prompt валюту.Выведите результат в alert() const currencyCalc = () => { let currency = prompt('Choose currency "usd" or "eur"'); switch (currency) { case 'usd': 27; currency = 27; break; case 'eur': 33; currency = 33; break; default: null; } const amountInGrn = prompt('Write down amount in grivnas', ''); console.log(Number(amountInGrn), currency); Number(amountInGrn) && currency ? alert(`It will be ${Number(amountInGrn) / currency}`) : currencyCalc(); }; //currency calc: improved //Улучшить предыдущее задание: сделать возможность ввода валюты //любыми буквами(usd, uSd, USD), используйте str.toLowerCase(). const currencyCalcImprowed = () => { let currency = prompt('Choose currency "usd" or "eur"'); switch (currency.toLowerCase()) { case 'usd': 27; currency = 27; break; case 'eur': 33; currency = 33; break; default: null; } const amountInGrn = prompt('Write down amount in grivnas', ''); console.log(Number(amountInGrn), currency); Number(amountInGrn) && currency ? alert(`It will be ${Number(amountInGrn) / currency}`) : currencyCalcImprowed(); }; //currency calc: two rates //Добавить к возможность выбора обменного курса на продажу и покупку. //Используйте confirm для ввода пользователя и тернарный оператор для величины курса. const currencyCalcTwoRates = () => { const value = prompt('Choose currency "usd" or "eur"'); let currency; switch (value.toLowerCase()) { case 'usd': 27; currency = 27; break; case 'eur': 33; currency = 33; break; default: null; } const amountInGrn = prompt('Write down amount in grivnas', ''); const selOrBay = confirm( 'confrim OK if you want bay or press cancel for sale' ); Number(amountInGrn) && currency ? selOrBay ? alert( `You will bay ${ Number(amountInGrn) / currency } ${value} on yor ${amountInGrn} grivnas` ) : alert( `You need to sell ${ Number(amountInGrn) / (currency - 0.4) } ${value} to get ${amountInGrn} grivnas` ) : currencyCalcTwoRates(); }; //currency calc: if const currencyCalcTwoRatesIf = () => { const value = ( prompt('Choose currency "usd" or "eur"', '') || '' ).toLowerCase(); let currency; const amountInGrn = prompt('Write down amount in grivnas', ''); const selOrBay = confirm( 'confrim OK if you want bay or press cancel for sale' ); if (value === 'usd') { currency = 27; } else if (value === 'eur') { currency = 33; } Number(amountInGrn) && currency ? selOrBay ? alert( `You will bay ${ Number(amountInGrn) / currency } ${value} on yor ${amountInGrn} grivnas` ) : alert( `You need to sell ${ Number(amountInGrn) / (currency - 0.4) } ${value} to get ${amountInGrn} grivnas` ) : currencyCalcTwoRatesIf(); }; //scissors //Сделайте игру "камень-ножницы-бумага". Пользователь вводит свой вариант через prompt, //программа генерирует свой вариант через Math.random() и выводит через alert. //Следующий alert выводит имя победителя или "ничья" const scissorsGame = () => { const value = prompt('Write down a number for play from 1 to 10', ''); Number(value) / 10 > Math.random(value) ? alert('You won') : alert('You lost'); }; //Задание на синий пояс //Сделать задания обмена валют используя ассоциативный массив (объект) //подобной структуры.Добавьте дополнительные поля при надобности //.Для обращения к нужному полю используйте[]. const currencyCalcTwoRatesBlueBelt = () => { const ratios = { usd: 25.6, eur: 29, different: 0.4, }; const value = ( prompt('Choose currency "usd" or "eur"', '') || '' ).toLowerCase(); const currency = ratios[value]; const amountInGrn = prompt('Write down amount in grivnas', ''); const selOrBay = confirm( 'confrim OK if you want bay or press cancel for sale' ); Number(amountInGrn) && currency ? selOrBay ? alert( `You will bay ${ Number(amountInGrn) / currency } ${value} on yor ${amountInGrn} grivnas` ) : alert( `You need to sell ${ Number(amountInGrn) / (currency - ratios.different) } ${value} to get ${amountInGrn} grivnas` ) : currencyCalcTwoRatesBlueBelt(); }; //real data //Иcпользуя заготовку ниже реализуйте перевод валют с реальными данными. const currencyCalcTwoRatesRealData = async () => { try { const ratios = await fetch('https://open.er-api.com/v6/latest/USD') .then((res) => res.json()) .then(({ rates }) => rates); const value = ( prompt('Choose currency "usd" or "eur"', '') || '' ).toUpperCase(); const currency = ratios[value]; const amountInGrn = prompt('Write down amount in grivnas', ''); const selOrBay = confirm( 'confrim OK if you want bay or press cancel for sale' ); Number(amountInGrn) && currency ? selOrBay ? alert( `You will bay ${Number(amountInGrn) / (ratios.UAH / currency)} ${value} on yor ${amountInGrn} grivnas` ) : alert( `You need to sell ${ (currency - 0.05) / Number(amountInGrn) } ${value} to get ${amountInGrn} grivnas` ) : currencyCalcTwoRatesRealData(); } catch (e) { currencyCalcTwoRatesRealData(); } }; //Дополнительное задание //Слепить все задания в один текст, таким образом что бы вначале происходил ввод //названия задания, каждое задание при этом находится в отдельном case оператора //switch.Например case "currency calc" для калькулятора обмена валют. const adiditonalExercise = () => { const expr = prompt(`Write down name of exercise`) || ''; switch (expr.toLowerCase()) { case 'switch: sizes': changeSystem(); break; case 'switch: if': switchIf(); break; case 'prompt: or': age('?'); break; case 'confirm: or this days': robotConfirm(); break; case 'confirm: if this days': robotConfirmIf(); break; case 'triple prompt': triplePrompt(); break; case 'default: or': triplePromptOr(); break; case 'default: if': triplePromptIf(); break; case 'login and password': LogIn(); break; case 'currency calc': currencyCalc(); break; case 'currency calc: improved': currencyCalcImprowed(); break; case 'currency calc: two rates': currencyCalcTwoRates(); break; case 'currency calc: if': currencyCalcTwoRatesIf(); break; case 'scissors': scissorsGame(); break; case 'задание на синий пояс': currencyCalcTwoRatesBlueBelt(); break; case 'real data': currencyCalcTwoRatesRealData(); break; case 'задание на черный пояс': blackBelt(); break; case '': adiditonalExercise(); break; default: alert(`We do not have exercise with it name ${expr}`); adiditonalExercise(); } }; adiditonalExercise(); //Задание на черный пояс function blackBelt() { const value = prompt('Write down a number for play from 1 to 10', ''); Number(value) !== NaN && value !== null ? Number(value) / 10 > Math.random(value) ? alert('You won') : alert('You lost') : blackBelt(); }