Przeglądaj wersję html pliku:

wiczenie 14_15


cwicz_14_15

H M P R O G R A M O W A N I E

str. 35
W D E L P H I

ĆWICZENIE 14 – Zadanie matematyczne - przygotowanie do tworzenia własnych
funkcji Jeśli wykonałeś samodzielnie poprzednie ćwiczenia, to potrafisz: ♦ tworzyć interfejs użytkownika programu, ♦ deklarować zmienne, ♦ przypisywać wartości zmiennym poprzez wyrażenia arytmetyczne, ♦ grupować instrukcje proste w instrukcje złożone, ♦ zaprogramować warunkowe lub wielowariantowe wykonanie instrukcji. Na wykładzie zostały przedstawione niektóre funkcje matematyczne z tzw. podstawowej biblioteki matematycznej Delphi. Zastosowanie każdej funkcji polega na wstawieniu jej nazwy w instrukcji przypisania, czyli po prawej stronie znaku := . Jeśli funkcja ma argumenty, to należy wstawić je wewnątrz nawiasu. Oto kilka przykładów.

wysokosc:=a*sin(alfa) calosc:=int(a/x) obwod_kola:=pi*srednica pole_kola:=pi*sqr(134.73) potega_8:=sqr(sqr(sqr(x)))
Jak widać argumentem funkcji może być inna funkcja, a także wyrażenie arytmetyczne. Zwrócić przy tym trzeba uwagę na typy argumentów. Funkcja pi nie posiada w ogóle argumentów. Dość ubogo przedstawiają się możliwości działań typu potęgowanie i pierwiastkowanie. W zakresie powyższych operacji arytmetycznych są do dyspozycji tylko funkcje: sqr() - kwadrat argumentu, sqrt() - pierwiastek kwadratowy argumentu, exp() - liczba e do potęgi. Istnieje także funkcja ln() - logarytm naturalny argumentu. Ważne jest to, że we wszystkich tych funkcjach argumentami mogą być liczby typu rzeczywistego. Jakie jest ograniczenie na argument funkcji ln() ? Niejednokrotnie w inżynierskich zadaniach projektowych lub w obliczeniach naukowych zachodzi potrzeba podnoszenia liczb dodatnich do potęg o wykładnikach niecałkowitych. Podobnie, niekiedy trzeba obliczyć pierwiastek, którego stopień jest liczbą niecałkowitą. Przypomnij sobie przy okazji, że
n

a =a

1 n

,
m

a co za tym idzie

a

m n

=

( a)
n

.

Standardowy zestaw funkcji dostępnych w Delphi nie „obsługuje wprost” podobnych przypadków. 35

cwicz_14_15

H M P R O G R A M O W A N I E

str. 36
W D E L P H I

Z A D A N I E . Utwórz program do obliczania dowolnej potęgi liczby typu rzeczywistego (oczywiście dodatniej). Przypomnij sobie podstawowe właściwości logarytmowania i wykorzystaj rezultat poniższych przekształceń. x

y=a ln y = x ln a y = e x ln a a x = e x ln a

a więc

Wykonaj polecenia. 1. Przy pomocy Eksploratora Windows sprawdź czy istnieje lub utwórz folder Potega, podrzędny w stosunku do tradycyjnego folderu roboczego Delphi. Będzie to Twój nowy folder roboczy. 2. Wyczyść ten folder roboczy. 3. Rozpocznij w Delphi nowy projekt (nie nowy formularz) i utwórz interfejs użytkownika programu według własnego pomysłu. 4. Zaprogramuj cały tok obliczeń pamiętając o sprawdzeniu poprawności danych. 5. Wytestuj program. 6. Zapisz projekt w folderze roboczym nadając mu nazwę potega.dpr.

ĆWICZENIE 15 – Bloki programowe - bloki algorytmu
Każde zagadnienie, które podlegać ma oprogramowaniu poddane musi być analizie. Ma ona na celu wyodrębnienie głównych etapów działań i różnych przypadków szczególnych w zagadnieniu. Powstaje w ten sposób algorytm rozwiązania zadania. Etapy działań często ujmowane są w instrukcje złożone, moduły, bloki instrukcji lub procedury. Przypadki szczególne są jednym z powodów stosowania w programie różnych gałęzi sterowanych np. instrukcjami warunkowymi. W ćwiczeniu zwróć szczególną uwagę na umiejętne podzielenie całego zadania programistycznego na etapy i oprogramowaniu przypadków szczególnych. Z A D A N I E . Opracuj program do obliczeń pierwiastków równania kwadratowego, czyli pierwiastków równania o postaci

ax2 + bx + c = 0
Danymi do obliczeń są współczynniki a, b, c równania. Rysunek niżej przedstawia propozycję podziału zagadnienia na etapy. Nazwać go można ogólnym (blokowym) algorytmem rozwiązania zadania. Linią kreskową obwiedzione są bloki algorytmu obejmujące odpowiedź w gałęziach then lub else przyszłych instrukcji warunkowych if . 36

cwicz_14_15

H M P R O G R A M O W A N I E

str. 37
W D E L P H I

Wczytanie danych: a, b, c Pokazanie pełnej postaci równania

Obliczenie ∆ Czy ∆≥0 ??? tak Czy ∆>0 ??? tak Obliczenie pierwiastka kwadratowego z ∆ Obliczenie pierwiastków x1 x2 Wyprowadzenie wyników z pierwiastkami x1 x2 nie Obliczenie pierwiastka podwójnego x1,2 Wyprowadzenie wyniku z pierwiastkiem podwójnym x1,2 Wyprowadzenie komunikatu o braku rozwiązania

nie

Wykonaj polecenia. 1. Przy pomocy Eksploratora Windows sprawdź czy istnieje lub utwórz folder Rownanie, podrzędny w stosunku do tradycyjnego folderu roboczego Delphi. Będzie to Twój nowy folder roboczy. 2. Wyczyść ten folder roboczy. 3. Rozpocznij w Delphi nowy projekt (nie nowy formularz) i utwórz interfejs użytkownika programu według własnego pomysłu. 4. Zaprogramuj cały tok obliczeń wg powyższego schematu. Powinien on być zawarty w procedurze, która jest uruchamiana, gdy użytkownik wybierze polecenie OBLICZ (przycisk, opcja menu, itp.). 5. Wytestuj program. 6. Spróbuj fragmenty programu, które na schemacie są objęte ramką, ująć miedzy słowa begin ... end , czyli utwórz instrukcje złożone (jest to zabieg trochę sztuczny, ale uzmysłowi możliwość składania grup instrukcji w bloki tematyczne). Za słowem begin dodaj kilka spacji , potem dwa znaki // i dopisz komentarz, np. tytuł bloku. 7. Zapisz projekt w folderze roboczym nadając mu nazwę Row_kw_1.dpr. 37

cwicz_14_15

H M P R O G R A M O W A N I E

str. 38
W D E L P H I

Zadania do samodzielnego wykonania
Stosowanie funkcji standardowych Zadanie 1. Stosując odpowiednie funkcje biblioteki Delphi opracuj program,
który obliczy pole powierzchni i objętość czworościanu foremnego. (czworościan foremny, to bryła, której każda ściana jest trójkątem równobocznym). Zadanie 2. Stosując odpowiednie funkcje biblioteki Delphi opracuj program, który zamienia współrzędne punktu w układzie biegunowym (r, alfa), na współrzędne w układzie kartezjańskim (x,y). Zadanie 3. Stosując odpowiednie funkcje biblioteki Delphi opracuj program, który zamienia współrzędne punktu w układzie kartezjańskim (x,y), na współrzędne punktu w układzie biegunowym (r, alfa).

38

 
statystyka