Fakulta elektrotechniky a komunikačních technologií
VUT v Brně, Ústav automatizace a měřicí techniky

Bakalářská práce
Tvorba úloh pro výuku předmětu: Praktické programování v C++
Pavel Šabatka, rok 2007/2008

# Návod k adtcheck.h

Tento návod je testován pro MS Visual C++ 2005.

## Připojení k projektu

Nejprve je třeba soubor připojit k projektu:

1. pomocí volby Add existing item:
2. Do hlavičkového souboru s deklarací kontrolovaného datového typu připojit hlavičkový soubor direktivou preprocesoru #include, tj. uvést do něj:
   // soubor kruhovy_seznam.h
   #include ”adtcheck.h”

## Registrace alokované paměti a výpisy

Pro kontrolu datového typu slouží šablona třídy adtcheck. V souboru s definicí kontrolovaného datového typu je nutné vytvořit proměnnou této třídy. Prvním parametrem šablony je typ objektu prvku ADT, druhým je datový typ, který je uložen ve vašem ADT má být vypisován. Deklarace proměnné může vypadat takto:

// soubor kruhovy_seznam.cpp
adtcheck<TPrvek, int> kont;

Dále je třeba všechny prvky datového typu registrovat ke kontrole a při jejich odstrnění je z kontroly odebrat. K tomu slouží tyto metody:

#### registruj()

metoda, která registruje prvek do seznamu prvků. Tuto metodu je nutné volat pro každý prvek v ADT, v jiném případě bude docházet k chybovým hlášením knihovny. Prvním parametrem musí být vždy adresa registrovaného prvku, druhým parametrem ukazatel na ukazatel na data, která jsou uložena ve struktuře. Dále následují ukazatele na ukazatele dalších prvků, ty mohou být jeden nebo dva. Příklady registrace prvků:

// hlavičky metody registruj()
// void registruj (TPrvek*, TTyp_dat**, TPrvek*);
// void registruj (TPrvek*, TTyp_dat**, TPrvek*, TPrvek*);
// Příklady volání metody registruj():
// PRO SEZNAM (1 ukazatel na další prvek):
kont.registruj(NovyPtr, &NovyPtr->data, &NovyPtr->Uk_na_dalsi);
// PRO STROM (2 ukazatele na další prvek):
kont.registruj(Ptr, & Ptr->data, & Ptr->Uk1, & Ptr ->Uk2);

#### odeber()

metoda, která odebere prvek s danou adresou ze seznamu kontrolovaných prvků. Příklady volání metody:

// hlavička metody odeber()
// void odeber (TPrvek*);
// Příklad volání metody odeber():
kont.odeber(*Odebirany_Prvek);

#### zkontroluj()

metoda, která, která spouští kontrolní mechanizmus nad ADT. Příklad volání metody:

// hlavička metody zkontroluj()
// void zkontroluj(void);
// Příklad volání metody zkontroluj():
kont.zkontroluj();

## Kontrola

Knihovna adtcheck.h umí dle obsahu ukazatelů rozpoznávat kontrolovaný datový typ, tj. zda-li se jedná o seznam či strom. Zkontroluje správnost ukazatelů a nenajde-li chybu, strukturu vytiskne. Kontrolní výpis může vypadat např. takto: