Programozási nyelvek Talata István.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Algoritmusok.
Piacképes programozói tudás a középiskolában
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
3. A programozás eszközei, programozás-technikai alapismeretek
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Programozás.
JavaScript.
Az első program, avagy ismerkedés a nyelvvel
Programozás alapjai.
Programozási nyelvek.
Algoritmusok Az algoritmus fogalma:
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
Készítette: Pető László
Nat Pedellus Informatika 8. osztály óra.
Programozás módszertan
Programozási alapismeretek Bóta László
Ruby nyelv. Története Yukihiro Matsumoto (szül ápr. 4.) alkotta meg, az ideális script nyelv hosszú eredménytelen keresése után. A lehetséges jelöltek.
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Szombathely Dinamikus WEB programozás: PHP és JSP.
Vizuális és web programozás II.
Programozási nyelvek – Programozási paradigmák
ISZAM III.évf. részére Bunkóczi László
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás alapismeretek
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
Programozás. fordító (compiler): a program forrásszövegéből egy gépi kódú, futtatható programot (pl. EXE) állít elő, vagyis a programot lefordítja a gép.
ALGORITMUSOK.
Tömbök és programozási tételek
Programozási nyelvek, Pascal
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
Programozási nyelvek.
Objektumorientált programozás
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Programozás. Programozási nyelvek: Gépi nyelv A számítástechnika őskorában egyedüli lehetőség volt a gép bitsorozattal való programozása. Minden processzor.
Algoritmusok.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Webprogramozó tanfolyam
A Visual Basic nyelvi elemei
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Programozás, programtervezés
Software - Ismeretek Avagy mitől megy a Hardware.
Összeállította: Sashalmi Tibor
Excel programozás (makró)
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Informatikai gyakorlatok 11. évfolyam
kialakulása, fejlődése, generációk
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Programozási nyelvek csoportosítása.
Programozás alapjai Készítette: Csiszár Nóra Anita
kialakulása, fejlődése, generációk
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Programozási alapok.
Programozási alapismeretek
Programozási nyelvek típusossága.
Excel programozás (makró)
Compiler illetve interpreter nyelvek
Algoritmizálás.
Bevezetés a programozásba Algoritmikus gondolkodás
Programozási nyelvek Talata István.
Informatikai gyakorlatok 11. évfolyam
1. Bevezetés A programozásba
Előadás másolata:

Programozási nyelvek Talata István

Programozás feladatok megfogalmazása számítógép számára végrehajtója a számítógép hardvere és operációs rendszere bináris alakban, 0 – 1 sorozat formában kerül végrehajtásra egy program programozási nyelv: a szabályrendszer, amelyben megírják a feladatot (programot) a számítógép számára

Alacsony szintű programnyelvek gépi kód bájtok sorozataként kerül megírásra a program, adatokat konkrét regiszterek között mozgatva tipikusan 10-es számrendszerben is be lehet vinni a bájtok értékeit példa gépi kódú programra: 180, 2, 178, 65, 205, 33, 205, 32 assembly a gépi kódú programstruktúra megőrződik, de angol szavak rövidítéseivel helyettsítik az utasításkódokat és karakterkombinációkkal a regiszterek számait példa assembly utasításra: mov ah, 2 assembler lefordítja gépi kódba használat előtt makroassembly: amikor már több gépi kódú utasítás sorozatának felel meg egy assembly utasítás (makro)

Magas szintű programnyelvek számítógépkonfigurációtól független a feladat leírása a szabályrendszerében Fajtái: általános célú programnyelvek cél: sokféle feladat programozására lehessen használni speciális célú programnyelvek speciális feladatokat lehet vele egyszerűen megoldani pl.: SQL – adatbáziskezelésre kifejlesztett A továbbiakban magas szintű, általános célú programnyelvekkel foglalkozunk

A programozás menete forrásprogram megírása (kötött szintaktika) ennek lefordítása (fordítóprogram – compiler segítségével) hibakezelés kapjuk: tárgyprogram felhasznált segédprogramok, rutinok hozzácsatolása (linkage editor) kapjuk: végrehajtható program futtatás eredmények

A forrásprogram elkészítésének folyamata algoritmus megfogalmazása Főbb építőelemek: szekvencia (egymás utániság) elágazás (feltételes utasítás) lehet logikai értékvizsgálattól függő kétirányú vagy változó értékétől függö többszörös elágazás ciklus (visszacsatolás) lehet elöltesztelő vagy hátultesztelő a programnyelv utasításaira való átfogalmazás utasítások leírására tipikusan elég ASCII szövegszerkesztő praktikusabb egy fejlesztői környezetben írni a programot (beépített segítség utasításkészlethez, szintaktikai kiemelés ill. ellenőrzés)

Algoritmus megfogalmazása Lehetséges megvalósítási módjai: szöveges megfogalmazás folyamatábra D-diagram (D=Dijkstra) több részdiagramból áll össze csak egy kimenő él van egy elemi szerkezetben áttekinthetőbb blokkdiagram (téglalapokra írva minden lépés, téglalapok egymáson belül is elhelyezkedhetnek) struktogram (esetleg vonalakkal felosztott téglalap-részek elágazásoknál, fentről lefelé vannak az egymás után következő lépések)

folyamatábra blokkdiagram beolvas: p beolvas: p q=1 q=1 Ismételd q=2q q=2q amíg q < p q<p Eredmény: q igaz hamis Eredmény: q

A programozási nyelvek fejlődése Mondatszerű algoritmusleírás pl.: COBOL, egy utasítására példa: ADD A TO B GIVING C Strukturált programozás pl.: Pascal, ebben eljárások és függvények blokkjainak a megadásából jön létre a program Hordozható assembly pl.: C, memóriacímek (mutatók) és memóriafoglalás rugalmas kezelése Objektumorientált programozás pl.: C++, SmallTalk, Java objektumok tulajdonságokkal / állapotokkal, objektum-hierarchia: objektumok osztályokhoz tartoznak, osztályok közöti hierarchiát öröklődés határozza meg Egyéb: logikai programozás (pl.: Prolog), funkcionális programozás (pl. Clean)

Alapnyelvek ALGOL (ALGOrithmic Language) 1960-as évektől, tudományos számításokra tervezték BASIC (Beginner’s All purpose Symbolic Instruction Code) 1964-től, kezdetben egyetemisták részére fejlesztették ki C 1970-es évek eleje, UNIX kifeljesztéséhez hozta Dennis Ritchie létre COBOL (COmmon Business Oriented Language) 1959, nyilvántartások kezeléséhez fejlesztették ki FORTRAN (FORmula TRANslator)) 1957, numerikus számításokhoz, manapság is elterjedt Pascal 1970, ALGOL alapján hozták létre

További nyelvek Ada 95: Pascalból, objektumorientált C++: C-ből, objektumorientált C#: C + + ötvözve MS Visual Basic elemekkel, objektumorientált Clean: 1987, funkcionális nyelv Delphi: 1995, Turbo Pascal 7.0-ból, objektumorientált Eiffel: 1980-as évek második fele, ALGOL-ból, szoftverfejlesztéshez termelési környezetekben Java: 1996, virtuális gépre van hozzá szükség, objektumorientált Digitális tévét vezérlö apró készülékek programozásához jött létre – ez a projekt elhalt, a WWW születése után a Netscape és a Microsoft is beépítette böngészőjébe, népszerű lett. LISP: 1950-es évektől, az első funkcionális nyelv. Modula-2 (1970-es évek), Modula-3 (1980-as évek): Pascalból Perl: 1991, szövegfeldolgozásra PHP: hypertext preprocessor: Java, C, Perl nyelvekre épül

Szabványosítás Egy programnyelv szabályai különböző disztribucíók esetén kissé eltérhetnek egymástól pl.: a Borland Turbo Pascal több utasítást ismer, mint a Pascal A szabványoknak két fő típusa van: szabadalmaztatott szabványok (cégek esetén) konszenzusos szabványok (szabványok létrehozásával foglalkozó szervezetek, pl. ANSI, IEEE alakítják ki) Előnye a konszenzusos szabványnak, hogy segítségével könnyebben létrehozhatók jobban hordozható programok A legtöbb nyelvnek több verziója van (kiadási évhez kötődően, pl. ALGOL 68), előre be szokták jelenteni, hogy a következő verzióban jópár év múlva mi fog megszünni, hogy a programozók erre felkészülhessenek DIM P(100)

GOTO feltétel nélküli vezérlésátadás (ugrás) nem elegáns használni több nyelvben már nem is létezik ez az utasítás vagy csupán végtelen ciklusból való kiugrásra lehetséges a használata a probléma vele többrétű átláthatatlanná teheti a programstruktúrát , hibakeresést megnehezíti a fordítóprogram nem tudja miatta jól meghatározni a program erőforrás- vagy memóriaigényét kivételkezelés programnyelvi támogatása kiválthatja a szükségességét FORTRAN0 vezette be, COBOL támogatja Pascalban cimkére ugorhat blokkon belül, C-ben cimkére ugorhat fügvényen belül Modula-3-ban nincs GOTO (de van RETURN visszatérni elájrásokból, függvényekből), Java-ban nincs GOTO

BASIC ún. P-kód (pszeudo kód) készül a fordítás során ezt interpreter értelmezi minden futtatás során – ezért a futás relatíve lassú Visual BASIC 5.0-tól kezdve már gépi kódú fordítást is lehet készíteni A Visual BASIC objektumalapú nyelv, és csak részben objektumorientált nyelv (nincs benne osztályhierarchia) BASIC alapokra épít, egyszerű felépítésű nagyban függ a hardvertől és az operációs rendszertől (pl. MS Visual BASIC csak MS Windowsos platformon működik)

Az elkészült programok futtatása Fordítóprogramos programnyelv esetén: az elkészült forrásprogramot (más néven forráskódot) egy fordítóprogram lefordítja gépi kódú programmá gyorsan futtatható a lefordított program a programnyelvek többsége ilyen ( pl. ALGOL, FORTRAN, C, Pascal) Interpreteres programnyelv esetén: az elkészült programot egy interpreter program segítségével futtatják, az utasításonként sorra veszi a forrásprogramot, értelmezi azt, majd végrehajtja más elnevezés ilyen programnyelvekre: szkript nyelvek Példák ilyen nyelvekre: PHP, Bash, ASP, Perl, Javascript, Python, Lua

HTML lapokba ágyazott programok Internetes böngészéskor : HTML lapokba ágyazott programok futhatnak bizonyos szkript nyelveken. Példák erre: Javascript, VBScript, Python, PHP Fajtái: host oldali szkript nyelv: a böngészőben futnak Pl.: Javascript, VBScript szerver oldali szkript nyelv: a webszerveren futnak, nem a böngészőben Pl.: Python, PHP

BASIC példaprogram 10 REM NEGYZETSZAMOK OSSZEGE 20 REM LEGFELJEBB 100-IG TERJEDO SZAMOK 30 DIM P(100), Q(100) 40 A=0 50 INPUT P 60 INPUT Q 70 FOR J=INT(P) TO INT(Q) 80 A=A+J^2 90 NEXT J 100 PRINT A 110 END

Pascal példaprogram program lnko; {legnagyobb közös osztó} var x, y: integer;            { a két szám tárolására} begin   readln(x, y);       { beolvas}   write('LNKO(', x, ',', y, ')=');  { bemenõ adatok}   while x <> y do begin     if x > y then x:= x - y     else y:= y - x;   end;   writeln(x);                { eredmény kiírása } end.

C példaprogram #include <stdio.h> #define ESZ 7 int main (void) { int i, j, s; int tomb[ESZ] = {23, 12, 100, 6, 55, 24, 2}; for (i=ESZ-2; i>=0; i--) { for (j=0; j<=i; j++) { if (tomb[j] > tomb[j+1]) { s = tomb[j]; tomb[j] = tomb[j+1]; tomb[j+1] = s; } printf("A rendezett tomb:\n\n"); for (i=0; i<ESZ; i++) printf("%d ", tomb[i]); return 0;