diff --git a/js-core/homeworks/homework-18/index.html b/js-core/homeworks/homework-18/index.html
new file mode 100644
index 0000000..e051397
--- /dev/null
+++ b/js-core/homeworks/homework-18/index.html
@@ -0,0 +1,54 @@
+
+
+
+
+ Homework-18
+
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
\ No newline at end of file
diff --git a/js-core/homeworks/homework-18/src/main.js b/js-core/homeworks/homework-18/src/main.js
new file mode 100644
index 0000000..b0b7050
--- /dev/null
+++ b/js-core/homeworks/homework-18/src/main.js
@@ -0,0 +1,76 @@
+/* EASY
+Алгоритмы !
+TASK 0
+Вам дано предложение, верните массив из слов,
+которые длинее чем средняя длина всех слов.
+Слова разделены пробелами, если в предложении запятые,они должны быть пропущены
+solution(["This is a sample string"]) expected ["This" "sample" "string"]
+solution(["Some another sample"]) expected ["another" "sample"]
+solution(["Do, do, do, do... do it!"]) expected []
+*/
+
+function removePunctuation(string) {
+ return string.replace(/[.,!?]/g, "")
+
+}
+
+function solution (arr) {
+ let wordsArr = arr[0].split(' ').map(word => {
+ return removePunctuation(word)
+ });
+ let lengthsArr = wordsArr.map(word => {
+ return word.length
+ });
+ let sumLengthsArr = 0;
+ lengthsArr.forEach(length => {
+ return sumLengthsArr += length;
+ });
+ let averageLength = sumLengthsArr/lengthsArr.length;
+ let res = wordsArr.filter(word => {
+ if(word.length > averageLength) {
+ return word;
+ }
+ });
+ console.log(res);
+}
+
+solution(["This is a sample string"]);
+solution(["Some another sample"]);
+solution(["Do, do, do, do... do it!"]);
+
+
+/* TASK 1
+Сделайте таблицу 5x5
+При клике на элемент, изменяйте цвет у элемента на красный.
+Но цвет у элемента должен изменяться пропорционально в другой половине квадрата
+Пример 3х3:
+[]|[]|[]
+[]|[]|[]
+[]|[]|[]
+кликаем сюда -> []|[]|[]
+ []|[]|[]
+ []|[]|[x] <- загорается тут
+ []|[]|[]
+кликаем сюда -> []|[]|[x] <- загорается тут
+ []|[]|[x]
+*/
+
+ /* C делегированием я не смогла сделать */
+
+let table = document.querySelector('table');
+
+// table.addEventListener('click', (event) => {
+// if (event.target.tagName === 'TD') {
+// }
+// });
+
+/* Только присвоением события на каждый элемент*/
+
+let cells = document.querySelectorAll('td');
+
+for (let i = 0; i < cells.length; i++) {
+ cells[i].addEventListener('click', () => {
+ let number = cells.length - 1 - i;
+ cells[number].style.background = 'red';
+ })
+}
\ No newline at end of file