Feladatok
1. Készítsünk programot, ami egy egész számokból álló RENDEZETT tömbben a legtöbbször előforduló elem dupláját keresi! (megoldás, tesztadat)
Szekvenciális bementi fájlból olvassunk be egy egészeket rendezetten tartalmazó tömböt és határozzuk meg, hogy a legtöbbször előforduló elem duplája megtalálható –e a sorozatban! A megoldást vezessük vissza egymásba ágyazott tanult programozási tételekre! Igyekezzünk minél optimálisabb kódot implementálni! Javaslat: függvényként implementáljuk a használni kívánt programozási tételeket! Opcionális nehezítés: a program ne várja a fájlból a tömb méretét (legyen tényleg dinamikus), valamint jelenítse meg a legtöbbször előforduló elemet, az előfordulások számát és a kétszeresének a pozicióját (ha van)!
Szükséges utasítások:
template <typename Item> Az utána következő specifikációban használható, ’Item’ nevű típusáltalánosítást (sablont) definiálja. (Nem szükséges a megoldáshoz, nem tartozik ennek a félévnek az anyagához a sablonosítás!)
2. Készítsünk programot, ami egy kódokat tartalmazó raktárnyilvántartásból meghatározza a legnagyobb mennyiségben előforduló, egy bizonyos mennyiséget meg nem haladó árut!
Adott két szekvenciális bemeneti fájl. Az első whitespace karakterekkel elválasztott kód-név (int-string) párokat tartalmaz, ami az áru kódját rendeli az áru nevéhez, a második pedig árukódokat tartalmaz rendezetlenül. A második fájlban minden bejegyzés egy újabb példányt jelent a hozzá tartozó áruból. A program kérjen be egy felső korlátot és az annál kisebb mennyiségben előforduló áruk közül a legtöbbször előfordulót határozza meg! A megoldást vezessük vissza egymásba ágyazott, tanult programozási tételekre! Igyekezzünk függvényekkel tagolt, optimális kódot írni!
Szükséges utasítások:
struct nev{ t1 v1, t2 v2, … } Létrehoz egy ’nev’ nevű struktúrát, melynek komponensei t1,t2,… típusúak és v1,v2,… néven lehet rájuk hivatkozni!
Megoldások:
1. megoldás Feltételes maximumkeresésbe ágyazott számlálás. Már-már kényelmetlenül szétbontott, jól átlátható, kódhű visszavezetése a Programozási módszertan c. tárgyból bizonyított tételeknek.
2. megoldás A fenti megoldás átindexelt, ciklusváltott átírása.
3. megoldás Példa a fenti megoldások „függvénymentesítésére”.
4. megoldás Érdekességként egy szebb,
állapottér-transzformációs megoldás, lineáris keresésre (2.8)
és feltételes maximumkeresésre visszavezetve.
Tesztadatok:
Projectek (zip):
1. feladat, 2. feladat (a), 2. feladat (b), 2. feladat (c), 2. feladat (d)