From ea7c09cdd22d42ad40bb66b2dee031f7d96aca97 Mon Sep 17 00:00:00 2001 From: lionarius Date: Fri, 26 Apr 2024 06:45:07 +0300 Subject: [PATCH] matvei --- Лаб5-М/Сайт/src/index.html | 24 ++++++++ Лаб5-М/Сайт/src/script.js | 112 +++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 Лаб5-М/Сайт/src/index.html create mode 100644 Лаб5-М/Сайт/src/script.js diff --git a/Лаб5-М/Сайт/src/index.html b/Лаб5-М/Сайт/src/index.html new file mode 100644 index 0000000..807e224 --- /dev/null +++ b/Лаб5-М/Сайт/src/index.html @@ -0,0 +1,24 @@ + + + + + Решение задачи + + +

Введите параметры

+ + +

+ + +

+ + + +

Результаты

+ +
+ + + + diff --git a/Лаб5-М/Сайт/src/script.js b/Лаб5-М/Сайт/src/script.js new file mode 100644 index 0000000..f207919 --- /dev/null +++ b/Лаб5-М/Сайт/src/script.js @@ -0,0 +1,112 @@ +const alphabet = 'abcdefghijklmnopqrstuvwxyz'; + +function isOrderedAlphabetically(vector) { + return vector.every( + (item, index, array) => index === 0 || item >= array[index - 1] + ); +} + +function getRandomLetter(min, max) { + const startIndex = alphabet.indexOf(min.toLowerCase()); + const endIndex = alphabet.indexOf(max.toLowerCase()); + const randomIndex = + Math.floor(Math.random() * (endIndex - startIndex + 1)) + startIndex; + return alphabet[randomIndex]; +} + +function removeOddLetters(vector) { + return vector.filter((item, index) => alphabet.indexOf(item) % 2 === 1); +} + +function generateVector(size, minChar, maxChar) { + return Array.from({ length: size }, () => + getRandomLetter(minChar, maxChar) + ); +} + +function generateMatrix(rows, cols, probability) { + return Array.from({ length: rows }, () => + Math.random() < probability + ? generateVector(cols, 'a', 'z').sort() + : generateVector(cols, 'a', 'z') + ); +} + +function calculate() { + const rows = parseInt(document.getElementById('rows').value); + const cols = parseInt(document.getElementById('cols').value); + + const M1 = generateMatrix(rows, cols, 0.5); + const M2 = generateMatrix(rows, cols, 0.5); + + const rowsOrderedAlphabeticalM1 = M1.map((row) => + isOrderedAlphabetically(row) + ); + const rowsOrderedAlphabeticalM2 = M2.map((row) => + isOrderedAlphabetically(row) + ); + + const notSortedRowsM1 = M1.filter( + (row, i) => !rowsOrderedAlphabeticalM1[i] + ); + const notSortedRowsM2 = M2.filter( + (row, i) => !rowsOrderedAlphabeticalM2[i] + ); + + const noOddLettersInSortedRowsM1 = notSortedRowsM1.map((row) => + removeOddLetters(row) + ); + const noOddLettersInSortedRowsM2 = notSortedRowsM2.map((row) => + removeOddLetters(row) + ); + + const sortedNoOddLettersInSortedRowsM1 = noOddLettersInSortedRowsM1.map( + (row) => Array.from(row).sort() + ); + const sortedNoOddLettersInSortedRowsM2 = noOddLettersInSortedRowsM2.map( + (row) => Array.from(row).sort() + ); + + const output = document.getElementById('output'); + output.innerHTML = ` +

Изначальные матрицы:

+
M1:\n${matrixToString(M1)}
+
M2:\n${matrixToString(M2)}
+

Векторы средних значений:

+
Отсортированные строки M1:\n${rowsOrderedAlphabeticalM1
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+
Отсортированные строки M2:\n${rowsOrderedAlphabeticalM2
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+

Несортированные строки:

+
Несортированные строки M1:\n${notSortedRowsM1
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+
Несортированные строки M2:\n${notSortedRowsM2
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+

Строки без нечетных букв:

+
Строки без нечетных букв M1:\n${noOddLettersInSortedRowsM1
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+
Строки без нечетных букв M2:\n${noOddLettersInSortedRowsM2
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+

Отсортированные строки без нечетных букв:

+
Отсортированные строки без нечетных букв M1:\n${sortedNoOddLettersInSortedRowsM1
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+
Отсортированные строки без нечетных букв M2:\n${sortedNoOddLettersInSortedRowsM2
+            .map((row, i) => `Строка ${i + 1}: ${row}`)
+            .join('\n')}
+ `; +} + +function matrixToString(matrix) { + return matrix.map((row) => row.join(', ')).join('\n'); +} + +function vectorToString(vector) { + return `[${vector.join(', ')}]`; +}