Funkcje - Ogólne informacje

Transkrypt

Funkcje - Ogólne informacje
Funkcje - Ogólne informacje
1.
Deklaracja funkcji:
Function Nazwa_funkcji (Argument_1 As Typ, Argument_2 As Typ, …)
As Typ
……
Instrukcje
…….
End Function
UWAGA!!!!!!!!!!!
Funkcje zapisujemy zawsze w modułach. Funkcja zapisana w arkuszu nie będzie w
ogóle dostępna. Jeżeli część Modules jeszcze nie istnieje w danym pliku (zeszycie)
należy wybrać Insert/Module.
2.
Przeanalizuj poniższy przykład
Function PierwiastekIloczynu (x,y As integer) As Double
PierwiastekIloczynu=sqr(x*y)
End Function
3.
Linie deklaracji Function i End Function są pisane zamiast (!) Sub i End Sub. Ponadto
linia Function spełnia wiele ról:
i. Nazwa funkcji (w przykładzie ) jest jednocześnie zmienną typu
zadeklarowanego za nawiasem. Jest to domyślna zmienna w której zostanie
zapisana obliczona wartość funkcji.
ii. Ponadto w nawiasie znajdują się zadeklarowane zmienne odpowiedniego
typu będące argumentami funkcji. W przykładzie zadeklarowaliśmy dwie
zmienne x i y typu całkowitego.
Uwaga deklaracja zmiennych odbywa się dokładnie tak jak w
makropoleceniach z tą różnicą, że nie piszemy komendy Dim.
iii. Po uruchomieniu funkcji w Excelu linia deklaracji wywoła okno podobnie do
komendy InputBox gdzie należy podać argumenty funkcji.
UWAGA!
Napisanie funkcji polega na wprowadzeniu lini obliczającej
nazwa_funkcji= obliczenia wartości funkcji
W przykładzie jest to linia
PierwiastekIloczynu=sqr(x*y)
Jeżeli funkcja za każdym razem oblicza 0 sprawdź czy nie ma różnicy (literówki) między
nazwą funkcji po Function i nazwą zmiennej w linii obliczającej.
Funkcje
1. Zapoznaj się z częścią teoretyczną. Następnie przepisz przykład z punktu 2, przejdź do
Excela i uruchom kreatora funkcji jak pokazano na rysunku.
Jeżeli funkcja została napisana w module, pojawi się kategoria funkcji użytkownika.
Znajdziesz w niej swoją funkcję.
2. Napisz funkcję obliczającą pole przekroju rury o zadanej średnicy – Makropolecenie z
poprzednich ćwiczeń, ale jako funkcja.
3. Każda funkcja utworzona w Excelu posiada krótki opis. Aby dodać opis funkcji przejdź do
Excela, wybierz przycisk Makra. Pomimo, że lista zawiera tylko makra, okno to obsługuje
również funkcje. Po wpisaniu w okno na górze nazwy funkcji, uaktywni się przycisk opcje –
tam można dodać opis.
4. Dodaj sensowny opis działania stworzonej poprzednio funkcji.
5. (*) Napisz funkcję obliczającą wypływ przez przelew trójkątny, niezatopiony zgodnie ze
wzorem Q  1.331tg 2 
0.996
H 2.47 gdzie
.
Funkcja tangens to Tan( kąt). Ważne, funkcje trygonometryczne w Excelu liczą przy użyciu
radianów. Dodaj stosowny opis funkcji mówiący o konieczności zamiany stopni na radiany
i zakresach dla zmiennych.
6. Zwróć uwagę, że w przypadku funkcji nazwa zmiennej pojawia się w okienku
wprowadzania danych. Dlatego powinna ona sugerować użytkownikowi co oznacza.
Zdefiniuj funkcję o nazwie S_wazona2 obliczającą średnią ważoną dwóch liczb.
b.
Funkcja zależy od czterech argumentów typu Double, nazwijmy je:
Liczba1,
Waga1,
Liczba2,
Waga2.
c.
Wartość funkcji jest typu Double.
d.
Wzór na średnią ważoną
Zmienne tablicowe i pętle - Ogólne informacje
1.
Wprowadzanie danych dla średniej ważonej 3,4 lub więcej liczb byłoby dość uciążliwe.
Wygodniej będzie podać wszystkie dane jako blok komórek – podobnie jak jest to
robione np. dla funkcji suma służy do tego zmienna wielowymiarowa (typu
tablicowego).
Dim Zmienna As Range.
Wartości zmiennej typu Range to bloki komórek. Tym samym zawierają wiele
wartości. Do komórki w i-tym wierszu i j-tej kolumnie bloku (odpowiednik w macierzy
aij) odwołujemy się przez
Zmienna.Cells(i,j)
Jeżeli blok komórek to np. B4:F8 to komórka zmienna. Cells(2,1) odwołuje się do
komórki C4.
Projektując funkcję/ makropolecenie nie wiemy jakiej wielkości blok zaznaczy
użytkownik. Ta wielkość jest również zapisana w zmiennej jako:
Zmienna.Rows.Count – liczba wierszy
Zmienna.Columns.Count – liczba kolumn.
2.
Pętle.
Pętle służą do wykonywania sekwencji instrukcji pewną liczbę razy która
może nie być zadany z góry.
For licznik=początek To koniec step krok
Instrukcje pętli
Next licznik
Jeżeli koniec jest zmienną, krotność wykonania pętli jest zmienna. W szczególności
pętla
For licznik=początek To zmienna.Rows.Count step krok
Instrukcje pętli
Next licznik
Zostanie wykonana tyle razy ile wierszy zaznaczy użytkownik.
Funkcje 2 - Zmienne tablicowe i pętle
1.
2.
Zdefiniuj nową funkcję obliczającą średnią ważoną trzech liczb. Funkcja taka wymaga
podania aż sześciu wartości, dlatego użyjemy zmiennej tablicowej typu Range.
a.
Zadeklaruj funkcję zależącą od jednego argumentu typu Range i o wartościach
typu double
b.
Ustal, że pierwsza kolumna to liczby a druga to wagi (należy tę informację
umieścić później w opisie funkcji).
c.
Wykorzystaj wzór analogiczny do średniej ważonej 2 liczb (do różnych wartości
odnosimy się zmieniając odpowiednio numery w Cells.
d.
Dodaj opis funkcji
e.
Przejdź do Excela i wypełnij stosowny blok komórek liczbami i wagami.
f.
Sprawdź działanie funkcji.
Napisz funkcję liczącą długość wektora w dowolnym wymiarze zgodnie ze wzorem
a.
b.
c.
3.
Zadeklaruj funkcję zależącą od jednego argumentu wektor typu Range i o
wartościach typu double
Wektor będzie zadawany jako blok komórek w jednym wierszu. Zwróć uwagę, że
liczba zmiennych (wartość wymiaru) n to liczba komórek. Jeżeli zmienna nazywa
się wektor to wartość wymiaru n ukryta jest w wektor.Rows. Count
Jak stworzyć sumę nieznanej liczby wartości (n się zmienia)? Należy stworzyć
pętlę która wykona się n razy za każdym razem dodając jeden element. W
naszym wypadku będzie to następująca pętla
For i=1 To n
Suma=suma+wektor.cells(1,i)^2
Next i
Docelową wersją funkcji średniej ważonej jest średnia ważona dowolnej ilości liczb. W
takim przypadku nie wiemy z góry jak powinien wyglądać wzór (z ilu liczb należy liczyć
średnią).
Postępuj podobnie jak w punkcie 1 nazywając jeden argument tablicowy dane
jednak wzór musimy podać z wykorzystaniem pętli:
For i = 1 To dane.Rows.Count Step 1
Suma_iloczynow = Suma_iloczynow + dane.Cells(i, 1) * dane.Cells(i, 2)
suma_wag = suma_wag + dane.Cells(i, 2)
Next i
S_wazona = Suma_iloczynow / suma_wag