Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html> <!-- Декларація типу документа HTML5 -->
- <html lang="uk"> <!-- Початок HTML-документа, мова сторінки — українська -->
- <head> <!-- Блок із службовою інформацією про сторінку -->
- <meta charset="UTF-8"> <!-- Встановлюємо кодування UTF-8 для коректного відображення кирилиці -->
- <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Налаштування масштабу під мобільні пристрої -->
- <title>Лабораторна робота 2</title> <!-- Текст, який відображається на вкладці браузера -->
- </head> <!-- Закриваємо блок head -->
- <body> <!-- Основне тіло сторінки, яке бачить користувач -->
- <button onclick="RunLevel1()">Запустити Рівень 1</button> <!-- Кнопка для запуску першого рівня -->
- <button onclick="RunLevel2()">Запустити Рівень 2</button> <!-- Кнопка для запуску другого рівня -->
- <button onclick="RunLevel3()">Запустити Рівень 3</button> <!-- Кнопка для запуску третього рівня -->
- <script> <!-- Початок блоку JavaScript-коду -->
- function Truncate(str, maxlength) { // Функція обрізання рядка до вказаної довжини
- if (str == null || str.length <= maxlength) { // Якщо рядок відсутній або його довжина в межах норми
- return str; // Повертаємо початковий рядок без змін
- } else { // Якщо довжина рядка більша за допустиму
- return str.slice(0, maxlength - 3) + "..."; // Вирізаємо початок і додаємо три крапки в кінці
- } // Закриваємо блок else
- } // Закриваємо функцію Truncate
- function RunLevel1() { // Головна функція для роботи з Рівнем 1
- let inputStr = prompt("Введіть рядок:"); // Запитуємо у користувача вхідний рядок
- let maxLen = parseInt(prompt("Введіть максимальну довжину (maxlength):")); // Отримуємо довжину і перетворюємо в число
- if (inputStr == null || inputStr == "" || isNaN(maxLen)) { // Перевірка: скасовано ввід, порожній рядок або не число
- alert("Введено некоректні дані!"); // Повідомляємо користувача про помилку введення
- } else { // Якщо всі дані введено коректно
- let result = Truncate(inputStr, maxLen); // Викликаємо функцію Truncate для обрізання
- alert("Результат: " + result); // Виводимо оброблений результат у модальному вікні
- } // Закриваємо блок else
- } // Закриваємо функцію RunLevel1
- function GetAlphabeticalWords(str) { // Функція пошуку слів, де букви йдуть за алфавітом
- let words = str.split(" "); // Розбиваємо вхідний рядок на масив окремих слів за пробілами
- let result = []; // Створюємо порожній масив для збереження підходящих слів
- for (let i = 0; i < words.length; i++) { // Проходимо циклом по кожному слову в масиві
- let word = words[i]; // Беремо поточне слово за індексом i
- let cleanWord = word.toLowerCase(); // Переводимо слово в нижній регістр для однакового порівняння букв
- let isSorted = true; // Початковий прапорець: припускаємо, що букви в слові відсортовані
- for (let j = 0; j < cleanWord.length - 1; j++) { // Порівнюємо кожну букву з наступною
- if (cleanWord[j].localeCompare(cleanWord[j + 1], "uk") > 0) { // Якщо поточна буква за алфавітом далі за наступну
- isSorted = false; // Фіксуємо, що алфавітний порядок порушено
- break; // Перериваємо перевірку поточного слова
- } // Закриваємо if
- } // Закриваємо цикл порівняння букв j
- if (isSorted && cleanWord.length > 0) { // Якщо слово відсортоване і воно не порожнє
- result.push(word); // Додаємо початкове слово у підсумковий масив
- } // Закриваємо if
- } // Закриваємо цикл перебору слів i
- return result; // Повертаємо масив знайдених слів
- } // Закриваємо функцію GetAlphabeticalWords
- function RunLevel2() { // Головна функція для роботи з Рівнем 2
- let inputStr = prompt("Введіть рядок зі словами:"); // Запитуємо у користувача рядок слів
- if (inputStr == null || inputStr == "") { // Перевіряємо, чи користувач не натиснув Скасувати або не залишив пусте поле
- alert("Введено некоректні дані!"); // Виводимо повідомлення про помилку
- } else { // Якщо рядок введено правильно
- let wordsArr = GetAlphabeticalWords(inputStr); // Шукаємо слова з буквами за алфавітом
- alert("Слова, де букви за алфавітом: " + wordsArr.join(", ")); // Перетворюємо масив у рядок через кому та виводимо
- } // Закриваємо блок else
- } // Закриваємо функцію RunLevel2
- function GetUniqueCharWords(str) { // Функція пошуку слів без повторюваних букв
- let words = str.split(" "); // Розбиваємо текст на окремі слова за пробілами
- let result = []; // Створюємо порожній масив для збереження результатів
- for (let i = 0; i < words.length; i++) { // Проходимо циклом по кожному слову
- let word = words[i]; // Отримуємо поточне слово
- let cleanWord = word.toLowerCase(); // Переводимо слово у нижній регістр
- let hasDuplicates = false; // Початковий прапорець: вважаємо, що дублікатів немає
- for (let j = 0; j < cleanWord.length; j++) { // Зовнішній цикл: беремо базову букву
- for (let k = j + 1; k < cleanWord.length; k++) { // Внутрішній цикл: порівнюємо з усіма наступними буквами
- if (cleanWord[j] == cleanWord[k]) { // Якщо знайшли дві однакові букви
- hasDuplicates = true; // Фіксуємо наявність дубліката
- break; // Виходимо з внутрішнього циклу k
- } // Закриваємо if
- } // Закриваємо цикл k
- if (hasDuplicates) { // Якщо дублікат уже знайдено
- break; // Виходимо із зовнішнього циклу j (припиняємо перевіряти це слово)
- } // Закриваємо if
- } // Закриваємо цикл j
- if (!hasDuplicates && cleanWord.length > 0) { // Якщо дублікатів не знайдено і слово не порожнє
- result.push(word); // Додаємо слово до підсумкового масиву
- } // Закриваємо if
- } // Закриваємо цикл i
- return result; // Повертаємо масив слів без повторюваних букв
- } // Закриваємо функцію GetUniqueCharWords
- function RunLevel3() { // Головна функція для роботи з Рівнем 3
- let inputStr = prompt("Введіть текст:"); // Запитуємо вхідний текст у користувача
- if (inputStr == null || inputStr == "") { // Перевіряємо на скасування чи порожній ввід
- alert("Введено некоректні дані!"); // Повідомляємо про помилку
- } else { // Якщо текст успішно введено
- let wordsArr = GetUniqueCharWords(inputStr); // Отримуємо масив слів без дублікатів букв
- document.write("<p>Початковий рядок: " + inputStr + "</p>"); // Виводимо початковий текст прямо на сторінку
- document.write("<p>Слова без повторюваних букв:</p><ul>"); // Відкриваємо маркований HTML-список <ul>
- for (let i = 0; i < wordsArr.length; i++) { // Проходимо циклом по всіх знайдених словах
- document.write("<li>" + wordsArr[i] + "</li>"); // Виводимо кожне слово як елемент списку <li>
- } // Закриваємо цикл виводу i
- document.write("</ul>"); // Закриваємо тег маркованого списку </ul>
- } // Закриваємо блок else
- } // Закриваємо функцію RunLevel3
- </script> <!-- Закриваємо блок JavaScript-коду -->
- </body> <!-- Закриваємо тіло HTML-документа -->
- </html> <!-- Закриваємо HTML-документ -->
Advertisement
Add Comment
Please, Sign In to add comment