Spousta matematických funkcí jednoduše v Delphi…
Tento díl Tipů a triků v Delphi bude zaměřen na matematické i různé jiné funkce, které pracují s čísly.
Odmocnina
Vložme si na formulář jeden label
, button
a edit
. Do události OnClick
tlačítka Button1
napišme toto:
procedure TForm1.Button1Click(Sender: TObject);
var
cislo:real;
begin
cislo := StrToInt(Edit1.text);
cislo := Sqrt(cislo); // zde provedeme odmocnění čísla funkcí sqrt
Label1.caption := FloatToStr(cislo);
end;
Přičítaní a odčítaní čísel
Když chceme nějaké číslo zvětšit či zmenšit o nějakou hodnotu, můžeme použít funkce Inc
a Dec
. Ukázka:
procedure TForm1.Button1Click(Sender: TObject);
var
cislo:integer;
begin
cislo := 10; // nastavíme si číslo na 10
Inc(Cislo,5); // k číslu se nám přičte pět
Inc(Cislo); // k číslu se nám přičte jedna
Dec(cislo); // od čísla se nám odečte jedna
Dec(cislo,5); // od čísla se nám odečte pět
end;
Absolutní hodnota
Ke zjištění absolutní hodnoty nám slouží funkce Abs
.
procedure TForm1.Button1Click(Sender: TObject);
var
cislo:integer;
begin
cislo := -20; // nastavíme si číslo na -20
cislo := Abs(Cislo); // Zjistíme absolutní hodnotu čísla což je 20
ShowMessage(IntToStr(cislo)); // vyhodíme hlášku s výsledkem
end;
Náhodné číslo
Určitě jste již někdy potřebovali zjistit náhodné číslo. Uvádím příklad:
procedure TForm1.Button1Click(Sender: TObject);
var
cislo:integer;
begin
Randomize; //náhodná čísla budou pokaždé jiná
Cislo := Random(20)+1; //náhodná čísla budou od 1 do 20
Label1.caption := IntToStr(cislo) //zobrazíme číslo do labelu
end;
Poznámka: Kdybychom tam nedali příkaz randomize
, tak by ta čísla byla náhodná, ale vždy stejná. To znamená, že když bychom spustili program, tak by nám to hodilo např. čísla 4, 8, 13, 18, pak bychom program vypnuli, a jakmile bychom ho znovu zapnuli a generovali náhodná čísla, tak by to opět začínalo 4, 8, 13, 18…
Zaokrouhlení čísla
Pro zaokrouhlování desetinných čísel na čísla celá se hodí funkce Round
.Příklad:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(Round(12.499)));
end;
Po stisknutí tlačítka button1
nám funkce vrátí zaokrouhlené číslo 12
a my ho zobrazíme. A nebo pak je ještě „jedna“ možnost, a to že přidáme do uses
jednotku Math
a použijeme funkci RoundTo
. Druhý příklad:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FloatToStr(RoundTo(12.439,-2)));
end;
Pozor: Druhý parametr funkce RoundTo
může být číslo od −37 do 37, menší ani větší ne.
Tabulka znázorňuje použíti funkce RoundTo:
Vyjádření | Hodnota |
RoundTo(1234567, 3) | 1235000 |
RoundTo(1.234, -2) | 1.23 |
RoundTo(1.235, -2) | 1.24 |
RoundTo(1.245, -2) | 1.25 |
Poznámka: Funkce RoundTo
se může nastavit pomocí procedury SetRoundMode
.
Porovnávání dvou čísel
Kdybychom chtěli porovnat dvě čísla, je možné použít funkci max
. Do funkce max
zadáme dvě čísla a ona nám porovná, které z nich je to větší. Naopak, když budeme chtít zjistit, které ze dvou čísel je menší, je tu pro nás funkce min
. Nejprve však musíme do Uses
přidat jednotku Math
. Příklad:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Menší číslo z čísel 33 a 13 je: '+IntToStr(Min(33,13)));
ShowMessage('Větší číslo z čísel 33 a 13 je: '+IntToStr(Max(33,13)));
end;
Trigometrické funkce
Jako příklad si uděláme program, který nám bude počítat sin, cos, tan, cot úhlu
. Úhel budeme zadávat do edit1
. Upozornění: Funkce cos, sin, tan, cot
vyžadují vstupní hodnotu v radiánech, ne ve stupních! Proto převedeme uhel ze stupňů na radiány pomocí funkce DegToRad
. Zase musíme přidat do uses
jednotku Math
. Příklad:
procedure TForm1.Button1Click(Sender: TObject);
var
Uhel:Real;
Vys1, Vys2, Vys3, Vys4 :Real;
begin
Uhel := StrToFloat(Edit1.Text);
Vys1 := Cos(DegToRad(Uhel));
Vys2 := Sin(DegToRad(Uhel));
Vys3 := Tan(DegToRad(Uhel));
Vys4 := Cot(DegToRad(Uhel));
end;
Nyní máme výsledky uloženy v proměnných vys1, vys2, vys3 a vys4
. A teď už je jen na vás, co s nimi uděláte.
PI
ShowMessage(FloatToStr(PI));
Příklad vypíše hodnotu pí. Tato konstanta je uložena v jednotce System
.
To jest pro tento díl vše.