Programowanie w Octave

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Programowanie w języku Visual Basic
Język ANSI C Funkcje Wykład: Programowanie komputerów
Programowanie I Rekurencja.
PROGRAMOWANIE STRUKTURALNE
Opracował: Nowak Paweł
formatowanie kodu źródłowego
Wspólne skoroszytów Wspólne użytkowanie skoroszytów Arkusze i skoroszyty Tworzenie nowego skoroszytu Obliczenia w skoroszytach Przeglądanie wzorów w skoroszytach.
MS Access 2003 Kwerendy Paweł Górczyński.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
SO – LAB3 Wojciech Pieprzyca
Komunikacja z arkuszem. Iteracje. Funkcje.
Java – programowanie obiektowe
WINDOWS 95 WYCINEK AUTOSTART TWORZENIE POWIĄZAŃ PLIKÓW Z APLIKACJAMI
Instalacja Apacha Instalacja serwera www ogranicza sie do uruchomienia pliku .exe oraz do wpisania adresu serwera, oraz a administratora czego.
Pliki WSADOWE.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Opracowała: Iwona Kowalik
Podstawy programowania
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
ADRESOWANIE WZGLĘDNE I BEZWZGLĘDNE Ćwiczenia
ARKUSZ KALKULACYJNY JUŻ PROŚCIEJ SIĘ NIE DA Wersja OFFICE 2010
Tajemnice klawiatury.
Programowanie strukturalne i obiektowe
Podstawy programowania. Język C i C++– podstawy Temat: 1
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Poznaj bliżej program Microsoft Office Word 2007
Excel Wykład 3.. Importowanie plików tekstowych Kopiuj – wklej Małe pliki Kolumny oddzielone znakiem tabulacji Otwieranie/importowanie plików tekstowych.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Linux - polecenia.
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
PHP: warunki, pętle, switch, break, continue
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
ANNA BANIEWSKA SYLWIA FILUŚ
BUDOWANIE SCHEMATU BLOKOWEGO REALIZUJĄCEGO PROSTY ALGORYTM
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Podstawowe informacje o SYSTEMIE WINDOWS
Edytor tekstu Word.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Formatowanie tekstu w Microsoft Word
Współpraca z innymi aplikacjami. Organizacja informacji 10 XII 2013.
Projektowanie stron WWW
Wzorce slajdów programu microsoft powerpoint
Podstawy języka Instrukcje - wprowadzenie
Program Logomocja.
prezentacja multimedialna
Algorytmy- Wprowadzenie do programowania
PWSW Mechatronika Wykład 7 Matlab cd.
Temat 5: Instrukcje: print(), echo()
Formatowanie dokumentów
Dowiązania (linki) twarde i symboliczne
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
SciLab.
Tworzenie wykresów część I
EBSCOhost Mobile Przewodnik
Podstawowe zadania w programie Excel 2010 Klasa 2 TOR.
„Filtry i funkcje bazodanowe w EXCELU”
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Wprowadzenie do edytorów tekstu.
Wyższa Szkoła Ekologii i Zarządzania
Haskell Składnia funkcji.
Najważniejsze informacje dotyczące programu Sway.
Zapis prezentacji:

Programowanie w Octave

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 = 4

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.

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.

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 = 6561

Nazwy zmiennym można nadawać bardzo dowolnie 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 = 5

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.

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=8

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.

„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.

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:

octave3. 2:3 > pi ans = 3. 1416 octave 3 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.1416

Więcej informacji na temat polecenia format znajduje się w pomocy 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.

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ę.

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.

octave3. 2:39 > pwd ans = /home/q octave3. 2:40 > ls apro 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.Pdf 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/q

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]

Aby otrzymać wektor kolumnowy 1 0 0 konieczne jest wykonanie operacji transponowania. Jest ona reprezentowana za pomocą apostrofu ’. octave:6> v1’ ans = 1 0 0

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

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.

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; > endif

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.

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.

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 > endswitch

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.

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 > endwhile

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ę:

function parametry_wyjscia = nazwa_funkcji(parametry_wejscia) instrukcje; . . . endfunction

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; endfunction

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).

Funkcja obliczająca wartość n. : % Funkcja silnia wyznacza watość n Funkcja obliczająca wartość n!: % Funkcja silnia wyznacza watość n! function [wynik]= silnia(n) wynik=1; for i=1:n wynik=wynik*i; end endfunction

Nastę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 = 120

Dodatkowe pakiety w Octave

Pakiet przed użyciem trzeba : 1. zainstalować 2. załadować

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.

Ładowanie Ładowanie zainstalowanych pakietów : pkg load package_name

Lista zainstalowanych pakietów uzyskamy za pomocą pkg list Sprawdzanie Lista zainstalowanych pakietów uzyskamy za pomocą pkg list

Przykładowe pakiety:

Pakiet bim Pakiet do rozwiązywania równań różniczkowych cząstkowych.

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

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

Pakiet database Interfejs do baz danych SQL, obecnie tylko przy użyciu postgreSQL libpq.

Pakiet dicom Komunikacja cyfrowa w medycynie (DICOM) plików Wyjścia/Wejścia.

Pakiet general Ogólne narzędzia do Octave.

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

Wykonali: Ambroziak Robert, Bartkowski Radosław, Gałus Michał, Popławski Konrad, Telakowiec Robert, Zychowicz Sebastian

KONIEC Dziękujemy za uwagę.