Tak hlavně ukonči tu volbu z Menu skokem na Začátek, takhle vjedeš při zadání jakéhokoliv neplatného čísla rovnou do zadání nového zaměstnance

Proměnná
i je tam úplně zbytečná, tu použiješ akorát v cyklech, ve všech ostatních případech vystačíš s tou
počet. Mimochodem, většina programovacích jazyků nedovoluje v názvech proměnných nebo funkcí používat diakritiku.
Chyba při zadání je tenhle řádek:
zaměstnanec[i] = zaměstnanec[i+1]Tím si zadané jméno ihned přepíšeš vyšší položkou, která ještě neexistuje, takže na jeho místo zkopíruješ prázdný řetězec a ten se pak pokoušíš vypisovat... On se ti samozřejmě zobrazí, ale nic v něm není
Není ve SmallBasicu příkaz GOSUB? Ono GOTO se má používat minimálně, jen v nejnutnějších případech*, a pokud možno vůbec, protože nezapadá do zásad strukturovaného programování! Takže
GOSUB NovýKód: Vybrat vše
Nový: 'Přidání nového zaměstnance
TextWindow.WriteLine("Zadej jméno zaměstnance:")
počet=počet+1
zaměstnanec[počet] = TextWindow.Read()
IF LEN(zaměstnanec[počet])>0 then
TextWindow.WriteLine("Zaměstnanec " + zaměstnanec[i] + " byl přidán do evidence")
ELSE
TextWindow.WriteLine("CHYBA: Nebylo zadáno jméno!")
počet=počet-1
END IF
Return
Funkce LEN v BASICu zjišťovala délku řetězce, zkus pro ní najít ekvivalent.
Není v SB nutné dimenzovat velikost pole? Ve starších dialektech bylo možné použít automatickou velikost, ale ta byla vždy , když jsi potřeboval jiný počet, musel jsi ho deklarovat na začátku programu:
DIM zamestnanec(1000)V mazání musíš kopírovat vyšší položku, ne předchozí, takže
zaměstnanec[i] = zaměstnanec[i+1]
* To zamená že se na GOTO máš vykašlat, dokud nebudeš psát programy dlouhé aspoň deset tisíc řádků
