Programozás alapjai. 2. előadás

Hasonló dokumentumok
A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Programozás alapjai GEIAL 312BL. Wagner György Általános Informatikai Tanszék. Programozás alapjai (C)

Programozás alapjai. 5. előadás

Java II. I A Java programozási nyelv alapelemei

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Algoritmizálás és adatmodellezés tanítása 1. előadás

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Java II. I A Java programozási nyelv alapelemei

Programozás alapjai. 7. előadás

Kifejezések. Kozsik Tamás. December 11, 2016

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

Programok értelmezése

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás alapjai GEIAL 312BL. Wagner György Általános Informatikai Tanszék. Programozás alapjai (C)

Programozás alapjai (ANSI C)

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

AWK programozás, minták, vezérlési szerkezetek

Kifejezések. Kozsik Tamás. December 11, 2016

Occam 1. Készítette: Szabó Éva

Programozás alapjai. 10. előadás

Python bevezető foglalkozás Python bevezető foglalkozás

AWK programozás, minták, vezérlési szerkezetek

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Programozás I gyakorlat

Kiterjesztések sek szemantikája

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Mintavételes szabályozás mikrovezérlő segítségével

Delphi programozás IV.

Programozás alapjai. 8. előadás

Programozás I gyakorlat

PASzSz. Dr. Kotsis Domokos

INFORMATIKA javítókulcs 2016

Programzás I gyakorlat

Bevezetés a számítástechnikába

1. Jelölje meg az összes igaz állítást a következők közül!

A Pascal programozási nyelvben minden programnak a következő szerkezete van:

Intermec EasyCoder PM4i nyomtató programozásának alapjai Intermec Fingerprint v8.00 nyelven

Szkriptnyelvek. 1. UNIX shell

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

Algoritmizálás + kódolás C++ nyelven és Pascalban

FUNKCIONÁLIS PROGRAMOZÁS

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

S z á m í t ó g é p e s a l a p i s m e r e t e k

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

Alprogramok, paraméterátadás

Hardver leíró nyelvek (HDL)

Adatbázis és szoftverfejlesztés elmélet

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

1. Alapok. Programozás II

AWK 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. 1. Mi a programozás?

3 A C programozási nyelv szintaktikai egységei

I. A FELADATMEGOLDÁS LÉPÉSEI ÉS MÓDSZEREI

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

7. Strukturált típusok

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Komputeralgebra rendszerek

C programozás. 1 óra Bevezetés

A programozás alapjai

Komputeralgebra rendszerek

LibreOffice Makró Basic

Informatika terméktervezőknek

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

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

Labor gyakorlat Mikrovezérlők

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Gyakorló feladatok Gyakorló feladatok

Programozási nyelvek (ADA)

Matematikai programok

Az algoritmusok alapelemei

A szerzõrõl... xi Bevezetés... xiii

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

ködös határ (félreértés, hiba)

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Történeti áttekintés

Készítette: Nagy Tibor István

Szövegek C++ -ban, a string osztály

Delphi programozás III.

Programozás alapjai GEIAL316G, GEIAL312B-BP

és az instanceof operátor

Az alkalmazásfejlesztés, fordítás Actionscript elemei, a Macromedia Flash rendszer. 1. Az alkalmazásfejlesztés lépései

Bevezetés az informatikába

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Szkriptnyelvek II. Perl programok

Objektumorientált Programozás III.

Programozás alapjai GEIAL316G, GEIAL312B-BP

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM

Változók és adattípusok Változók és adattípusok

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Bevezetés az informatikába

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Eljárások, függvények

Átírás:

2. előadás Általános Informatikai Tanszék

A számítógépes feladatmegoldás eszközei Adatok (Amiken utasításokat hajtunk végre) Utasítások (Amiket végrehajtunk) Program struktúra

Adatok Konstans (a programon belül végig állandó) Változó (a program során más és más értéket vehet fel) Adattípusok (felvehető értékük szerint): numerikus: egész valós szöveges: karakter (character) sztring (string) logikai: (boolean)

Algoritmus (definíció) Egy meghatározott cél elérésére irányuló, egymástól elkülönített tevékenységek alkalmas sorozata, melynek segítségével bizonyos kiindulási helyzetből, végesszámú közbenső állapoton keresztül, előírt feltételeknek eleget tevő véghelyzethez jutunk.

Példa egyszerű numerikus alg.-ra c = a + b vedd a-t vedd b-t képezd a+b -t legyen c = a+b -vel tedd c-t vége

Numerikus algoritmus jellemzői Diszkrét jellegű: Véges sok elemi lépés. (A leírása!!) Determinált (meghatározott): Mindig tudjuk, a következő lépésben mi lesz a teendő. Elemiek a lépések: Már nem függ külső paraméterektől. Célra irányított (teljes): Van egy értékrendszer, ami ezt a célt kifejezi. Ezt akarjuk elérni. Véges: Véges számú lépésben eléri célját. (A megoldása!) Egész feladatosztályra érvényes: A bemenő adatok értelmezési tartománya: minden lehetséges adat.

Algoritmus leírási módok (1) - természetes nyelv (vagy más néven verbális.) Gyors, mindenki által könnyen érthető, de pontatlan. Pl.: kerékcsere: Labilis mozgást érzékelek; jelzek jobbra;leállok; kulcs kikapcs; kézifék be. Amíg nem szállhatok ki, hátranézek. Kiszállok,, szükséges szerszámokat előveszem; Dísztárcsa le, rögzítőcsavart lazít,, emelek, kereket le. Ha van pótkerék, akkor: kiveszem pótkereket, kereket be, pótkereket fel,,légnyomást ellenőriz. Ha megfelel semmit, különben míg meg nem felel pumpál, ellenőriz. Ha nincs, ragaszt, majd pumpál, stb.., majd elindul

Algoritmus leírási módok (2) - folyamat ábra: többféle elterjedt jelölésrendszer létezik. START STOP false i>3 true false true i>3 i=2 i=1 i=2 x=3*j+i 1 1 i, j be x, y ki

Algoritmus leírási módok (3) Pszeudonyelv: elemi utasítások összessége. Olyan vezérlő vagy keret utasítások, amelyek az algoritmus logikai vázát adják. (Pszeudo azért, mert nem programnyelv, hanem viszonylag kötetlen, programnyelvszerű jelölésrendszer. Gyakran emlegetik PDL, azaz Problem Definition Language - probléma leíró nyelv - néven is.) Pl.: program átvált olvas dollár forint = dollár * árfolyam kiír forint vége átvált

Algoritmus leírási módok (3) Hiánya: kódoláskor nem derül ki az adatokról semmi (méret, cél, típus), ezért a PDL leíráshoz mindig hozzátartozik egy ADATLEÍRÁS. Felépítése: azonosító méret típus jelentés Pl.: spoz = x i (i=1...n), ha x i > 0 azonosító n integer az elemek száma spoz real a pozitív elemek összege x(n) real az adatok tömbje i integer ciklusváltozó méret és és típus típus egyben jelentés

Algoritmus leírási módok (4) Metanyelv (a nyelv nyelve ): Sajátos szókészlettel és nyelvtannal rendelkező nyelv, melynek segítségével egy nyelv formai és tartalmi elemzése elvégezhető. Backus-Naur Forma (BNF): Egy szimbólumrendszer a PASCAL nyelv leírásához Szimbólumok: ::= szabály (definíció szerint) választás (vagy) { } ismétlés nullaszor vagy többször < > szintaktikai egység

Algoritmus leírási módok (5) Bármely magas szintű programozási nyelv: PL/1, ADA, FORTRAN, APL, C, C++, JAVA, PASCAL, LISP, stb PROGRAM CNSUME END CHARACTER * 50 BUF DATA NEXT /1/, BUF / / BUF(NEXT:NEXT) = C IF (C.NE. ) END IF WRITE(*, (A) ) BUF SAVE BUFFER, NEXT

A program Számítógépi program: kezelt adatok leírása elvégzendő tevékenységek Programozási nyelv: szimbólumrendszer, melynek segítségével programot írhatunk. Progr. nyelv fő összetevői: karakterkészlet nyelvi elemek kulcsszavak, operátorok azonosítók, konstansok, utasítások szintaktika (nyelvtan) szemantika (jelentéstan) (A repülőgép ezután hajszálait tépdesve kockásan ráugrott a levegőre.)

Azonosítók Mire: konstansok, típusok, változók, eljárások, függvények jelölésére. Szintaxisuk: betűvel kezdődő alfanumerikus karaktersorozat. Az _ (aláhúzásjel) betűnek számít! Maximális hossza 127 karakter, de csak az első 63 a szignifikáns. Hatáskörük: használatuk hatáskörükön belül egyértelmű és kizárólagos. (később pontosítjuk ) Pl.: x, y, x2, Valtozo, _var5, Osszeg, (Standard függvények, eljárások azonosítói: Abs, Sin, Cos, Exp, Sqr, Sqrt, Read, ReadLn, Write, )

Konstansok Számok: decimális egészek (integer): 325, +325, -400, 0 valósok (real): fixpontos: 0.1, +0.1, -0.012 lebegőpontos: 0.1E0, +0.1e-1, 0.0012E+1 Karakterlánc: (Felülvesszők közé írt karakterek) NEV NEV 1 1 semmi ab c ab c

A Free Pascal Érvényes karakterkészlet: A z [ ] ( ) { } < > = + - * /., : ; # $ @ ^ Egy FP program szerkezete: Programfej Deklarációs rész: Címke deklarációs rész Konstans definíciós rész Típus definíciós rész Változó deklarációs rész Eljárás- és függvény deklarációs rész Utasítás rész

FP program felépítése BNF jelölésekkel (1) <program> ::= <programfej> <deklarációs rész> <utasítás rész> <programfej> ::= PROGRAM <azonosító> {(<file azonosító> {, <file azonosító>})}; <azonosító> ::= <betű> {<alfanumerikus karakter>} <file azonosító> ::= <azonosító> <alfanumerikus karakter> ::= <betű> <számjegy> <betű> ::= a b c d e z A B C D E Z <számjegy> ::= 0 1 2 3 4 5 6 7 8 9

FP program felépítése BNF jelölésekkel (2) <Konstans definíciós rész> ::= Const <azonosító> = <konstans>; {<azonosító> = <konstans>;} <Változó deklarációs rész> ::= Var <azonosító> {,<azonosító>} : <típus>; {<azonosító> {,<azonosító>} : <típus>;} <típus> ::= Integer Real (egyelőre, később lesz több típus is.) <Utasításrész> ::= Begin {<utasítás>;} End

Utasítás Eljárás utasítás: (pl.: ReadLn, WriteLn, ) Értékadó utasítás: (az a tevékenység, melynek során egy változó értékét módosítjuk) <változó> := <kifejezés>; Nem BNF!! kifejezés: (konstans vagy változó) operandusokból és operátorokból álló kiértékelhető szerkezet. (pl.: a := 30.0 * Pi / 180.0 ) Pi nem konstans, függvény!

Konstans definíció Azonosítót rendelünk konstans értékhez, kifejezéshez. Ez az azonosító - a konstans neve - szolgáltatja a fordítás alatt a konstans értéket. A program futása alatt nem változtatható!

Változó definíció A memória egy része, ahol a program futása közben más - és más (változó) értékek jelenhetnek meg. Minden változónak van: Neve: a tárolóhely címére utal. Ez a cím egyelőre elérhetetlen. Címe: a memória területet azonosítja. Típusa: a névvel címzett memóriarész értelmezése (a programozó szemszögéből!) Aktuális értéke (tartalma): a névvel címzett memóriarész (tároló) tartalma egy adott időpillanatban. Érvényességi köre: a program azon része, amelyben a változóra a nevével érvényesen hivatkozni lehet.

Free Pascal képernyője (1) 4 fő részből áll: felső sor (menü) szerkesztési (edit) ablak a másik ablak (Watch - figyelő vagy Output - eredmény ablak) alsó, információs sor

Free Pascal képernyője (2) Watch File Edit Compile Run Help Program Elso; Begin WriteLn( Hip-hip hurrá! ); End. ALT-F6 Hip-hip hurrá! F1 Help F2 Save F3 Open... Menüsor: F10 Szerkesztési ablak Fordítás: ALT-F9 Futtatás: CTRL-F9 Output Információs sor