Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6. Alapműveletek



Hasonló dokumentumok
A Hozzárendelési feladat megoldása Magyar-módszerrel

Párhuzamos programozás

Elemi adatszerkezetek

Rendezési algoritmusok belső rendezés külső rendezés

Adatok ábrázolása, adattípusok. Összefoglalás

Programozás I gyakorlat

Algoritmuselmélet. Keresés, rendezés, buborék, beszúrásos, összefésüléses, kupacos, láda, radix. Katona Gyula Y.

KOVÁCS BÉLA, MATEMATIKA I.

Azonosító jel: Matematika emelt szint

Lineáris algebra gyakorlat

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

Programozási tételek

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

INFORMATIKAI ALAPISMERETEK

Játékok (domináns stratégia, alkalmazása

Emelt szintű érettségi feladatsorok és megoldásaik Összeállította: Szászné Simon Judit; dátum: november. I. rész

1. forduló. MEGOLDÁSOK Pontszerző Matematikaverseny 2015/2016-os tanév

G Szabályfelismerés feladatcsomag

Az aktiválódásoknak azonban itt még nincs vége, ugyanis az aktiválódások 30 évenként ismétlődnek!

7 mestermű társasjáték Kódszám: SZMDP MÚZEUM+ DESIGNPÁLYÁZAT. ERDÉLYI ÁGOSTON 7 MESTERMŰ Kódszám: SZMDP PÁLYAMŰ RÉSZLETEI

Egyre nagyobb profitot generálnak a mobiltelefonnal végzett vásárlások, és egyre többet hezitálunk vásárlás előtt

A táblázatkezelő felépítése

A döntő feladatai. valós számok!

Útmutató a vízumkérő lap kitöltéséhez

MATEMATIKA VERSENY

Diszkrét matematika I., 11. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 22.

Vodafone ReadyPay. Használati útmutató

Vektoros elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

Árverés kezelés ECP WEBSHOP BEÉPÜLŐ MODUL ÁRVERÉS KEZELŐ KIEGÉSZÍTÉS. v ECP WEBSHOP V1.8 WEBÁRUHÁZ MODULHOZ

KOVÁCS BÉLA, MATEMATIKA I.

Üresként jelölt CRF visszaállítása

Kérjük, hogy mielőtt elkezdené használni a Csavarhat webáruházat, gondosan olvassa végig ezt a segédletet.

BOLYAI MATEMATIKA CSAPATVERSENY ORSZÁGOS DÖNTŐ SZÓBELI (2012. NOVEMBER 24.) 3. osztály

2016. JANUÁR 1-TŐL ÉRVÉNYES MÓDOSÍTÁSOK A DR. NONA INTERNATIONAL TÁRSASÁG MARKETING TERVÉBEN

Jelek tanulmányozása

MBLK12: Relációk és műveletek (levelező) (előadásvázlat) Maróti Miklós, Kátai-Urbán Kamilla

MATLAB. 4. gyakorlat. Lineáris egyenletrendszerek, leképezések

Arany Dániel Matematikai Tanulóverseny 2011/2012-es tanév első (iskolai) forduló haladók I. kategória

Analízis elo adások. Vajda István szeptember 24. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Kérdések és feladatok

Adatgyőjtés, mérési alapok, a környezetgazdálkodás fontosabb mőszerei

Felvételi 2013 Felvételi tájékoztató 2013

Operációkutatás. 2. konzultáció: Lineáris programozás (2. rész) Feladattípusok

Egyszerű programozási tételek

Variációk egy témára - táblázatkezelő feladatok megoldása többféleképpen

BOLYAI MATEMATIKA CSAPATVERSENY DÖNTŐ osztály

MAGYAR KÜZDELMEK HARMADIK GYAKORLAT ELINDULÁS NYERS SZÖVEG RENDBETÉTELE (ISMÉTLÉS) ÜZLETI INFORMATIKAI ESZKÖZÖK Kiadványszerkesztés

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

BOLYAI MATEMATIKA CSAPATVERSENY FŐVÁROSI DÖNTŐ SZÓBELI (2005. NOVEMBER 26.) 5. osztály

Gyakorló feladatok ZH-ra

Boldva és Vidéke Taka r ékszövetkezet

Kerékpárlabda kvalifikációs szabályzat

Boldva és Vidéke Taka r ékszövetkezet

I. Elemi algoritmusok

Minta programterv a 1. házi feladathoz

[GVMGS11MNC] Gazdaságstatisztika

Az informatika oktatás téveszméi

0642. MODUL SZÁMELMÉLET. A számok osztói, az oszthatósági szabályok KÉSZÍTETTE: PINTÉR KLÁRA

ADATBÁZIS-KEZELÉS. Funkcionális függés, normál formák

KORREKCIÓZÁS FŐKÖNYVI FELADÁS UTÁN

Algebra es sz amelm elet 3 el oad as Rel aci ok Waldhauser Tam as 2014 oszi f el ev

Mágneses szuszceptibilitás vizsgálata

Linux Mint 8 telepítése

MATEMATIKA ÍRÁSBELI VIZSGA május 8.

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Informatikai tehetséggondozás:

Csoportosított adatok megjelenítése sorhalmaz függvények használatával

p j p l = m ( p j ) 1

EVALUAREA COMPETENȚELOR FUNDAMENTALE LA FINALUL CLASEI a II-a Model de test. MATEMATICĂ Şcoli cu predare în limbile minorităților naționale

Óravázlat. A szakmai karrierépítés feltételei és lehetőségei. Milyen vagyok én? Én és te. heterogén csoportmunka

Szakdolgozat. Miskolci Egyetem. Rendezési algoritmusok szemléltetése. Készítette: Fekete Enikő Programtervező informatikus szak

Diszkrét matematika I. gyakorlat

Shared IMAP beállítása magyar nyelvű webmailes felületen

Készítsen négy oldalas prezentációt egy vállalat bemutatására!

Fordítóprogramok Készítette: Nagy Krisztián

xdsl Optika Kábelnet Mért érték (2012. II. félév): SL24: 79,12% SL72: 98,78%

HWDEV-02A GSM TERMOSZTÁT

Programozás. A programkészítés lépései. Program = egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.

118. Szerencsi Többcélú Kistérségi Társulás

2011. március 9. Dr. Vincze Szilvia

Kombinatorika. 9. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Kombinatorika p. 1/

Feladatok megoldásokkal a negyedik gyakorlathoz (Függvényvizsgálat) f(x) = 2x 2 x 4. 2x 2 x 4 = 0, x 2 (2 x 2 ) = 0.

MATEMATIKA HETI 3 ÓRA

RENDEZÉSEK, TOVÁBBI PROGRAMOZÁSI TÉTELEK

A skatulya-elv alkalmazásai

LIPEM, LOPOM A SZŐLŐT

1. Számoljuk meg egy számokat tartalmazó mátrixban a nulla elemeket!

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Részvénykereskedés a gyakorlatban

ORSZÁGOS KÖRNYEZETEGÉSZSÉGÜGYI INTÉZET

Fábián Zoltán Hálózatok elmélet

Koordináta - geometria I.

VII. Gyermekszív Központ

Ablakok használata. 1. ábra Programablak

Esettanulmányok és modellek 1 Termelésprogramozás az iparban

Szerb középszintű szóbeli vizsga értékelési útmutató

Nyomott - hajlított fagerenda szilárdsági méretezése ~ egy régi - új megoldás

A kézbesítés rajtunk is múlik

ELŐTERJESZTÉS a Veszprém Megyei Önkormányzat Közgyűlésének április 19-ei ülésére

Átírás:

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6 A tömbök deklarálásakor Pascal és C/C++ nyelvekben minden esetben meg kell adni az indexelést (Pascal) vagy az elemszámot (C/C++). Ritkán dolgozunk az összes elemmel, ezért általában van egy változónk az aktuális elemszámra általában n a jelölése. A következő algoritmusokban a lesz a tömb és n lesz az aktuális elemszám. 1.) Tömb elemeinek a beolvasása Beolvas n Beolvas a[i] Alapműveletek 2.) Tömb elemeinek a kiíratása az eredeti sorrendben: a tömb elemeit illik egymástól szóközzel elválasztani vagy adott számú pozícióra kell kiíratni őket Kiír a[i], 3.) Tömb elemeinek a kiíratása fordított sorrendben: Minden i n,1,-1 -re végezd el Kiír a[i], 4.) Tömb elemi közül a legkisebb minimumkeresés: feltételezzük, hogy a tömb első eleme a legkisebb. Megvizsgáljuk a többi elemet is, és ha az eddigi minimumnál kisebbet találunk, akkor kicseréljük. min a[1] Minden i 2,n-re végezd el Ha a[i] < min akkor min a[i] Kiír min 5.) Tömb elemi közül a legnagyobb maximumkeresés: feltételezzük, hogy a tömb első eleme a legnagyobb. Megvizsgáljuk a többi elemet is, és ha az eddigi maximumnál nagyobbat találunk, akkor kicseréljük. max a[1] Minden i 2,n-re végezd el Ha a[i] > max akkor max a[i] Kiír max 6.) Tömb elemeinek az összege: számítsuk ki a tömb elemeinek az összegét. s 0 s s + a[i] Kiír s

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 2/6 7.) Kiválogatás: írd ki a tömb elemei közül azokat, amelyek 5-re vagy nullára végződnek Ha a[i] utolsó számjegye 5 vagy 0 akkor Kiír a[i] 8.) Darabszám: számoljuk össze mennyi páros érték van a tömb elemei között db 0 Ha a[i] páros akkor db db + 1 Kiír db 9.) Lineráis keresés: keressük meg, melyik pozíción fordul elő az x a tömbben, vagy írjunk ki egy Nem szerepel a tömbben üzenetet Beolvas x p 0 Ha a[i]=x akkor p i Ha p=0 akkor Kiír Nem szerepel a tömbben különben Kiír p 10.) Bináris keresés: amennyiben a tömb elemei rendezve vannak (az algoritmusban úgy tekintjük, hogy a tömb elemei növekvő sorrendben vannak) akkor a keresést fel lehet gyorsítani abban a részben keresünk tovább, ahol érdemes, ahol az értéknek lennie kell Beolvas x p 0 bal 1 jobb n Amíg bal jobb és p=0 végezd el k [(bal+jobb)/2] Ha a[k]=x akkor p k különben Ha x<a[k] akkor jobb k-1 {a baloldali részben kellene legyen} különben bal k+1 {a jobboldali részben kellene legyen} Ha p=0 akkor Kiír Nem szerepel a tömbben különben Kiír p

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 3/6 11.) Ütközős keresés: a keresett elemet elhelyezem az utolsó elem utáni pozícióba, így a keresésnél nem kell külön az elemszámra figyelni. Amennyiben itt a vége után találom meg, akkor a keresett érték nem szerepelt a tömbben. Beolvas x a[n+1] x k 1 Amíg a[k] x végezd el k k+1 Ha k=n+1 akkor Kiír Nem szerepel a tömbben különben Kiír k Hasonló a módszer akkor, ha csak a különböző értékeket kell a tömbben tárolni. Ilyenkor az elemszámot akkor kell növelni, ha a számot az utolsó utáni pozícióban az ütközőben találtam meg.

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 4/6 Tömb elemeinek a rendezése (a leírt algoritmusok növekvő sorrendbe rendezik az elemeket) http://www.sorting-algorithms.com/; http://www.cs.ubc.ca/~harrison/java/sorting-demo.html 1.) Direkt csere, direkt összehasonlítás módszere metoda selecţiei directe (egyszerű felcseréléses rendezés) Összehasonlítunk minden lehetséges párt, ahol az elemek rossz sorrenben vannak, ott elvégezzük a cserét. (növekvő sorrend = ha kisebb pozíción nagyobb érték van, akkor ki kell cserélni) Ideális módszer abban az esetben, ha csak adott feltételnek megfelelő elemeket kell rendezni, a többieket a helyükön kell hagyni (pl: rendezd a páros elemeket növekvő sorrendbe, a páratlanok maradjanak a helyükön). Minden i 1,n-1 -re végezd el Minden j i+1,n -re végezd el Ha a[i]>a[j] akkor a[i] a[j] {három értékadó utasítással elvégzem a cserét} 2.) Buborékos rendezés metoda bulelor Az első elemtől kezdődően egymás melletti elemeket hasonlítunk össze, ahol az elemek rossz sorrendben vannak, ott elvégezzük a cserét. A végigjárást az első elemtől addig isméletjük, amíg a végigjárásnál egyetlen cserét sem kell elvégezni. Ismételd csere hamis Minden i 1, n-1 re végezd el Ha a[i]>a[i+1] akkor a[i] a[i+1] csere igaz Ameddig nincs csere 3.) Buborékos rendezés javított változat: figyeljük melyik elem került már a helyére, az összehasonlításokkal csak eddig megyünk el. vege n Ismételd csere hamis Minden i 1, vege-1 re végezd el Ha a[i]>a[i+1] akkor a[i] a[i+1] csere igaz vege vege - 1 Ameddig nincs csere

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 5/6 4.) Számolásos rendezés sortare prin numărare Minden i-edik elemre megszámoljuk mennyi nála szigorúan kisebb érték van a tömbben, a rendezett tömbbe ennek megfelelően helyezzük el az értékeket. Szükség van még két tömbre: K lesz az a tömb, ahol megszámoljuk, hogy az i-edik elemnél mennyi nála kisebb érték van és a b tömbbe már a helyükre másoljuk az elemeket Minden i 1,n re végezd el K[i] 0 Minden i 1,n-1 -re végezd el Minden j i+1,n -re végezd el Ha a[i]>a[j] akkor K[i] K[i]+1 {találtam egy nála kisebb elemet} különben K[j] K[j]+1 Minden i 1,n re végezd el b[k[i]+1] a[i] Más rendezési algoritmusok: 5.) Minimumkiválasztásos rendezés: megkeresem minden pozícióra a legkisebb elemet, a továbbiakban már csak a tőle jobbra levő elemekkel foglalkozom Minden i 1, n-1 -re végezd el min i {megjegyzem az i-edik legkisebb elem pozícióját } Minden j i+1, n -re végezd el Ha a[j]<a[min] akkor min j {találtam egy nála kisebb elemet, de még nem cserélek} Ha i min akkor {a legkisebb érték mégsem az i pozícióban van} a[i] a[min] 6.) Beszúrásos rendezés (sortare prin inserare): az új elemet egy már rendezett sorozatba a neki megfelelő pozícióba helyezem el {az egy elemből álló tömb rendezett} Minden i 2, n -re végezd el Ha a[i]<a[i-1] akkor {az aktuális érték nincs a helyén} ment a[i] {félreteszem az értéket} j i Ismételd j j-1 a[j+1] a[j] {egy pozícióval feljebb léptetem az elemeket} Ameddig j=1 vagy a[j-1]<=ment a[j] ment

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 6/6 7.) Összefésülés (Merge Sort): két rendezett tömböt összefuttatok egy harmadikba. A harmadik tömmbe összeválogatom az elemeket. Az első tömb neve a és n eleme van, a második tömb neve b és m eleme van, az eredmény tömb a c lesz k darab elemmel. i 1; j 1; k 0 Amíg i n és j m végezd el Ha a[i] < b[j] akkor c[k] a[i] {az első tömbből másoljuk ki az elemet} i i+1 {az első tömbben lépünk tovább} különben c[k] b[j] {a második tömbből másoljuk ki az elemet} j j+1 {a második tömbben lépünk tovább} Ha i n akkor {az első tömbben maradtak még elemek, nincs mivel összehasonlítani} Minden j i, n -re végezd el c[k] a[j] különben Minden i j, m -re végezd el c[k] b[i] Kétdimenziós tömbök (mátrixok) C++ nyelvben 1.) Deklarálás: n sorból, m oszlopból álló mátrix, a mátrix sorait és oszlopait 1-től indexelem, legtöbb 20 sora és 30 oszlopa lehet int a[21][31]; int i, j, n, m; 2.) Mátrix elemeinek a beolvasása cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cout<< a[ <<i<<, <<j<< ] = ; cin>>a[i][j]; } 3.) Mátrix elemeinek a kiírása: for(i=1;i<=n;i++) { for(j=1;j<=m;j++) cout<<a[i][j]<< ; cout<< \n ; }