cwiczenia4 funkcje id 124969 Nieznany

background image

1

Wszelkie prawa do zada

ń

, plików i instrukcji s

ą

zastrze

ż

one, nikt poza prowadz

ą

cymi zaj

ę

cia i studentami IA

na AGH nie ma prawa ich wykorzystywa

ć

. A tych co maj

ą

takie prawa, prosz

ę

, aby nie umieszczali ich w innym

miejscu w sieci.

funkcje

Funkcje to równie

ż

pliki o rozszerzeniu m tylko w odró

ż

nieniu od skryptów funkcje

przyjmuj

ą

argumenty przy wywołaniu i zwracaj

ą

warto

ś

ci przy wyj

ś

ciu.

















Przypomnienie:
Nazwy plików powinny zaczyna

ć

si

ę

od litery i powinny zawiera

ć

tylko litery/cyfry i znak ‘_’.

Nazwy plików powinny by

ć

1. ró

ż

ne od nazw zmiennych, które wyst

ę

puj

ą

w funkcji

2. ró

ż

ne od nazw funkcji zdefiniowanych standardowo w Matlabie


Funkcje si

ę

wywołuje poprzez podanie jej nazwy.


Zad 1. Prosz

ę

napisa

ć

funkcj

ę

, która znajduje si

ę

na powy

ż

szym rysunku. Prosz

ę

wywoła

ć

funkcj

ę

z poziomu Commad Window:


fun(10)
a=fun(10)
A=fun(0:0.1:1)


Wszystkie skrypty i funkcje maj

ą

by

ć

zapisane w dowolnym folderze nale

żą

cym do

Pa

ń

stwa.




function [<arg_wy1> <arg_wy2> ...] =nazwa_funkcji>(<arg_we>)

Nazwa pliku to nazwa funkcji

background image

2

Zmienne wyst

ę

puj

ą

ce w funkcjach s

ą

lokalne w funkcji i nieprzechowywane w przestrzeni

roboczej Matlab’a. Nie s

ą

te

ż

widziane przez inne funkcje czy skrypty.

Zmienne utworzone w przestrzeni roboczej Matlab’a nie s

ą

z kolei dost

ę

pne w ciele funkcji.

Mo

ż

na jednak uczyni

ć

zmienn

ą

globaln

ą

. Słu

ż

y do tego polecenie global zmienna;


function [.....]=fun(....)
global a1 a2 a3;
.....
% koniec funkcji
w przestrzeni roboczej/skrypcie
global a1 a2 a3;
a1=....
a2=.....
a3=.....


Zad 2. Prosz

ę

napisa

ć

skrypt, który losuje liczb

ę

z zakresu od 0-1. Je

ś

li warto

ść

wylosowanej

liczby b

ę

dzie wi

ę

ksza ni

ż

0.5 skrypt ma wywoła

ć

funkcj

ę

orzel, w przeciwnym wypadku wykonuje

polecenie reszka.

a) Funkcja orzel ma wypisywa

ć

tekst „wylosowano orła” funkcja resztka wypisuje tekst

„wylosowano reszk

ę

”.

function

orzel

disp(

'wylosowano orła'

);

Jak wida

ć

nie jest to jeszcze typowe zastosowanie funkcji – nie ma parametrów wej

ś

ciowych, ani

wyj

ś

ciowych.

Sprawd

ź

czy program działa poprawnie.


b) Prosz

ę

, dopisa

ć

instrukcje, tak aby:

- program zapytał ile razy ma by

ć

losowanie i wykonał to losowanie i komentowanie nkrotnie -

czyli tyle razy ile kto

ś

wcze

ś

niej sobie za

ż

yczył.


c)

dopisz do wszystkich plików – skryptu głównego i do obu funkcji dwie zmienne globalne:
ilo

ść

_o, ilo

ść

_r;


W funkcji orzel licznik ilo

ść

_o zwi

ę

ksza si

ę

o jeden, a w funkcji reszka licznik ilo

ść

_r zwi

ę

ksza

si

ę

o jeden.


W głównym programie po zako

ń

czeniu p

ę

tli komputer wypisuje ile było reszek, a ile orłów.

background image

3

d) Zmie

ń

w funkcji orzeł napis na informacj

ę

kto wygrywa - je

ś

li jest wi

ę

ksza ilo

ść

orłów, to

w funkcji orzeł jest napis „brawo orły”, a je

ś

li jest wi

ę

cej reszek to mamy napis „orły do

boju”. Komentarz dla remisu te

ż

b

ę

dzie mile widziany.

TERAZ prosz

ę

skopiowa

ć

funkcje orzel, reszka i program główny do innego folderu. Prosz

ę

wyrzuci

ć

wszystkie funkcje globalne i tak poprawi

ć

program, wykorzystuj

ą

c parametry wej

ś

ciowe

oraz parametry wyj

ś

ciowe funkcji, aby algorytm działał tak samo jak poprzedni.

Zad 3. Prosz

ę

napisa

ć

skrypt, który losuje do wektora W o długo

ś

ci 10 000 liczby z zakresu od

[1:100] ( W=floor(rand(1,10000)*100)+1).

Ten skrypt powinien wywoływa

ć

5 funkcji w nast

ę

puj

ą

cy sposób


ile_parz=fun1(W);
[sum srednia] =fun2(W);

Itp.;
za pomoc

ą

p

ę

tli for, …..

A) Napisz funkcj

ę

, która sprawdza ile jest liczb parzystych w tym wektorze ( warunek – reszta

z dzielenia przez 2 jest równa 0).

B) Napisz drug

ą

funkcj

ę

, która obliczy sum

ę

i

ś

redni

ą

wszystkich wylosowanych liczb

C) Napisz trzeci

ą

funkcj

ę

, która obliczy sum

ę

i

ś

redni

ą

tych liczb, które s

ą

podzielne przez 3

D) Napisz czwart

ą

funkcj

ę

, która znajdzie warto

ść

maksymaln

ą

i minimalna w

ś

ród liczb, które

s

ą

podzielne przez 5.

E) Napisz pi

ą

t

ą

funkcj

ę

, która znajdzie warto

ść

maksymaln

ą

i minimalna w

ś

ród liczb, które s

ą

podzielne przez warto

ść

wysłan

ą

do funkcji jako parametr wej

ś

ciowy.


REKURENCJA

albo rekursja (z łac. recurrere, przybiec z powrotem) to w programowaniu

odwoływanie si

ę

funkcji do samej siebie.

function s=silnia(n)
% Obliczanie silni metod

ą

rekurencyjn

ą

if n==1
s=1;
else
s=n*silnia(n-1);
end

Zad 5. Poni

ż

ej zdefiniowany jest ci

ą

g. Napis funkcj

ę

, która oblicza warto

ść

ci

ą

gu dla pewnej

liczby za pomoc

ą

rekurencji.





= 1  = 1

−



∗  > 1

background image

4

Zad 6. Napisz funkcj

ę

, która wyznaczy za pomoc

ą

rekurencji kolejny wyraz ci

ą

gu Fibonacciego.

Prosz

ę

napisa

ć

kolejn

ą

funkcj

ę

, która wyznaczy kolejny wyraz ci

ą

gu Fibonacciego za pomoc

ą

iteracji.

Prosz

ę

wróci

ć

do poprzedniej instrukcji i wykona

ć

te zadania, które jeszcze nie zostały zrobione.


Wyszukiwarka

Podobne podstrony:
Fizjologia Cwiczenia 11 id 1743 Nieznany
Biologia Cwiczenia 11 id 87709 Nieznany (2)
cwiczenie 14 id 125164 Nieznany
8 Cwiczenia rozne id 46861 Nieznany
cwiczenia wzrost id 155915 Nieznany
cwiczenie III id 101092 Nieznany
Cwiczenie 5B id 99609 Nieznany
Cwiczenie nr 8 id 99953 Nieznany
cwiczenie 05 id 125057 Nieznany
F Cwiczenia, cz 3 id 167023 Nieznany
5 ekstrema funkcji id 40709 Nieznany (2)
cwiczenie 52 id 41325 Nieznany
Cwiczenie 01 id 98935 Nieznany
Cwiczenie 12 id 99084 Nieznany
CWICZENIE 3 temat id 99386 Nieznany
CwiczenieArcGIS 02 id 125937 Nieznany
cwiczenia 09 id 124345 Nieznany
Cwiczenia czytania id 98475 Nieznany

więcej podobnych podstron