Podstrony
|
[ Pobierz całość w formacie PDF ]
wÅ‚asność ReadOnlR (z ang. tylko do odczytu) zmieniamy na true. %7Å‚eby wyraznie za- znaczyć, że nie jest to pole, którego wartość bÄ™dzie dostÄ™pna do edycji, proponujÄ™ zmienić kolor jego tÅ‚a na identyczny z kolorem formy (rysunek 3.1). W tym celu z rozwijanej listy w inspektorze obiektów przy wÅ‚asnoÅ›ci Color wybieramy pozycjÄ™ clBtnFace. TÄ™ samÄ… domyÅ›lnÄ… wartość ma wÅ‚asność Color formy. 2 O tym, jak wykonać te czynnoÅ›ci, dowiedzieliÅ›my siÄ™ w pierwszym rozdziale. 48 Część I f& Zintegrowane Å›rodowisko programistyczne i jÄ™zyk programowania C++ Rysunek 3.1. Interfejs aplikacji znajdujÄ…cej rozwiÄ…zania równania kwadratowego Obok tych komponentów kÅ‚adziemy jeszcze przycisk TButton. Za pomocÄ… inspektora wÅ‚asnoÅ›ci zmieniamy jego wÅ‚asność Caption np. na Oblicz (rysunek 3.1). NastÄ™pnie klikamy go dwukrotnie, aby utworzyć domyÅ›lnÄ… metodÄ™ zdarzeniowÄ…. Przeniesieni zo- staniemy do edytora, gdzie zobaczymy utworzonÄ… metodÄ™ przez najbliższy czas bÄ™- dzie to nasz caÅ‚y ogródek, w którym bÄ™dziemy uczyć siÄ™ programowania w C++. Deklarowanie zmiennych W C++ nie ma wydzielonego miejsca, w którym należy deklarować zmienne. Ogromne znaczenie ma jednak to, czy zadeklarujemy jÄ… wewnÄ…trz, czy na zewnÄ…trz metody Button1Click. W drugim przypadku bÄ™dziemy mieli do czynienia ze zmiennÄ… globalnÄ… istniejÄ…cÄ… przez caÅ‚y czas dziaÅ‚ania programu. W pierwszym ze zmiennÄ… lokalnÄ… tworzonÄ… tylko na czas wykonywania metody Button1Click. RozwiÄ…zanie drugie ogra- nicza ilość wykorzystywanej pamiÄ™ci. Jest również znacznie bezpieczniejsze, bo Å‚a- twiej kontrolować wartość zmiennej, która nie może być zmieniana nigdzie indziej jak tylko w metodzie Button1Click. Musimy obliczyć wartość delty. Zadeklarujmy wiÄ™c w metodzie Button1Click zmiennÄ… lokalnÄ… Delta typu double. W tym celu w metodzie wpisujemy typ double, a po spacji nazwÄ™ zmiennej Delta (listing 3.1). Typ double potrafi przechowywać liczby rzeczy- wiste. Na ich przechowywanie posiada 64-bity (8 bajtów), co daje mu możliwość przechowywania liczb o wartoÅ›ci ponad ±10300. Listing 3.1. Deklaracja zmiennej Delta typu Double void __fastcall TForm1::Button1Click(TObject *Sender) { double Delta; } Jeżeli wiÄ™cej zmiennych ma ten sam typ, to możemy je zadeklarować razem. Dodajmy jeszcze trzy zmienne o nazwach a, b i c typu double (listing 3.2). Zmienne te bÄ™dÄ… przechowywać wartoÅ›ci współczynników równania kwadratowego. Listing 3.2. W metodzie zadeklarowane sÄ… teraz cztery zmienne lokalne void __fastcall TForm1::Button1Click(TObject *Sender) { double a,b,c,Delta; } RozdziaÅ‚ 3. f& Typy zmiennych i instrukcje sterujÄ…ce 49 PodkreÅ›lmy, że sÄ… to zmienne lokalne metody Button1Click. To znaczy, że powstajÄ… w momencie wywoÅ‚ania tej metody, a usuwane sÄ… z pamiÄ™ci w momencie jej zakoÅ„- czenia. Jak wspomniaÅ‚em, można również tworzyć zmienne globalne, tzn. zmienne, których życie trwa przez caÅ‚y okres dziaÅ‚ania programu. PrzykÅ‚adem takiej zmiennej jest Form1 zadeklarowane w interfejsie moduÅ‚u Unit1. Ogólnie rzecz biorÄ…c, należy jednak ograniczać korzystanie ze zmiennych globalnych, a wszystkie niezbÄ™dne dane przesyÅ‚ać przez argumenty funkcji i metod. %7Å‚eby dać Czytelnikowi dobry przykÅ‚ad, w tym rozdziale i w caÅ‚ej książce w ogóle nie bÄ™dziemy używać zmiennych globalnych. Inicjacja i przypisanie wartoÅ›ci zmiennej Zmienne zadeklarowane w listingu 3.1 i 3.2 nie sÄ… automatycznie inicjowane! To oznacza, że rezerwowana jest pamięć, w której przechowywana bÄ™dzie zmienna, ale jej zawartość nie jest czyszczona. W konsekwencji wartość tak zadeklarowanej zmiennej jest przy- padkowa. Każda deklarowana zmienna powinna być inicjowana, tj. powinniÅ›my przypi- sać jej wartość w momencie utworzenia (takie sformuÅ‚owanie dotyczy zmiennych lokal- nych, do których ograniczamy siÄ™ w tej książce). Należy to zrobić w nastÄ™pujÄ…cy sposób: double a=1; Zmienna, która zostaÅ‚a zainicjowana, może oczywiÅ›cie zmieniać wartość w trakcie dziaÅ‚ania programu. W takiej sytuacji mówimy o operacji przypisania, np. double a=1; a=2; W przypadku typów prostych, jak int, obie te czynnoÅ›ci można utożsamiać. Różnice pojawiajÄ… siÄ™ w przypadku klas, ale to temat wykraczajÄ…cy poza zakres tej książki3. Dygresja na temat typów rzeczywistych w C++Builderze C++Builder nie ma zbyt wielu typów rzeczywistych, ale sÄ… one w zupeÅ‚noÅ›ci wystar- czajÄ…ce. Wszystkie (raptem trzy) wymienione zostaÅ‚y w tabeli 3.1.
[ Pobierz całość w formacie PDF ]
zanotowane.pldoc.pisz.plpdf.pisz.plkskarol.keep.pl
|