// Дополнительное задание // Слепить все задания в один текст, таким образом что бы вначале происходил ввод названия задания, // каждое задание при этом находится в отдельном case оператора switch. // Например case "currency calc" для калькулятора обмена валют. do { var Task = prompt('Введите название задания, которое хотите просмотреть.\n\nСписок выполненных заданий: \n1. switch: sizes\n2. switch: if\n3. prompt: or\n4. confirm: or this days\n5. confirm: if this days\n6. triple prompt\n7. default: or\n8. default: if\n9. login and password\n10. currency calc\n11. currency calc: improved\n12. currency calc: two rates\n13. currency calc: if\n14. scissors\n15. Задание на синий пояс\n16. real data').toLowerCase(); switch (Task) { case 'switch: sizes': // Сделайте задание Comparison: sizes из предыдущего ДЗ используя switch. var clothesSize = +prompt('Введите размер одежды по украинским меркам:'); switch (true) { case (clothesSize >= 40 && clothesSize < 42): alert('S'); break; case (clothesSize >= 42 && clothesSize < 46): alert('M'); break; case (clothesSize >= 46 && clothesSize < 50): alert('L'); break; case (clothesSize >= 50 && clothesSize < 54): alert('XL'); break; case (clothesSize == 54): alert('XXL'); break; default: alert('Тут что-то не так...'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case '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("
Я не понял
"); }*/ if (color == 'red') { document.write("
красный
"); document.write("
черный
"); } else if (color == 'black') { document.write("
черный
"); } else if (color == 'blue') { document.write("
синий
"); document.write("
зеленый
"); } else if (color == 'green') { document.write("
зеленый
"); } else { document.write("
Я не понял
"); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'prompt: or': // Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert) если пользователь не введет возраст // или нажмет отмену (т. е. prompt выдаст пустую строку или null, интерпретируемую как false). var age = (+prompt('Сколько вам сейчас лет?') || alert('Ошибка, возраст не указан!')); var YearOfBirth = 2022 - age; alert(YearOfBirth || 'Ошибка, возраст не указан!'); var Continue = window.confirm('Вы хотите продолжить?'); break; case 'confirm: or this days': // C помощью этого же трюка сделайте капризного робота, который в confirm спрашивает "шопинг?", // а в случае отказа - выводить alert "ты - бяка". var Shopping = window.confirm('Шоппинг?'); alert(Shopping || 'ты - бяка'); var Continue = window.confirm('Вы хотите продолжить?'); break; case 'confirm: if this days': // Сделать тоже самое с помощью if. var Shopping = window.confirm('Шоппинг?'); if (Shopping == true) { alert('Yay!'); } else { alert('ты - бяка'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'triple prompt': // Трижды вызывать prompt, сохранить в переменные фамилию, имя и отчество. Вывести ФИО c помощью alert. var Surname = prompt('Surname:'); var Name = prompt('Name:'); var Fathername = prompt('Fathername:'); alert(Surname + ' ' + Name + ' ' + Fathername); var Continue = window.confirm('Вы хотите продолжить?'); break; case 'default: or': // Используя ИЛИ || добавьте имена по умолчанию, которые будут сохраняться во внутренних переменных // если пользователь ввел пустую строку или нажал "Отмена". // Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов" var Surname = (prompt('Surname:') || "Иванов"); var Name = (prompt('Name:') || "Иван"); var Fathername = (prompt('Fathername:') || "Иванович"); alert(Surname + ' ' + Name + ' ' + Fathername); var Continue = window.confirm('Вы хотите продолжить?'); break; case 'default: if': // Сделайте тоже самое с помощью if и else var Surname = prompt('Surname:'); var Name = prompt('Name:'); var Fathername = prompt('Fathername:'); if (Surname == null) { Surname = "Иванов"; } if (Name == null) { Name = "Иван"; } if (Fathername == null) { Fathername = "Иванович"; } alert(Surname + ' ' + Name + ' ' + Fathername); var Continue = window.confirm('Вы хотите продолжить?'); break; case 'login and password': // Напишите код, который спрашивает логин, проверяет его на верность, // в случае если логин верен, просит ввести пароль и проверяет его. // В случае несовпадения логина или пароля выводить alert с текстом ошибки. // В случае успешного логина - alert с поздравлением. Правильные логин: admin и пароль: qwerty. // Используйте вложенные if и else. var login = prompt('Enter login:'); var password = prompt('Enter password'); if (login != 'admin') { alert('Wrong login!') } else { if (password == 'qwerty') { alert('Congratulations!'); } else { alert('Wrong password!') } } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'currency calc': // Калькулятор обмена валют. // Первый prompt спрашивает валюту: "usd" или "eur". // С помощью switch установите обменный курс для валюты, выбранной пользователем, после чего // спросите величину и переведите её из гривны в выбранную на первом prompt валюту. // Выведите результат в alert() var Currency = prompt('usd or eur?'); switch (Currency) { case 'usd': var Amount = prompt('Enter the amount of usd to be converted:'); alert((Amount * 29.60).toFixed(4) + '$'); break; case 'eur': var Amount = prompt('Enter the amount of eur to be converted:'); alert((Amount * 31.08).toFixed(4) + '€'); break; default: alert('Converting issue, please check the entered currency!'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'currency calc: improved': // Улучшить предыдущее задание: сделать возможность ввода валюты // любыми буквами (usd, uSd, USD), используйте str.toLowerCase(). var Currency = prompt('usd or eur?').toLowerCase(); switch (Currency) { case 'usd': var Amount = prompt('Enter the amount of usd to be converted:'); alert((Amount * 29.60).toFixed(4) + '$'); break; case 'eur': var Amount = prompt('Enter the amount of eur to be converted:'); alert((Amount * 31.08).toFixed(4) + '€'); break; default: alert('Converting issue, please check the entered currency!'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'currency calc: two rates': // Добавить возможность выбора обменного курса на продажу и покупку. // Используйте confirm для ввода пользователя и тернарный оператор для величины курса. var Currency = prompt('usd or eur?').toLowerCase(); var Amount; switch (Currency) { case 'usd': window.confirm('Do you want to buy the currency?') ? ( Amount = prompt('Enter the amount of $ to be converted:'), alert((Amount * 35.5058).toFixed(4) + '$') ) : (Amount = prompt('Enter the amount of $ to be converted:'), alert((Amount * 35.6328).toFixed(4) + '$')); break; case 'eur': window.confirm('Do you want to buy the currency?') ? ( Amount = prompt('Enter the amount of € to be converted:'), alert((Amount * 37.3050).toFixed(4) + '€') ) : (Amount = prompt('Enter the amount of € to be converted:'), alert((Amount * 37.6362).toFixed(4) + '€')); break; default: alert('Converting issue, please check the entered currency!'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'currency calc: if': // Сделать тоже самое на if var Currency = prompt('usd or eur?').toLowerCase(); var Amount; switch (Currency) { case 'usd': var BuySell = window.confirm('Do you want to buy the currency?'); if (BuySell == true) { Amount = prompt('Enter the amount of $ to be converted:'); alert((Amount * 35.5058).toFixed(4) + '$'); } else { Amount = prompt('Enter the amount of $ to be converted:'); alert((Amount * 35.6328).toFixed(4) + '$'); } break; case 'eur': var BuySell = window.confirm('Do you want to buy the currency?');; if (BuySell == true) { Amount = prompt('Enter the amount of € to be converted:'); alert((Amount * 37.3050).toFixed(4) + '€'); } else { Amount = prompt('Enter the amount of € to be converted:'); alert((Amount * 37.6362).toFixed(4) + '€'); } break; default: alert('Converting issue, please check the entered currency!'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'scissors': // Сделайте игру "камень-ножницы-бумага". // Пользователь вводит свой вариант через prompt, программа генерирует свой вариант через Math.random() // и выводит через alert. Следующий alert выводит имя победителя или "ничья" // 'Paper' > 'Stone'; // 'Paper' < 'Scissors'; // 'Scissors' < 'Stone'; do { var botVariables = ['Stone', 'Scissors', 'Paper']; var player = prompt('Enter Stone, Scissors or Paper'); var bot = botVariables[Math.floor(Math.random() * botVariables.length)]; alert(bot); if (player == bot) { alert('Ничья.'); } else if (player == 'Stone' && bot == 'Scissors' || player == 'Scissors' && bot == 'Paper' || player == 'Paper' && bot == 'Stone') { alert('You win!'); } else if (bot == 'Stone' && player == 'Scissors' || bot == 'Scissors' && player == 'Paper' || bot == 'Paper' && player == 'Stone') { alert('You lose!'); } else { alert('Something\'s gone wrong...'); } var doPlay = window.confirm('Do you want to replay?'); } while (doPlay == true); var Continue = window.confirm('Вы хотите продолжить?'); break; case 'Задание на синий пояс': // Сделать задания обмена валют используя ассоциативный массив (объект) подобной структуры. // Добавьте дополнительные поля при надобности. Для обращения к нужному полю используйте []. let ratios = { usdSell: 35.6328, usdBuy: 35.5058, eurSell: 37.6362, eurBuy: 37.3050, } var Currency = prompt('usd or eur?').toLowerCase(); var Amount; switch (Currency) { case 'usd': window.confirm('Do you want to buy the currency?') ? ( Amount = prompt('Enter the amount of $ to be converted:'), alert((Amount * ratios['usdBuy']).toFixed(4) + '$') ) : (Amount = prompt('Enter the amount of $ to be converted:'), alert((Amount * ratios['usdSell']).toFixed(4) + '$')); break; case 'eur': window.confirm('Do you want to buy the currency?') ? ( Amount = prompt('Enter the amount of € to be converted:'), alert((Amount * ratios['eurBuy']).toFixed(4) + '€') ) : (Amount = prompt('Enter the amount of € to be converted:'), alert((Amount * ratios['eurSell']).toFixed(4) + '€')); break; default: alert('Converting issue, please check the entered currency!'); } var Continue = window.confirm('Вы хотите продолжить?'); break; case 'real data': // Иcпользуя заготовку ниже реализуйте перевод валют с реальными данными. alert('Press \'Esc\' or \'Cancel\' 4 times(it is a temporary bug, idk how to fix)'); fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json()) .then(data => { var Currency = prompt('Enter the currency code in ISO 4217 standart.').toUpperCase(); var Amount; Amount = prompt('Enter the amount of $ to be converted:'); alert((Amount * data.rates[Currency]).toFixed(4) + ' ' + Currency); }); var Continue = window.confirm('Вы хотите продолжить?'); default: alert('Что-то пошло не так...\nПопробуйте еще раз.'); Continue = true; } } while (Continue == true);