123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- //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("<div style='background-color: red;'>красный</div>");
- // case 'black':
- // document.write(
- // "<div style='background-color: black; color: white;'>черный</div>"
- // );
- // break;
- // case 'blue':
- // document.write("<div style='background-color: blue;'>синий</div>");
- // case 'green':
- // document.write("<div style='background-color: green;'>зеленый</div>");
- // break;
- // default:
- // document.write("<div style='background-color: gray;'>Я не понял</div>");
- // }
- const switchIf = () => {
- let color = prompt('Введите цвет', '');
- if (color === 'red') {
- document.write("<div style='background-color: red;'>красный</div>");
- } else if (color === 'black') {
- document.write(
- "<div style='background-color: black; color: white;'>черный</div>"
- );
- } else if (color === 'blue') {
- document.write("<div style='background-color: blue;'>синий</div>");
- } else if (color === 'green') {
- document.write("<div style='background-color: gray;'>Я не понял</div>");
- }
- };
- //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();
- }
|