Laboratorium Komputerowego Wspomagania Analizy i Projektowania



Podobne dokumenty
Operacje logiczne i struktury sterujące.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

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

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Kier. MTR Programowanie w MATLABie Laboratorium. 1. Tworzenie m-plików skryptowych i uruchamianie skryptów

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Ćwiczenie 1. Wprowadzenie do programu Octave

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wstęp do Programowania Lista 1

Pętle. Dodał Administrator niedziela, 14 marzec :27

Przetwarzanie sygnałów

1 Podstawy c++ w pigułce.

Ćwiczenie 1. Wprowadzenie do programu Octave

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Podstawy Programowania C++

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Pętla for. Wynik działania programu:

Podstawy Programowania Podstawowa składnia języka C++

System operacyjny Linux

Wstęp do programowania

Wprowadzenie do Scilab: podstawy języka Scilab

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje sterujące. Programowanie Proceduralne 1

Laboratorium Techniki Obliczeniowej i Symulacyjnej

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Matlab Składnia + podstawy programowania

Cw.12 JAVAScript w dokumentach HTML

Metody numeryczne Laboratorium 2

Blockly Kodowanie pomoc.

1 Podstawy c++ w pigułce.

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Pętle iteracyjne i decyzyjne

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

ŚRODOWISKO MATLAB cz.3 Implementowanie algorytmów w skryptach i funkcjach programu

Matlab Składnia + podstawy programowania

Algorytmy i struktury danych

Programowanie strukturalne i obiektowe

Podstawy programowania w języku C

po wykonaniu instrukcji wartość zmiennej x zostanie zwiększona o 50,a

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Konstrukcje warunkowe Pętle

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Wykład z Technologii Informacyjnych. Piotr Mika

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

lekcja 8a Gry komputerowe MasterMind

1 Programowanie w matlabie - skrypty i funkcje

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Scilab skrypty (programowanie)

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Języki skryptowe w programie Plans

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Struktura pliku projektu Console Application

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

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

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Bash - instrukcje warunkowe, pętle i funkcje

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Wykresy i interfejsy użytkownika

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

1 Przygotował: mgr inż. Maciej Lasota

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Język C, instrukcje sterujące (laboratorium)

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Pakiety Matematyczne - R Zestaw 2.

Rozdział 1 PROGRAMOWANIE LINIOWE

Odczyt danych z klawiatury Operatory w Javie

Wprowadzenie do programowania w języku C

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Instrukcje sterujące

WHILE (wyrażenie) instrukcja;

Programowanie komputerowe. Zajęcia 3

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Laboratorium Systemów SCADA

Modelowanie rynków finansowych z wykorzystaniem pakietu R

LibreOffice Calc VBA

Podstawy obsługi pakietu GNU octave.

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Transkrypt:

Laboratorium Komputerowego Wspomagania Analizy i Projektowania Ćwiczenie 3. Operacje logiczne i struktury sterujące. Opracował: dr inż. Sebastian Dudzik 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z elementami programowania wysokopoziomowego, a w szczególności operacjami logicznymi i strukturami sterującymi języka MATLAB. 2. Wprowadzenie 2.1. Relacje i wyrażenia logiczne 2.1.1. Operatory porównania Języki wysokiego poziomu zazwyczaj posiadają specjalny typ przechowujący wartości typu logicznego (prawda lub fałsz). Język MATLAB nie posiada typu logicznego. W języku MATLAB, logicznej prawdzie odpowiada macierz o wszystkich elementach niezerowych, logicznemu fałszowi macierz pusta lub zawierająca co najmniej jedno zero. Wyrażeń logicznych używa się w instrukcjach sterujących oraz przy przetwarzaniu macierzy. Operatory porównania zestawione w tab. 1 umożliwiają konstrukcje wyrażeń logicznych. Wyrażenie Relacja Op1 ==Op2 Op1 równe Op2 Op1 =Op2 Op1 różne Op2 Op1 < Op2 Op1 mniejsze niż Op2 Op1 > Op2 Op1 większe niż Op2 Op1 <= Op2 Op1 mniejsze równe Op2 Op1 >= Op Op1 większe Op2 Tab. 1. Operatory porównania w jęz. MATLAB Operatory porównania (relacyjne) badają czy pomiędzy operandami będącymi elementami macierzy zachodzą określone relacje. Jeśli relacja jest spełniona Operatory porównania należy stosować ostrożnie. Reprezentacja zmiennoprzecinkowa jest obarczona 1

Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC niedokładnością. Z tego powodu, nawet przy niewielkiej różnicy pomiędzy wartością spodziewaną a wartością otrzymaną, może dojść do sytuacji nieprzewidzianych (np. pętla nieskończona). 2.1.2. Operatory logiczne W języku MATLAB istnieją trzy rodzaje operatorów logicznych: operujące na elementach macierzy, będących operandami (operandami są macierze), warunkowe operatory logiczne (ang. short-circuit) operujące na skalarnych wyrażeniach logicznych i operatory bitowe operujące na poszczególnych bitach macierzy lub wartości całkowitych. Operatory logiczne pierwszego rodzaju zestawiono w tab. 2. Operator Op1 Op2 Op1 & Op2 xor(op1,op2) Op1 Funkcja logiczna Alternatywa Koniunkcja Różnica symetryczna Negacja Tab. 2. Operatory logiczne operujące na elementach macierzy Warunkowe operatory logiczne (ang. short-circuit) służą do wykonywania operacji na skalarnych wyrażeniach logicznych. Umożliwiają one podjęcie decyzji o wartości wyrażenia na podstawie analizy jedynie pierwszego operandu (jeśli jest to możliwe) jeżeli nie trzeba nie jest brany pod uwagę drugi operand. Kluczową różnicą pomiędzy operatorami operującymi na elementach macierzy i operatorami typu short-circuit jest to, że w przypadku tych pierwszych, jako operandy muszą wystąpić macierze (lub wektory) a w przypadku drugich wartości skalarne. Operatory typu short-circuit zestawiono w tab. 3. Operator Op1 && Op2 Op1 Op2 Opis Zwraca logiczną prawdę (1), jeżeli oba operandy mają wartość logicznej prawdy (1). Zwraca logiczny fałsz (0), jeżeli którykolwiek z operandów ma wartość logicznego fałszu (0). Zwraca logiczną prawdę (1), jeżeli jeden lub oba operandy mają wartość logicznej prawdy (1). Zwraca logiczny fałsz (0), jeżeli oba operandy mają wartość logicznego fałszu (0) Tab. 3. Operatory typu short-circuit w języku MATLAB Logiczne operatory bitowe zebrano w tab. 4. Jako argumentów wymagają one nieujemnych liczb całkowitych. W przykładach zamieszczonych w tab. 4 przyjęto następujące wartości skalarne: A = 28, bitowo: 11100, B = 21, bitowo: 10101. 2 Częstochowa 2007

ZTMAiPC Laboratorium Komputerowego Wspomagania Analizy i Projektowania Funkcja Opis Przykład bitand(a,b) Alternatywa bitowa bitand(a,b) = 20 (binary 10100) bitor(a,b) Koniunkcja bitowa bitor(a,b) = 29 (binary 11101) bitcmp(a,b) Uzupełnienie n-bitowe bitcmp(a,5) = 3 (binary 00011) bitxor(a,b) Bitowa różnica symetryczna bitxor(a,b) = 9 (binary 01001) Tab. 4. Logiczne operatory bitowe języka MATLAB 2.1.3. Funkcje logiczne Korzystając z funkcji logicznych można w wygodny sposób badać właściwości macierzy lub ich elementów. Nie chodzi tu o właściwości w sensie algebraicznym (rząd, dodatnia określoność itp.). Funkcje logiczne można podzielić na dwie grupy: do badania własności macierzy jako całości (tab. 5) oraz do badania własności elementów macierzy (tab. 6). Funkcja exist( nazwa ) isempty(x) issparse(x) isstr(x) isglobal(x) Działanie Zwraca 1 (prawda), jeżeli macierz o podanej w apostrofach nazwie istnieje, w przeciwnym razie zwraca fałsz (0) Przyjmuje 1, jeśli x jest macierzą pustą, w przeciwnym razie 0 Zwraca 1, jeśli x jest macierzą rzadką, w przeciwnym przypadku 0 Zwraca 1, jeśli x jest łańcuchem tekstowym, w przeciwnym przypadku 0 Zwraca 1, jeśli x jest zmienną globalną (macierzą lub łańcuchem), w przeciwnym przypadku 0 Tab. 5. Funkcje logiczne do badania własności całych macierzy 2.2. Instrukcje sterujące Instrukcje sterujące w języku MATLAB można podzielić na cztery grupy: instrukcje warunkowe, pętle, instrukcje obsługi błędów, końca programu return Instrukcje warunkowe pozwalają na wybranie, który blok kodu zostanie wykonany. Aby dokonać wyboru, w zależności, czy warunek jest czynie jest spełniony, należy użyć Częstochowa 2007 3

Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC Funkcja any(x) all(x) I=find(x) [I,J]=find(x) [I,J,V]=find(x) isnan(x) isinf(x) Działanie Wektory: 1 jeśli którykolwiek element jest niezerowy Macierze: tworzy wektor wierszowy (kolumny są zerami lub jedynkami). Jeżeli w kolumnie występuje przynajmniej jeden element niezerowy wartość elementu: 1. Podobnie jak any, 1 gdy wszystkie elementy są niezerowe Zwraca indeksy niezerowych elementów wektora x Zwraca indeksy wierszy i kolumn niezerowych elementów macierzy x Analogicznie do powyższego, dodatkowo wektor V zawiera elementy macierzy x Zwraca macierz z elementami=1 gdy dany element x nie jest liczbą Zwraca macierz z elementami=1 gdy dany element x jest równy +inf lub -inf Tab. 6. Funkcje logiczne do badania własności elementów macierzy instrukcji if.aby wybrać spośród pewnej liczby możliwych opcji, należy użyć instrukcji switch i case. Instrukcja if oblicza wyrażenie logiczne i wykonuje blok kodu (grupę instrukcji) zależnie od wartości tego wyrażenia. Najprostsza składnia instrukcji if jest następująca: if wyrażenie_logiczne instrukcje Jeżeli wartość wyrażenia logicznego jest prawdą (to znaczy równa jest jeden) MATLAB wykonuje wszystkie instrukcje pomiędzy if i. Po linii zawierającej wykonanie programu jest wznawiane. Instrukcje if można zagnieżdżać dowolną ilość razy. Jeżeli w wyniku obliczenia wyrażenia logicznego powstaje macierz lub wektor, aby było ono spełnione, wszystkie elementy muszą być niezerowe. else i elseif dodatkowo warunkują wykonanie instrukcji if. Instrukcja else nie posiada warunku logicznego. Instrukcje z nią związane są wykonywane jeżeli poprzedzające else wyrażenie po if zwróci wartość 0 (warunek po najbliższym, poprzedzającym if nie jest spełniony). Instrukcja elseif posiada warunek logiczny, który jest obliczany, jeżeli poprzedzający warunek if (wyrażenie) nie jest spełniony. Elementy (polecenia) związane z tą instrukcją są wykonywane, jeżeli warunek po elseif jest spełniony. Wewnątrz instrukcji if można wiele razy użyć instrukcji elseif. Jeżeli wartością wyrażenia warunkowego jest macierz pusta, warunek nie jest spełniony. Inna grupa instrukcji logicznych to: switch case otherwise. Podstawowa forma instrukcji switch case otherwise. switch expression (scalar or string) 4 Częstochowa 2007

ZTMAiPC Laboratorium Komputerowego Wspomagania Analizy i Projektowania case wartość1 instrukcje case wartość2 instrukcje... otherwise instrukcje % Wykonywane gdy wyrażenie równe wartość1 % Wykonywane gdy wyrażenie równe wartość2 % Wykonywane gdy żadna z wartości case % nie jest równa wartości wyrażenia Konstrukcja switch składa się z: słowa kluczowego switch i następującego po nim warunku logicznego, pewna liczba bloków case. Grupy składają się ze słowa kluczowego case i następującej po nim możliwej wartości wyrażenia, umieszczonych w jednej linii. W następnych liniach znajduje się dowolna ilość instrukcji (włączając w to instrukcje switch), opcjonalnej grupy otherwise. Składa się ona ze słowa kluczowego otherwise za którym znajdują się instrukcje wykonywane w przypadku gdy wyrażenie wyspecyfikowane po switch nie przybiera żadnej z wartości wymienionych w blokach case, instrukcji kończącej działanie bloku switch case otherwise Za pomocą pętli możliwe jest powtarzalne wykonywanie bloków kodu. Jedno powtórzenie zwane jest iteracją. Jeśli znana jest wymagana liczba iteracji, wykorzystuje się pętlę for. Instrukcja while jest bardziej odpowiednia jeżeli liczba wykonań pętli zależy od tego jak długo spełniony bądź nie jest określony warunek. Instrukcje continue i break dają większą kontrolę nad opuszczeniem (wyjściem z) pętli. Pętla for wykonuje instrukcję lub grupę instrukcji określoną liczbę razy. Pętla for ma następującą składnię: for index = start:krok:koniec instrukcje Domyślną wartością kroku jest 1. Możliwe jest wyspecyfikowanie każdej wartości kroku, włączając w to wartości ujemne. Pętle for mogą być zagnieżdżane. Często bardziej wydajną wersję programu obliczeniowego można stworzyć wektoryzując pętlę for. Pętle można indeksować za pomocą macierzy Pętla while powtarza instrukcję lub blok instrukcji tak długo jak wyrażenie sterujące przyjmuje wartość logicznej prawdy (w języku MATLAB 1). Pętla while ma następującą składnię: Częstochowa 2007 5

Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC while wyrażenie instrukcje Jeżeli wyrażenie przyjmuje wartość macierzową, każdy element tej macierzy musi być równy 1, aby wykonywanie instrukcji było kontynuowane. Aby zredukować macierz do wartości skalarnej, można wykorzystać funkcję all lub any. Opuszczenie pętli while następuje w każdym momencie wykonywanie poprzez użycie instrukcji break. Instrukcja continue w miejscu wystąpienia przenosi sterowanie pętli while lub for do następnej iteracji pomijając część bloku kodu występującego po niej. Instrukcja break kończy wykonanie pętli for lub pętli while. Instrukcje obsługi błędów podejmowanie działań w przypadku wystąpienia błędu. Do kontroli, czy określona koma w kodzie źródłowym powoduje powstanie błędu, służy instrukcja try. Jeżeli błąd wystąpił wewnątrz bloku try, MATLAB natychmiast przechodzi do odpowiadającego mu bloku catch. Blok ten jest odpowiedzialny za obsługę zaistniałego błędu. Ogólna forma instrukcji try-catch jest następująca: try instrukcja... instrukcja catch instrukcja... instrukcja W powyższym ciągu instrukcji, blok pomiędzy try i catch są wykonywane dopóki nie wystąpi błąd. Następnie wykonywane są instrukcje pomiędzy catch i. Powód błędu może być uzyskany za pomocą lasterr. 6 Częstochowa 2007

ZTMAiPC Laboratorium Komputerowego Wspomagania Analizy i Projektowania 3. Program ćwiczenia 1. Uruchomienie programu MATLAB. W ćwiczeniu wykorzystano program MATLAB w wersji 5.3 (R11.1). Uruchomienie programu następuje poprzez skrót na pulpicie (Matlab5.3) lub bezpośrednio z katalogu C:\MatlabR11\bin\. 2. Uruchomienie programu Wordpad.exe. Program można uruchomić poprzez wywołanie: Start\Programy\Akcesoria\ Wordpad lub poprzez skrót na pulpicie. 3. Przejście do katalogu roboczego dla grupy laboratoryjnej. Domyślnym katalogiem startowym (roboczym) programu MATLAB jest C:\Matlab R11\work\. Zadanie polega na przejściu do podkatalogu katalogu work. Podkatalog (utworzony na pierwszych zajęciach laboratoryjnych) nazwany jest wybranymi 2 nazwiskami studentów, wchodzących w skład grupy laboratoryjnej. (a) Wprowadzić: >>pwd W programie MATLAB każde wprowadzone polecenie zatwierdza się klawiszem <ENTER>. Zwrócić uwagę na ścieżkę dostępu do katalogu bieżącego. (b) Wprowadzić: >>cd nazwa_podkatalogu Parametr nazwa_pod-katalogu powinien składać się z nazwisk 2 wybranych studentów grupy laboratoryjnej (np. >>cd KowalskiNowak). 4. Użycie operatorów porównania. Dla: >>x=[1 5 2 8 9 0 1] i >>y=[5 2 2 6 0 0 2], wykonać poniższe komy i zinterpretować ich wyniki. (a) >>x>y oraz >>x<y (b) >>x==y oraz >>x<=y (c) >>x>=y oraz >>x y (d) >>x&y oraz >>x&( y) (e) >>(x>y) (y<x) oraz >>(x>y)&(y<x) (f) Skopiować zawartość okna poleceń programu MATLAB do programu Wordpad. (g) Wyczyścić zawartość okna poleceń programu MATLAB poleceniem: >>clc 5. Zastosowanie indeksowania logicznego. Mając dane wektory: >>x=1:10 i >>y=[3 1 5 6 8 2 9 4 7 0] wykonać poniższe komy i zinterpretować ich wyniki: (a) >>(x>3)&(x<8) oraz >>x(x>5) (b) >>y(x<=4) oraz >>x((x<2) (x>=8)) (c) >>y((x<2) (x>=8)) oraz >>x(y<0) Częstochowa 2007 7

Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC (d) Skopiować zawartość okna poleceń programu MATLAB do programu Wordpad. (e) Wyczyścić zawartość okna poleceń programu MATLAB poleceniem: >>clc 6. Przetwarzanie macierzy. Mając dane >>x=[3 15 9 12-1 0-12 9 6 1] napisać polecenia wykonujące poniższe operacje. (a) Zamiana dodatnich elementów x na zera. Wprowadzić: >>x(x>0)=0 % x(warunek) wybiera elementy, dla których >> % spełniony jest warunek (b) Zamiana wartości będących wielokrotnościami 3 na 3 (wykorzystać funkcję rem). Wprowadzić: >>x(rem(x,3)==0)=3 (c) Mnożenie parzystych elementów x przez 5 (d) Stworzenie wektora y złożonego z wartości x większych od 10 (e) Zamiana wartości x mniejszych od średniej na zera (wykorzystać funkcję mean) (f) Obliczenie sumy elementów x o wartościach nieparzystych (wykorzystać funkcję sum).! Wskazówka: do znalezienia indeksów I elementów wektora spełniających określony warunek logiczny służy funkcja find (np. I=find(x<1) znajduje indeksy elementów wektora x mniejszych od 1. (g) Skopiować zawartość okna poleceń programu MATLAB do programu Wordpad. (h) Wyczyścić zawartość okna poleceń programu MATLAB poleceniem: >>clc 7. Analiza fragmentów kodu języka MATLAB (instrukcja if... elseif... else... ). (a) Przewidzieć wyniki działania następującego fragmentu kodu: if n>1 %Jeśli n<1 m=n+1 %Obliczenia jeśli n<1 (spełniony warunek) else %W przeciwnym przypadku (warunek niespełniony) m=n-1 dla podanych niżej wartości zmiennej n: i.n = 7,m =? ii.n = 0,m =? iii.n = 10,m =? Ile wynosi m? Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić go. Porównać wyniki działania skryptu z przewidywaniami. Wprowadzić: >>edit Polecenie >>edit uruchamia edytor m-plików. W oknie edytora wprowadzić fragment kodu. Zapisać plik w pliku s1.m poprzez wywołanie polecenia Save z menu File. Następnie, wprowadzić: 8 Częstochowa 2007

ZTMAiPC Laboratorium Komputerowego Wspomagania Analizy i Projektowania >>n=7 W celu uruchomienia skryptu wprowadzić: >>s1 Powtórzyć powyższe 2 operacje dla pozostałych wartości zmiennej n (b) Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. (c) Wyczyścić zawartość okna poleceń programu MATLAB poleceniem: >>clc (d) Przewidzieć wyniki działania następującego fragmentu kodu (postępować jak w p. (a)): if z<5 %Jeśli z mniejsze niż 5 w=2*z %Obliczenia jeżeli spełniony warunek elseif z<10 %W przeciwnym wypadku, jeśli z<10 w=9-z %Obliczenia jeżeli spełniony warunek elseif z<100 w=sqrt(z) else w=z dla podanych niżej wartości zmiennej z: i. z=1, w=? ii. z=9, w=? iii. z=60, w=? iv. z=200 w=? Ile wynosi w? Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić go. Porównać wyniki działania skryptu z przewidywaniami. (e) Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. (f) Wyczyścić zawartość okna poleceń programu MATLAB poleceniem: >>clc 8. Analiza fragmentów kodu języka MATLAB (instrukcja switch... case). (a) Przewidzieć wyniki działania następującego fragmentu kodu ( jak w p. 7(a)): switch in1 case -1 k=2.1^(in1) %Wykonywane jeśli in1=-1 case 0 k= zero %Wykonywane jeśli in1=0 case 1 k=[1 2 3] %Wykonywane jeśli in1=1 Częstochowa 2007 9

Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC dla podanych niżej wartości zmiennej in1: i. in1=-1, k=? ii. in1=0, k=? iii. in1=1, k=? Ile wynosi k i jakiego jest typu? Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić go dla powyższych wartości zmiennej in1. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. (b) Przewidzieć wyniki działania następującego fragmentu kodu ( jak w p. 7(a)): clear switch in2 case 10 k=in2.*ones(3) case 15 k= 15 case 31 k=in2+30 otherwise k=0 disp( Inna wartość zmiennej ) dla podanych niżej wartości zmiennej in2: i. in2=10, k=? ii. in2=15, k=? iii. in2=31, k=? iv. in2=100 k=? Ile wynosi k i jakiego jest typu? Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić go dla powyższych wartości zmiennej in2. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. 9. Analiza fragmentów kodu języka MATLAB (pętla for) (a) Przewidzieć wyniki działania następującego fragmentu kodu: for i=1:10 i Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. 10 Częstochowa 2007

ZTMAiPC Laboratorium Komputerowego Wspomagania Analizy i Projektowania (b) Przewidzieć wyniki działania następującego fragmentu kodu: for i=1:10 k(i)=i Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. (c) Przewidzieć wyniki działania następującego fragmentu kodu: for i=1:5 for j=1:5 m(i,j)=j Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. 10. Analiza fragmentów kodu języka MATLAB (pętla while) (a) Przewidzieć wyniki działania następującego fragmentu kodu: i=1; while i<10 i Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad.! Powyższa pętla to pętla nieskończona. Najczęściej powstaje przez błąd w zapisie algorytmu. Przerwanie działanie skryptu (lub funkcji) jest możliwe poprzez Ctrl+C (b) Przewidzieć wyniki działania następującego fragmentu kodu: i=1; while i<10 i=i+1 Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. (c) Przewidzieć wyniki działania następującego fragmentu kodu: Częstochowa 2007 11

Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC clc; i=0; while i == 0 i=input([ Program MATLAB. Wyświetlić ten napis... jeszcze raz? 0 - TAK: ]); Napisać skrypt w języku MATLAB, zapisać na dysku i uruchomić. Porównać wyniki działania skryptu z przewidywaniami. Skopiować zawartość okna edytora oraz wyniki działania skryptu do programu Wordpad. 4. Opracowanie sprawozdania W sprawozdaniu należy umieścić polecenia oraz wyniki ich działania skopiowane w trakcie ćwiczenia z okna środowiska MATLAB. Do Każdej linii kodu oraz do każdego wyniku, należy dodać komentarz objaśniający. Przykład.... 2+round(6/9+3*2)/2 3 obliczenie wartości wyrażenia. Funkcja round(6/9+3*2) zaokrągla wynik działania 6/9+3*2 do najbliższej liczby całkowitej... 12 Częstochowa 2007