ebook - do ÂściÂągnięcia - download - pdf - pobieranie

[ Pobierz całość w formacie PDF ]

żeby zdecydować,
czy Czytelnik polubi
programowanie i czy
warto inwestować
czas i nerwy w jego
studiowanie
Słowo kluczowe return
Rozwiązaniem alternatywnym względem korzystania z części else instrukcji warun-
kowej byłoby wcześniejsze opuszczenie metody. Służy do tego słowo kluczowe C++
return. Powoduje ono natychmiastowe opuszczenie metody. Jeżeli umieścimy je w in-
strukcji warunkowej, to w przypadku jej spełnienia, kod metody znajdujący się za tą
instrukcją nie będzie wykonany. Metoda Button1Click wyglądałaby wówczas tak jak
na listingu 3.9. Ja osobiście jednak nie lubię tego rozwiązania. Gdy je stosowałem, często
miałem problemy z rozbudową kodu i w efekcie w końcu i tak zmieniałem je na kon-
strukcję if..else.
58 Część I f& Zintegrowane środowisko programistyczne i język programowania C++
Listing 3.9. Z pozoru kod może wydawać się prostszy, ale moim zdaniem za bardzo przypomina użycie
instrukcji goto
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a=StrToFloat(Edit1->Text);
double b=StrToFloat(Edit2->Text);
double c=StrToFloat(Edit3->Text);
double Delta=b*b-4*a*c;
if (Delta
{
Edit4->Text="Brak rozwiązań (delta mniejsza od zera)";
return;
}
double x1=(-b-Sqrt(Delta))/(2*a);
double x2=(-b+Sqrt(Delta))/(2*a);
Edit4->Text="x1="+FloatToStr(x1)+", x2="+FloatToStr(x2);
}
W przypadku funkcji i metod zwracających wartość, za słowem kluczowym return
powinna znalezć się stała, zmienna lub wyrażenie, którego wartość ma być zwró-
cona. Oto przykład:
int sqr(int argument)
{
return argument*argument;
}
Na tym nie koniec
Jeżeli w powyższym programie do pól edycyjnych wpiszemy liczby a = 1, b =  2, c = 1,
to w wyniku uzyskamy dwa identyczne rozwiązania równe 1. Delta " = ( 2)2  4 1 1
= 4  4 jest bowiem w takim przypadku równa zero i rozwiązanie jest pierwiastkiem
podwójnym o wartości  b/2a. Przedstawienie wyniku w sposób widoczny na rysunku 3.3
jest wówczas oczywiście także poprawne, użytkownik aplikacji dostaje bowiem pra-
widłową wartość rozwiązania, choć powtórzoną dwa razy, ale byłoby chyba bardziej
elegancko, gdyby program podawał wówczas jedną liczbę i informował o tym, że rów-
nanie ma rozwiązanie będące pierwiastkiem podwójnym. Do tego zmierzać będą na-
stępne zmiany w kodzie metody Button1Click.
Typy całkowite C++
Zadeklarujmy w metodzie Button1Click zmienną IloscPierwiastkow typu bRte (listing 3.10):
Listing 3.10. Deklaracja liczby całkowitej
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a=StrToFloat(Edit1->Text);
Rozdział 3. f& Typy zmiennych i instrukcje sterujące 59
double b=StrToFloat(Edit2->Text);
double c=StrToFloat(Edit3->Text);
double Delta=b*b-4*a*c;
bEte IloscPierwiastkow;
...
Typ bRte jest 8-bitową reprezentacją liczby całkowitej bez znaku. Oznacza to, że w tego
typu zmiennych można przechowywać liczby o wartościach od 0 do 28  1 = 255. To
oczywiście o wiele za dużo jak na nasze potrzeby, ale osiem bitów, czyli jeden bajt,
jest najmniejszym rozmiarem zmiennej w C++.
Typ bRte nie jest w zasadzie typem wbudowanym C++, a jedynie  aliasem do unsigned
char. Typ char jest jednobajtowym typem liczb całkowitych, który używany jest za-
zwyczaj do kodowania znaków ASCII. Stąd bierze się jego nazwa (char od ang. cha-
racter oznaczającego znak). Modyfikator unsigned oznacza, że żaden z bitów tej liczby
nie koduje znaku, a więc że wszystkie dopuszczalne wartości są dodatnie. W przypadku
typu signed char możliwe wartości należałyby do zakresu od  128 do 127. Inne typy
całkowite przedstawione zostały w tabeli 3.4.
Tabela 3.4. Typy całkowite w C++Builder 2006
Zakres (najmniejsza Liczba bajtów (bitów)
Obecność Postać
Nazwa typu i największa wartość zajmowana przez
znaku literału
liczby) zmienną
unsigned char nie 0 .. 255 1 (8)
(lub byte)
signed char tak  128 .. 127 1 (8)
unsigned short nie 0 .. 65535 2 (16)
short tak  32768 .. 32767 2 (16)
unsigned int, nie 0 .. 4294967295 4 (32) 1U,1UL
unsigned long
int, long tak  2147483648 .. 2147483647 4 (32) 1, 1L
long long, __int64
tak  263 .. 263 1 8 (64)
Obliczmy ilość pierwiastków równania. Zależy ona tylko od wartości zmiennej Delta.
Jeżeli jest dodatnia, liczba pierwiastków równa jest dwa, jeżeli Delta równa jest 0, to
pierwiastek jest jeden, a jeżeli ujemna  zero. Do kodu metody wstawiamy zatem in-
strukcje if widoczne na listingu 3.11.
Listing 3.11. Sprawdzanie ilości rozwiązań równania
void __fastcall TForm1::Button1Click(TObject *Sender)
{ [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • bajkomoda.xlx.pl
  • Cytat

    Ad hunc locum - do tego miejsca.

    Meta