Ćw.11 Matlab3

Transkrypt

Ćw.11 Matlab3
Ćw 9. Matlab (3)
Instrukcja iteracyjna („pętla liczona”)
Pętla pozwala na wielokrotne powtarzanie bloku instrukcji. Liczba 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
suma=0;
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
przeciwprzekątnej).
7. Spróbować napisać instrukcje, które odpowiadają na pytania:
a. czy element o podawanej przez użytkownika wartości (funkcja input) znajduje się w tablicy
b. ile razy ten element występuje.