{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
Programozás alapismeretek
\n", "\n", "


\n", "

**Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.**\n", "
*Albert Einstein*

\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Sokféle programozási nyelv létezik. Vannak viszonylag jól olvasható nyelvek, és vannak teljesen elrugaszkodott nyelvek. Most pár képen mutatunk példákat különböző nyelvekre.\n", "\n", "Mindegyik esetben a \"Hello World!\" szöveget jelenti meg a példa program." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
Python
\n", "\n", ">```python\n", "print(\"Hello World!\")\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
C
\n", "\n", ">```c\n", "#include \n", "main()\n", "{\n", " printf(\"Hello World! \\n\");\n", "}\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
Brainfuck
\n", "\n", ">```\n", "+++++ +++++\n", "[\n", " > +++++ ++\n", " > +++++ +++++\n", " > +++\n", " > +\n", " <<<< -\n", "]\n", "> ++ . 'H'\n", "> + . 'e'\n", "+++++ ++ . 'l'\n", ". 'l'\n", "+++ . 'o'\n", ">++ . ' '\n", "<< +++++ +++++ +++++ . 'W'\n", "> . 'o'\n", "+++ . 'r'\n", "----- - . 'l'\n", "----- --- . 'd'\n", "> + . '!'\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
Whitespace (programming language)
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
Velato (programming language)
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 2 fő csoportosítási lehetőség\n", "\n", "A programozás technikában 2 külön típusa van a programnyelveknek. Vannak az interpreter/értelmező nyelvek (más néven script nyelvek, mint amilyen a bash, python) illetve vannak a compiler/fordítói nyelvek (mint amilyen a C illetve a latex is ilyesféle dolog).\n", "\n", "Az értelmező (interpreter) abban különbözik a fordítótól, hogy a forráskódból nem tárgykódot készít későbbi futtatás céljára - vagy legalábbis nem tárolja külön azt -, hanem a benne foglalt utasításokat azonnal végre is hajtja.\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## A C nyelv (compiler típus)\n", "\n", "Irodalom: https://hu.wikibooks.org/wiki/Programoz%C3%A1s_C_nyelven" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével 1969 és 1973 között a UNIX rendszerekre AT&T Bell Labs-nál. \n", "\n", "\n", "A C minden idők legszélesebb körben használt programozási nyelve, és a C fordítók elérhetők a ma elérhető számítógép-architektúrák és operációs rendszerek többségére. A sokféle processzorhoz operációs rendszerekre volt szükség, és az eleve C-ben írt Unix volt a legkönnyebben portolható." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### A C nyelv jellemzői:\n", "- strukturált\n", "- szabványos: minden platformon van fordítóprogramja, a kód a forrásprogram szintjén hordozható\n", "- a C-program rendkívül hatékony gépi kódra fordul le.\n", "\n", "A nyelv makrónyelv abban az értelemben, hogy a C-fordító assembly nyelvre fordít, a programozónak azonban egyetlen assembly sort sem kell leírnia (sőt, nem is kell tudnia erről)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### A C strukturált programnyelv:\n", "\n", "bármelyik utasítás helyén állhat blokk, mely { és } jelek közé zárt tetszőleges típusú és számú utasításból állhat. A blokkok egymásba skatulyázhatók. A függvények utasításai blokkban helyezkednek el. A C-program belépési pontja a main nevű függvény, mely az operációs rendszertől kapja a híváskor megadott paramétereket, és annak adja vissza a(z egész típusú) visszatérési értékét." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Formai szabályok\n", "\n", "A nyelv utasításai a preprocesszor-utasítások kivételével szabad formátumúak: ahol egy helyköz megengedett, ott akárhány helyköz, tabulátor, új sor lehet. A nyelv szavai (utasításnevek, változónevek, számok, műveleti jelek stb.) között lehet helyköz, de nem kötelező. Az utasítások pontosvesszővel végződnek. Az üres utasítás az előző utasítás vége után tett pontosvessző. A folytatósor – a sor végi \\ – a szabad formátum miatt csak preprocesszor-utasításokban használatos.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "A megjegyzéseket `/*` és `*/` közé kell zárni, és szabvány szerint nem skatulyázhatók egymásba, bár sok fordítóprogram mégis megengedi. Az ANSI C-től kezdve használható a //, mely a sor végéig tartó megjegyzést vezet be. Hosszabb megjegyzéseket a `#if 0...#endif` közé is lehet tenni; ezek – lévén preprocesszor-utasítások – egymásba skatulyázhatók.\n", "\n", "C-ben a nevek kis- és nagybetűkből, számjegyekből és aláhúzásból állhatnak, számjegy nem lehet az első karakter. A kis- és nagybetűk különbözőek. A kialakult szokás szerint a nevekben kisbetűket használunk, a preprocesszor-utasításokban rendszerint nagybetűket." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Készítsünk egy **hello.c** nevű szöveges fájlt a következő tartalommal:\n", "\n", ">```c\n", "#include \n", " main()\n", " {\n", " printf(\" Első C programom \\n\");\n", " }\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Mentés után le kell fordítani a forrásfájlt \"gépi nyelvre\" (terminálban):\n", "\n", ">```bash\n", "gcc hello.c -o hello \n", "```\n", "```bash\n", "more hello # Bináris állomány\n", "```\n", "\n", "Majd indítsuk el az elkészült **a.out** állományt (szintén terminálban):\n", "\n", ">```bash\n", "./hello\n", "```" ] } ], "metadata": { "celltoolbar": "Slideshow", "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" }, "livereveal": { "center": "true", "height": "750", "scroll": true, "theme": "sky", "transition": "concave", "transitionSpeed": "slow", "width": "1280" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": false, "sideBar": true, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 0 }