Obsah lekce:
Aby naše programy mohly řešit složitější matematické vzorce, pak je potřeba, aby uměly další matematické funkce jako mocnina či odmocnina. Ukážeme si funkce mocnina a odmocnina v programovacím prostředí Borland Delphi 7.
Poznámka: Abychom mohli následující funkce v programu použít, tak je třeba do sekce uses našeho programu přidat knihovnu math. Knihovna je soubor, který obsahuje další naprogramované funkce (například matematické), které, po vložení tohoto souboru, umí náš program použít (kdybychom do hlavičky programu potřebnou knihovnu nevložili, pak by náš program funkce z této knihovny neznal a hlásil by chybu).
Program Matematika;
uses SysUtils, Math;
...
Pro výpočet funkce mocnina je v Delphi k dispozici funkce Power (což je anglický termín pro mocninu). V nápovědě pro Delphi zjistíte toto:
Function Power(Base, Exponent: Extended): Extended;
xy = exp(y * ln(x))
Raise Base to any power, Base > 0
Definice funkce říká, že se volá (použije v programu) příkazem Power, který má dva parametry:
Chceme-li tedy, aby náš program spočítal a vypsal například výraz a5, pak v programu napíšeme writeln(power(a,5));
Pro výpočet funkce odmocnina je v Delphi k dispozici funkce sqrt (což je zkratka pro anglický termín square root - odmocnina). V nápovědě pro Delphi zjistíte toto:
Function Sqrt(X: Extended): Extended;
square root: sqrt(x) = x0.5
Jak funkce mocnina, tak odmocnina již ke své funkčnosti potřebují obor reálných čísel. Je tedy nutné výsledky výpočtů vkládat do proměnných, které jsou datového typu real (nebo extended) - datový typ real je určen právě pro ukládání desetinných čísel.
Program Mocnina_cisla;
var a,b,e:real;
begin
writeln('Zadejte prosim zaklad mocniny:');
readln(a);
writeln('Zadejte prosim exponent mocniny:');
readln(e);
b:=power(a,e);
writeln('Vyraz ',a,'^',e,'=',b);
readln;
end.
Podíváme-li se na zobrazený výsledek výpočtu, pak můžeme vidět například toto: 2,780734536237E0002. Co to znamená? Jedná se o takzvaný vědecký zápis reálného čísla. Písmeno E s číslem 0002 v zápisu znamená 100002=102. Výsledek tedy je 2,780734536237 krát 102. Takovýto výsledek je sice správný, ale pro běžného uživatele špatně čitelný. Náš program proto takto upravíme:
Program Mocnina_cisla;
var a,b,e:real;
begin
writeln('Zadejte prosim zaklad mocniny:');
readln(a);
writeln('Zadejte prosim exponent mocniny:');
readln(e);
b:=power(a,e);
writeln('Vyraz ',a,'^',e,'=',b:5:7);
readln;
end.
Co se v programu změnilo? Ve výpisu proměnné b ma obrazovku jsme za proměnnou přidali dvě čísla oddělená dvojtečkou. První z nich říká, že číslo b bude vypsáno na minimálně 5 míst (znaků na řádku) - to pro nás není nyní příliš podstatné. Důležitá však je druhá hodnota, která říká, že číslo bude vypsáno na 7 desetinných míst. Obecně můžeme volit libovolná čísla a tím omezovat výpis počtu desetinných míst. Předchozí vypsané číslo z tohoto programu už by mělo vypadat takto: 278,0734536.
V matematických vzorcích se také často setkáme s Ludolfovým číslem. V delphi lze použít konstantu pi, která obsahuje požadovanou hodnotu nebo místo ní zapsat například přímo číslo 3,14159 (podle toho, jakou potřebujeme přesnost).
Napište program pro výpočet objemu koule a válce. Potřebné vzorce nalezněte na Internetu. Uživatel zadá hodnoty proměnných.
Napište program pro výpočet vzorce ax+by. Uživatel zadá hodnoty proměnných.