03. Programovací jazyk LOGO 2
Přidal/a admin dne July 26 2010 15:24:04
Řešení úkolů z minulé kapitoly:
Proměnná - opakování
Vyhrazené místo v paměti pro dočasné uložení dat v programu. Rozsah platnosti proměnné:
- lokální
-globální
Rozdíl mezi proměnnou a konstantou: konstanta za běhu programu nemění svou hodnotu.
U proměnných definujeme datový typ proměnné (implementován jako třída) - základní datové typy - text, číslo, datum....Je možná (nutná) konverze mezi datovými typy - implicitní, explicitní.
Příklad - definujte proceduru pro nakreslení kruhu o zadaném obvodu. Obvod musí být přirozené číslo, protože odpovídá počtu opakování příkazu repeat
to kruznice.o :o
repeat :o [forward 1 right ( 360 / :o )]
end
Tato procedura funguje, ale má jednu nevýhodu. V každém kroku příkazu repeat ( tedy :o krát) se počítá obvodový úhel, což zpomaluje výpočet. Řešením je použití pomocné lokální proměnné, ve které si tuto hodnotu uchováme během provádění procedury.
to kruznice2.o :o
local "o.uhel
make "o.uhel ( 360 / :o )
repeat :o [forward 1 right :o.uhel]
end
(Příkazem make jsme definovali proměnnou)
Funkce
Funkce na rozdíl od procedury vrací hodnotu. Parametry funkce jsou v podstatě lokální proměnné. (Parametry mohou být také volané hodnotou - předávaný parametr,vytváří se nová proměnná). Výstupní hodnota příkaz output, volání funkce print název, show název. Ukončení funkce END
Ukázka použití funkce - výpočet obvodu kruhu
Pro další výpočty definujeme proměnnou pi, jejíž hodnotou bude přibližná hodnota Ludolfova čísla:
make "pi 3.1415926
zkontrolujeme
print :pi
Definice funkce pro výpočet obvodu kruhu (kružnice):
to o.kruhu.r :r
output (2 * :pi * :r)˙
end
a vyzkoušíme, zda výpočet funguje
to o.kruhu.r 4
Poznámka:
Při zobrazení výsledků (např. pomocí print)zaokrouhluje program na dvě desetinná místa. Pokud chceme zobrazit více desetinných míst (max. dvacet platných cifer) využijeme příkaz fformat:
fformat 10
Úkoly:
1. Definujte funkce pro výpočet obsahu a obvodu obdélníka, čtverce, trojúhelníka.
2. Definujte funkce pro výpočet objemu a povrchu kvádru a krychle, využívající dříve definované funkce pro obdélník a čtverec)