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

 

Ostatnia modyfikacja: poniedziałek, 16.09.2013, 12:08 PM