01 ĆWICZENIA

background image

ZA

A

JĘCI

1

1

1

WPROWADZENIE DO INFORMATYKI II



ZASADY TWORZENIA ALGORYTMÓW

Z

Z

A

A

S

S

A

A

D

D

Y

Y

T

T

W

W

O

O

R

R

Z

Z

E

E

N

N

I

I

A

A

A

A

L

L

G

G

O

O

R

R

Y

Y

T

T

M

M

Ó

Ó

W

W

I PO

O

DSTAWY OBSŁUGI MAT

T

LAB

I

I

P

P

OD

D

S

S

T

T

A

A

W

W

Y

Y

O

O

B

B

S

S

Ł

Ł

U

U

G

G

I

I

M

M

A

A

TL

L

A

A

B

B




ALGORYTMY

algorytm

=z def. przepis prowadzący do rozwiązania zadania, problemu. W przepisie

tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm
będzie określony.

Rodzaje algorytmów:

a.

Iteracyjne - rodzaj algorytmu i programu, w których wielokrotnie wykonuje się
pewne instrukcje, dopóki nie zostanie spełniony określony warunek,

b.

Rekurencyjne - takie procedury, które w swojej definicji posiadają wywołanie
samej siebie,

c.

Sekwencyjne - instrukcje wykonywane są w porządku, w jakim zostały wprowa-
dzone.

background image

Skrzynki START i STOP wskazują początek i koniec
każdego algorytmu. Ze skrzynki START wychodzi
tylko jedna droga, do skrzynki STOP wchodzi, co
najmniej jedno połączenie.

W skrzynce instrukcyjnej umieszcza się polecenia do
wykonania - instrukcje - podstawienie, obliczenie,
wprowadzenie wartości.

W skrzynce warunkowej umieszcza się warunek, któ-
ry decyduje o wyborze dalszej drogi postępowania.
Ze skrzynki wychodzą dwa połączenia: TAK (wybie-
rane, gdy warunek jest spełniony), NIE, (gdy waru-
nek nie jest spełniony).

W skrzynce wejścia / wyjścia umieszcza się wprowa-
dzane dane lub wyprowadzane wyniki. Ze skrzynki
wychodzi tylko jedno połączenie.


W algorytmie tym wykorzystujemy skrzynkę wa-
runkową, ponieważ mamy do czynienia z sytu-
acją, gdy tok dalszego postępowania zależy od
dokonanego wyboru (dokładnie: zależy od pogo-
dy).










Piotr Misiura Przykłady algorytmów w fizyce

1

background image

Schemat blokowy algorytmy sekwencyjnego


Schemat blokowy algorytmu warunkowego

Piotr Misiura

Przykłady algorytmów w fizyce

2

background image

Schemat blokowy algorytmu osiągnięcia zamierzonego celu



Schemat blokowy:

Piotr Misiura

Przykłady algorytmów w fizyce

3

background image

Zbuduj algorytm, za pomocą, którego można obliczyć drugą i trzecią potęgę danej
liczby.

BUDOWA ALGORYTMU:

START

- podaj liczbę a,
- oblicz kwadrat liczby a,
- oblicz sześcian liczby a,
- podaj wartość kwadratu
liczby a,
- podaj sześcian liczby a.

STOP



Piotr Misiura

Przykłady algorytmów w fizyce

2. Zbuduj algorytm służący do rozwiązania równania typu ax + b = 0

BUDOWA ALGORYTMU:

START

- podaj wartość współczyn-
nika a,
- podaj wartość współczyn-
nika b,
- jeżeli a = 0, to sprawdź b,
- jeżeli b = 0, to napisz, że
jest to równanie tożsamo-
ściowe
(nieskończenie wiele roz-
wiązań),
- jeżeli b<>0, to napisz, że
jest to
równanie sprzeczne
(nie ma rozwiązań),
- jeżeli a<>0, to oblicz x

- napisz rozwiązanie równa-
nia x:=

STOP



Piotr Misiura

Przykłady algorytmów w fizyce

4

background image

BUDOWA ALGORYTMU:

START

1. Zmierz masę ciała stałego m=
2. Zmierz za pomocą menzurki obję-

tość ciałaV=

3. Oblicz gęstość ciała

4. Podaj gęstość ciała (g/cm3) r:=

STOP






Piotr Misiura

Przykłady algorytmów w fizyce

ZADANIA DO WYKONANIA

1. Zapisz

algorytm

rozwiązywania równania typu ax + b = c

2. Dane

są długości trzech odcinków. Zbadaj, czy można zbudować z nich trój-

kąt.

3. Sprawdź, czy trójkąt o bokach a, b, c jest trójkątem prostokątnym.
4. Podaj algorytm obliczania pola figur płaskich.
5. Podaj algorytm obliczający pole powierzchni całkowitej i objętość brył.
6. Przedstaw

za

pomocą algorytmu sposób na obliczanie gęstości ciała stałego.

7. Zapisz za pomocą algorytmu sposób na rozpoznawanie rodzaju ruchu ciała ze

względu na zmianę prędkości. i zapisz powyższy algorytm za pomocą sche-
matu blokowego.

8. Zapisz za pomocą algorytmu sposób obliczania ciężaru ciała na Ziemi, Księ-

życu, Marsie i Wenus.

9. Zapisz za pomocą algorytmu sposób obliczania przyspieszenia ciała, gdy

znamy przyrost prędkości ciała oraz czas, w którym ten przyrost nastąpił.

10. Zapisz algorytm obliczania drogi w ruchu:

a) jednostajnym po linii prostej,
b) jednostajnym po okręgu,
c) jednostajnie przyspieszonym.

11.

Zapisz za pomocą algorytmu sposób obliczania przyspieszenia ciała, gdy
znamy wartość siły wypadkowej działającej na ciało oraz masę tego ciała. (II
zasada dynamiki).

12.

Zapisz algorytm obliczania pracy, mocy, energii potencjalnej i energii kine-
tycznej ciała.

Przygotowano na podstawie: Piotr Misiura Przykłady algorytmów w fizyce

5

background image

PODSTAWY OBSŁUGI PROGRAMU MATLAB

Uwagi:

• Znak (=) jest oznaczeniem przypisania, a nie jest znakiem równości. Pro-

gram ma, więc cechy sekwencyjności instrukcji (przypisanie innego wyra-

żenia tej samej zmiennej zastępuje przypisanie poprzednie).

• Średnik (;) na końcu wyrażenia oznacza, że wynik nie będzie wyświetlany

na ekranie, ale polecenie jest wykonane. Po średniku w tej samej linii moż-

na umieszczać następne instrukcje.

• Kontynuacja instrukcji w następnej linii zachodzi, jeżeli dana linia instruk-

cji jest zakończona wielokropkiem (...).

• Komentarz umieszcza się po znaku procentu (%) w osobnej linii lub za i

strukcją.

n-

• Litery duże i małe są standardowo rozróżniane w nazwach zmiennych, np.

Alpha i alpha to dwie różne zmienne. Rozróżnianie dużych i małych liter

można przełączać stosując polecenia:

» casesen off -

wstrzymanie rozróżniania,

» casesen on -

wznowienie rozróżniania,

»casesen -

przełączanie statusu

Reedycji tekstu w linii dokonuje się za pomocą klawiszy strzałek oraz klawiszy

specjalnych:

↑, Ctrl-P -

przywołanie poprzedniej linii,

↑, Ctrl-N -

przywołanie następnej linii,

← , Ctrl-B -

przesunięcie w lewo,

→, Ctrl-F -

przesunięcie w prawo,

Ctrl-,

←, →

przesunięcie o jeden wyraz w lewo lub w prawo,

Home. Ctrl-A - przesunięcie do początku linii,

End. Ctrl-E -

przesunięcie na koniec linii,

Esc -

czyszczenie linii,

Del. Ctrl-D -

usunięcie znaku nad kursorem,

6

background image

Backspace -

usunięcie znaku na lewo od kursora,

Ctrl-K -

zmazanie do końca linii od pozycji kursora.

Grupę wartości specjalnych, do których należy ans stanowią:

eps -

dystans pomiędzy dwiema kolejnymi liczbami zmiennoprze-

cinkowymi; dla komputerów osobistych i stacji roboczych wy-

nosi w przybliżeniu eps=2,22.10

-16

. Tej zmiennej może być

przypisana przez użytkownika inna wartość, włączając zero.

pi -

π

= 3,1415926…

inf -

∞ (wartość nieskończona),

NaN -

wartość nieokreślona (ang. Not a Number) pojawiająca się np.

w wyniku dzielenia przez zero,

date

-

bieżąca data podana tekstowo.

clock -

bieżąca data i czas podane cyfrowo,

flops -

licznik operacji zmiennopozycyjnych (pojawia się na końcu

obliczeń), podanie tej komendy powoduje wyświetlenie liczby

tych operacji, co pozwala zorientować się o jakości algorytmu

numerycznego (przed uruchomieniem algorytmu należy jednak

wyzerować licznik: » flops(0)),

nargin -

liczba argumentów wejściowych funkcji (używa się jej zwykle

w plikach funkcyjnych w instrukcjach warunkowych, głównie

w celu stworzenia molliwości podawania nie wszystkich argu-

mentów wejściowych funkcji - argumenty opcjonalne).

nargout -

liczba argumentów wyjściowych funkcji (używana w instruk-

cjach warunkowych wewnątrz plików funkcyjnych głównie w

celu stworzenia możliwości zwracania przez funkcję nie

wszystkich wartości

Elementy macierzy wprowadza się wierszami oddzielonymi średnikami pomiędzy

dwoma nawiasami kwadratowymi []. Zamiast średnika na końcu wiersza można

użyć klawisza <Enter>, który w tym przypadku działa jako separator, gdyż kon-

7

background image

strukcja pełnego wyrażenia nie jest zakończona (zakończeniem jest nawias] ).

Elementy w wierszu można oddzielać spacją lub przecinkiem.

» A = [10 sin(alpha) cos(alpha)

<Enter>

1 20 4; 4, 6, 30]

<Enter>

A =

10.0000 0.8660 0.5000 1.0000 20.0000 4.0000 4.0000 6.0000 30.0000

Zdefiniowano macierz B i pomnożono ją przez poprzednio zdefiniowaną macierz

A , otrzymując macierz C. Liczba kolumn macierzy B jest równa liczbie wierszy

macierzy A.

» B = [2 4 6];

% Wektor wierszowy

» C = B*A

C=

48.0000 117.7321 197.0000

Wykonanie mnożenia odwrotnego daje komunikat o błędzie:

» A*B

Error using = * Inner matrix dimensions must agree.

Na macierzach można wykonywać różne operacje, np. wyznaczenie diagonalnej z

macierzy A:

» diag(A)

ans =

10 20 30

Podczas sesji można zawsze przywołać rozbudowane instrukcje pomocy

oferowane przez MATLAB. Można wywołać pomoc ogólną w postaci menu wy-

boru poleceniem:

» help

albo zażądać pomocy odnoszącej się do konkretnej instrukcji, funkcji lub komen-

dy podając jej nazwę

» help nazwa .

Przy zrozumieniu działania niektórych instrukcji może być pomocne wywołanie

» demo

8

background image

Użyteczna jest możliwość wyświetlania informacji co jeden ekran

» more on - włączenie,

» more off - wyłączenie.

Instrukcją tą można poprzedzić help dla zbyt "długich" informacji.

Wstrzymanie pracy MATLAB-a na n sekund może być dokonane instrukcją:

» pause(n)

lub na czas nieokreślony, aż do naciśnięcia dowolnego klawisza, podając:

» pause

Liczby zespolone

Użycie liczb zespolonych nie wymaga deklaracji typu zmiennych, a wprowadza

się je według wzorca:

» z = a + b*i

lub

» z = a + b*j

gdzie i oraz j oznaczają standardowo predefiniowaną w programie jednostkę

urojoną. Jeżeli litery te zostaną przyporządkowane innym zmiennym, to nową

jednostkę urojoną można zdefiniować jako:

» ii = sqrt(-1)

Do wykonywania operacji na liczbach zespolonych służą funkcje standardowe

podane poniżej dla liczby zespolonej oznaczonej przez z :

» real (z) - część rzeczywista liczby z,

» imag (z) - część urojona,

» conj (z) - liczba zespolona sprzężona do z,

» angle(z) - argument liczby zespolonej,

» abs (z) - moduł liczby zespolonej.

W poniższj sesji podano kilka przykładów użycia liczb zespolonych.

» a = 1 + 6*i

a =

1.0000+6.0000i

9

background image

» cos(a)

ans =

1.0899e+002-1.6974e+002i

» b = 10 - 2*j

b =

10.0000-2.0000*j

» c = a*b

C =

22.0000+58.0000i

» real(c)

ans =

22

» angle(c)

ans =

1.20833

Łańcuchy tekstowe

W MATLAB-ie możliwe są operacje na zmiennych będących łańcuchami teksto-

wymi (ang. string). Łańcuch tekstu umieszcza się pomiędzy dwoma apostrofami,

np:

» a = 'napis danej tekstowej'

Format wyświetlanych liczb

Instrukcja format określa sposób wyświetlania wyników.

format short

4 miejsca dziesiętne (liczba stałopozycyjna) 3.1416

format long

14 miejsc, reprezentacja stałopozycyjna 3.14159265358979

format short e

4 miejsca, reprezentacja zmiennopozycyjna 3.1416e+00

format long e

15 miejsc, reprezentacja zmiennopozycyjna 3.

141592653589793e+ 00

format hex

reprezentacja heksadecymalna 400921fb54442d18

10

background image

format bank

format finansowy (USA) 3.14

format compact zwarty zapis z pominięciem pustych linii (dla dużych macierzy)

format loose

wprowadzanie pustych linii przy wyświetlaniu

format +

wyświetla +, - i spacje dla dodatnich, ujemnych i zerowych

elementów

Standardowo MATlAB rozpoczyna pracę z formatem short.

Współpraca z systemem operacyjnym

W MATLAB-ie dostępne są elementarne komendy operacji na plikach dysko-

wych:

path -

wyświetla ścieżki dostępu do katalogów MATLAB-a,

dir -

wyświetlanie zawartości bieżącego katalogu,

pwd -

wyświetla nazwę bieżącego katalogu (od wersji MATlAB 4.1),

type -

wyświetlanie zawartości pliku,

delete -

usuwanie pliku,

cd -

zmiana bieżącego katalogu, do którego MATLAB zapisuje.

Dla większości komend należy określić ścieżkę dostępu. Przy instrukcji ty-

pe należy podać rozszerzenie pliku, w przeciwnym razie MATLAB przyjmie do-

myślnie rozszerzenie .m.

Zapisywanie przestrzeni roboczej w pliku dyskowym (zapisywanie

zmiennych) - diary, save

Zapisania danych oraz całej sesji z MATLAB-em można dokonać na kilka sposo-

bów.

Przy niezbyt dużych macierzach występujących w trakcie sesji i niezbyt dużej ilo-

ści danych całą sesję wraz z pojawiającymi się komunikatami można zapisać po-

leceniem diary w pliku ASCII:

» diary filename inicjacja zapisu w pliku filename.

Cała sesja zostanie zapisana po komendzie wyjścia

» quit

11

background image

Jeśli plik filename istnieje, to następny zapis zostanie dodany do poprzedniego.

Oprócz powyższej stosuje się komendy:

» diary off

zawieszenie (przerwanie) statusu zapisywania do określonego

pliku,

» diary on

wznowienie zapisywania do pliku [dename lub do standardo-

wego pliku o nazwie diory,

» diary

zapisywanie do pliku dyskowego o standardowej nazwie diary

lub przełączenie statusu zapisu z on na off lub odwrotnie.

Wartości wybranych zmiennych lub wszystkie można zapisać w pliku d

kowym poleceniem save w postaci:

ys-

» save

» save filename

» save filename zmienn1 zmienna2 ...

W pierwszym przypadku zapisywane są wszystkie zmienne (bez komenta-

rza tak jak w diary) w binarnym pliku dyskowym o standardowej nazwie mat lab.

mat (rozszerzenie. mat). W drugim przypadku zapis jest do pliku binarnego file-

name.mat, natomiast w przypadku trzecim do tego zbioru są zapisywane tylko

wybrane zmienne.

Zapisu w formacie tekstowym dokonuje się, podając opcje -ascii w poleceniu

save:

» save filename zmienna1 zmienna2 -ascii

zapis z pojedynczą precyzją (8

cyfr)

» save filename zmienna1 zmienna2 -ascii

-double podwójna precyzja (16

cyfr)

» save filename zmienna1 zmienna2 -ascii -tabs oddzielenie kolumn tabulatora-

mi

Odtwarzanie zmiennych i przestrzeni roboczej - load

12

background image

Odtworzenie pliku binarnego filename.mat, zapisanego poleceniem save, doko-

nywane jest poleceniem:

» load filename

Polecenie to można również stosować do wprowadzania plików tekstowych

ASCII pod warunkiem, że plik zawiera przynajmniej jedną tablicę prostokątną lub

kwadratową. Można wczytać do przestrzeni roboczej MATLAB-a dane z pliku,

umieszczone w kolumnach oddzielonych spacjami. Mogą to być wyniki pomiaru

lub wyniki obliczeń z innego programu zapisane np. w pliku wynik.dat.

Wydanie polecenia

» load wynik.dat

spowoduje utworzenie w MATLAB-ie zmiennej o nazwie wynik (bez rozszerze-

nia). Przykładowo, jeżeli w pliku ASCII wynik.dat mamy ciąg liczb

1

11 21

2

12 22

3

13 23

4

14 24

5

15 25

to po wczytaniu tego pliku utworzona zostanie zmienna wynik będąca macierzą o

pięciu wierszach i trzech kolumnach. Dalej, ta zmienna może być poddana działa-

niom MATlAB-a.

Informacje o przestrzeni roboczej - who, exist, what, which

Kolejne polecenia wydawane w trakcie zapisywania M-pliku skryptowego zapeł-

niają, początkowo pustą, przestrzeń roboczą poszczególnymi zmiennymi.

Listę zmiennych mozna wyprowadzić jednym z poleceń:

» who

» whos

» who global

» whos global

13

background image

Pierwsze polecenie (who) wyświetla listę zmiennych zainstalowanych bieżąco w

pamięci operacyjnej. Whos listuje bieżące zmienne, ich wymiary i wszystkie nie-

zerowe części urojone. Te instrukcje z parametrem global listują wszystkie zmien-

ne z globalnej przestrzeni pracy. Oprócz tego wyświetlana jest informacja o ilości

dostępnej pamięci operacyjnej.

Podobne działanie ma polecenie:

» exist

wyświetla informację czy istnieje zmienna lub plik o podanej

nazwie:

e=exist('nazwa').

Poniższe polecenia dotyczą zawartości katalogów:

» what

podaje informację o wszystkich M-plikach maj dujących się w

bieżącym katalogu dyskowym.

» what dirname podaje informację o wyszczególnionym katalogu dimame

określonym w ścieżce dostępu MA TUB-a.

Informację o konkretnym pliku funkcyjnym o nazwie funname wraz z podaniem

ścieżki dostępu (funkcja MATlAB-a lub SIMULINK-a) i typu (M-plik, Mex-plik,

wbudowana funkcja) otrzymuje się po wydaniu polecenia

»which funname

Czyszczenie przestrzeni roboczej, macierze puste - clear,

Całą przestrzeń roboczą można wyczyścić lub usunąć konkretne zmienne za po-

mocą poleceń:

» clear

» clear zmienna1 zmienna2

Chcąc wyzerować zmienną (macierz łącznie z liczbą wierszy i kolumn), można

zdefiniować ją jako tzw. macierz pustą

»A = []

Informacja o wymiarach macierzy - size

14

background image

Znajomość wymiarów macierzy (liczba wierszy m i liczba kolumn n) jest często

niezbędna, gdyż można odwołać się do tych wartości przy budowaniu innych ma-

cierzy związanych wymiarami z daną.

Dla pewnej macierzy A wydanie polecenia

» d = size(A)

powoduje utworzenie wektora wierszowego o dwóch wartościach d = [ m, n ], po

czym moma wyświetlić

» d

otrzymując w odpowiedzi dwie konkretne liczby określające liczbę wierszy i ko-

lumn.

Instrukcję tę można wydać również inaczej

» [m, n] = size(A)

po czym zażądać wyświetlenia:

» m lub

» n

Liczby wierszy i kolumn można osiągnąć również bezpośrednio

» m=size(A,1)

» n = size(A,2)

ZADANIA DO WYKONANIA 2

1. Oblicz ułamek

π/3, a następnie cosinus z π/3

2. Zdefiniuj macierz 4x5 i wyznacz jej diagonalną

3. Przemnóż dwie dowolne macierze przez siebie jakie warunek muszą speł-

niać?

4. Jaką funkcję spełnia znak %.

5. Utwórz wektor o wartości początkowej 2, końcowej 38 ze skokiem 4.

6. Jaki jest ustawiony format wyświetlania liczb.

7. Przedstaw liczbę 2,5 w rożnej postaci używając funkcji format.

8. Wyznacz wartość sumy:

8

1

3

1

2

1

1

+

+

15

background image

9. Proszę podać przykład użycia średnika. Jaką pełni funkcję na końcu wier-

sza?

10. Proszę zapisać poniższe wyrażenia w notacji MATLAB-a:

a.

ε

ε

+

+

+

ε

+

ε

+

ε

+

+

+

+

+

+

+

=

ε

ε

+

ε

+

=

+

)

/

(

.

.

.

.

.

.

.

.

.

4

1

3

c

25

0

2

c

25

1

1

c

4

1

c

w

c

2

2

w

c

1

1

w

c

0

0

V

V

75

0

3

25

0

1

V

V

25

0

2

25

0

23

3

V

V

25

1

1

23

2

1

V

V

1

V

V

w

a

V

V

w

a

V

V

w

a

2

1

0

T

T

A

k

a

U

c

T

Kv

k

k

Vk

cb

b.

( )

×

+

+

+

=

2

1

0

2

2

1

1

0

0

2

1

0

1

2

r

1

2

2

c

V

2

r

0

2

1

r

1

2

c

c

V

r

0

c

Hr

0

a

a

a

)

w

1

(

w

)

w

1

(

w

)

w

1

(

w

w

w

w

1

1

1

V

E

RT

1

V

Z

V

E

RT

1

Z

V

Z

Z

V

Z

Hr

Hr

c.

(

)

(

)

(

)

(

)





+

+

=

*

*
L

*
L

*

*

*
L

*

*
L

*

ha

pa

Π

B

1

B

Π

1

1

B

1

Π

B

Π

m

m

α

Π

α

d.

e.

( )

1

k

C

C

C

vk

vk

e

B

B

1

B

1

m

m

f













=

α

α

β

α

16


Wyszukiwarka

Podobne podstrony:
01 cwiczenie 1
01, Cwiczenie 01 g, Laboratorium z fizyki
01 Cwiczenie1id 2795 Nieznany (2)
01 cwiczeniaid 3060 ppt
01 Ćwiczenie
2010 01 Ćwiczenie 3 Ujemne sprzeżęnie zwrotne, wzmacniacz odwracający i nieodwracający
01 cwiczenie podstawyid 2794 ppt
01, Cwiczenie 01 b, Arkadiusz Szachniewicz
TEST 01 z cwiczen projektowych, Politechnika Krakowska, V Semestr, Budownictwo przemysłowe, maerial
01, Cwiczenie 01 e, SPRAWOZDANIE Z ?WICZ. NR. 8
01 cwiczenie podstawy
01, Cwiczenie 01 h, steiner
2011 01 Ćwiczenie 4 Korektor graficzny
Bankowość ćw. 01, ćwiczenia(1)
01, Cwiczenie 01 f, cwiczenie nr.8
sprawdzone, Fiz 01, Ćwiczenie 1
01, Cwiczenie 01 d, steiner
2013 03 01, ćwiczenia
01 cwiczenie 1

więcej podobnych podstron