PRACA DOMOWA (4)
PRACA DOMOWA (4)
Zadanie (A)
Poproś użytkownika o podanie trzech liczb. Za pomocą instrukcji warunkowej if sprawdź, czy podane wielkości mogą być długościami boków trójkąta (tzn. czy suma każdych dwóch liczb jest większa od trzeciej z liczb).
Odpowiedź
%% skrypt sprawdzający, czy trzy podane liczby mogą być długościami boków trójkąta
a=input('Podaj pierwszy bok trojkata: ');
b=input('Podaj drugi bok trojkata: ');
c=input('Podaj trzeci bok trojkata: ');
if a+b>c & a+c>b & b+c>a
disp('to sa boki trojkata')
else
disp('to nie sa boki trojkata, chyba zeby go mocno powyginac na rozne strony...')
end
Zadanie (B)
Utwórz macierz kwadratową losowych liczb naturalnych z zakresu [1,10] (wymiar macierzy jest dowolny). Następnie zamień tę macierz w taki sposób, aby pod przekątną w miejscu, gdzie są liczby >5 znalazły się liczby 10 minus ich wartość, zaś nad przekątną w miejscu, gdzie są liczby <=5 znalazły się liczby 10 minus ich wartość. Liczby na przekątnej powinny zostać zamienione na liczbę e.
Odpowiedź
%% skrypt zmieniający zawartość macierzy
A = round(rand(7)*10);
disp(A);
[a b] = size(A);
for k=1:a
for t=1:k-1 % pod przekątną
if A(k,t)>5
A(k,t)=[10-A(k,t)];
end
end
for t=k+1:b % nad przekątną
if A(k,t)<=5
A(k,t)=[10-A(k,t)];
end
end
A(k,k)=exp(1); % na przekątnej
end
disp(A);
Zadanie (C)
Napisz skrypt, który losuje macierz 4x4 wypełnioną losowymi liczbami całkowitymi z zakresu [-10,10]. Następnie, w pętli while (która ma się zatrzymać gdy wyznacznik owej macierzy będzie równy zero) losuj dwie liczby całkowite k oraz t z zakresu [1,4] i w komórce macierzy o indeksie (k,t) wstaw zero. Po zakończeniu działania pętli wyświetl ponownie macierz. Podobnie jak w Ćwiczeniu 7 dopisz zliczanie liczby zmian dokonanych w macierzy.
Odpowiedź
%% skrypt wstawiający do macierzy zera tak długo, aż wyznacznik będzie zerowy
licznik = 0;
A=round(rand(4,4)*20-10);
disp(A);
while det(A)~=0
licznik = licznik+1;
k=randi(4);
t=randi(4);
disp(['wylosowalem ' num2str(k) ' oraz ' num2str(t)]);
A(k,t) = [0];
disp(A);
disp(['wyznacznik = ' num2str(det(A))])
end
disp(['zmienilem macierz ' num2str(licznik) ' razy.'])
Zadanie (D)
Napisz skrypt, który będzie generował i wyświetlał na ekranie pierwszych 50 liczb z ciągu Fibonacciego. Użyj pętli for.
Odpowiedź
%% skrypt wyswietla pierwsze 50 liczb z ciągu Fibonacciego
f1=1;
f2=1;
disp('f1 = 1');
disp('f2 = 1');
for k=3:50
fn = f1+f2;
disp(['f' num2str(k) ' = ' num2str(fn)]);
f1=f2;
f2=fn;
end