POSEIDON NAVIGATION PROJECT

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "POSEIDON NAVIGATION PROJECT"

Átírás

1 Mellékletek POSEIDON NAVIGATION PROJECT intelligent Map with Rules of Traffic Készítette: BED K DÁVID & SZIRBIK FERENC KONZULENSEK: VÁMOSSY ZOLTÁN (DOCENS) & MOLNÁR ANDRÁS (ADJUNKTUS) november 8. BMF-NIK IAR Budapesti M szaki F iskola Neumann János Informatikai F iskolai Kar Informatikai és Automatizált Rendszerek szakirány

2 TARTALOMJEGYZÉK TARTALOMJEGYZÉK...2 A MELLÉKLET: ANGOL-MAGYAR SZAKSZÓTÁR...3 B MELLÉKLET: µ-blox MS1E GPS VEV MODUL...4 M szaki paraméterei, fizikai specifikáció...4 C MELLÉKLET: GRAPHS AND SPANNING TREES Képerny kép indítás után Új gráf létrehozása Új elem hozzáadása a gráf-pontok illetve a súlyvektor listájába Az Elso gráf létrehozás után Megjelenítési beállítások Globális konstansok és változók Új gráf pont hozzáadása (X;Y) sík megadása Új él hozzáadása Gráf pont kiválasztása Él kiválasztása Gráf tulajdonságai Aktuális súly beállítása Statikus kapcsolatmátrix generálása Kapcsolatmátrix Útkeresés Dijksra algoritmusa alapján Egy gráf a kijelölt legrövidebb úttal A és C pont között D MELLÉKLET: GRAPHS AND SPANNING TREES FEJLESZT I DOKUMENTÁCIÓ TObject3D osztály A konstansok Típusok Változók Az osztály A TGraph osztály A konstansok A változók A típusok Az osztály A TypeUnit további részei További típusok További eljárások illetve függvények A TGraph osztály Draw() metódusa E MELLÉKLET C# OSZTÁLYLEÍRÁSOK A PPC FEJLESZTÉSB L: /2.

3 POSEIDON NAVIGATION PROJECT IAR SZAKSZÓTÁR A MELLÉKLET: ANGOL-MAGYAR SZAKSZÓTÁR Magyar szó/kifejezés útkeresés kiinduló pont cél elkerülend (objektumok) elkerülend ellenségek költségek minimalizálása objektum elkezd mozogni csapda csúcs feszít fa Angol szó/kifejezés pathfinding starting point goal avoiding obstacles avoiding enemies minimizing costs object begins to move trap vertex spanning tree 38/3.

4 B MELLÉKLET: µ-blox MS1E GPS VEV MODUL M szaki paraméterei, fizikai specifikáció 38/4.

5 C MELLÉKLET: GRAPHS AND SPANNING TREES 01 Képerny kép indítás után 02 Új gráf létrehozása 38/5.

6 03 Új elem hozzáadása a gráf-pontok illetve a súlyvektor listájába 04 Az Elso gráf létrehozás után 38/6.

7 05 Megjelenítési beállítások 06 Globális konstansok és változók 38/7.

8 07 Új gráf pont hozzáadása 08 (X;Y) sík megadása 38/8.

9 09 Új él hozzáadása 10 Gráf pont kiválasztása 38/9.

10 11 Él kiválasztása 12 Gráf tulajdonságai 38/10.

11 13 Aktuális súly beállítása 14 Statikus kapcsolatmátrix generálása 38/11.

12 15 Kapcsolatmátrix 16 Útkeresés Dijksra algoritmusa alapján 38/12.

13 17 Egy gráf a kijelölt legrövidebb úttal A és C pont között 38/13.

14 D MELLÉKLET: GRAPHS AND SPANNING TREES FEJLESZT I DOKUMENTÁCIÓ 01 TObject3D osztály A konstansok CONST MAXPOINTS = 500; MAXEDGES = 1000; MAXARMS = 3; ACCURACY = 0.001; A MAXPOINTS határozza meg, hogy maximálisan mennyi grafikai pont lehet az ábrán. A program ezen része is teljesen statikus m ködésre van felkészítve, a kés bbi programverziók legfontosabb lépése a dinamikus tárolás megvalósítása lesz. A MAXEDGES értelemszer en a maximálisan ábrázolható grafikai élek számát jelenti (már többször említettem, hogy a grafikai élek és pontok száma nem egyezik meg a gráf éleinek és pontjainak számával). A MAXARMS egy bels konstans, mely korlátozásával (3 a legkisebb értéke) a TObject3D osztály egy lényeges funkcióját elérhetetlenné tesszük. Képes lenne az osztály több elem tárolására (mindegyiket külön lokális koordinátarendszerben), és ezen elemeket egy osztálypéldány tagjaiként egymáshoz képest mozgatni, forgatni tudnánk. EZ a MAXARMS határozza meg, hogy mennyi ilyen elem tárolható egy példányban. Az 1. elem nem tényleges elem, itt nem tárolhatunk adatot. Ez a bázis koordinátarendszert határozza meg. A 2.-ban tároljuk a tárgyainkat, és ennek biztonságos kezeléséhez (mutatók elérik még a következ elemet is) szükséges még egy elem. Ezért 3 az értéke minimálisan a MAXARMS-nak. Az ACCURANCY egy pontosság érték. Két valós számot az osztály már egyenl nek tekint, ha ezen értéknél kisebb a különbség közöttük. Típusok TYPE (*** T3DObjects ***) TTrans = Array [1..4,1..4] Of Double; TVector3D = Array [1..3] Of Double; TPoint4D = Array [1..4] Of Double; TCoords = Array [1..3] Of TPoint4D; TPoints = Array [1..MAXPOINTS] Of TPoint4D; TPointsColor = Array [1..MAXPOINTS,1..3] Of Byte; TPointsLabel = Array [1..MAXPOINTS,1..2] Of ShortString; TEdges = Array [1..MAXEDGES,1..5] Of Integer; TMatrix3x3 = Array [1..3] Of TVector3D; TData = Record Active : Boolean; Prev : Byte; Next : Byte; Coords : TCoords; Offset : TVector3D; PointsDB : Integer; Points : TPoints; EdgesDB : Integer; Edges : TEdges; ResultPoints : TPoints; 38/14.

15 PointsLabel : TPointsLabel; PointsColor : TPointsColor; TDataArray = Array [1..MAXARMS] Of TData; A TTrans mátrix tartalmazza a transzformációs m veleteket (forgatás, eltolás, stb.). A TVector3D egy 3D-s vektor avagy egy pont tárolására alkalmas. A TPoint4D ehhez hasonlósan a homogén koordinátás alakban képes ugyanerre. A TCoords a koordinátatengelyek homogén koordinátás alakjait tárolja. A TPoints tömbben találhatók a grafikus pontok, a TEdges tömbben pedig a grafikus élek adatai. A TPointsColor minden pontra tárolja a színét, a TPointsLabel pedig egy feliratot, mely szintén megjelenhet, ha a beállítások ezt engedik. A TMatrix3x3 egy 3D-s környezetben tárolt mátrix. A TDataArray tárolja az egyes elemek (amib l a Graphs and spanning trees csak ténylegesen egyet használ) adatait. Változók VAR TextFont : TFont; BACKGROUND : TColor; DefaultColor : TColor; TEXTOVERWRITE : Boolean; VISI_SERIALOFPOINTS : Boolean; VISI_NAMEOFPOINTS : Boolean; VISI_SERIALOFEDGES : Boolean; VISI_NAMEOFEDGES : Boolean; VISI_WEIGHT : Boolean; VISI_COLORS : Boolean; VISI_DATUM : Boolean; SerialOfPointsColor : TColor; NameOfPointsColor : TColor; SerialOfEdgesColor : TColor; NameOfEdgesColor : TColor; WeightColor : TColor; DatumColor : TColor; A változók az egyes feliratok láthatóságát, illetve színét állítják be. A TEXTOVERWRITE igaz értéke esetén a feliratok háttere átlátszó lesz. Így bár több információ lesz az ábrán, ám ezek kevésbé leolvasható formában. Az osztály TObject3D = Class (TObject) Data : TDataArray; // Az objektumok adatai OX : Integer; // Origó X koordinátája OY : Integer; // Origó Y koordinátája RotateUgamma : TTrans; // Tetsz leges U tengely körüli forgatás mátrixa (gamma szöggel) u : TPoint4D; // Az u tenngely gamma : Double; // A gamma szög (radián) Act : Byte; // Az aktuális kar. RotXAlpha : TTrans; // Az X tengely körüli forgatás mátrixa RotYAlpha : TTrans; // Az Y tengely körüli forgatás mátrixa RotZAlpha : TTrans; // Az Z tengely körüli forgatás mátrixa alpha : Double; // A X, Y, Z tengely körüli forgatás szöge. PROCEDURE InitObject3D ( KX : Integer; KY : Integer ); PROCEDURE DataInit; PROCEDURE AddArm ( num : Byte; 38/15.

16 prev : Byte; next : Byte; coords : TCoords; offset : TVector3D ); PROCEDURE AddEdge ( num : Byte; p1 : Integer; p2 : Integer; ColorR : Byte; ColorG : Byte; ColorB : Byte ); PROCEDURE AddPoint ( num : Byte; pointdb : Byte; x : Double; y : Double; z : Double ); PROCEDURE AddPointColor ( num : Byte; pointdb : Byte; R : Byte; G : Byte; B : Byte ); PROCEDURE AddPointWithLabel ( num : Byte; pointdb : Byte; x : Double; y : Double; z : Double; PLabel : ShortString; PLabelType : ShortString ); PROCEDURE DataStart ( num : Byte ); FUNCTION SetVector3D ( x : Double; y : Double; z : Double ) : TVector3D; FUNCTION SetPoint4D ( x : Double; y : Double; z : Double; h : Double ) : TPoint4D; FUNCTION SetCoords ( X : TPoint4D; Y : TPoint4D; Z : TPoint4D ) : TCoords; PROCEDURE InitRotateUgamma ( v : TPoint4D; rad : Double ); PROCEDURE InitRotXAlpha ( rad : Double ); PROCEDURE InitRotYAlpha ( rad : Double ); PROCEDURE InitRotZAlpha ( rad : Double ); FUNCTION SetTrans ( Coords : TCoords; Offset : TVector3D ) : TTrans; FUNCTION SetNegativMatrix ( Matrix : TMatrix3x3 ) : TMatrix3x3; FUNCTION SetInvTrans ( Coords : TCoords; Offset : TVector3D ) : TTrans; FUNCTION SetTransponalt ( TT : TMatrix3x3 ) : TMatrix3x3; FUNCTION Multiplication3x1_3x3 ( Matrix : TMatrix3x3; v : TVector3D ) : TVector3D; FUNCTION Multiplication4x1_4x4Single ( Matrix : TTrans; v : TPoint4D ): TPoint4D; FUNCTION Multiplication4x1_4x4 ( v : TPoints; Matrix : TTrans; PointsDB : Integer ) : TPoints; FUNCTION Multiplication4x1_4x4Coords ( v : TCoords; Matrix : TTrans ) : TCoords; PROCEDURE DrawObject ( ManipulatorImage : TImage; Original : Boolean; PointsOrEdgesDraw : Char ); 38/16.

17 PROCEDURE MoveManipulator ( ManipulatorImage : TImage; CLRSCR : Boolean; PointsOrEdgesDraw : Char ); FUNCTION GetVectorLength ( A : TVector3D ) : Double; FUNCTION SetNormalVector ( A : TVector3D; B : TVector3D ) : TVector3D; 02 A TGraph osztály A konstansok CONST MAXITEM = 10; MAXGRAPHPOINTS = 50 MAXGRAPHEDGES = 100 MAXSHAPEPOINTS = 20; SHAPELISTFILENAME = 'shapes.lst'; SHAPEDIRECTORY = 'shape/'; SAVEDIRECTORY = 'graphs/'; A MAXITEM határozza meg, hogy statikus esetben egy élen mennyi súly, illetve egy pontban mennyi adat tárolható. A MAXGRAPHPOINTS és a MAXGRAPHEDGES a gráf pontjaira illetve éleire meghatározott statikus korlát. A MAXSHAPEPOINTS meghatározza, hogy egy gráf pont minta 3D-s objektuma maximálisan mennyi grafikai pontból állhat. A SHAPEDIRECTORY és a SAVEDIRECTORY az alapértelmezett könyvtárakat állítja be, míg a SHAPELISTFILENAME a minták listáját tároló file nevét. A változók Var DIRECTIVITYLENGTH : Byte; DIRECTIVITYLENGTH2 : Byte; WayColor : TColor; A gráf irányítottságát grafikailag jelölni többféleképpen lehet. A DIRECTIVITYLENGTH és a DIRECTIVITYLENGTH2 változók lehet vé teszik, hogy hosszabb, illetve nagyobb nyilakat tudjunk megjeleníteni. A WayColor a megtalált út színét határozza meg. A típusok (*** TGraph ***) TRec = Record ItemName : ShortString; ItemType : ShortString; DefaultValue : ShortString; TGraphDataArray = Array [1..MAXITEM] Of ShortString; TGraphWeightsArray = Array [1..MAXITEM] Of ShortString; TPointRec = Record Enable : Boolean; X : Double; Y : Double; Z : Double; Serial : Word; Name : ShortString; AllowName : Boolean; Shape : ShortString; 38/17.

18 Color : TColor; DataArray : TGraphDataArray; TEdgeRec = Record Enable : Boolean; PointOne : Word; PointTwo : Word; Serial : Word; Name : ShortString; AllowName : Boolean; Color : TColor; Directivity : Byte; WeightsArray : TGraphWeightsArray; IsWay : Boolean; TRecArray = Array [1..MAXITEM] Of TRec; TPointsArray = Array [1..MAXGRAPHPOINTS] Of TPointRec; TEdgesArray = Array [1..MAXGRAPHEDGES] Of TEdgeRec; TRelationMatrix = Array [1..MAXGRAPHPOINTS,1..MAXGRAPHPOINTS] Of Double; TPFRec = Record Length : Double; Prev : Word; Status : Boolean; TPFArray = Array [1..MAXGRAPHPOINTS] Of TPFRec; A TRec rekord tárolja a súlyvektor illetve a pontok adatainak tulajdonságait a gráf tulajdonságai között. A TRecArray vektor tárolja a a TRec típusú elemeket a statikus súlyvektor és gráf pont adatvektor számára. A TGraphDataArray a pontok adatainak statikus vektora szinkronban TRecArray-el. A TGraphWeightsArray a statikus súlyvektor szinkronban TRecArray-el. A TPointRec rekord tárolja egy adott gráf pont tulajdonságait. Az Enable határozza meg, hogy logikailag törölt-e az elem, avagy sem. Az X, Y és Z a koordinátáit határozza meg, a Serial az automatikusan generálódó sorszámát, a Name a nevét, az AllowName ennek a létezését. A Shape az adott grafikai mintát tároló file neve, a Color pedig a gráf pont színe. A DataArray tárolja a TGraphDataArray-el szinkronban a gráf csomópontjaiban tárolt adatokat. A TEdgeRec rekord a gráf éleinek tulajdonságait tárolja. Az Enable itt is a logikai törlöttségre utal, a Serial, Name, AllowName és Color szintén azonos jelentéssel bír, mint a gráf pontjai esetén ezt már láttuk. A PointOne és PointTwo határozza meg az él által összekötött két pont sorszámát. A Directivity ennek függvényében az irányítottságot jelölheti. Ha értéke 0, akkor nincs irányítottság. Irányított gráf esetében ez azt jelenti, hogy oda-vissza út létezik (ezt a kés bbiekben le lehet majd tiltani, mivel el fordulhat olyan probléma, mely során ezt nem célszer alkalmazni, azonban térkép program esetén a kétsávú utat ezzel tudjuk modellezni)! Az IsWay logikai változó igaz értéke esetén az adott él egy korábbi útszámítás során az eredmény része volt. Ilyenkor a színe a saját Color tulajdonsága helyett a WayColor lesz. A TPointsArray és a TEdgesArray tárolják a pontokat és az éleket statikus esetben. A TRelationMatrix a kapcsolatmátrix típusa. A TPFRec és a TPFArray Dijkstra legrövidebb út keres algoritmusához szükséges. TPArray-ben fog keletkezni az eredmény. 38/18.

19 Az osztály TGraph = Class (TObject) public // kesobbiekben private NameOfGraph : ShortString; Comment : ShortString; StorageType : ShortString; TypeOfGraph : ShortString; MultipleEdges : Boolean; Continuous : Boolean; MultipleWeight : Boolean; DataArray : TRecArray; WeightsArray : TRecArray; DANum : Byte; WANum : Byte; MaxXY : Integer; PointsArray : TPointsArray; PointsNum : Word; ShowPoints : TObject3D; EdgesNum : Word; EdgesArray : TEdgesArray; ShowInfo : TObject3D; CurrentWeight : Integer; CurrentDatum : Integer; RelationMatrix : TRelationMatrix; public PROCEDURE InitGraph; PROCEDURE AddItemRecArray ( Var TRA : TRecArray; Var Num : Byte; ItemName : ShortString; ItemType : ShortString; DefaultValue : ShortString ); PROCEDURE AddPoint ( PointRec : TPointRec ); PROCEDURE DeletePoint ( Serial : Word ); PROCEDURE EditPoint ( PointRec : TPointRec; Serial : Word ); PROCEDURE AddEdge ( EdgeRec : TEdgeRec ); PROCEDURE DeleteEdge ( Serial : Word ); PROCEDURE EditEdge ( EdgeRec : TEdgeRec; Serial : Word ); PROCEDURE Draw ( Image : TImage ); PROCEDURE PathfindingDijkstra ( StartPoint : Word; DestinationPoint : Word; Var PFArray : TPFArray ); PROCEDURE DijkstraNeighbours ( Var PFArray : TPFArray; act : Word ); FUNCTION DijkstraMinimum ( PFArray PROCEDURE InitEdgeWay; FUNCTION SearchEdge ( PointOne : Word; PointTwo : Word ) : TPFArray ) : Word; : Word; 03 A TypeUnit további részei További típusok TPair = Array [1..MAXSHAPEPOINTS,1..2] Of Word; A TPair egy segédtömb, mely a gráf pont minták gráfhoz illesztéséhez szükséges. A probléma, melyet meg kellett oldani, hogy egy TObject3D adatmez it 38/19.

20 (minta) egy másik TObject3D típusba (a gráfba) kellett átmásolni. Ilyenkor a pontok sorszáma megváltozik, de mivel az élek is a pontok eredeti sorszáma alapján tárolódnak, ezért az éleket párosítani kellett a pontokkal. További eljárások illetve függvények PROCEDURE CopyGraph ( Graph1 : TGraph; Var Graph2 : TGraph ); PROCEDURE LoadShapeList ( Var ListBox : TListBox ); PROCEDURE LoadShape ( Var Shape : TObject3D; FileName : String ); PROCEDURE InitPair ( Var Pair : TPair; Var Num : Byte ); FUNCTION SearchPair ( Pair : TPair; local : Byte ) : Word; PROCEDURE SaveGraphToFile ( FileName : ShortString ); PROCEDURE OpenGraphFromFile ( FileName : ShortString ); 04 A TGraph osztály Draw() metódusa procedure TGraph.Draw( Image : TImage ); Var i : Integer; TF : TextFile; num : Integer; X : Integer; Y : Integer; Z : Integer; numglobal : Word; AidePair : TPair; PairNum : Byte; Line : ShortString; numglobalinfo : Word; SX : Integer; SY : Integer; SZ : Integer; SDiv : Integer; A : TVector3D; B : TVector3D; IV : TVector3D; NV : TVector3D; SColor : TColor; begin ShowPoints.Free; ShowPoints:=TObject3D.Create; ShowPoints.InitObject3D(MaxXY Div 2,MaxXY Div 2); ShowPoints.DataInit; ShowInfo.Free; ShowInfo:=TObject3D.Create; ShowInfo.InitObject3D(MaxXY Div 2,MaxXY Div 2); ShowInfo.DataInit; ShowPoints.AddArm(1,0,2,ShowPoints.SetCoords(ShowPoints.SetPoint4D(1,0,0,1),ShowPoints.SetPoin t4d(0,1,0,1),showpoints.setpoint4d(0,0,1,1)),showpoints.setvector3d(0,0,0)); ShowPoints.AddPoint(1,1,0,0,0); ShowPoints.DataStart(1); ShowPoints.AddArm(2,1,0,ShowPoints.SetCoords(ShowPoints.SetPoint4D(1,0,0,1),ShowPoints.SetPoin t4d(0,1,0,1),showpoints.setpoint4d(0,0,1,1)),showpoints.setvector3d(0,0,10)); ShowInfo.AddArm(1,0,2,ShowInfo.SetCoords(ShowInfo.SetPoint4D(1,0,0,1),ShowInfo.SetPoint4D(0,1, 0,1),ShowInfo.SetPoint4D(0,0,1,1)),ShowInfo.SetVector3D(0,0,0)); ShowInfo.AddPoint(1,1,0,0,0); ShowInfo.DataStart(1); ShowInfo.AddArm(2,1,0,ShowInfo.SetCoords(ShowInfo.SetPoint4D(1,0,0,1),ShowInfo.SetPoint4D(0,1, 0,1),ShowInfo.SetPoint4D(0,0,1,1)),ShowInfo.SetVector3D(0,0,10)); numglobal:=0; 38/20.

21 numglobalinfo:=0; For i:=1 To (PointsNum) Do Begin If (PointsArray[i].Enable) Then Begin AssignFile(TF,SHAPEDIRECTORY+PointsArray[i].Shape); {$I-} ReSet(TF); {$I+} If (IoResult<>0) Then Begin ShowMessage('There was some error during shape file opening.'); Halt; Line:=''; If (VISI_SERIALOFPOINTS) Then Begin Line:=IntToStr(PointsArray[i].Serial); If (VISI_NAMEOFPOINTS) And (PointsArray[i].AllowName) Then Begin Line:=PointsArray[i].Name; If (VISI_DATUM) And (CurrentDatum<>0) Then Begin Line:=PointsArray[i].DataArray[CurrentDatum]; If (VISI_SERIALOFPOINTS) Or (VISI_NAMEOFPOINTS) Or (VISI_DATUM) Then Begin Inc(numglobalinfo); ShowInfo.AddPointWithLabel(2,numglobalinfo,PointsArray[i].X,PointsArray[i].Y,PointsArray[i].Z, Line,'Point'); ReadLn(TF,Line); ReadLn(TF,num,X,Y,Z); InitPair(AidePair,PairNum); While (Not(EoF(TF))) And (num<>0) Do Begin Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[i].X+X,PointsArray[i].Y+Y,PointsArray[i].Z+Z); Inc(PairNum); AidePair[PairNum,1]:=num; AidePair[PairNum,2]:=numglobal; ReadLn(TF,num,X,Y,Z); While (Not(EoF(TF))) Do Begin ReadLn(TF,X,Y); X:=SearchPair(AidePair,X); Y:=SearchPair(AidePair,Y); ShowPoints.AddEdge(2,X,Y,GetRValue(PointsArray[i].Color),GetGValue(PointsArray[i].Color),GetBV alue(pointsarray[i].color)); Close(TF); For i:=1 To (EdgesNum) Do Begin If (EdgesArray[i].Enable) Then Begin Line:=''; If (VISI_SERIALOFEDGES) Then Begin Line:=IntToStr(EdgesArray[i].Serial); If (VISI_NAMEOFEDGES) And (EdgesArray[i].AllowName) Then Begin Line:=EdgesArray[i].Name; If (VISI_WEIGHT) And (CurrentWeight<>0) Then Begin Line:=EdgesArray[i].WeightsArray[CurrentWeight]; If (VISI_NAMEOFEDGES) Or (VISI_SERIALOFEDGES) Or (VISI_WEIGHT) Then Begin Inc(numglobalinfo); ShowInfo.AddPointWithLabel(2,numglobalinfo, (PointsArray[EdgesArray[i].PointOne].X+PointsArray[EdgesArray[i].PointTwo].X)/2, (PointsArray[EdgesArray[i].PointOne].Y+PointsArray[EdgesArray[i].PointTwo].Y)/2, (PointsArray[EdgesArray[i].PointOne].Z+PointsArray[EdgesArray[i].PointTwo].Z)/2, Line,'Edge'); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X,PointsArray[EdgesArray[i ].PointOne].Y,PointsArray[EdgesArray[i].PointOne].Z); Inc(numglobal); 38/21.

22 ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].X,PointsArray[EdgesArray[i ].PointTwo].Y,PointsArray[EdgesArray[i].PointTwo].Z); If (EdgesArray[i].IsWay) Then Begin SColor:=WayColor; End Else Begin SColor:=EdgesArray[i].Color; ShowPoints.AddEdge(2,numglobal- 1,numglobal,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); If (EdgesArray[i].Directivity=1) Then Begin A:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointOne].X,PointsArray[EdgesArray[i].Poin tone].y,pointsarray[edgesarray[i].pointone].z); B:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointTwo].X,PointsArray[EdgesArray[i].Poin ttwo].y,pointsarray[edgesarray[i].pointtwo].z); IV:=ShowPoints.SetNormalVector(A,B); NV:=ShowPoints.SetVector3D(IV[3],-IV[1],IV[2]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLength+ NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLength+NV[2]*D irectivitylength2,pointsarray[edgesarray[i].pointone].z+iv[3]*directivitylength+nv[3]*directiv itylength2); ShowPoints.AddEdge(2,numglobal,numglobal- 2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLength- NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLength- NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Z+IV[3]*DirectivityLength- NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal- 3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); NV:=ShowPoints.SetVector3D(-IV[2],-IV[3],IV[1]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLength+ NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLength+NV[2]*D irectivitylength2,pointsarray[edgesarray[i].pointone].z+iv[3]*directivitylength+nv[3]*directiv itylength2); ShowPoints.AddEdge(2,numglobal,numglobal- 4,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLength- NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLength- NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Z+IV[3]*DirectivityLength- NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal- 5,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal,numglobal- 2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-2,numglobal- 1,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-1,numglobal- 3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal- 3,numglobal,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); If (EdgesArray[i].Directivity=2) Then Begin A:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointOne].X,PointsArray[EdgesArray[i].Poin tone].y,pointsarray[edgesarray[i].pointone].z); B:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointTwo].X,PointsArray[EdgesArray[i].Poin ttwo].y,pointsarray[edgesarray[i].pointtwo].z); IV:=ShowPoints.SetNormalVector(A,B); NV:=ShowPoints.SetVector3D(IV[3],-IV[1],IV[2]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].X- IV[1]*DirectivityLength+NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Y- IV[2]*DirectivityLength+NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Z- IV[3]*DirectivityLength+NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal- 1,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); 38/22.

23 Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].X- IV[1]*DirectivityLength-NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Y- IV[2]*DirectivityLength-NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Z- IV[3]*DirectivityLength-NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal- 2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); NV:=ShowPoints.SetVector3D(-IV[2],-IV[3],IV[1]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].X- IV[1]*DirectivityLength+NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Y- IV[2]*DirectivityLength+NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Z- IV[3]*DirectivityLength+NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal- 3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].X- IV[1]*DirectivityLength-NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Y- IV[2]*DirectivityLength-NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].Z- IV[3]*DirectivityLength-NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal- 4,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal,numglobal- 2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-2,numglobal- 1,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-1,numglobal- 3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal- 3,numglobal,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.DataStart(2); end; 38/23.

24 E MELLÉKLET C# OSZTÁLYLEÍRÁSOK A PPC FEJLESZTÉSB L: Az itt látható osztályokon kívül természetesen több lett implementálva, ahogy a példaprogramokban látható, de ezek lényegében csak megjelenítési funkciót látnak el. A tényleges m veletvégzés az alábbi osztályokban megy végbe. A Classes könyvtárban megtalálható mindegyik itt leírt osztály forráskódja, valamint egy osztálykönyvtár PNP.dll néven, amit bármilyen.net-es fejleszt i környezetbe be lehet importálni. Ezek mellet az osztályok leírása is megtalálható HTML formátumban a Classes\CodeCommentReport könyvtárban. PNP.Coord2BMP Osztály Az osztály a megadott hosszúsági, szélességi és egy bitkép megfelel X, Y koordinátái segítségével meghatározza tetsz leges szélességi és hosszúsági értékekb l a hozzájuk tartózó X és Y koordinátákat a bitképen. Hozzáférés: sosztály: Object Tagok Hozzáférés Típus delx dely Long0 Lat0 Coord2BMP Coordinate Coord2BMP getx Tárolja, hogy egy egység (itt pixel), mekkora távolságnak felel meg fokban a hosszúsági tengely mentén. Private double Tárolja, hogy egy egység (itt pixel), mekkora távolságnak felel meg fokban a szélességi tengely mentén. Private double A referencia pont hosszúsági koordinátája. Private double A referencia pont szélességi koordinátája. Private double Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó Konstruktor hosszúsági és szélességi értékek. Az egy ponthoz tartozó X és Y koordináták, valamint hosszúsági és Struct szélességi értékek. Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. Az Konstruktor összetartozó értékek a 'Coordinates' sruktúrába lettek elhelyezve. Tetsz leges hosszúsági értékb l megadja a hozzá tartozó X koordinátát Metódus 38/24.

25 a bitképen. gety Tetsz leges hosszúsági értékb l megadja a hozzá tartozó X koordinátát a bitképen. Metódus PNP.Coord2BMP.Coord2BMP Függvény Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. void Coord2BMP (int, int, float, float, int, int, float, float, int, int, float, float, int, int, float, float) Típus Név int X0 Az 1. pont X koordinátája a bitképen. int Y0 Az 1. pont Y koordinátája a bitképen. float float lon0 lat0 Az 1. pont hosszúsági koordinátája a bitképen. Az 1. pont szélességi koordinátája a bitképen. int X1 Az 2. pont X koordinátája a bitképen. int Y1 Az 2. pont Y koordinátája a bitképen. float float lon1 lat1 Az 2. pont hosszúsági koordinátája a bitképen. Az 2. pont szélességi koordinátája a bitképen. int X2 Az 3. pont X koordinátája a bitképen. int Y2 Az 3. pont Y koordinátája a bitképen. float float lon2 lat2 Az 3. pont hosszúsági koordinátája a bitképen. Az 3. pont szélességi koordinátája a bitképen. int X3 Az 4. pont X koordinátája a bitképen. int Y3 Az 4. pont Y koordinátája a bitképen. float lon3 Az 4. pont hosszúsági koordinátája a 38/25.

26 bitképen. float lat3 Az 4. pont szélességi koordinátája a bitképen. void Más túlterhelés: PNP.Coord2BMP. Coord2BMP (Coordinate,Coordinate,Coordinate,Coordinate) PNP.Coord2BMP.Coord2BMP Függvény Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. Az összetartozó értékek a 'Coordinates' sruktúrába lettek elhelyezve. void Coord2BMP (PNP.Coord2BMP.Coordinate, PNP.Coord2BMP.Coordinate, PNP.Coord2BMP.Coordinate, PNP.Coord2BMP.Coordinate) Típus Név Coordinate c0 Az 1. ponthoz tartozó értékek. Coordinate c1 A 2. ponthoz tartozó értékek. Coordinate c2 A 3. ponthoz tartozó értékek. Coordinate c3 A 4. ponthoz tartozó értékek. void Más túlterhelés: PNP.Coord2BMP.Coord2BMP (2,2,4,4,2,2,4,4,2,2,4,4,2,2,4,4) PNP.Coord2BMP.Coordinate Struktúra Az egy ponthoz tartozó X és Y koordináták, valamint hosszúsági és szélességi értékek. Hozzáférés: Tagok X Y Longitude 38/26.

27 Latitude PNP.NMEA_decoding Osztály NMEA mondatokat visszafejt osztály. Hozzáférés: sosztály: Object Tagok Hozzáférés Típus _Sentence Tárolja az NMEA mondatot. Protected Sentence Beállítja, vagy visszaadja az String NMEA mondatot. _SentenceLength Tárolja az NMEA mondat Protected Int hosszát. SentenceLength Visszaadja az NMEA mondat Int hosszát. Checksum Az ellen rz kódot tárolja. Protected Byte ChecksumOK Tárolja, hogy az NMEA mondat Protected Bool megfelel-e az ellen rz kódnak. ID Tárolja az NMEA mondat Protected String azonosítóját ($GPxxx). NMEA_decoding Az osztály konstruktora. Konstruktor getchksum Beállítja az osztály 'Checksum' Protected Metódus adattagjának értékét. getchecksum Kiveszi az NMEA mondat Metódus ellen rz kódját (checksum). Megvizsgálja, hogy az NMEA Metódus ischecksumok mondat megfelel-e az ellen rz kódnak. getparam Visszaadja az NMEA mondat Metódus kívánt elemét. getid Visszaadja az NMEA mondat Metódus azonosítóját. PNP.NMEA_decoding.NMEA_decoding Függvény Az osztály konstruktora. void NMEA_decoding () void PNP.NMEA_decoding.getID Függvény Visszaadja az NMEA mondat azonosítóját. 38/27.

28 getid () Az NMEA mondat azonosítója. PNP.NMEA_decoding.getChksum Függvény Beállítja az osztály 'Checksum' adattagjának értékét. Protected void getchksum () void PNP.NMEA_decoding.getChecksum Függvény Kiveszi az NMEA mondat ellen rz kódját (checksum). getchecksum () Az NMEA mondat ellen rz kódja (Kivétel esetén "ERROR"). PNP.NMEA_decoding.isChecksumOK Függvény Megvizsgálja, hogy az NMEA mondat megfelel-e az ellen rz kódnak. bool ischecksumok () bool Megfelel-e az ellen rz kódnak a mondat (true->igen, false->nem). PNP.NMEA_decoding.getParam Függvény Visszaadja az NMEA mondat kívánt elemét. getparam (byte) Típus Név byte ParamNumber Az adat sorszáma az NMEA mondaton belül. a, a kívánt adat (ha nincs kitöltve, a visszatérési érték üres karakterlánc); b, EOL (End Of Line), ha a beadott érték nagyobb, mint a Mondat elemeinek száma; c, NVS (Not Valid Sentence), ha a tárolt nem NMEA mondat; 38/28.

29 PNP.NMEA_decoding.getID Függvény Visszaadja az NMEA mondat azonosítóját. getid () Az NMEA mondat azonosítója. PNP.GPGLL_decoding Class Az osztály segítségével a 'GPGLL' típusú NMEA szabványos GPS mondatokból lehet az adatokat lekérni. Szükséges hozzá a PNP.NMEA_decoding osztály, mint sosztály. Hozzáférés: sosztály: NMEA_decoding Tagok Hozzáférés Típus GPGLL_decoding Az osztály konstruktora. Konstruktor _Postponement Az id eltolódás a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Private String Formátum --> hh:mm, h=óra, m=perc. Postponement Visszaadja az id eltolódás mértékét a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). String Formátum --> hh:mm, h=óra, m=perc. setpostponement Az id eltolódás mértékének beállítása a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Kivételek: - epostponementminute : Metódus keletkezik, ha a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl. - epostponementhour : keletkezik, ha a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl. epostponementminute Kivétel. Akkor keletkezik, ha Kivétel 38/29.

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok

Részletesebben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása

Részletesebben

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika XXIII. rész Grafika DOS alatt I. A DOS operációs rendszer a személyi számítógépek szöveges üzemmódú parancssoros operációs rendszere. Grafikus alkalmazásokat is lehetett DOS alatt

Részletesebben

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System P r o g r a m o z á s i n y e l v e k I I. C # E jegyzet másolata nem használható fel szabadon,az előadás anyagának kivonata. Ezen teljes jegyzetről,vagy annak bármely részéről bármely másolat készítéséhez

Részletesebben

Származtatási mechanizmus a C++ nyelvben

Származtatási mechanizmus a C++ nyelvben Származtatási mechanizmus a C++ nyelvben Miskolci Egyetem Általános Informatikai Tanszék CPP2 / 1 Az öröklődés s fogalma 1. Egy osztály deklarálható valamely más osztály(ok) leszármazottjaként. Az deklaráció

Részletesebben

Generikus Típusok, Kollekciók

Generikus Típusok, Kollekciók Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Érdekes informatika feladatok

Érdekes informatika feladatok A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

GráfRajz fejlesztői dokumentáció

GráfRajz fejlesztői dokumentáció GráfRajz Követelmények: A GráfRajz gráfokat jelenít meg grafikus eszközökkel. A gráfot többféleképpen lehet a programba betölteni. A program a gráfokat egyedi fájl szerkezetben tárolja. A fájlokból betölthetőek

Részletesebben

Programozás 5. Dr. Iványi Péter

Programozás 5. Dr. Iványi Péter Programozás 5. Dr. Iványi Péter 1 Struktúra Véges számú különböző típusú, logikailag összetartozó változó együttese, amelyeket az egyszerű kezelhetőség érdekében gyűjtünk össze. Rekord-nak felel meg struct

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 25. Osztályok C++ osztályok Bevezetés Objektum-orientáltság

Részletesebben

Osztály és objektum fogalma

Osztály és objektum fogalma Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály

Részletesebben

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit. Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens

Részletesebben

Programozás II. labor

Programozás II. labor Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés

Részletesebben

500. AA Megoldó Alfréd AA 500.

500. AA Megoldó Alfréd AA 500. Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. Excel VII. Visual Basic programozás alapok A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Részletesebben

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek emelt szint 0911 ÉRETTSÉGI VIZSGA 2011. október 17. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése...

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése... 1 Bevezető... 2 1.1 Szakdolgozat témája... 2 1.2 A Program célja... 2 1.3 Fejlesztői környezet... 2 1.4 A használt technológiák ismertetése... 2 2 A program megtervezése... 4 2.1 Az ablak kinézetének megtervezése:...

Részletesebben

Programozas 1. Strukturak, mutatok

Programozas 1. Strukturak, mutatok Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség

Részletesebben

openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez

openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez 1. oldal openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez A leírás az openbve-hez készített

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

Java adattípusok Java programozás alapjai Egyszerű adattípusok (int, float) Osztályokkal objektumok Nincs külön mutató, referencia, címe operátor, helyette: objektumok csak dinamikusan hozhatok létre és

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok

Részletesebben

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 INFORMATIKA ÁGAZATI ALKALMAZÁSAI Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 7. Digitális térképezés, georeferálás, vektorizálás Digitális térkép Fogalma Jellemzői Georeferálás

Részletesebben

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani. Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként

Részletesebben

Java programozási nyelv 8. rész Grafikus felhasználói felület

Java programozási nyelv 8. rész Grafikus felhasználói felület Java programozási nyelv 8. rész Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17

Részletesebben

Magas szintű programozási nyelvek 2 Előadás jegyzet

Magas szintű programozási nyelvek 2 Előadás jegyzet Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás

Részletesebben

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben? . Mi az (x, y) koordinátákkal megadott pont elforgatás uténi két koordinátája, ha α szöggel forgatunk az origó körül? x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs

Részletesebben

#include using namespace std; // struct macska is lehetne class macska { public: int kor; int suly; }; void main() { macska cirmi;

#include <iostream> using namespace std; // struct macska is lehetne class macska { public: int kor; int suly; }; void main() { macska cirmi; 1. Készítsünk egy macska osztályt amely két információt tárol: a kor (int) és a súly (int). Mind a két tulajdonság legyen publikus. Próbáljuk ki az osztályt. Definiáljunk egy cirmi nevű macskát és adjuk

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2012. október 18. Ismétlés El z órai anyagok áttekintése Ismétlés Ismerjük: Az algoritmizálás alapjait Kifejezések fogalmát Vezérlési szerkezeteket Egyszer programozási tételeket... és néhány példát Specikáció

Részletesebben

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG Gyakorlatvezető

Részletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

Megoldott feladatok. Informatika

Megoldott feladatok. Informatika Megoldott feladatok Informatika I.81. Egy autóbuszjegyen az n*n-es négyzethálóban összesen k lyukasztás lehet. Ha a buszjegyet fordítva helyezzük a lyukasztóba, akkor a jegy tükörképét kapjuk. (Csak egyféleképpen

Részletesebben

VISUAL BASIC ALAPISMERETEK

VISUAL BASIC ALAPISMERETEK 11. Grafika VISUAL BASIC ALAPISMERETEK 11. Gyakorlat témaköre: Kiválasztógomb (Option Button) és a jelölőnégyzet (CheckBox) használata Kör, ellipszis (Circle) rajzolása. Circle (X, Y), Sugár, QBColor(Szín),

Részletesebben

Programozás II gyakorlat. 4. Öröklődés

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók

Részletesebben

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

4. Öröklődés. Programozás II

4. Öröklődés. Programozás II 4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. május 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia (Struktúra, mutatók, függvényhívás) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 14/21. Struktúra

Részletesebben

Szövegek C++ -ban, a string osztály

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

C# gyorstalpaló. Készítette: Major Péter

C# gyorstalpaló. Készítette: Major Péter C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2012. október 18. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek Adatok ábrázolása a memóriában Vezérlési szerkezetek Függvények Osztályok, objektumok Paraméterátadás

Részletesebben

A Java nyelv. Dialógus ablakok. Elek Tibor

A Java nyelv. Dialógus ablakok. Elek Tibor A Java nyelv Dialógus ablakok Elek Tibor Dialógus ablakok Szerepe: felbukkanó ablak (üzenet, input) Felépítése, használata majdnem ua., mint JFrame Tulajdonos: lehet tulajdonosa, amellyel együtt ikonizálódik,

Részletesebben

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika XXIX. rész Más OpenGL lehetőségek A GLUI A GLUI egy Paul Rademacher által fejlesztett GLUT alapú C++-ban felhasználói felületet megvalósító függvénykönyvtár, amely letölthető a http://www.cs.unc.edu/~rademach/glui/

Részletesebben

C# osztályok. Krizsán Zoltán

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

Részletesebben

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

Funkcionális Nyelvek 2 (MSc)

Funkcionális Nyelvek 2 (MSc) Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása

Részletesebben

PHP5 Új generáció (2. rész)

PHP5 Új generáció (2. rész) PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen

Részletesebben

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag C# osztálydeníció Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem.net C# technológiák tananyag objektum orientált programozás tananyag Tartalom 1 Bevezetés 2 Osztály létrehozása, deníció

Részletesebben

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat 2. Digitális óra 28 OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK 2.1 A feladat Ebben a fejezetben egy viszonylag egyszerő problémára alkalmazva tekintjük át az OO tervezés modellezési technikáit. A feladat

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 1. ELŐADÁS - C# ÁTTEKINTÉS - 1 2015 Bánsághi Anna 1 of 84 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 84

Részletesebben

angolul: greedy algorithms, románul: algoritmi greedy

angolul: greedy algorithms, románul: algoritmi greedy Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64

Részletesebben

Objektumorientált programozás IX. Osztályok, objektumok

Objektumorientált programozás IX. Osztályok, objektumok Objektumorientált programozás IX. Osztályok, objektumok 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,

Részletesebben

Programozás I. Első ZH segédlet

Programozás I. Első ZH segédlet Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Transzformációk. Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform

Transzformációk. Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform Transzformációk Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform Koordinátarendszerek: modelltér Koordinátarendszerek: világtér Koordinátarendszerek: kameratér up right z eye ahead

Részletesebben

Adatbázis-kezelés ODBC driverrel

Adatbázis-kezelés ODBC driverrel ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...

Részletesebben

Fejlett programozási nyelvek C++ Iterátorok

Fejlett programozási nyelvek C++ Iterátorok Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember

Részletesebben

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. 5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. Optimalis feszítőfák Egy összefüggő, irányítatlan

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Számítógépes geometria (mester kurzus)

Számítógépes geometria (mester kurzus) 2010 sz, Debreceni Egyetem Csuklós szerkezetek animációja (Kép 1985-b l: Tony de Peltrie) Csontváz-modellek Csuklós szerkezet (robotkar) A robotkar részei: csuklók (joints) rotációs prizmatikus (transzlációs)

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben. 2. fogás Utazás a makrók birodalmába Gyorstalpaló tanfolyam, amelynek során meggyõzõdhetünk arról, milyen sokat segíthetnek a makrók a fárasztó és idõrabló feladatok automatizálásában. A Word 6-os és azutáni

Részletesebben

POSEIDON NAVIGATION PROJECT intelligent Map with Rules of Traffic

POSEIDON NAVIGATION PROJECT intelligent Map with Rules of Traffic Rendszerterv Munkacím: PPC Live Map GPS, Útkeresés & Pocket PC POSEIDON NAVIGATION PROJECT intelligent Map with Rules of Traffic Készítette: BEDŐK DÁVID & SZIRBIK FERENC 2004. május 6. BMF-NIK IAR Budapesti

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 3.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram

Részletesebben

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. KIINDULÁS Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,

Részletesebben

3.2. Az alkalmazások ablaka

3.2. Az alkalmazások ablaka 3.2. Az alkalmazások ablaka 1. Alkalmazást kilépési jóváhagyással CanClose 2. Akciólista használata. Akcio 3. Egéresemények használata Egeresemeny 4. Billentyűzet események kezelése Billesemeny 5. Keretek

Részletesebben

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel (record) tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel elemei mezők. Például tétel: személy elemei: név, lakcím, születési

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek SZERVER OLDALI JAVASCRIPT 3. hét Javascript nyelvi elemek NYELVI ALAPOK: Ez sajnos igen száraz anyag, Viszont a megértékhez és a nyelv elsajátításához kell. Próbáljuk meg random gifekkel feldobni. MIRŐL

Részletesebben

POSEIDON NAVIGATION PROJECT

POSEIDON NAVIGATION PROJECT OTDK dolgozat POSEIDON NAVIGATION PROJECT intelligent Map with Rules of Traffic Készítette: BED K DÁVID, SZIRBIK FERENC KONZULENSEK: VÁMOSSY ZOLTÁN (DOCENS), MOLNÁR ANDRÁS (ADJUNKTUS) 2004. november 8.

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Objektum-orientált szemlélet - Egységbe zárás (incapsulation) - Információ elrejtés - Öröklődés altípusosság dinamikus kötés Öröklődés Programozási nyelvek Java - kiterjesztem, kibővítem, megváltoztatom

Részletesebben

Bevezetés a programozásba. 12. Előadás: 8 királynő

Bevezetés a programozásba. 12. Előadás: 8 királynő Bevezetés a programozásba 12. Előadás: 8 királynő A 8 királynő feladat Egy sakktáblára tennénk 8 királynőt, úgy, hogy ne álljon egyik sem ütésben Ez nem triviális feladat, a lehetséges 64*63*62*61*60*59*58*57/8!=4'426'165'368

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat

Részletesebben