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:

1. fájl, 2. fájl

Projectek (zip):

1. feladat, 2. feladat (a), 2. feladat (b), 2. feladat (c), 2. feladat (d)