Tippek & Trükkök

Ötletek, gondolatok adott problémákkal kapcsolatban...


☂ N különböző szám generálása...

Tegyük fel, hogy N db véletlenszámot kell egy listában (tömbben, vektorban, sorozatban) kezelnünk, de szeretnénk elérni, hogy minden szám különböző legyen! Nézzünk egy lehetséges megoldást:
  • használjunk halmazt az adatok tárolására --> majd listát (vektort) készíthetünk belőlük
  • addig generáljunk véletlenszerű számokat, amíg nem lesz meg az N eleme a halmaznak (kihasználva a halmaz azon tulajdonságát, hogy csak egyedi elemei lehetnek)



☂ Összefüggés adatsorozatok között...

Gyakori hogy olyan adatokat kezelünk, melyek egy bizonyos zárt intervallumból veszik fel az értéküket, és ezekkel az értékekkel szeretnénk valamit kezdeni.
Legjobb példa erre a lottósorsolás: a zárt intervallum 1-90, és egy évben minden héten 5 számot sorsolnak ki. A kisorsolt számok 52x5-ös mátrixba rendezhetők, ha teljes évet veszünk.
Maguk a számok egy 90 elemű listát alkotnak. Milyen összefüggés van a kisorsolt számok és a 90 elemű lista között? Válasz:

A kisorsolt számok kijelölik a listában az adott elemet (lásd ábra)!

Magyarán arról van szó, hogy a hetek számai indexelik (nyilak az ábrán) a 90 elemű listát, így a kisorsolt számok alapján a listával (1-90) sok mindent kezdhetünk: vizsgálhatjuk, hogy melyik számot nem húzták ki, melyik számot hányszor húzták ki, és így tovább (emlékeim szerint ez a 2005-ös évben volt feladat).

De ez az egész nemcsak a lottósorsolás kapcsán hasznosítható, hanem minden olyan esetben, amikor egy adathalmaz egy másik adathalmazból veszi fel az értékeit. Például a kisorsolt szám az 1-90 halmazból veszi fel az értékét. Vagy nézzük az alábbi ábrát:

Egy 8x5-ös mátrix az öt nap közül veszi fel az értékeit. Ahogy a nyilak jelzik, lehet vizsgálni például , hogy melyik nap mennyi munka kerül sorra, mert a mátrix elemei indexelik a munkanapok listáját...

Forrásállomány letöltése



☂ Szövegkezelés 1. rész

A szöveges adatok kezelése nagyon gyakori probléma az érettségin és általában is. Ebben a példában, az 1. részben, néhány alapvető szövegkezelési fogást nézünk meg: szövegek összefűzése, kis- és nagybetűsre alakítás, szöveg megfordítása, stb...


☂ Szövegkezelés 2. rész

Ebben a példában, a 2. részben, szövegrészlet keresése és cseréje történik...


☂ Prímszámok vizsgálata és listázása...

Egy n egész számról szeretnénk eldönteni, hogy prímszám vagy nem. Matematika órákról tudjuk, hogy mi az a prímszám, tehát ezzel a résszel nem foglalkozunk! Azt is tudjuk, hogy, ha egy számnak a négyzetgyökéig nem találunk osztót, akkor annak már nem is lesznek osztói, azaz prímszám!

Ezt felhasználva meg tudjuk alkotni azt az algoritmust, ami eldönti egy számról, hogy prím-e. Ha ezt az algoritmus-részletet beágyazzuk egy 1-től n-ig "pörgő" számlálós ciklusba, akkor megadhatjuk az n-ig létező összes prímszámot is!

Legyen itt az a "házi feladat", hogy C++-ban is megírjuk ezt a kis programot!

Az alábbi megoldásba sok minden egyebet is beírtunk, csak a további tanulás kedvéért...



☂ Az indexelés problémái...

Prezentáció PPTX letöltés

Az alábbiakban általánosságban tárgyaljuk a sorozatok indexelése során fellépő leggyakoribb hibát, majd egy pythonos példát nézhetünk meg:



PYTHON példa: rendezés, szövegkezelés...

Programkód PY letöltés



☂ Euklidészi algoritmus...

Egy nagyon egyszerű algoritmusról van szó, mely két egész szám legnagyobb közös osztóját határozza meg, amiből a legkisebb közös többszörös is könnyen meghatározható. Nézzük:
  • while ciklust és
  • maradékos osztást (MOD) használunk


i++ vs ++i

A ++ problémája a C++-ban! Okozhat-e hibát, problémát a ++ használata! Mi a különbség az i++ és a ++i között? A példaprogram elemzésével mindenre fény derül. Nézzük:


☂ Lista "anomália"

Milyen problémát okozhat a [x]*n típusú listadefiniálás? Nézzük:

A problémát szemléltető prezentáció: (a prezentáció vetítése során egy kattintás --> animáció)


Class használata #1

Class, azaz osztály és objektumainak használata az érettségi feladatokban. Az ide kapcsolódó feladat a 2013 októberi Közúti ellenőrzés c. feladat! És más "trükkök" is...! Nézzük:


Class használata #2

További példaprogram - pont és koordinátái és távolsága az origótól. Zenei adók c. feladatban is találunk rá példát!