init
This commit is contained in:
30
html/tasks/chapter_5/task11_tables/oppgave.html
Normal file
30
html/tasks/chapter_5/task11_tables/oppgave.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Oppgave 11</title>
|
||||
<link rel="stylesheet" href="../../../../resources/css/main.css">
|
||||
<script async src="./script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Oppgave 11</h1>
|
||||
|
||||
<div class=center>
|
||||
<div class="inline">
|
||||
Lag <input type="number" id="amount" value="0" min="0" max="999"> tilfeldige tall mellom 0 og <input type="number" id="range" value="0" min="0">
|
||||
<button id="reload">Reload</button>
|
||||
</div>
|
||||
|
||||
<table id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tall</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
34
html/tasks/chapter_5/task11_tables/script.js
Normal file
34
html/tasks/chapter_5/task11_tables/script.js
Normal file
@@ -0,0 +1,34 @@
|
||||
const table = document.getElementById("table");
|
||||
const globalAmount = document.getElementById("amount");
|
||||
const globalRange = document.getElementById("range");
|
||||
const reloadButton = document.getElementById("reload");
|
||||
|
||||
const listHeader = table.innerHTML;
|
||||
|
||||
globalAmount.addEventListener("input", updateList, false);
|
||||
globalRange.addEventListener("input", updateList, false);
|
||||
reloadButton.addEventListener("click", updateList, false);
|
||||
|
||||
function updateList() {
|
||||
addToList(generateNums(globalAmount.value, globalRange.value), table);
|
||||
}
|
||||
|
||||
function addToList(numArray, table) {
|
||||
rows = '';
|
||||
for (i in numArray) {
|
||||
rows += '<tr><td>' + numArray[i] + '</td></tr>';
|
||||
}
|
||||
table.innerHTML = listHeader + rows;
|
||||
}
|
||||
|
||||
function generateNums(amount, range) {
|
||||
let array = [];
|
||||
for (i=0; i<amount; i++) {
|
||||
array[i] = Math.ceil(Math.random()*range);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
function sumTable(table) {
|
||||
|
||||
}
|
38
html/tasks/chapter_5/task12_encryption/oppgave.html
Executable file
38
html/tasks/chapter_5/task12_encryption/oppgave.html
Executable file
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Rot n</title>
|
||||
<link rel="stylesheet" href="../../../../resources/css/main.css">
|
||||
<script async src="script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Rot(n)</h1>
|
||||
|
||||
<h2>Encryption</h2>
|
||||
<form id="encrypt">
|
||||
Message<br>
|
||||
<input type="text" name="Message" id="emess">
|
||||
Cipher:
|
||||
<input type="number" name="Cipher" min="0" max="26" id="enum">
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
|
||||
<p id="etext"></p>
|
||||
|
||||
<h2>Decryption</h2>
|
||||
<form id="decrypt">
|
||||
Message<br>
|
||||
<input type="text" name="Message" id="dmess">
|
||||
Cipher:
|
||||
<input type="number" name="Cipher" min="0" max="26" id="dnum">
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
|
||||
<p id="dtext"></p>
|
||||
|
||||
</body>
|
||||
</html>
|
71
html/tasks/chapter_5/task12_encryption/script.js
Executable file
71
html/tasks/chapter_5/task12_encryption/script.js
Executable file
@@ -0,0 +1,71 @@
|
||||
var encForm = document.getElementById("encrypt");
|
||||
var emess = document.getElementById("emess");
|
||||
var eciph = document.getElementById("enum");
|
||||
var etext = document.getElementById("etext");
|
||||
encForm.onsubmit=function(evt){
|
||||
evt.preventDefault();
|
||||
etext.innerHTML = encrypt(emess.value, parseInt(eciph.value));
|
||||
}
|
||||
|
||||
var decForm = document.getElementById("decrypt");
|
||||
var dmess = document.getElementById("dmess");
|
||||
var dciph = document.getElementById("dnum");
|
||||
var dtext = document.getElementById("dtext");
|
||||
decForm.onsubmit=function(evt){
|
||||
evt.preventDefault();
|
||||
dtext.innerHTML = decrypt(dmess.value, parseInt(dciph.value));
|
||||
}
|
||||
|
||||
function mod(x,n){
|
||||
return ((x%n)+n)%n;
|
||||
}
|
||||
|
||||
|
||||
function encrypt(mess,number){
|
||||
messArray=mess.split('');
|
||||
result=[];
|
||||
|
||||
for (i in messArray){
|
||||
x=messArray[i].charCodeAt(0);
|
||||
|
||||
if (x>64 && x<91){
|
||||
x-=64;
|
||||
x+=number;
|
||||
x=mod(x,26);
|
||||
x+=64;
|
||||
} else if (x>96 && x<123){
|
||||
x-=96;
|
||||
x+=number;
|
||||
x=mod(x,26);
|
||||
x+=96;
|
||||
}
|
||||
result.push(String.fromCharCode(x));
|
||||
}
|
||||
result = result.join("");
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
function decrypt(mess,number){
|
||||
messArray=mess.split('');
|
||||
result=[];
|
||||
|
||||
for (i in messArray){
|
||||
x=messArray[i].charCodeAt(0);
|
||||
|
||||
if (x>64 && x<91){
|
||||
x-=64;
|
||||
x-=number;
|
||||
x=mod(x,26);
|
||||
x+=64;
|
||||
} else if (x>96 && x<123){
|
||||
x-=96;
|
||||
x-=number;
|
||||
x=mod(x,26);
|
||||
x+=96;
|
||||
}
|
||||
result.push(String.fromCharCode(x));
|
||||
}
|
||||
result = result.join("");
|
||||
return result;
|
||||
}
|
Reference in New Issue
Block a user