Tablica znaków
Ostatnio zmodyfikowano 2014-10-24 12:27
Secik Temat założony przez niniejszego użytkownika |
Tablica znaków » 2014-10-24 12:27:02 Witam, Mam do napisania klase ktora obsługuje tablice znaków. I umożliwia wprowadzanie znaków, sprawdzenie , wyswietlenie liczby elementow(wszystko to funkcjami), oraz konstruktor zerujacy tablice ze zbiorem. Nie wiem jak zainicjalizowac poprawnie zmienne indeks, oraz licznik. Bo tak ok, działa ale wydaje mi się ze tak nie wolno (pozatym wywala właśnie dwa warningi na temat złej inicjalizacji zmiennych). Pozatym coś nie tak jest z pętlami w mainie, bo program raz działa ok, a raz się zapętla . Jakie i gdzie zrobiłem błędy? #include <iostream> using namespace std;
class Zbior_znakow { int indeks = 0; static const int MaxEl = 255; int licznik = 1; public: char Tablica[ MaxEl ]; void zbior_dodaj( unsigned char c ); int zbior_nalezy( unsigned char c ); int zbior_licznosc(); Zbior_znakow(); int zbior_rozne(); };
void Zbior_znakow::zbior_dodaj( unsigned char c ) { Tablica[ indeks ] = c; indeks++; } Zbior_znakow::Zbior_znakow() { for( int i = 0; i < MaxEl; i++ ) Tablica[ i ] = '0'; } int Zbior_znakow::zbior_nalezy( unsigned char c ) { for( int i = 0; i < indeks; i++ ) { if( Tablica[ i ] == c ) { cout << "Element istnieje" << endl; return 0; } } cout << "Element nie istnieje" << endl; }
int Zbior_znakow::zbior_licznosc() { return indeks; } int Zbior_znakow::zbior_rozne() { for( int i = 0; i < indeks - 1; i++ ) if( Tablica[ i ] != Tablica[ i + 1 ] ) licznik++; return licznik; } int main() { Zbior_znakow testowy; char ch; char c; cout << "Czy dodac element do zbioru tak(1)/nie(0): "; cin >> ch; while( cin >> ch && toupper( ch ) != '0' ) { cout << "Podaj element: "; cin >> c; testowy.zbior_dodaj( c ); cout << "Czy dodac kolejny element tak(1)/nie(0): "; cin.get( ch ); } cout << "Sprawdzic czy element nalezy do zbioru tak(1)/nie(0)"; if( cin >> ch && toupper( ch ) != '0' ) { cout << "Podaj element: "; cin >> c; testowy.zbior_nalezy( c ); cout << "Sprawdczic czy element nalezy do zbioru tak(1)/nie(0): "; cin.get( ch ); } cout << "Liczba elementow w zbiorze wynosi: " << testowy.zbior_licznosc() << endl;; cout << "Liczba roznych znakow: " << testowy.zbior_rozne(); }
[/i] |
|
« 1 » |