update
This commit is contained in:
21
javascript/matrixok/index.html
Normal file
21
javascript/matrixok/index.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<title>Mátrixok</title>
|
||||||
|
</head>
|
||||||
|
<body onload="matrixBekeres()">
|
||||||
|
<!--Feladat:
|
||||||
|
A felhasználó megad két mátrixnak a méretét, majd az értékeket és összeszorozni a két mátrixot, majd kiírni az eredmenyt
|
||||||
|
-->
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div id="matrix1" class="flex-container"></div>
|
||||||
|
<div id="matrix2" class="flex-container"></div>
|
||||||
|
</div>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<script src="script.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
159
javascript/matrixok/script.js
Normal file
159
javascript/matrixok/script.js
Normal file
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
32
javascript/matrixok/style.css
Normal file
32
javascript/matrixok/style.css
Normal file
@@ -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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user