IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
NevimUž
Člen
Avatar
NevimUž:13.1.2022 18:14

Hezký den všem přeju, potřeboval bych trochu poradit. Jsem úplný začátečník a už nevím jak si poradit s jedním příkladem. Stačí jen trochu popožduchnout . Tady je zadání "Program vygeneruje deset náhodných celých čísel (např. od -90 do 100). Zjistěte, kolik z nich je v určitém intervalu (např. od 10 do 50)"

Zkusil jsem: Takhle jsem začal a nevím jak dosáhnout toho aby mi program řekl kolik je čísel v tom intervalu od 10 do 50 z těch náhodně vygenerovaných čísel. Děkuji za odpověď.

Sub main()
Dim i As Single, pocetCiselVIn­tervalu As Single, s As String
s = ""
pocetCiselVIn­tervalu = 0

For i = 1 To 10
s = s + Str(Int(Rnd() * 191 - 90))
pocetCiselVIn­tervalu = pocetCiselVIn­tervalu
Next i
MsgBox "nahodna cisla jsou : " + s + " cisel v intervalu od 10 do 50 je : " + Str(pocetCisel­VIntervalu)
End Sub

Chci docílit: Učím se na programátora od píky jak se říká.

 
Odpovědět
13.1.2022 18:14
Avatar
DarkCoder
Člen
Avatar
Odpovídá na NevimUž
DarkCoder:13.1.2022 19:03

Máš-li celočíselnou proměnnou num, které přiřazuješ výsledek funkce generující náhodné číslo v intervalu a proměnnou count, inicializovanou na 0, představující počet čísel v intervalu, pak v cyklu for o 10 opakování získáš počet tak že otestuješ rozsah pomocí if a logického součinu a v případě platnosti inkrementuješ proměnnou count.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
13.1.2022 19:03
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Odpovídá na NevimUž
Matúš Olejník:13.1.2022 23:33

Neovládam veľmi VBA, ale malo by fungovať

Sub Main()
    Dim randomIntervalFrom, randomIntervalTo, testIntervalFrom, testIntervalTo As Integer
    Dim correctNumbersCount, numberOfTests As Integer
    Dim randomNumber As Integer
    Dim i As Integer

    numberOfTests = 10

    randomIntervalFrom = -90
    randomIntervalTo = 100

    testIntervalFrom = 10
    testIntervalTo = 50

    correctNumbersCount = 0

    Randomize

    For i = 0 To numberOfTests - 1
        randomNumber = Int((randomIntervalTo - randomIntervalFrom + 1) * Rnd + randomIntervalFrom)
        Console.Write (Str(randomNumber) + " ")

        If testIntervalFrom < randomNumber And randomNumber < testIntervalTo Then
            correctNumbersCount = correctNumbersCount + 1
        End If
    Next
    Console.WriteLine
    Console.WriteLine ("Count of correct numbers in interval (" + Str(testIntervalFrom) + ", " + Str(testIntervalTo) + ") is " + Str(correctNumbersCount))
End Sub
Nahoru Odpovědět
13.1.2022 23:33
/* I am not sure why this works but it fixes the problem */
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 3 zpráv z 3.