help me !!! progamowac w C

0

Mam te zadanie do pisania programy. ALe nie umiem tego pisac. Czy ktos mozna mnie pomoc dzieki
A. Wprowadzenie.
Abstrakcyjny typ danych (ATD) to typ danych, dla którego operacje
nie zależą od jego szczególnych własności. Podstawą ATD jest
oddzielenie operacji wykonywanych na danych i sposobów ich
przechowywania od konkretnego typu danych. ATD można zdefiniować za
pomocą operacji, które są wykonywane na danych, niezależnie od ich
typu. Zastosowania ATD umożliwia podzielenie zadania programistycznego
na dwie części. Pierwsza polega na zaimplementowaniu ATD; wyborze
struktury reprezentującej ATD i napisaniu funkcji implementujących
operacje. Druga część to napisanie programu głównego, który będzie
wywoływał funkcje ATD. Program ma dostęp do danych ATD wyłącznie
przez wywoływanie funkcji; nie może bezpośrednio odczytywać lub
modyfikować wartości przechowywanych w wewnętrznych strukturach ATD.
B. Przykład.
Przykładowo, nech będzie dana definicja stosu jako ATD:
/--------------------------/...
#define Max 50
typedef int ElType;
typedef ElType StackType[Max];
int top;
/--------------------------/...
initialize(StackType stos){
top = 0;
}
/--------------------------/...
empty(StackType stos){
return top == 0;
}
/--------------------------/...
full(StackType stos){
return top == Max;
}
/--------------------------/...
push(ElType el, StackType stos){
if (full(stos))
printf(?Przepełnienie stosu?);
else stos[top++] = el;
}
/--------------------------/...
ElType pop (StackType stos){
if (empty(stos))
printf(?Niedobór na stosie?);
else return stos[--top];
}
/--------------------------/...
Stos jest zaimplementowany poprzez funkcje: initialize, empty,
full, push, pop. Tak zdefiniowany ATD można wykorzystać do
różnych zadań programistycznych.
C:Zadanie do wykonania
4. Proszę zdefiniować ATD zbiór z powtórzeniami. Niech będą
zdefiniowane następujące operacje na zbiorach: suma, część wspólna,
różnica, zawieranie, test przynależności.

0

Witam, {hello}

Niewiem czy o to chodzi ale ja bym zrobił tak:

//ATD w postaci szablonu klasy
template &ltclass T&gt
class Zbior
{ T element;
vector&ltT&gt zbior_elementow; *jakas struktura danych
public:
Zbior(void);*konstruktor domyslny
friend Zbior operator+(Zbior&ltT&gt &,Zbior&ltT&gt &);*suma zbiorow
friend Zbior operator-(Zbior&ltT&gt &,Zbior&ltT&gt &);*roznica zbiorow
friend Zbior cz_wspolna(Zbior&ltT&gt &,Zbior&ltT&gt &);
friend bool czy_nalezy(Zbior&ltT&gt &,T &);
friend bool czy_nalezy(T &,Zbior&ltT&gt &);
friend void dodaj(T &);
friend void usun(T &);
friend bool czy_pusty(Zbior&ltT&gt &);
};

Do przechowywanie danych w obrębie klasy najlepiej użyć listy związanej.

Jak by co to na majla.

Pozdrawiam i życzę miłego dnia.

0

A tak na marginesie to w bibliotece standardowej C++ istnieje między innymi
szablon klasy multiset tj. zbiór z powtarzającymi się elementami.-------------------------------------------------
Pozdrawiam i życzę miłego dnia.

0

czesc dieki za pomoc w pracy. nie umiem tego zadania zrobic wiec nie wiem czy jest dobrze czy zle. ale przede wszyskim bardzo ci dziekuje. cczy te zadanie jest tak krotkie czy ja mam cos jeszcze dopisac?

swiety napisał:
A tak na marginesie to w bibliotece standardowej C++ istnieje między innymi
&gtszablon klasy multiset tj. zbiór z powtarzającymi się elementami.
&gt
&gt--
&gt-----------------------------------------------
&gtPozdrawiam i życzę miłego dnia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1