1. fejezet. Programozási nyelvek C/C++ fordítási modell CMake Visual Studio Code. Haladó alkalmazott programozás ELTE, Budapest 2019.

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

Download "1. fejezet. Programozási nyelvek C/C++ fordítási modell CMake Visual Studio Code. Haladó alkalmazott programozás ELTE, Budapest 2019."

Átírás

1 1. fejezet Programozási nyelvek C/C++ fordítási modell CMake Visual Studio Code Haladó alkalmazott programozás ELTE, Budapest 2019

2 Programozási nyelvek Minden célra a megfelelő eszközt

3 Milyen szempontok szerint válasszunk? Mi a cél feladat? Mennyi időm van leprogramozni a feladatot? Hányszor fogom futtatni a programot? Min fogom futtatni? Milyen nyelvekkel vagyok ismeretes?

4 Nyelvek típus szerint Fejlesztési idő Futási idő

5 A blub paradoxon A B C D E F G H I J K L 11/15/2016 5

6 A blub paradoxon Rendezzük a nyelveket erő sorrendbe A rendezési elv a nyelvek kifejező ereje A gondolat kísérlet kedvéért tételezzük fel, hogy létezik ez a spektrum A B C D F G H I J K L 11/15/2016 6

7 A blub paradoxon Rendezzük a nyelveket erő sorrendbe A rendezési elv a nyelvek kifejező ereje A gondolat kísérlet kedvéért tételezzük fel, hogy létezik ez a spektrum Válasszunk egy programozót, aki egy tetszőleges, nem szélsőséges nyelvben jártas Hívjuk ezt a nyelvet blub -nak A B C D F G H I J K L 11/15/2016 7

8 A blub paradoxon A képzeletbeli programozónk a blub -nál egyszerűbb nyelvek sorrendjét meg tudja erősíteni Meg tudja mondani, hogy B jobb A-tól, mert van benne X és Y ami hiányzik A-ból (pedig hasznos) A B C D F G H I J K L 11/15/2016 8

9 A blub paradoxon A képzeletbeli programozónk a blub -nál egyszerűbb nyelvek sorrendjét meg tudja erősíteni Meg tudja mondani, hogy B jobb A-tól, mert van benne X és Y ami hiányzik A-ból (pedig hasznos) Azonban amikor felfelé tekint a spektrumon, csak egy kupac furcsa nyelvet lát Miért létezik Z és Q a J és K nyelvekben, amikor én simán megoldok minden problémát nélkülük? A B C D F G H I J K L 11/15/2016 9

10 Az ismeretlentől való félelem Talán egyetérthetünk abban, hogy assemblerben tudományos szimulációkat nem lehet írni A C-ben bármit meg lehet írni analogonja a bármeddig el lehet számolni A magasabb szintű nyelveket (kifejező erő) nem ok nélkül hozták létre A programnyelvek és a hozzájuk tartozó eszközök fejlődnek Most már tudunk jobbat Akkor jó ötletnek tűnt 11/15/

11 Az ismeretlentől való félelem Cobol, Fortran, C Gépközeli nyelvek Egyes hardveres részleteket elrejtenek Egységes memória címtér Gyenge típus biztonság I/O képességek (operációs rendszerek) Természetüknél fogva imperatív (épp mint a lyukkártya és az assembler) Fordítók optimalizálják a programot, hogy az minél jobban illeszkedjen a gép képességeihez 11/15/

12 Az ismeretlentől való félelem C++, D, Go, Rust, C#, Java, etc. Gépközeli nyelvek Absztrakciók létrehozása Elrejtik az implementáció részleteit Változó, hogy az egyes nyelvek mennyi alacsony-szintű hozzáférést tesznek elérhetővé Futási garanciák Erőforrás kezelés (RAII, garbage collection) Race conditions (párhuzamos programozási hibák) Futási idejű hibákat fordítási idejű hibává alakítanak (!) Kifejező erő Öröklődés és objektum orientáltság ( is a versus has a viszony) Generikus programozás (deduplikáció versus absztrakció) 11/15/

13 Az ismeretlentől való félelem OCaml, Haskell, F#, Julia, Idris Akadémiai nyelvek Értsd: nem prostituálták az alapokat, csak azért hogy kitolják a gyár kapun Alkalmazott matematika A kifejező erő az előtérben Teljesítményt áldoznak a kifejező, rugalmas típus rendszer oltárán Letisztult alapok (több akadémia, kevesebb ipar) 11/15/

14 A blub paradoxon A B C D F G H I J K L 11/15/

15 A blub paradoxon asm B C D F G H I J K L 11/15/

16 A blub paradoxon asm B C D F G H I J K Idris 11/15/

17 A blub paradoxon asm B C D F C++ H I J K Idris 11/15/

18 C/C++ fordítási modell Miből lesz a cserebogár?

19 Hogyan működnek a fordított nyelvek? Forrás fájl(ok) Fordítás Futtatható

20 Hogyan fordul egy C/C++ program? vector algorithm iostream RK4.hpp Interaction.hpp Application.cpp FileReader.cpp Particle.cpp Solver.cpp Header-ek Függvény és típus deklarációkat tartalmaz Függvény deklaráció: név, szignatúra Szignatúra: ki-, bemenet típusai func M, V V Források A függvények definícióját tartalmazza A definíció valójában az implementáció, a parancsok sorozata, amit végre kell hajtani Források Headerök

21 Hogyan fordul egy C/C++ program? vector algorithm iostream RK4.hpp Interaction.hpp Application.cpp FileReader.cpp Particle.cpp Solver.cpp Források Minden forrásfájl egy fordítási egység A források behúznak (include) n headert A header-ek egymást is behúzhatják C/C++ része a One Defintion Rule Ha egy headert többször is behúzunk, az általában ODR sértés Ezt Include Guard-okkal kerüljük el Miért szeparáljuk el így a kódot ha ennyire bonyolult? Fícsör és implementáció szétválasztása Fordítási idők (lásd később) Headerök

22 Hogyan fordul egy C/C++ program? vector algorithm iostream RK4.hpp Interaction.hpp Application.cpp FileReader.cpp Particle.cpp Solver.cpp Fordító Application.o FileReader.o Particle.o Solver.o Objektumok Az objektum fájlokban kidekorált gépi kód van A függvénytörzsek gépi kódja van bennük A dekoráció a fordító által generált azonosítókból áll: szimbólum operator*(classmat,classvec)->classvec

23 Hogyan fordul egy C/C++ program? vector algorithm iostream RK4.hpp Interaction.hpp Application.cpp FileReader.cpp Particle.cpp Solver.cpp Application.o FileReader.o Particle.o Solver.o MyApp.exe MyLib.dll Fordító Linker

24 Hogyan fordul egy C/C++ program? Egy futtatható linkelése A linker megkeresi az összes objektum fájl közül azt, amelyikben egy speciális, main nevű függvény található Ha több ilyet talál, hibát dob Megnézi, mely függvényekre lehet szükség futtatás során Ha valamilyen könyvtár linkelésre meg van jelölve, az abban található szimbólumokat is átvizsgálja Egyes függvények így is többször lehetnek lefordítva Ha a szimbólumhoz tartozó binárisok megegyeznek, egy kivételével eldobjuk őket Ha különböznek, hibát dobunk Ha valamilyen szimbólum hiányzik, hibát dobunk A header-forrás szétválasztással minimalizáljuk annak az esélyét, hogy egy függvény többször legyen lefordítva

25 Statikus és dinamikus könyvtárak Statikus Statikus linkelés során a szimbólumok binárisai bemásolódnak a futtathatóba Gyorsabb kód Ha sok futtatható hivatkozik ugyanarra a binárisra statikusan, többszörösen fog szerepelni memóriában Lassabb kód Futtatáskor nem kell semmi más, csak a futtatható állomány Mindig indul a futtatható Dinamikus Dinamikus linkelés során a futtathatóba csak egy hivatkozás kerül a szimbólumra Lassabb kód Ha sok futtatható hivatkozik ugyanarra a binárisra dinamikusan, elég egyszer betölteni memóriába Gyorsabb kód Futtatáskor kellenek a dinamikusan linkelt könyvtárak is Helyes konfiguráció kell hozzá

26 Hogyan fordítanánk parancssorból? PS /home/mnagy> g++ -o Hello.o -c Hello.cpp PS /home/mnagy> g++ -o Hello Hello.o PS /home/mnagy> chmod +x Hello PS /home/mnagy>./hello Hello, world! PS /home/mnagy> clang++ -o Hello.o -c Hello.cpp PS /home/mnagy> clang++ -o Hello Hello.o PS /home/mnagy> chmod +x./hello PS /home/mnagy>./hello Hello, world! PS C:\Users\mnagy> cl.exe /nologo /EHsc /Fo: Hello.o /c Hello.cpp Hello.cpp PS C:\Users\mnagy> link.exe /nologo Hello.o /out:hello.exe PS C:\Users\mnagy>.\Hello.exe Hello, world!

27 Hogyan fordítanánk parancssorból? PS /home/mnagy> g++ -o Hello.o -c Hello.cpp PS /home/mnagy> g++ -o Hello Hello.o PS /home/mnagy> chmod +x Hello PS /home/mnagy>./hello Hello, world! PS /home/mnagy> clang++ -o Hello.o -c Hello.cpp PS /home/mnagy> clang++ -o Hello Hello.o PS /home/mnagy> chmod +x./hello PS /home/mnagy>./hello Hello, world! g++ (Linux) Clang (Linux) PS C:\Users\mnagy> cl.exe /nologo /EHsc /Fo: Hello.o /c Hello.cpp Hello.cpp PS C:\Users\mnagy> link.exe /nologo Hello.o /out:hello.exe PS C:\Users\mnagy>.\Hello.exe Hello, world! MSVC (Windows)

28 Hogyan fordítanánk parancssorból? PS /home/mnagy> g++ -o Hello.o -c Hello.cpp PS /home/mnagy> g++ -o Hello Hello.o PS /home/mnagy> chmod +x Hello PS /home/mnagy>./hello Hello, world! PS /home/mnagy> clang++ -o Hello.o -c Hello.cpp PS /home/mnagy> clang++ -o Hello Hello.o PS /home/mnagy> chmod +x./hello PS /home/mnagy>./hello Hello, world! Fordítási kapcsolók -o kimeneti fájnév (output) megadása -c csak fordítás (compile) chmod +x Fájl mód váltás (change mode), végrehajthatóság (execute) hozzáadása

29 Hogyan fordítanánk parancssorból? PS C:\Users\mnagy> cl.exe /nologo /EHsc /Fo: Hello.o /c Hello.cpp Hello.cpp PS C:\Users\mnagy> link.exe /nologo Hello.o /out:hello.exe PS C:\Users\mnagy>.\Hello.exe Hello, world! Fordítási kapcsolók /nologo, hogy ne írja ki mindig a program nevét és verzióját /EHsc, alapértelmezetten a C++ kivétel kezelését mellőzi a fordító /Fo: kimeneti fájlnév (object) megadása /c, csak fordítás Linkelési kapcsolók /nologo, detto /out: kimeneti fájlnév megadása

30 Hogyan fordítanánk parancssorból? PS /home/mnagy> g++ -o Hello Hello.cpp Other.cpp PS /home/mnagy>./hello Hello, world and others! PS /home/mnagy> clang++ -o Hello Hello.cpp Other.cpp PS /home/mnagy>./hello Hello, world and others! g++ (Linux) Clang (Linux) PS C:\Users\mnagy> cl.exe /nologo /EHsc /Fe: Hello.exe Hello.cpp Other.cpp Hello.cpp Other.cpp Generating Code... PS C:\Users\mnagy>.\Hello.exe Hello, world and others! MSVC (Windows) Mindegyik fordító támogatja, hogy egy lépésben fordítsunk és linkeljünk Egyszerre akár több forrás fájlt is

31 A törpök élete azonban nem csak játék és mese Eddig minden ment, mint a karikacsapás. Hogyan derül ki ha valami nem sikerült? Fordítási hiba A fordítás során jelentkezik Legfőbb ismérve, hogy a forráskódba mutat A legtöbb IDE még fordítás előtt észreveszi és jelzi Messze ez a leggyakoribb Linkelési hiba Fordítás után, linkeléskor Forráskódra már nem, csak objektum fájlokra hivatkozik Ha az IDE ismeri a fordítás teljes menetét, láthatja Ritkább, nehezebben érthető

32 A törpök élete azonban nem csak játék és mese C:\Kellekek\MICROS~1\VISUAL~1\16\VC\Tools\MSVC\1420~1.273\bin\HostX64\x64\cl.exe /nologo /TP /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /JMC - std:c++14 /showincludes /FoCMakeProject1\CMakeFiles\CMakeProject1.dir\CMakeProject1.cpp.obj /FdCMakeProject1\CMakeFiles\CMakeProject1.dir\ /FS -c C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp(3): error C2065: 'blub': undeclared identifier C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp(3): error C2146: syntax error: missing ';' before identifier 'a' C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp(3): error C2065: 'a': undeclared identifier int main() { blub a = 5; } return 0;

33 A törpök élete azonban nem csak játék és mese C:\Kellekek\MICROS~1\VISUAL~1\16\VC\Tools\MSVC\1420~1.273\bin\HostX64\x64\cl.exe /nologo /TP /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /JMC - std:c++14 /showincludes /FoCMakeProject1\CMakeFiles\CMakeProject1.dir\CMakeProject1.cpp.obj /FdCMakeProject1\CMakeFiles\CMakeProject1.dir\ /FS -c C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp(3): error C2065: 'blub': undeclared identifier C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp(3): error C2146: syntax error: missing ';' before identifier 'a' C:\Users\mnagy\Source\CMakeProject1\CMakeProject1\CMakeProject1.cpp(3): error C2065: 'a': undeclared identifier int main() { blub a = 5; } return 0;

34 A törpök élete azonban nem csak játék és mese /usr/bin/c++ -std=gnu++14 -o CMakeFiles/CMakeProject1.dir/CMakeProject1.cpp.o -c /mnt/c/users/mnagy/source/cmakeproject1/cmakeproject1/cmakeproject1.cpp /mnt/c/users/mnagy/source/cmakeproject1/cmakeproject1/cmakeproject1.cpp: In function int main() : /mnt/c/users/mnagy/source/cmakeproject1/cmakeproject1/cmakeproject1.cpp:3:5: error: blub was not declared in this scope blub a = 5; ^~~~ int main() { blub a = 5; } return 0;

35 A törpök élete azonban nem csak játék és mese /usr/bin/clang++-7 -std=gnu++14 -o CMakeFiles/CMakeProject1.dir/CMakeProject1.cpp.o -c /mnt/c/users/mnagy/source/cmakeproject1/cmakeproject1/cmakeproject1.cpp /mnt/c/users/mnagy/source/cmakeproject1/cmakeproject1/cmakeproject1.cpp:3:5: error: unknown type name 'blub' blub a = 5; ^ 1 error generated. int main() { blub a = 5; } return 0;

36 A törpök élete azonban nem csak játék és mese

37 A törpök élete azonban nem csak játék és mese LINK Pass 1: command "C:\Kellekek\MICROS~1\VISUAL~1\16\VC\Tools\MSVC\1420~1.273\bin\Hostx64\x64\link.exe /nologo CMakeProject1\CMakeFiles\CMakeProject1.dir\CMakeProject1.cpp.obj /out:cmakeproject1\cmakeproject1.exe /implib:cmakeproject1\cmakeproject1.lib /pdb:cmakeproject1\cmakeproject1.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeProject1\CMakeFiles\CMakeProject1.dir/intermediate.manifest CMakeProject1\CMakeFiles\CMakeProject1.dir/manifest.res" failed (exit code 1120) with the following output: C:\Users\mnagy\Source\CMakeProject1.cpp.obj : error LNK2019: unresolved external symbol "int cdecl five(void)" (?five@@yahxz) referenced in function main C:\Users\mnagy\Source\CMakeProject1\CMakeProject1.exe : fatal error LNK1120: 1 unresolved externals int five(); int main() { int a = five(); }

38 A törpök élete azonban nem csak játék és mese /usr/bin/c++ CMakeFiles/CMakeProject1.dir/CMakeProject1.cpp.o -o CMakeProject1 CMakeFiles/CMakeProject1.dir/CMakeProject1.cpp.o: In function `main': CMakeProject1.cpp:(.text+0x9): undefined reference to `five()' collect2: error: ld returned 1 exit status int five(); int main() { int a = five(); }

39 A törpök élete azonban nem csak játék és mese /usr/bin/clang++-7 -fuse-ld=lld CMakeFiles/CMakeProject1.dir/CMakeProject1.cpp.o - o CMakeProject1 ld.lld: error: undefined symbol: five() >>> referenced by CMakeProject1.cpp >>> CMakeFiles/CMakeProject1.dir/CMakeProject1.cpp.o:(main) clang: error: linker command failed with exit code 1 (use -v to see invocation) int five(); int main() { int a = five(); }

40 Fordítások típusa Debug Fejlesztés során használjuk Hibakeresés Végig lépkedhetünk minden függvényen, megakasztva a futást bárhol Lassú futás Pythonnál még mindig gyorsabb Release Kész program futtatásakor Itt már ne legyen hiba Nem lehet végig lépkedni a kódon, mert az optimizer ízekre szedte a binárist Gyors futás Ha nem írtunk le szamárságot Nem csak futásidőben van különbség! A kód maga is különbözik a két variáns között A nyelv szemantikája is változhat (!)

41 Build system Mert kézzel csak palacsintát fordítunk, programot nem

42 Mi a probléma ha kézzel fordítunk? A C++ programok meglehetősen sokáig fordulnak, várni pedig senki sem szeret Ha több fájlunk van, fejlesztés közben két választási lehetőségünk van: Minden alkalommal lefordítjuk az összes fájlt, azokat is amikhez nem nyúltunk, tehát az objektum fájljai sem változtak Minden alkalommal csak azt fordítjuk, amihez hozzányúltunk, kockáztatva hogy elrontjuk (rossz fájlt fordítunk) és aztán vakarjuk a fejünket, hogy nem változott semmi a programban, pedig kellett volna Vagy, írunk egy okos szkriptet!

43 Mi a probléma ha kézzel fordítunk? [String[]]$Sources = 'Hello.cpp','Other.cpp'; [String[]]$Objects foreach ($Source in $Sources) { $SourceTime = Get-Item $Source Select-Object -ExpandProperty LastWriteTime; $OutputName = (Split-Path -Path $Source -LeafBase) + ".o"; $Objects += $OutputName; if (Test-Path $OutputName) { $OutputTime = Get-Item $OutputName Select-Object - ExpandProperty LastWriteTime; } } if (($SourceTime -gt $OutputTime) -or -not (Test-Path $OutputName)) { Invoke-Expression -Command "cl.exe /nologo /EHsc /Fo: $OutputName /c $Source" }

44 Mi a probléma ha kézzel fordítunk? foreach ($Object in $Objects) { $ObjectTime = Get-Item $Object Select-Object -ExpandProperty LastWriteTime; $ExeName = "Hello.exe"; if (Test-Path $ExeName) { $ExeTime = Get-Item $ExeName Select-Object - ExpandProperty LastWriteTime; } if (($ObjectTime -gt $ExeTime) -or -not (Test-Path $ExeName)) { Invoke-Expression -Command "link.exe /nologo $($Objects -join " ") /out:$exename" } }

45 Mi a probléma ha kézzel fordítunk? PS C:\Users\mnagy>.\Build-Hello.ps1 Hello.cpp Other.cpp PS C:\Users\mnagy>.\Hello.exe Hello, world and others! Mi ezzel a probléma? Mi nem??? Nem skálázik Egy csomó dolgot nem vesz figyelembe Header fájl ideje? Hordozhatóság? Debug, release? Könyvtár függőségeket nem tudja kezelni Egy magon fordít Hibás a szkript (logikai hiba van benne, többek között)

46 Mi a probléma ha kézzel fordítunk? Az említésre méltó fordítók mind kicsit másképp működnek GNU Compiler Collection Clang/LLVM Microsoft Visual C++ Más kapcsolók, más környezet, más alapértelmezések, stb. Minimális ismeret idővel beszivárog az ember eszköztárába, nem árt legalább egyszer elolvasni, hogy milyen kapcsolói vannak a kedvenc fordítónknak esetleg a többinek is

47 Mi az a build system? Egy olyan eszköz, amely minimális felhasználói befektetéssel a lehető leggyorsabban lefordítja a programunkat A bemenet egy szöveges leíró fájl (make file) és a kimenete egy vagy több bináris (és egy elégedett felhasználó). Példák: GNU Make NMake MSBuild Ninja Qmake CMake

48 Miért használjak build systemet? Nem azt mondtam, hogy minimális felhasználói befektetéssel?! A céljuk, hogy a lehető legkényelmesebb legyen használni A felhasználó a mi -re koncentrál, nem a hogyan -ra Deklaratív leíró nyelv, nem imperatív Nem azt mondtam, hogy a lehető leggyorsabban?! Automatikusan detektálja a minimálisan elvégzendő munkát Főleg idő bélyegekkel dolgozik Az egymástól független feladatokat párhuzamosan végzi el Némi tanulást igényel, de hosszú távon megtérül!

49 Choosing a build system Build System Olvasható Grafikus felület Hordozható Generátor GNU Make NMake MSBuild ( ) Ninja Scons Waf Invoke-Build QMake CMake ( )

50 GNU Make SOURCES := t.cpp # Objs are all the sources, with.cpp replaced by.o OBJS := $(SOURCES:.cpp=.o) all: t # Compile the binary 't' by calling the compiler with cflags, lflags, and any libs (if defined) and the list of objects. t: $(OBJS) $(CC) $(CFLAGS) -o t $(OBJS) $(LFLAGS) $(LIBS) # Get a.o from a.cpp by calling compiler with cflags and includes (if defined).cpp.o: $(CC) $(CFLAGS) $(INCLUDES) -c $< Része a GNU nyílt-forrású szoftvereknek Minden Linux disztribúciónak része Felhasználó által definiált feladatok Feladat név Függőség Végrehajtandó parancs

51 NMake SOURCES := t.cpp # Objs are all the sources, with.cpp replaced by.o OBJS := $(SOURCES:.cpp=.o) all: t # Compile the binary 't' by calling the compiler with cflags, lflags, and any libs (if defined) and the list of objects. t: $(OBJS) $(CC) $(CFLAGS) -o t $(OBJS) $(LFLAGS) $(LIBS) # Get a.o from a.cpp by calling compiler with cflags and includes (if defined).cpp.o: $(CC) $(CFLAGS) $(INCLUDES) -c $< A Microsoft Visual Studio része Jobbára hagyaték Felhasználó által definiált feladatok Feladat név Függőség Végrehajtandó parancs Nem tud feladatokat párhuzamosan végrehajtani

52 MSBuild <?xml version="1.0" encoding="utf-8"?> <Project xmlns=" per/msbuild/2003"> <PropertyGroup><MyReleaseOutput>.\releas e</myreleaseoutput> </PropertyGroup> <ItemGroup> <MyReleaseFiles Include=".\bin\debug\*.*" /> </ItemGroup> <Target Name="Build"> <Message Text="Building msbuildintro" /> <MSBuild Projects="msbuildintro.csproj" Targets="Build" /> </Target> <Target Name="Release" DependsOnTargets="Build"> <MakeDir Directories="$(MyReleaseOutput)" /> <Copy DestinationFolder="$(MyReleaseOutput)" /> </Target> </Project> A Visual Studio jelenleg használt build systeme Most már nyílt-forrású és Linuxon is elérhető XML-alapú Korlátozottan olvasható Grafikus kezelő felülettel a legjobb használni

53 Ninja cflags = -Wall Werror rule cc command = gcc $cflags -c $in -o $out # If left unspecified, builds get the outer $cflags. build foo.o: cc foo.c # But you can shadow variables like cflags for a particular build. build special.o: cc special.c cflags = -Wall # The variable was only shadowed for the scope of special.o; # Subsequent build lines get the outer (original) cflags. build bar.o: cc bar.c Pokolian gyors Feláldozza az olvashatóságot Cserébe a gép gyorsan fel tudja dolgozni Generálásra szánták, nem írásra Hordozható Nyílt-forrású

54 QMake CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp win32 { SOURCES += hellowin.cpp } unix { SOURCES += hellounix.cpp }!exists( main.cpp ) { error( "No main.cpp file found" ) } win32:debug { CONFIG += console } Make fájl generátor Egyetlen bemenet Több kimeneti make fájl nyelv Hordozható Nyílt-forrású A Qt Project igényeit tartja szem előtt Qt6 elhagyja, cserébe

55 CMake PROJECT(my_app) LIST(SOURCES) APPEND(SOURCES main.cpp vector.cpp) ADD_EXECUTABLE(${PROJECT_NAME} SOURCES) Make fájl generátor Hordozható Nyílt-forrású Több nyelvet ismer Az ismert nyelveket kényelmes használni Nyelvek taníthatók is neki A szkript nyelve nem a legbarátságosabb A legtöbb cross-platform projekt ezt használja

56 Visual Studio Code A félelem haragot szül, a harag gyűlöletet, a gyűlölet kínt és szenvvvedééést... Yoda mester

57 Integrált Fejlesztői Környezet Mi is az az IDE? Integrated Development Environment, avagy integrált fejlesztői környezet Olyan eszközök gyűjteménye, melyek összhangban vannak egymással, megkönnyítve a szoftverfejlesztés különböző lépéseit úgy, hogy maximalizálják a munka hatékonyságát Milyen különböző lépések ezek? Forrás fájl szerkesztés, fordítás automatizálása, hibakeresés, verzió követés, tesztelés, profilozás, telepítő készítés és publikálás, stb. Bakker, de én egy fizikus vagyok, miért foglalkozzam ezzel? Pont azért!

58 Előnyök, hátrányok Integrált fejlesztői környezet Pro Elejétől a végéig automatizált Természetes a munkafolyamat Könnyű megtanulni, nehéz tökélyre vinni Con Avval főzünk, amink van Az IDE megválasztása fontossá válik A kiterjeszthetőség fontos Eszközlánc Con Külön eszköz mindenre Interfészelni kell őket Nem mindig zökkenőmentes Nehéz megtanulni, nehéz tökélyre vinni Kialakulnak munkafolyamatok (szkriptelés?) Pro Mindenből csak a legjobbat!

59 IDE haladók részére A Visual Studio Code fiatal Első kiadása: 2015 április 29. Nyílt forrás: 2015 november 18. Kereszt-platform támogatás Windows, Linux, OSX JavaScript és TypeScript alapok Kezdetben szövegszerkesztő Közösségi nyomásra megnyitották a beépülő modulok API-ját Azóta elképesztő fluxussal érkeznek a beépülő modulok

60 Telepítés sudo dpkg -i code_ _amd64.deb PS /home/mnagy> sudo apt install code PS C:\Users\mnagy> choco install visualstudiocode

61 Első pillantásra

62 Első pillantásra Oldalsáv Beépített funkciók gombjai találhatók itt Fájl nézet Keresés Git Debug Bővítmény ek

63 Első pillantásra Szerkesztő panel Itt töltjük a legtöbb fejlesztési időt Felosztható Fejléc Forrás Diff nézet

64 Használati módok Használható egyszerű szövegszesztőként is Fájlt megnyit, szerkeszt, ment, kilép Használható, mint egy nagy mértékben testre szabható, teljes értékű fejlesztői környezet Egy teljes mappa is megnyitható vele A globális beállítások platform-specifikus helyen tároltak A munkaterület-specifikus beállítások (a mappák, amiket megnyitottunk) helyben tároltak egy.vscode nevű mappában Akinek ez nem felel meg, az kövesse ezt a Github bejegyzést

65 Fájl nézet A fájl nézet gomb egy fa struktúrában megjeleníti a megnyitott mappa tartalmát A gyors azonosíthatóság jegyében ikon csomagok is letölthetők Fájl, Beállítások, Fájl ikon témák, Seti (pl.) CMake ikonokért ez a Github bejegyzés követhető Mappák összecsukhatók/lenyithatók igény szerint Dupla-klikkelve bármelyik fájl megnyitható a szerkesztőben 11/15/

66 Keresés A kereső gombbal kereshetünk a fájlok tartalmában (grep) akár reguláris kifejezések használatával is Írjunk be a kereső kifejezést tartalmat, hogy kapjunk egy listát minden fájllal, amely eleget tesz neki A kicserélés funkció a lenyitható háromszöggel hívható elő Az ikon a szövegdoboz alatt további keresési opciókat hoz elő 11/15/

67 Bővítmények A bővítmények gombbal: kereshetünk a piactérről új bővítményeket kezelhetjük a már telepített bővítményeket 11/15/

68 Bővítmények Bővítmények telepítéséhez: Kattintsunk a keresősávba Írjuk be a keresett kiterjesztés nevét, vagy a nevének egy részét Kattintsunk az Install gombra Várjuk meg, amíg befejezi a telepítést, majd kattintsunk a Reload gombra. Most ezekre a bővítményekre lesz szükségünk: C/C++ CMake CMake Tools 11/15/

69 Előkészületek Linuxon Feltételezem, hogy egy működő C/C++ fordító és linker már telepítve van a gépre és elérhető a $PATH-ból gcc/g++ clang/clang++ illetve lld Windowson Feltételezem, hogy egy működő C/C++ fordító és linker már telepítve van a gépre Standalone Visual C++ Build Tools (Build Tools for Visual Studio 2017 ) Visual Studio 2017 Community Edition (a nagytestvér Visual Studio + msvc) clang-cl illetve lld (letölthető innen)

70 Lássunk hozzá

71 Lássunk hozzá Csináljunk egy üres mappát, amiben majd fejleszteni kezdünk Windows-on a GUI shell kontextus menüjébe beépül VS Code, és tetszőleges mappa ikonjára vagy egy mappában üres területre jobb-klikkelve megjelenik egy Open with Code kontextus menü Linuxon parancssorból a `code /path/to/folder` szintaxissal nyitható meg egy mappa Programon belülről a nyitóképernyőről, illetve a Fájl menüből is nyitható mappa Kezdetben egy üres IDE fog bennünket fogadni, az egyes bővítmények gombjai akkor jelennek csak meg, ha megfelelő fájlok vannak a megnyitott mappában, vagy ha végrehajtjuk egy parancsát Először jóváhagyjuk a CMake Tools automatikus konfigurálását.

72 Lássunk hozzá A parancs palettát megnyitni Ctrl+Shift+P View menü majd Show Command Palette Ez megjeleníti majd az összes elérhető parancsot valamennyi bővítményből Írjuk be: CMake Utána válasszuk a Edit Kits file gombot

73 Lássunk hozzá Amikor a CMake kiterjesztés először aktiválódik, neki áll Kit - eket keresni Egy Kit az egy konform, CMake által ismert fordító N-esből és a hozzájuk kapcsolódó linkerekből, egyéb eszközökből áll. A bővítmény megkérdezi, hogy szeretnénk-e megnézni azt a JSON fájlt, amibe összegyűjtötte az általa talált Kiteket. Mondhatunk igen és nemet is Később a parancs palettáról ugyanúgy nyithatjuk meg ezt a fájlt a CMake: Edit CMake Kits parancs kiválasztásával Ha jóváhagytuk az eredményt a CMake: Quick Start parancsot választjuk és konfiguráljuk az első programunkat.

74 Egy pici fazonírozás Eredeti (csak MSVC detektálva) [ { "name": "Visual Studio Build Tools amd64", "visualstudio": "66d7a7eb", "visualstudioarchitecture": "amd64", "preferredgenerator": { "name": "Visual Studio ", "platform": "x64" } }, { "name": "Visual Studio Build Tools x86", "visualstudio": "66d7a7eb", "visualstudioarchitecture": "x86", "preferredgenerator": { "name": "Visual Studio " } } ] Módosít (32-bitre nem fordítunk) [ { "name": MSVC ", "visualstudio": "66d7a7eb", "visualstudioarchitecture": "amd64", "preferredgenerator": { "name": "Visual Studio ", "platform": "x64" } } ]

75 Lássunk hozzá Ezután a kiterjesztés három keresztkérdést fog feltenni, tudjuk-e mit is szeretnénk valójában Mi legyen a neve a kimeneti binárisnak? Könyvtár vagy futtatható program-e a kimenet? Debug, Release vagy valami cselesebb fordítási módot szeretnénk-e alkalmazni?

76 Repülő rajt Mi történt?

77 Repülő rajt Mi történt? A CMake Tools generált nekünk egy egyszerű main.cpp fájlt egy minimalista fordító szkriptet

78 Repülő rajt cmakelists.txt cmake_minimum_required(version 3.0.0) project(vscode_test VERSION 0.0.0) include(ctest) enable_testing() add_executable(vscode_test main.cpp) set(cpack_project_name ${PROJECT_NAME}) set(cpack_project_version ${PROJECT_VERSION}) include(cpack) main.cpp #include <iostream> int main(int, char**) { std::cout << "Hello, world!\n"; }

79 Repülő rajt cmakelists.txt cmake_minimum_required(version 3.0.0) project(vscode_test VERSION 0.0.0) include(ctest) enable_testing() add_executable(vscode_test main.cpp) set(cpack_project_name ${PROJECT_NAME}) set(cpack_project_version ${PROJECT_VERSION}) include(cpack) main.cpp #include <iostream> int main(int, char**) { std::cout << "Hello, world!\n"; } F7

80 Fordítás Mi történt?

81 Fordítás Mi történt? CMake Tools Konfigurál Generál CppTools Észleli a CMake bővítményt Megkérdezi használja-e

82 Fordítás Mi történt? CMake Tools Konfigurál Generál CppTools Észleli a CMake bővítményt Megkérdezi használja-e

83 Fordítás Mi történt? CMake Tools Konfigurál Generál CppTools Észleli a CMake bővítményt Megkérdezi használja-e Látjuk a parancssort, hogy mi történt

84 Hiba keresés (Cpp Tools módra) Nyomjuk meg az F5-öt Minden bővítmény és beépített képesség megkérdi, mit szeretnénk tenni a gyorsbillentyű lenyomásakor Linuxon Válasszuk a C++ (GDB/LLDB) lehetőséget GCC vagy Clang használatához Windowson Válasszuk a C++ (Windows) lehetőséges MSVC használatához Válasszuk a C++ (GDB/LLDB) lehetőséget Clang használatához

85 Hiba keresés (Cpp Tools módra) Amikor először szeretnénk egy programot elindítani hibakeresés céljából, meg kell mondani a C++ bővítménynek hova került az futtatható állomány Ez a rész fölösleges, ha magával a CMake Tools-zal indítjuk a hiba keresést (köv. dia) Alapértelmezetten ${workspaceroot}/build/<project_name>

86 Hiba keresés (CMake Tools módra) Mivel a CMake Tools tudja hova kerülnek a binárisok és azt is tudja milyen fordítóval fordítottunk (tehát azt is, milyen hiba kereső képes a binárisokban turkálni), ezért képes a korábbi beállításokat megspórolni nekünk Bővítmények közti kommunikációt használ A parancs palettáról hívjuk elő a következő parancsot Ezután ha kiválasztottuk az egyetlen futtatható állományunkat, megjelenik egy gomb a státusz sávon Erre nyomva elindul a hiba keresés

87 Hiba keresés Pár sor kódot hozzáadva a forráshoz izgalmasabb lesz a hiba keresés A sor számok bal oldalára kattintva megakasztási pontok helyezhetők el Amikor a program végrehajtása ezekhez a pontokhoz ér megáll, hogy szemügyre vehessük az állapotát

88 Hiba keresés Ha újból megnyomjuk az F5 gombot, akkor most már (és ezután mindig) rendesen elindul a hiba keresés Ha az egeret változók fölé visszük, megtekinthetjük azok aktuális értékét

89 Hiba keresés Ha újból megnyomjuk az F5 gombot, akkor most már (és ezután mindig) rendesen elindul a hiba keresés Ha az egeret változók fölé visszük, megtekinthetjük azok aktuális értékét A középső panelen a következő parancsok láthatók Ugrás a következő pontra (F5) Állítás átlépése (F10) Állításba lépés (F11) Állításból kilépés (Shift+F11) Újraindítás (Ctrl+F5) Menet leállítása (Shift+F5)

90 Hiba keresés Helyi változók Hívás verem

91 Verzió követés A Git a legelterjedtebb verziókövető rendszer napjainkban Kifejezetten hasznos, ha szeretnénk visszatérni a programkód egy korábbi változatára használni egy működő verziót, amíg fejlesztünk egy új képességet együttműködni másokkal ugyanazon a kódbázison A Git mélyreható elsajátítása a Kutatómunka Információs Eszközei c. tárgyon történik

92 Verzió követés A Git-et olyan sok programnyelv művelője használja, hogy beépített funkció a Visual Studio Code-ban A CMake Quick Start projektünket eddig nem követtük Gittel Ha megnyitjuk a verziókövető menüpontot, git repot csinálhatunk a gyökér mappából Kezdetben nincs verziókövetés Kattintsunk a Initialize git repository gombra

93 Verzió követés Ezt követően kismillió fájlt detektál majd a Git, ami még nem szerepel a repoban Ez azért van, mert az alapértelmezett fordítási helyet használtuk, és a gyökérmappában lévő build mappába került minden fordítási mellékhatás Ugyan a keletkező binárisok nem teljesen kerülnek átfedésbe a forrás fájlokkal (insource fordítás), mégsem a legszebb gyakorlat Szebb volna egy teljesen külön helyre fordítani (out-of-source fordítás)

94 Verzió követés Visszatérve a verziókövető fülre, most már csak az általunk létrehozott fájlok szerepelnek, mint új fájlok Amennyiben másokkal együtt kollaborálunk vagy szeretnénk közzétenni a munkánkat, úgy a környezet-specifikus fájlokat is ki illik zárni a verziókövetésből.vscode/.gitignore (magát a.gitignore-it is ki lehet zárni) Adjunk egy rövid megjegyzést a commithoz A gomb megnyomásával kész az első commit Gratulálunk, kész az első Git repo Codeban!

95 Verzió követés A legtöbb Git parancs elérhető a Parancs Palettáról Ha beírjuk, hogy Git, akkor kilistázódik az összes Git parancs, amit a szerkesztő ki tud adni helyettünk A tavalyi diákon megtalálható a tipikus Git munkafolyamat és mikor érdemes használni azt A többletmunka amit a Git jelent már közepes méretű projekteknél is megtérül Ha bizton szeretnénk tudni a kódot Tartsuk a repot olyan mappában, amit egy felhős tárhelyszolgáltató is követ Időnként toljuk ki a munkát egy megbízható távoli kiszolgálóra

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 5. fejezet A C++ fordítási modellje Grafikus Processzorok Tudományos Célú Programozása Kódtól a végrehajtásig Végrehajtás előtt valamikor létre kell jönnie az adott architektúrára jellemző bináris utasításoknak.

Részletesebben

Szoftver technológia. Build systems. Cserép Máté ELTE Informatikai Kar 2019.

Szoftver technológia. Build systems. Cserép Máté ELTE Informatikai Kar 2019. Szoftver technológia Cserép Máté ELTE Informatikai Kar 2019. C++ programok fordítása g++ -c -o foo.o foo.cpp \ -O2 -std=c++11 -pedantic I./include/... további fordítási egységek... g++ -c -o main.o main.cpp

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OpenCV Nyílt forráskódú szoftver (BSD licensz) Számítógépes látás,

Részletesebben

Kiszolgálók üzemeltetése. Iványi Péter

Kiszolgálók üzemeltetése. Iványi Péter Kiszolgálók üzemeltetése Iványi Péter Linuxon a C fordító gcc Fordítás GNU Compiler Collection C, C++, Object-C, Java, Fortran, Ada nyelveket tud kezelni 42 féle rendszerre és processzorra tud kódot generálni

Részletesebben

C++ programok fordítása

C++ programok fordítása C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33

Részletesebben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit 2016. november 27. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu NDK Native Development Kit Egy set of tools, amely

Részletesebben

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 8. Gyakorlat modulok random számok (utolsó módosítás: 2017. aug. 3.) Szathmáry László Debreceni Egyetem Informatikai Kar 2017-2018, 1. félév Modulok Amint a programunk

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán Bevezetés Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán A QGIS program egy nyiltforrású asztali térinformatikai program, mely a http://www.qgis.org oldalról tölthető le. Ebben a kis

Részletesebben

Digitális aláíró program telepítése az ERA rendszeren

Digitális aláíró program telepítése az ERA rendszeren Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,

Részletesebben

Elemi alkalmazások fejlesztése I.

Elemi alkalmazások fejlesztése I. Steingart Ferenc el adása alapján készítette: Szabóné Nacsa Rozália Integrált fejleszt környezet Linux MS Win* www.kdevelop.org www.bloodshed.net Bevezetés 1 A kdevelop f ablaka Editor és böngész Projektszerkezet

Részletesebben

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési

Részletesebben

Széchenyi István Egyetem www.sze.hu/~herno

Széchenyi István Egyetem www.sze.hu/~herno Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás

Részletesebben

A NetBeans IDE Ubuntu Linux operációs rendszeren

A NetBeans IDE Ubuntu Linux operációs rendszeren A NetBeans IDE Ubuntu Linux operációs rendszeren Készítette: Török Viktor (Kapitány) E-mail: kapitany@lidercfeny.hu 1/10 A NetBeans IDE Linux operációs rendszeren Bevezető A NetBeans IDE egy Java-ban írt,

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa! Tartalomjegyzék Általános Információ! 2 Felhasználói dokumentáció! 3 Feladat! 3 Környezet! 3 Használat! 3 Bemenet! 3 Példa! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!

Részletesebben

E-Freight beállítási segédlet

E-Freight beállítási segédlet E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet

Részletesebben

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt Internetkonfigurációs követelmények Annak érdekében, hogy csatlakoztatni tudja a Hozzáférési Pontját a Hozzáférési Pont Kezelőhöz, a következő konfigurációs paramétereket kell beállítania a számítógépe

Részletesebben

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge Tartalomjegyzék Bevezetés 2 Szükséges hardver és szoftver konfiguráció 3 Testreszabások lementése előző Solid Edge verzióból 4 Előző Solid

Részletesebben

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 4. előadás 2014.03.03. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Programok

Részletesebben

Tartalomjegyzék. Legfőbb különbségek az MPLAB 8-hoz képest

Tartalomjegyzék. Legfőbb különbségek az MPLAB 8-hoz képest MPLAB X Tartalomjegyzék A nagymértékű változtatás oka Legfőbb különbségek az MPLAB 8-hoz képest Az új IDE áttekintése Hogyan konfiguráljuk C fordítónkat Hogyan kell új projektet készíteni 2010 Microchip

Részletesebben

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek. Linux fájlrendszerek. 4. Laborgyakorlat Előző gyakorlaton, már volt szó a fájlrendszerekről, mikor a mount parancs -t kapcsolójáról volt szó. Linux alatt, az egyes fájlokhoz való hozzáférések miatt, a

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Selling Platform Telepítési útmutató Gyakori hibák és megoldások Selling Platform Telepítési útmutató Gyakori hibák és megoldások 265ced1609a17cf1a5979880a2ad364653895ae8 Index _ Amadeus szoftvertelepítő 3 _ Rendszerkövetelmények 3 Támogatott operációs rendszerek 3

Részletesebben

A Code::Blocks fejlesztőkörnyezet

A Code::Blocks fejlesztőkörnyezet A Code::Blocks fejlesztőkörnyezet A Code::Blocks egy keretrendszer, amely sokféle platformon (Windows, Mac, Linux), elsősorban C/C++ programozási nyelvekhez biztosít kényelmes programfejlesztési környezetet.

Részletesebben

Digitális aláíró program telepítése az ERA rendszeren

Digitális aláíró program telepítése az ERA rendszeren Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,

Részletesebben

1 Rendszerkövetelmények

1 Rendszerkövetelmények 1 Rendszerkövetelmények 1.1 Operációs rendszer Az i-deal2 ajánlatadó alkalmazás a Microsoft.Net és Click Once technológiáin alapul. Ezek használatához legalább Microsoft Windows XP SP2 (Szervízcsomag 2),

Részletesebben

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? Az Interneten nagyon sok fizetős szoftver gyakorlatilag sz sem ér, ezért mindenkinek azt javaslom mielőtt még gyors költekezésbe kezdene nézzen

Részletesebben

M-Fájlok létrehozása MATLAB-ban

M-Fájlok létrehozása MATLAB-ban M-Fájlok létrehozása MATLAB-ban 1 Mi az M-fájl Annak ellenére, hogy a MATLAB rendkívül kifinomult és fejlett számológépként használható, igazi nagysága mégis abban rejlik, hogy be tud olvasni és végrehajtani

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

ALKALMAZÁSOK ISMERTETÉSE

ALKALMAZÁSOK ISMERTETÉSE SZE INFORMATIKAI KÉPZÉS 1 SZE SPECIFIKUS IT ISMERETEK ALKALMAZÁSOK ISMERTETÉSE A feladat megoldása során valamely Windows Operációs rendszer használata a javasolt. Ebben a feladatban a következőket fogjuk

Részletesebben

TERKA Törvényességi Ellenőrzési Rendszer Kiegészítő Alkalmazás

TERKA Törvényességi Ellenőrzési Rendszer Kiegészítő Alkalmazás TERKA Törvényességi Ellenőrzési Rendszer Kiegészítő Alkalmazás Telepítési leírás 1.0.0.8 verzió A dokumentum készült: 2004. július 1. Utolsó módosítás időpontja: 2004. június 21. A dokumentumot készítette:

Részletesebben

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Az internet ökoszisztémája és evolúciója. Gyakorlat 1 Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,

Részletesebben

chmod umask chown, chgrp

chmod umask chown, chgrp 5. Gyakorlat chmod umask chown, chgrp csak a tulajdonos tudja átállítani ezeket a jogokat r=4, w=2, x=1 pl:r+x=5 s-setuid bit /root jogosultságot igénylőprogramokhoz (u=rwxs) chmod 751 proba.txt chmod

Részletesebben

Delphi programozás I.

Delphi programozás I. Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban

Részletesebben

Samsung Universal Print Driver Felhasználói útmutató

Samsung Universal Print Driver Felhasználói útmutató Samsung Universal Print Driver Felhasználói útmutató képzelje el a lehetőségeket Szerzői jog 2009 Samsung Electronics Co., Ltd. Minden jog fenntartva. Ez a felügyeleti útmutató csak tájékoztató célt szolgál.

Részletesebben

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH bevezetés, script írása, futtatása Operációs rendszerek 4. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Vizuális, eseményvezérelt programozás XI.

Vizuális, eseményvezérelt programozás XI. Vizuális, eseményvezérelt programozás XI ÓE-NIK, 2011 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

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak. Mappakezelés WINDOWS-7 A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak. A PC legnagyobb mappája, amely az összes többi mappát is magában foglalja,

Részletesebben

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014. BaBér Bérügyviteli rendszer Telepítési segédlet 2014. Tartalom 1. Ajánlott konfiguráció... 3 2. A BaBér és az SQL2005 szerver telepítése... 5 3. A BaBér program és az SQL2005-ös adatbázis kezelő telepítése...

Részletesebben

Dropbox - online fájltárolás és megosztás

Dropbox - online fájltárolás és megosztás Dropbox - online fájltárolás és megosztás web: https://www.dropbox.com A Dropbox egy felhő-alapú fájltároló és megosztó eszköz, melynek lényege, hogy a különböző fájlokat nem egy konkrét számítógéphez

Részletesebben

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt BME Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt Visual Studio, SystemC, SDL Tóth Gergely Endre 2013.03.18. 1 Bevezetés Ebben a dokumentumban leírom, hogy hogyan lehet

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

1. DVNAV letöltése és telepítése

1. DVNAV letöltése és telepítése 1. DVNAV letöltése és telepítése A Drén és Valner Szoftver Kft által készített DVNAV programmal lehetőség van a számlázó program által elkészített XML-ek NAV-hoz történő eljuttatására, majd a számlákról

Részletesebben

Operációs rendszerek gyak.

Operációs rendszerek gyak. Operációs rendszerek gyak. Linux alapok III., Bash Cirok Dávid Hirling Dominik Szegedi Tudományegyetem Cirok.David@stud.u-szeged.hu Hirling.Dominik@stud.u-szeged.hu Linux alapok III., Bash 1 Linkelés 2

Részletesebben

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő 2013. február 20.

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő 2013. február 20. Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő 2013. február 20. 1 2 3 4 5 6 7 8 Pentaho eszköztára Data Integrator Spoon felület Spoon

Részletesebben

C vagy C++? Programozási Nyelvek és Fordítóprogramok Tanszék. Pataki Norbert. Programozási Nyelvek I.

C vagy C++? Programozási Nyelvek és Fordítóprogramok Tanszék. Pataki Norbert. Programozási Nyelvek I. Programozási Nyelvek és Fordítóprogramok Tanszék Programozási Nyelvek I. Témák 1 Bevezetés 2 A C++ alapfilozófiája 3 Névterek/namespace-ek 4 Függvények 5 Referenciák C++-ban Motiváció A C és a C++ nyelv

Részletesebben

Tortoise SVN használata. Képes útmutató

Tortoise SVN használata. Képes útmutató Tortoise SVN használata Képes útmutató 0. lépés Checkout könyvtár létrehozása Hozzunk létre egy könyvtárat, ahova letöltjük első alkalommal a Repository tartalmát és ahol később dolgozni fogunk! 1. Checkout

Részletesebben

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Selling Platform Telepítési útmutató Gyakori hibák és megoldások Selling Platform Telepítési útmutató Gyakori hibák és megoldások 265ced1609a17cf1a5979880a2ad364653895ae8 Index _ Amadeus szoftvertelepítő 3 _ Rendszerkövetelmények 3 Támogatott operációs rendszerek 3

Részletesebben

Podoski Péter és Zabb László

Podoski Péter és Zabb László Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő

Részletesebben

Telepítési Kézikönyv

Telepítési Kézikönyv Intelligens Dokumentum Kezelő Rendszer Telepítési Kézikönyv 1/15. oldal Dokumentum áttekintés Dokumentum címe: doknet telepítési kézikönyv Dokumentum besorolása: szoftver telepítési leírás Projektszám:

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Point of View Android 2.3 Tablet Kézikönyv ProTab 2XL

Point of View Android 2.3 Tablet Kézikönyv ProTab 2XL Tartalom 1. Megjegyzések...2 2. Doboz tartalma...2 3. Termék áttekintése...3 4. Indítás és leállítás...4 5. Asztal...5 6. Gombok...5 7. Az App Drawer...6 8. Rendszerbeállítások...6 9. HDMI...8 10. Telepítés,

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Java-s Nyomtatványkitöltő Program Súgó

Java-s Nyomtatványkitöltő Program Súgó Java-s Nyomtatványkitöltő Program Súgó Hálózatos telepítés Windows és Linux operációs rendszereken A program nem használja a Registry-t. A program három könyvtárstruktúrát használ, melyek a következők:

Részletesebben

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet

Részletesebben

Tájékoztató a kollégiumi internet beállításához

Tájékoztató a kollégiumi internet beállításához Tájékoztató a kollégiumi internet beállításához V 1.3 A támogatott operációs rendszerekhez tartozó leírás hamarosan bıvülni fog, jelenleg a következı leírásokat tartalmazza: Windows XP, Windows Vista,

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

eszemélyi Kliens Szoftvercsomag

eszemélyi Kliens Szoftvercsomag Belügyminisztérium eszemélyi Kliens Szoftvercsomag Telepítési Útmutató 1 Bevezetés 1.1 Jelen dokumentum célja Az alábbi dokumentum írja le, hogy hogyan kell telepíteni az eszemélyi Kliens szoftvercsomagot.

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

WIFI elérés beállítása Windows XP tanúsítvánnyal

WIFI elérés beállítása Windows XP tanúsítvánnyal WIFI elérés beállítása Windows XP tanúsítvánnyal Pattantyús-Ábrahám Géza Ipari Szakközépiskola és Általános Művelődési Központ Készítette: Jászberényi József, 2011 1/24 A PÁGISZ WIFI hálózathoz kétféle

Részletesebben

A Zotero hivatkozáskezelő program bemutatása. Mátyás Melinda

A Zotero hivatkozáskezelő program bemutatása. Mátyás Melinda A Zotero hivatkozáskezelő program bemutatása Mátyás Melinda Mire használható a Zotero? A Zotero egy ingyenes hivatkozáskezelő program Különböző internetes oldalakról, adatbázisokból tudjuk kinyerni a megjelenített

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító

Részletesebben

Google Drive szinkronizálása asztali géppel Linux rendszeren

Google Drive szinkronizálása asztali géppel Linux rendszeren Google Drive szinkronizálása asztali géppel Linux rendszeren Ha valamilyen Ubuntu disztribúciót használsz, akkor nincs nehéz dolgod a telepítést illetően, hiszen egyszerűen PPA tárolóban is elérhető. Az

Részletesebben

C++ fejlesztés az ECLIPSE környezetben

C++ fejlesztés az ECLIPSE környezetben Bevezetés kr304@hszk.bme.hu UNIX, 2005. május 13. Bevezetés Tartalomjegyzék 1 Bevezetés IDE IDE eszközök 2 Célkitűzés Architektúra CDT Project Összefoglalás Bevezetés IDE IDE eszközök Integrated Development

Részletesebben

Szathmáry László Debreceni Egyetem Informatikai Kar

Szathmáry László Debreceni Egyetem Informatikai Kar Szathmáry László Debreceni Egyetem Informatikai Kar 1. Gyakorlat bevezető JSON telepítés (utolsó módosítás: 2018. szept. 12.) 2018-2019, 1. félév MongoDB https://www.mongodb.com/ A MongoDB egy nem-relációs,

Részletesebben

Clang Static Analyzer belülről

Clang Static Analyzer belülről Clang Static Analyzer belülről Nagy Donát 2015. október 6. Áttekintés 1 Clang Static Analyzer kívülről 2 A statikus elemzés folyamata 3 Az eszköz felépítése 4 Egy checker felépítése Rövid definíciók Clang

Részletesebben

kommunikáció Megoldások

kommunikáció Megoldások Információ és kommunikáció Megoldások Megoldások Információ és kommunikáció 1. A címsorba gépelje be a http://www.nbc.com címet! A Kedvencek hozzáadása panelen kattintunk a létrehozás gombra! Kattintsunk

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

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Az internet ökoszisztémája és evolúciója. Gyakorlat 1 Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,

Részletesebben

A Remote Support Platform 3.0 újdonságai

A Remote Support Platform 3.0 újdonságai Újdonságok Remote Support Platform for SAP Business One Dokumentumverzió: 1.0 2012-10-08 NYILVÁNOS A Remote Support Platform 3.0 újdonságai Minden ország Tipográfiai konvenciók Írásmód Példa A képernyőn

Részletesebben

WordPress segédlet. Bevezető. Letöltés. Telepítés

WordPress segédlet. Bevezető. Letöltés. Telepítés WordPress segédlet Bevezető A WordPress egy ingyenes tartalomkezelő rendszer (Content Management System - CMS), amely legnagyobb előnye az egyszerű telepítés és a letisztult kezelhetőség és a változatos

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Hardver és szoftver követelmények

Hardver és szoftver követelmények Java-s Nyomtatványkitöltő Program Súgó Telepítési útmutató Hardver és szoftver követelmények A java-s nyomtatványkitöltő program az alábbi hardverigényt támasztja a számítógéppel szemben: 400 MHz órajelű

Részletesebben

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő Több platform egy kódbázis Tanulságok a Tresorittól Budai Péter, vezető fejlesztő Miről lesz szó? A Tresorit szolgáltatás és platformjainak gyors bemutatása A Tresorit szoftver architektúrája Hogyan épül

Részletesebben

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Egészítsük ki a Drupal-t. Drupal modul fejlesztés Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019. Szoftver technológia Cserép Máté ELTE Informatikai Kar 2019. Szoftvereszközök A fejlesztőcsapat munkáját megfelelő szoftvereszközökkel kell alátámasztani projektmenedzsment eszközzel (project tracking

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

A Telepítés hajlékonylemezről panelen kattintson az OK gombra.

A Telepítés hajlékonylemezről panelen kattintson az OK gombra. Mivel a Windows 95, 98 és Millenium Edition operációs rendszerek még nem tartalmazzák az ún. PPPoE kapcsolathoz szükséges programot, ezért azt le kell tölteni. Az alábbi tájékoztató a http://www.raspppoe.com/

Részletesebben

Automatizált Java Build. ApacheAnt használatával

Automatizált Java Build. ApacheAnt használatával Automatizált Java Build ApacheAnt használatával 1 TARTALOMJEGYZÉK 1 Tartalomjegyzék... 2 2 Bevezetés... 3 3 Az Apache Ant... 3 4 Felhasználás... 5 5 Összefoglalás... 9 6 Irodalomjegyzék... 9 30_Automatizalt

Részletesebben

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt segédlet A Szilipet programok az adatok tárolásához Firebird adatbázis szervert használnak. Hálózatos

Részletesebben

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Ön letölthető fájl tartalmazza az Evolut Főkönyv 2013. program telepítőjét. A jelen leírás olyan telepítésre vonatkozik, amikor Ön

Részletesebben

Java I. A Java programozási nyelv

Java I. A Java programozási nyelv Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem

Részletesebben

Youtube videó letöltés és konvertálás Linuxon

Youtube videó letöltés és konvertálás Linuxon Youtube videó letöltés és konvertálás Linuxon A szkript futtatásához szükségünk van 2 program telepítésére (youtube dl, mencoder), ezeket a következő parancs kiadásával tudjuk a legegyszerűbben telepíteni:

Részletesebben

RapidMiner telepítés i. RapidMiner telepítés

RapidMiner telepítés i. RapidMiner telepítés i RapidMiner telepítés ii COLLABORATORS TITLE : RapidMiner telepítés ACTION NAME DATE SIGNATURE WRITTEN BY Jeszenszky, Péter 2014. szeptember 17. REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Tartalomjegyzék

Részletesebben

Android alapok. Android játékfejlesztés

Android alapok. Android játékfejlesztés Az Android Studio fejlesztőkörnyezet letöltése, telepítése képernyőképekkel bemutatva, illetve az első programunk létrehozása. (Hello World) Android alapok Android játékfejlesztés Készítette: Soós András

Részletesebben

Nyolcbites számláló mintaprojekt

Nyolcbites számláló mintaprojekt Nyolcbites számláló mintaprojekt 1. Bevezető A leírás egy nyolcbites számláló elkészítésének és tesztelésének lépéseit ismerteti. A számláló értéke az órajel felfutó élének hatására növekszik. A törlőgombbal

Részletesebben

Kézikönyv. Szelekciós operátorok használata

Kézikönyv. Szelekciós operátorok használata Kézikönyv Szelekciós operátorok használata Tartalomjegyzék 1 ABAS-ERP UTASÍTÁS ÁTTEKINTÉS... 7 2 ÁRUCIKK - ÜRES... 9 3 OBJEKTUM KIVÁLASZTÁS - ÁRUCIKK MEGJELENÍTÉS... 10 4 ABAS-ERP... 18 5 OBJEKTUM KIVÁLASZTÁS

Részletesebben

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán A QGIS program GPS eszközök modulja segítségével kétirányú kommunikációt folytathatunk a navigációs GPS vevőnkkel.

Részletesebben

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Nyomtató telepítése. 1. ábra Nyomtatók és faxok Nyomtató hozzáadása

Nyomtató telepítése. 1. ábra Nyomtatók és faxok Nyomtató hozzáadása Ha ki szeretnénk nyomtatni az elkészített dokumentumainkat, akkor a nyomtató vezérlőprogramját a számítógépre kell telepítenünk. Ezáltal a számítógép irányítani tudja a nyomtatót, érzékeli üzeneteit. A

Részletesebben