Programujeme v Delphi: Podmienky a matematické funkcie

Lukáš Kuzmiak  /  25. 06. 2003, 00:00

Takže všetko sa podarilo a my sa opäť stretávame. Dnes si ukážeme použitie podmienok a základy matematických funkcií. Najskôr si ukážeme logické hodnoty. Je to veľmi jednoduché, ideme na to.

Logické hodnoty - Najčastejšie slúži na vetvenie výpočtu: cyklus s podmienkou na začiatku alebo na konci (while) alebo pre podmienený príkaz (if). Vždy je buď pravdivý alebo nepravdivý, má jednu z dvoch logických hodnôt true alebo false. Logickú hodnotu vrátia napr. relácie: <, <=, =, <>, >=, >. Logické operátory: not, or, and. POZOR !!! Každý výraz sa vyhodnocuje zľava doprava !!! Ešte detail: výrazy, v ktorých je nejaký logický operátor sa musia zapisovať v zátvorkách napr. f>=2 and f<=100 má byť zapísané (f>=2) and (f<=100).

WHILE - cyklus s podmienkou na začiatku

Všeobecný zápis cyklu je:
while podmienka do príkaz
Cyklus otestuje podmienku a ak je pravdivá (true), tak sa vykoná príkaz a celý sa opakuje dokiaľ je podmienka pravdivá. Keď sa stane nepravdivou (false) opakovanie cyklu sa zastaví. Treba si však dať pozor na nekonečné cykly.

FOR - nepotrebný ??!!

To "nepotrebný" je tam preto, lebo for sa vlastne dá nahradiť aj cyklom while. Ako ? Takto:
for i := 1 to 10 do Form1.Left := Form1.Left + i;
sa dá nahradiť:
i := 1;
while i <= 10 do begin
Form1.Left := Form1.Left + i;
i := i + 1;
end;


Čo vlastne vykonávajú tieto dva príkazy ??? Oba budú Formulár posúvať doprava najskôr o 1 bod potom o 2 ..... a takto ďalej až do 10. Takže celkovo sa formulár posunie o 1+2+3+4+5+6+7+8+9+10 = 55 bodov. Myslím, že zatiaľ sú podmienky celkom jasné. Teraz ešte jedna jednoduchá podmienka a síce if.

IF - jednoduchá, ale dôležitá podmienka

Tento typ podmienky má viacero variantov budeme sa s nimi zoznamovať postupne od najmenej až po viac náročné. Prvý typ:
if podmienka then príkaz;
napr. if b=0 then Label1.Caption := 'Béčko je nula';
Ale čo urobíme ak potrebujeme niečko na spôsob: ak sa x = 5 vtedy y := 12 ale ak nie vtedy y = 14. V takomto prípade použijeme "rozšírenú" podmienku if. Tá má takúto syntax:
if podmienka then príkaz
else príkaz
.
Takže v našom probléme by bol zápis takýto:
if x=5 then y:=12
else y:=14;

Ešte naša obľúbená poznámočka: Pri zložitejšom zápise sa na konci riadku s if NEPÍŠE bodkočiarka, viz. všeobecný zápis. Ako ste si možno všimli pri nahradení príkazu for príkazom while, ak chceme vykonať viac príkazov ako jeden použijeme slovíčka begin a end medzi ne napíšeme nami zvolenú sériu príkazov. Ak používame len jeden príkaz, slovíčka begin a end môžeme vynechať, ale ak príkaz napíšeme medzi begin a end nič sa nestane, ibaže to bude zbytočne zložité. Príklad: viz. FOR

Matematické funkcie

Tieto úkony sú v prostredí Delphi veľmi jednoduché. Používajú sa operátory +, - a *, no miesto / (delenie) sa používa špeciálne slovíčko div. Ako vždy jednoduchý príklad:
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,vysledok:integer;

begin
x := 20;
y := 5;
vysledok := x div y;
Label1.Caption := 'Výsledok je: ' + IntToStr(vysledok);
end;
Možno Vás trochu zmiatol výraz IntToStr(vysledok) je tam lebo vlasnosť Caption komponenty Label musí byť typu string je to niečo ako konvertor typu integer do typu string. Niekto sa možno pýta: "A prečo nemôžme premennú vysledok deklarovať priamo typu string ???". Nemôžeme to urobiť lebo matematické funkcie môžeme robiť len s číselnými premennými a to sú napr. integer, float, double ... proste len číselné premenné. Takýchto "konvertorov" je veľmi veľké množstvo budeme si ich predstavovať podľa potreby. To by bolo z dnešnej časti všetko, no ešte jeden návrh: Zaviedol by som niečo ako Domáce úlohy ja by som Vám dal úlohu a vy by ste ju vypracovali (samozrejme v Delphi) a poslali mailom späť, vaše názory na tento nápad očakávam v diskusii. Alebo píšte na delphi@inet.sk. Dnes slovníček vynecháme, pretože si nemáme čo vysvetliť, ak by Vám ale niečo nebolo jasné napíšte mi.

Keď nezomriem od tepla opäť sa stretneme o týždeň. Do programovania !!

-LuKaSh_88-

Neprehliadnite: