MATLAB Prezentacja 4 id 287604

background image

MATLAB

PODSTAWY PROGRAMOWANIA

Ćwiczenia 4

SKRYPTY I INSTRUKCJE STERUJĄCE







Wydział Inżynierii Lądowej i Środowiska
Katedra Mechaniki Budowli i Mostów

copyleft by Marcin Kujawa & Łukasz Smakosz

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

2/25

Operatory logiczne

Operatory logiczne służą do określania warunków i zależności między
zmiennymi. Operatory używane w języku Matlab to:

==

równe

~=

różne

<

mniejsze

>

większe

<=

mniejsze równe

>=

większe równe

&

oraz (koniunkcja)

|

lub (alternatywa)



Uwaga: należy pamiętać, że pojedynczy znak równości oznacza w Matlabie
podstawienie i użycie go przy formułowaniu warunku równości spowoduje

błąd

i przerwanie realizacji skryptu.

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

3/25

Instrukcje sterujące

Instrukcje sterujące służą do wykonywania ciągu poleceń w pewnych
określonych warunkach. Należą do nich pętle FOR i WHILE oraz instrukcja
warunkowa IF.

Pętla FOR

Pętla FOR pozwala na powtarzanie wybranego ciągu instrukcji określoną
liczbę razy.

Pętli FOR używamy, kiedy liczba powtórzeń jest z góry znana.

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

4/25

Przykład:
Napisz skrypt, który generuje wektor A o wymiarze 1×5 o elementach
spełniających zależność

2 .



clear, clc

for

i=1:5

% otwarcie petli, liczba powtorzen

A(i)=2*i;

% potarzany ciag instrukcji

end

% zamkniecie petli

A

% wynik dzialania petli


background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

5/25

Przykład:
Napisz skrypt, który generuje wektor A o wymiarze 1×5 o elementach
spełniających zależność

2 .



clear, clc

for

i=1:5

A(i)=2*i

end

A



z każdym kolejnym przebiegiem pętli za i będą
podstawiane liczby od 1 do 5, ze skokiem co 1

za element na i-tym miejscu wektora A zostanie
podstawione wyrażenie 2*i, wartość i zmienia się z
każdym kolejnym przebiegiem pętli

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

6/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Stwórz skrypt liczący wartości funkcji

dla a=2, b=4, c=5 oraz

zmiennej

1 ; 3 (ze skokiem co 1).



background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

7/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Stwórz skrypt liczący wartości funkcji

dla a=2, b=4, c=5 oraz

zmiennej

1 ; 3 (ze skokiem co 1).

clear, clc

% definicja stalych

a=2;
b=4;
c=5;

for

x=1:3

y=a*x^2+b*x+c

end

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

8/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Zmodyfikuj poprzedni skrypt tak aby x przyjmował wartości od 5 do 7 ze
skokiem co 0.5.




background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

9/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Zmodyfikuj poprzedni skrypt tak aby x przyjmował wartości od 5 do 7 ze
skokiem co 0.5.

clear, clc

% definicja stalych

a=2;
b=4;
c=5;

for

x=5:0.5:7

y=a*x^2+b*x+c

end



background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

10/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Napisz skrypt, który generuje macierz A o wymiarze 3×6 o elementach

spełniających zależność

,

.




background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

11/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Napisz skrypt, który generuje macierz A o wymiarze 3×6 o elementach

spełniających zależność

,

.

clear, clc

for

i=1:3

for

j=1:6

A(i,j)=i*sqrt(2*j)/(i+j);

end

end

A




pętla zewnętrzna - generuje wiersze macierzy;
dla każdego i-tego wiersza realizowany jest
pełen przebieg pętli wewnętrznej

pętla wewnętrzna - generuje elementy we
wszystkich j kolumnach i-tego wiersza

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

12/25

Pętla WHILE

Pętla WHILE pozwala na powtarzanie ciągu instrukcji tak długo, jak długo
określone w niej wyrażenie warunkowe jest spełnione.

Jest wykorzystywana kiedy dokładna liczba powtórzeń nie jest z góry znana, ale
znany jest warunek powtarzania ciągu instrukcji, lub jeżeli operacja ma się
powtarzać aż do przerwania jej przez użytkownika.


Uwaga: błędna realizacja pętli może prowadzić do powtarzania zawartego w niej
ciągu instrukcji w nieskończoność. Żeby przerwać taką realizację należy użyć
kombinacji klawiszy

CTRL+C

przy aktywnym oknie Command Window.

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

13/25

Przykład:
Stwórz skrypt zwiększający wartość zdefiniowanej przez użytkownika zmiennej
i o 1, aż do osiągnięcia wartości 100. Przetestuj zachowanie skryptu dla różnych
wartości i.

clear, clc

i=input(

'Podaj i: '

);

while

i<100

% warunek realizacji petli

i=i+1

% wartosc i rosnie przy kazdym przebiegu

end

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

14/25

Przykład:
Stwórz skrypt obliczający pierwiastek kwadratowy z wprowadzonej przez
użytkownika liczby. Niech po wyświetleniu wyniku skrypt pyta się użytkownika
o chęć powtarzania obliczeń.

clear, clc

disp(

'Skrypt oblicza pierwiastek kadratowy liczby a'

)

i=

't'

;

% def zmiennej aktywujacej petle

while

i==

't'

% warunek powtarzania petli

clc

% czyszczenie ekranu po kazdym powtorzeniu

a=input(

'Wprowadz a: '

);

sqrt(a)

i=input(

'Kontynuowac [t/n]? '

,

's'

);

end

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

15/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Zmień powyższy skrypt tak, żeby akceptował tylko liczby dodatnie i powtarzał
się jeżeli warunek ten nie zostanie spełniony.


background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

16/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Zmień powyższy skrypt tak, żeby akceptował tylko liczby dodatnie i powtarzał
się jeżeli warunek ten nie zostanie spełniony.

clear, clc

disp(

'Skrypt oblicza pierwiastek kadratowy liczby a'

)

i=

't'

;

while

i==

't'

clc

a=input(

'Wprowadz dodatnie a: '

);

while

a<=0

clc

disp(

'Wprowadzona liczba nie jest dodatnia!'

)

a=input(

'Wprowadz dodatnie a: '

);

end

sqrt(a)

i=input(

'Kontynuowac [t/n]? '

,

's'

);

end

pętla wewnętrzna aktywuje się tylko wtedy
kiedy wprowadzona liczba jest niewłaściwa

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

17/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Podaj i skomentuj wynik działania następującego skryptu:

tol=1;

while

(1+tol)>1

tol=tol/2;

end

tol

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

18/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Podaj i skomentuj wynik działania następującego skryptu:

tol=1;

while

(1+tol)>1

tol=tol/2;

end

tol

tol =

1.1102e-16

pętla będzie się powtarzać tak długo, aż wartość
zmiennej tol, dzielona na pół przy każdym
przebiegu, stanie się dla Matlaba nieodróżnialna
od zera

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

19/25

Instrukcja warunkowa IF

Instrukcja pozwala na wykonanie jednego z kilku ciągów instrukcji zawartych
pomiędzy instrukcjami if, elseif, else.

Wybór realizowanego kodu zależy od spełnienia sprawdzanych kolejno wyrażeń
warunkowych if oraz elseif. Gdy żadne z nich nie jest spełnione,
wykonywany jest kod występujący za operatorem else.

Samodzielna instrukcja pozwala na jednorazową realizację fragmentu kodu.

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

20/25

Przykład:
Stwórz skrypt obliczający rzeczywiste pierwiastki równania kwadratowego
postaci:

.

a=10;, b=12;, c=3;

% definicja stałych

d=b^2-4*a*c;

if

d>0

% jezeli prawda, to...

disp(

'Delta>0'

)

x1=(-b+sqrt(d))/(2*a)

x2=(-b-sqrt(d))/(2*a)

elseif

d==0

% jezeli prawda, to...

disp(

'Delta=0'

)

x1=-b/(2*a)

x2=x1

else

% jezeli cokolwiek innego to...

disp(

'Delta<0'

)

disp(

'brak pierwiastkow rzeczywistych'

)

end

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

21/25

Przykład:
Stwórz skrypt obliczający rzeczywiste pierwiastki równania kwadratowego
postaci:

.

a=10;, b=12;, c=3;

% definicja stałych

d=b^2-4*a*c;

if

d>=0

% jezeli prawda, to...

x1=(-b+sqrt(d))/(2*a)

x2=(-b-sqrt(d))/(2*a)



else

% jezeli cokolwiek innego to...

disp(

'Delta<0'

)

disp(

'brak pierwiastkow rzeczywistych'

)

end

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

22/25

Przykład:
Stwórz skrypt tworzący menu z trzema opcjami, jedną z których jest 'koniec'.
Niech menu powraca po każdym wyborze do czasu, aż nie zostanie kliknięta
opcja 'koniec'.

clear, clc
m=0;

% def zmiennej aktywujacej petle WHILE

while

m~=3

% funkcja menu podstawia za m numer wybranej opcji

m=menu(

'Tytul'

,

'Opcja 1'

,

'Opcja 2'

,

'Koniec'

);

if

m==1

disp(

'Opcja 1'

)

elseif

m==2

disp(

'Opcja 2'

)

else

disp(

'Koniec'

)

end

end

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

23/25

Przykład:
Stwórz skrypt tworzący menu z trzema opcjami, jedną z których jest 'koniec'.
Niech menu powraca po każdym wyborze do czasu, aż nie zostanie kliknięta
opcja 'koniec'.

clear, clc
m=0;

% def zmiennej aktywujacej petle WHILE

while

m~=3

% funkcja menu podstawia za m numer wybranej opcji

m=menu(

'Tytul'

,

'Opcja 1'

,

'Opcja 2'

,

'Koniec'

);

if

m==1

disp(

'Opcja 1'

)

elseif

m==2

disp(

'Opcja 2'

)

else

disp(

'Koniec'

)

end

end

"Powtarzaj tak długo jak długo
m jest różne od 3"
,
tzn. aż w menu nie zostanie
wybrana opcja nr 3

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

24/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Napisz skrypt, który dla dowolnych wartości a, b, c wyliczy wartość d równą:

gdy a jest większe równe b oraz b jest równe c,

gdy a i c są mniejsze równe od b,

 ∗ gdy a jest równe b.

Jeżeli powyższe warunki nie zostały spełnione, na ekranie ma pojawić się
stosowny komunikat.

background image

MATLAB

4. Skrypty i instrukcje sterujące  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

25/25

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Napisz skrypt, który dla dowolnych wartości a, b, c wyliczy wartość d równą:

gdy a jest większe równe b oraz b jest równe c,

gdy a i c są mniejsze równe od b,

 ∗ gdy a jest równe b.

Jeżeli powyższe warunki nie zostały spełnione, na ekranie ma pojawić się
stosowny komunikat.

a=2;, b=2;, c=5;

if

(a>=b & b==c)

d=a+b

elseif

(a<=b & c<=b)

d=a-c

elseif

(a==b)

d=a*b

else

disp(

'Zaden z warunkow nie jest spełniony!'

)

end


Wyszukiwarka

Podobne podstrony:
MATLAB Prezentacja 3 id 287603
prezentacja 3 2 id 390139 Nieznany
PrezentacjaEV id 391923 Nieznany
Budowa jaja kurzego prezentacja id 94209
MATLAB Prezentacja 2
Matlab intro id 287680 Nieznany
miareczkowanie prezentacja id Nieznany
angielski prezentacja id 64318 Nieznany (2)
Prezentacja3 id 296000 Nieznany
Alginian do prezentacji id 5743 Nieznany (2)
MATLAB Prezentacja 5
prezentacja 2 id 195168 Nieznany
HIE Prezentacje id 201217 Nieznany
prezentacja 5 id 390176 Nieznany
MATLAB cw 2 id 287670 Nieznany
prezentacja 3 id 390136 Nieznany
2ZF Prezentacja1 id 32810 Nieznany (2)

więcej podobnych podstron