Arytmetyka w przeglądarce: mnożenie wartości, kalkulacja progów rabatowych, sumowanie zaznaczonych usług i formatowanie kwot toFixed.
Kalkulatory cenowe na stronach internetowych bazują na prostych operacjach arytmetycznych: mnożeniu liczby zamówionych jednostek przez stawkę jednostkową oraz sumowaniu pozycji składowych.
function obliczBilety() {
const normalne = Number(document.getElementById('biletyNormalne').value);
const ulgowe = Number(document.getElementById('biletyUlgowe').value);
const wynik = document.getElementById('wynikBiletow');
const kosztNormalne = normalne * 25;
const kosztUlgowe = ulgowe * 18;
const razem = kosztNormalne + kosztUlgowe;
wynik.textContent = 'Do zapłaty: ' + razem.toFixed(2) + ' zł';
}
function obliczBilety() {
const normalne = Number(document.getElementById('biletyNormalne').value);
const ulgowe = Number(document.getElementById('biletyUlgowe').value);
const wynik = document.getElementById('wynikBiletow');
const kosztNormalne = normalne * 25;
const kosztUlgowe = ulgowe * 18;
const razem = kosztNormalne + kosztUlgowe;
wynik.textContent = 'Do zapłaty: ' + razem.toFixed(2) + ' zł';
}
Jaka metoda służy do sformatowania liczby z dokładnością do dwóch miejsc po przecinku w postaci tekstu?
Poprawna: b) Metoda toFixed(2) formatuje liczbę do łańcucha znaków z dwoma miejscami po przecinku.
W wielu systemach zamówień ostateczna cena zależy od spełnienia określonych kryteriów, takich jak wielkość zamówienia czy posiadanie karty lojalnościowej.
function obliczRabatHurtowy() {
const sztuki = Number(document.getElementById('liczbaSztuk').value);
const maKarte = document.getElementById('kartaKlienta').checked;
const wynik = document.getElementById('wynikRabatu');
const cenaBazowa = sztuki * 40;
let rabat = 0;
if (sztuki >= 20) {
rabat += 0.20;
} else if (sztuki >= 10) {
rabat += 0.10;
}
if (maKarte) {
rabat += 0.05;
}
const wartoscRabatu = cenaBazowa * rabat;
const cenaKoncowa = cenaBazowa - wartoscRabatu;
wynik.textContent = 'Cena: ' + cenaKoncowa.toFixed(2) + ' zł (rabat: ' + (rabat * 100) + '%, oszczędzasz ' + wartoscRabatu.toFixed(2) + ' zł)';
}
function obliczRabatHurtowy() {
const sztuki = Number(document.getElementById('liczbaSztuk').value);
const maKarte = document.getElementById('kartaKlienta').checked;
const wynik = document.getElementById('wynikRabatu');
const cenaBazowa = sztuki * 40;
let rabat = 0;
if (sztuki >= 20) {
rabat += 0.20;
} else if (sztuki >= 10) {
rabat += 0.10;
}
if (maKarte) {
rabat += 0.05;
}
const wartoscRabatu = cenaBazowa * rabat;
const cenaKoncowa = cenaBazowa - wartoscRabatu;
wynik.textContent = 'Cena: ' + cenaKoncowa.toFixed(2) + ' zł (rabat: ' + (rabat * 100) + '%, oszczędzasz ' + wartoscRabatu.toFixed(2) + ' zł)';
}
W jaki sposób obliczyć 15-procentowy rabat od kwoty zapisanej w zmiennej cenaBazowa?
Poprawna: d) Wartość 15% odpowiada ułamkowi dziesiętnemu 0.15, przez który mnożymy kwotę bazową.
Gdy formularz pozwala na wybór dowolnej liczby opcji dodatkowych (np. usług serwisowych, ubezpieczenia czy akcesoriów), ręczne sprawdzanie każdego checkboxa osobną instrukcją if staje się nieefektywne.
function policzKosztSerwisu() {
const kosztDiagnozy = 80;
let suma = kosztDiagnozy;
const wybraneUslugi = document.querySelectorAll('.dodatek:checked');
wybraneUslugi.forEach(function(pole) {
const cenaDodatku = Number(pole.dataset.cena);
suma += cenaDodatku;
});
const wynik = document.getElementById('wynikSerwisu');
wynik.textContent = 'Całkowity koszt naprawy: ' + suma.toFixed(2) + ' zł (wybrano dodatków: ' + wybraneUslugi.length + ')';
}
function policzKosztSerwisu() {
const kosztDiagnozy = 80;
let suma = kosztDiagnozy;
const wybraneUslugi = document.querySelectorAll('.dodatek:checked');
wybraneUslugi.forEach(function(pole) {
const cenaDodatku = Number(pole.dataset.cena);
suma += cenaDodatku;
});
const wynik = document.getElementById('wynikSerwisu');
wynik.textContent = 'Całkowity koszt naprawy: ' + suma.toFixed(2) + ' zł (wybrano dodatków: ' + wybraneUslugi.length + ')';
}
Jaka technika pozwala przechować sumę kosztów przy iterowaniu po zaznaczonych polach wyboru?
Poprawna: c) Zmienna akumulatora let zainicjalizowana przed pętlą pozwala na kumulowanie sumy w kolejnych krokach.