|
| 1 | +'use strict'; |
| 2 | + |
| 3 | +// Задание 1: |
| 4 | +// Нужно проанализировать полученный рейтинг фильма и решить, к какой из трех категорий он относится: "Отличный фильм", "Хороший фильм" или "Плохой фильм". |
| 5 | +// - Согласно if...else логики. |
| 6 | + |
| 7 | +function getMovieCategory(rating) { |
| 8 | + rating = parseFloat(rating); |
| 9 | + |
| 10 | + if (isNaN(rating)) { |
| 11 | + return 'Передайте числовой рейтинг'; |
| 12 | + } |
| 13 | + |
| 14 | + if (rating < 0 || rating > 10) { |
| 15 | + return 'Некорректный рейтинг'; |
| 16 | + } |
| 17 | + |
| 18 | + if (rating >= 8) { |
| 19 | + return 'Отличный фильм'; |
| 20 | + } else if (rating >= 5) { |
| 21 | + return 'Хороший фильм'; |
| 22 | + } else { |
| 23 | + return 'Плохой фильм'; |
| 24 | + } |
| 25 | +} |
| 26 | + |
| 27 | +console.log(getMovieCategory(8.5)); // "Отличный фильм" |
| 28 | +console.log(getMovieCategory(6.2)); // "Хороший фильм" |
| 29 | +console.log(getMovieCategory(3.1)); // "Плохой фильм" |
| 30 | +console.log(getMovieCategory(11)); // "Некорректный рейтинг" |
| 31 | +console.log(getMovieCategory('')); // "Передайте числовой рейтинг" |
| 32 | + |
| 33 | +// Задание 2: |
| 34 | +// Создайте программу для определения скидки на товар в зависимости от категории покупателя. |
| 35 | +// - Категория покупателей ("regular", "premium", "vip"). |
| 36 | +// - Скидка 5, 15, 25. |
| 37 | + |
| 38 | +function getDiscount(category) { |
| 39 | + if (!category || typeof category !== 'string') { |
| 40 | + return 0; |
| 41 | + } |
| 42 | + |
| 43 | + category = category.trim().toLowerCase(); |
| 44 | + |
| 45 | + if (category === 'vip') { |
| 46 | + return 25; |
| 47 | + } else if (category === 'premium') { |
| 48 | + return 15; |
| 49 | + } else if (category === 'regular') { |
| 50 | + return 5; |
| 51 | + } else { |
| 52 | + return 0; |
| 53 | + } |
| 54 | +} |
| 55 | + |
| 56 | +console.log(getDiscount('vip')); // 25 |
| 57 | +console.log(getDiscount('premium')); // 15 |
| 58 | +console.log(getDiscount('regular')); // 5 |
| 59 | +console.log(getDiscount(99)); // 0 |
| 60 | + |
| 61 | +// Задание 3: |
| 62 | +// Создайте программу для определения типа транспорта на основе скорости движения. |
| 63 | +// - Число (скорость в км/ч): 25, 60, 900. |
| 64 | +// - Транспорт: велосипед, автомобиль, самолет. |
| 65 | +// Скорость должна быть положительным числом. |
| 66 | + |
| 67 | +function getTransportType(speed) { |
| 68 | + if (typeof speed !== 'number' || Number.isNaN(speed) || speed <= 0) { |
| 69 | + return 'Неверный ввод'; |
| 70 | + } |
| 71 | + |
| 72 | + if (speed > 120) { |
| 73 | + return 'Самолет'; |
| 74 | + } else if (speed > 40) { |
| 75 | + return 'Автомобиль'; |
| 76 | + } else if (speed >= 20) { |
| 77 | + return 'Велосипед'; |
| 78 | + } else { |
| 79 | + return 'Пешком'; |
| 80 | + } |
| 81 | +} |
| 82 | + |
| 83 | +console.log(getTransportType(900)); // "Самолет" |
| 84 | +console.log(getTransportType(60)); // "Автомобиль" |
| 85 | +console.log(getTransportType(20)); // "Велосипед" |
| 86 | + |
| 87 | +// Задание 4: |
| 88 | +// Создайте программу для определения статуса заказа в интернет-магазине на основе его номера/первой буквы. |
| 89 | +// Номер заказа должен содержать ровно 5 символов (1 буква + 4 цифры). |
| 90 | +// - "A1234", Заказ обрабатывается. |
| 91 | +// - "B5678", Заказ отправлен. |
| 92 | +// - "C9999", Заказ доставлен. |
| 93 | + |
| 94 | +function getOrderStatus(order) { |
| 95 | + if (typeof order !== 'string') { |
| 96 | + return 'Неизвестный статус'; |
| 97 | + } |
| 98 | + |
| 99 | + order = order.trim().toUpperCase(); |
| 100 | + |
| 101 | + if (order.length !== 5) { |
| 102 | + return 'Неизвестный статус'; |
| 103 | + } |
| 104 | + |
| 105 | + if (!/^[A-Za-z]\d{4}$/.test(order)) { |
| 106 | + return 'Неизвестный статус'; // если НЕ 1 буква + 4 цифры.. по сути это и проверка длинны ещё |
| 107 | + } |
| 108 | + |
| 109 | + const statusCode = order[0]; |
| 110 | + |
| 111 | + switch (statusCode) { |
| 112 | + case 'A': |
| 113 | + return 'Заказ обрабатывается'; |
| 114 | + case 'B': |
| 115 | + return 'Заказ отправлен'; |
| 116 | + case 'C': |
| 117 | + return 'Заказ доставлен'; |
| 118 | + default: |
| 119 | + return 'Неизвестный статус'; |
| 120 | + } |
| 121 | +} |
| 122 | + |
| 123 | +console.log(getOrderStatus('A1234')); // "Заказ обрабатывается" |
| 124 | +console.log(getOrderStatus('B5678')); // "Заказ отправлен" |
| 125 | +console.log(getOrderStatus('C9999')); // "Заказ доставлен" |
| 126 | +console.log(getOrderStatus('D0157')); // "Неизвестный статус" |
| 127 | + |
| 128 | +// Задание 5: |
| 129 | +// Создайте программу для определения статуса студента на основе его итогового балла. |
| 130 | +// Балл должен быть числом от 0 до 100 включительно. |
| 131 | +// - 95, "Отличник" |
| 132 | +// - 75, "Хорошист" |
| 133 | +// - 55, "Троечник" |
| 134 | +// - 35, "Неуспевающий" |
| 135 | + |
| 136 | +function getStudentStatus(score) { |
| 137 | + if (typeof score !== 'number' || score < 0 || score > 100) { |
| 138 | + return 'Некорректный балл'; |
| 139 | + } |
| 140 | + |
| 141 | + if (score >= 90) { |
| 142 | + return 'Отличник'; |
| 143 | + } else if (score >= 70) { |
| 144 | + return 'Хорошист'; |
| 145 | + } else if (score >= 50) { |
| 146 | + return 'Троечник'; |
| 147 | + } else { |
| 148 | + return 'Неуспевающий'; |
| 149 | + } |
| 150 | +} |
| 151 | + |
| 152 | +console.log(getStudentStatus(95)); // "Отличник" |
| 153 | +console.log(getStudentStatus(75)); // "Хорошист" |
| 154 | +console.log(getStudentStatus(55)); // "Троечник" |
| 155 | +console.log(getStudentStatus(35)); // "Неуспевающий" |
0 commit comments