730 likes | 892 Views
Programozási és szoftverfejlesztési ismeretek I. Programozási és szoftverfejlesztési ismeretek I. PENF511. Nagyváradi Anett. Programozási és szoftverfejlesztési ismeretek I. Elérhetőség. Nagyváradi Anett Boszorkány utca 2. B138-as iroda anettn@morpheus.pte.hu http://morpheus.pte.hu/~anettn
E N D
Programozási és szoftverfejlesztési ismeretek I. Programozási és szoftverfejlesztési ismeretek I.PENF511 Nagyváradi Anett
Programozási és szoftverfejlesztési ismeretek I. Elérhetőség Nagyváradi Anett Boszorkány utca 2. B138-as iroda anettn@morpheus.pte.hu http://morpheus.pte.hu/~anettn http://e-oktat.pmmf.hu/delphi_programozas Időpontok 6-11. heteken (7. hét őszi szünet) 14:30-17:30-ig (4 x 45 perc) - A119-e sterem
Programozási és szoftverfejlesztési ismeretek I. Alkalmazott programok TurboPascal - ingyenes http://www.kobakbt.hu/index.html > Letöltés programok > > Programnyelvek > tp70.exe Turbo Delphi 2006 Explorer(full, english) - ingyenes http://cc.codegear.com/free/turbodelphi Borland Delphi 7.0 - licenszköteles
Programozási és szoftverfejlesztési ismeretek I. Tematika Programozás I. • Pascal alapok - tömbkezelés, függvények, eljárások, fájlkezelés • Objektum orientált programozás • Delphi környezet – formok, unitok, komponensek • Alkalmazás fejlesztése – tulajdonságok, események Programozás II. • Adatbáziskezelés – megvalósítás Delphi környezetben • SQL - adathozzáférési komponensek, adat-érzékeny vezérlők
Programozási és szoftverfejlesztési ismeretek I. 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] Benkő Tiborné : Programozási feladatok és algoritmusok Delphi rendszerben Computer Books, Budapest, 2002
Programozási és szoftverfejlesztési ismeretek I. Ajánlott irodalom [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
Programozási és szoftverfejlesztési ismeretek I. Félévi követelmények 1 db zárthelyi dolgozat – az utolsó előadás időpontjában (írásban és számítógépen) témakörök: - számábrázolás, számrendszerek - folyamatábra - egyszerűbb programozási problémák megoldása (feltételes utasítások, ciklusutasítások) - egy meghatározott feladatra Delphi program elkészítése Pótlás: vizsgaidőszakban az ETR szerint meghirdetett időpontokban
Programozási és szoftverfejlesztési ismeretek I. 1. ELŐADÁS Bevezetés a programozásba Pascal ismeretek Algoritmikus gondolkodás Programszerkesztés
Programozási és szoftverfejlesztési ismeretek I. Számábrázolás • A szg. a számokat mindig meghatározott számú számjeggyel ábrázolja • Bináris/kettes számrendszer (van feszültség, nincs feszültség) 0 és 1 Tizes számrsz. Kettes számrsz. Bináris szám általános alakja:
Programozási és szoftverfejlesztési ismeretek I. Számrendszerek – bináris átváltás 3510 = 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 = = 66710 = 1000112
Programozási és szoftverfejlesztési ismeretek I. Számrendszerek – hexa átváltás
Programozási és szoftverfejlesztési ismeretek I. Számábrázolás • 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
Programozási és szoftverfejlesztési ismeretek I. Algoritmus • utasítássorozat, részletes útmutatás, mely valamely probléma megoldására alkalmas • struktúráját szekvenciák, szelekciók illetve iterációk adják, amelyeket tetszőleges mélységben egymásba lehet ágyazni • algoritmus leírásának • egyértelműnek, • pontosnak, • lépésenként végrehajthatónak kell lennie Cél: bemenő (input) adatokból kimenő (output adatokat állítson elő)
Programozási és szoftverfejlesztési ismeretek I. Folyamatábra • Segítségével a program viselkedését, folyamatát részletekbe menően ábrázolhatjuk – algoritmus leíró eszköz • Nyilak, csomópontok • Tevékenység csomópont: • Tevékenység végrehajtódik • Döntés csomópont • Igaz, hamis elágazás
Programozási és szoftverfejlesztési ismeretek I. Folyamatábra – folyt. • Egyéb jelölések: • Példa: ciklusutasítások megvalósítása • Elöltesztelős ciklus • Hátultesztelős ciklus i : ciklusváltozó i < 10 : feltétel
Programozási és szoftverfejlesztési ismeretek I. Folyamatábra – Példa 1
Programozási és szoftverfejlesztési ismeretek I. Folyamatábra – Példa 2 • Megkérdezem, vállalkozik-e valaki arra, hogy bemenjen krétáért a Tanszékre. • Ha igen, menjen be a Tsz-re. • Kérje meg Editet, adjon egy darab krétát. • Ha nincs Edit, keressen valaki mást, s kérjen tőle krétát. • Jöjjön vissza a krétával, adja ide. • Ha nem talál senkit, jöjjön vissza üres kézzel. • Ha nem vállalkozik senki a hallgatók közül, bemegyek én. • Kiveszek a szekrényből egy darab krétát. • Visszajövök az előadóba, s folytatjuk az órát. Forrás: Dr. Szabó László: A Pascal programnyelv
Programozási és szoftverfejlesztési ismeretek I. Folyamatábra – Példa 3 Forrás: http://www.berzsenyi.hu/erben/www/C05/inf/progalap/alap05/progleir.pdf
Programozási és szoftverfejlesztési ismeretek I. 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
Programozási és szoftverfejlesztési ismeretek I. A Pascal nyelv • Niklaus Wirth (Zürich) 1960-as évek • Blaise Pascalról, a nagy 17. századi francia matematikusról • szoftvercégek Pascal változatai közül Borland cégé lett a legsikeresebb
Programozási és szoftverfejlesztési ismeretek I. A Pascal nyelv építőelemei • Szimbólumok (műveleti, relációs jelek, stb.) • Fenntartott szavak (a rsz. által használt kulcsszavak) • Azonosítók (programnév, változók, konstansok, eljárások, függvények nevei) • Címkék (label kulcsszóval adható meg, goto utasítással elérhető) • Elválasztójelek (szóelválasztó a szóköz, sorvég jel a pontosvessző, a program végén lévő end után pont) - lásd késöbb -
Programozási és szoftverfejlesztési ismeretek I. 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
Programozási és szoftverfejlesztési ismeretek I. 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, főprogram} programtörzs end.
Programozási és szoftverfejlesztési ismeretek I. Változók • Egy hely, ami alkalmas egy érték tárolására a számítógép memóriájában Név - nevet kap, mely segítségével a későbbiekben a változóban lévő objektumra hivatkozni lehet Érvényességi kör - lokális változók - globális változók Tartalom, típus - szám, szöveg, boolean kifejezés, konstans, stb. - fontos megadni, hogy mekkora memóriaterületen tároljuk az adatot
Programozási és szoftverfejlesztési ismeretek I. Változó típusok
Programozási és szoftverfejlesztési ismeretek I. Tömbök és rekordok Datum = record Ev : 1900..2000; Ho : 1..12; Nap: 1..31;e end; Hallgato = record VezNev, KerNev : string[20]; SzulIdo : Datum; TanKor : string[4]; TanAtlag : real; end; 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) Tömb Ugyanolyan típusú változók tárolására szolgáló adathalmaz Oszlop = [1..10] of real; Sor = array[1..20] of real; Tomb = array[1..10,1..20,1..4] of real;
Programozási és szoftverfejlesztési ismeretek I. Delkará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 = setof elemek felsorolása; Record típus type nev = record a,b,c,d:típus; end; Konstans const konstansvaltozo = ertek;
Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika Elöl tesztelős ciklus while kifejezes do utasitas;
Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika hátul tesztelős ciklus repeat utasitas until feltetel;
Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika növekményes ciklus fel for kezdo to veg do utasitas; növekményes ciklus le for kezdo downto veg do utasitas;
Programozási és szoftverfejlesztési ismeretek I. Szelekció - szintaktika választás case kifejezes of ertek:utasitas; ertek:utasitas; … else utasitas; end;
Programozási és szoftverfejlesztési ismeretek I. Szelekció - szintaktika feltételes utasítás if feltetel then utasitas; if feltetel then utasitas else utasitas;
Programozási és szoftverfejlesztési ismeretek I. Műveletek maradékos osztás mod egészosztás div és and léptetés balra shl igaz, hamis true, false
Programozási és szoftverfejlesztési ismeretek I. Függvények, eljárások Függvények - programrészleteket foglal össze egy egységbe - visszatérési értéke van 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
Programozási és szoftverfejlesztési ismeretek I. Függvények, eljárások Eljárások - végrehajt egy műveletet anélkül, hogy visszaadna értéket - hívása utasításként viselkedik procedure nev (argumentumok); Pl.: Arc(X, Y, Kezdőszög, Zárószög, Sugár); eljárás grafikus módban - körcikket rajzol
Programozási és szoftverfejlesztési ismeretek I. Függvények - példa 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);
Programozási és szoftverfejlesztési ismeretek I. Karakterlánc eljárások lánc hossza length(karakterlánc); a lánc egy darabját adja copy(karakterlánc,kezd,darab); részláncot keres pos(részlánc, karakterlánc);
Programozási és szoftverfejlesztési ismeretek I. 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);
Programozási és szoftverfejlesztési ismeretek I. Egyéb a karakterrel visszatérő fv ReadKey; billentyűzet puffert vizsgáló boolean fvKeyPressed; késleltetés delay(ezredmásodperc); zenélés sound(frekvencia);
Programozási és szoftverfejlesztési ismeretek I. Megjegyzés - uses Beillesztett állományok Pl.: ablakkezelés, a billentyűzetkezelés, a lemezkezelés, a menükezelő eljárások Uses newdelay, crt;
Programozási és szoftverfejlesztési ismeretek I. Feladatok 1. Olvasson be két számot és az összegükkel térjen vissza! program osszeg; uses newdelay, crt; var a,b,c: integer;{bekért számok és eredmény tárolására} begin clear; c:= 0; {lenullázott kezdőérték} readln(a); {beolvassuk az egyik adatot } readln(b); {beolvassuk a következő adatot } c:= a+b; {összeg } writeln(‘A megoldás: ’,c); {kiírjuk a végeredményt} readkey; end.
Programozási és szoftverfejlesztési ismeretek I. Feladatok 2.Megadott számú valós szám átlagát számolja meg! Az adatokat a standard bemenetről olvassa. program atlag1; var n: integer; i: integer; sum: real; x: real; begin end. sum:= 0; readln(n); writeln(sum/n:8:2); for i:= 1 to n do begin readln(x); sum:= sum + x; end; { kiírjuk a végeredményt 8 helyiértékre és 2 tizedesjegyre }
Programozási és szoftverfejlesztési ismeretek I. Feladatok 3.A standard bementről olvasott számok közül kiválasztja a legnagyobbat és a legkisebbet. var elso: boolean; { jelzi, hogy ez a legelsõ szám } min, max: real; { pillanatnyi legkisebb és legnagyobb } x: real; { aktuális adat } begin elso:= true; { elsõ adat következik } while not eof do begin { amíg nincs file vége } readln(x); { beolvassuk a következõ adatot } if elso then begin { legelsõ adat jön } min:= x; { ez lesz a pillanatnyi legkisebb } max:= x; { es a pillanatnyi legnagyobb is } elso:= false; { bejött az elsõ szám } end else begin if x < min then { ha az új adat kisebb a mimimumtól } min:= x; { ez lesz az új minimum } if x > max then { ha nagyobb a maximumtól } max:= x; { ez lesz az új maximum } end end; writeln('Min:', min:8:3, ' Max:', max:8:3); end.
Programozási és szoftverfejlesztési ismeretek I. Feladatok 4. Írjon programot téglalap területének kiszámítására! 5. Írjon alkalmazás a másodfokú megoldóképlet megoldására! 6. Üdvözölje a program a felhasználót aszerint, hogy hány éves! (Kérje be az életkort, majd írjon ki egy üdvözlőszöveget tegező vagy magázó hangnemben.) 7. Bővítse ezt több lépcsős vizsgálattal (minimum négy féle köszöntés). Kezdjen minden programozási feladatot a folyamatábra felrajzolásával!
Programozási és szoftverfejlesztési ismeretek I. 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
Programozási és szoftverfejlesztési ismeretek I. 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ó
Programozási és szoftverfejlesztési ismeretek I. 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 műveletek
Programozási és szoftverfejlesztési ismeretek I. 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
Programozási és szoftverfejlesztési ismeretek I. 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);
Programozási és szoftverfejlesztési ismeretek I. Szöveges fájlok – I/O műveletek - Fájl végének ellenőrzé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 ellenőrzé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) 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