Informatikai alkalmazások - levelező
Karakterkódolás Karakterek mint bájtok ASCII (American Standard Code for Information Interchange) karakterkódolás 1 karakter 1 byte (256 féle kód) kódtáblában rögzítve Alap karakterkészlet (fix): 0-127 Kiegészítő karakterkészlet (cserélhető kódlap) pl. latin 2 http://picascii.com, http://www.asciimation.co.nz/
Unicode szabvány юникодом /یونیکوڈ/ યયનનકકડ / يونيكود 1 karakter 1-nél több bájton 2 bájt esetén 65536 elemű kódtábla (fix) Első 128 elem: ASCII kódtábla első fele Többi elem: minden más Kódolási változatok UTF-32 UTF-16 UTF-8
Szövegszerkesztés MS Word Karakter/bekezdés/szakaszformázás Fejléc/lábléc Dokumentumsablonok (template) Stílusok használata (Tartalomjegyzék) Körlevelek készítése (törzsdokumentum) Objektumok csatolása vs. beágyazása Csatolás: forrásfájlra mutató pointer létesítése Beágyazás: deep copy
Szövegszerkesztés (La)Tex Tex Donald Knuth által létrehozott Turing-teljes szkriptnyelv LaTex A Tex nyelvre épülő makrókollekció a Tex használatának megkönnyítésére
Donald Knuth: Számítógépprogramozás művészete 7 kötetes(re tervezett) Minden hiba után 256 cent (1 hex USD) jutalmat ajánlott föl Tex ötlete a könyv megírása ihlette Tex v3.141592 Körkörös rekuzió
LaTex alapok és lehetőségek (La)Tex környezetek MikTeX (Windows) TeXLive Csomagok könnyű integrálhatósága Keresztrejtvénykészítés (cwpuzzle) Online vizualizációs galéria (tikz)
LaTex előnyei Verziókövetés megkönnyítése Sima szöveges fájl dif és git alkalmazhatósága Tartalom és formátum kettéválasztása Kb. mint HTML és CSS esetén Open source Masszív online közösség (pl. Tex Stack Exchange) Könnyen beszerezhető modulok Biztonság
LaTex alapok Nyitó és záró tag -ek használata pl. \begin{table}...\end{table} A záró tag bizonyos esetekben nem kötelező (HTML-hez hasonlóan)
LaTex alapok Utasítások általános felépítése \utasítás[opcionális argumentumok]{kötelező argumentumok} pl. \usepackage[utf8]{inputenc} Dokumentumok általános felépítése Fejléc Törzs
LaTex fejléc \documentclass{x}... \begin{document} utasítások közötti rész A beimportálni kívánt csomagok felsorolását tartalmazza Egyéb metaadatok (pl. szerző neve/létrehozás dátuma/...) kerülhet ide Saját utasításokat definiálhatunk (\newcommand{} utasítás)
LaTex törzs Az érdemi tartalmat generáló rész Struktúra könnyed kezelése Fejezet: \section{}, alfejezet: \subsection{} Hivatkozások létrehozása/használata \label{} illetve \ref{} utasítások Tartalomjegyzékek automatikus kezelése \tableofcontents
Programozási nyelvek csoportosítása Magas vs. alacsony szintű nyelvek Interpretálhatóság kontra gépi utasításokból álló kód (Assembly) Programozási paradigma szerint Objektumorientált programozás Funkcionális programozás Logikai programozás Párhuzamos programozás
Funkcionális programozás A program nem más mint egy függvény kiértékelése Támaszkodhat más függvények definíciójára (vagy önmagára) Pl. Haskell, Scala (hibrid megoldás) factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))
Logikai és párhuzamos programozás Logikai programozás Adott premisszák esetén indukciós lépések sorozatának végrehajtása; pl. Prolog Pl. a program számára ismert tények: szülő-gyerek relációk listája unoka-nagyszülő relációk feltérképezése Párhuzamos programozás Többmagos processzor esetében a program párhuzamos végrehajtása biztosított Egymagos gépeknél időszeletekkel imitált a párhuzamosság
Objektumorientált (OO) paradigma Elemi változókból (egész, logikai, String) és összetett objektumokból tetszőleges komplexitású objektumokat képzünk Kulcsjellemzők: egységbe zárás, öröklődés, polimorfizmus (többalakúság) Osztály: absztrakt adattípus Objektum: az osztályból képzett példány Pl. Smalltalk, Java, C++
JAVA Korábban a Sun Microsystems, most már az Oracle fejleszti Magas szintű programozási nyelv A legelterjedtebb OO nyelvek egyike Egyik fő erénye a platformfüggetlenség Módosítás nélkül futtatható ugyanaz a kód bármely architektúrán A kód virtuális gépen (JVM) való végrahajtása Egy időben nagy népszerűségnek örvendett az ún. Java appletek weboldalakba ágyazása nagyfokú biztonsági kocázat
JDK>JRE>JVM JDK: Java Development Kit javac program végzi a fordítást (compilation) JRE: Java Runtime Environment java program hajtja végre a lefordított programokat (bináris class állományok) Csak az ún. 'fő' main metódussal rendelkező, lefordított osztály futtatható JVM: Java Virtual Machine
MS Office dokumentumok felépítése A 2007-es MS Office-szal kezdődően az elkészített dokumentumok (docx, pptx,...) gyakorlatilag csomagolt állományok (zip) A csomagolt állományok egy könyvtárhierarchiát rejtenek Bennük Open XML szabvány szerint van a dokumentumok tartalma és metaadatai tárolva
Apache POI API Egy Java nyelven elérhető programozói interfészt biztosít Open XML szabványú dokumentumok készítésére és manipulálására API: Application Programming Interface Szabványos protokoll alkalmazások készítéséhez/használatához
++++++++++[>+++++++>+++ +++++++>+++>+<<<<-]>+ +.>+.+++++++..+++.>++.<<++ +++++++++++++.>.++ +.------.--------.>+.>. Ezoterikus programozási nyelvek
Hello World ++++++++++[>+++++++>+++ +++++++>+++>+<<<<-]>+ +.>+.+++++++..+++.>++.<<++ +++++++++++++.>.++ +.------.--------.>+.>. Ezoterikus programozási nyelvek
Hello World brainf*ck nyelven +++++ +++++ initialize counter (cell #0) to 10 [ use loop to set the next four cells to 70/100/30/10 > +++++ ++ add 7 to cell #1 > +++++ +++++ add 10 to cell #2 > +++ add 3 to cell #3 > + add 1 to cell #4 <<<< - decrement counter (cell #0) ] > ++. print 'H' > +. print 'e' +++++ ++. print 'l'. print 'l' +++. print 'o' > ++. print ' ' << +++++ +++++ +++++. print 'W' >. print 'o' +++. print 'r' ----- -. print 'l' ----- ---. print 'd' > +. print '!' >. print '\n'
brainfuck parancsok > A pointer növelése eggyel < A pointer csökkentése eggyel + - A pointernél levő byte növelése eggyel A pointernél levő byte csökkentése eggyel. A pointernél levő byte kiírása, [ Byte bekérése és a pointernél tárolása Ugrás a következő, megfelelő ] jel utánig, ha a pointer alatti byte nulla. ] Ugrás az előző, megfelelő [ jelig.