Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaÁron Sipos Megváltozta több, mint 10 éve
1
Programozási és szoftverfejlesztési ismeretek I. PENF511
Nagyváradi Anett
2
Elérhetőség Nagyváradi Anett Boszorkány utca 2. B138-as iroda
Programozási és szoftverfejlesztési ismeretek I. Elérhetőség Nagyváradi Anett Boszorkány utca 2. B138-as iroda Időpontok 6-11. heteken (7. hét őszi szünet) 14:30-17:30-ig (4 x 45 perc) - A119-e sterem
3
Alkalmazott programok
Programozási és szoftverfejlesztési ismeretek I. Alkalmazott programok TurboPascal - ingyenes > Letöltés programok > > Programnyelvek > tp70.exe Turbo Delphi 2006 Explorer (full, english) Borland Delphi 7.0 - licenszköteles
4
Tematika Programozás I. Programozás II.
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
5
Ajánlott irodalom [1] Angster Erzsébet : Programozás tankönyv I.- II.
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 [3] Benkő Tiborné : Programozási feladatok és algoritmusok Delphi rendszerben Computer Books, Budapest, 2002
6
Ajánlott irodalom [4] Ray Lischner: Delphi kézikönyv
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
7
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
8
Bevezetés a programozásba Algoritmikus gondolkodás
Programozási és szoftverfejlesztési ismeretek I. 1. ELŐADÁS Bevezetés a programozásba Pascal ismeretek Algoritmikus gondolkodás Programszerkesztés
9
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. 1 2 3 4 5 6 7 8 9 10 11 100 101 110 111 1000 1001 1010 Kettes számrsz. Bináris szám általános alakja:
10
Számrendszerek – bináris átváltás
Programozási és szoftverfejlesztési ismeretek I. Számrendszerek – bináris átváltás = =1·29 + 0·28 + 1·27 + 0·26 + 0·25 + 1· ·23 + 0·22 + 1·21 + 1·20 = = = = = = 66710 3510 = 35 : 2 = 17, maradék: 1 17 : 2 = 8, 8 : 2 = 4, maradék: 0 4 : 2 = 2, 2 : 2 = 1, 1 : 2 = 0, =
11
Számrendszerek – hexa átváltás
Programozási és szoftverfejlesztési ismeretek I. Számrendszerek – hexa átváltás 0000 = 0 1000 = 8 0001 = 1 1001 = 9 0010 = 2 1010 = A (10) 0011 = 3 1011 = B (11) 0100 = 4 1100 = C (12) 0101 = 5 1101 = D (13) 0110 = 6 1110 = E (14) 0111 = 7 1111 = F (15) Bináris 1001 1011 0010 0011 Hexadecimális 9 B 2 3
12
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 =
13
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ő)
14
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
15
Folyamatábra – folyt. Egyéb jelölések:
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
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
Szoftverfejlesztés lépései
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
20
A Pascal nyelv Niklaus Wirth (Zürich) 1960-as évek
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
21
A Pascal nyelv építőelemei
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 -
22
Keretrendszer – turbo.exe
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
23
A Pascal program szerkezete
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.
24
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
25
Változó típusok Egész típusok shortint 8 bit előjeles -128...127
Programozási és szoftverfejlesztési ismeretek I. Változó típusok Egész típusok shortint 8 bit előjeles integer 16 bit -32768…32767 longint 32 bit … byte előjel nélküli word Valós típusok real 6 bájt 11-12 j. -2.9E E38 single 4 bájt 7-8 j. -1.5E E38 double 8 bájt 15-16 j. -5.0E E308 Karakter típus char 1 bájt ASCII ( ) Karakterlánc típus string h max:255 Logikai típus boolean 0, 1 False,True
26
Tömbök és rekordok Rekord Tömb
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; 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;
27
Delkaráció - szintaktika
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 = set of elemek felsorolása; Record típus type nev = record a,b,c,d:típus; end; Konstans const konstansvaltozo = ertek;
28
Iteráció - szintaktika
Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika Elöl tesztelős ciklus while kifejezes do utasitas;
29
Iteráció - szintaktika
Programozási és szoftverfejlesztési ismeretek I. Iteráció - szintaktika hátul tesztelős ciklus repeat utasitas until feltetel;
30
Iteráció - szintaktika
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 down to veg do utasitas;
31
Szelekció - szintaktika
Programozási és szoftverfejlesztési ismeretek I. Szelekció - szintaktika választás case kifejezes of ertek:utasitas; … else utasitas; end;
32
Szelekció - szintaktika
Programozási és szoftverfejlesztési ismeretek I. Szelekció - szintaktika feltételes utasítás if feltetel then utasitas; if feltetel then utasitas else utasitas;
33
Műveletek maradékos osztás mod egészosztás div és and
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
34
Függvények, eljárások Függvények - visszatérési értéke van
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
35
Függvények, eljárások Eljárások
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
36
Függvények - példa adatbevitel Readln[(változóaz.)];
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);
37
Karakterlánc eljárások
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);
38
Karakterlánc eljárások
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);
39
Egyéb a karakterrel visszatérő fv
Programozási és szoftverfejlesztési ismeretek I. Egyéb 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);
40
Megjegyzés - uses Beillesztett állományok
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;
41
Feladatok 1. Olvasson be két számot és az összegükkel térjen vissza!
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.
42
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 }
43
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.
44
Feladatok 4. Írjon programot téglalap területének kiszámítására!
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!
45
Fájlkezelés Lépései programozási nyelvtől függetlenek:
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
46
Szöveges fájlok - Karaktereket tartalmazó sorokból épülnek fel
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ó
47
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
48
Szöveges fájlok - megnyitás
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
49
Szöveges fájlok – I/O műveletek
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);
50
Szöveges fájlok – I/O műveletek
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)
51
Fájlkezelés Assignfile hozzárendelés Reset nyitás csak olvasásra
Programozási és szoftverfejlesztési ismeretek I. 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
52
Hibakezelés - I/O műveleteknél fellépő hibák kezelése lehetséges
Programozási és szoftverfejlesztési ismeretek I. 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
53
Hibakezelés {$I-} Reset(f); {megnyitás}
Programozási és szoftverfejlesztési ismeretek I. Hibakezelés {$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+}
54
Grafika Grafikus képernyő használatához: - GRAPH unit - .BGI fájlok
Programozási és szoftverfejlesztési ismeretek I. 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
55
Grafika DetectGraph(gd,gm);
Programozási és szoftverfejlesztési ismeretek I. 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
56
Grafika SetBkColor(white);
Programozási és szoftverfejlesztési ismeretek I. 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
57
Grafikai függvények putpixel(x,y:integer;szin:word);
Programozási és szoftverfejlesztési ismeretek I. Grafikai függvények 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)
58
Grafikai alakzatok rectangle(x1,y1,x2,y2); téglalapot rajzol
Programozási és szoftverfejlesztési ismeretek I. 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
59
Nehezebb feladatok 1. Számok bekérése, sorrendben való kiíratása
Programozási és szoftverfejlesztési ismeretek I. Nehezebb feladatok 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
60
Megoldás - 1 if n<30 then begin {sorrend} for i:= 1 to n do
Programozási és szoftverfejlesztési ismeretek I. Megoldás - 1 if n<30 then begin {sorrend} for i:= 1 to n do for j :=1 to n do if A[i]<A[j] then tmp:=A[i]; A[i]:=A[j]; A[j]:=tmp; end; {kiiratas} if A[i]<>A[i+1] then write(' ' ,A[i], ''); readln; end else end. 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 write('kerem ezt az ',i,'szamot'); readln(A[i]); end;
61
Megoldás - 2 Programozási és szoftverfejlesztési ismeretek I.
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); readkey; end. 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 osztando:=10*(osztando mod oszto);
62
Megoldás - 3 Programozási és szoftverfejlesztési ismeretek I.
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.
63
Megoldás - 4 PROGRAM maximumkivalasztas; Uses CRT; CONST n=10;
Programozási és szoftverfejlesztési ismeretek I. Megoldás - 4 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.
64
Megoldás - 5 Programozási és szoftverfejlesztési ismeretek I.
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.
65
Megoldás - 6 Programozási és szoftverfejlesztési ismeretek I.
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;
66
Megoldás – 6 folyt. Programozási és szoftverfejlesztési ismeretek I.
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; PROCEDURE 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); PROCEDURE Minimum; Procedure maxkereses(var m:integer); {hogy tmp valt honnet induljon} Begin m:=1; for cv:=2 to N do if Huzas[cv]>Huzas[m] then m:=cv; End; maxkereses(m); tmp:=Huzas[m]; for i:=1 to N do if (tmp>Huzas[i]) then begin tmp:=Huzas[i]; valt:=i; end; writeln('a legritkabban kihuzott szam:',valt); BEGIN clrscr; Huzasszam; Atlagszamitas; Maximum; Minimum; readkey; END.
67
Megoldás - 7 Programozási és szoftverfejlesztési ismeretek I.
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 GotoXY(33,13); write('║',a,' ',b,'║'); readkey; End.
68
Megoldás - 8 PROGRAM grafik; Uses CRT,GRAPH;
Programozási és szoftverfejlesztési ismeretek I. Megoldás - 8 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.
69
Megoldás - 9 program KOROK; uses GRAPH; var gd,gm,i:integer; begin
Programozási és szoftverfejlesztési ismeretek I. Megoldás - 9 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.
70
Tömbkezelés Deklarálás: Hivatkozás: vektor: array[1..10] of integer;
Programozási és szoftverfejlesztési ismeretek I. Tömbkezelés Deklarálás: vektor: array[1..10] of integer; matrix: array[1..5, 1..4] of integer; Hivatkozás: vektor[3] matrix[2,3]
71
Tömb típusú konstans const konst_tomb : array[1..3, 1..4] of byte =
Programozási és szoftverfejlesztési ismeretek I. Tömb típusú konstans const konst_tomb : array[1..3, 1..4] of byte = ((1, 3, 4, 1),(2, 3, 4, 2),(1, 6, 3, 5));
72
Tömbkezelés - adatfeltöltés
Programozási és szoftverfejlesztési ismeretek I. Tömbkezelés - adatfeltöltés for i := 1 to 10 do begin Write('Kérem a tömb ',i,'.elemét: '); Readln(tomb[i]); end;
73
Programozási és szoftverfejlesztési ismeretek I.
Feladat 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!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.