A KÓDOLÁS TECHNIKAI ELVEI



Hasonló dokumentumok
Programtervezés. Dr. Iványi Péter

A C# programozási nyelv alapjai

Regionális forduló november 19.

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

Regionális forduló november 19.

Java programozási nyelv

Forráskód formázási szabályok

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

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

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

Regionális forduló november 18.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programzás I gyakorlat

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

C programozási nyelv

INFORMATIKAI ALAPISMERETEK

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

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?

Információtartalom vázlata

Tájékoztató. Használható segédeszköz: számológép

Programozási alapismeretek 1. előadás

Bevezetés az informatikába

Osztályok. 4. gyakorlat

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

Időkönyvelő Projektfeladat specifikáció

Fordítóprogramok. Aszalós László szeptember 7.

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei

Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Webprogramozás szakkör

Webprogramozás szakkör

Web-programozó Web-programozó

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

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

Objektumorientált Programozás III.

A C programozási nyelv I. Bevezetés

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

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

PROGRAMKÉSZÍTÉS LÉPÉSEI, PROGRAMOZÁSI ELVEK

Vezérlési szerkezetek

Programozási nyelvek (ADA)

Regionális forduló november 30.

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

A dokumentáció felépítése

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Szoftvertervezés és -fejlesztés I.

A C programozási nyelv I. Bevezetés

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

INFORMATIKAI ALAPISMERETEK

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

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

Egyes esetekben e fejezet keretében készítjük el a Tartalomjegyzéket is, melynek technikai megvalósításáról majd az fejezetben olvashat.

Programozás I. gyakorlat

Szelekció. Döntéshozatal

Az informatika kulcsfogalmai

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

A C# PROGRAMOZÁSI NYELV

Gyakorló feladatok Gyakorló feladatok

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

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával

4. Javítás és jegyzetek

ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK

Aritmetikai kifejezések lengyelformára hozása

INFORMATIKAI ALAPISMERETEK

Okos gyógyszeres doboz Projektfeladat specifikáció

Dokumentáció. 1. Beadandó feladat

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

INFORMATIKAI ALAPISMERETEK

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

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

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

1. gyakorlat

Szövegszerkesztés alapok

Flex tutorial. Dévai Gergely

Adatszerkezetek I. 1. előadás

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

AWK programozás Bevezetés

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Minta felvételi feladatsor programozásból

Már megismert fogalmak áttekintése

Eljárások és függvények

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

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

Adatbázis és szoftverfejlesztés elmélet

A fizetendő összegből a 35 év fölötti tulajdonos 20 % kedvezményt kap.

Objektumorientált Programozás VI.

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

Programozás 1. Dr. Iványi Péter

Podoski Péter és Zabb László

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Átírás:

1. A KÓDOLÁS FOGALMA A KÓDOLÁS TECHNIKAI ELVEI A kódolás a forrásnyelvű (pl. C#, Java) program elkészítését jelenti. Ha a megoldást gondosan megterveztük, akkor ez általában már csak rutinszerű, technikai jellegű művelet. Ez persze csak akkor igaz, ha ismerjük az adott programozási nyelv szintaktikai szabályait. 2. A PROGRAMTERV ÉS A FORRÁSKÓD KAPCSOLATA A kódolás szigorúan a programterv, illetve az algoritmus alapján történjen! Kódolás közben soha ne változtassunk önkényesen az algoritmus egyes részein, ez súlyos hibák forrása lehet! Ha esetleg kódolás közben derül ki, hogy programterv hibás, akkor gondoljuk át újra a teljes algoritmust, adatszerkezetet, vagy objektumhierarchiát, majd ezután térjünk vissza a kódoláshoz. A forráskód az algoritmushoz képest általában lényegesen terjedelmesebb. Ez természetes, hiszen a programterv ideális esetben csak a megoldás vezérfonalát tartalmazza, a program logikája szempontjából másodlagos jelentőségű eljárásokat, programsorokat nem. 3. A FORRÁSKÓDDAL KAPCSOLATOS ELVÁRÁSOK 3.1 Szintaktikailag hibátlan forráskód A programozási nyelvek szintaktikai szabályai meghatározzák, hogy az adott nyelvben milyen o kulcsszavak o struktúrák o azonosítók és o speciális szimbólumok alkalmazhatók. A különböző programozási nyelvek pontos szintaktikai szabályait a referenciakézikönyvek tartalmazzák. Ha az elkészített forráskód szintaktikai hibát tartalmaz, akkor a fordítóprogram nem tudja abból elkészíteni a futtatható programot. Ezért a programkóddal kapcsolatos legfontosabb elvárásunk az, hogy legyen szintaktikailag hibátlan. A programozói rendszerek fordítás előtt ellenőrzik a megírt programot, és csak kifogástalan forráskód esetén hajtják végre a fordítást. 1

Általában már az első szintaktikai hibánál üzenetet kapunk, a hiba jellegének a meghatározásával. 3.2 A forráskóddal kapcsolatos további elvárások A kód legyen stuktúrált, tagolt, tömör, jól áttekinthető. Ezt a következő módszerekkel alkalmazásával érhetjük el: o Csak a szabályos struktúrákat (szekvencia, elágazás, ciklus) alkalmazzuk, kerüljük az ugrásokat. (Utóbbit a programozási nyelvek egy rész nem is támogatja.) o Kerüljük a redundanciát, az ismétlődő részeket ne kódoljuk többszörösen, írjunk ezekre metódust, függvényt! o Alkalmazzuk a bekezdéses leírást. A ciklusmagokat, ill. az elágazások ágait húzzuk egy tabulátorpozícióval beljebb. Így jól látható, hogy mit tartalmaz a ciklusmag, és jól megfigyelhetőek az egymásba ágyazott szerkezetek is. o Tördeljük a programsorokat! Ne írjunk egy sorba több utasítást. A nagyon hosszú logikai sorokat tördeljük több fizikai sorba. o Alkalmazzuk az üres struktúrák módszerét! Az eljárásokat, a ciklusokat és elágazásokat (ha lehetőségünk van rá) először üresen írjuk meg, majd utólag írjuk be az utasításokat. Így biztosan nem feledkezünk meg egy-egy struktúra lezárásáról. A tesztelésnél is hasznos lehet, hogy már akkor is szintaktikailag helyes a programunk, ha a sorok egy részét még nem kódoltuk. A tagolt, áttekinthető forráskód a legfontosabb biztosítéka a szintaktikai hibák elkerülésének, illetve a program karbantarthatóságának, továbbfejleszthetőségének. Alkalmazzunk beszédes azonosítókat! o Az osztályok, metódusok, változók neve ne egy-egy karakter, vagy érthetetlen rövidítés legyen! o Bátran használjunk hosszú, értelmes neveket, de kerüljük a túlzásokat! Döntsük el, hogy milyen nyelven programozunk! o Ha magyar nyelvű azonosítókat használunk, akkor legyünk ebben következetesek, ne keverjünk a programunkba angol elnevezéseket! o Csak akkor alkalmazzunk angol nyelvű azonosítókat, ha ehhez megfelelő nyelvtudással rendelkezünk. 2

Ne alkalmazzunk túlságosan egyéni stílust! o Általában minden programozási nyelvnek megvan a maga standard stílusa, melyet érdemes követni. Alkalmazzunk megjegyzéseket! o Néhány jellemző példa kommentek használatára fontos változók leírása metódusok tömör specifikációjára, a paraméterek magyarázatára bonyolult kódrészletek magyarázatára a figyelem felhívása a kód egy lényeges részletére, amely valószínűleg hibás o Egy jól megírt programot természetesen nem kell sorról-sorra magyarázatokkal teletűzdelni. o A beszédes azonosítók alkalmazásával a kommentek mennyiségét csökkenthetjük. Törekedjünk arra, hogy az elkészült programkód újra felhasználható legyen. o Lehetőleg komplett modulokat, objektumkönyvtárakat készítsünk. 3.3 A kódolási konvenció fogalma A kódolási konvenciók a programozók által alkalmazott olyan a kódolási szokások, amelyek alkalmazása növeli a program áttekinthetőségét, érthetőségét. Lehet olyan programkódot készíteni, amely szintaktikailag hibátlan, de nem követ semmiféle kódolási konvenciót. o Az ilyen programkód értelmezése sokkal nehezebb. A kódolási konvenciók alkalmazása feltétlenül szükséges, ha egy nagyobb programon, projekten több programozó dolgozik, és egymás kódját kell értelmezniük. illetve továbbfejleszteniük. A kódolási konvenciókat még abban az esetben is érdemes követni, ha a fejlesztő egyedül végzi a kódolást. o A konvenciók betartása a kód készítőjét is segíti a további fejlesztésben. o A kézikönyvek, illetve online programozói portálok példái biztos, hogy követik a szokásos konvenciókat. 3.3.1 Általános kódolási konvenciók. Vannak olyan kódolási szokások, amelyeket programozási nyelvtől függetlenül érdemes alkalmazni. o Elnevezési konvenciók Alkalmazzunk beszédes azonosítókat! A korszerű, 4GL programozói környezetek által automatikusan generált azonosítókat (pl. Textbox1) helyettesítsük saját elnevezéssel! 3

Hasznos lehet a változó neve előtt néhány karakterrel utalni a változó típusára, pl. az előző példát folytatva: tbname. Ezt a kódolási konvenciót Charles Simonyi magyar származású programozó találta ki, akiről ezt Hungarian notation-nak, azaz magyar jelölésnek is nevezik. o Tördelési konvenciók Egy fizikai sorba ne írjunk több logikai sort. A nagyon hosszú logikai sorokat tördeljük több fizikai sorba. Nem szerencsés, ha egy programsor vége a képernyőn nem látható. A hosszú sorok tördelését úgy oldjuk meg, hogy a kód áttekinthetősége emiatt ne romoljon. Pl. az áttördelt folytatást is húzzuk beljebb. Néha szerencsés sok részfeltételből álló összetett feltételeket úgy tördelni, hogy a részfeltételek egymás alá kerüljenek Nagyon hosszú műveletsor esetén is célszerű a műveleti jelek mentén tördelni a sort. Több azonos típusú változó, vagy adattag bevezetése esetén minden változót, illetve adattagot külön sorban vezessünk be, ne egy sorban soroljuk fel őket. Így jobban áttekinthető a bevezetett adatok száma Külön sorokban szükség esetén minden adatot kommenttel egészíthetünk ki. o Nyelvi konvenciók Mivel a programozási nyelvek kulcsszavai és azonosítói angol nyelvűek, ezért érdemes angol nyelvű változóneveket, metódusneveket alkalmazni. Így a kód sokkal egységesebb lesz, mint kevert nyelvű azonosítókkal. Nemzetközi munkacsoport esetében rendkívül zavaró, ha magyarul nem tudóknak olyan kódot kell értelmezniük, amelyben magyar azonosítók találhatók. Azt mindenképpen kerüljük el, hogy még az általunk bevezetett azonosítók esetében is keverjük a nyelvet! o Kommentelési konvenciók A komment legyen rövid, lényegre törő. Ha lehet, egysoros kommentet alkalmazzunk, közvetlenül a programsor után, tördelés nélkül. Olyasmit ne kommenteljünk, ami egyértelműen kikövetkeztethető a kódból. A kommenteket is lehetőleg angol nyelven fogalmazzuk meg. o Változók bevezetése A változókat lehetőleg mindig a blokk elején, együtt vezessük be Érdemes a deklarálással egyidejűleg kezdőértékkel is ellátni. 4

3.3.2 Személyes kódolási konvenciók Vannak olyan kódolási szokások, amelyek lényegében a személyes ízléstől függenek. Például: o Egy ciklusmag kezdetét jelző kapcsos zárójelet tehetjük közvetlenül a ciklusfej sorába, vagy az azt követő sorba. o Logikai kifejezésekben alkalmazhatunk teljes zárójelezést akkor is, ha az adott nyelv ezt nem követeli meg. o A behúzások mértéke egyéntől függhet Lehet egy tabulátor pozíció, vagy akár csak egy-két szóköznyi. o Üres sorok beszúrásával tagolható a kód Az egyes metódusok, programegységek között az üres sorok javítják az áttekinthetőséget. Sok változó együttes deklarálása esetén üres sorokkal jól lehet csoportosítani a logikailag összetartozó változókat. A személyes konvenciók alkalmazása o Lényeges, hogy az ilyen személyes konvenciókat ne keverjük programon belül! o Csoportmunka esetében a többiekkel egyeztetni kell, és alkalmazkodni a többség szokásaihoz. o Ne alkalmazzunk túlságosan egyéni stílust! Általában minden programozási nyelvnek megvan a maga standard stílusa, melyet érdemes követni. 3.3.3 Programozási nyelvekhez kötődő kódolási konvenciók o Pl. a Java nyelv néhány konvenciója: Osztálynevek: főnevek nagy kezdőbetű, szóhatárokon is nagybetű Metódusnevek: igék kis kezdőbetű, szóhatárokon nagybetű Változónevek kis kezdőbetű, szóhatárokon nagybetű Konstansok neve csupa nagybetű, szóhatárokon aláhúzás jel Metódustörzs kezdetét jelző kapcsos zárójel közvetlenül a metódusfej után o Hasonló konvenciók megfogalmazhatóak a C# nyelvben is 5