Programowanie Delphi obliczenia, schematy blokowe

Informatyka II MPZI2 – ćw.2 Programowanie Delphi – obliczenia, schematy blokowe Zastosowania obliczeń numerycznych Wyrażenia arytmetyczne służą do za...
8 downloads 0 Views 181KB Size
Informatyka II MPZI2 – ćw.2

Programowanie Delphi – obliczenia, schematy blokowe Zastosowania obliczeń numerycznych Wyrażenia arytmetyczne służą do zapisu wykonywania operacji obliczeniowych w trakcie przebiegu programu. Budujemy je podobnie jak w Excelu czy Matlabie. Wyrażeniem arytmetycznym może być stała, zmienna lub zapis złożonej operacji na stałych, zmiennych i funkcjach (standardowych, bibliotecznych lub własnych użytkownika) z użyciem operatorów arytmetycznych. Bardziej skomplikowane wyrażenia zawierają operatory i funkcje. Ponadto używamy nawiasów (tylko okrągłych!) w celu zmiany kolejności działań. Wyrażenia używane są najczęściej w instrukcjach przypisania po prawej stronie symbolu := Operatory arytmetyczne Rozróżniamy następujące operatory: jednoargumentowe – zmiana znaku, + powielenie znaku, dwuargumentowe multiplikatywne * mnożenie, / dzielenie (rzeczywiste), ■div■ dzielenie całkowite (obydwa argumenty operacji muszą być całkowite, wynik jest całkowity), ■mod■ reszta z dzielenia całkowitego (jak wyżej), (znak ■ przedstawia spację), dwuargumentowe addytywne + dodawanie, – odejmowanie. UWAGA: • Dla operatorów tej samej wagi - kolejność działań od lewej do prawej. • Jeżeli w wyrażeniu są tylko argumenty całkowite i nie ma dzielenia rzeczywistego to wynik jest typu integer. • Jeżeli występuje chociaż jeden element typu real lub dzielenie rzeczywiste to wynik jest typu real. Na elementach tekstowych (char, string) możemy dokonywać operacji łączenia tekstów (tzw. konkatenacja) używając znaku +. Przykład: nazwisko := 'Kowalski' ; tekst_1 := 'Pan■' + nazwisko ;

W rezultacie zmienna tekst_1 przyjmie wartość tekstową 'Pan Kowalski'. Funkcje standardowe W czasie poprzedniego ćwiczenia poznaliśmy już kilka funkcji standardowych (wbudowanych), jak np. sin, random, sqrt. Istnieje możliwość użycia w wyrażeniu funkcji matematycznych (w kontekście identycznym jak zmienne proste) w postaci:

identyfikator_funkcji (lista_argumentów) Argumentem może być wyrażenie odpowiedniego typu. Zestaw funkcji standardowych przedstawia tabela Funkcje standardowe Znaczenie Nazwa funkcji Typ wyniku Typ argumentu Przykład

wartość bezwzględna pierwiastek kwadratowy kwadrat ex logarytm naturalny sinus cosinus arcus tangens część całkowita

sqrt(x) sqr(x) exp(x)

całkowity rzeczywisty rzeczywisty rzeczywisty rzeczywisty

całkowity rzeczywisty rzeczywisty rzeczywisty rzeczywisty

ln(x)

rzeczywisty

rzeczywisty

ln(2*x-4)

sin(x) cos(x) arctan(x)

rzeczywisty rzeczywisty rzeczywisty

sin(3*alfa) cos(beta/2) arctan(fi)

int(x)

rzeczywisty

rzecz. (radiany) rzecz. (radiany) rzeczywisty całkowity rzeczywisty całkowity rzeczywisty rzeczywisty rzeczywisty porządkowy porządkowy

abs(x)

abs(-2) sqrt(5.45) sqr(x-5) exp(-x/2)

int(2.5)

część frac(x) rzeczywisty frac(3.6) ułamkowa zaokrąglenie round(x) całkowity round(3.6) obcięcie trunc(x) całkowity trunc(3.6) znak następny succ(z) porządkowy succ ( 'g' ) znak poprzedni pred(z) porządkowy pred( 'j' ) znak chr(n) znakowy całkowity chr(49) o podanym kodzie ASCII kod znaku ord(z) całkowity znakowy ord( '1' ) długość tekstu length(tekst) łańcuchowy całkowity length( 'alfa' ) liczba losowa całkowita random(n) całkowity całkowity random(100) liczba losowa rzeczywi- random rzeczywisty brak random sta z przedziału (0, 1) W wyrażeniach istotne są wszelkie ograniczenia obszaru określoności funkcji, np. użycie: ln(-3) sqrt(-5.0) spowoduje błędy wykonania. Brak w języku operatora lub funkcji standardowej potęgowania (w Excelu i Matlabie ^), stąd można dla niewielkich całkowitych potęg zastosować zapis w postaci: x4

to

x*x*x*x

lub

sqr (x)*sqr (x) lub

sqr (sqr (x)),

Można wykorzystać funkcję power(podstawa, wykładnik), jej użycie wymaga dopisania deklaracji modułu Math w sekcji uses. uses sysutils,math; begin writeln( power(5.1, 3.7)); readln; end.

Oczywiście można wykorzystywać funkcję power() do obliczania pierwiastków dowolnego stopnia. Brak w języku również innych, często potrzebnych funkcji, jak na przykład tangens czy logarytm dziesiętny. Trzeba wówczas korzystać z elementarnych wzorów matematycznych:

log =

tg =

Należy zwrócić uwagę na możliwość wystąpienia przekroczenia dopuszczalnych zakresów wartości zmiennych przy obliczeniach. Poniższe wyrażenie w postaci matematycznej:

1 sin( 3 x − 3 ) 2π można zapisać w przykładowej postaci: 1/2/pi*sin(3*x-3)

W przypadku zastosowania w instrukcji przypisania wyrażenia zawierającego zmienną, której aktualnie przypisujemy wartość, np.: x := x + 5 ;

obliczana jest wartość wyrażenia (wartość x powinna być wcześniej określona), a następnie uaktualniana wartość zmiennej, np. w ciągu instrukcji: ... x := 5 ; x := sqr(x) ; {x będzie równe 25} x := x +2 ; {powiększenie poprzedniej wartości x o 2, x będzie równe 27} ...

Funkcje standardowe nie wymagają deklaracji ich użycia. Pisząc wyrażenie należy szczególnie uważać na: • operatory arytmetyczne – szczególnie mnożenia: 2*x a nie 2x • format wykładniczy – np.1.34E-8 (107 to 1e7 a nie e7), • argumenty funkcji trygonometrycznych – podajemy je w radianach, w przypadku konieczności używania kąta w stopniach należy przeliczyć kąt na radiany wyrażeniem stopnie*pi/180, (pi jest predefiniowaną nazwą stałej). • hierarchię operatorów – odpowiednie stosowanie nawiasów, • brak w języku operacji potęgowania, brak funkcji tangens, cotangens, logarytm dziesiętny, • różnicę między funkcjami o podobnych nazwach – sqr i sqrt. Wyrażenia logiczne Wyrażeniem logicznym może być: 1. stała logiczna true ≡ prawda false ≡ fałsz 2. zmienna typu boolean, 3. porównanie w sensie liczbowym lub tekstowym (kolejności alfabetycznej) według schematu:

wyrażenie 1 operator_porównania wyrażenie 2 Wynikiem porównania jest wartość logiczna true (prawda) lub false (fałsz). Operatorami są (dla przypomnienia):


=



„różny”

Przykłady porównań: x12 < 2 (4*x+1.5) < 30.7 nazwisko >= 'G'

{nazwiska od litery G do końca alfabetu}

4. stałe logiczne, zmienne logiczne, porównania (w nawiasie!), połączone operatorami logicznymi: - jednoargumentowymi: not■ (negacja) np. not■(i < 5)

- dwuargumentowymi: ■and■ (iloczyn logiczny –"i" – jednoczesne spełnienie warunków) np. (x > 0) ■and■ (x < 3) ■or■ (suma logiczna –"lub" – alternatywne spełnienie warunków) np. (x < 0) ■or■ (x > 100)

(gdzie znak ■ przedstawia spację). Poniższa tabela przedstawia wartości wyrażeń logicznych w zależności od wartości argumentów: Argument 1 Argument 2 and or

false true false true

false false true true

false false false true

false true true true

Przykładowe użycie: Sprawdzenie przynależności do przedziału: if (x>0) and (x