Odpowiedź :
Uwaga:
To bardziej podpowiedź niż rozwiązanie, bo z zadania wynika, że powinna być jeszcze strona w html-u, która wykorzysta ten javascript!
Odpowiedź:
// SUMA
function suma(a, b) {
if (Number.isInteger(a) && Number.isInteger(b)) {
return a + b
}
console.log("Podaj liczby całkowite")
}
// PODSTAWY
function podstawy(a, b) {
a = Number(a) // Próbuje konwertować parametr a na liczbę, jeśli się nie udaje zwraca NaN
b = Number(b) // Próbuje konwertować parametr b na liczbę, jeśli się nie udaje zwraca NaN
if (Number.isNaN(a) || Number.isNaN(b)) {
console.log("Podaj prawidłowe liczby")
return
}
const diff = a - b;
const product = a * b;
const quotient = (b !== 0) ? a / b : "Błąd dzielenia przez 0"
return {
"różnica": diff,
"iloczyn": product,
"iloraz": quotient,
}
}
console.log(podstawy(2, 5))
console.log(podstawy(2, 0))
console.log(podstawy(5, true))
// KALKULATOR
function kalkulator(dzialanie, a, b) {
const wynik = podstawy(a, b);
const dzialania = ["różnica", "iloczyn", "iloraz"]
if (dzialania.includes(dzialanie) && wynik) {
return wynik[dzialanie]
}
if (dzialanie == "suma") {
return suma(a, b)
}
console.log("Błąd, obsługiwane działania to suma, różnica, iloczyn i iloraz")
return Number.NaN
}
console.log(kalkulator("suma", 1, 5))
console.log(kalkulator("różnica", 4, 5))
console.log(kalkulator("iloczyn", 3, "czy"))
console.log(kalkulator("iloraz", 1, 0))
// MAKS
function maks(a, b, c) {
a = Number(a) // Próbuje konwertować parametr a na liczbę, jeśli się nie udaje zwraca NaN
b = Number(b) // Próbuje konwertować parametr b na liczbę, jeśli się nie udaje zwraca NaN
c = Number(c) // Próbuje konwertować parametr c na liczbę, jeśli się nie udaje zwraca NaN
if (Number.isNaN(a) || Number.isNaN(b) || Number.isNaN(c)) {
console.log("Podaj prawidłowe liczby");
return Number.NaN
}
return Math.max(a, b, c)
}
// Wzrost
function wzrost(height) {
if (height < 150) return "Niski"
if (height > 180) return "Wysoki"
return "Średni"
}
console.log("Wzrost", wzrost(149))
console.log("Wzrost", wzrost(150))
console.log("Wzrost", wzrost(180))
console.log("Wzrost", wzrost(181))
// BMI
function bmi(weight, height) {
weight = Number(weight) // Próbuje konwertować parametr weight na liczbę, jeśli się nie udaje zwraca NaN
height = Number(height) // Próbuje konwertować parametr height na liczbę, jeśli się nie udaje zwraca NaN
if (Number.isNaN(weight) || Number.isNaN(height)) {
return Number.NaN
}
const bmi = weight * 10000 / (height * height)
if (bmi < 18.5) return `${bmi}: Za mało!`
if (bmi > 25) return `${bmi}: Za dużo!`
return `${bmi}: OK!`
}
console.log(bmi(50, 180))
console.log(bmi(70, 180))
console.log(bmi(100, 180))
console.log(bmi("5", "true"))
// STARSZY
function starszy(data1, data2) {
data1 = new Date(data1).getTime() // Konwerstuje łańcuch na datę a nastęnie metodą getTime libczę milisekund liczoną od 1 stycznia 1970 00:00:00.
data2 = new Date(data2).getTime()
if (data1 == data2) return "Osoby są w tym samym wieku"
if (data1 < data2) return "Piersza osoba jest starsza"
return "Druga osoba jest starsza"
}
console.log("Starszy: 2008-07-22 vs 2018-07-22: ", starszy("2008-07-22", "2018-07-22"))
console.log("Starszy: 2018-07-22 vs 2008-07-22: ", starszy("2018-07-22", "2008-07-22"))
console.log("Starszy: 2018-07-22 vs 2018-07-22: ", starszy("2018-07-22", "2018-07-22"))
// PRZESTEPNY
function przestepny(rok) {
return (rok % 4 == 0 && rok % 100 !== 0) || rok % 400 === 0
}
console.log("Czy przestęny 1900", przestepny(1900))
console.log("Czy przestęny 2000", przestepny(2000))
console.log("Czy przestęny 2022", przestepny(2022))
// SILA
function sila(tekst) {
const len = tekst.length
if (!/[A-Z]/.test(tekst) ||
!/[a-z]/.test(tekst) ||
!/[0-9]/.test(tekst) ||
!/[ !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/.test(tekst) || (len < 4)) {
return "Hasło słabe"
}
if (len < 8) return "Hasło średnie"
if (len >= 8) return "Hasło silne"
}
console.log(sila("slabehaslo"))
console.log(sila("1Ac"))
console.log(sila("AB1Ex$aa"))
// TROJKAT
function trojkat(a, b, c) {
a = Number(a) // Próbuje konwertować parametr a na liczbę, jeśli się nie udaje zwraca NaN
b = Number(b) // Próbuje konwertować parametr b na liczbę, jeśli się nie udaje zwraca NaN
c = Number(c) // Próbuje konwertować parametr c na liczbę, jeśli się nie udaje zwraca NaN
if (Number.isNaN(a) || Number.isNaN(b) || Number.isNaN(c)) {
console.log("Podaj prawidłowe liczby");
return false
}
const arr = [a, b, c].sort((a, b) => a - b)
const isTriangle = arr[0] + arr[1] > [arr[2]]
return isTriangle
}
console.log(trojkat(1, 1, 5));
console.log(trojkat(3, 4, 5));
console.log(trojkat(5, 4, 3));
Wyjaśnienie:
To bardziej podpowiedź niż rozwiązanie, bo z zadania wynika, że powinna być jeszcze strona w html-u.
SZYFR
function szyfr() {
const text = document.querySelector("#tekst").value
const code = document.querySelector("#rezultat")
code.value = zaszyfruj(text);
}
function zaszyfruj(text) {
const input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const output = "CDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuvwxyzab";
const index = idx => input.indexOf(idx);
return text
.split('')
.map(idx => {
return input.indexOf(idx) > -1 ? output[input.indexOf(idx)] : idx
})
.join('');
}
Implementacja szyfru na stronie html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Szyfr</title>
<style>
body {
font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
label {
font-weight: 600;
}
input[type="text"],
textarea {
width: 500px;
}
</style>
</head>
<body>
<label for="tekst">Wpisz tekst do zaszyfrowania</label>
<div>
<input id="tekst" type="text" oninput="szyfr()">
</div>
<div>
<label for="rezultat">Zaszyfrowany tekst</label>
</div>
<textarea id="rezultat"></textarea>
<!-- tutaj wklej szyfr w tagach script, brainly nie pozwili dodać niczego w takich tagach do strony -->
</body>
</html>