Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozási és szoftverfejlesztési ismeretek I. Programozási és szoftverfejlesztési ismeretek I. PENF511 Nagyváradi Anett Programozási és szoftverfejlesztési.

Hasonló előadás


Az előadások a következő témára: "Programozási és szoftverfejlesztési ismeretek I. Programozási és szoftverfejlesztési ismeretek I. PENF511 Nagyváradi Anett Programozási és szoftverfejlesztési."— Előadás másolata:

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

2 Nagyváradi Anett Boszorkány utca 2. B138-as iroda Elérhetőség Időpontok heteken (7. hét őszi szünet) 14:30-17:30-ig (4 x 45 perc) - A119-e sterem

3 Programozási és szoftverfejlesztési ismeretek I. TurboPascal - ingyenes > Letöltés programok > > Programnyelvek > tp70.exe Turbo Delphi 2006 Explorer Turbo Delphi 2006 Explorer (full, english) - ingyenes Borland Delphi licenszköteles Alkalmazott programok

4 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. Tematika

5 Programozási és szoftverfejlesztési ismeretek I. [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 Ajánlott irodalom

6 Programozási és szoftverfejlesztési ismeretek I. [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 Ajánlott irodalom

7 Programozási és szoftverfejlesztési ismeretek I. 1 db zárthelyi dolgozat 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 Pótlás : vizsgaidőszakban az ETR szerint meghirdetett időpontokban Félévi követelmények

8 1. ELŐADÁS Bevezetés a programozásba Pascal ismeretek Algoritmikus gondolkodás Programszerkesztés Programozási és szoftverfejlesztési ismeretek I.

9 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 Programozási és szoftverfejlesztési ismeretek I. Számábrázolás Tizes számrsz. Kettes számrsz. Bináris szám általános alakja:

10 = =1· · · · · · · · · ·2 0 = = = = = = Programozási és szoftverfejlesztési ismeretek I. Számrendszerek – bináris átváltás 35 : 2 =17,maradék: 1 17 : 2 =8,maradék: 1 8 : 2 =4,maradék: 0 4 : 2 =2,maradék: 0 2 : 2 =1,maradék: 0 1 : 2 =0,maradék: = =

11 Programozási és szoftverfejlesztési ismeretek I. Számrendszerek – hexa átváltás 0000 = = = = = = A (10) 0011 = = B (11) 0100 = = C (12) 0101 = = D (13) 0110 = = E (14) 0111 = = F (15) Bináris Hexadecimális 9B23

12 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=2 10 bit = 1024bit Szó - egyszerre feldolgozható bitek száma (pl.: 32 bites processzor) 2 10 = Programozási és szoftverfejlesztési ismeretek I. Számábrázolás

13 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. Algoritmus

14 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

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

16 Programozási és szoftverfejlesztési ismeretek I. Folyamatábra – Példa 1

17 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

18 Programozási és szoftverfejlesztési ismeretek I. Folyamatábra – Példa 3 Forrás:

19 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. Szoftverfejlesztés lépései

20 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

21 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. A Pascal nyelv építőelemei

22 Á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. Keretrendszer – turbo.exe

23 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. A Pascal program szerkezete

24 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ók

25 Programozási és szoftverfejlesztési ismeretek I. Változó típusok Egész típusok shortint8 bitelőjeles integer16 bitelőjeles-32768…32767 longint32 bitelőjeles … byte8 bitelőjel nélküli word16 bitelőjel nélküli Valós típusok real6 bájt11-12 j.-2.9E E38 single4 bájt7-8 j.-1.5E E38 double8 bájt15-16 j.-5.0E E308 Karakter típuschar1 bájtASCII( ) Karakterlánc típus stringASCIIh max:255 Logikai típusboolean1 bájt0, 1False,True

26 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 Programozási és szoftverfejlesztési ismeretek I. Tömbök és rekordok Datum = record Ev : ; Ho : 1..12; Nap: 1..31;e end; Hallgato = record VezNev, KerNev : string[20]; SzulIdo : Datum; TanKor : string[4]; TanAtlag : real; end; Oszlop = [1..10] of real; Sor = array[1..20] of real; Tomb = array[1..10,1..20,1..4] of real;

27 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; Programozási és szoftverfejlesztési ismeretek I. Delkaráció - szintaktika

28 Elöl tesztelős ciklus while kifejezes do utasitas; Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika

29 hátul tesztelős ciklus repeat utasitas until feltetel; Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika

30 növekményes ciklus fel for kezdo to veg do utasitas; növekményes ciklus le for kezdo down to veg do utasitas; Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika

31 választás case kifejezes of ertek:utasitas; … else utasitas; end; Programozási és szoftverfejlesztési ismeretek I. Szelekció - szintaktika

32 feltételes utasítás if feltetel then utasitas; if feltetel then utasitas else utasitas; Programozási és szoftverfejlesztési ismeretek I. Szelekció - szintaktika

33 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. Műveletek

34 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

35 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, eljárások

36 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. Függvények - példa

37 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

38 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. Karakterlánc eljárások

39 a karakterrel visszatérő fv ReadKey; billentyűzet puffert vizsgáló boolean fv KeyPressed; késleltetés delay(ezredmásodperc); zenélés sound(frekvencia); Programozási és szoftverfejlesztési ismeretek I. Egyéb

40 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. Megjegyzés - uses

41 1. Olvasson be két számot és az összegükkel térjen vissza ! Programozási és szoftverfejlesztési ismeretek I. Feladatok 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.

42 2. Megadott számú valós szám átlagát számolja meg! Az adatokat a standard bemenetről olvassa. Programozási és szoftverfejlesztési ismeretek I. Feladatok program atlag1; var n: integer; i: integer; sum: real; x: real; begin end. { kiírjuk a végeredményt 8 helyiértékre és 2 tizedesjegyre } sum:= 0; readln(n); writeln(sum/n:8:2); for i:= 1 to n do begin readln(x); sum:= sum + x; end;

43 3. A standard bementről olvasott számok közül kiválasztja a legnagyobbat és a legkisebbet. Programozási és szoftverfejlesztési ismeretek I. Feladatok 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.

44 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). Programozási és szoftverfejlesztési ismeretek I. Feladatok Kezdjen minden programozási feladatot a folyamatábra felrajzolásával!

45 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. Fájlkezelés

46 - 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

47 - 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

48 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 - megnyitás

49 Í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

50 - 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) Programozási és szoftverfejlesztési ismeretek I. Szöveges fájlok – I/O műveletek

51 Assignfilehozzárendelés Resetnyitás csak olvasásra Rewrite nyitás írásara, felülírásra ReadI/O olvasás WriteI/O írás Closefilelezárás Programozási és szoftverfejlesztési ismeretek I. Fájlkezelés

52 - 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 Programozási és szoftverfejlesztési ismeretek I. Hibakezelés

53 {$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+} Programozási és szoftverfejlesztési ismeretek I. Hibakezelés

54 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 Programozási és szoftverfejlesztési ismeretek I. Grafika

55 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 Programozási és szoftverfejlesztési ismeretek I. Grafika

56 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 Programozási és szoftverfejlesztési ismeretek I. Grafika

57 putpixel(x,y:integer;szin:word); az (x,y) koordinátájú pontot szin színűre 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(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) Programozási és szoftverfejlesztési ismeretek I. Grafikai függvények

58 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 Programozási és szoftverfejlesztési ismeretek I. Grafikai alakzatok

59 1. Számok bekérése, sorrendben való kiíratása 2. Osztás adott pontossággal 3. Maximumelem kiválasztás tömbből 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 érintkező 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 Programozási és szoftverfejlesztési ismeretek I. Nehezebb feladatok

60 Program hf1; {szam beolvasasa, sorrenben kiiratasa} uses Crt; var i,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; Programozási és szoftverfejlesztési ismeretek I. Megoldás - 1 if n<30 then begin {sorrend} for i:= 1 to n do begin for j :=1 to n do begin if A[i]A[i+1] then write(' ',A[i], ''); end; readln; end else readln; end.

61 program osztas; uses crt; var eredmeny,t:string; osztando, oszto:longint; pontossag:byte; i:byte; {ciklusvaltozo} szam1,szam2:longint; hanytizedesig,tmp,maradek,j:integer; begin clrscr; 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); Str(osztando div oszto, t); eredmeny:=eredmeny+t; end; writeln('az eredmeny',eredmeny); { masik} 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 2

62 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 3

63 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 4

64 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 5

65 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; Programozási és szoftverfejlesztési ismeretek I. Megoldás - 6

66 var i:integer; Begin Atlag:= tmp div 90; Kevesebbszer:=0; for i:=1 to N do if Huzas[i]Huzas[m] then m:=cv; if Huzas[cv]>Huzas[m] then m:=cv; End; End; Begin Begin maxkereses(m); maxkereses(m); tmp:=Huzas[m]; tmp:=Huzas[m]; for i:=1 to N do if (tmp>Huzas[i]) then for i:=1 to N do if (tmp>Huzas[i]) then begin begin 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;BEGINclrscr;Huzasszam;Atlagszamitas;Maximum;Minimum;readkey;END. Programozási és szoftverfejlesztési ismeretek I. Megoldás – 6 folyt.

67 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 7

68 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 8

69 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. Programozási és szoftverfejlesztési ismeretek I. Megoldás - 9

70 Deklarálás: vektor: array[1..10] of integer; matrix: array[1..5, 1..4] of integer; Hivatkozás: vektor[3] matrix[2,3] Programozási és szoftverfejlesztési ismeretek I. Tömbkezelés

71 const konst_tomb : array[1..3, 1..4] of byte = ((1, 3, 4, 1),(2, 3, 4, 2),(1, 6, 3, 5)); Programozási és szoftverfejlesztési ismeretek I. Tömb típusú konstans

72 for i := 1 to 10 do begin Write('Kérem a tömb ',i,'.elemét: '); Readln(tomb[i]); end; Programozási és szoftverfejlesztési ismeretek I. Tömbkezelés - adatfeltöltés

73 Rajzoljunk folyamatábrát majd írjunk programot a következő funkciókkal: -A felhasználót kérdezzük meg, hány adatot szeretnénk tárolni majd sorba rendezni. -Kérjük be a számokat és tároljuk el őket egy tömbben. -A bekérés után billentyű-leütést követően adja vissza a számok közül legkisebb és legnagyobb értékűt, ezt írja ki a képernyőre. -Majd kérdezze meg a felhasználót, szeretné-e sorba- rendzeni a számokat? (y/n; yes/no, igen/nem) -Ha nem, akkor köszönjön el a felhasználótól aszerint, hogy hány éves (0-20 évig Szia!, évig Viszont látásra!, 40 év fölött Csókolom! ) -Ha igen, akkor rendezze sorba a számokat növekvő vagy csökkenő sorrendbe! Programozási és szoftverfejlesztési ismeretek I. Feladat


Letölteni ppt "Programozási és szoftverfejlesztési ismeretek I. Programozási és szoftverfejlesztési ismeretek I. PENF511 Nagyváradi Anett Programozási és szoftverfejlesztési."

Hasonló előadás


Google Hirdetések