Diskuze: JavaScript - průměr známek
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj.
Proč se vůbec nespouští funkce prumer()?
Událost po kliknutí na tlačítko tlacitko.onclick = prumer je třeba
napsat dovnitř metody window.onload, která zajistí, že se veškerý
kód uvnitř ní spustí až po načtení stránky. Také zde chybí
rovnítko:
window.onload = function() {
document.getElementById('tlacitko').onclick = prumer;
}
function prumer() {...}
Jak hodnotu ze selectu přeměnit na číslo?
V tomto případě bych ti doporučoval vůbec nepoužívat desetinné čárky,
ale tečky. Je to rychlejší a bezproblémovější řešení:
// HTML
<select id="vyber">
<option value="0.4">_40</option>
<select>
// JavaScript
var vaha = document.getElementById('vyber').value;
Jak získat hodnotu z textového pole?
Pokud zde je jedno pole, můžeš dané textové pole vybrat pomocí
ID. Při větším množstvím polí můžeš ale použít document.getElementsByTagName().
// HTML
<input type="text" id="cislo">
// JavaScript
var znamka = document.getElementById('cislo').value;
Pokusil jsem se vytvořit také ukázku jednoduchého programu, do kterého se postupně zadávají známky a jejich váhy. Při každém přidání se vypíše průměr do níže položeného odstavce.
Děkuji moc za rady. Můžeš mi jen vysvětlit, co má dělat tato funkce?
function pridatZnamku() {
var vaha = document.getElementById('vyber').value * 10;
var znamka = document.getElementById('cislo').value;
for (var i = 0, l = vaha; i < l; i++) {
znamky.push(znamka);
}
document.getElementById('prumerna-znamka').innerHTML = spocitejPrumer(znamky);
}
Pro upřesnění průměru. Průměr se (alespoň u nás na škole) počítá
tak, že mám-li dvě známky:
1 a 2, přičemž první známka je 100% a druhá jen 50%, tak průměr se
vypočítá (1+2) / (1+1,5).
Ta funkce nejdříve vezme hodnotu ze <select>, kde je uložena váha známky (např. 0.2) a vynásobí ji deseti, bude zde tedy uložena hodnota 2. Poté se z textového pole načte hodnota, která reprezentuje samotnou známku (např. 3) a nakonec tuto známku vloží do pole se všemi známkami tolikrát, jako je váha známky.
Ukážu to na tvém příkladu. Máš-li dvě známky, 1 (váha 1) a 2 (váha 0,5), výsledné pole se všemi známkami bude vypadat jako:
znamky = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2]; // Odpovídá průměru 1,333...
Posledním krokem je už jen vypsání průměru pole se všemi známkami do odstavce.
Zobrazeno 5 zpráv z 5.