HW04.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. // Number: odd
  2. // С помощью prompt узнайте число, введенное пользователем.С помощью if проверьте что число корректно преобразовано из строки.В случае ошибки выведите сообщение Выведите четное число или нет, используя if.
  3. {
  4. const num = +prompt('Введите любое число в строке ниже')
  5. if (isNaN(num)) {
  6. alert('Некорректный формат! Пожалуйста, введите число')
  7. }
  8. if (num % 2 === 0) {
  9. alert(`Число ${num} четное`)
  10. }
  11. if (num % 2 !== 0) {
  12. alert(`Число ${num} нечетное`)
  13. }
  14. }
  15. // String: lexics
  16. // Спросите у пользователя текст, и проверьте его на наличие некорректного слова или нескольких некорректных слов.Используйте метод indexOf(или includes) строки:
  17. {
  18. const sentence = prompt('Введите ниже строку с нецензурной лексикой (пока используйте только слова "нехороший", "злостный"', 'Пример выражения злостный кролик - нехороший кролик')
  19. if (sentence.indexOf("нехороший") !== -1 || sentence.indexOf("злостный") !== -1) {
  20. alert('Матершинник! Нельзя так!')
  21. }
  22. }
  23. // Boolean
  24. // Напишите код, который спрашивает те или иные вопросы с ответом "да" / "нет" с помощью confirm, и сохраняет ответы в переменных.
  25. {
  26. const firstQuestion = confirm('Сейчас зима?')
  27. const secondQuestion = confirm('Ты учишься в школе A-level?')
  28. const thirdQuestion = confirm('Тебе больше 100 лет?')
  29. }
  30. // Boolean: if
  31. // Расширьте предыдущее задание условиями по полученным переменным условиями(if else).Например, если вы спрашиваете пол пользователя с помощью confirm, то по условию сделайте alert("Вы женщина") и alert("Вы мужчина")
  32. {
  33. const firstQuestion = confirm('Сейчас зима?')
  34. if (firstQuestion) {
  35. alert('Выгляни в окно. Ты удивишься')
  36. }
  37. else {
  38. alert('Да, ты прав. Сейчас осень')
  39. }
  40. const secondQuestion = confirm('Ты учишься в школе A-level?')
  41. if (secondQuestion) {
  42. alert('Молодец, скоро станеш сеньйором')
  43. }
  44. else {
  45. alert('А стоило бы записаться!')
  46. }
  47. const thirdQuestion = confirm('Тебе больше 100 лет?')
  48. if (thirdQuestion) {
  49. alert('Ничосе ты хорошо сохранился')
  50. }
  51. else {
  52. alert('Ну и молодец')
  53. }
  54. }
  55. // Comparison: sizes
  56. // Сделайте перевод перевод из нашей системы размеров в американскую или любую на выбор.Используйте prompt, условия сравнения и alert.
  57. {
  58. const sizes = prompt('Введите, размер чего будем ковертировать в американскую систему размеров:\nверхняя одежда, платья, брюки, женское белье, чулки, носки')
  59. if (sizes.includes('верхняя одежда') || sizes.includes('платья') || sizes.includes('брюки')) {
  60. let firstPart = +prompt('Введите размер одежды в Украине')
  61. alert(`Украинский ${firstPart} размер соответствует американскому ${6 + firstPart % 40} размеру`)
  62. }
  63. else if (sizes.includes('женское белье')) {
  64. let secondPart = +prompt('Введите размер одежды в Украине')
  65. alert(`Украинский ${secondPart} размер соответствует американскому ${8 + secondPart % 42} размеру`)
  66. }
  67. else if (sizes.includes('чулки') || sizes.includes('носки')) {
  68. let thirdPart = +prompt('Введите размер одежды в Украине')
  69. alert(`Украинский ${thirdPart} размер соответствует американскому ${8 + (thirdPart % 21) / 2} размеру`)
  70. }
  71. else {
  72. alert('Неправильная категория/мы такое не считаем')
  73. }
  74. }
  75. // Ternary
  76. // Спросите у пользователя пол(confirm).Выведите с помощью alert "Вы мужчина" или "Вы женщина".Используйте тернарный оператор.
  77. {
  78. confirm('Вы женщина?') ? alert('Вы женщина') : alert('Вы мужчина')
  79. }
  80. // Prompt: or
  81. // Для задания Number: age используя ИЛИ || вывести сообщение об ошибке(alert) если пользователь не введет возраст или нажмет отмену(т.е.prompt выдаст пустую строку или null, интерпретируемую как false).
  82. {
  83. const age = prompt('Укажите в поле, сколько вам полных лет (цифрами):')
  84. const bornYear = 2022 - +age
  85. const bornYearAlert = 'Вы родились в ' + bornYear + ' году'
  86. alert(age === null || age === '' ? 'Вы не ввели ваш возраст!' : bornYearAlert)
  87. }
  88. // Confirm: or this days - НУЖНО СПРОСИТЬ, ПРАВИЛЬНО ЛИ СДЕЛАЛ. ИЛИ ДЕЛАТЬ ЧЕРЕЗ ||
  89. // C помощью этого же трюка(использование ИЛИ для запуска альтернативы) сделайте капризного робота, который в confirm спрашивает "шопинг?", а в случае отказа - выводить alert "ты - бяка".
  90. {
  91. confirm('шопинг?') || alert('ты - бяка')
  92. }
  93. // Confirm: if this days
  94. // Сделать тоже самое с помощью if.
  95. {
  96. if (!confirm('шопинг?')) {
  97. alert('ты - бяка')
  98. }
  99. }
  100. // Default: or
  101. // Попросите пользователя ввести ФИО в три разныe переменныe.Используя ИЛИ || добавьте строки по умолчанию, которые будут сохраняться во внутренних переменных если пользователь ввел пустую строку или нажал "Отмена".Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов"
  102. {
  103. const surname = prompt('введите Вашу фамилию в поле ниже') || 'Иванов'
  104. const name = prompt('введите Ваше имя в поле ниже') || 'Иван'
  105. const patronymic = prompt('введите Ваше отчество в поле ниже') || 'Иванович'
  106. alert(`${surname} ${name} ${patronymic}`)
  107. }
  108. // Default: if
  109. // Сделайте тоже самое с помощью if и else
  110. {
  111. let surname = prompt('введите Вашу фамилию в поле ниже')
  112. if (surname === null || surname === '') { surname = 'Иванов' }
  113. else {
  114. surname
  115. }
  116. let name = prompt('введите Ваше имя в поле ниже')
  117. if (name === null || name === '') { name = 'Иван' }
  118. else {
  119. name
  120. }
  121. let patronymic = prompt('введите Ваше отчество в поле ниже')
  122. if (patronymic === null || patronymic === '') { patronymic = 'Иванович' }
  123. else {
  124. patronymic
  125. }
  126. alert(`${surname} ${name} ${patronymic}`)
  127. }
  128. // Login and password
  129. // Напишите код, который спрашивает логин, проверяет его на верность, в случае если логин верен, просит ввести пароль и проверяет его.В случае несовпадения логина или пароля выводить alert с текстом ошибки.В случае успешного логина - alert с поздравлением.Правильные логин: admin и пароль: qwerty.Используйте вложенные if и else.
  130. {
  131. if (prompt('Введите в поле ниже логин') !== 'admin') {
  132. alert('Логин введен неверно')
  133. }
  134. else if (prompt('Введите пароль в поле нижне') !== 'qwerty') {
  135. alert('Пароль введен неверно')
  136. }
  137. else {
  138. alert('Вы успешно авторизовались')
  139. }
  140. }
  141. // Currency exchange
  142. // Попросите пользователя ввести валюту(например, usd, eur, другие валюты добавить по вкусу) с помощью prompt.
  143. // Также поинтересуйтесь купить или продать он желает(используйте confirm).
  144. // С помощью нескольких if и тернарного оператора внутри каждого из if задайте переменную rate, определяющую курс конкретной валюты на покупку или продажу.Обратите внимание на место объявления переменной rate - она должна быть доступна в коде после всех этих if.
  145. // Попросите пользователя ввести сумму на обмен
  146. // Посчитайте и выведите результат путем умножения или деления на rate
  147. // Дайте возможность пользователю вводить названия валют в любом регистре(UsD, eUR).Для этого в if используйте toUpperCase(или toLowerCase)
  148. {
  149. const currency = prompt('Введите искомую валюту в поле ниже:', 'usd/euro/gbp')
  150. const operation = confirm('Продаете?')
  151. let rate
  152. if (currency.toUpperCase() === 'USD') {
  153. operation ? rate = 39 : rate = 40.75
  154. }
  155. if (currency.toUpperCase() === 'EURO') {
  156. operation ? rate = 38 : rate = 39.90
  157. }
  158. if (currency.toUpperCase() === 'GBP') {
  159. operation ? rate = 43.55 : rate = 46.25
  160. }
  161. const summ = +prompt(`Введите в поле ниже, сколько ${currency.toUpperCase()} хотите ${operation ? 'продать' : 'купить'}`)
  162. alert(`${operation ? 'Вы получите на руки' : 'Вам нужно подготовить к продаже'} ${(summ * rate).toFixed(2)} гривен.`)
  163. }
  164. // Scissors
  165. // Сделайте игру "камень-ножницы-бумага".Пользователь вводит свой вариант через prompt, программа генерирует свой вариант через Math.random() и выводит через alert.Следующий alert выводит имя победителя или "ничья"
  166. {
  167. const userOption = prompt('Давай сыграем в камень-ножницы-бумага. Введи в строку ниже свою фигуру').toLowerCase()
  168. let myOption = Math.random()
  169. if (myOption < 0.33) {
  170. myOption = 'камень'
  171. } else if (myOption > 0.66) {
  172. myOption = 'ножницы'
  173. } else {
  174. myOption = 'бумага'
  175. }
  176. alert(`Моя фигура: ${myOption}`)
  177. if (userOption === myOption) {
  178. alert(`у нас ничья: у тебя ${userOption}, у меня ${myOption}`)
  179. } else if ((userOption === 'камень' && myOption === 'бумага') || (userOption === 'ножницы' && myOption === 'камень') || (userOption === 'бумага' && myOption === 'ножницы')) {
  180. alert(`ты проиграл: у тебя ${userOption}, у меня ${myOption}`)
  181. } else if ((userOption === 'камень' && myOption === 'ножницы') || (userOption === 'ножницы' && myOption === 'бумага') || (userOption === 'бумага' && myOption === 'камень')) {
  182. alert(`ты выиграл: у тебя ${userOption}, у меня ${myOption}`)
  183. } else {
  184. alert(`Не читери. Фигура ${userOption} не из этой игры`)
  185. }
  186. }
  187. // Дополнительное задание
  188. // Слепить все задания в один текст, таким образом что бы вначале происходил ввод названия задания, а потом с помощью if запускался код конкретного задания
  189. {
  190. const task = prompt('Введите название задания в строке ниже').toLowerCase()
  191. if (task === 'number: odd') {
  192. const num = +prompt('Введите любое число в строке ниже')
  193. if (isNaN(num)) {
  194. alert('Некорректный формат! Пожалуйста, введите число')
  195. }
  196. if (num % 2 === 0) {
  197. alert(`Число ${num} четное`)
  198. }
  199. if (num % 2 !== 0) {
  200. alert(`Число ${num} нечетное`)
  201. }
  202. } else if (task === 'string: lexics') {
  203. const sentence = prompt('Введите ниже строку с нецензурной лексикой (пока используйте только слова "нехороший", "злостный"', 'Пример выражения злостный кролик - нехороший кролик')
  204. if (sentence.indexOf("нехороший") !== -1 || sentence.indexOf("злостный") !== -1) {
  205. alert('Матершинник! Нельзя так!')
  206. }
  207. } else if (task === 'boolean') {
  208. const firstQuestion = confirm('Сейчас зима?')
  209. const secondQuestion = confirm('Ты учишься в школе A-level?')
  210. const thirdQuestion = confirm('Тебе больше 100 лет?')
  211. } else if (task === 'boolean: if') {
  212. const firstQuestion = confirm('Сейчас зима?')
  213. if (firstQuestion) {
  214. alert('Выгляни в окно. Ты удивишься')
  215. }
  216. else {
  217. alert('Да, ты прав. Сейчас осень')
  218. }
  219. const secondQuestion = confirm('Ты учишься в школе A-level?')
  220. if (secondQuestion) {
  221. alert('Молодец, скоро станеш сеньйором')
  222. }
  223. else {
  224. alert('А стоило бы записаться!')
  225. }
  226. const thirdQuestion = confirm('Тебе больше 100 лет?')
  227. if (thirdQuestion) {
  228. alert('Ничосе ты хорошо сохранился')
  229. }
  230. else {
  231. alert('Ну и молодец')
  232. }
  233. } else if (task === 'comparison: sizes') {
  234. const sizes = prompt('Введите, размер чего будем ковертировать в американскую систему размеров:\nверхняя одежда, платья, брюки, женское белье, чулки, носки')
  235. if (sizes.includes('верхняя одежда') || sizes.includes('платья') || sizes.includes('брюки')) {
  236. let firstPart = +prompt('Введите размер одежды в Украине')
  237. alert(`Украинский ${firstPart} размер соответствует американскому ${6 + firstPart % 40} размеру`)
  238. }
  239. else if (sizes.includes('женское белье')) {
  240. let secondPart = +prompt('Введите размер одежды в Украине')
  241. alert(`Украинский ${secondPart} размер соответствует американскому ${8 + secondPart % 42} размеру`)
  242. }
  243. else if (sizes.includes('чулки') || sizes.includes('носки')) {
  244. let thirdPart = +prompt('Введите размер одежды в Украине')
  245. alert(`Украинский ${thirdPart} размер соответствует американскому ${8 + (thirdPart % 21) / 2} размеру`)
  246. }
  247. else {
  248. alert('Неправильная категория/мы такое не считаем')
  249. }
  250. } else if (task === 'ternary') {
  251. confirm('Вы женщина?') ? alert('Вы женщина') : alert('Вы мужчина')
  252. } else if (task === 'training') {
  253. alert('Это задание выполняется в устной форме для собственной тренировки')
  254. } else if (task === 'prompt: or') {
  255. const age = prompt('Укажите в поле, сколько вам полных лет (цифрами):')
  256. const bornYear = 2022 - +age
  257. const bornYearAlert = 'Вы родились в ' + bornYear + ' году'
  258. alert(age === null || age === '' ? 'Вы не ввели ваш возраст!' : bornYearAlert)
  259. } else if (task === 'confirm: or this days') {
  260. confirm('шопинг?') || alert('ты - бяка')
  261. } else if (task === 'confirm: if this days') {
  262. if (!confirm('шопинг?')) {
  263. alert('ты - бяка')
  264. }
  265. } else if (task === 'default: or') {
  266. const surname = prompt('введите Вашу фамилию в поле ниже') || 'Иванов'
  267. const name = prompt('введите Ваше имя в поле ниже') || 'Иван'
  268. const patronymic = prompt('введите Ваше отчество в поле ниже') || 'Иванович'
  269. alert(`${surname} ${name} ${patronymic}`)
  270. } else if (task === 'default: if') {
  271. let surname = prompt('введите Вашу фамилию в поле ниже')
  272. if (surname === null || surname === '') { surname = 'Иванов' }
  273. else {
  274. surname
  275. }
  276. let name = prompt('введите Ваше имя в поле ниже')
  277. if (name === null || name === '') { name = 'Иван' }
  278. else {
  279. name
  280. }
  281. let patronymic = prompt('введите Ваше отчество в поле ниже')
  282. if (patronymic === null || patronymic === '') { patronymic = 'Иванович' }
  283. else {
  284. patronymic
  285. }
  286. alert(`${surname} ${name} ${patronymic}`)
  287. } else if (task === 'login and password') {
  288. if (prompt('Введите в поле ниже логин') !== 'admin') {
  289. alert('Логин введен неверно')
  290. }
  291. else if (prompt('Введите пароль в поле нижне') !== 'qwerty') {
  292. alert('Пароль введен неверно')
  293. }
  294. else {
  295. alert('Вы успешно авторизовались')
  296. }
  297. } else if (task === 'currency exchange') {
  298. const currency = prompt('Введите искомую валюту в поле ниже:', 'usd/euro/gbp')
  299. const operation = confirm('Продаете?')
  300. let rate
  301. if (currency.toUpperCase() === 'USD') {
  302. operation ? rate = 39 : rate = 40.75
  303. }
  304. if (currency.toUpperCase() === 'EURO') {
  305. operation ? rate = 38 : rate = 39.90
  306. }
  307. if (currency.toUpperCase() === 'GBP') {
  308. operation ? rate = 43.55 : rate = 46.25
  309. }
  310. const summ = +prompt(`Введите в поле ниже, сколько ${currency.toUpperCase()} хотите ${operation ? 'продать' : 'купить'}`)
  311. alert(`${operation ? 'Вы получите на руки' : 'Вам нужно подготовить к продаже'} ${(summ * rate).toFixed(2)} гривен.`)
  312. } else if (task === 'scissors') {
  313. const userOption = prompt('Давай сыграем в камень-ножницы-бумага. Введи в строку ниже свою фигуру').toLowerCase()
  314. let myOption = Math.random()
  315. if (myOption < 0.33) {
  316. myOption = 'камень'
  317. } else if (myOption > 0.66) {
  318. myOption = 'ножницы'
  319. } else {
  320. myOption = 'бумага'
  321. }
  322. alert(`Моя фигура: ${myOption}`)
  323. if (userOption === myOption) {
  324. alert(`у нас ничья: у тебя ${userOption}, у меня ${myOption}`)
  325. } else if ((userOption === 'камень' && myOption === 'бумага') || (userOption === 'ножницы' && myOption === 'камень') || (userOption === 'бумага' && myOption === 'ножницы')) {
  326. alert(`ты проиграл: у тебя ${userOption}, у меня ${myOption}`)
  327. } else if ((userOption === 'камень' && myOption === 'ножницы') || (userOption === 'ножницы' && myOption === 'бумага') || (userOption === 'бумага' && myOption === 'камень')) {
  328. alert(`ты выиграл: у тебя ${userOption}, у меня ${myOption}`)
  329. } else {
  330. alert(`Не читери. Фигура ${userOption} не из этой игры`)
  331. }
  332. } else if (task === 'дополнительное задание') {
  333. alert('Как раз сейчас ты его смотришь')
  334. } else if (task === 'задание на черный пояс') {
  335. const userOption = prompt('Давай сыграем в камень-ножницы-бумага. Введи в строку ниже свою фигуру').toLowerCase()
  336. let myOption = Math.random()
  337. if (myOption < 0.33) {
  338. myOption = 'камень'
  339. } else if (myOption > 0.66) {
  340. myOption = 'ножницы'
  341. } else {
  342. myOption = 'бумага'
  343. }
  344. alert(`Моя фигура: ${myOption}`)
  345. ((userOption === myOption && alert('Ничья')) || (((userOption === 'камень' && myOption === 'ножницы') || (userOption === 'ножницы' && myOption === 'бумага') || (userOption === 'бумага' && myOption === 'камень')) && alert('Ты выиграл')) || (((userOption === 'ножницы' && myOption === 'камень') || (userOption === 'бумага' && myOption === 'ножницы') || (userOption === 'камень' && myOption === 'бумага')) && alert('Ты проиграл')))
  346. }
  347. }
  348. // Задание на черный пояс
  349. // Сделайте игру "камень-ножницы-бумага", как описано выше, пользуясь логическими операциями(&&, ||, !), не используя if.Задание должно быть решено одним выражением
  350. {
  351. const userOption = prompt('Давай сыграем в камень-ножницы-бумага. Введи в строку ниже свою фигуру').toLowerCase()
  352. let myOption = Math.random()
  353. if (myOption < 0.33) {
  354. myOption = 'камень'
  355. } else if (myOption > 0.66) {
  356. myOption = 'ножницы'
  357. } else {
  358. myOption = 'бумага'
  359. }
  360. alert(`Моя фигура: ${myOption}`)
  361. ((userOption === myOption && alert('Ничья')) || (((userOption === 'камень' && myOption === 'ножницы') || (userOption === 'ножницы' && myOption === 'бумага') || (userOption === 'бумага' && myOption === 'камень')) && alert('Ты выиграл')) || (((userOption === 'ножницы' && myOption === 'камень') || (userOption === 'бумага' && myOption === 'ножницы') || (userOption === 'камень' && myOption === 'бумага')) && alert('Ты проиграл')))
  362. }