12 (32)

Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ...


Lekcja
12 - Kurs Visual C++ by SLASH







Na
dzisiejszej lekcji dowiemy siê co to s± tablice zmiennych.

A wiêc
tak - tablica zmiennych jest niczym innym jak zbiorem zmiennych o tym samym
typie. My najczê¶ciej bêdziemy stosowaæ jeden typ tablic - CStingArray -
czyli tablica przechowuj±ca dane tekstowe i ni± w g³ównej mierze siê
zajmiemy. Ale jeszcze do czê¶ciej stosowanych tablic nale¿y CUIntArray -
czyli tablica przechowuj±ca liczby ca³kowite (Tutaj nie pos³u¿yli¶my siê deklaracj±
int tylko Uint !). 


Pewnie
zastanawiasz siê po co to stosowaæ - ja sam na pocz±tku ucz±c siê Visual
Basica nie mog³em zrozumieæ po co mam wykorzystywaæ tablice - a jednak s±
niezbêdne. Pomy¶l sobie, ¿e mamy program który bêdzie pamiêta³ imiona i
nazwiska osób. Jak by¶ to zapisywa³ do zmiennych skoro nie wiesz ile tych
nazwisk bêdzie - mo¿esz sobie oczywi¶cie tworzyæ kilkaset zmiennych a potem
to obrabiaæ - np. dajmy na to, ¿e chcemy wszystkie nazwiska zapisaæ do pliku.
Poka¿e schematycznie jak by to wygl±da³o gdyby nie u¿ywaæ tablic:


///
Ustalamy sobie limit 100 imion i nazwisk

Imie1 = odczyt z pliku;

Nazwisko1 = odczyt z pliku;

Imie2 = odczyt z pliku;

Nazwisko2 = odczyt z pliku;

Imie3 = odczyt z pliku;

Nazwisko3 = odczyt z pliku;

Imie4 = odczyt z pliku;

Nazwisko4 = odczyt z pliku;

...

Imie100 = odczyt z pliku:

Nazwisko100 = odczyt z pliku;



/// Do tej pory napisali¶my ju¿ 200 linii !



A za pomoc± tablic mo¿emy to zrobiæ tak:



CStringArray Imie;

CStringArray Nazwisko;

Imie.SetSize(100);         //Ustalamy
ile zmiennych mo¿e siê mie¶ciæ w tablicy

Nazwisko.SetSize(100);

for (int x=1; x < 100; x++)

{

Imie[x] = odczyt z pliku;

Nazwisko[x] = odczyt z pliku;

}


// A
teraz mamy zaledwie 9 linii


Jak zauwa¿y³e¶
ka¿da element tablicy ma swój indeks dziêki któremu jest rozró¿niany. I w³a¶nie
dziêki funkcji for ³atwo jest tym manipulowaæ - bo zauwa¿, ¿e na pocz±tku
x = 1 tak wiêc nastêpuje zapi do zmiennej Imie[1] oraz Nazwisko[1]. Po tym
nastêpuje zwiêkszenie x do 2 i znów zapis, ale tym razem do Imie[2] i
Nazwisko[2]. W ten sposób ³atwo i szybko mo¿emy przyporz±dkowywaæ zmiennym
dane.


My¶lê,
¿e ju¿ rozumiesz co to s± tablice i jakie maj± zalety - a oto kilka operacji
na tablicach:


Najwa¿niejsze
jest stworzenie tablicy i nadanie jej rozmiaru - uczynili¶my to ju¿ w przyk³adzie
- ja jednak piszê to jeszcze raz na przyk³adzie:


CStringArray
tablica;

tablica.SetSize(50);


I w ten
oto sposób stworzyli¶my tablicê 50 elementow±. Musisz wiedzieæ, ¿e pierwszym rekordem tablicy jest 0 -
nie wykorzystali¶my go w poprzednim przyk³adzie, bo jako¶ lepiej jest zaczynaæ
od 1 ! Ale pamiêtaj, ¿e w tym przypadu najwy¿szy indeks to 49 ! Nie ma ju¿
indeksu 50 !


Do
tablicy mo¿na dodawaæ dane na kilka sposobów :


1.
tablica[3] = "Rekord 4"


Jest to
najpowszechniej stosowany sposób, gdy¿ mo¿na w nim bez problemów u¿yæ pêtli
for do zapisu tej tablicy. Ale co zrobiæ je¶li mamy ju¿ co¶ takiego:


CStringArray
tablica;

tablica.SetSize(50);

tablica[0] = "To jest 0";

tablica[1] = "To jest 1";

tablica[2] = "To jest 3";

tablica[3] = "To jest 4";

tablica[4] = "To jest 5";


I
widzimy, ¿e co¶ jest nie tak ! Chcemy dopisaæ jako tablica[2] = "To jest
2" - ale z przesuniêciem wszystkich danych o 1 index wy¿ej. Je¶li y¶my
po prostu napisali: tablica[2] = "To jest 2" to nasza tablica by wygl±da³a
tak:


tablica[0]
= "To jest 0";

tablica[1] = "To jest 1";

tablica[2] = "To jest 2";

tablica[3] = "To jest 4";

tablica[4] = "To jest 5";


Musieliby¶my
wszystkie rekordy zmieniaæ co by by³o trochê niewygodne - ale istnieje lepszy
sposób - mo¿emy to napisaæ tak:


tablica.InsertAt(2,
"To jest 2");


I dziêki
temu wszystkie rekordy le¿±ce po 1 przesunê³y siê na wy¿szy indeks.
Podobnie mo¿emy usuwaæ zmienne z tablicy przenosz±c wszystkie inne na ni¿szy
indeks - s³u¿y do tego:


tablica.RemoveAt(3);


A je¶li
chcemy opró¿niæ ca³± tablicê to stosujemy funkcjê:


tablica.RemoveAll(
);


Niekiedy
bêdzie nam potrzebna ilo¶æ elementów tablicy = je¶li zapisywali¶my je
kolejno zaczynaj±c od 0 to mo¿emy to sprawdziæ tak:


int ilosc
= tablica.GetUpperBound() + 1;


A je¶li
zaczynali¶my od 1 to wystarczy samo


int ilosc =
tablica.GetUpperBound();


To by by³o
na tyle je¶li chodzi o tablice - na nastêpnej lekcji poæwiczymy to sobie
trochê na ListBoxie którego tak¿e poznasz.



Pamiêtaj
! Je¶li masz jakikolwiek problem ze zrozumieniem tego kursu to napisz do mnie -
na ka¿dego maila odpisujê chêtnie. Tak¿e wszelkie opinie, za¿alenia itp.
kieruj na mój adres - chcê wiedzieæ czy ten kurs Wam siê podoba czy te¿ nie


Adres -

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • strefamiszcza.htw.pl
  • Copyright (c) 2009 TrochÄ™ ciekawostek – na weekend (czego to ludzie nie wymyÅ›lÄ… ... | Powered by Wordpress. Fresh News Theme by WooThemes - Premium Wordpress Themes.