16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Aby funkcja inicjująca pole struktury zadziałała prawidłowo, jej<br />

definicja powinna wyglądać tak:<br />

void Inicjuj(char x)<br />

{<br />

licznik.znak = x;<br />

licznik.ile = 0;<br />

}<br />

//Deklaracja zmiennej znak.<br />

//x - wewnętrzna zmienna funkcji<br />

Inicjując strukturę licznik funkcja zeruje pole "ile" struktury.<br />

Przyda nam się jeszcze jedna funkcja PlusJeden(). Ta funkcja<br />

powinna zwiększyć zmienną służącą do zliczania ile razy wystąpił<br />

interesujący nas znak po każdym pojawieniu się odpowiedniego<br />

znaku (w tym przypadku "A").<br />

void PlusJeden(void) //Definicja funkcji<br />

{ //incrementującej licznik<br />

licznik.ile++;<br />

}<br />

Zbudowaliśmy licznik, który składa się z danych rozmieszczonych<br />

na polach struktury oraz dwu stowarzyszonych ze strukturą<br />

funkcji. Jeśli spróbujemy zastosować to w programie, gdzie:<br />

char znak_we - znak wczytany z klawiatury;<br />

program będzie wyglądać tak:<br />

void main()<br />

{<br />

char znak_we;<br />

Inicjuj('A');<br />

cout znak_we;<br />

if (znak_we == 'k' || znak_we == 'K') break;<br />

if(znak_we == licznik.znak) PlusJeden();<br />

}<br />

....<br />

W tekście mogą wystąpić zarówno duże jak i małe litery. Jeśli<br />

zechcemy zliczać i jedne i drugie, możemy posłużyć się funkcją<br />

biblioteczną C zamieniającą małe litery na duże - toupper().<br />

Najpierw poddamy wczytany zank konwersji a następnie porównamy z<br />

"zadanym" na polu licznik.znak:<br />

if(licznik.znak == toupper(znak_we)) PlusJeden();<br />

- 261-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!