Adatstruktúrák Algoritmusok Objektumok A számítógépes problémamegoldás modellezésének módszerei. Programozási elvek és módszerek: imperatív, strukturált, moduláris, objektumorientált programozás. Programozási nyelvek. A programozás menete
Programozás alapfogalmai I. • Programozás: A program készítés folyamata • Program: Egy feladat elvégzéséhez szükséges utasítások összessége • Utasítás: Egy lépésben elvégezhető számítógépes művelet • Parancs: Az érvényesítést követően azonnal végrehajtódó művelet • Programozási nyelv: Nyelvi elemek és szabályok rendszere, melynek alapján a számítógép számára értelmezhető program elkészül
Programozás alapfogalmai II. • Algoritmus: a program terve, vagyis azon elemi lépések leírása, amelyek a bemenő adatokból elvezetnek a feladat megoldásához. • Számítástechnikai modell, számítási modell • Forrásprogram: programnyelven megírt program, ebből fordítóprogram segítségével lehet a sz.g.-en futtatható programot elkészíteni • Tárgyprogram • Futtatható program • Fordítóprogram
A számítógép informatikai modellje – Turing gép
Turing automata részei I. • egy cellákra osztott végtelenített papírszalag formában létező memóriából (szalagmemória, szalagtár, társzalag); minden cellában a gép által megértett nyelv betűi, azaz a Tár-abc egy- egy betűje van írva; • egy vezérlőegységből, mely a gép programját tartalmazza; a vezérlőegység különböző időpillanatokban különféle belső állapotokban létezhet;
Turing automata részei II. • egy író-olvasó fejből (I/O-fej), mely szimbólumokat ír vagy olvas a szalag celláira (ahogy a valóságos számítógépek betűket írnak ki a monitorra vagy a nyomtatóban lévő papírívre). • továbbá egy „szoftveregységből”, ez az átmenettábla, ami vezérli a gép működését, megadva, hogy adott szimbólum beolvasásának hatására adott állapotban mit tegyen: hogyan mozogjon, milyen szimbólumot írjon a tárra, és milyen belső állapotba kerüljön.
Programnyelvek csoportosítása Imperatív DBASE Delphi Pascal Deklaratív SQL Java Visual Basic Prolog C# PHP Basic C++ Magas szintű Algol Fortran C Alacsony szintű Assembly
Magas és alacsony szintű programnyelvek összehasonlítása • Más néven gépközeli • Egyszerű utasítások • Címek, egyszerű változók használata Magas szintű • Ember közeli • Összetett utasítások • Címkék, adatszerkezetek használata
Mi a fordítóprogram feladata? Compiler Időben elkülönül a fordítás és a futtatás Forráskód védelme megoldott Gyorsabb programfutás Futtatáshoz nem szükséges a fejlesztőkörnyezet Interpreter Futtatás és értelmezés programsoronként Forráskód védelme nehézkes Lassabb programfutás Futtatáshoz a fejlesztőkörnyezet (vagy annak egy modulja) szükséges • •
Programnyelvek csoportosításának további szempontjai • Programnyelvi generációk – Első G: a gépi kódhoz közel álló programozás technika – alacsony szintű programnyelv – Második G: magas szintű programnyelvek használata, az emberi gondolkodáshoz közelebb álló parancsok, és a struktúrált programozás megjelenése – Harmadik G: Objektum orientált nyelvek megjelenése – Negyedik G: Eseményvezérelt programozás, vizuális kezelőfelület segítségével • Általános programozási nyelv – célorientált nyelvek
A program készítés folyamata 1. A feladat meghatározása 2. Algoritmus 3. Kódolás 4. Tesztelés, hibakeresés, hibajavítás szintaktikai szemantikai hibák 5. Dokumentáció készítése Szervezési dokumentáció Programozási dokumentáció Felhasználói dokumentáció Üzemeltetési dokumentáció