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.331tg 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