Dobrý večer, potřebovala bych poradit, jak tento úkol mám naprogramovat. Dík
Vygeneruj a vypište 10 nahodných čísel od -30 do 70 a zjistěte průměr jen kladných čísel.
Připravím si dvě proměnné např soucet a pocet a obě vynuluji
V těle cyklu for (proběhne 10x):
- vygeneruji náhodné číslo v rozsahu -30 až 70
- číslo vypíšu na monitor
- porovnám, jestli je kladné, pokud ano:
- součet zvýším o vygenerované číslo
- pocet zvýším o 1
Po skončení cyklu vypíšu počet kladných čísel a průměr - ten stanovím jako soucet / pocet,
hu
#2 hlucheucho
myslíš takhle.
Dim nah As Single
Dim soucet As Integer
Dim prumer As Single
Dim i As Single
Dim pocet As Integer
rozsah = 70 - (-30) + 1
For i = 1 To 10
nah = Int(Rnd() * rozsah) - 30
Next i
If (nah > 0) And (nah > 30) Then
pocet = pocet + Str(nah) + ","
soucet = soucet + 1
prumer = prumer + Str(soucet / pocet)
End Sub
Ještě jsem to napsal takhle. Může mi někdo poradit, kde mám chybu. Díky za radu.
Sub main()
Dim i As Byte, pocetVIntervalu As Byte, rozsah As Byte
Dim nah As Single
Dim s As String
Dim vIntervalu As String
Dim prum As Single
pocetVIntervalu = 0
s = "Padla tato náhodná čísla: "
rozsah = 70 - (-30) + 1
vIntervalu = "V intervalu od 0 do 70 byla tato čísla: "
For i = 1 To 10
nah = Int(Rnd() * rozsah) - 30
If (nah >= 0) And (nah <= 70) Then
vIntervalu = vIntervalu + Str(nah) + ", "
pocetVIntervalu = pocetVIntervalu + 1
End If
s = s + Str(nah) + ", "
Next
prum = prum + Str(vIntervalu / pocetVIntervalu)
MsgBox s + Chr(10) + vIntervalu + Chr(10) + "Tedy v intervalu 0..70 bylo celkem " + Str(pocetVIntervalu) + " čísel"
MsgBox "prumer je" + Str(prum)
End Sub
#4 uzi
tohle nemůže fungovat
vIntervalu = vIntervalu + Str(nah) + ", "
prum = prum + Str(vIntervalu / pocetVIntervalu)
proměná "vintervalu" je řetězec to nemůžeš použít ve výpočtu, měl by sis udělat proměnou single pro sumu a v podmínce do ní přičítat tu novou hodnotu.
otázkou je z jaké lekce je ten úkol, zda se nemělo použít pole.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku