Delphi programozás SRTNB020

50
Delphi programozás Delphi programozás SRTNB020 Nagyváradi Anett Nagyváradi Anett Delphi programozás Delphi programozás

description

Delphi programozás. Delphi programozás SRTNB020. Nagyváradi Anett. Delphi programozás. Elérhetőség. Boszorkány utca 2. B138-as iroda [email protected] http://morpheus.pte.hu/~anettn. Delphi programozás. Alkalmazott programok. FreePascal Turbo Delphi 2006 Explorer (full, english) - PowerPoint PPT Presentation

Transcript of Delphi programozás SRTNB020

Page 1: Delphi programozás SRTNB020

Delphi programozásDelphi programozásSRTNB020

Nagyváradi AnettNagyváradi Anett

Delphi programozásDelphi programozás

Page 2: Delphi programozás SRTNB020

Boszorkány utca 2. B138-as iroda

[email protected]

http://morpheus.pte.hu/~anettn

Delphi programozásDelphi programozásElérhetőség

Page 3: Delphi programozás SRTNB020

FreePascal

Turbo Delphi 2006 Explorer (full, english)

http://cc.codegear.com/free/turbodelphi

Borland Delphi 7.0

Megjegyzés:

a ppt-ben található színkódok:

forráskód általános szintaxisa

példaprogram részlet

Delphi programozásDelphi programozás

Alkalmazott programok

Page 4: Delphi programozás SRTNB020

1. Pascal alapok - tömbkezelés, függvények, eljárások, fájlkezelés

2. Objektum orientált programozás3. Delphi környezet – formok, unitok, komponensek

4. Alkalmazás fejlesztése – tulajdonságok,

események 5. Adatbáziskezelés – SQL, adathozzáférési

komponensek, adat-érzékeny vezérlők

6. Internet-, webes-alkalmazások7. 2D-, 3D-grafika

Delphi programozásDelphi programozásTematika

Page 5: Delphi programozás SRTNB020

[1] Angster Erzsébet : Programozás tankönyv I.- II.Akadémia nyomda, Martonvásár, 1999

[2] Baga Edit : Delphi másképpAkadémia nyomda, Martonvásár, 1999

[3] Benkő Tiborné : Programozási feladatok és

algoritmusok Delphi rendszerben Computer Books, Budapest,

2002

Delphi programozásDelphi programozásAjánlott irodalom

Page 6: Delphi programozás SRTNB020

[4] Ray Lischner: Delphi kézikönyv Kossuth Kiadó, 2001

[6] Paul Kimmel: Delphi 6 fejlesztők kézikönyve

Panem Kft. , Budapest, 2002

[5] Dr. Fercsik János : Programozás – Delphi Dunaújvárosi Főiskola - jegyzet, 2001

[6] Marco Cantú : Delphi 7 mesteri

szinten I. –II. Kiskapu Kft, 2003

Delphi programozásDelphi programozásAjánlott irodalom

Page 7: Delphi programozás SRTNB020

1. ELŐADÁS

Bevezetés a programozásbaPascal ismeretek felelevenítése

Algoritmikus gondolkodásProgramszerkesztés

Page 8: Delphi programozás SRTNB020

Számábrázolás

• A szg. a számokat mindig meghatározott számú számjeggyel ábrázolja

• Kiegészítve balról a számot nullákkal, a kívánt mennyiségű számjegyből fog állni

• Bit - az információ legkisebb egysége (kettes számrendszer egy számjegyének felel meg)

• Byte – 8 bit• 1 kB=210 bit = 1024bit • Szó - egyszerre feldolgozható bitek száma (pl.:

32 bites processzor)

210 = 0000 00012

Page 9: Delphi programozás SRTNB020

Kettes számrendszer - átváltás

10100110112 =

=1·29 + 0·28 + 1·27 + 0·26 + 0·25 + 1·24 + + 1·23 + 0·22 + 1·21 + 1·20 =

=29 + 27 + 24 + 23 + 21 + 20 =

= 512 + 128 + 16 + 8 + 2 + 1 =

= 667

Page 10: Delphi programozás SRTNB020

A szoftverfejlesztés lépései

• elemzés – problémaelemzés, helyzetfelmérés, igényfelmérés, célok felállítása, idő és költségbecslés

• tervezés – adatstruktúrák és algoritmusok kialakítása, ez a legnehezebb, legösszetettebb része a fejlesztésnek

• kódolás – az elkészült terv implementálása, azaz a forráskód elkészítése adott nyelven

• tesztelés – próbafuttatások végzése, ilyenkor merülnek fel a felhasználás közbeni problémák, melyeket orvosolni kell; szélsőséges helyzetek vizsgálata

• dokumentálás – igen fontos része a fejlesztésnek az egyes fázisok pontos leírása, a felhasználói leírás; ez a továbbfejlesztésnél,

felhasználásnál játszik fontos szerepet

Page 11: Delphi programozás SRTNB020

Keretrendszer - turbo.exe

Állományok:Turbo.TPL – turbo pascal library, magasszintű rutinok

gyűjteménye

Turbo.TPH – help, a súgó állományok találhatók itt (F1)

Turbo.TP – a pascal konfigurációs állománya

Turbo.DSK – desktop állomány , legutóbb használt képernyő minta

*.PAS – pascal forrásprogram

*.BAK – biztonsági másolat

Page 12: Delphi programozás SRTNB020

A Pascal program szerkezete

program nev; {Programfej}

uses egysegnev; {Beépített utasítások}

var valtozonev:tipus; {Deklarációs rész}

{ide kerül a konstans, eljárás, függvény deklaráció is}

begin {Végrehajtó rész}

programtörzsend.

Page 13: Delphi programozás SRTNB020

Változók

• Egy hely, ami alkalmas egy érték tárolására a számítógép memóriájában

• Nevet kap - segítségével a későbbiekben a változóban lévő objektumra hivatkozni lehet

• Érvényességi kör (lokális, globális változók)

• Tartalom: szám, szöveg, boolean kifejezés, konstans, stb.

Page 14: Delphi programozás SRTNB020

Változó típusok – egészek

Shortint: -128 - 127, előjeles, 8 bites

Integer:-32768 - 32767, előjeles, 16 bites

Longint:-2147483648 - 2147483647, előjeles, 32 bites

Byte: 0 - 255, előjel nélküli, 8 bites

Word:0 - 65535, előjel nélküli, 16 bites

Page 15: Delphi programozás SRTNB020

Változó típusok – valósak

Real: -2.9-39- 1.738, 11-12 számjegy, 6 byte-os.

Single:-1.5-45- 3.438, 7-8 számjegy, 4 byte-os.

Double:-5.0-324- 1.7308, 15-16 számjegy, 8 byte-os.

Extended:-3.4-4932- 1.14932, 19-20 számjegy, 10 byte-

os.Comp:

-9.2-18- 9.218, 19-20 számjegy, 8 byte-os.

Page 16: Delphi programozás SRTNB020

Tömb, rekord, típus

Tömb: Ugyanolyan típusú változók tárolására szolgáló adathalmaz

Rekord: Összetartozó adatokat, de többféle típusú változót tudunk eltárolni benne (például egy személy neve, címe, születési ideje és helye, stb)

Pointer: A pointer a memória meghatározott címére mutat

Text: Típus nélküli file

File of-:Típusos file

Page 17: Delphi programozás SRTNB020

Deklaráció - szintaktika

Változó var valtozonev1 : tipus;

valtozonev2, valtozonev3 : tipus;Tömb

nev : array[1..10] of integer;matrix : array[1..10,1..10] of

integer;Típusdefniálás

type nev = set of elemek felsorolása; Record típus

type nev = record a,b,c,d:típus; end;Konstans

const konstansvaltozo = ertek;

Page 18: Delphi programozás SRTNB020

Iteráció

elöl tesztelős ciklus

while kifejezes do utasitas;

hátul tesztelős ciklus

repeat utasitas until feltetel;

növekményes ciklus fel

for kezdo to veg do utasitas;

növekményes ciklus le

for kezdo down to veg do utasitas;

Page 19: Delphi programozás SRTNB020

Szelekció

választáscase kifejezes of

ertek:utasitas;ertek:utasitas;…else utasitas;

end;

feltételes utasításif feltetel then utasitas;if feltetel then utasitas else

utasitas;

Page 20: Delphi programozás SRTNB020

Műveletek

maradékos osztás mod

egészosztás div

és and

léptetés balra shl

igaz, hamis true, false

Page 21: Delphi programozás SRTNB020

Függvények, eljárások

Használatuk: - többször szeretnénk meghívni- máshol is használni szeretnénk- paraméterek adhatók át (lokálisak)- a függvény visszatér egy értékkel

Függvényekfunction nev(argumentumok):tipus;Pl.: Abs(numerikus kifejezés);

függvény valós vagy egész szám abszolút értékét adja vissza

Eljárásokprocedure nev (argumentumok);Pl.: Arc(X, Y, Kezdőszög, Zárószög, Sugár); eljárás grafikus módban - körcikket rajzol

Page 22: Delphi programozás SRTNB020

Függvények

adatbevitel Readln[(változóaz.)];Read[(változóaz.)];

megjelenítés képernyőn Write[(kifejezés)];Writeln[(kifejezés)];

képernyő pozíció GotoXY(Xpoz, Ypoz);képernyő törlés ClrScr;képernyő sor törlése ClrEol; /crt unit/véletlen szám (0- h) Radom(h);négyzet Sqr(i);négyzet gyökvonás Sqrt(i);kerekítés Round(i);

Page 23: Delphi programozás SRTNB020

Karakterlánc függvények:

lánc hossza

length(karakterlánc);

a lánc egy darabját adjacopy(karakterlánc,kezd,darab);

részláncot keres

pos(részlánc, karakterlánc);

Page 24: Delphi programozás SRTNB020

Karakterlánc eljárások

törlésdelete(karlánc,kezd, darab);

beszúrás

insert(részlánc,karlánc,pozíció);

számot karakterlánccá alakítjastr(szám, karakterlánc);

karláncot számmá alakítjaval(karlánc, szám, kód);

Page 25: Delphi programozás SRTNB020

Egyéb

a karakterrel visszatérő fvReadKey;

billentyűzet puffert vizsgáló boolean fvKeyPressed;

késleltetésdelay(ezredmásodperc);

zenéléssound(frekvencia);

Page 26: Delphi programozás SRTNB020

Fájlkezelés

Lépései programozási nyelvtől függetlenek:- fájl megnyitása- adatok írása, olvasása- fájl lezárása

Fajtái:- szöveges fájlok- típusos fájlok- típus nélküli fájlok

Page 27: Delphi programozás SRTNB020

Szöveges fájlok

- Karaktereket tartalmazó sorokból épülnek fel

- Lezárása: CR/LF (kocsi vissza/soremelés)

(ASCII kódja: 13 és 10)

- Szekvenciális elérés és használat

- Vagy csak olvasható vagy csak írható

Page 28: Delphi programozás SRTNB020

Szöveges fájlok

- Használatakor deklarálni kell egy változót, típusa: text

var fájl_változó: Text;

- A fájlváltozóhoz hozzá kell rendelni a fájltAssign(fájl_változó, fájl_név);

- Ezek után jöhetnek a műveletek

Page 29: Delphi programozás SRTNB020

Szöveges fájlok - megnyitás

reset(fájl_változó);

csak olvasásra nyitja

eof függvény true értékkel jelzi, ha a fájl üres.

rewrite(fájl_változó);

új szövegfájlt hoz létre, vagy felülír egy létezőt

append(fájl_változó);

létező fájlt nyit meg csak hozzáírásra

Page 30: Delphi programozás SRTNB020

Szöveges fájlok –I/O műveletek

Írás

write(fájl_változó, kifejezéslista);

writeln(fájl_változó, kiflista);

Olvasás

read(fájl_változó, kifejezéslista);

readln(fájl_változó, kifejezéslista);

Page 31: Delphi programozás SRTNB020

Szöveges fájlok – eof, eoln

- Fájl végének ellenőrzéseeof(fájl_változó);

true: az aktuális pozíció a fájl utolsó eleme után helyezkedik el

- Sor végének ellenőrzéseeoln(fájl_változó); függvény true értékkel tér vissza, ha az aktuális pozíció az end-of-line (sorvége - CR/LF) jelzőn áll

seekeoln(fájl_változó); (true: sor vége) seekeof(fájl_változó); (true:állomány vége)

http://www.lib.uni-miskolc.hu/digital/0001/html/delphi5.htm

Page 32: Delphi programozás SRTNB020

Fájlkezelés

Assignfile hozzárendelésReset nyitás csak olvasásra Rewrite nyitás írásara, felülírásraRead I/O olvasásWrite I/O írásClosefile lezárás

Page 33: Delphi programozás SRTNB020

Hibakezelés

- I/O műveleteknél fellépő hibák kezelése lehetséges

- programrészletet a {$I-} és {$I+} direktívák közé kell helyezni

- IOResult függvény visszaadott értékéből következtethetünk a hiba megjelenésére (tároljuk integer változóba!)

- IOResult visszatérési értéke:0, ha a legutolsó I/O művelet sikeres

volt run-time hiba kódja, ha sikertelen

Page 34: Delphi programozás SRTNB020

Hibakezelés - példa

{$I-} Reset(f); {megnyitás} Ior:=IOResult; {változóba mentés} if Ior<>0 then begin WriteLn('A fájl nem létezik!'); Exit; end; {$I+}

Page 35: Delphi programozás SRTNB020

Grafika

Grafikus képernyő használatához:

- GRAPH unit- .BGI fájlok

- a TP/BGI könyvtárban található

- az általunk használt VGA üzemmódhoz az EGAVGA.BGI fájlra lesz

szükség

- ez a fájl a videokártya vezérléséhez szükséges alacsonyszintű

parancsokat tartalmazza

Page 36: Delphi programozás SRTNB020

Grafika

DetectGraph(gd,gm); gd a grafikus meghajtó, a monitor típus

kódja gm a képernyőfelbontás kódja

InitGraph(gd,gm,'c:\tp\bgi');kapcsolja be a grafikus képernyőt

ReadLn; az ábra megjelenítése

CloseGraph; a grafikus képernyő bezárása

Page 37: Delphi programozás SRTNB020

Grafika

SetBkColor(white); beállítja a háttérszínt, majd ezzel a színnel töröljük a képernyőt: ClearDevice;

SetColor(red); eljáráshívással a rajz színét állítjuk be

SetTextStyle(0,0,2); a megjelenítendő szöveg karaktertípusát, irányát és a nagyítás mértékét

Page 38: Delphi programozás SRTNB020

Grafikai függvényekputpixel(x,y:integer;szin:word);

az (x,y) koordinátájú pontot szin színűre festigetpixel(x,y):word;

visszaadja az (x,y) koord. pont színétline(x1,y2,x2,y2);

adott színnel és stílussal vonalat húz két pont közöttsetcolor(szin:word);

aktuális szín beállítása (16 szín 0-15ig, konstansok)getcolor:szin;

értéke 0 és 15 között lehet, visszaadja az aktuális színt

setlinestyle(stilus, minta, vastagsag);a húzott vonalak stílusát SolidLn (0,normál), DottedLn (1,pontozott), CenterLn (2,szaggatott), DashedLn (3,szaggatott), UserBitLn (4, a minta-ban definiált mintájú) vastagságát NormWidth (0,1,2), illetve ThickWidth (3)

Page 39: Delphi programozás SRTNB020

Grafikai alakzatok

rectangle(x1,y1,x2,y2); téglalapot rajzol

circle(x,y,radius:integer);kört rajzol x,y középponttal és radius

sugárral

drawpoly(p:word; var pontok);sokszöget rajzol

Page 40: Delphi programozás SRTNB020

Feladatok1. Számok bekérése, sorrendben való kiíratása2. Osztás adott pontossággal3. Maximumelem kiválasztás tömbből4. Buborékrendezés5. Lotto – legtöbbször kisorsolt elem6. Fájlkezelés – a rejtö.txt fájl tartalmát átmásolni egy másik

fájlba7. Menürajzolás8. Vonal, kör, rúd kirajzoltatása9. Egy pontba érintkező koncentrikus körök kirajzolásaHf.:1. Mátrix szorzása (tükrözése)2. Bekért személyi adatok fájlba mentése3. Alakzatok kirajzolása bekért paraméterek szerint

Page 41: Delphi programozás SRTNB020

Megoldás 1.Számok bekérése, sorrendben való kiíratása

Program hf1; {szam beolvasasa, sorrenben kiiratasa}

uses Crt;

vari,j,n,tmp: integer;A : array[1..30] of integer;

begin clrscr; {bekeres} for i:=1 to n do A[i]:=0; write('mennyi n erteke?'); readln(n); if n>30 then writeln('tul sok a szam') else for i:=1 to n do begin write('kerem ezt az ',i,'szamot'); readln(A[i]); end;

if n<30 then

begin

{sorrend}

for i:= 1 to n do

begin

for j :=1 to n do

begin

if A[i]<A[j] then

begin

tmp:=A[i];

A[i]:=A[j];

A[j]:=tmp;

end;

end;

end;

{kiiratas}

for i:= 1 to n do

begin

if A[i]<>A[i+1] then write(' ' ,A[i], '');

end;

readln;

end

else

readln;

end.

Page 42: Delphi programozás SRTNB020

program osztas;uses crt;

var eredmeny,t:string; osztando, oszto:longint; pontossag:byte; i:byte; {ciklusvaltozo}

szam1,szam2:longint; hanytizedesig,tmp,maradek,j:integer;

beginclrscr;

writeln('kerem az osztot');readln(oszto);writeln('kerem az osztandot');readln(osztando);writeln('hany tizedesig');readln(pontossag);

Str(osztando div oszto, eredmeny);eredmeny:=eredmeny+',';

for i:=1 to pontossag do begin osztando:=10*(osztando mod oszto);

Megoldás 2.Osztás adott pontossággal

Str(osztando div oszto, t);

eredmeny:=eredmeny+t;

end;

writeln('az eredmeny',eredmeny);

{ masik}

writeln;

writeln;

writeln('kerem az osztot');

readln(szam1);

writeln('kerem az osztandot');

readln(szam2);

writeln('hany tizedesig');

readln(hanytizedesig);

tmp:= szam1 div szam2;

write('az eredmeny: ',tmp,',');

maradek:=szam1 mod szam2;

tmp:= (maradek*10) div szam2;

write(tmp);

for j:=1 to hanytizedesig do

begin

maradek:=maradek mod szam2;

tmp:=(maradek*10) div szam2;

write(maradek);

end;

readkey;

end.

Page 43: Delphi programozás SRTNB020

PROGRAM CiklusDemo2;{Jelsz˘ beˇr sa} Uses CRT; VAR jelszo,tipp:string; c:char; BEGIN jelszo:='TM'; Repeat tipp:=''; Write('K‚rem a jelsz˘t (Enter=kil‚p‚s): '); repeat c:=Readkey; if c<>#13 then begin Write('*'); tipp:=tipp+c; end; until c=#13; Writeln; Until (tipp=jelszo) or (tipp=''); if tipp=jelszo then Writeln('Bel‚pett!') else Writeln('Nem l‚pett be'); END.

Megoldás 3.Jelszóbekérő

Page 44: Delphi programozás SRTNB020

PROGRAM maximumkivalasztas; Uses CRT; CONST n=10; a:array[1..n] of integer=(2,20,2,2,2,-2,5,2,2,2); VAR m,cv:integer;

BEGIN clrscr; m:=1; for cv:=2 to n do if a[cv]>a[m] then m:=cv; writeln('a legnagyobb elem helye: ', m, ' erteke', a[m]);

readkey;

END.

Megoldás 4. Maximumelem kiválasztás tömbből

Page 45: Delphi programozás SRTNB020

PROGRAM buborekrendezes; Uses CRT; CONST n=10; a:array[1..n] of integer=(2,20,2,2,2,-2,5,2,-5,2); VAR m,cv,temp:integer; volt:Boolean; {false, true}

BEGIN clrscr; repeat volt:=false; for cv:=1 to n-1 do if a[cv]>a[cv+1] then begin temp:=a[cv]; a[cv]:=a[cv+1]; a[cv+1]:=temp; volt:=true; end; until not volt; for cv:=1 to n do write(a[cv]:5); writeln; readkey;

END.

Megoldás 5. Buborékrendezés

Page 46: Delphi programozás SRTNB020

program lotto_proceduras;uses crt;CONST N=90;{ Huzas:array[1..N] of word=(133,112,156,124,115,131,140,128,117,156, 130,150,151,129,140,124,122,136,136,139, 131,141,140,133,140,125,126,122,156,112, 115,133,125,138,139,131,127,127,111,116, 135,148,135,121,131,133,149,125,145,131, 146,134,124,141,126,144,123,124,126,130, 129,125,107,154,130,143,136,125,146,116, 138,143,135,120,155,134,160,135,129,125, 138,125,129,132,131,152,118,109,116,138);} Huzas:array[1..N] of word= (137,115,161,128,118,133,146,130,118,158,

132,155,156,130,141,125,127,142,136,147,136,145,146,139,145,127,127,128,160,116,118,137,133,142,142,134,132,129,113,122,138,154,137,123,134,138,152,126,147,135,149,136,127,146,133,151,124,127,133,138,136,127,107,157,134,149,141,129,149,121,145,146,141,128,157,140,164,139,135,129,141,126,133,133,139,155,121,111,121,142);

var temp,tmp,osszhuzas:word; i,m,cv,valt,Kevesebbszer,Tobbszor,Atlag:integer;

PROCEDURE Huzasszam; var i:integer; Begin tmp:=0; for i:=1 to N do tmp:=tmp+Huzas[i]; writeln('A huzasok szama', tmp div 90); End;

Megoldás 6.Lotto – legtöbbször kisorsolt elem

Page 47: Delphi programozás SRTNB020

var i:integer; Begin Atlag:= tmp div 90; Kevesebbszer:=0; for i:=1 to N do if Huzas[i]<Atlag then Inc(Kevesebbszer); Tobbszor:= N-Kevesebbszer; writeln('atlagnal kevesebbszer kihuzott: ',Kevesebbszer); writeln('ill. tobbszor kihuzott ',Tobbszor); End;

PROCEDURE Maximum; var i:integer; BeginPROCEDURE Atlagszamitas; tmp:=0; for i:=1 to N do if (tmp<Huzas[i]) then begin tmp:=Huzas[i]; valt:=i; end; writeln('a leggyakrabban kihuzott szam:',valt); End;

PROCEDURE Minimum;PROCEDURE Minimum; Procedure maxkereses(var m:integer); {hogy tmp Procedure maxkereses(var m:integer); {hogy tmp valt honnet induljon}valt honnet induljon} BeginBegin m:=1;m:=1; for cv:=2 to N dofor cv:=2 to N do if Huzas[cv]>Huzas[m] then m:=cv;if Huzas[cv]>Huzas[m] then m:=cv; End;End; BeginBegin maxkereses(m);maxkereses(m); tmp:=Huzas[m];tmp:=Huzas[m]; for i:=1 to N do if (tmp>Huzas[i]) thenfor i:=1 to N do if (tmp>Huzas[i]) then beginbegin tmp:=Huzas[i];tmp:=Huzas[i]; valt:=i;valt:=i; end;end; writeln('a legritkabban kihuzott szam:',valt);writeln('a legritkabban kihuzott szam:',valt); End;End;

BEGINBEGINclrscr;clrscr;Huzasszam;Huzasszam;Atlagszamitas;Atlagszamitas;Maximum;Maximum;Minimum;Minimum;readkey;readkey;END.END.

Megoldás 6. – folyt.Megoldás 6. – folyt.Fájlkezelés – a rejtö.txt fájl tartalmát átmásolni egy másik fájlbaFájlkezelés – a rejtö.txt fájl tartalmát átmásolni egy másik fájlba

Page 48: Delphi programozás SRTNB020

PROGRAM menu_keszites;Uses CRT;VAR m:char; a,b:integer;

Begin TextBackGround(Blue); TextColor(Black); clrscr;

GotoXY(33,12); write('╔══════════╗'); GotoXY(33,13); write('║ ║ '); GotoXY(33,14); write('╚══════════╝'); a:=0; b:=0; a:=random(21); b:=random(11)+5;

if ((a<10) and (b<10)) then begin GotoXY(33,13); write('║',a,' ',b,'║'); end; if ((a>9) and (b>9)) then begin GotoXY(33,13); write('║',a,' ',b,'║'); end;

readkey;End.

Megoldás 7.Menürajzolás

Page 49: Delphi programozás SRTNB020

PROGRAM grafik; Uses CRT,GRAPH; VAR videokartya,Grafikusmod:integer;

BEGIN videokartya:=Detect; InitGraph(videokartya,Grafikusmod,'C:\tp\bgi'); SetBkColor(9); SetLineStyle(3,3,1); SetFillStyle(HatchFill,1); Bar(300,300,350,350); Line(10,10,200,200); Circle(250,250,20);

readkey; CloseGraph;END.

Megoldás 8.Vonal, kör, rúd kirajzoltatása

Page 50: Delphi programozás SRTNB020

Megoldás 9.Egy pontba érintkező koncentrikus körök kirajzolása

program KOROK;uses GRAPH;var gd,gm,i:integer;begin DetectGraph(gd,gm);InitGraph(gd, gm,'');

for i:=1 to 10 do begin Circle(200+i*10,200,60+i*10); end; ReadLn; CloseGraph;

end.