Já bych řekl že se mu nelíbí ty tvoje podmínky. Ve většině programovacích jazyků můžeš porovnávat jen dvě čísla mezi sebou, například
if (a > b), počítač nepochopí že mu chceš říct
"když a je větší než b a c a d...". Jsou jazyky ve kterých se to dá, ale v těch se programuje úplně jinak
Nejlepší je tvořit program po malých kouscích, které budou fungovat samostatně. Tenhle se dá rozdělit na tři základní části:
1. načtení dat,
2. zpracování dat,
3. výpis výsledků.
To načtení a zpracování se dá dělat současně, ale pro přehlednost je oddělíme a budeme plýtvat pamětí i výkonem procesoru.
Takže pokud máš jistotu že ta čísla budou vždy čtyři, můžeš to načítání udělat takhle:
Kód: Vybrat vše
For i = 1 To 4
TextWindow.Write("Zadej " + i + ". číslo: ")
cislo[i] = TextWindow.ReadNumber()
EndFor
cislo[ ] pak nebude obyčejná proměnná, ale pole, a
i udává kolikátá buňka (kolikáté zadané číslo) v pořadí se zrovna zpracovává. Je to pracovní proměnná cyklu a ukazatel do pole,
i je odvozené od slova index. Pokud potřebuješ indexů víc najednou, používají se další písmena v pořadí:
j, k, l...
Druhá možnost je že uživatel zná počet čísel, který zadá jako první údaj:
Kód: Vybrat vše
TextWindow.Write("Zadej počet čísel: ")
pocet = TextWindow.ReadNumber()
For i = 1 To pocet
TextWindow.Write("Zadej " + i + ". číslo: ")
cislo[i] = TextWindow.ReadNumber()
EndFor
Výsledek bude tentýž, pole naplněné čísly v pořadí v jakém byla zadávána.
Myslím že na takhle jednoduchou úlohu není potřeba používat podprogramy, takže
Sub je trochu nadbytečný, pokud to není přímo požadováno v zadání. Druhá část programu by mohla vypadat takhle nějak, ve tvém podání s jednotlivými proměnnými:
Kód: Vybrat vše
If (cislo1 > cislo2) Then
max = cislo1
Else
max = cislo2
EndIf
If (cislo3 > max) Then
max = cislo3
EndIf
If (cislo4 > max) Then
max = cislo4
EndIf
Při použití pole to nebude tak roztahané:
Kód: Vybrat vše
max = cislo1
For i = 2 To Pocet
If (cislo[i] > max) Then
max = cislo[i]
EndIf
EndFor
Na začátku se jako počáteční hodnota do
max nastaví první zadané číslo, aby bylo s čím porovnávat, proto může cyklus začít až od 2. buňky pole.
Teď by mohla následovat další část programu, skoro stejná jako ta předchozí, kde budeš to pole znovu projíždět a hledat pro změnu minimální hodnotu, a nebo tuhle činnost můžeš přidat do toho předchozího cyklu jako druhou podmínku. Nezapomeň před cyklem nastavit počáteční hodnotu do proměnné
min!
A na závěr se podíváme co nám vyšlo:
Kód: Vybrat vše
TextWindow.Write("Největší číslo je: " + max)
Tak si z toho vyber, pohraj si s tím, a dej vědět jak pokračuješ.