Funkcje i Procedury. Wyrazenien

Podobne dokumenty
7. Pętle for. Przykłady

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

WYRAŻENIA ALGEBRAICZNE

3. Instrukcje warunkowe

4. Funkcje. Przykłady

x 2 = a RÓWNANIA KWADRATOWE 1. Wprowadzenie do równań kwadratowych 2. Proste równania kwadratowe Równanie kwadratowe typu:

Zasada indukcji matematycznej

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

Definicja i własności wartości bezwzględnej.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Informatyka II. Laboratorium Aplikacja okienkowa

Programowanie strukturalne i obiektowe. Funkcje

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Programowanie w Logice

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Liczby zespolone. x + 2 = 0.

OLIMPIADA MATEMATYCZNA

Algorytmy i struktury danych. Wykład 4

IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

1 Podstawy c++ w pigułce.

1 Nierówność Minkowskiego i Hoeldera

Programowanie w języku Python. Grażyna Koba

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Kongruencje twierdzenie Wilsona

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

3. FUNKCJA LINIOWA. gdzie ; ół,.

Programowanie w Baltie klasa VII

Języki i paradygmaty programowania

Teoria miary. WPPT/Matematyka, rok II. Wykład 5

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Wykorzystanie programów komputerowych do obliczeń matematycznych

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

PRZELICZANIE JEDNOSTEK MIAR

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Funkcja pierwotna, całka oznaczona na podstawie funkcji pierwotnej

Przykładowy zestaw zadań nr 2 z matematyki Odpowiedzi i schemat punktowania poziom rozszerzony

Wykład 8: klasy cz. 4

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Przekształcanie wykresów.

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

FUNKCJE. Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 5 Teoria funkcje cz.1. Definicja funkcji i wiadomości podstawowe

Jarosław Wróblewski Matematyka Elementarna, zima 2012/13

Logarytmy. Historia. Definicja

Maciej Grzesiak. Wielomiany

Wprowadzenie do Mathcada 1

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Zakład Systemów Rozproszonych

Nieskończona jednowymiarowa studnia potencjału

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Programowanie w języku C++ Grażyna Koba

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Zajęcia nr. 3 notatki

Wykład z równań różnicowych

Aby przejść do edycji w tym module należy wybrać zakładkę "Dla Pracowników" -> "Sprawdziany".

Finanse i Rachunkowość studia niestacjonarne Wprowadzenie do teorii ciągów liczbowych (treść wykładu z 21 grudnia 2014)

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Podstawowe struktury algebraiczne

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

1 Podstawy c++ w pigułce.

MATLAB tworzenie własnych funkcji

Przykładowe zadania z teorii liczb

Maciej Grzesiak Instytut Matematyki Politechniki Poznańskiej. Całki nieoznaczone

Granica funkcji wykład 4

Weźmy wyrażenie. Pochodna tej funkcji wyniesie:. Teraz spróbujmy wrócić.

Programowanie - wykład 4

Elementy rachunku różniczkowego i całkowego

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

Skrypt 7. Funkcje. Opracowanie: L1

Bukiety matematyczne dla gimnazjum

PLAN WYNIKOWY PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Rachunek różniczkowy funkcji dwóch zmiennych

Numeryczne rozwiązywanie równań i układów równań

Systemy operacyjne. Laboratorium 8. Perl find

Obliczenia iteracyjne

Rozwiązaniem jest zbiór (, ] (5, )

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

KONSPEKT FUNKCJE cz. 1.

dr inż. Ryszard Rębowski 1 WPROWADZENIE

Granice funkcji-pojęcie pochodnej

x a 1, podając założenia, przy jakich jest ono wykonywalne. x a 1 = x a 2 ( a 1) = x 1 = 1 x.

Transkrypt:

Funkcje i Procedury. Określanie Funkcji. Rozwiązanie skomplikowanych zagadnień czasami jest niemożliwe bez zastosowania własnej funkcji i procedur. Chcemy stworzyć dobre aplikacje? Trzeba umieć stworzyć kompaktowe i elastyczne procedury. f [ x _]: = Wyrazenie Określa funkcję.? f Daje informację o funkcji. Clear [ f ] Anuluje wcześniej określoną funkcję. Podkreślenie po x, po lewej stronie definicji, jest koniecznym i oznacza, że x_ jest formalnym argumentem. Jeśli funkcja była określona, wtedy ponowne określenie ignoruje poprzednie. Wyrażenie - to jest dowolne wyrażenie, które można zapisać w Mathematica i w wyrażeniu x występuje bez podkreślenia. Procedurę określa się następująco proc [ x _, y _,...]: = ( Wyrazenie1 ; Wyrazenie2;... Wyrazenien ) Tu proc jest nazwą procedury, a x_,y_,.. są formalnymi parametrami. Prawą stroną procedury może być dowolny ciąg wyrażeń zapisanych w okrągłych nawiasach i oddzielony między sobą średnikiem. Jeśli za ostatnim wyrażeniem nie ma średnika, wtedy wartością naszej procedury będzie wartość tego wyrażenia, w przeciwnym razie wartość procedury nie będzie określona. W Mathematica wszystkie nazwy standardowych procedur i funkcji zaczynają się dużą literą. Aby nazwa naszej procedury nie pokrywała się z nazwą standardowej, lepiej będzie, żeby pierwsza literka w nazwie naszej funkcji była mała. Bardzie szerokie możliwości daje procedura określona jako Module: nazwa@x_, y_,...d := Module@8a, b,...<, < Ciało procedury >D Tu Module jest słowem kluczowym; nazwa to dowolna nazwa, która zaczyna się małą literą; x_,y_,...formalne parametry a {a,b,...} to zmienne lokalne, ich znaczeń nie widać poza granicą procedury. Przy określaniu funkcji typu Module, aby uniknąć błędów, zaleca się od początku zapisać pusty moduł, jak poniżej: nazwa[x_,y_,..]:=module[{}, ] a potem uzupełnić ją. Ciało procedury zapisuje się między przecinkiem i prawym kwadratowym nawiasem. Funkcję warunkową określa się następująco: f [ x _]: = Wyrazenie/;warunek; 24

Wszystkie reguły po wyrażeniu zaczyna się od znaków /;. Efekt takiego określenia widać na poniższym przykładzie. In[38]:= g@x_d := x^2 + 2x 4ê;x 2; g@x_d := 2x+ 8ê;2< x 4; g@x_d := x^2+ 12 x 32 ê;x> 4; a wykres tej funkcji wygląda następująco: In[43]:= Plot@g@xD, 8x, 2, 8<D 4 2-2 2 4 6 8-2 -4 Out[43]= Graphics Funkcję tą mogliśmy deklarować inaczej: g@x_d := If@x 2, x^2 + 2x 4, If@2 < x 4, 2x+ 8, x^2+ 12 x 32DD Jest oczywiste, że te dwie funkcje są identyczne, czyli w Mathematica zawsze istnieje kilka sposobów rozwiązywania problemów. W Mathematica można pisać funkcje z nieokreślonymi ilościami formalnych parametrów. W takich przypadkach, formalny parametr zapisuje się dwoma lub trzema podkreśleniami. x_ (jedno podkreślenie) wskazuje na to, że w tym miejscu może wystąpić jedno wyrażenia. x (Dwa podkreślenia) wskazuje na to, że w tym miejscu może wystąpić jedno lub więcej wyrażeń. x (trzy podkreślenia) wskazuje na to, że w tym miejscu może wystąpić zero lub więcej wyrażeń. Trzeba być bardzo ostrożnym przy zapisywaniu funkcji z nieokreślonymi ilościami formalnych parametrów. W poniższych przykładach pokazujemy, jak działa funkcja z nieokreślonymi parametrami w różnych przypadkach, czyli jak wynik zależy od postaci samej funkcji. 25

In[1]:= f@x_, y D := x 2 + y In[2]:= f@ad Out[2]= a 2 In[3]:= f@a, bd Out[3]= a 2 + b In[4]:= f@a, b, cd Out[4]= a 2 + b+ c się. Tu określona jest prosta funkcja. po lewej stronie której y ma potrójne podkreślenie. Tu zamiast y domyślnie bierze się zero. Parametry, jeśli ich ilość jest większa niż dwa, sumują In[5]:= f@x_, y D := x 2 + 2y In[6]:= f@ad Out[6]= 2+ a 2 Tu zamiast y domyślnie bierze się jeden. In[7]:= f@ a, bd Out[7]= In[8]:= a 2 + 2b f@ a, b, cd Out[8]= a 2 + 2bc występują Parametry, jeśli ich liczba jest większa niż dwa, jako iloczyn. In[9]:= f@x_, y D := x 2 + y 3 In[10]:= f@ad Całkiem inny otrzymujemy wynik, gdy funkcja zmienia postać. Out[10]= 3 + a 2 In[11]:= f@a, bd Out[11]= a 2 + b 3 In[12]:= f@a, b, cd Out[12]= a 2 + b c3 Tu każdy następny parametr pojawia się w potędze. Domyślne parametry i opcje. Czasami trzeba określić funkcje w której pewne argumenty są domyślne i można je omijać. Szablon x _ : v oznacza, ze argument w tym miejscu można opuścić i za jego wartość przyjmuje się znaczenie ν, jak to pokazano na przykładzie: 26

In[1]:= f@x_, n_: 3D := x^n + 1 In[2]:= f@ad Out[2]= 1+ a 3 In[3]:= f@a, 5D Out[3]= 1+ a 5 Również za pomocą opcji można określić domyślne argumenty, różnica jest w tym, że opcja nadaje nazwę argumentowi. Formalny parametr, który powinien być określony jako opcja, pisze się z potrójnym podkreśleniem. f[x_, opts ]:=<Ciało procedury> Aby zastąpić domyślną wartość argumentu bieżącym parametrem opts, w ciele procedury trzeba napisać: Opcja/.{opts}/Options[f] A domyślna wartość argumentu określa się stosując instrukcję Options. Options[f]={opcja wart} gdzie f to jest nazwą procedury, opcja nazwą domyślnego argumentu, który można pomijać a wart to domyślna wartość argumentu. Działanie tej instrukcji zobaczymy w następujących przykładach: a) Gdy instrukcja Options określa opcję poza ciałem procedury: Załóżmy, że chcemy określić funkcje g [ x] = x m + 1 i chcemy, by tam gdzie potęga jest ominięta domyślną wartością potęgi było 3. In[1]:= Options@gD = 8m 3< Out[1]= 8m 3< In[2]:= g@x_, opt D := Hx^m ê. 8opt<ê. Options@gDL + 1 In[4]:= g@xd Out[4]= 1+ x 3 In[5]:= g@x, m > 8D Out[5]= 1+ x 8 b) Gdy instrukcja Options jest określana wewnątrz procedury: Załóżmy chcemy określić funkcje SumaPotęgy@x, yd = xn + y m niech wtedy domyślnymi wartościami będą n=2, m=2. i gdy potęgi są ominięte, 27

In[6]:= SumaPotęgi@x_, y_, opt D := HOptions@SumaPotęgiD = 8n 2, m 2<; Hx^n ê. 8opt< ê. Options@SumaPotęgiDL + Hy^m ê.8opt<ê. Options@SumaPotęgiDLL In[7]:= SumaPotęgi@x, yd Out[7]= x 2 + y 2 In[8]:= SumaPotęgi@x, y, m 7, n 10D Out[8]= x 10 + y 7 Funkcje prymitywne można określić trzema sposobami: Function[x, ciało] funkcja prymitywna ma jeden argument x, który można zastąpić dowolnym wyrażeniem. Function[{x 1, x 2, }, ciało] Ciało& funkcja prymitywna ma wiele argumentów. funkcja prymitywna, w której argumenty są zdefiniowane jako # lub #1, #2 itp. #1 to będzie pierwszy parametr, #2- drugi itp. Na przykład, jeżeli chcemy określić funkcje s=sin(x) 3 +1, jako funkcję prymitywną piszmy In[1]:= s = Function@x, Sin@xD^3 + 1D Out[1]= Function@x, Sin@xD 3 + 1D a następnie x zamieniamy na ArcSin(a), otrzymujemy In[2]:= s@arcsin@add Out[2]= 1+ a 3 Jeżeli chcemy obliczyć sumę kwadratów pierwszych n naturalnych liczb, lepiej będzie skorzystać z funkcji prymitywnej następującej postaci In[4]:= f = H#2 2 + #1L &; a następnie wystarczy napisać In[5]:= n = 7; FoldList@f, 0, Range@nDD Out[5]= 80, 1, 5, 14, 30, 55, 91, 140 < 28