/
Programowanie w Octave Programowanie w Octave

Programowanie w Octave - PowerPoint Presentation

calandra-battersby
calandra-battersby . @calandra-battersby
Follow
411 views
Uploaded On 2017-10-22

Programowanie w Octave - PPT Presentation

Podstawy języka Zmienne Wyniki obliczeń można przypisywać do zmiennych Nazwy zmiennych powinny zaczynać się od liter nie mogą zaczynać się od cyfr mogą od niektórych innych znaków Przypisanie wyniku do zmiennej a ID: 598225

octave3 octave

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Programowanie w Octave" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Programowanie w OctaveSlide2

Podstawy języka

Zmienne

Wyniki obliczeń można przypisywać do zmiennych. Nazwy zmiennych powinny zaczynać się od liter (nie mogą zaczynać się od cyfr, mogą od niektórych innych znaków). Przypisanie wyniku do zmiennej „a”:

octave3.2:1 > a=2+2

a = 4Slide3

Wpisanie nazwy zmiennej spowoduje

wyświetlenie

jej

wartości

(mozna to

potraktowa

ć

jak działanie

0-argumentowe

o nazwie takiej, jak nazwa zmiennej). Nazwy zmiennych

są wrażliwe

na

wielkość

liter – zmienna „a” to nie to

samo co

zmienna „A”.

octave3.2:4

> a

a = 4

octave3.2:5

> A

error:

‘A’ undefined near

line

5 column 1

W tej sytuacji Octave

wyświetlił

komunikat o

błędzie.Slide4

Można też nada

ć

zmiennej

wartość

wprost, aby potem

użyć

jej w obliczeniach.

octave3.2:2

>

k=7

k

= 7

oc t ave

3.2:3

> k^2

ans

= 49

ans

też

jest

zmienną,

tyle, ż

e tworzoną

automatycznie przez program.Slide5

Na niej

również można wykonywa

ć

obliczenia, co

bywa przydatne, zwłaszcza z

użyciem

historii

poleceń:

octave3.2:17

> 3

ans

= 3

octave3.2:1

8 >

ans

^2

ans

= 9

octave3.2:1

9 >

ans

^2

ans

= 81

octave3.2:20

>

ans

^2

ans

= 6561Slide6

Nazwy zmiennym

można nadawa

ć

bardzo dowolnie.

Można

nawet

nada

ć

zmiennej

nazwę istniejącej

funkcji:

octave3.2:5

> cos=7

cos = 7

octave3.2:6

> i =5

i = 5Slide7

W takiej sytuacji, aby znów

mie

ć

mozliwość

skorzystania z

funkcji

cos czy jednostki urojonej,

należy wyczyścić zmienne

poleceniem

clear

:

octave3.2:9

>

clear i cos

octave3.2:1

0 > i

ans

=0+1

i

Zmienne do wyczyszczenia

należy wpisywa

ć

po

słowie

clear

, oddzielone spacjami. Aby

wyczyścić

wszystkie zmienne,

należy wpisać

clear

all

.Slide8

Wydanie polecenia ze znakiem ś

rednika

na

końcu

spowoduje,

że

wynik nie zostanie

wyświetlony

.

Można też wydać

kilka

komend na raz, w jednej linii, oddzielonych przecinkami (wynik widoczny) lub ś

rednikami

(wynik niewidoczny):

octave3.2:18

>

a=2

;

b=a+2

,

c=b*2

;

b=4

octave3.2:19

> c

c=8Slide9

Polecenia

Oprócz wspomnianych

exit

i

clear

, Octave zawiera jeszcze kilka

poleceń niedotyczących bezpośrednio obliczeń. Są

to m. in.

quit

(to samo, co

exit

),

close

– do zamykania okien z wykresami (

używa się

tak samo,

jak

clear

– „all” zamyka wszystkie),

clc

czyści

ekran programu,

who

wyświetla listę

wszystkich zmiennych,

whos

wyświetla szczegółową listę

wszystkich zmiennych,

what

wyświetla listę

plików .m w

bieżącym

katalogu, oraz trzy dla

nas najważniejsze:

diary

– uruchamia „

pamiętnik

”,

format

– zmiana sposobu

wyświetlania

wyników i

help

– pomoc programu.Slide10

Pamiętnik

” to plik, w którym Octave zapisuje wszystko to, co

wida

ć

w jego oknie – zarówno polecenia, jak i odpowiedzi. Wpisanie

diary on

włącza

, a

diary off

wyłącza

zapis.

Domyślnie

, plikiem

pamiętnika

jest plik

diary

w katalogu roboczym Octave’a.

Można też nakaza

ć

zapis w innym pliku,

wpisując

np.

„diary

pamietnik.txt”.

Należy pamiętać,

ż

e

plik

pamiętnika

jest zapisywany na dysku dopiero w momencie wydania polecenia o

zakończeniu zapisu

(lub

zamknięciu

programu), oraz

że

przy ponownym

włączeniu

zapisu w tym samym pliku, nowa

zawartość zostanie

zapisana na

końcu

starej. Slide11

W przypadku

rozwiązywania zadań

z algebry liniowej przydatne bywa, aby wyniki były

przybliżane

za

pomocą

liczb wymiernych. W tym celu

należy wyda

ć

komendę „

format

rat

”. Innym przydatnym formatem jest format optymalnie

dopasowujący wyświetlanie każdej

liczby z osobna: „

format

short g”. Dla macierzy liczb zespolonych przydatny

może by

ć

także

format

free”

wyświetlający

liczby w postaci par (x, y), gdzie z =

x+i·y

. Wpisanie samego polecenia

format

powoduje powrót do

domyślnego

formatowania wyników: Slide12

octave3.2:3

>

pi

ans

=

3.1416

octave 3.2:4

>

format

rat

octave3.2:5

>

pi

ans

= 355/113

octave3.2:6

>

format

octave3.2:7

>

pi

ans

=

3.1416Slide13

Więcej

informacji na temat polecenia

format

znajduje

się

w pomocy. Wykonanie polecenia

help

powoduje

wyświetlenie

ogólnego tekstu pomocy, „

help

komenda”

wyświetla

natomiast pomoc do danej komendy, czyli np.

help format

wyświetli

opis wszystkich

możliwych

formatów. Zazwyczaj w pomocy do danej komendy wymienione

są polecenia o

podobnym działaniu, albo

działające

odwrotnie. Aby

zamknąć

pomoc (jak równiez zmienne

niemieszczące się na ekranie

oraz okna wykresów),

należy nacisnąć

przycisk „Q” na klawiaturze.Slide14

Aby

wykona

ć

wybrane polecenie lub działanie,

należy wpisa

ć

odpowiednią komendę

i

nacisnąć ENTER

. Polecenia

są zapamiętywane

wciśnięcie

strzałki w

gór

ę

na klawiaturze powoduje pokazanie ostatnio wpisanego polecenia, strzałkami góra/dół

można przeglądać całą zapisaną historię poleceń.

Wpisanie

ciągu

znaków i

naciśnięcie strzałki w gór

ę

spowoduje

przeglądanie

tylko tych

zapamiętanych

komend, które zaczynały

się

od tego wpisanego

ciągu

znaków, np. wpisanie „ex” i

naciśnięcie

strzałki w

gór

ę

pokaże

tylko komendy

zaczynające się

od „ex”,

np.

exit

i

exp

(2). Octave obsługuje

też

autouzupełnianie

poleceń.

Wpisanie „ex” i dwukrotne

naciśnięcie klawisza TAB wyświetli listę

wszystkich

poleceń zaczynających się

od „ex”.

Jeśli

wpisany zostanie taki

ciąg

znaków, który jest prefiksem tylko jednego polecenia, to autouzupełnianie po prostu uzupełni

tę nazwę. Slide15

Polecenia systemowe

Kilka

poleceń służy

do porozumienia

się

z systemem

operacyjnym.

pwd

pokazuje katalog roboczy Octave’a, czyli katalog, w którym

będzie

on szukał plików (przede wszystkim skryptów i funkcji

użytkownika),

ls

pokazuje

zawartość

tego folderu, a

cd

pozwala

zmieni

ć

katalog roboczy na inny. Takie same polecenia

funkcjonują

w systemach linuksowych. Działanie

poleceń

widoczne jest w

poniższym

przykładzie. Slide16

octave3.2:39

>

pwd

ans

=

/home/

q

octave3.2:40

>

ls

apro.m document.tex man .m octave

czasy.m Dokumenty mojaFunkcja.m obrazki

.m

diary

Lab12.

P

df Obrazy Pulpit

diary

.txt

octave3.2:41

>

cd

Dokumenty

octave3.2:42

>

pwd

ans

=

/home/

q/Dokumenty

octave3.2:43

>

cd

. .

octave3.2:44

>

pwd

ans

=

/home/

qSlide17

Tablice

GNU

Octave

daj dużą swobodę jeżeli chodzi o operowanie na wektorach i macierzach. Do ich reprezentacji służy podstawowa w tym programie struktura danych czyli tablica. Najprostszym sposobem utworzenia nowego wektora jest wymienienie wszystkich jego elementów

octave:5> v1 = [

1,0,0]

v1 =1

0 0

Otrzymujemy w ten sposób wektor wierszowy

v1 = [1, 0, 0]Slide18

Aby otrzymać wektor kolumnowy

konieczne

jest wykonanie operacji transponowania. Jest ona reprezentowana za pomocą apostrofu

’.

octave:6

> v1’

ans

=

1

0

0

 Slide19

Podobnie możemy zdefiniować nową macierz oddzielając kolejne wiersze średnikami.

octave:7> Id = [1,0,0;0,1,0;0,0,1]

Id =

1

0

0

0

1

0

0

0

1 Slide20

Niektóre macierze mogą być zbudowane poprzez wywołanie funkcji GNU

Octave

. Przykładem są macierze złożone z samych zer lub z samych jedynek. Aby uzyskać macierz o wymiarach 3 na 3 wypełnioną zerami wystarczy napisać

octave:8>

zeros

(3,3)

ans =

0

0 0

0

0 0

0

0 0

Analogicznie funkcja

ones

wypełnia macierz o zadanych rozmiarach jedynkami. Funkcje ta są przydatna w sytuacji gdy chcemy najpierw zbudować macierz o zadanym kształcie, którą w kolejnych krokach wypełniamy w określony sposób. Slide21

Instrukcja warunkowa

if

Instrukcja warunkowa

if

pozwala na wykonanie bloku kodu jeżeli spełniony zostanie zadany warunek. Konstrukcja ta ma składnię przypominającą składnię języka programowania C. W poniższym przykładzie wybierany jest jeden z dwóch warunków (x > 5 bądź x

≤5).

octave:1

> x = pow2 (2

);

octave:2

> if (x > 5

)

>

x = x - 10

;

> else

> x = x + 10

;

>

endifSlide22

Znaki > oznaczają tu kontynuację wpisywanej komendy po naciśnięciu klawisze ENTER . Pogram

sygnalizuje w ten sposób oczekiwanie na

zakończenie

rozpoczętej konstrukcji, takiej jak instrukcja

if

, bądź zamknięcie nawiasów. Jeżeli chcemy rozróżnić pomiędzy większą ilością możliwości, to możemy zastosować konstrukcję

if-elseif

tak jak w poniższym przykładzie

octave:3> x = pow2 (4

);

octave:4

> y = sin (pow2(10

));

octave:5

> if (y > 0

)

>

y = pow2(sin(5

))

>

elseif (y < 0 && x < 10

)

>

y = cos(5

)

> endif

Komenda

endif

oznacza zamknięcie konstrukcji. Slide23

Instrukcja

switch

Drugim sposobem warunkowego wykonywania komend jest instrukcja

switch

. Pozwala ona na wyszczególnienie co ma być wykonane w zależności od tego do jakiego zbioru należy zmienna. W poniższym przykładzie zmienna

test

ma wartość 2, wykonane zostanie przypisanie x =

0.Slide24

octave:29> test =

2

octave:30

> switch

test

>

case { 1 2 3 7 8 9

}

>

x =

0

>

case { 4 5 6

}

>

x =

1

> otherwise

>

x = -

1

>

endswitchSlide25

Pętla for

Do poruszania się po tablicach służy pętla for. Do wypisania kwadratów liczb od 1 do 10 służy polecenie

octave:1> for

i=1:10

> i^2

>

endfor

znaki > oznaczają, iż program czeka na wprowadzenie komendy

endfor

, który oznacza zamknięcie pętli for. Slide26

Pętla

while

Jeżeli chcemy wykonywać jakiś zestaw poleceń tylko dla danych spełniających określony warunek,

octave:25>

i=1

i

=

1

octave:26

>

while

(i^2<1000

)

> i^2

> i=i+1

>

endwhileSlide27

Funkcje

W

Octavie

, podobnie jak w innych

j

ę

zykach

programowania jest

możliwość

definiowania swoich

własnych

funkcji. Własne funkcje piszemy gdy chcemy aby program składał

si

ę

z bloków funkcjonalnych o

ściśle określonym

działaniu, co czyni program lepiej zrozumiałym i jest szczególnie zalecane w

przypadku

długich programów. Dodatkowo raz zapisana funkcja w

zewnętrznym

pliku funkcyjnym

może być

wielokrotnie wywoływana przez

różne programy. Zmienne występujące

w funkcjach

mają

charakter lokalny. Oznacza to

że

zmienne

występujące

w

danej funkcji

nie

będ

ą

widziane w innej funkcji. Komunikacja

pomi

ę

dzy funkcją,

a programem

ją wywołującym

odbywa

się

poprzez

parametry_wejscia

i

parametry_wyjscia

(parametry formalne). Funkcja

może być

wywoływana przez inne funkcje.

Funkcj

ę

zapisujemy w plikach tekstowych o nazwie

nazwa_funkcji.m

. Definicja funkcji posiada

następującą strukturę: Slide28

function

parametry

_

wyjscia

=

nazwa_funkcji

(

parametry_wejscia

)

instrukcje

;

.

.

.

endfunctionSlide29

Przykłady

Funkcja

obliczająca sum

ę

dwóch

liczb:

% Funkcja

suma_liczb

wyznacza

sume

dwóch liczb ’a +

b’

function

wynik =

suma_liczb

(

a,b

)

wynik

= a +

b;

endfunctionSlide30

Następnie

w środowisku

Octave

zdefiniuj zmienne a, b i wywołaj funkcję

suma_liczb

:

octave:1>

a=1

a

=

1

octave:2

>

b=2

b

=

2

octave:3

>

suma_liczb

(

a,b

)

ans

=

3

W linii nr 3

nast

ę

puje

wywołanie funkcji

suma_liczb

, jako parametry przekazujemy dwie zmienne, których suma ma

zostać

policzona, jako parametry

można podać również

konkretne liczby

np.

suma_liczb

(3

, 4). Slide31

Funkcja

obliczająca wartość

n

!:

% Funkcja silnia wyznacza

watość

n!

function

[wynik]=

silnia(n)

wynik=1;

for i=1:n

wynik=wynik*i;

end

endfunctionSlide32

N

astępnie

w

środowisku

Octave

wywołaj

funkcj

ę

silnia z

różnymi wartościami

:

octave:2

>

silnia(2)

ans

=

2

octave:3

>

silnia(4)

ans

=

24

octave:4

>

silnia(5)

ans

= 120Slide33

Dodatkowe pakiety w OctaveSlide34

Pakiet przed użyciem trzeba :

1

. zainstalować

2. załadowaćSlide35

Instalacja

Najpierw ściągamy

z

http://octave.sourceforge.net/packages.php

plik z pakietem. Zapisujemy go w katalogu

roboczym.

Instalujemy

poleceniam

:

pkg

install

package_file_name.tar.gz

Pakiet

jest kopiowany do odpowiedniego

katalogu.Slide36

Ładowanie

Ładowanie zainstalowanych pakietów

:

pkg

load

package_nameSlide37

Sprawdzanie

Lista

zainstalowanych

pakietów uzyskamy za pomocą

pkg

listSlide38

Przykładowe pakiety:Slide39

Pakiet bim

Pakiet do rozwiązywania równań różniczkowych

cząstkowych.Slide40

Pakiet communications

Komunikacja cyfrowa, korekta błędów w kodzie (kod kanału), funkcje kodu źródłowego, modulacja oraz ciało

skończone.Slide41

Pakiet Control

Komputerowe wspomaganie Control System Design (CACSD) Narzędzia GNU Octave, oparte na sprawdzonej Bibliotece

SLICOT.Slide42

Pakiet database

Interfejs do baz danych SQL, obecnie tylko przy użyciu postgreSQL

libpq.Slide43

Pakiet dicom

Komunikacja cyfrowa w medycynie (DICOM) plików

Wyjścia/Wejścia.Slide44

Pakiet general

Ogólne narzędzia do

Octave.Slide45

Pakiet financial

Symulacja Monte Carlo, opcje cenowe rutyny, manipulacje finansowe, funkcje kreślenia.Slide46

Wykonali:

Ambroziak Robert, Bartkowski Radosław, Gałus Michał,

Popławski Konrad, Telakowiec Robert, Zychowicz SebastianSlide47

KONIEC

Dziękujemy za uwagę.