Delphi - 3. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Delphi - 3. lekceDelphi - 3. lekce

 

Delphi - 3. lekce

Google       zatím neprovedena       14. 4. 2005       25 583×

Tahle kapitola by měla být trochu delší než zatím byli ty ostatní. Povíme si něco o proměnných a konstantách.

Reklama
Reklama

 

Lekce č.3

 

Tahle kapitola by měla být trochu delší než zatím byli ty ostatní. Povíme si něco o proměnných a konstantách.

 

Proměnné a konstanty

Pokud jste došli alespoň do osmé třídy základní školy tak musíte vědět co jsou to proměnné a konstanty. Ty jsou samozřejmě v Delphi taky. V Object Pascalu ale přece jenom fungují trochu jinak než v matematice tak si o nich něco povíme. Narozdíl od Cecka se musí deklarovat na předem určeném místě. Proměnné a konstanty jsou různého typu. V této lekci si řekneme jak pracovat s celočíselnými a reálnými typy. To znamená že budeme ukládat celá čísla a čísla s desetinnými místy.

Pro práci s celými čísli nabízí Delphi dva základní typy:

 

Typ Rozsah Velikost
Integer -2147483648..2147483647 32 bitů se znaménkem
Cardinal 0..4294967295 32 bitů bez znaménka

 

Mi budeme nejčastěji využívat integer. Je dobré je používat protože jejich velikost se mění v závislosti na verzi Delphi, nazývají se generické. Pak existují ještě další typy:

 

Typ Rozsah Velikost
Shortint -2147483648..2147483647 32 bitů se znaménkem
Smallint 0..4294967295 32 bitů bez znaménka
Longint 0..4294967295 32 bitů bez znaménka
Int64 0..4294967295 32 bitů bez znaménka
Byte 0..4294967295 32 bitů bez znaménka
Word 0..4294967295 32 bitů bez znaménka
Longword 0..4294967295 32 bitů bez znaménka

 

To jsou typy fundamentální. To znamená že jejich velikost je stejná ve všech implementacích jazyka Object Pascal.

Teď si uvedeme ještě ještě tabulku s reálnými typy. Jejich požití je stejné jako u celočíselných typů. To si za chvíli ukážeme.

 

Typ Rozsah Přesnost Velikost
Real48 2.9 x 10-39..1.7 x 1038   11-12      6
Single 1.2 x 10-45.. 3.4 x 1038     7-8      4
Double 5.0 x 10-324..1.7 x 10308   15-16      8
Extended 3.6 x 10-4951..1.1 x 104932   19-20     10
Comp -263 + 1..263 - 1   19-20      8
Real 5.0 x 10-324..1.7 x 10308   15-16      8
Currency -922337203485477.5808..
-922337203485477.5807
  19-20      8

 

 

Ted si zkusíme deklarovat proměnou dát jí nějakou hodnotu a následně jí vypsat.

Takže umístěte na formulář tlačítko . Dvakrát kratce na něj ťukněte. Delphi vás přemístí do editoru kódu na proceduru Button1Click(Sender: TObject)  která se v programu vykoná když ťuknete na tlačítko. Proměnné se deklarují v řádku nad nad slovem begin za klíčovým slovem var. Pokud chceme deklarovat proměnnou i která je typu integer bude to vypadat takto:

 

...

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin

...

 

 Protože je tato proměnná deklarována v proceduře (těmi se budeme zabývat později) je lokální. To znamená že jí můžeme používat pouze v této proceduře a ne nikde jinde. Opak lokální proměnné je globální proměnná. Ta se deklaruje také za slovem var ale na začátku programu.

 

...

var
Form1: TForm1;
globalni:integer;


implementation

...

 

Takto deklarovanou proměnou můžeme používat v celém programu. Ale zpět k našemu tlačítku.

I když jsme proměnné nepřidělili žádnou hodnotu můžeme jí vypsat. Jak ukazuje následující úryvek kódu.

 

...

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
Button1.caption:=IntToStr(i);
end;

...

 

Nyní když spustíme program. Sami vidíte že když kliknete a tlačítko zobrazí se nějaké podivné číslo. To je tím že jsme proměnné nepřidělili žádnou hodnotu. Pokud chcete proměnné přidělit nějakou začáteční hodnotu která se do ní uloží na začátku programu tak není moc snadnějších věcí než si v Object TreeView Označit formulář (Form1) v Object Inspektoru kliknout na záložku události (events) a pak dvakrát kratce kliknout na kolonku OnCreate . Nyní jsme se dostali do procedury která se vykoná když se vytvoří tento formulář. A protože je to hlavní formulář tak se to vlastně vykoná na samém začátku programu a už se to nezopakuje. Noa jak už vám snad došlo v této proceduře prostě přidáte proměnné požadovanou hodnotu.

 

Co za záhadné znaky jsem to vlastně napsal aby se tlačítko vypsalo? Jak určitě víte Button1 je jméno tlačítka a caption je vlastnost tlačítka do které se zapisuje text na tlačítku (podobně jako u Label). Takže pomocí . se manipuluje s vlastnostmi určité komponenty. Je to podobné jako v javascriptu. Pokud by jsme třeba chtěli změnit text v komponentě label bude to pravděpodobně vypadat takto

 

...

Label1.caption:="cokoliv";

...

 

Operátor := je jednoznačně ten nejpoužívanější. Prostě a jednoduše přiřazuje. Funguje podobně jako = v php nebo třeba C++.

Poslední dosud neobjasněná část (IntToStr(i)) nám přetypovává proměnnou i která je typu integer na string. Kdyby jsme tak neudělali program by nahlásil potupnou chybu. Do typu string se ukládá řetězec (budemeo něm mluvit v nějaké další lekci). Musíme tedy přetypovávat z toho důvodu že vlastnost caption je typu string a ukládá se do ní text kdežto naše proměnná i je integer. O přetypování budeme podrobněji mluvit jindy.

 

Ted víme jak si vypsat hodnotu proměnné tak si ukážeme seznam operátorů aby jsme s nimi mohli dále pracovat.

 

Operátor Operace Příklad použití
+ součet X+Y
- rozdíl X-1
* násobení X*Y
/ dělení X/2
div celočíselné dělení 6 div X
mod zbytek po dělení Y mod 6
+ (unární) kladné znaménko +X
- (unární) záporné znaménko -Y

 

Všechny operátory by vám měly být jasné až na mod a div. Představte si že potřebujete vypočítat 5/2 to je problém protože výsledek je 2.5 takže typu real. Jenže oba operandy jsou typu integer takže by bylo vhodné aby byl výsledek taky integer. To zajistí operátor div protože:

5 div 2 = 2

Operátor najde nejbližší možné číslo k dělenci které je možné beze zbytku vydělit dělitelem. V tomto případě tedy 5 změní na 4.Ve výsledné formě to vypadá takto 4 : 2 = 2.

Aby jsme zjistili zbytek po dělení použijeme operátor mod.

5 mod 2 = 1

Protože rozdíl mezi 5 a 4 je samozřejmě 1.

Takže:

8 div 3 = 2

8 mod 3 = 2

 

Nakonec ty slibované konstanty:) Málem jsem na ně zapomněl. Konstanty narozdíl od proměnných nemůžeme měnit. Musíme určit jejich hodnotu hned když je deklarujeme a tu už během programu nemůžeme změnit. Deklarují se ve stejném místě jako proměnné ale za klíčovým slovem const. Jejich výhodou je že se nemusíme starat o jejich typ. Z následující ukázky zajisté vše pochopíte.

 

...

procedure TForm1.FormCreate(Sender: TObject);
const
A = 5;
B = 'text';
C = '@';
begin

...

 

Úkol

Uff to byla fuška. Takže úkol. Udělejte program ve kterém bude jedno tlačítko a na něm se bude zobrazovat kolikrát jste a něj klikli. Myslím že je to dost (hodně) jednoduché.   Do prací prosím vás posílejte kód programu. Tento způsob není definitivní a co nejdřív se objeví nějaký šikovný upload lekcí;) 

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v Delphi.

Nové články

Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý