Matkönyv megjelenítő főoldalProgramraktár főoldal

A programraktár leírása felhasználóknak

A programraktár felépítése

A programraktár alapegysége a modul. Egy modul egy adott feladatot ellátó programegység, egy-vagy több programnyelven megvalósítva. Egy programnyelven történő megvalósítás több fájlból is állhat. Ha a modul ismertetője nem ír mást, a modul használatához az összes fájlt le kell tölteni.

A modulok általában nem kész programok, hanem más programok vagy függvénytárak által használható deklarációkat (eljártásokat és függvényeket, esetleg típusokat) tartalmazó programrészek - Pascalban unitok vagy include fájlok, C-ben, C++-ban header (include) fájlok, részletesebben a Programnyelvek részben. A továbbiakban "a moduol által tartalmazott deklarációk" alatt a modulnak azokat a deklarációit értjük, amelyeket más programból való felhasználásra szántak. Ezek esetleg egyéb (pl. típus-) deklarációk is lehetnek. A modulok tartalmazhatnak kész programot is, ilyenkor nyilván nincs más program számára használható deklaráció.

Egy modul működéséhez igényelheti deklarációk jelenlétét, hiszen éppen ez a lényege a más programok/függvénytárak által használható programrészeknek. Ha egy modul igényel egy deklarációt, használatához le kell tölteni egy olyan modult, ami az igényelt deklarációt az azott programnyelven tartalmazza. Ilyen általában egy van, de azonos funkcionalitású szubrutint több modul is implementálhat. Az igényelt modul fájljait (ha az ismertető nem ír mást) az igénylő modul fájljaival azonos könyvtárba kell helyezni.

Ha két modul ugyanazt az azonosítót, tehát azonos nevű fájlt (ugyanis a több modul által nyújtott azonos nevű szubrutinoknak azonos nevű fájlokból elérhetőnek kell lenniük) tartalmaz, akkor egyszerre nem használhatók, tehát ütköznek.
Ha egy modul igényel egy eljárást, és az ezt tartalmazó modul igényel egy másik eljárást, természetesen ezt a függőséget is fel kell oldani.

A modulokhoz tartozhatnak példák - ha a modul nem teljes program, akkor a programrész programokból való használatát bemutató programok, ha teljes programról van szó, akkor példafájlok. A példák használatához le kell tölteni a modult, és az igényelt eljárásokat tartalmazó modulokat, a példával azonos progamnyelven.

A programraktár használata

Böngészés a modulok között

A modulok között háromféleképpen lehet keresni: A modulok fájlajait is kilistázhatjuk, de ez az azonos fájlnevekből adódó véletlen ütközések elkerülését szolgálja, nem a szükséges modul megkeresését.

A modul oldala

Ha valamelyik listában egy modul nevére kattintunk, a modul oldalára jutunk. Itt a következők jelennek meg:

A példa oldala

A példák oldalán a következők jelennek meg:

Programnyelvek

A programraktárban alapvetően a következő programnyelveket használjuk:

A Pascalt kezeljük elsődleges nyelvként, C++ változat nem feltétlenül elérhető. A letöltésnél TP jelenti a Turbo Pascalt és FP a Free Pascalt.

A Turbo Pascal és a Free Pascal változatok között nem a nyelv az egyetlen különbség. A Turbo Pascal változatoknál általában figyelünk arra, hogy a programkód az iskolai Pascal-tudással is érthető legyen, míg a Free Pascal esetében (ahogy C++-ban is) a leghatékonyabb megoldást választjuk.

A Free Pascal előnyei a Turbo Pascallal szemben:

A GCC C++ fordítója mindezeket az előnyöket tartalmazza, és néhány olyan nyelvi konstrukciót is, amit a Free Pascal nem.

Az általában DOS-ban használt Turbo Pascal forrásfájlok a DOS-ban elterjett 852-es kódlapot (CP852 kódolás) használják, míg a többi forrásfájl ISO-8859-2-t. A fájlok DOS-Windows sorvégeket használnak. Ez a fordítónak és egyes szövegszerkesztőknek Linuxon sem okoz problémát, de a dos2unix paranccsal lehet konvertálni.

A forrásfájlok az egyszerűbb érthetőség és a kompatibilitás érdekében include fájlokként vannak megvalósítva, tehát a fordító számára olyanok, mintha a beillesztés helyén a fájl tartalma lenne.
A beillesztés Pascalban: ha az ismertető nem ír mást, a deklarációs részbe, a beillesztett fájlban lévő azonosító használata előtt kell elhelyezni a következő fordítási direktívát:
{$INCLUDE filename}
, vagy rövid alakban
{$I filename}
, ahol ilename a modul beillesztendő fájljának neve. Legcélszerűbb az összes ilyen direktívát a deklarációs rész elejére, a programnév, és ha van, a uses sor alá helyezni.
A beillesztés C-ben, C++-ban: ha az ismertető nem ír mást, függvényeken kívülre, a beillesztett fájlban lévő deklaráció használata előtt kell elhelyezni külön sorba a következő előfordító direktívát:
#include "filename"
, ahol filename a modul beillesztendő fájljának neve. Legcélszerűbb az összes ilyen direktívát a fájl elejére helyezni.

A feltételes direktívás megoldás miatt nem okoz gondot, ha egy program során egy include fájl többször is betöltésre kerül.