Java týden První novoroční výprodej
Hledáš brigádu v IT, která bude 100 % home office a 100 % flexibilní? Pak napiš na: redakce [zavináč] itnetwork.cz pro více info!
80 % bodů zdarma díky akci Black Friday! Tento týden rovněž sleva na e-learning Java až 80 %
Avatar
Radek Morris Sedláček:19.12.2019 9:14

Ahoj prosím o pomoc.

Vytvářím generátor náhodných čísel rozsah zadává programátor.
Počet generovaných čísel zadává uživatel.
Generátor vypíše vygenerovaná čísla v zadaném počtu.
vypíše nejmenší vygenerované číslo
vypíše nejvetšejší vygenerované číslo
vypíše průměrnou hodnotu vygenerovaných čísel.

Ano mam to do školy a nejsem programátor a ani se nasmažím být.
Neřeším validaci html kódu celý zdroják přenesu do jiné stránky, kde jsou i jiné části jako generování grafu, accordion a jiné.

Jenže nevím jak dál jak projít vygenerované čísla zjistit Max a min hodnotu a udělat průměr.

Děkuji za pomoc (nejsem již nejmladší 43 let)
Něco už mam splácáno, ale nevím jak vypsat poslední uvedené věci děkuji.

Zkusil jsem:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <form name="random">
            <p><label for="kolik">Počet genrovaných čísel: </label><input name="kolik" value="5"></p>
            <p><textarea name="vystup" cols="50" rows="7"></textarea>
            <p><input type="button" value="Generuj!" onclick="generuj(document.random);"></p>
        </form>

        <script>
            function generuj(form) {
                form.vystup.value = "";
                for(var a = 0,
                        b = Number(form.kolik.value) || 0;
                        a !== b; a++) form.vystup.value += Math.floor(Math.random() * 100) + 1 + "\; ";
            };
        </script>
    </body>
</html>

Chci docílit: Potřebuji aby v text v area na dalších řádcích vypsalo:
Nejmenší vygenerované číslo:
Nevetší vygenerované číslo:
Průměrná hodnota vygenerovaných čísel:

Editováno 19.12.2019 9:16
 
Odpovědět
19.12.2019 9:14
Avatar
Verquido
Redaktor
Avatar
Odpovídá na Radek Morris Sedláček
Verquido:19.12.2019 22:51

Jdi na to přes pole :-)

let cisla = [], sum = 0;
for(let a = 0, b = Number(form.kolik.value) || 0; a !== b; a++) {
  cisla[a] = Math.floor(Math.random() * 100) + 1
  sum += cisla[a]
  form.vystup.value += cisla[a] + "\; "
}

form.vystup.value += '\n' + Math.max(...cisla)
form.vystup.value += '\n' + Math.min(...cisla)
form.vystup.value += '\n' + (sum / cisla.length)

Šlo by to určitě udělat lépe, ale vzhledem k tvému příkladu je tento přístup nejlepší.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
19.12.2019 22:51
Avatar
Radek Morris Sedláček:19.12.2019 23:02

Děkuji za pomoc přes pole jsem se o to snažil ale nedařilo se mi tam dostat počet generovaných čísel.

Jen mám problém co mam teď volat ve funkci onclick="gene­ruj(document.ran­dom);

 
Nahoru Odpovědět
19.12.2019 23:02
Naši partneři možná hledají právě tebe!
Avatar
Radek Morris Sedláček:19.12.2019 23:08

Děkuji za řešení ano je to funkční a moc mi to pomohlo. Jen se zeptám na dotaz jak ošetřím aby po stisku tlačítka genruj došlo ke smazání původních hodnot a vypsaly se nové.

 
Nahoru Odpovědět
19.12.2019 23:08
Avatar
Radek Morris Sedláček:19.12.2019 23:42

Ještě jednou děkuji a pro lidi jako já dávám cele řešení s tím, že průměr zaokrouhluji na dvě desetinná čísla pomocí "toFixed(2)"

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <form name="random">
            <p><label for="kolik">Počet genrovaných čísel: </label><input name="kolik" value="5"></p>
            <p><textarea name="vystup" cols="50" rows="7"></textarea>
            <p><input type="button" value="Generuj!" onclick="generuj(document.random);"></p>
        </form>

        <script>
            function generuj(form) {
                let cisla = [], sum = 0;
                form.vystup.value = "" + "Vygenerované čísla: ";
            for(let a = 0, b = Number(form.kolik.value) || 0; a !== b; a++) {
            cisla[a] = Math.floor(Math.random() * 100) + 1
            sum += cisla[a]
            form.vystup.value += cisla[a] + "\; "
            }

            form.vystup.value += '\n' + "Největší vygenerované číslo: " + Math.max(...cisla)
            form.vystup.value += '\n' + "Nejmenší vygenerované číslo: " + Math.min(...cisla)
            form.vystup.value += '\n' + "Průměr vygenerovaných čísel: " + (sum / cisla.length).toFixed(2) + "\n";
            };
    </script>


        </script>
    </body>
</html>

Určitě jak už uvedl Verquido, který mi pomohl, lze nalézt i jiné řešení.

 
Nahoru Odpovědět
19.12.2019 23:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.