diff --git a/javascript/matrixok/index.html b/javascript/matrixok/index.html new file mode 100644 index 0000000..879489a --- /dev/null +++ b/javascript/matrixok/index.html @@ -0,0 +1,21 @@ + + + + + + + + Mátrixok + + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/javascript/matrixok/script.js b/javascript/matrixok/script.js new file mode 100644 index 0000000..b6d3860 --- /dev/null +++ b/javascript/matrixok/script.js @@ -0,0 +1,159 @@ +let matrix1 = []; +let matrix1_meret = []; +let matrix2 = []; +let matrix2_meret = []; + +function matrixBekeres(){ + try { + let input = prompt("Adja meg az első mátrix méretét [AxB] formában"); + input = input.trim(); + if(input != null || input != ""){ + let sp = input.split("x"); + sp[0] = sp[0].replace("-", ""); + sp[1] = sp[1].replace("-", ""); + if(sp[0] == undefined || sp[1] == undefined) throw "Az adat rosszul lett megadva"; + if(sp[0] == "0" || sp[1] == "0"){ + do{ + let input = prompt("Adja meg az első mátrix méretét [AxB] formában"); + input = input.trim(); + input = input.replace("-", ""); + sp = input.split("x"); + }while(sp[0] == "0" || sp[1] == "0"); + }else{ + matrix1_meret[0] = parseInt(sp[0]); + matrix1_meret[1] = parseInt(sp[1]); + } + //document.getElementById("matrix1").innerText = sp[0] + " " + sp[1]; + }else{ + throw "Nem adott meg adatot"; + } + + input = prompt("Adja meg a második mátrix méretét [AxB] formában"); + input = input.trim(); + if(input != null || input != ""){ + let sp = input.split("x"); + sp[0] = sp[0].replace("-", ""); + sp[1] = sp[1].replace("-", ""); + if(sp[1] == undefined) throw "Az adat rosszul lett megadva"; + if(sp[0] == "0" || sp[1] == "0"){ + do{ + let input = prompt("Adja meg az első mátrix méretét [AxB] formában"); + input = input.trim(); + input = input.replace("-", ""); + sp = input.split("x"); + }while(sp[0] == "0" || sp[1] == "0"); + }else{ + matrix2_meret[0] = parseInt(sp[0]); + matrix2_meret[1] = parseInt(sp[1]); + } + //document.getElementById("matrix2").innerText = sp[0] + " " + sp[1]; + }else{ + throw "Nem adott meg adatot"; + } + } catch (error) { + document.getElementById("matrix1").innerText = "a program hibaba futott"; + matrixBekeres(); + } + + matrixElemekBekeres(); +} + +function matrixEgyezesVizsgalat(){ + if(!(matrix1_meret[1] === matrix2_meret[0])){ + console.log("A ket matrixban nem egyezik a ket legkozelebbi szam!"); + return false; + } + + + return true; +} + +function matrixElemekBekeres(){ + if(!matrixEgyezesVizsgalat()) return; + let input; + let arr = []; + + alert("Adja meg az elso matrix elemeit!"); + //matrix1 bekerese + for (let i = 0; i < matrix1_meret[0]; i++) { + alert("Adja meg az " + (i+1) + ". sor elemeit"); + for (let j = 0; j < matrix1_meret[1]; j++) { + input = prompt("Adja meg az matrix " + (j+1) + ". elemet"); + arr[j] = parseInt(input); + } + matrix1[i] = arr; + console.log("Matrix1: " + matrix1[i]); + } + + + arr = []; + input = null; //ertekek lenullazasa, hogy ne maradjon adat az elozobol + + alert("Adja meg a masodik matrix elemeit!"); + //matrix2 bekerese + for (let i = 0; i < matrix2_meret[0]; i++) { + alert("Adja meg az " + (i+1) + ". sor elemeit"); + for (let j = 0; j < matrix2_meret[1]; j++) { + input = prompt("Adja meg az matrix " + (j+1) + ". elemet"); + arr[j] = parseInt(input); + } + matrix2[i] = arr; + console.log("Matrix2: " + matrix2[i]); + } + + matrixSzamolas(); +} + +function matrixSzamolas(){ + if(!matrixEgyezesVizsgalat()) return; + + let eredmeny_matrix = []; + let arr = []; + let sum = 0; + + for (let i = 0; i < matrix1_meret[1]; i++) { + for (let j = 0; j < matrix2_meret[0]; j++) { + for (let k = 0; k < matrix1_meret[0]; k++) { + sum += matrix1[0][k] * matrix2[k][0]; + } + arr[j] = sum; + sum = 0; + } + eredmeny_matrix[i] = arr; + console.log(eredmeny_matrix[i]); + } + + matrixKiiras(); +} + +function matrixKiiras(){ + let matrix1_container = document.getElementById("matrix1"); + let matrix2_container = document.getElementById("matrix2"); + + for (let i = 0; i < matrix1.length; i++) { + let sor = document.createElement("div"); + sor.setAttribute("class", "sor"); + for (let j = 0; j < matrix1[i].length; j++) { + console.log("Matrix elem: " + matrix1[i][j]); + let elem = document.createElement("div"); + elem.setAttribute("class", "elem"); + let text = document.createTextNode(matrix1[i][j]); + elem.appendChild(text); + sor.appendChild(elem); + } + + matrix1_container.appendChild(sor); + } +} + + +/* +1x2 + 6,6 + +2x3 + 6,6,6 + 6,6,6 + + +*/ \ No newline at end of file diff --git a/javascript/matrixok/style.css b/javascript/matrixok/style.css new file mode 100644 index 0000000..c08ca3f --- /dev/null +++ b/javascript/matrixok/style.css @@ -0,0 +1,32 @@ +.flex-container { + display: flex; + width: 100%; + /*background-color: DodgerBlue;*/ + flex-direction: column; + flex-wrap: wrap; + justify-content: center; + padding: 1%; +} + +.elem{ + background-color: #f1f1f1; + width: 5%; + height: 10%; + margin-left: 5%; + margin-bottom: 1%; + text-align: center; + /*line-height: 65px;*/ + font-size: 30px; +} + +body{ + margin: 1%; +} + +.sor{ + display: flex; + /*background-color: purple;*/ + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; +} \ No newline at end of file