Cvičení 6: Základy programování v Pascalu, úvod do prostředí Delphi, základní útvary
1 Základy programování v Pascalu
File -> New-> Console Application
Základní struktura
program jmeno;
uses SysUtils; //pouzite knihovny
var
a:integer; //a je celociselna promenna
b,c:real; //b,c jsou realne promenne
// deklarace funkci a procedur
begin
//telo programu
end.
Výpis a načtení proměnných
write(' ahoj svete ');
writeln('vypis na novy radek');
// do proměnné a se uloží zadané číslo
write(' zadej cislo: ');
readln(a);
Příklad: Napište program, který načte dvě reálná čísla a vypíše jejich součet.
Základní struktury
- Celočíselné
byte | 0..255 | 8 b |
word | 0..65535 | 16b |
shortint | -128..127 | 8 b |
integer | -32768..32767 | 16b |
longint | -2147483647..2147483647 | 32 b
|
- Desetinné
real, single, double, extended, comp
- Znakové
char | jeden znak |
string | 255 znaků |
pchar | max. 65535
|
- Logické
boolean - nabývá hodnot true nebo false
Základní příkazy - for, if, repeat, while
Příkaz for
opakování příkazu v cyklu dokud se počitatel nedostane k poslendní hodnotě
for i:=0 to n do
begin
prikaz1;
prikaz2;
...
end;
Příklad: program sečte čísla od nuly do desíti.
soucet:=0;
for i:=0 to 10 do
soucet:=soucet + i;
Příkaz if
if podminka then
begin
prikaz1;
prikaz2;
...
end
else
begin
prikaz1;
prikaz2;
...
end;
Příklad: Program po zadání čísla z klávesnice vypíše, zda je číslo kladné nebo záporné.
writeln('zadej cislo');
readln(cislo);
if cislo > 0 then
writeln('cislo je kladne')
else
writeln('cislo je zaporne nebo nula');
Příkaz while - do
provádí příkazy pokud platí podmínka, příkazy nemusí proběhnout ani jednou
while podminka do
begin
prikaz1;
prikaz2;
...
end;
Příklad: Program vypíše na obrazovku čísla od jedné do desíti
i := 1;
while i<11 do
begin
writeln(i);
i:=i+1;
end;
Příklad: Napište program, který načte pět celých čísel a vypočítá jejich aritmetický průměr a ten vypíše na obrazovku.
Příkaz repeat - until
není-li splněna podmínka, jsou příkazy mezi repeat a until vykonávány opakovaně
repeat
prikaz1;
prikaz2;
...
until podminka;
Příklad: Program vypíše na obrazovku čísla od jedné do desíti
i:=1;
repeat
writeln(i);
i:=i+1;
until i>10;
Procedury a funkce
Rozdíl mezi procedurou a funkcí je v tom, že funkce vrací hodnotu. Zápis se provádí po deklaraci globálních proměnných. Struktura je stejná jako u obyčejného programu. Lze v nich deklarovat lokální proměnné.
Zápis definice:
function název(predane promenne:typ):navratovy typ;
function Secti(a,b:integer):integer;
// funkce secte dve cela cisla a vrati cele cislo
procedure název(predane promenne: typ);
procedure Nacti(c,d:real); //procedura nacte dve realna cisla
Příklad funkce:
function Secti(a,b:integer):integer;
var c:integer;
begin
c:=1;
Secti := a + b + c;
end;
Volání funkce:
vysledek:=Secti(3,2);
Příklad
Napište dvě metody Sečti a Odečti, která udělají součet a rozdíl dvou celých čísel a výsledky vypište.
program Funkce;
uses
SysUtils;
var x,y,vysledek1,vysledek2,k:integer;
function Secti(a,b:integer):integer;
begin
Secti := a+b;
end;
function Odecti(a,b:integer):integer;
begin
Odecti := a-b;
end;
begin
write(' zadej dve cisla ');
readln(x, y);
vysledek1 := Secti(x,y);
writeln(' soucet je ', vysledek1);
vysledek2 := Odecti(x,y);
writeln(' rozdil je ', vysledek2);
readln(k);
end.
2 Úvod do Delphi
Objektově orientované programování - příklad auta
Složení prostředí - menu, paleta komponent, Object Inspector (View, F11), formulář (Form1) - vlastnosti (šířka, výška, barva) - flash, editor zdrojového kódu (Unit1.pas) -
Spuštění programu - Run - Run, F9
Object Inspector
- Properties - vlastnosti
- Events - události - OnClick, OnPaint, ...
3 Kreslení základních útvarů do Canvas a Image
- Canvas = plátno
Properties - Color, Caption, OnPaint - kresli a Enter
Nastavení typu čáry pro kreslení perem Pen:
- barva Canvas.Pen.Color := 80;
- šířka Canvas.Pen.Width := 2;
- styl Canvas.Pen.Style := psDot; dalši jsou psDash, psSolid, ...
- Základní útvary
- úsečka
- Canvas.MoveTo(a,b); ... počáteční bod
- Canvas.LineTo(c,d); ... koncový bod
- Obdélník
- Canvas.Rectangle(a, b, c, d);
- Elipsa
- Canvas.Ellipse(a,b, c, d); ... elipsa vepsaná obdélníku s rohy a, b a c, d.
- Lomená čára
- Canvas.Polyline([Point(a,b), Point(c,d), Point(e, f)]);
- nevýhoda Canvas - po překrytí jiným oknem obrázek mizí, proto je lepší kresli do Image
- Image = obrázek
- najdeme jej v záložce Aditional
- nastavíme u něj OnClick - procedura Kresli
- všechny funkce mají stejnou syntaxi jako u Canvas, jen se předepíše Image
Tedy Image1.Canvas.Rectangle(a, b, c, d);
File translated from
TEX
by
TTH,
version 3.67.
On 13 May 2007, 21:45.