• Nie Znaleziono Wyników

Laboratorium komputerowe 3

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium komputerowe 3"

Copied!
6
0
0

Pełen tekst

(1)

1

Laboratorium komputerowe 3 – przykładowe rozwiązania

zad. 1.

for x = 0:0.1:2

f = exp(x)*sin(x);

disp([x f]);

end

zad. 2.

for n = 1:100

s = 0;

for i = 1:n

s = s + i;

end

disp([n s]);

end

Alternatywnie możemy skorzystać ze wzoru na sumę wyrazów ciągu arytmetycznego i uprościć skrypt zmieniając część w ramce. Otrzymujemy:

for n = 1:100

s = (1+n)/2*n;

disp([n s])

end

(2)

2 zad. 3.

for p = 1:10 % oprocentowanie

kwota = 100;

for i = 1:5 % okres 5 lat

kwota = kwota*(1 + p/100);

end

kwota = round(100*kwota)/100; % zaokrąglenie do

% drugiego miejsca

% po przecinku disp([p kwota]);

end

Alternatywnie możemy skorzystać ze wzoru na dowolny wyraz ciągu geometrycznego i uprościć skrypt zmieniając część w ramce. Otrzymujemy:

for p = 1:10

kwota = 100;

kwota = kwota*(1 + p/100)^5;

kwota = round(100*kwota)/100;

disp([p kwota]);

end

zad. 4 (zad. 5 ze skryptu)

for i = 1:10

x = (5*i)^2;

disp(x);

end

(3)

3 zad. 5 (zad. 12 ze skryptu)

Ilustracja:

𝐢 \ 𝐣 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔

𝟏 0 3 4 5 6 7

𝟐 3 0 5 6 7 8

𝟑 4 5 0 7 8 9

𝟒 5 6 7 0 9 10

𝟓 6 7 8 9 0 11

𝟔 7 8 9 10 11 0

Przy sumowaniu pomijamy elementy na przekątnej tablicy (taka sama liczba oczek – wartość równa zero). Poza przekątną w każdym elemencie tablicy mamy wartość i+j (i – wynik na pierwszej kostce, numer wiersza tablicy; j – wynik na drugiej kostce, numer kolumny tablicy).

s = 0;

for i = 1:6 % pierwsza kostka = numer wiersza for j = 1:6 % druga kostka = numer kolumny

if i ~= j % warunek dla elementów

% poza przekątną

s = s + i+j;

end

end end

s = s/36;

disp(s);

(4)

4

Alternatywnie możemy skorzystać z symetrii otrzymanej tablicy i ograniczyć się do zsumowania elementów pod przekątną (lub nad przekątną), a następnie podwojenia sumy.

W tym celu zmieniamy zakresy pętli. Instrukcja warunkowa nie jest już potrzebna.

Dla przypadku sumowania elementów pod przekątną otrzymujemy:

s = 0;

for i = 2:6 % numer wiersza tablicy

for j = 1:i-1 % numer kolumny tablicy

s = s + i+j;

end

end

s = s/18;

disp(s);

zad. 6.

s1 = 0; % zmienna do obliczenia sumy s2 = 1; % zmienna do obliczenia iloczynu

for i=3:15

s1 = s1 + (i+3)/(i+7);

end

for j=4:16

s2 = s2 * (j+2)/(j+6);

end

s = (2+s1)/(3*sqrt(2)+s2);

disp(s);

Wynik:

2.7120

Uwaga:

Trochę matematyki – w tym konkretnym przypadku możemy zamienić tożsamościowo zakres indeksów w sumie lub iloczynie i następnie uprościć program. Przykładowo możemy zrobić podstawienie 𝑗 = 𝑖 + 1, czyli 𝑖 = 𝑗 − 1. Stosujemy to podstawienie do iloczynu i otrzymujemy:

(5)

5 2 + ∑ 𝑖 + 3

𝑖 + 7

15𝑖=3

3√2 + ∏ 𝑗 + 2 𝑗 + 6

16𝑗=4

= 2 + ∑ 𝑖 + 3 𝑖 + 7

15𝑖=3

3√2 + ∏ 𝑖 + 1 + 2 𝑖 + 1 + 6

16−1𝑖=4−1

= 2 + ∑ 𝑖 + 3 𝑖 + 7

15𝑖=3

3√2 + ∏ 𝑖 + 3 𝑖 + 7

15𝑖=3

Teraz zakresy indeksów sumy i iloczynu, jak również samo wyrażenie są takie same. Program można zapisać następująco:

s1 = 0; % zmienna do obliczenia sumy s2 = 1; % zmienna do obliczenia iloczynu for i = 3:15

w = (i+3)/(i+7);

s1 = s1 + w;

s2 = s2 * w;

end

s = (2+s1)/(3*sqrt(2)+s2);

disp(s);

zad. 7.

A = [2 2 -1 1; -1 1 2 3; 3 -1 4 -1; 1 4 -2 2];

b = [7; 3; 31; 2];

x = A\b;

(6)

6 zad. 8.

function s = sumapodprzekatna(A)

[n,m] = size(A); % odczytujemy rozmiar macierzy s = 0; % suma elementów

if n == m % sprawdzamy, czy macierz jest kwadratowa for i=2:n % i – numer wiersza

for j=1:i-1 % j – numer kolumny s = s + A(i,j);

end end

else

disp('Podana macierz nie jest kwadratowa');

end end

W ramach dodatkowego ćwiczenia zmodyfikować powyższą funkcję, aby sumowała:

- elementy nad przekątną, - elementy na przekątnej.

Cytaty

Powiązane dokumenty

Dalej tworzymy 2 przyciski klikając prawym przyciskiem myszy na szarym polu oraz kursorem najeżdżamy na ikonę Buttons i wybieramy PushButton.. Należy zauważyć, że

Uruchom program, sprawdź efekt podania wartości, która nie występuje w tablicy, wartości występującej w tablicy oraz efekt niepoprawnego podania liczby.. catch z

powyżej podwójnej pętli for, w której tworzymy tablicę w, zadeklaruj trzy zmienne całkowite ld , lu, lz, które posłużą jako liczniki dodatnich, ujemnych i zerowych

[r]

oczywiście zrobić to na wiele różnych sposobów i każde takie przyporządkowanie jest niczym innym, jak funkcją określoną na kostce dyskretnej.. Oczywiście, funkcji tych

[r]

// utworzono tablicę 10 referencji typu String, naleŜy dla kaŜdego elementu tablicy przydzielić pamięć. • Przydział pamięci na elementy

Poprawa odbędzie się w takiej samej formie, jak