Writeln ('Równanie ma dwa pierwiastki rzeczywiste:
XI:10:5, ',', X2:10:5);
end;
Readln; end.
Na wstępie wyjaśnienie. Wykorzystaliśmy dwie nowe funkcje: Sqr i Sqrt. Pierwsza liczy kwadrat argumentu, druga — jego pierwiastek kwadratowy. Zamiast Sqr(B) można równie dobrze napisać B*B.
Wykorzystaliśmy kaskadową instrukcję warunkową. Najpierw sprawdzamy warunek Delta<0. Jeżeli nie jest spełniony, przechodzimy do następnego (Delta=0).
Zauważ, że instrukcja warunkowa jest zapisem w Pascalu bloku skrzynki sprawdzania warunku w schemacie blokowym. Narysuj fragment schematu blokowego, odpowiadającego kaskadowej instrukcji warunkowej (na przykładzie tego z ćwiczenia).
UCZENIE
3.27
Nasze zgadywanie niestety nie będzie skuteczne w 100%. Posłużymy się taką metodą: jeżeli ostatnią literą imienia będzie „a”, ocenimy, że mamy do czynienia z kobietą, jeżeli nie — z mężczyzną. Metoda nie jest doskonała: Kuba zostanie oceniony jako kobieta (mógł się jednak przedstawiać pełnym imieniem: Jakub, ale jaka jest wina Barnaby i Dyzmy?), Dolores, Karen i Inez — jako mężczyzna. W większości przypadków płeć odgadniemy jednak poprawnie (sprawdź imiona swoich znajomych). Wyjątki będziesz mógł zdefiniować w ćwiczeniu 3.72.
Musimy wyodrębnić ostatnią literę imienia. Umiemy już otrzymać dowolny podciąg tekstu. Aby jednak otrzymać ostatnią literę, musimy też znać jego długość. W tym celu wykorzystamy funkcję Length, której argumentem jest tekst (typ String), a wartością — jego długość (typu Integer):
program cw3_27;
{ Program wczytuje imię i próbuje odgadnac piec osoby }
{ na podstawie ostatniej litery imienia. }
{ Katalog r3_07 : 3_27.pas }
var
Imię : String [30];
Ostatnialitera : String [1];
begin
Write ('Podaj imię: ');
Readln (imię);
OstatniaLitera :- Copy (Imię, Length(Imię), 1); if ((OstatniaLitera - 'a') or (Ostatnialitera - 'A')) then Writeln (‘Zgaduje, ze jestes kobieta.') else
Writeln ('Zgaduje, ze jestes mezczyzna.');
Readln;
end.
Dwie rzeczy wymagają omówienia. Po pierwsze: dlaczego do zapamiętania ostatniej litery stosujemy zmienną typu String o maksymalnej długości 1, a nie typu Char? Czy to czasami nie jest to samo? Otóż nie jest. Łańcuch znaków, choćby i jednoliterowy, to w dalszym