Delphi programoz - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

Delphi programoz

Description:

Title: Delphi programoz s alapjai Author: M szaki Informatika Last modified by: Nagyv radi Anett Created Date: 2/8/2006 3:02:13 PM Document presentation format – PowerPoint PPT presentation

Number of Views:116
Avg rating:3.0/5.0
Slides: 51
Provided by: Musza2
Category:
Tags: delphi | programoz

less

Transcript and Presenter's Notes

Title: Delphi programoz


1
Delphi programozás alapjai
  • Nagyváradi Anett

2
Elérhetoség
  • Boszorkány utca 2 B138-as iroda
  • anettn_at_morpheus.pte.hu
  • http//morpheus.pte.hu/anettn

3
Alkalmazott programok
  • 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

4
Tematika
  1. Pascal alapok - tömbkezelés, függvények,
    eljárások, fájlkezelés
  2. Objektum orientált programozás
  3. 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érlok
  6. Internet-, webes-alkalmazások
  7. 2D-, 3D-grafika

5
Ajánlott irodalom
  • 1 Angster Erzsébet
  • Programozás tankönyv I.- II.
  • Akadémia nyomda, Martonvásár, 1999
  • 2 Baga Edit Delphi másképp
  • Akadémia nyomda, Martonvásár, 1999
  • 3 Benko Tiborné
  • Programozási feladatok és algoritmusok
    Delphi rendszerben
  • Computer Books, Budapest, 2002

6
Ajánlott irodalom
  • 4 Ray Lischner Delphi kézikönyv
  • Kossuth Kiadó, 2001
  • 6 Paul Kimmel Delphi 6 fejlesztok
  • kézikönyve
  • Panem Kft. , Budapest, 2002
  • 5 Dr. Fercsik János Programozás Delphi
  • Dunaújvárosi Foiskola - jegyzet, 2001
  • 6 Marco Cantú Delphi 7 mesteri
    szinten I. II.
  • Kiskapu Kft, 2003

7
1. ELOADÁS
  • Bevezetés a programozásba
  • Pascal ismeretek felelevenítése
  • Algoritmikus gondolkodás
  • Programszerkesztés

8
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égu számjegybol fog állni
  • Bit - az információ legkisebb egysége (kettes
    számrendszer egy számjegyének felel meg)
  • Byte 8 bit
  • 1 kB210 bit 1024bit
  • Szó - egyszerre feldolgozható bitek száma (pl.
    32 bites processzor)

210 0000 00012
9
Kettes számrendszer - átváltás
  • 10100110112
  • 129 028 127 026 025 124 123
    022 121 120
  • 29 27 24 23 21 20
  • 512 128 16 8 2 1
  • 667

10
A szoftverfejlesztés lépései
  • elemzés problémaelemzés, helyzetfelmérés,
    igényfelmérés, célok felállítása, ido é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élsosé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

11
Keretrendszer - turbo.exe
  • Állományok
  • Turbo.TPL turbo pascal library, magasszintu
    rutinok gyujtemé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épernyo minta
  • .PAS pascal forrásprogram
  • .BAK biztonsági másolat

12
A Pascal program szerkezete
  • program nev Programfej
  • uses egysegnev Beépített utasítások
  • var valtozonevtipus 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örzs
  • end.

13
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ésobbiekben a
    változóban lévo 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.

14
Változó típusok egészek
  • Shortint
  • -128 - 127, elojeles, 8 bites
  • Integer
  • -32768 - 32767, elojeles, 16 bites
  • Longint
  • -2147483648 - 2147483647, elojeles, 32 bites
  • Byte
  • 0 - 255, elojel nélküli, 8 bites
  • Word
  • 0 - 65535, elojel nélküli, 16 bites

15
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.

16
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

17
Deklaráció - szintaktika
  • Változó
  • var valtozonev1 tipus
  • valtozonev2, valtozonev3 tipus
  • Tömb
  • nev array1..10 of integer
  • matrix array1..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,dtípus end
  • Konstans
  • const konstansvaltozo ertek

18
Iteráció
  • elöl tesztelos ciklus
  • while kifejezes do utasitas
  • hátul tesztelos 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

19
Szelekció
  • választás
  • case kifejezes of
  • ertekutasitas
  • ertekutasitas
  • else utasitas
  • end
  • feltételes utasítás
  • if feltetel then utasitas
  • if feltetel then utasitas else utasitas

20
Muveletek
  • maradékos osztás mod
  • egészosztás div
  • és and
  • léptetés balra shl
  • igaz, hamis true, false

21
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ények
  • function 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ások
  • procedure nev (argumentumok)
  • Pl. Arc(X, Y, Kezdoszög, Zárószög, Sugár)
    eljárás grafikus módban - körcikket rajzol

22
Függvények
  • adatbevitel Readln(változóaz.)
  • Read(változóaz.)
  • megjelenítés képernyon Write(kifejezés)
  • Writeln(kifejezés)
  • képernyo pozíció GotoXY(Xpoz, Ypoz)
  • képernyo törlés ClrScr
  • képernyo 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)

23
Karakterlánc függvények
  • lánc hossza
  • length(karakterlánc)
  • a lánc egy darabját adja copy(karakterlánc,kezd,da
    rab)
  • részláncot keres
  • pos(részlánc, karakterlánc)

24
Karakterlánc eljárások
  • törlés delete(karlánc,kezd, darab)
  • beszúrás
  • insert(részlánc,karlánc,pozíció)
  • számot karakterlánccá alakítja
  • str(szám, karakterlánc)
  • karláncot számmá alakítja val(karlánc, szám,
    kód)

25
Egyéb
  • a karakterrel visszatéro fv
  • ReadKey
  • billentyuzet puffert vizsgáló boolean
    fv KeyPressed
  • késleltetés
  • delay(ezredmásodperc)
  • zenélés
  • sound(frekvencia)

26
Fájlkezelés
  • Lépései programozási nyelvtol 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

27
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ó

28
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ájlt
  • Assign(fájl_változó, fájl_név)
  • - Ezek után jöhetnek a muveletek

29
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étezot
  • append(fájl_változó)
  • létezo fájlt nyit meg csak hozzáírásra

30
Szöveges fájlok I/O muveletek
  • Í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)

31
Szöveges fájlok eof, eoln
  • - Fájl végének ellenorzése
  • eof(fájl_változó)
  • true az aktuális pozíció a fájl utolsó
    eleme után helyezkedik el
  • - Sor végének ellenorzése
  • eoln(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) jelzon á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/de
    lphi5.htm

32
Fájlkezelés
  • Assignfile hozzárendelés
  • Reset nyitás csak olvasásra
  • Rewrite nyitás írásara, felülírásra
  • Read I/O olvasás
  • Write I/O írás
  • Closefile lezárás

33
Hibakezelés
  • - I/O muveleteknél fellépo 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ébol
    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 muvelet sikeres volt
    run-time hiba kódja, ha sikertelen

34
Hibakezelés - példa
  • I-
  • Reset(f) megnyitás
  • IorIOResult változóba mentés
  • if Iorltgt0 then
  • begin
  • WriteLn('A fájl nem létezik!')
  • Exit
  • end
  • I

35
Grafika
  • Grafikus képernyo 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 alacsonyszintu parancsokat
    tartalmazza

36
Grafika
  • DetectGraph(gd,gm)
  • gd a grafikus meghajtó, a monitor típus kódja
  • gm a képernyofelbontás kódja
  • InitGraph(gd,gm,'c\tp\bgi')
  • kapcsolja be a grafikus képernyot
  • ReadLn
  • az ábra megjelenítése
  • CloseGraph
  • a grafikus képernyo bezárása

37
Grafika
  • SetBkColor(white)
  • beállítja a háttérszínt, majd ezzel a színnel
    töröljük a képernyot ClearDevice
  • SetColor(red)
  • eljáráshívással a rajz színét állítjuk be
  • SetTextStyle(0,0,2)
  • a megjelenítendo szöveg karaktertípusát, irányát
    és a nagyítás mértékét

38
Grafikai függvények
  • putpixel(x,yintegerszinword)
  • az (x,y) koordinátájú pontot szin színure festi
  • getpixel(x,y)word
  • visszaadja az (x,y) koord. pont színét
  • line(x1,y2,x2,y2)
  • adott színnel és stílussal vonalat húz két pont
    között
  • setcolor(szinword)
  • aktuális szín beállítása (16 szín 0-15ig,
    konstansok)
  • getcolorszin
  • é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)

39
Grafikai alakzatok
  • rectangle(x1,y1,x2,y2)
  • téglalapot rajzol
  • circle(x,y,radiusinteger)
  • kört rajzol x,y középponttal és radius
    sugárral
  • drawpoly(pword var pontok)
  • sokszöget rajzol

40
Feladatok
  • 1. Számok bekérése, sorrendben való kiíratása
  • 2. Osztás adott pontossággal
  • 3. Maximumelem kiválasztás tömbbol
  • 4. Buborékrendezés
  • 5. Lotto legtöbbször kisorsolt elem
  • 6. Fájlkezelés a rejtö.txt fájl tartalmát
    átmásolni egy másik fájlba
  • 7. Menürajzolás
  • 8. Vonal, kör, rúd kirajzoltatása
  • 9. Egy pontba érintkezo koncentrikus körök
    kirajzolása
  • Hf.
  • 1. Mátrix szorzása (tükrözése)
  • 2. Bekért személyi adatok fájlba mentése
  • 3. Alakzatok kirajzolása bekért paraméterek
    szerint

41
Megoldás 1.Számok bekérése, sorrendben való
kiíratása
if nlt30 then begin sorrend for i 1
to n do begin for j 1 to n do
begin if AiltAj then
begin tmpAi
AiAj
Ajtmp end end
end kiiratas for i 1 to n do
begin if AiltgtAi1 then write(' '
,Ai, '') end readln end else
readln end.
  • Program hf1 szam beolvasasa, sorrenben
    kiiratasa
  • uses Crt
  • var
  • i,j,n,tmp integer
  • A array1..30 of integer
  • begin
  • clrscr
  • bekeres
  • for i1 to n do Ai0
  • write('mennyi n erteke?')
  • readln(n)
  • if ngt30 then writeln('tul sok a szam')
  • else
  • for i1 to n do
  • begin
  • write('kerem ezt az ',i,'szamot')
  • readln(Ai)

42
Megoldás 2.Osztás adott pontossággal
Str(osztando div oszto, t)
eredmenyeredmenyt end writeln('az
eredmeny',eredmeny) masik writeln writeln
writeln('kerem az osztot') readln(szam1) writel
n('kerem az osztandot') readln(szam2) writeln('h
any tizedesig') readln(hanytizedesig) tmp
szam1 div szam2 write('az eredmeny
',tmp,',') maradekszam1 mod szam2 tmp
(maradek10) div szam2 write(tmp) for j1 to
hanytizedesig do begin maradekmaradek
mod szam2 tmp(maradek10) div szam2
write(maradek) end readkey end.
  • program osztas
  • uses crt
  • var
  • eredmeny,tstring
  • osztando, osztolongint
  • pontossagbyte
  • ibyte ciklusvaltozo
  • szam1,szam2longint
  • hanytizedesig,tmp,maradek,jinteger
  • begin
  • clrscr
  • writeln('kerem az osztot')
  • readln(oszto)
  • writeln('kerem az osztandot')

43
Megoldás 3.Jelszóbekéro
  • PROGRAM CiklusDemo2Jelsz? be?r sa
  • Uses CRT
  • VAR jelszo,tippstring
  • cchar
  • BEGIN
  • jelszo'TM'
  • Repeat
  • tipp''
  • Write('Krem a jelsz?t (Enterkilps) ')
  • repeat
  • cReadkey
  • if cltgt13
  • then
  • begin
  • Write('')
  • tipptippc
  • end
  • until c13
  • Writeln

44
Megoldás 4. Maximumelem kiválasztás tömbbol
  • PROGRAM maximumkivalasztas
  • Uses CRT
  • CONST
  • n10
  • aarray1..n of integer(2,20,2,2,2,-2,5,2
    ,2,2)
  • VAR m,cvinteger
  • BEGIN
  • clrscr
  • m1
  • for cv2 to n do
  • if acvgtam then mcv
  • writeln('a legnagyobb elem helye ', m, '
    erteke', am)
  • readkey
  • END.

45
Megoldás 5. Buborékrendezés
  • PROGRAM buborekrendezes
  • Uses CRT
  • CONST
  • n10
  • aarray1..n of integer(2,20,2,2,2,-2,5,2
    ,-5,2)
  • VAR m,cv,tempinteger
  • voltBoolean false, true
  • BEGIN
  • clrscr
  • repeat
  • voltfalse
  • for cv1 to n-1 do
  • if acvgtacv1 then
  • begin
  • tempacv
  • acvacv1
  • acv1temp
  • volttrue

46
Megoldás 6.Lotto legtöbbször kisorsolt elem
  • program lotto_proceduras
  • uses crt
  • CONST
  • N90
  • Huzasarray1..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)
  • Huzasarray1..N of word (137,115,161,128,11
    8,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,

47
Megoldás 6. folyt.Fájlkezelés a rejtö.txt
fájl tartalmát átmásolni egy másik fájlba
  • var iinteger
  • Begin
  • Atlag tmp div 90
  • Kevesebbszer0
  • for i1 to N do
  • if HuzasiltAtlag then Inc(Kevesebbszer)
  • Tobbszor N-Kevesebbszer
  • writeln('atlagnal kevesebbszer kihuzott
    ',Kevesebbszer)
  • writeln('ill. tobbszor kihuzott ',Tobbszor)
  • End
  • PROCEDURE Maximum
  • var iinteger
  • Begin
  • PROCEDURE Atlagszamitas
  • tmp0
  • for i1 to N do if (tmpltHuzasi) then

PROCEDURE Minimum Procedure maxkereses(var
minteger) hogy tmp valt honnet induljon
Begin m1 for cv2 to N
do if HuzascvgtHuzasm then mcv
End Begin maxkereses(m) tmpHuzasm
for i1 to N do if (tmpgtHuzasi) then
begin tmpHuzasi valti
end writeln('a legritkabban kihuzott
szam',valt) End BEGIN clrscr Huzasszam Atla
gszamitas Maximum Minimum readkey END.
48
Megoldás 7.Menürajzolás
  • PROGRAM menu_keszites
  • Uses CRT
  • VAR mchar
  • a,binteger
  • Begin
  • TextBackGround(Blue)
  • TextColor(Black)
  • clrscr
  • GotoXY(33,12) write('----------')
  • GotoXY(33,13) write('
    ')
  • GotoXY(33,14) write('----------')
  • a0
  • b0
  • arandom(21)
  • brandom(11)5
  • if ((alt10) and (blt10)) then

49
Megoldás 8.Vonal, kör, rúd kirajzoltatása
  • PROGRAM grafik
  • Uses CRT,GRAPH
  • VAR videokartya,Grafikusmodinteger
  • BEGIN
  • videokartyaDetect
  • 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.

50
Megoldás 9.Egy pontba érintkezo koncentrikus
körök kirajzolása
  • program KOROK
  • uses GRAPH
  • var gd,gm,iinteger
  • begin
  • DetectGraph(gd,gm)
  • InitGraph(gd, gm,'')
  • for i1 to 10 do begin
  • Circle(200i10,200,60i10)
  • end
  • ReadLn
  • CloseGraph
  • end.
Write a Comment
User Comments (0)
About PowerShow.com