School-HTML/3AIN/Esercizi TPS JavaScript Misti/parity_code.html

107 lines
3.3 KiB
HTML

<html>
<!--
Nome: Mario
Cognome: Montanari
-->
<head>
<link rel="stylesheet" href="style_parity_code.css">
<link rel="icon" href="itis_nullo_baldini_ravenna.jpg" />
<title>Calcolo del Codice di Parità</title>
</head>
<body>
<div class="container">
<h1>Calcolo del Codice di Parità tra due numeri binari di 8 bit</h1>
<p>I due numeri che inserirai qui sotto dovranno essere lunghi obbligatoriamente 8 bit.</p>
<p>Primo numero binario: <input type="text" id="binario1" placeholder="Inserisci un numero binario"></p>
<p>Secondo numero binario: <input type="text" id="binario2" placeholder="Inserisci un numero binario"></p>
<button onclick="calcolaParita()">Calcola il Codice di Parità</button>
<h2>Risultato:</h2>
<p id="risultato">Bit di parità orizzontale per il primo numero binario:</br>Bit di parità orizzontale per il secondo numero binario</br></br>Byte di parità verticale:</br></br>Parità del primo numero binario:</br>Parità del secondo numero binario:</p>
</div></br>
<div class="footer">
<small>Calcolo del Codice di Parità tra due numeri binari obbligatoriamente di 8 bit, &copy 2025, Mario Montanari, 3AIN</small>
</div>
<script>
function calcolaParita() {
let binario1 = document.getElementById('binario1').value;
let binario2 = document.getElementById('binario2').value;
function isBinary(binario) {
for (let i = 0; i < binario.length; i++) {
if (
binario[i] !== "0" &&
binario[i] !== "1"
) {
return false;
}
}
return true;
}
if (
!isBinary(binario1) ||
!isBinary(binario2) ||
binario1.length !== 8 ||
binario2.length !== 8
) {
window.alert("Errore! Inserisci un numero binario di 8 bit.");
return;
}
function calcolaCodiceParitaRiga(binario) {
let conteggio = 0;
for (let i = 0; i < binario.length; i++) {
if (binario[i] === "1") {
conteggio++;
}
}
return (conteggio % 2 === 0) ? "0" : "1";
}
let paritaRiga1 = calcolaCodiceParitaRiga(binario1);
let paritaRiga2 = calcolaCodiceParitaRiga(binario2);
function calcolaCodiceParitaColonna(binario1, binario2) {
let colonnaParita = "";
for (let i = 0; i < 8; i++) {
let bit1 = binario1[i];
let bit2 = binario2[i];
let sommaBit = (bit1 === "1" ? 1 : 0) + (bit2 === "1" ? 1 : 0);
colonnaParita = colonnaParita + (sommaBit % 2 === 0 ? "0" : "1");
}
return colonnaParita;
}
let paritaColonne = calcolaCodiceParitaColonna(binario1, binario2);
let totaleBit1 = (binario1).split("").filter(bit => bit === "1").length;
let paritaBit1 = totaleBit1 % 2 === 0 ? "Parità Pari" : "Parità Dispari";
let totaleBit2 = (binario2).split("").filter(bit => bit === "1").length;
let paritaBit2 = totaleBit2 % 2 === 0 ? "Parità Pari" : "Parità Dispari";
console.log(binario1);
console.log(binario2);
console.log(paritaColonne);
document.getElementById("risultato").innerText =
`Bit di parità orizzontale per il primo numero binario: ${paritaRiga1}\n` +
`Bit di parità orizzontale per il secondo numero binario: ${paritaRiga2}\n\n` +
`Byte di parità verticale: ${paritaColonne}\n\n` +
`Parità del primo numero binario: ${paritaBit1}\n` +
`Parità del secondo numero binario: ${paritaBit2}`;
}
</script>
</body>
</html>