• Nem Talált Eredményt

Gólya Péter 2.beadandó / 10. fel 2011.05.18. - ELTE

N/A
N/A
Protected

Academic year: 2023

Ossza meg "Gólya Péter 2.beadandó / 10. fel 2011.05.18. - ELTE"

Copied!
5
0
0

Teljes szövegt

(1)

Gólya Péter 2.beadandó / 10. fel 2011.05.18.

GOPSAAI.ELTE gopsaai@inf.elte.hu 2.csoport(szerda)

Feladat

Valósítsa meg a prímszámokat tartalmazó halmazok típusát! Egy ilyen halmazt a halmazbeli prímszámok szorzatával, azaz egy egész számmal lehet

reprezentálni. Ügyeljen arra, hogy ennek a számnak a prímtényezős

felbontásában ugyanaz a prímszám legfeljebb egyszer szerepeljen! Az üres halmazt az 1 szám helyettesíti. Valósítsa meg egy prímszámnak a halmazba való betételét, abból történő kivételét, annak vizsgálatát, hogy üres-e a halmaz, vagy hogy egy adott prímszám benne van-e. A főprogram ilyen halmazra próbálja ki a fenti műveleteket!

Prím típus Prím

h:=1 (-üres halmaz) h:=h U {e}

h:= h /{e}

Int × Int

(2)

Implementáció

A prímek osztálya

A halmazt a bevitt prímszámok szorzatával reprezentálja a program. A prím halmaz típus kezdetben létrehoz egy üres halmazt (a létrehozást egy

konstruktor végzi). Kezeli, ha nem prímet akarunk a halmazhoz adni. Majd adhatunk hozzá prím elemeket, illetve vehetünk el belőle. Egy prímet csak egyszer tartalmazhat. Lekérdezhető, hogy üres-e a halmaz, illetve, hogy egy adott elem benne van-e már a halmazban.

class Prim {

public:

enum Hibak{ E_NOTPRIME }; // Hiba: nem prímet adtunk meg.

Prim();

~Prim();

void Add(int NewElement);

void Remove(int Element);

bool IsEmpty();

bool IsInSet(int Element);

private:

int product;

bool IsPrime(int Number);

void AssertPrime(int Number);

bool IsFactorOfProduct(int Number);

};

(3)

Függvények kapcsolódási szerkezete

Program váz

A program több állományból áll: main.cpp, prim.h, prim.cpp, modul.h, modul.cpp.

main.cpp prim.cpp – prim.h modul.cpp – modul.h

main() Prim()

~Prim() Add() Remove() IsEmpty() IsInSet() IsPrime() IsEven() AssertPrime()

IsFactorOfProduct()

menu() ReadInt() RemoveInt()

main()

menu()

Add()

ReadInt()

AssertPrime() IsPrime()

IsFactorOfProduct

Remove()

RemoveInt()

IsPrime()

IsFactorOfProduct()

IsInset()

ReadInt()

IsFactorOfProduct()

IsPrime() IsEven()

IsEmpty()

(4)

Tesztelési terv

Tesztesetek a prim komponenshez

 Konstruktor teszt.

 Elem hozzáadása és kivétele a halmazból tesztje. Ekkor teszteljük az

’IsInSet’ – ’benne van-e a halmazban egy elem függvényt is.

 Üres halmaz tesztje.

Tesztesetek a feladat specifikációja alapján Szempontok:

 Szélsőséges adatok (negatív számok, 0, betűk)

Menü:

1.Add - elem hozzáadása 2.Remove - elem törlése 3.Is in? – benne van-e?

4.Is empty? – üres-e?

5.Exit – kilépés

Teszt1:

1.Add: 0

out: „Not prime”

Teszt2:

1.Add: 3 2.Remove: 3 3.Is in?: 3

out: „It’s not inside”

4.Is empty?

out: „It’s empty!”

Teszt3:

4. Is empty?

(5)

„It’s empty!”

Teszt4:

1.Add: -10

out: „Not prime!”

Teszt5:

1.Add: adujsadsa out: „Wrong input”

Teszt6(menü):

in: 6

out: ”Incorrect! Please choose from 1-5.”

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

A „Callimaco Esperiente" szimpóziumon Szörényi László előadást tartott „Callimaco Esperiente e il corte del re Mattia" címmel. október). Bodnár György a

In particular, they suggest the thermo- dynamically stable Al 63 Cu 24 Fe 13 phase could separate into two disconnected fields under shock pressure above 20 GPa, leading to