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

  1. Celočíselné
    byte 0..255 8 b
    word0..65535 16b
    shortint -128..127 8 b
    integer-32768..3276716b
    longint -2147483647..2147483647 32 b
  2. Desetinné real, single, double, extended, comp
  3. Znakové
    char jeden znak
    string 255 znaků
    pchar max. 65535
  4. 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

  1. Canvas = plátno
    Properties - Color, Caption, OnPaint - kresli a Enter
    Nastavení typu čáry pro kreslení perem Pen:
  2. Základní útvary
    1. úsečka
      - Canvas.MoveTo(a,b); ... počáteční bod
      - Canvas.LineTo(c,d); ... koncový bod
    2. Obdélník
      - Canvas.Rectangle(a, b, c, d);
    3. Elipsa
      - Canvas.Ellipse(a,b, c, d); ... elipsa vepsaná obdélníku s rohy a, b a c, d.
    4. 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
  3. 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.