Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobry den, mam problem - profesorka zadala priklad na hadani slova ( uzivatel zada slovo - to se prevede na hvezdicky a pak druhy uzivatel hádá), mam to napsaný a funguje mi to, ale bohužel mi to profesorka neuznala , jelikoz tam mam GoTo a to nesmíme používat - Mám to prý předělat aby se mi to vracelo cyklem Do Loop - ale tento cyklus neumím a nevím jak na to ??? Je to v programu Visual Basic - ConsoleApplication... Díky za pomoc
Module Module1
Sub Main()
Dim slovo() As Char
Dim i As Integer
Dim pocetznaku As Integer
Dim pismeno As String
Dim pocetpokusu As Integer
Dim pokus As Integer
Dim spousteni As String
Dim zadani As String
start:
System.Console.WriteLine("! ! ! Šibenice ! ! !")
System.Console.Write("Klávesa Enter program spustí, slovo -konec- program ukončí:")
spousteni = System.Console.ReadLine
If spousteni = "konec" Then
End
Else
GoTo zacatek
End If
zacatek:
System.Console.WriteLine()
System.Console.Write("Zadejte slovo pro hádajícího: ")
zadani = System.Console.ReadLine()
Dim hadane As String = zadani.ToLower
System.Console.Clear()
Console.WriteLine("Slovo bylo vloženo do schránky, prosím předejte hru hráči dva a stiskněte Enter pro pokračování...")
Console.ReadLine()
System.Console.Clear()
pocetznaku = Len(hadane)
pocetpokusu = pocetznaku * 4
REM
System.Console.WriteLine("Hráči dva, hádáš slovo o " & pocetznaku & " znacích!")
ReDim slovo(pocetznaku - 1)
For i = 0 To pocetznaku - 1
slovo(i) = "*"
Next
For pokus = 1 To pocetpokusu
System.Console.WriteLine()
System.Console.Write("Hledané slovo: ")
System.Console.WriteLine(slovo)
System.Console.WriteLine("Pokus číslo " & pokus & ", zbývá/jí " & pocetpokusu - pokus & " pokusů/y.")
System.Console.WriteLine()
System.Console.Write("Zadej písmeno: ")
pismeno = System.Console.ReadLine()
hadej: For i = 0 To pocetznaku - 1
If hadane(i) = pismeno Then
slovo(i) = pismeno
If slovo = hadane Then
GoTo uhadnuto
End If
End If
Next
Next
System.Console.WriteLine("Lituji, neuhodl jsi. Hádané slovo bylo: " & hadane)
System.Console.WriteLine("")
GoTo start
uhadnuto:
System.Console.WriteLine()
System.Console.WriteLine("Gratuluji! Uhodl jsi slovo : " & hadane)
System.Console.WriteLine("Uhodl jsi to na " & pokus & ". pokus z celkových " & pocetpokusu)
System.Console.WriteLine()
System.Console.ReadLine()
System.Console.Clear()
GoTo start
End Sub
End Module
Offline

Do ... Loop napriklad tady nebo tady jsem nasel.
Mohlo by to vypadat treba takhle:
(snazil jsem se co nejmensi upravy, ale vymenil jsem ty dve posledni casti na konci)
Module Module1
Sub Main()
Dim slovo() As Char
Dim i As Integer
Dim pocetznaku As Integer
Dim pismeno As String
Dim pocetpokusu As Integer
Dim pokus As Integer
Dim spousteni As String
Dim zadani As String
Dim uhadnuto As Boolean
Do
System.Console.WriteLine("! ! ! Šibenice ! ! !")
System.Console.Write("Klávesa Enter program spustí, slovo -konec- program ukončí:")
spousteni = System.Console.ReadLine
If spousteni = "konec" Then
End
End If
System.Console.WriteLine()
System.Console.Write("Zadejte slovo pro hádajícího: ")
zadani = System.Console.ReadLine()
Dim hadane As String = zadani.ToLower
System.Console.Clear()
Console.WriteLine("Slovo bylo vloženo do schránky, prosím předejte hru hráči dva a stiskněte Enter pro pokračování...")
Console.ReadLine()
System.Console.Clear()
pocetznaku = Len(hadane)
pocetpokusu = pocetznaku * 4
REM
System.Console.WriteLine("Hráči dva, hádáš slovo o " & pocetznaku & " znacích!")
ReDim slovo(pocetznaku - 1)
For i = 0 To pocetznaku - 1
slovo(i) = "*"
Next
uhadnuto = 0
For pokus = 1 To pocetpokusu
System.Console.WriteLine()
System.Console.Write("Hledané slovo: ")
System.Console.WriteLine(slovo)
System.Console.WriteLine("Pokus číslo " & pokus & ", zbývá/jí " & pocetpokusu - pokus & " pokusů/y.")
System.Console.WriteLine()
System.Console.Write("Zadej písmeno: ")
pismeno = System.Console.ReadLine()
For i = 0 To pocetznaku - 1
If hadane(i) = pismeno Then
slovo(i) = pismeno
If slovo = hadane Then
uhadnuto = True
End If
End If
Next
If uhadnuto Then Exit For
Next
If uhadnuto Then
System.Console.WriteLine()
System.Console.WriteLine("Gratuluji! Uhodl jsi slovo : " & hadane)
System.Console.WriteLine("Uhodl jsi to na " & pokus & ". pokus z celkových " & pocetpokusu)
System.Console.WriteLine()
System.Console.ReadLine()
System.Console.Clear()
Else
System.Console.WriteLine("Lituji, neuhodl jsi. Hádané slovo bylo: " & hadane)
System.Console.WriteLine("")
End If
Loop
End Sub
End Module
Offline
Stránky: 1