Nagy HF ke szı te si u tmutato

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Nagy HF ke szı te si u tmutato"

Átírás

1 A programozás alapjai 1. BMEVIHIAA01 Nagy HF ke szı te si u tmutato Analízis és Specifikáció (Nyelv független) 0. A Házi feladat témája 1. A Házi feladat téma szöveges leírása 2. A feladat résztvevőinek azonosítása 3. A résztvevők közti kapcsolatok elemzése 4. A résztvevők alapvető tulajdonságai 5. Alapvető feladatok 6. A fájlok tartalma 7. Minta Specifikáció 8. Adatszerkezetek leírása Tervezés (C nyelv) 9. Szükséges tulajdonságok és adattípusok összerendelése 10. Adatszerkezetek megvalósítása 11. Alap funkciók ismertetése 12. További funkciók és számítások Implementálás (C nyelv) 13. Adattípusok elkészítése 14. Függvények megírása 15. Adatok mentése/visszatöltése fájlból. 16. A konkrét feladat megoldása függvényként

2 Nagy HF pe lda Analízis (Nyelv független) 0. A Házi feladat témája Formula-1 1. A Házi feladat téma szöveges leírása Mindenképpen tartalmazza, hogy a programot Ki és elsősorban Mire fogja használni? A Forma-1-es program esetében egyáltalán nem mindegy, hogy a nézők tájékoztatására, a Forma-1- es pilótáknak, vagy éppen a mérnökök számára készítjük a programot. o A példában a nézők tájékoztatására írjuk, a programot elsősorban a kommentátorok használják majd. Tisztázzuk, hogy miből mennyi adatot szeretnénk nyilvántartani. Egy futam vagy több futam eredményei? Időmérő eredmények vagy a verseny eredmények, esetleg mind a kettő? Versenyzők száma? Csapatok kezelése? Kiállások kezelése? Szektoridők kezelése? Egy futam a verseny eredményei több Nem Igen Nem Írjunk fel néhány kérdést, amelynek megválaszolására a programot szeretnénk felkészíteni. Kezdjük a legalapvetőbb kérdésekkel, utána mutassunk összetettebb példákat is. o Ki nyerte a futamot? o Mennyi idővel nyert a nyertes? o Ki futotta a leggyorsabb kört? o Kinél tartott legrövidebb ideig a kerékcsere? o Ki lett az első három helyezett? o Kik estek ki a futamon? o Ki vesztette a legtöbb helyezést a rajtpozíciójához képest? o Ezután válasszunk ki 1-2 bonyolult kérdést, amivel a program képességei szeretnénk megmutatni o Ki volt az a versenyző, aki a x. körben a leggyorsabb kört futotta? o Melyik pilótának volt a legtöbb előzése a futamon?

3 2. A feladat résztvevőinek azonosítása A feladat szempontjából lényeges résztvevőket kell azonosítani, nem biztos, hogy élőlény, lehet például Tantárgy, Szoba, Nyeremény stb. Ehhez célszerű a feladatban szereplő főneveket elemezni. Ha valamelyik felesleges, vagy pedig hiányzik valami, az később úgyis ki fog derülni. A feladat szövegéből a következő résztvevőket azonosítottam (3-4 résztvevőnél több ne legyen): Verseny Versenyző 3. A résztvevők közti kapcsolatok elemzése Kapcsolat típusa lehet: 1:1, 1:több, több:több i. Verseny Versenyző (a versenyen több versenyző versenyez) 1:több ii. Versenyző (egy versenyzőhöz több időeredmény tartozik) 1:több Ha a résztvevőket jól azonosítjuk, akkor a kapcsolatok feltérképezése is egyszerű feladat. Vesszük az összes lehetséges résztvevőt, és megnézzük, hogy közöttük értelmezhető-e valamilyen kapcsolat, ha igen, akkor felvesszük a listára. Amennyiben tévedünk, akkor a feladathoz feltett kérdéseinkkel próbáljunk rájönni a hibára. Hiba: az időeredmény helyett csak annyit írunk fel, hogy eredmény a résztvevőkhöz. Ekkor a verseny eredmény (1:1) kapcsolat is értelmezhetőnek tűnik, hiszen a versenynek is van eredménye. Ellenben, ha megnézzük, a kérdéseinket, akkor abból világosan látszik, hogy szükségünk van a részeredményekre is. A verseny eredménye pedig a részeredményekből adódik majd össze. Probléma0: Mi az eredmény? Megoldás0: Hát az attól függ, hogy milyen versenyről van szó. A Formula-1-ben a futamon az nyer, aki először halad át a célvonalon, tehát, aki a legrövidebb idő alatt teljesíti a versenyt. A verseny - időeredmény kapcsolat pedig már nem értelmezhető, csak versenyzőnként ezért a versenyző időeredmény kapcsolatot vettük fel. Amennyiben a mindkét irányban értelmezett kapcsolatok közül (Pl: Versenyző 1:T / Versenyző 1:1) az egyik egyértelmű (1:1), akkor ez szintén elhagyható. 4. A résztvevők alapvető tulajdonságai Verseny: Helyszín: szöveg Körök száma: egész szám Versenyző: Rajtszám: egész szám Név: szöveg Rajtpozíció: egész szám : Idő: Idő, ezred másodperc pontossággal Típus: köridő / boksz kiállás ideje

4 5. Alapvető feladatok Itt kell meggondolni, hogy milyen alapvető feladatokra lesz szükségünk az adatok kezeléséhez, amit résztvevőnként célszerű felsorolni. Verseny adatok felvétele. Versenyző felvétele a versenyhez Versenyző törlése a versenyből (például nem minden versenyző indul végül a futamon) felvétele a versenyzőhöz 6. A fájlok tartalma A verseny és a versenyzők adatait egy szöveges fájlban tároljuk el, míg a versenyzők időeredményeit bináris fájlból olvassuk be. A fájlok a következőképpen néznek ki: Verseny.txt 1. sor: Verseny helyszín: szöveg 2. sor: Körök száma: egész szám 3. sor: Üres sor 4. sortól: Rajtpozíció<TAB>Rajtszám<TAB> Versenyző neve (3 karakter) Monaco MSC 22 WEB 38 ROS 44 HAM 510 GRO 65 ALO 76 MAS 89 RAI 918 MAL 101 VET Ido.dat Rajtszám: előjel nélküli egész Idő: tört szám Típus: 1 karakter ( K =köridő, vagy B =boxkiállás ideje) Házi Feladathoz Specifikációt kell készíteni és beadni!!! A Specifikáció az Analízis rész eredményének leírását tartalmazza!

5 7. Specifikáció Formula-1 A feladat egy Formula-1-es verseny adatait rögzítő program készítése. A program a nézők számára szolgáltat hasznos információkat egy Formula-1-es futamról. A program csak a versenyben szereplő adatokat dolgoz fel, az időmérő edzésen elért időeredményekkel nem foglalkozik. A program a versenyen résztvevő összes versenyző eredményeit képes kezelni. A versenyzők csapataival a program nem foglalkozik. A program képes versenyen elért köridőket és a kiállások idejét is kezelni, a szektoridőket viszont külön nem tartja nyílván. A program az kérdéseket a pilótákhoz rendelt köridők, illetve a bokszkiállások ideje alapján képes megválaszolni. A versenyen több versenyző is indulhat, továbbá minden versenyző összes bokszkiállását, illetve köridejét a program nyilvántartja. A program a kérdés megválaszolásához a szükséges adatokat 2 adatállományban tárolja. Az egyik szöveges és a következő adatokat tartalmazza: Az első sorban a Verseny helyszínét szöveges formátumban, majd a következő sorban a verseny köreinek számát egész számként ábrázolva, a következő sor üres, a további sorokban a versenyen induló versenyzők Rajtpozíciója (egész szám), Rajtszáma (egész szám), valamint a Versenyző 3 betűs kódja szerepel tabulátorral elválasztva egymástól. A másik állomány bináris, melyben az időeredményeket tároljuk. Az állomány minden tagja egy-egy időeredmény bejegyzésnek felel meg, amely a következőket tartalmazza rendre: Rajtszám(egész szám), (törtszám), Típus ( K vagy B karakter) A program konkrét feladata, hogy a következő kérdésre tudjon válaszolni: Ki volt az a versenyző, aki a 23. körben futotta a leggyorsabb körét?

6 8. Adatszerkezetek leírása Itt a feladatban szereplő résztvevők közti kapcsolatokból érdemes kiindulni. A résztvevők természetes kapcsolatait célszerű az adatszerkezetnek is követnie. A végeredménynek tartalmaznia kell: A feladat részvevőinek darabszámát a feladat specifikációja szerint: o biztosan csak van o több darab, de előre tudható, hogy pontosan mennyi o több darab, de számuk előre nem ismert A résztvevők közt milyen kapcsolat van o 1:1 o 1:több A kapcsolatot milyen egyedi azonosító biztosítja, amennyiben nem találunk ilyet, akkor vegyünk fel valamilyen egyedi azonosítót. Amennyiben egyértelmű a kapcsolat, akkor ez elhagyható. Ellenőrizzük, hogy a specifikációban szereplő fájlok tartalmazzák-e a kapcsolatok biztosításához szükséges azonosítókat! Adatszerkezetek ábrázolása A végeredmény tehát az összefüggő adatokat rendszerezve mutatja be, ami a kérdések megválaszolását segíti. Az egymástól független adatok pedig külön-külön adatszerkezetet alkotnak. A Forma-1 feladat adatszerkezete Résztvevők: Verseny, Versenyző, Darabszámok: Verseny: biztosan egy darab van belőle (a specifikáció szerint) Versenyző: több darab, de számuk előre nem ismert (a specifikáció nem tartalmazta, hogy biztosan 24 versenyző indul a versenyen) : több darab, de számuk előre nem ismert Kapcsolatok: Verseny Versenyző (a versenyen több versenyző versenyez) 1:több Versenyző (egy versenyzőhöz több időeredmény tartozik) 1:több Kapcsolatazonosítók: Verseny Versenyző: nem szükséges, mert biztosan egy darab verseny van, amin a versenyzők indulnak Versenyző : a kapcsolatot a Rajtszám biztosítja (mind a két fájl tartalmazza) Megjegyzés: az időeredményeket típustól függetlenül együtt tároljuk.

7 Adatszerkezetek ábrázolása: Az előzőek alapján egyetlen összefüggő adatszerkezet jött létre. Látható, hogy az adatszerkezet nem feltétlenül a fájlokban eltárolt adatoknak megfelelő szerkezetet követi, hanem a kérdések megválaszolását segíti az adatok rendszerezésével. Verseny Helyszín: Monaco Körök száma: 78 Versenyző Versenyző Versenyző Versenyző Versenyző Név: HAM Rajtszám: 4 Rajtpozíció: 4 Rajtszám Rajtszám Típus: köridő Idő: 01: Típus: köridő Idő: 01: Rajtszám Típus: Boxkiállás Idő: 00:03:335 Miért jó az adatokat rendszerezve tárolni a memóriában? A példánkban bemutatott Formula-1-es futamon a versenyzők száma 24, a köridők várható száma versenyzőnként 78 (amennyiben nem esik ki senki), a boksz kiállások száma versenyzőnként 2-3. Ez azt jelenti, hogy 24 versenyző, és versenyzőnként 81 db időeredményre számítunk, ami összesen 1944 időeredményt jelent. Kérdés: Hányadik körben futotta a leggyorsabb körét Alonso? Megoldás az adatok rendszerezésével: a) Ki kell keresni a pilóták közül Alonso-t (max.: 24 lépés, ha éppen ő az utolsó) b) Ki kell keresni a leggyorsabb köridőt, Alonso idejei közül. (81 lépés) Megoldás rendszerezés nélkül: 1. Ki kell keresni a pilóták közül Alonso-t, hogy megtudjuk a rajtszámát (max.: 24 lépés) 2. Ki kell keresni a leggyorsabb köridőt, az összes idő közül kiválogatva Alonso idejeit (1944 lépés) A rendszerezés előnye: Minden olyan kérdésre, amely egy konkrét versenyzőre vonatkozik megoldható maximum = 105 lépésben, egyébként pedig 1968 lépés (majdnem ~20x annyi!!!)

8 Tervezés (C nyelv) 9. Szükséges tulajdonságok és adattípusok összerendelése A feladat résztvevőihez mindenképpen az adott nyelven leírt (jelenleg a C nyelv) új típust fogunk létrehozni. A résztvevők tulajdonságait, pedig meg kell feleltetni az adott nyelv valamely egyszerű alap típusának, illetve ennek hiányában új egyszerű, vagy összetett típust létrehozni. Specifikációban szereplő típus C nyelv típus Megjegyzés Verseny: Helyszín: szöveg Körök száma: egész szám struct verseny char helyszin[50],vagy char *helyszin unsigned int korok fix, vagy változó maximum 50 karakter Versenyző: struct versenyzo Rajtszám: egész szám unsigned int rajtszam Név: szöveg char nev[4] 3 karakter + \0. Pl: VET \0 Rajtpozíció: egész szám unsigned int rajtpoz : Idő: Idő, ezred másodperc pontossággal Típus: köridő / boksz kiállás ideje char tipus struct idoeredmeny double ido Ehhez nincs beépített típusunk, ezért nekünk kell készíteni, esetleg felhasználhatjuk a double-t. K vagy B karakter

9 10. Adatszerkezetek megvalósítása Itt lehet az adatszerkezetek konkrét megvalósítását az adott nyelven megtervezni, figyelembe véve a korábbi adatszerkezet leírást. Verseny A feladat specifikációja szerint csak egy verseny eredményeit szükséges kezelnünk, így erre külön adatszerkezetet nem szükséges létrehozni. Versenyzők Azon adataink számára, melyekből többet kell eltárolni, illetve feldolgozni választanunk kell a tároláshoz szükséges egyszerű adatszerkezetek közül. A versenyzők tárolására többféle adatszerkezet is szóba jöhet: a) Tömb b) Egyirányú láncolt lista i. rendezve / rendezetlenül ii. strázsával / strázsák nélkül c) Kétirányú láncolt lista i. rendezve / rendezetlenül ii. strázsával / strázsák nélkül d) Bináris fa i. rendezve / rendezetlenül e) Egyéb A fix méretű tömb nem jó választás, mert a specifikáció szerint nem fix az indulók száma, így ez nem elég rugalmas, ugyanakkor pazarló is lehet. Rendezve, vagy rendezetten tároljam a versenyzőket? A versenyzők rajtszám szerinti rendezése segíti a keresést, az idők beszúrásához. A verseny végeredményét viszont a helyezések sorrendjében lenne jó látni. Tehát több kulcs szerint kéne rendezni, de a második kulcs csak a futam végén lesz meg. A rajtszám szerinti rendezésre bináris fát használva a keresés átlagos lépésszáma log 2 (24) ~ 4,585, rendezés nélkül 12. Ez nem jelent túlzottan nagy különbséget, ezért most az egyszerűbbet választjuk. A könnyebb kezelhetőség miatt viszont a láncolt listát 2 strázsával valósítjuk meg. A helyezések szerinti rendezést pedig majd a futam vége után előállíthatjuk a listát rendezve vagy indexeléssel. Megjegyzés: Amennyiben az egy versenyen indulók száma jelentősen nagyobb lenne, akkor megfontolandó a bonyolultabb, de hatékonyabb adatszerkezet megvalósítása.

10 ek Az időeredmények tárolása versenyzőnként történik. Az időeredmények körről-körre sorban érkeznek, és ebben a sorrendben célszerű tárolni is őket. Rendezni tehát nem szükséges, ezért egy egyszerű egyirányú láncolt listát nyugodtan használunk, aminek mindig a végére kell majd beszúrnunk, hogy a sorrend megmaradjon. Az egyirányú láncolt lista végére történő beszúráshoz, azonban mindig végig kell menni a lista elemein, ami viszont költséges lehet. A kétirányú láncolt lista alkalmazását viszont semmi nem indokolja igazán. Ezért felveszünk versenyzőnként +1 mutatót a láncolt listához, ami az utolsó érvényes időeredményt mutatja. A beszúrást így mindig a mutatott elem után kell majd elvégezni (a lista végigjárása nélkül), és strázsákra sem lesz szükségünk. A megvalósítandó adatszerkezet A kialakult adatszerkezet tehát a következőképpen néz ki: A verseny egyetlen struktúrával leírható, melyben a verseny adatai mellett a versenyen induló versenyzők láncolt listájára mutató mutatót is elhelyezünk. A versenyzőket egy kétstrázsás rendezetlen egyszeresen láncolt listában tartjuk nyílván, amelyben a versenyzők alap adatai mellett a versenyzők időeredményeit tartalmazó egyszeres láncolt listára való mutatót is elhelyezünk, továbbá a beszúrás könnyítésére, az utolsó időeredményre való mutatót is. Az időeredmények pedig egyszerű strázsa nélküli láncolt listát alkotnak, mely eleje a versenyzőknél kezdődik. Az így kialakult adatszerkezetet nevezzük Fésűs listának. Melyben az egyik láncolt listából ( fésű gerince = versenyzők) egy másik láncolt lista indul ki ( fésű fogai = időeredmények) így kapcsolva össze az egymáshoz tartozó adatokat (a versenyzőket a hozzájuk tartozó időeredményekkel).

11 Az adatszerkezet grafikusan ábrázolva

12 11. Alap funkciók ismertetése Ezen funkciók közé tartoznak az adatszerkezet felépítésével, lebontásával, módosításával kapcsolatos funkciók. Új elemet létrehozó függvények Verseny* uj_verseny(char *helyszin, unsigned korok); Versenyzo* uj_versenyzo(char *nev, unsigned rajtszam, unsigned rajtpoz); Idoeredmeny* uj_idoeredmeny(char tipus, double ido); Az adatszerkezet létrehozásához szükséges függvények Versenyzo* uj_versenyzo_lista(); void versenyzo_felvitel(versenyzo* lista, Versenyzo* versenyzo); Versenyzo* versenyzo_keres(versenyzo* lista, unsigned rajtszam); int ido_felvitel(versenyzo* lista, unsigned rajtszam, Idoeredmeny* ido); Az adatok mentésére és visszatöltésére szolgáló függvények int versenyzok_ment(char *fajlnev, Verseny* verseny); int idoeredmenyek_ment(char* fajlnev, Idoeredmeny* lista); Verseny* verseny_beolvas(char* fajlnev); int idoeredmenyek_beolvas(char* fajlnev, Versenyzo* lista); 12. További funkciók és számítások Ilyen funkciók lehetnek keresési és kiválasztási feladatok, melyek a résztvevők közül valamely alap tulajdonság alapján keresnek, választanak ki egyedeket. Ide tartoznak az egyéb számításokhoz használt függvények (távolság számítása pontok között, idő kezelésére óra/perc/másodperc/ezredmásodperc alapon, stb), valamint a teszteléshez, kiíratáshoz szükséges függvények. Példák: Mennyi idő alatt teljesítette a versenyt egy adott pilóta? double verseny_ido(versenyzo* versenyzo); Hányadik körben futotta a leggyorsabb kört egy adott pilóta? unsigned leggyorsabb_kor(versenyzo* versenyzo); Versenyzők rendezése idő szerint void rendezes_ido_szerint(versenyzo* lista); Másodperc alapú idő alapján az órák/percek számítása unsigned ora (double sec); Versenyző kiíratása a képernyőre void kiir_versenyzo(versenyzo* versenyzo); Hányadik körben futották a leggyorsabb körüket a versenyzők? void leggyorsabb_kor_szamitasa(versenyzo* lista); //Hol az eredmény??? Hol tároljuk a számítások eredményeit? Célszerű azokat az eredményeket, amiket minden résztvevőre szükséges kiszámítani a megfelelő résztvevő tulajdonságai között tárolni, így nem szükséges ehhez külön adatszerkezetet létrehozni, csak a már meglévő tulajdonságokat kell bővíteni az eredményekkel.

13 Implementálás (C nyelv) 13. Adattípusok elkészítése Készítsük el az feladatban szereplő résztvevők típusait, azok alap tulajdonságaival, az adatszerkezethez szükséges kapcsolatokkal, továbbá készítsük fel az eredmények tárolására. A versenyző típus létrehozása typedef struct Versenyzo { unsigned int rajtszam; char nev[4]; unsigned int rajtpoz; Idoeredmeny* start; Idoeredmeny* veg; struct Versenyzo* kov; double verseny_ido; unsigned leggyorsabb_kor; }Versenyzo; 14. Függvények megírása A tervezésnél meghatározott függvényeket kell implementálni. Üres versenyző lista létrehozása Versenyzo* uj_versenyzo_lista() { Versenyzo* eleje; Versenyzo* vege; eleje = uj_versenyzo( ); vege = uj_versenyzo( ); eleje->kov=vege; return eleje; } Idő felvitele egy versenyzőhöz int ido_felvitel(versenyzo* lista, unsigned rajtszam, Idoeredmeny* ido) { /* Elkészíteni */ return 1; }

14 15. Adatok mentése és visszatöltése fájlokból Az adatok mentésére és visszatöltésére készített függvényeket is tartalmaznia kell a megoldásnak. A feladatokhoz legalább két fájl feldolgozása szükséges, melyből az egyik bináris, a másik, pedig szöveges. A különböző függvények és algoritmusok dokumentálása történhet folyamatábrával, struktogrammal, vagy pszeudokóddal is. Versenyzők beolvasása ek hozzáadása Fájl megnyitása Ha sikerült a fájl megnyitása akkor ciklus amíg(az időeredmények beolvasása sikeres) Keressük ki a most beolvasott rajtszámú versenyzőt. Ha (megtaláltuk a versenyzőt) akkor új időeredmény hozzáadása a versenyzőhöz. egyébként Hiba történt. Fájl bezárása egyébként Hiba a történt.

15 16. A konkrét feladat megoldása függvényként Az adatszerkezetek fájlból való felépítése, valamint az ehhez szükséges függvények megírása után már csak a konkrét feladat megválaszolása maradt hátra. Ki volt az a versenyző, aki a 23. körben futotta a leggyorsabb körét? A kérdés megválaszolásához végig kell gondolni, hogy egyértelmű-e a kérdésre adható válasz, vagy pedig több lehetséges megoldás is szóba jöhet. A fenti kérdésre nem egyértelmű a válasz, mivel több versenyző is lehet, aki éppen a 23. körben tette meg a leggyorsabb saját körét. Ilyen esetben vagy kiírjuk az összes megoldást, vagy pedig egyértelműsítjük a kérdést, hogy biztosan csak egy helyes megoldás legyen. Ki volt a leggyorsabb versenyző, aki a 23. körben futotta a leggyorsabb körét? A végeredmény (egyszerűsítve, hibakezelések nélkül) int main(void) { Verseny* verseny = verseny_beolvas("verseny.txt"); Versenyzo* akt = verseny->versenyzok->kov; Versenyzo* keresett = NULL; idoeredmenyek_beolvas("ido.dat", verseny->versenyzok); ossz_ido_szamitasa(verseny->versenyzok); leggyorsabb_kor_szamitasa(verseny->versenyzok); rendezes_ido_szerint(verseny->versenyzok); while(akt->kov && keresett==null) { if(akt->leggyorsabb_kor == 23) keresett = akt; akt = akt->kov; } if(keresett!=null) kiir_versenyzo(keresett); else printf("nincs ilyen versenyzo!\n"); } return 0;

Nagy HF u tmutato 2011/2012 II. fe le v

Nagy HF u tmutato 2011/2012 II. fe le v A programozás alapjai 1. BMEVIHIA106 Nagy HF u tmutato 2011/2012 II. fe le v Analízis (Nyelv független) 1. A Házi feladat téma szöveges leírása. 2. A feladat résztvevőinek azonosítása 3. A résztvevők tulajdonságai

Részletesebben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I. Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Részletesebben

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala

Részletesebben

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól. Torna A pekingi olimpián tornából hat versenyszámban mérettetik meg magukat a versenyzők. Ennek a versenynek az eredményeit kell feldolgoznia ebben a feladatban. A megoldás során vegye figyelembe a következőket:

Részletesebben

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

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 Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

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

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism) Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk Láncolt lista int szam char szoveg[10] következő elemre mutató pointer int szam char szoveg[10] következő elemre mutató pointer elem elem elem int szam char szoveg[10] következő elemre mutató pointer A

Részletesebben

Programozás I. - 11. gyakorlat

Programozás I. - 11. gyakorlat Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar

Részletesebben

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek: A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.

Részletesebben

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

Részletesebben

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:

Részletesebben

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

Programozás alapjai II. (7. ea) C++ Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

Részletesebben

Egyirányban láncolt lista

Egyirányban láncolt lista Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten

Részletesebben

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus adatszerkezetek. Dinamikus adatszerkezetek. Önhivatkozó struktúrák. Önhivatkozó struktúrák

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus adatszerkezetek. Dinamikus adatszerkezetek. Önhivatkozó struktúrák. Önhivatkozó struktúrák 2012. március 27. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? Dinamikus adatszerkezetek Önhivatkozó struktúra keresés, beszúrás,

Részletesebben

Láncolt listák Témakörök. Lista alapfogalmak

Láncolt listák Témakörök. Lista alapfogalmak Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Kalapácsvetés 2016 szöveges

Kalapácsvetés 2016 szöveges Kalapácsvetés 2016 Ebben a feladatban a 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit kell feldolgoznia. A döntő 6 dobási sorozatból állt, de a 3. sorozat után

Részletesebben

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás.  Szénási Sándor Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan

Részletesebben

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

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime? Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf

Részletesebben

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)

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 alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

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

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Algoritmusok és adatszerkezetek I. 1. előadás

Algoritmusok és adatszerkezetek I. 1. előadás Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió

Részletesebben

Tájékoztató. Használható segédeszköz: -

Tájékoztató. Használható segédeszköz: - A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 213 05 Szoftverfejlesztő Tájékoztató A vizsgázó az első lapra írja fel a nevét!

Részletesebben

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj

Részletesebben

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget Hiányzások Ebben a feladatban egy általános iskola 2017 szeptemberi hiányzásai tartalmazó szövegfájlt kell feldolgoznia. Az adatok a szeptember.csv állomány tartalmazza. Az állomány egy sorában egy tanuló

Részletesebben

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

file:///d:/okt/ad/jegyzet/ad1/b+fa.html 1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

Részletesebben

Tájékoztató. Használható segédeszköz: -

Tájékoztató. Használható segédeszköz: - A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés azonosítószáma és megnevezése 54 213 05 Szoftverfejlesztő Tájékoztató A vizsgázó az első lapra írja fel a nevét!

Részletesebben

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb 1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Elemi adatszerkezetek

Elemi adatszerkezetek 2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu

Részletesebben

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt! Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt! valós adatokat növekvő sorrendbe rendezi és egy sorba kiírja

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia Sor és verem adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2009. november 19. Alapötlet

Részletesebben

Generikus osztályok, gyűjtemények és algoritmusok

Generikus osztályok, gyűjtemények és algoritmusok Programozási, gyűjtemények és algoritmusok bejárása Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 bejárása 2 bejárása 2 Java-ban és UML-ben bejárása Az UML-beli paraméteres osztályok a Java

Részletesebben

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

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük

Részletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatbázis rendszerek Gy: Algoritmusok C-ben Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés

Részletesebben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

Programozási nyelvek II. JAVA

Programozási nyelvek II. JAVA Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10. Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek

Részletesebben

Adatszerkezetek 1. előadás

Adatszerkezetek 1. előadás Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

Programozás I. zárthelyi dolgozat

Programozás I. zárthelyi dolgozat Programozás I. zárthelyi dolgozat 2013. november 11. 2-es szint: Laptopot szeretnénk vásárolni, ezért írunk egy programot, amelynek megadjuk a lehetséges laptopok adatait. A laptopok árát, memória méretét

Részletesebben

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések) Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),

Részletesebben

10. gyakorlat Struktúrák, uniók, típusdefiníciók

10. gyakorlat Struktúrák, uniók, típusdefiníciók 10. gyakorlat Struktúrák, uniók, típusdefiníciók Házi - (f0218) Olvass be 5 darab maximum 99 karakter hosszú szót úgy, hogy mindegyiknek pontosan annyi helyet foglalsz, amennyi kell! A sztringeket írasd

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk:

Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk: 8. előadás Ismétlés Dinamikus adatszerkezetek: listák (egyszeresen vagy többszörösen láncolt), fák. Kétfelé ágazó fa: bináris fa Dinamikus adatszerkezetek - önhivatkozó adatstruktúrák: adatok és reájuk

Részletesebben

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)! Space Shuttle 40 Pont A Space Shuttle (magyarul űrsikló", hivatalos angol nevén: Space Transportation System, STS) az Amerikai Egyesült Államok ember szállítására is alkalmas űrprogramja volt. Feladatai

Részletesebben

Web-programozó Web-programozó

Web-programozó Web-programozó Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,

Részletesebben

Tájékoztató. Használható segédeszköz: -

Tájékoztató. Használható segédeszköz: - A 12/2013. (III. 29.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja

Részletesebben

NAV nyomtatványok kitöltésének támogatása

NAV nyomtatványok kitöltésének támogatása NAV nyomtatványok kitöltésének támogatása Változtak a 1865M nyomtatvány kitöltési szabályai, valamint lehetővé vált a 18A60 nyomtatvány előzetes kitöltése. A tájékoztató a 8.00.8 verzió kibocsátásával

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek

Részletesebben

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT Az informatika érettségi harmadik tételsora tartalmaz egy feladatot, melyet hatékonyan kell megoldani. A program megírása mellett követelmény a megoldásban használt módszer rövid leírása, kitérve a módszer

Részletesebben

2018, Funkcionális programozás

2018, Funkcionális programozás Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmusok és adatszerkezetek gyakorlat 07 Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet

Részletesebben

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

Tájékoztató. Használható segédeszköz: -

Tájékoztató. Használható segédeszköz: - A 12/2013. (III. 29. NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja

Részletesebben

Programozás alapjai 9.Gy: Struktúra 2.

Programozás alapjai 9.Gy: Struktúra 2. Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. 11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;

Részletesebben

ElektrO-ParT elektronikai alkatrész nyilvántartó program leírás.

ElektrO-ParT elektronikai alkatrész nyilvántartó program leírás. ElektrO-ParT elektronikai alkatrész nyilvántartó program leírás. 1. ábra A program, indítás után az 1. ábra szerint fog megjelenni. Ebben az ablakban tudunk új alkatrészt felvinni vagy meglévőt módosítani.

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

Térinformatikai algoritmusok Elemi algoritmusok Cserép Máté Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot oldottuk meg korábban,

Részletesebben

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8. Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás

Részletesebben

22. GRÁFOK ÁBRÁZOLÁSA

22. GRÁFOK ÁBRÁZOLÁSA 22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is

Részletesebben

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3 Láncolt Listák Adatszerkezetek Adatszerkezet: Az adatelemek egy olyan véges halmaza, amelyben az adatelemek között szerkezeti összefüggések vannak Megvalósítások: - Tömb, Láncolt lista, Fa, Kupac, Gráf,

Részletesebben

A programozás alapjai 1 Rekurzió

A programozás alapjai 1 Rekurzió A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás.  Szénási Sándor. B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés

Részletesebben

Címzett: Kovács Gézáné Szeged, Híd u. 1. Tisztelt Kovács Gézáné! Örömmel értesítjük, hogy Ön megnyerte nyereményjátékunk 1000 Ft-os díját.

Címzett: Kovács Gézáné Szeged, Híd u. 1. Tisztelt Kovács Gézáné! Örömmel értesítjük, hogy Ön megnyerte nyereményjátékunk 1000 Ft-os díját. Körlevél l készk szítésese Mi a körlevk rlevél? l? A körlevél több személynek küldendő azonos tartalmú levél, amely azáltal válik személyessé, hogy minden levél a címzettre vonatkozó adatokat tartalmazza.

Részletesebben

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbáziskezelés. Indexek, normalizálás NZS 1 Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis

Részletesebben

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú

Részletesebben

Programozás Minta programterv a 1. házi feladathoz 1.

Programozás Minta programterv a 1. házi feladathoz 1. Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

Térinformatikai algoritmusok Elemi algoritmusok Cserép Máté 2016. szeptember 14. Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot

Részletesebben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot

Részletesebben

Objektumorientált Programozás VI.

Objektumorientált Programozás VI. Objektumorientált Programozás VI. Tömb emlékeztető Egyszerű programozási tételek Összetett programozási tételek V 1.0 ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók

Részletesebben

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája: Struktúrák (struct) A struktúra egy olyan összetett adatszerkezet, amely nemcsak azonos típusú elemeket rendelhet össze. A struktúra definíciójában leírjuk, hogy a struktúra hogyan épül fel. A struktúra

Részletesebben

Kiegészítő előadás. Vizsgabemutató VBA. Dr. Kallós Gábor, Fehérvári Arnold, Pusztai Pál Krankovits Melinda. Széchenyi István Egyetem

Kiegészítő előadás. Vizsgabemutató VBA. Dr. Kallós Gábor, Fehérvári Arnold, Pusztai Pál Krankovits Melinda. Széchenyi István Egyetem Kiegészítő előadás Vizsgabemutató VBA Dr. Kallós Gábor, Fehérvári Arnold, Pusztai Pál Krankovits Melinda 2016 2017 1 VBA A Szamokat_General szubrutin segítségével generáljunk 1000 db egész számot a [0,

Részletesebben

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

Access gyakorlati feladatok lépésről lépésre

Access gyakorlati feladatok lépésről lépésre Access gyakorlati feladatok lépésről lépésre 1. feladat: Hajómenetrend A balatoni hajómenetrend rendelkezésünkre áll a menetrend.txt állományban. Készítsen új adatbázist HAJO néven! A mellékelt adatállományt

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok. ADATBÁZIS-KEZELÉS ALAPOK Főbb Adattípusok: Igen/Nem Bájt Ez az adattípus logikai adatok tárolására alkalmas. A logikai adatok mindössze két értéket vehetnek fel. (Igen/Nem, Igaz/Hamis, Férfi/Nő, Fej/Írás

Részletesebben

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, 2013. november 08.

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, 2013. november 08. HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL Budapest, 2013. november 08. 1. CÉLKITŰZÉS A fő cél, hogy az OL Munkaidő Rendszerből kinyert jelenlét

Részletesebben

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány

Részletesebben

értékel függvény: rátermettségi függvény (tness function)

értékel függvény: rátermettségi függvény (tness function) Genetikus algoritmusok globális optimalizálás sok lehetséges megoldás közül keressük a legjobbat értékel függvény: rátermettségi függvény (tness function) populáció kiválasztjuk a legrátermettebb egyedeket

Részletesebben

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

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

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

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév 1. feladat (nehézsége:*****). Készíts C programot, mely a felhasználó által megadott függvényt integrálja (numerikusan). Gondosan tervezd meg az adatstruktúrát! Tervezz egy megfelelő bemeneti nyelvet.

Részletesebben