Dodawanie w konsoli

0

Witam,

Nigdzie w sieci nie mogę doszukać się informacjia na temat w jaki sposób mogę stworzyć
skrypt, który przy każdym odświeżeniu konsoli doda nam kolejną wylosowaną liczbę z random'a.
np. 8 + (odświeżenie) + 23 itd. - dodawanie liczb losowych oraz ich zsumowanie na sam koniec.

0

Co rozumiesz poprzez odświeżenie konsoli?

0

Co masz na myśli pisząc o odświeżaniu konsoli? Jeśli chodzi Ci o przeładowanie strony (ponowne ładowanie skryptu), to możesz w pamięci przeglądarki zapisywać wygenerowaną wartość i przy każdym ładowaniu strony odczytywać, dodawać, nadpisywać i logować do konsoli.

0

Pewnie chodzi mu o przeglądarkę. Nie wiem jak w w innych przeglądarkach ale na firefox taki kod działa, to znaczy przy każdym odświeżaniu będzie zwiększał n o 1. Zrób plik o nazwie np index.html gdziekolwiek i wstaw ten kod, a potem wciskaj F5 w swojej przeglądarce. W konsoli (console.log) zobaczysz że licznik się zwiększa. Rozwiązanie to localStorage tylko musisz pobierać wartość i zapisywać do zmiennej zanim wykonasz operacje na tym. Ot cała...

<html>
<head></head>
<body>
    <script>
        var n = (localStorage.getItem('val1')); // pobierz wartość val1 z localstorage
        localStorage.setItem('val1', (++n)); // zwiększa o 1
        console.log(localStorage.getItem('val1')); // wyświet w konsoli (F12 na firefox)
    </script>
</body>
</html>
0

Generalnie chodzi o to, że mam takie zadanie. Być może źle je interpretuje lub jest ono źle napisane. Stawiam na to pierwsze.

Skonstruuj algorytm w postaci skryptu obliczającego sumę liczb całkowitych generowanych losowo z przedziału <10,39>. Liczby te powinny być wyświetlane na konsoli. Dodawanie liczb losowych powinno zakończyć się, gdy wartość kolejnej wygenerowanej liczby jest podzielna przez 6.

Stąd moje odświeżanie.

0

Gdzie tam masz napisane coś o odświeżaniu?

2

Prawdopodobnie chodzi o coś w stylu:

let suma = 0;

while (true) {
  let n = wylosuj_liczbe_z_przedzialu(10, 39);

  console.log(n)

  if (n jest podzielne przez 6) {
    break;
  }

  // IMO nie jest jednoznaczne czy liczba podzielna przez `6` powinna być jeszcze uwzględniona w sumowaniu, czy już nie - przyjmijmy zatem, że nie
  suma += n
}
1

Może coś takiego, ale nie mam pewności. Losujesz liczby w tym przedziale w pętli. Następnie Math.round podnosisz do górnej wartości bo samo Math.random() * i da ci zmiennoprzecinkową liczbę a potrzebna jest całkowita. Na końcu warunek i modulo (reszta z dzielenia) jeśli nie ma końcówki wtedy zwraca 0 i to jest wynik którego szukasz, koniec programu. I za każdym razem jak będziesz odświeżał dostaniesz inne liczby random i inną listę w konsoli.

<html>
<head></head>
<body>
    <script>
        var i = 0;
        var min = 10;
        var max = 39;
        
        for (i; i <= max; i++) {
            if (i >= min && i <= max) {   
                var random = Math.random() * i;
                random = Math.round(random); // Math.round Zwraca daną liczbę zaokrągloną do najbliższej liczby całkowitej. Dlatego nie Math.floor itp bo nie może być 0
                console.log(random + " " +  i + " ==> " + (random % 6));   // % - modulo - reszta z dzielenia, jeśli jest 0 wtedy Twój warunek jest spełniony
                if ((random % 6) == 0) break; // wyłącz to żeby zobaczyć całą listę wartości w konsoli
            }           
        }
    </script>
</body>
</html>
0
Patryk27 napisał(a):

Prawdopodobnie chodzi o coś w stylu:

let suma = 0;

while (true) {
  let n = wylosuj_liczbe_z_przedzialu(10, 39);

  console.log(n)

  if (n jest podzielne przez 6) {
    break;
  }

  // IMO nie jest jednoznaczne czy liczba podzielna przez `6` powinna być jeszcze uwzględniona w sumowaniu, czy już nie - przyjmijmy zatem, że nie
  suma += n
}

Coś mi tu śmiga, działa tak samo jak przy: (i nie przerywa skryptu)

             function Random(x, y)
            {
                return Math.floor(Math.random() * (y - x + 1) ) + x;
            }
0

Pokaż cały kod.

1 użytkowników online, w tym zalogowanych: 0, gości: 1