script.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567
  1. // ДЗ: Операции, Типы, Сравнение, Условия и Логические операторы 1.
  2. // assign: evaluation
  3. // let a = 5; // выражение
  4. // let b, c;
  5. // b = (a * 5); // выражение
  6. // b = (c = (b/2)); // выражение
  7. // semicolon: error
  8. // first
  9. // const arr = [1, 2, 3, 4, 5, 6, 7];
  10. // for (let i = 0 i < arr.length i++)
  11. // second
  12. // if (a === 6) console.log("a is 6") else console.log(`a is ${a}`);
  13. // semicolon: mistake
  14. // first
  15. // var myFn = function () {
  16. // alert("Surprise!");
  17. // }
  18. // (function () {
  19. // alert("Surprise!2");
  20. // })()
  21. // Number: age
  22. // let age = prompt("Введите ваш возраст");
  23. // let curYear = new Date().getFullYear();
  24. // if (+age && curYear - +age < curYear) {
  25. // if (curYear - +age > 0) {
  26. // alert(`Вы родились в ${curYear - +age} году`);
  27. // } else {
  28. // alert("Столько не живут!");
  29. // }
  30. // } else {
  31. // alert("Вы ввели некорректное значение");
  32. // }
  33. // Number: temperature
  34. // let value = confirm(
  35. // "Нажмите OK, если хотите перевести Фаренгейты в Цельсии, отмена - если Цельсии в Фаренгейты"
  36. // );
  37. // let fahrenheit, celsius;
  38. // if (value) {
  39. // fahrenheit = +prompt("Введите температуру в Фаренгейтах");
  40. // celsius = (fahrenheit - 32) / 1.8;
  41. // alert(`${fahrenheit} Фаренгейтов - ${celsius} Цельсий`);
  42. // } else {
  43. // celsius = +prompt("Введите температуру в Цельсиях");
  44. // fahrenheit = celsius * 1.8 + 32;
  45. // alert(`${celsius} Цельсий - ${fahrenheit} Фаренгейтов`);
  46. // }
  47. // Number: divide
  48. // let fNum = prompt("Введите первое число");
  49. // let sNum = prompt("Введите второе число");
  50. // if (!+fNum || !+sNum || !fNum.trim() || !sNum.trim()) {
  51. // alert("Вы ввели некорректно или не ввели число(-а)");
  52. // } else {
  53. // fNum = +fNum.trim();
  54. // sNum = +sNum.trim();
  55. // alert(
  56. // `Целая часть от деления: ${
  57. // fNum / sNum >= 0 ? Math.floor(fNum / sNum) : Math.ceil(fNum / sNum)
  58. // }`
  59. // );
  60. // }
  61. // Number: odd
  62. // let num = prompt("Введите число для проверки");
  63. // if (!+num || !num.trim()) {
  64. // alert("Вы ввели некорректное число");
  65. // } else {
  66. // if (+num % 2 === 0) {
  67. // alert("Введённое число - чётное");
  68. // } else {
  69. // alert("Введённое число - нечётное");
  70. // }
  71. // }
  72. // String: greeting
  73. // let name = prompt("Как вас зовут?", "user");
  74. // alert(`Привет, ${name.trim()}!`);
  75. // String: lexics
  76. // let someText = prompt("Type some text");
  77. // const badWords = ["fuck", "shit", "asshole", "bastard"];
  78. // const textArray = someText.trim().split(" ");
  79. // let count = 0;
  80. // for (let word of textArray) {
  81. // if (badWords.includes(word.trim().toLowerCase())) {
  82. // count++;
  83. // }
  84. // }
  85. // if (count > 0) {
  86. // alert(`You swore ${count} times`);
  87. // } else {
  88. // alert("No bad words found");
  89. // }
  90. // confirm
  91. // let check = confirm("Проверка confirm");
  92. // if (check) {
  93. // alert(`При нажатии ОК в confirm - возвращается ${check}`);
  94. // } else {
  95. // alert(`При нажатии Cancel в confirm - возвращается ${check}`);
  96. // }
  97. // Boolean && Boolean: if
  98. // let born, majority;
  99. // if (confirm("Вы родились в Украине?")) {
  100. // born = "Вы родились в Украине";
  101. // } else {
  102. // born = "Вы родились не в Украине";
  103. // }
  104. // if (confirm("Вам есть 18 лет?")) {
  105. // majority = "Вам есть 18 лет";
  106. // } else {
  107. // majority = "Вам нет 18 лет";
  108. // }
  109. // alert(`${born}\n${majority}`);
  110. // Array: real
  111. // const technique = ["laptop", "television", "computer", "smartphone"];
  112. // const clothes = [
  113. // "hoodie",
  114. // "pants",
  115. // "cap",
  116. // "shoes",
  117. // "sneakers",
  118. // "sweater",
  119. // "costume",
  120. // "sweatshirt",
  121. // "tshirt",
  122. // ];
  123. // const items = [technique, clothes];
  124. // console.log(`My technique: ${items[0]}\nMy clothes: ${items[1]}`);
  125. // Array: booleans
  126. // let born, majority;
  127. // const info = [];
  128. // if (confirm("Вы родились в Украине?")) {
  129. // born = "Вы родились в Украине";
  130. // info.push(born);
  131. // } else {
  132. // born = "Вы родились не в Украине";
  133. // info.push(born);
  134. // }
  135. // if (confirm("Вам есть 18 лет?")) {
  136. // majority = "Вам есть 18 лет";
  137. // info.push(majority);
  138. // } else {
  139. // majority = "Вам нет 18 лет";
  140. // info.push(majority);
  141. // }
  142. // alert(`${info[0]}\n${info[1]}`);
  143. // Array: plus
  144. // let fNum = 12;
  145. // let sNum = 2;
  146. // const array = [fNum, sNum];
  147. // array[2] = fNum + sNum;
  148. // console.log(array);
  149. // Array: plus string
  150. // let fStr = "My";
  151. // let sStr = "name";
  152. // let tStr = "is";
  153. // const arrStr = [fStr, sStr, tStr];
  154. // arrStr[3] = fStr + " " + sStr + " " + tStr;
  155. // console.log(arrStr);
  156. // Object: real
  157. // const residentialArea = {
  158. // privateHouses: {
  159. // roof: "tile",
  160. // wall: "brick",
  161. // floor: "parquete",
  162. // },
  163. // flats: {
  164. // roof: "concrete slab",
  165. // wall: "concrete",
  166. // floor: "parquete",
  167. // },
  168. // };
  169. // Object: change
  170. // residentialArea["privateHouses"]["roof"] = "slate";
  171. // residentialArea.flats.wall = "brick";
  172. // console.log(residentialArea);
  173. // Comparison if
  174. // var age = +prompt("Сколько вам лет?", "");
  175. // if (age > 0 && age < 18) {
  176. // alert("школьник");
  177. // } else {
  178. // if (age > 18 && age < 30) {
  179. // alert("молодеж");
  180. // } else {
  181. // if (age > 30 && age < 45) {
  182. // alert("зрелость");
  183. // } else {
  184. // if (age > 45 && age < 60) {
  185. // alert("закат");
  186. // } else {
  187. // if (age > 60) {
  188. // alert("как пенсия?");
  189. // } else {
  190. // alert("то ли киборг, то ли ошибка");
  191. // }
  192. // }
  193. // }
  194. // }
  195. // }
  196. // var age = +prompt("Сколько вам лет?", "");
  197. // if (age > 0 && age < 18) {
  198. // alert("школьник");
  199. // } else if (age < 30) {
  200. // alert("молодеж");
  201. // } else if (age < 45) {
  202. // alert("зрелость");
  203. // } else if (age < 60) {
  204. // alert("закат");
  205. // } else if (age > 60) {
  206. // alert("как пенсия?");
  207. // } else {
  208. // alert("то ли киборг, то ли ошибка");
  209. // }
  210. // Comparison: sizes
  211. // const clothes = {
  212. // uaus: {
  213. // S: 6,
  214. // M: 8,
  215. // ML: 10,
  216. // L: 12,
  217. // LXL: 14,
  218. // XL: 16,
  219. // XLXXL: 18,
  220. // XXL: 20,
  221. // },
  222. // };
  223. // let choice = prompt(
  224. // "Введите uaus, если хотите переводить с украинского размера в американский"
  225. // )
  226. // .toLowerCase()
  227. // .trim();
  228. // let size;
  229. // if (choice === "uaus") {
  230. // size = prompt(
  231. // "Введите украинский размер: S, M, ML, L, LXL, XL, XLXXL, XXL для перевода в американский"
  232. // )
  233. // .toUpperCase()
  234. // .trim();
  235. // let ua = clothes?.[choice]?.[size];
  236. // if (ua !== undefined) {
  237. // alert(`Украинский ${size} - американский ${clothes[choice][size]}`);
  238. // } else {
  239. // alert("Вы ввели неправильный размер");
  240. // }
  241. // } else {
  242. // alert("Вы ввели неправильное значение");
  243. // }
  244. // Ternary
  245. // confirm("Какой ваш пол? Нажмите ОК, если вы мужчина, Отмена - если женщина")
  246. // ? alert("Ваш пол - мужской")
  247. // : alert("Ваш пол - женский");
  248. // Синий пояс Number: flats
  249. // let floors = Number.parseInt(prompt("Введите количество этажей в доме").trim());
  250. // if (floors && floors > 0) {
  251. // let flats = Number.parseInt(
  252. // prompt("Введите количество квартир на этаже").trim()
  253. // );
  254. // if (flats && flats > 0) {
  255. // let num = Number.parseInt(
  256. // prompt("Введите номер квартиры, которую хотите найти").trim()
  257. // );
  258. // if (num && num > 0) {
  259. // let entrance =
  260. // num > flats * floors
  261. // ? Math.floor(num / (flats * floors) + 1)
  262. // : Math.floor(num / (flats * floors));
  263. // let flatFloor =
  264. // num > flats * floors
  265. // ? Math.ceil((num % (flats * floors)) / flats)
  266. // : Math.ceil(num / flats);
  267. // alert(`Квартира находится в подъезде №${entrance} на ${flatFloor} этаже`);
  268. // } else {
  269. // alert("Вы ввели неверный номер квартиры!");
  270. // }
  271. // } else {
  272. // alert("Вы ввели неверное количество квартир на этаже!");
  273. // }
  274. // } else {
  275. // alert("Вы ввели неверное количество этажей!");
  276. // }
  277. // Задание на Синий пояс и real data в разделе ниже - я выполнил, но когда заливал репозиторий, то намудрил с перенесением файлов и случайно удалил папку со этими заданиями, осталась только версия кода без них, поэтому заливаю в такой версии. Имена переменных могут конфликтовать, лучше расскоментировать всё поэтапно, чтобы такого не было.
  278. // ДЗ: Операции, Типы, Сравнение, Условия и Логические операторы 2.
  279. // const tasks = [
  280. // "switch: sizes",
  281. // "switch: if",
  282. // "prompt: or",
  283. // "confirm: or this days",
  284. // "confirm: if this days",
  285. // "triple prompt",
  286. // "default: or",
  287. // "default: if",
  288. // "login and password",
  289. // "currency calc",
  290. // "currency calc: improved",
  291. // "currency calc: two rates",
  292. // "currency calc: if",
  293. // "scissors",
  294. // ];
  295. // console.log(tasks.map((el) => el));
  296. // const task = prompt("Введите задание, которое хотите выполнить.");
  297. // switch (task) {
  298. // case "switch: sizes":
  299. // let sizeUA = prompt(
  300. // "Введите украинский размер (XS по умолчанию): S, M, ML, L, LXL, XL, XLXXL, XXL для перевода в американский"
  301. // )
  302. // .toUpperCase()
  303. // .trim();
  304. // let sizeUS;
  305. // switch (sizeUA) {
  306. // case "S":
  307. // sizeUS = 6;
  308. // break;
  309. // case "M":
  310. // sizeUS = 8;
  311. // break;
  312. // case "ML":
  313. // sizeUS = 10;
  314. // break;
  315. // case "L":
  316. // sizeUS = 12;
  317. // break;
  318. // case "LXL":
  319. // sizeUS = 14;
  320. // break;
  321. // case "XL":
  322. // sizeUS = 16;
  323. // break;
  324. // case "XLXXL":
  325. // sizeUS = 18;
  326. // break;
  327. // case "XXL":
  328. // sizeUS = 20;
  329. // break;
  330. // default:
  331. // sizeUA = "XS";
  332. // sizeUS = 4;
  333. // }
  334. // alert(`Украинский ${sizeUA} - американский ${sizeUS} размер.`);
  335. // break;
  336. // case "switch: if":
  337. // let color = prompt("Введите цвет", "");
  338. // if (color === "red") {
  339. // document.write("<div style='background-color: red;'>красный</div>");
  340. // } else if (color === "black") {
  341. // document.write(
  342. // "<div style='background-color: black; color: white;'>черный</div>"
  343. // );
  344. // } else if (color === "blue") {
  345. // document.write("<div style='background-color: blue;'>синий</div>");
  346. // } else if (color === "green") {
  347. // document.write("<div style='background-color: green;'>зеленый</div>");
  348. // } else {
  349. // document.write("<div style='background-color: gray;'>Я не понял</div>");
  350. // }
  351. // break;
  352. // case "prompt: or":
  353. // let age =
  354. // +prompt("Введите ваш возраст") || alert("Вы ввели некорректное значение");
  355. // let curYear = new Date().getFullYear();
  356. // console.log(age);
  357. // if (age > 0 && age < 150) {
  358. // alert(`Вы родились в ${curYear - +age} году`);
  359. // }
  360. // break;
  361. // case "confirm: or this days":
  362. // confirm("Шопинг?") ? alert("Go") : alert("Не хочешь, как хочешь");
  363. // break;
  364. // case "confirm: if this days":
  365. // if (prompt("Шопинг?") === "Да") {
  366. // alert("Go");
  367. // } else {
  368. // alert("Не хочешь, как хочешь");
  369. // }
  370. // break;
  371. // case "triple prompt":
  372. // const name1 = prompt("Введите ваше имя");
  373. // const surname1 = prompt("Введите вашу фамилию");
  374. // const patronymic1 = prompt("Введите ваше отчество");
  375. // alert(`Ваше ФИО: ${surname1} ${name1} ${patronymic1}`);
  376. // break;
  377. // case "default: or":
  378. // const name2 = prompt("Введите ваше имя") || "Имя";
  379. // const surname2 = prompt("Введите вашу фамилию") || "Фамилия";
  380. // const patronymic2 = prompt("Введите ваше отчество") || "Отчество";
  381. // alert(`Ваше ФИО: ${surname2} ${name2} ${patronymic2}`);
  382. // break;
  383. // case "default: if":
  384. // const name3 = prompt("Введите ваше имя");
  385. // const surname3 = prompt("Введите вашу фамилию");
  386. // const patronymic3 = prompt("Введите ваше отчество");
  387. // if (!name3) {
  388. // name3 = "Имя";
  389. // } else if (!surname3) {
  390. // surname3 = "Фамилия";
  391. // } else if (!patronymic3) {
  392. // patronymic3 = "Отчество";
  393. // }
  394. // alert(`Ваше ФИО: ${surname3} ${name3} ${patronymic3}`);
  395. // break;
  396. // case "login and password":
  397. // const rightLogin = "admin";
  398. // const rightPassword = "qwerty";
  399. // const login = prompt("Пожалуйста, введите логин");
  400. // const password = prompt("Пожалуйста, введите пароль");
  401. // if (login === rightLogin && password === rightPassword) {
  402. // alert("Данные введены правильно");
  403. // } else {
  404. // alert("Ошибка. Вы ввели неверные данные");
  405. // }
  406. // case "currency calc":
  407. // case "currency calc: improved":
  408. // const calcCur = prompt(
  409. // "Введите usd, если хотите перевести в доллары, eur - в евро (курс на 04.11)"
  410. // )
  411. // .trim()
  412. // .toLowerCase();
  413. // const uah = +prompt("Введите величину в гривнах, чтобы конвертировать");
  414. // switch (calcCur) {
  415. // case "usd":
  416. // alert(`${uah} UAH = ${(uah / 26.2).toFixed(3)} USD`);
  417. // break;
  418. // case "eur":
  419. // alert(`${uah} UAH = ${(uah / 30.26).toFixed(3)} EUR`);
  420. // break;
  421. // default:
  422. // alert("Вы ввели неверную валюту для конвертации");
  423. // }
  424. // case "currency calc: two rates":
  425. // const calcCur1 = prompt(
  426. // "Введите usd, если хотите перевести в доллары, eur - в евро (курс на 04.11)"
  427. // )
  428. // .trim()
  429. // .toLowerCase();
  430. // let message, result;
  431. // const uah1 = +prompt("Введите величину в гривнах, чтобы конвертировать");
  432. // switch (calcCur1) {
  433. // case "usd":
  434. // result = (uah1 / 26.1961).toFixed(3);
  435. // message = `${uah1} UAH = ${result} USD`;
  436. // break;
  437. // case "eur":
  438. // result = (uah1 / 30.2096).toFixed(3);
  439. // message = `${uah1} UAH = ${result} EUR`;
  440. // break;
  441. // default:
  442. // alert("Вы ввели неверную валюту для конвертации.");
  443. // }
  444. // confirm(
  445. // `Нажмите ОК, если вы хотите перевести ${calcCur1} в курс на покупку, Отмена - ${calcCur1} в курс на продажу`
  446. // )
  447. // ? alert(`Курс на покупку | ${message}`)
  448. // : calcCur1 === "usd"
  449. // ? alert(`Курс на продажу | ${uah} UAH = ${(uah / 26.382).toFixed(3)} USD`)
  450. // : calcCur1 === "eur"
  451. // ? alert(
  452. // `Курс на продажу | ${uah} UAH = ${(uah / 30.5331).toFixed(3)} EUR`
  453. // )
  454. // : alert(
  455. // "Произошла ошибка. Введена неверная величина в гривнах или неверная валюта для конвертации."
  456. // );
  457. // break;
  458. // case "currency calc: if":
  459. // const calcCur2 = prompt(
  460. // "Введите usd, если хотите перевести в доллары, eur - в евро (курс на 04.11)"
  461. // )
  462. // .trim()
  463. // .toLowerCase();
  464. // let message1, result1;
  465. // const uah2 = +prompt("Введите величину в гривнах, чтобы конвертировать");
  466. // if (calcCur2 === "usd") {
  467. // result1 = (uah2 / 26.1961).toFixed(3);
  468. // message1 = `${uah2} UAH = ${result1} USD`;
  469. // } else if (calcCur2 === "eur") {
  470. // result1 = (uah2 / 30.2096).toFixed(3);
  471. // message1 = `${uah2} UAH = ${result1} EUR`;
  472. // } else {
  473. // alert("Вы ввели неверную валюту для конвертации.");
  474. // }
  475. // if (
  476. // confirm(
  477. // `Нажмите ОК, если вы хотите перевести ${calcCur} в курс на покупку, Отмена - ${calcCur} в курс на продажу`
  478. // )
  479. // ) {
  480. // alert(`Курс на покупку | ${message}`);
  481. // } else if (calcCur === "usd") {
  482. // alert(`Курс на продажу | ${uah} UAH = ${(uah / 26.382).toFixed(3)} USD`);
  483. // } else if (calcCur === "eur") {
  484. // alert(`Курс на продажу | ${uah} UAH = ${(uah / 30.5331).toFixed(3)} EUR`);
  485. // } else {
  486. // alert(
  487. // "Произошла ошибка. Введена неверная величина в гривнах или неверная валюта для конвертации."
  488. // );
  489. // }
  490. // break;
  491. // case "scissors":
  492. // let choice = prompt("Игра камень-ножницы-бумага. Введите свой ход")
  493. // .trim()
  494. // .toLowerCase();
  495. // const options = ["камень", "ножницы", "бумага"];
  496. // const random = options[Math.round(Math.random() * options.length)];
  497. // alert(`Компьютер выбрал: ${random}`);
  498. // if (choice === random) {
  499. // alert("Результат - ничья!");
  500. // } else if (choice === "камень") {
  501. // if (random === "ножницы") {
  502. // alert("Результат - вы выиграли!");
  503. // } else if (random === "бумага") {
  504. // alert("Результат - компьютер выиграл!");
  505. // }
  506. // } else if (choice === "ножницы") {
  507. // if (random === "бумага") {
  508. // alert("Результат - вы выиграли!");
  509. // } else if (random === "камень") {
  510. // alert("Результат - компьютер выиграл!");
  511. // }
  512. // } else if (choice === "бумага") {
  513. // if (random === "камень") {
  514. // alert("Результат - вы выиграли!");
  515. // } else if (random === "ножницы") {
  516. // alert("Результат - компьютер выиграл!");
  517. // }
  518. // }
  519. // break;
  520. // default:
  521. // alert("Введённого задания не найдено в списке существующих");
  522. // }