Ćw 9. Matlab (3)
Instrukcja iteracyjna („pętla liczona”)
Pętla pozwala na wielokrotne powtarzanie bloku instrukcji. Liczna powtórzeń wynika z definicji modyfikowanej
wartości licznika pętli.
for
licznik
= warto
ść
_pocz
:
krok
:
warto
ść
_ko
ń
cowa,
instrukcja,
instrukcja,
…
end
Utworzyć m-plik, przetestować i wyjaśnić działanie poniższych przykładów:
Przykład 1: Wypełnianie tablicy:
for i= 1:1:10,
a(i) = 3*i - 1;
end;
disp(a)
Przykład2 : Sumowanie elementów w tablicy jednowymiarowej:
clear a;
suma = 0;
for i= 1:1:10,
a(i) = i^2,
pause, %zatrzymuje do naciśnięcia dowolnego klawisza
suma=suma+a(i);
end
disp(suma)
Przykład 3 : Wypełnianie tablicy dwuwymiarowej – "zagnieżdżenie" iteracji:
clear a;
for i= 1:1:10,
for j = 1:1:10,
a(i , j) = round(20*rand()-10); %zastanowić się co wstawiamy do tablicy
end
end
disp(a)
Przykład 4 : Sumowanie elementów w tablicy dwuwymiarowej:
clear a;
suma = 0;
for i= 1:1:5,
for j = 1:1:5,
a(i , j) = 2*i - 4* j,
pause, %zatrzymuje do naciśnięcia klawisza
suma=suma+a(i , j);
end
end
disp(suma)
Przykład 5 Sumowanie elementów wybranej kolumny:
clear a;
% tu wstawić instrukcje wypełniania tablicy
k0=input('Podaj nr kolumny do sumowania:')
suma = 0;
for w= 1:1:5,
suma =suma + a(w, k0);
end
disp(suma)
Ograniczenia pętli wewnętrznej mogą być zależne od licznika pętli zewnętrznej. Wykonać i wyjaśnić poniższy
przykład:
Przykład 6:
clear a;
for i= 1:1:5,
for j = 1:1:i,
a(i , j) = 2*i - 4* j;
end
end
disp(a)
Wykonać m-plik i wyjaśnić jego działanie.
Zliczanie i sumowanie warunkowe
Zliczanie warunkowe (np. policz ile elementów w tablicy jest dodatnich) wymaga zastosowania pętli for, w któ-
rej dla każdego kroku badamy element tablicy (wykorzystując instrukcję warunkową if). Dla elementów spełniają-
cych dany warunek należy wartość pomocniczej zmiennej powiększać o 1. Po zakończeniu pętli wyświetlić wartość
zmiennej pomocniczej. Schemat działań:
%wcześniej musi być utworzona tablica jednowymiarowa M(N)
ile=0;
for
i=1:N
if
M(i)>0
ile=ile+1;
end
end
;
disp(ile)
Sumowanie warunkowe działa podobnie, z tym, że w pętli dla spełnionego warunku zwiększana jest wartość
zmiennej sumującej o wartość elementu tablicy:
%........tu ustalić postać macierzy
for
i=1:N
if
M(i)>0
suma=suma+M(i)
end
end
;
disp(suma)
Zadania
1.
Napisać m-plik, w którym zdefiniowana jest dowolna tablica 5x5, (wykorzystać funkcję rand(N),
która generuje losowo macierz kwadratową NxN), a następnie obliczana jest suma elementów
w 3-ciej kolumnie.
2.
Napisać m-plik, w którym zdefiniowana jest dowolna tablica 10x10, następnie obliczana jest
suma elementów na przekątnej głównej.
3.
Napisać m-plik, w którym zdefiniowana jest dowolna tablica 10x10, następnie obliczana jest
suma elementów na przeciwprzekątnej.
4.
Napisać m-plik, w którym zdefiniowana jest dowolna tablica 10x10, następnie obliczane jest ile
elementów jest dodatnich, a ile ujemnych.
5.
Napisać m-plik, w którym zdefiniowana jest dowolna tablica 5x5, następnie obliczana jest suma
elementów dodatnich w całej tablicy (zastosować instrukcję warunkową if wewnątrz zagnież-
dżanych iteracji for).
6.
Opierając się na przykładzie 6, zsumować w tablicy elementy górnego trójkąta w tablicy (do
przeciwprzekatnej).
7.
Spróbować napisać instrukcje, które odpowiadają na pytanie: czy element o podawanej przez
użytkownika wartości (funkcja input) znajduje się w tablicy (oraz ile razy występuje).