Cekla. Készítette Doxygen Tue Sep :13:44

Hasonló dokumentumok
Pénzügyi algoritmusok

3. Osztályok II. Programozás II

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

C programozási nyelv

C++ programozási nyelv Konstruktorok-destruktorok

II. rész. Cékla: deklaratív programozás C++-ban. Tartalom. Imperatív és deklaratív programozási nyelvek. A deklaratív programozás jelmondata

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Kivételek, kivételkezelés a C++ nyelvben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Pénzügyi algoritmusok

A C++ szigorúbban kezeli a típuseltéréseket, mint a C nyelv Lehetséges típuskonverziók:

1. Alapok. Programozás II

ISA szimulátor objektum-orientált modell (C++)

Deklaratív Programozás

Programozási nyelvek JAVA EA+GY 1. gyakolat

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Programozás C és C++ -ban

Bevezetés a programozásba I.

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

Web-technológia PHP-vel

Apple Swift kurzus 3. gyakorlat

Bevezetés a programozásba I.

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

Programozás I gyakorlat

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

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

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

Programozás II. 6.Öröklés Dr. Iványi Péter

A C programozási nyelv II. Utasítások. A függvény.

Informatika terméktervezőknek

500. CC Megoldó Alfréd CC 500.

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Felhasználó által definiált adattípus

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Java programozási nyelv 6. rész Java a gyakorlatban

1.AA MEGOLDÓ BERCI AA 1.

Bevezetés a programozásba Előadás: A const

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

Mobil Informatikai Rendszerek

A programozás alapjai 1 Rekurzió

Kivételkezelés a C++ nyelvben Bevezetés

The modular mitmót system. DPY kijelző kártya C API

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

Programozás alapjai II. (4. ea) C++

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

és az instanceof operátor

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

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

Programozás I. 5. Előadás: Függvények

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Bevezetés, a C++ osztályok. Pere László

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

C++ Standard Template Library (STL)

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

Szoftvertechnolo gia gyakorlat

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Osztály és objektum fogalma

Programzás I gyakorlat

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} };

#include <iostream> using namespace std; // struct macska is lehetne class macska { public: int kor; int suly; }; void main() { macska cirmi;

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

500. DD Megoldó Alfréd DD 500.

Programozás C++ -ban 2007/7

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás I gyakorlat

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Szkriptnyelvek. 1. UNIX shell

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

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

Programozás(A szakirány) II. beadandó feladat Farkas András HP6S15 1. csoport Veszprémi Anna / Hudoba Péter

Programozás II gyakorlat. 6. Polimorfizmus

C++ Gyakorlat jegyzet 7. óra

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

FUNKCIONÁLIS PROGRAMOZÁS

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

BME MOGI Gépészeti informatika 4.

Objektumok inicializálása

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

feladat pont min elért

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

C# osztályok. Krizsán Zoltán

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Programozási Nyelvek: C++

Átírás:

Cekla Készítette Doxygen 1.7.1 Tue Sep 20 2011 14:13:44

TARTALOMJEGYZÉK 1 Tartalomjegyzék 1. Cekla C++ könyvtár deklaratív C++-hoz 1 2. Modulmutató 1 2.1. Modulok............................................ 1 3. Osztálymutató 2 3.1. Osztálylista.......................................... 2 4. Fájlmutató 2 4.1. Fájllista............................................ 2 5. Modulok dokumentációja 2 5.1. CeklaList........................................... 2 5.1.1. Részletes leírás.................................... 3 5.1.2. Függvények dokumentációja............................. 3 5.1.3. Változók dokumentációja.............................. 5 5.2. CeklaFunctional........................................ 5 5.2.1. Részletes leírás.................................... 5 6. Osztályok dokumentációja 6 6.1. list osztályreferencia..................................... 6 6.1.1. Részletes leírás.................................... 6 6.1.2. Konstruktorok és destruktorok dokumentációja................... 6 6.1.3. Tagfüggvények dokumentációja........................... 7 7. Fájlok dokumentációja 7 7.1. cekla.h fájlreferencia..................................... 7 7.1.1. Részletes leírás.................................... 9 1. Cekla C++ könyvtár deklaratív C++-hoz Installálás Helyezzük a cekla.h fájlt a forrásfájlokkal egy könyvtárba, vagy a header fájlok keresési útvonalába. Vagy GCC esetén a CPATH környezeti változót állítsuk a cekla.h-t tartalmazó könyvtárra, például export CPATH=/opt/cekla/include. A konfiguráció teszteléséhez egy rövid példa: #include "cekla.h" int is_empty(const list L) { return L == nil; } int main() { writeln(is_empty(nil));

2 Modulmutató 2 } writeln(is_empty(cons(10, nil))); Használat Listákhoz (lásd a CeklaList modult) vagy függvénytípusokhoz (lásd a CeklaFunctional modult), használjuk az include "cekla.h" direktívát. Nem-deklaratív függvényhívások is megengedettek pl. writeln-t utasítások között hibakereséshez például használhatjuk a Gépeljük be a help; parancsot a Cekla értelmezőjében a megengedett szintaxishoz. Fontos makrók Szerző NDEBUG: ha definiáljuk, a write, writeln hívások nem írnak ki debug információt (a hívás sorszámát a forráskódban). ENABLE_SHARED_PTR: bekapcsolja a szemétgyűjtést megakadályozva a memóriaszivárgást, de lehetetlenné teszi a GCC-nek, hogy optimalizálja a jobbrekurzív függvényeket. Copyright (C) 2011, BME Deklaratív Programozás http://dp.iit.bme.hu/ $Revision: 320 $ 2. Modulmutató 2.1. Modulok A modulok listája: CeklaList 2 CeklaFunctional 5 3. Osztálymutató 3.1. Osztálylista Az összes osztály, struktúra, unió és interfész listája rövid leírásokkal: list (Egészek listája ) 6 4. Fájlmutató 4.1. Fájllista Az összes dokumentált fájl listája rövid leírásokkal:

5 Modulok dokumentációja 3 cekla.h (Cekla C++ könyvtár ) 7 5. Modulok dokumentációja 5.1. CeklaList Listakezelés C++-ban. Osztályok class list Egészek listája. Függvények list cons (int Head, const list Tail) Visszaad egy új listát, aminek első eleme Head, a farka a Tail lista. int hd (const list L) Visszaadja a nemüres L lista fejét. list tl (const list L) Visszaadja a nemüres L lista farkát. template<typename any_type > void write (const any_type &X) Kiírja X-et a standard kimenetre. template<typename any_type > void writeln (const any_type &X) list l () Kiírja X-et a standard kimenetre, és egy újsorjelet. list l (int E) list l (int E1, int E2) list l (int E1, int E2, int E3) list l (int E1, int E2, int E3, int E4)

5.1 CeklaList 4 list l (int E1, int E2, int E3, int E4, int E5) list l (int E1, int E2, int E3, int E4, int E5, int E6) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8, int E9) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8, int E9, int E10) Változók const list nil = "" Az üres lista. 5.1.1. Részletes leírás Listakezelés C++-ban. 5.1.2. Függvények dokumentációja 5.1.2.1. list cons ( int Head, const list Tail ) Visszaad egy új listát, aminek első eleme Head, a farka a Tail lista. Paraméterek Head Az elem lesz az új lista első eleme. Tail A lista lesz az új lista többi eleme. Visszatérési érték A felépített lista. Futási idő: O(1). Például: cons( H, cons( e, cons( l, cons( l, cons( o, nil))))) == "Hello".

5.1 CeklaList 5 5.1.2.2. int hd ( const list L ) Visszaadja a nemüres L lista fejét. Visszatérési érték L első eleme. Futási idő: O(1). Például: hd("hello") == H. 5.1.2.3. list l ( int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8, int E9, int E10 ) Például: const list L = l(10,20,30,40,50,60,70,80,90,0); 5.1.2.4. list tl ( const list L ) Visszaadja a nemüres L lista farkát. Visszatérési érték L lista elemei, az első elem kivételével. Futási idő: O(1). Például: tl("hello") == "ello". 5.1.2.5. template<typename any_type > void write ( const any_type & X ) Kiírja X-et a standard kimenetre. Paraméterek X Típusa lehet int, sztringkonstans vagy lista. Ha a lista nemcsak 32..126 közötti számokat tartalmaz, egész listaként íródik ki (pl. [10, 20, 30]), különben karakterkód-listaként (pl. "hello"). 5.1.2.6. template<typename any_type > void writeln ( const any_type & X ) Kiírja X-et a standard kimenetre, és egy újsorjelet. Lásd még write.

5.2 CeklaFunctional 6 5.1.3. Változók dokumentációja 5.1.3.1. const list nil = "" Az üres lista. A nil == "" teljesül. Használható egy lista vizsgálatára, hogy üres-e: tl("e") == nil, vagy lista építésére: cons( H, cons( e, cons( l, cons( l, cons( o, nil))))) == "Hello". 5.2. CeklaFunctional Típusok magasabbrendű függvényekhez. Típusdefiníciók typedef int( fun1 )(int) Egyparaméteres függvénytípus magasabbrendű függvényekhez. typedef int( fun2 )(int, int) Kétparaméteres függvénytípus magasabbrendű függvényekhez. 5.2.1. Részletes leírás Típusok magasabbrendű függvényekhez. Egész-függvények átadására használhatóak. Például az alábbi program kimenete 1: #include "cekla.h" // Returns true if Predicate(X) is true for some element X of list L int contains(const fun1 Predicate, const list L) { if (L == nil) return 0; else if (Predicate(hd(L))) return 1; else return contains(predicate, tl(l))); } int even(const int x) { return x % 2 == 0; } int main() { const list L = cons(1, cons(2, cons(3, nil))); write(contains(even, L)); // prints if L contains even number } 6. Osztályok dokumentációja 6.1. list osztályreferencia Egészek listája. #include <cekla.h>

6.1 list osztályreferencia 7 Publikus tagfüggvények list (const char S) throw (std::logic_error) Felépíti a karakterkódok listáját. list (std::initializer_list< int > S) Felépíti listát az inicializáló lista számaiból. bool operator== (const list &Rhs) const Összehasonlít két listát. bool operator!= (const list &Rhs) const Összehasonlít két listát. 6.1.1. Részletes leírás Egészek listája. Sztring (C-nyelvű karaktertömb, pl. "hello") karakterkódok listájának tekintendő a lezáró \0 nélkül. Például: cons(72, cons(101, cons(108, cons(108, cons(111, nil))))) == "Hello". 6.1.2. Konstruktorok és destruktorok dokumentációja 6.1.2.1. list::list ( const char S ) throw (std::logic_error) Felépíti a karakterkódok listáját. Kivételek std::logic_error ha a paraméter NULL pointer. Hasznos sztring implicit konverziójához, például const list L1 = "Hello", L2 = "";, vagy X = tl("hello") rövidíti az alábbit: X = tl(cons( H, cons( e, cons( l, cons( l, cons( o, nil)))))). 6.1.2.2. list::list ( std::initializer_list< int > S ) Felépíti listát az inicializáló lista számaiból. Csak C++0x és ENABLE_INITIALIZER_LIST definálása esetén elérhető. Például: tl({10, 20, 30}). 6.1.3. Tagfüggvények dokumentációja 6.1.3.1. bool list::operator!= ( const list & Rhs ) const Összehasonlít két listát.

7 Fájlok dokumentációja 8 Visszatérési érték Igaz (nem nulla), ha a két lista nem egyezik. Lásd még operator== 6.1.3.2. bool list::operator== ( const list & Rhs ) const Összehasonlít két listát. Visszatérési érték Igaz (nem nulla), ha a két lista egyezik. Ez a dokumentáció az osztályról a következő fájl alapján készült: cekla.h 7. Fájlok dokumentációja 7.1. cekla.h fájlreferencia Cekla C++ könyvtár. Osztályok class list Egészek listája. Típusdefiníciók typedef int( fun1 )(int) Egyparaméteres függvénytípus magasabbrendű függvényekhez. typedef int( fun2 )(int, int) Kétparaméteres függvénytípus magasabbrendű függvényekhez. Függvények list cons (int Head, const list Tail) Visszaad egy új listát, aminek első eleme Head, a farka a Tail lista. int hd (const list L)

7.1 cekla.h fájlreferencia 9 Visszaadja a nemüres L lista fejét. list tl (const list L) Visszaadja a nemüres L lista farkát. template<typename any_type > void write (const any_type &X) Kiírja X-et a standard kimenetre. template<typename any_type > void writeln (const any_type &X) list l () Kiírja X-et a standard kimenetre, és egy újsorjelet. list l (int E) list l (int E1, int E2) list l (int E1, int E2, int E3) list l (int E1, int E2, int E3, int E4) list l (int E1, int E2, int E3, int E4, int E5) list l (int E1, int E2, int E3, int E4, int E5, int E6) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8, int E9) list l (int E1, int E2, int E3, int E4, int E5, int E6, int E7, int E8, int E9, int E10) Változók const list nil = "" Az üres lista.

7.1 cekla.h fájlreferencia 10 7.1.1. Részletes leírás Cekla C++ könyvtár.

Tárgymutató cekla.h, 7 CeklaFunctional, 5 CeklaList, 2 cons, 3 hd, 4 l, 4 nil, 5 tl, 4 write, 4 writeln, 5 cons CeklaList, 3 hd CeklaList, 4 l CeklaList, 4 list, 6 list, 6 operator==, 7 nil CeklaList, 5 operator== list, 7 tl CeklaList, 4 write CeklaList, 4 writeln CeklaList, 5