ZADANKA Z POPRAWY W ZESZŁYM ROKU, I semstr moje materiały, Semestr I, Informatyka stosowana, zadanka


ZADANKA Z POPRAWY W ZESZŁYM ROKU

III. zdefiniowac funkcje o nazwie czwartek obliczajaca iloczyn elementow macierzy E z pierwszych k (liczba od 10 do 20 ) kolumn i wierszy. Dane wejsciowe to wektor E, liczba k, a wynik to iloczyn. Przetestowac dla i= 13, 16, 20.
================================================
narysuj wykress funkcji kul(r,s) majac dane :
guma(s)=cos(s-r)*|s+r|
kula(r,s)=r+sin^5(r)*guma(s)/12
przyjmujac D={(r,s):[5,50]x[-50,-5]}
===============================================
IV zapisz za pomocainstrukcji warunkowej:
jeżeli liczba w jest ujemna podnies ja do czwartej potegi,
a w przeciwnym wypadku podziel liczba przez 100.
===================================================
1.narysuj wykres funkcji z(x,y) mając dane:
p(x)=/x/*sin(-x)
z(x,y)=x+cos[do potęgi 5](x)*sin3(y)-p(x)
przyjmując dziedzinę jako D={(z,y):[-10,10]X[-5,5]}.
2.zapisać instrukcje gehnerujące macierze M, zawierające 75 wierszy i 75 kolumn,
okreslając elementy M(k,l)=2+3k-l[do kwadratu] ,nastepnie utworzyć wektor
kolumnowy K podstawiając pod niego 70 kolumnę macierzy M, oraz dokonać mnożenia e
lementami macierzy M i K postaiwając wyniki pod zmienna N.
3.zdeefiniować funkcję o nazwie 'wtorek' obliczającą sumę elementów macierzy M
z pierwszych i (liba od 1 do 10) kolumn i wierszy.dane wejściowe to wektor M,
liczba i, a wynik to suma. Przeetestować działanie funkcji dla o=3,6,10.
4.zapisz za pomocą instrukcji warunkowej:
jeżeli liczba X jest większa lub równa 27 pomniejsz X o 12,
a w przeciwnym wypadku pomnóż liczbę X przez połowę jej wartości.
====================================================
3.zdeefiniować funkcję o nazwie 'wtorek' obliczającą sumę elementów macierzy M
z pierwszych i (liba od 1 do 10) kolumn i wierszy.dane wejściowe to wektor M,
liczba i, a wynik to suma. Przeetestować działanie funkcji dla o=3,6,10.
======================================================
2.zapisać instrukcje gehnerujące macierze M, zawierające 75 wierszy i 75 kolumn,
okreslając elementy M(k,l)=2+3k-l[do kwadratu] ,nastepnie utworzyć wektor
kolumnowy K podstawiając pod niego 70 kolumnę macierzy M, oraz dokonać mnożenia e
lementami macierzy M i K postaiwając wyniki pod zmienna

// Zadanie 1
// Masz podana macierz A utwórz z niej nowa macierz która będzie się składać
// z pierwszych 7 parzystych kolumn i wierszy macierzy A
// Zrób transpozycje nowej macierzy.
A=int(rand(100,100)*11);
B=A([2:2:14],[2:2:14])';

//##########################################################################################################

// Zadanie 2
// Masz podana macierz B, oblicz sumę jej elementów bez wiersza 36 i kolumny 39.

B=int(rand(100,100)*11);
suma=sum(B([1:35,37:100],[1:38,40:100]))
// Zadanie 3
// Zapisz skrypt służący do symulacji rzutu monetą wykorzystując funkcję rand().
// Skrypt ma obliczać ile rzutów jest potrzebnych do wyrzucenia 20 razy orła.
orly=0;
rzuty=0;
while orly<20,
if round(rand())==0 then,
orly=orly+1;
end;
rzuty=rzuty+1;
end;
disp(rzuty)
// Zadanie 4// Wykonaj 100 rzutów kostką do gry, zlicz ile razy została wyrzucona szóstka,
// liczbę szóstek podstaw pod zmienną szostki.
szostki=0;
for i=1:100
if int(rand()*6)+1==6 then,
szostki=szostki+1;
end;
end;
disp(szostki)
Zadanie 5
// Narysuj wykres funkcji z=sin x + cosh y ( załóżmy że taka była podana)
// dla dziedziny [-2*pi,2*pi] x [-2*pi,2*pi]
x=linspace(-2*%pi,2*%pi,50);
y=linspace(-2*%pi,2*%pi,50);
function w=f(x,y),
w=sin(x) + cosh(y);
endfunction
fplot3d(x,y,f)
// Zadanie 6
// Napisz funkcje która mnoży pierwszą liczbę podanego wektora razy sinus sumy reszty liczb danego wektora..
function w=f(x),
w=x(1)*sin(sum(x(2:$)))
endfunction

1.napisz funkcje ktora dla podanej licczby calkowitej m zwraca kwadratowamacierz A ostruktĂłrze podanej do struktory macierzy B
|1 2 3 4 |
|5 6 7 8 |
|9 10 11 12 |
|13 14 15 16 |4x4
2 napisz polecenia niezbedne do wykonania wykresu nastepujavcej powierzchni
z(x,y)=tanxcos(sinh y)
D={(x,y):x nalezy do (-%pi/3, %pi/3) ^ /\ y nalezy do (-%pi/3,%pi/3)}
3 wczytaj z binarnego zbioru znajdujacego sie w /pub/test-2/tablice-4 trzy
tabliceliczb i przypisz je do zmiennych A B C. oblicz iloczyn elementĂłw pierwszej i ostatniej kolumny macierzy A. wynik zapisz do zmiennej d ,a nastepnie zmienna d zapisz do pliku tekstowego d.txt
4 oblicz iloczyn wyznacznika macierzy powstalej po wykresleniu z macierzy A 30 wiersza i 61 kolumny . wynik zapisz do zmiennej e(w przypadku gdy zad 3 nie zostalo wykonane utwĂłrz macierz jedynkowa A o wymiarach 100x100)
5 napisz funkcje wektor_c ktorej argumentem beda 2 wektory x=(x1 x2 x3) y(y1 y2 y3) a wynikiem bedzie wektor stalych logicznych, ktorego wspolrzedne sa rezultatem porownania xi i 2*yi dla i=123. przetestoj dzialanie funkcji
dla wektorĂłw [2 -4 1] [1 1 1] rezultatem porownania
6 napisz skrypt sluzacy do obliczenia sumy odwrotnosci kwadratow 100 pierwszych wyrazow ciagu, ktorego n-ty element przedstawia sie wzorem a(n)=20*n^2-n/18+1

Przedstawiam rozwiązanie zadań podanych w poście wyżej.
// Zadanie 1
// Napisz funkcje która dla podanej liczby całkowitej m zwraca kwadratowa macierz A
// o strukturze podanej do struktury macierzy B.
// | 1 2 3 4 |
// | 5 6 7 8 |
// | 9 10 11 12 |
// |13 14 15 16 |4x4
function M=f(m)
n=0;
for i=1:m
for j=1:m
n=n+1;
M(i,j)=n;
end
end
endfunction
// Zadanie 2
// Napisz polecenia niezbędne do wykonania wykresu następującej powierzchni:

// z(x,y)=tanxcos(sinh y)
// D={(x,y) należy do (-%pi/3, %pi/3) a y należy do (-%pi/3,%pi/3)}.
//metoda z fplot3d (uniwersalna, polecam)
x=linspace(-%pi/3,%pi/3,20);
y=x;
function z=f(x,y)
z=tan(x)*cos(sinh(y));
endfunction
fplot3d(x,y,f);
//metoda z for (uniwersalna, uwaga na 'indexowanie')
x=linspace(-%pi/3,%pi/3,20);
y=x;
for i=1:20
for j=1:20
z(i,j)=tan(x(i))*cos(sinh(y(j)));
end
end
plot3d(x,y,z);
// Zadanie 3.
// Wczytaj z binarnego zbioru znajdującego się w /pub/test-2/tablice-4
// trzy tablice liczb i przypisz je do zmiennych A B C.
// Oblicz iloczyn elementów pierwszej i ostatniej kolumny macierzy A.
// Wynik zapisz do zmiennej d ,a następnie zmienna d zapisz do pliku tekstowego d.txt
load('/pub/test-2/tablice-4','A','B','C');
d=prod(A(:,[1,$]);
u=file('open','~/d.txt','new');
write(u,d);
file('close',u);
// Zadanie 4.
// Oblicz iloczyn wyznacznika macierzy powstałej po wykreśleniu z macierzy A 30 wiersza i 61 kolumny. Wynik zapisz do zmiennej e (w //przypadku gdy zad3 ie zostało wykonane utwórz macierz jedynkowa A o wymiarach 100x100).
e=prod(det(A([1:29,31:$],[1:60,62:$])));
// Zadanie 5.
// Napisz funkcje wektor_c ktorej argumentem będą 2 wektory
// x=(x1,x2,x3) y(y1,y2,y3) a wynikiem będzie wektor stałych logicznych,
// którego współrzędne są rezultatem porównania xi i 2*yi dla i=1,2,3.
// Przetestuj działanie funkcji dla wektorów [2 -4 1] [1 1 1].
function por=wektor_c(x,y)
por = (x==2*y);
endfunction
disp(wektor_c([2 -4 1],[1 1 1]));
// Zadanie 6
// Napisz skrypt służący do obliczenia sumy odwrotności kwadratów 100 pierwszych wyrazów ciągu,
// którego n-ty element przedstawia się wzorem a(n)=20*n^2-n/18+1.
n=1:100;
a=20*n^2-n/18+1;
sum((a^2)^(-1)); może ktoś to umie zrobić
// Zadanie 1
// Zapisz ciąg instrukcji symulujący rzut kostką do gry, wynik podstaw pod zmienna rzut,
// oraz zapisz do niesformatowanego pliku tekstowego “rzut_kosci” (zastosuj funkcję rand() ).
rzut=int(rand()*6)+1;
u=file('open','rzut_kosci.txt','new');
write(u,rzut);
file('close',u);
// Zadanie 2
// Zapisz, stosując funkcje rand(), oraz round(), ciąg instrukcji symulujący rzut monetą
//(dopuszczalne wartości = 0,1). Po wykonaniu losowania wypisz na ekranie "orzeł" (gdy wylosowano 0),
// oraz "reszka" (gdy wylosowano 1).
x=round(rand());
if x==0 then
disp('reszka');
else
disp('orzel');
end// Zadanie 3
// Wykonaj 10 rzutów kostką do gry, zsumuj liczbę wszystkich wyrzuconych oczek, podstawiając pod
// zmienną kosci.
// wersja 1
x=int(rand(10,1)*6)+1;
kosci=sum(x);
disp(kosci);
// wersja 2, z petla
for i=1:10
x(i)=round(rand()*5)+1
end
kosci=sum(x);
disp(kosci);
// Zadanie 4
// Wykonaj 100 rzutów kostką do gry, zlicz ile razy została wyrzucona szóstka,
// liczbę szóstek podstaw pod zmienną szostki.
szostki=0;
for i=1:100
if int(rand()*6)+1==6 then
szostki=szostki+1;
end;
end;
disp(szostki);
// Zadanie 5
// Zapisz ciąg instrukcji symulujący rzuty kostką do gry,
// tak aby rzucanie kostka odbywało się tak długo aż zostanie wyrzucona piątka.
// Zlicz ile wykonano rzutów, wynik podstaw pod zmienną oczka.
rzut=0;
oczka=0;
while rzut<>5
rzut=int(rand()*6)+1;
oczka=oczka+1;
end
disp(oczka);
// Zadanie 6
// Zapisz ciąg instrukcji symulujący rzuty kostką do gry,
// tak aby rzucanie kostka odbywało się tak długo aż zostanie wyrzuconych sześć czwórek.
// Zlicz ile wykonano rzutów, wynik podstaw pod zmienną gra.
gra=0;
czworki=0;
while czworki<6
gra=gra+1;
if int(rand()*6)+1==4 then
czworki=czworki+1;
end;
end;
disp(gra);
// Zadanie 7
// Wykonaj 100 rzutów kostką do gry, rezultaty kolejnych
// rzutów zapisz do macierzy Bm (10x10), oblicz wyznacznik
// z macierzy Cm, powstałej z macierzy Bm, z wszystkich parzystych
// wierszy i kolumn. Zsumuj elementy dolnego trójkąta
// (pod przekątna główną) macierzy Bm. W macierzy Bm, zamień
// wszystkie cyfry mniejsze od liczby 3 zerami.
//tworzenie macierzy Bm
Bm=int(rand(10,10)*6)+1;
//wyznacznik Cm
Cm=Bm([2:2:10],[2:2:10]);
wyznacznik=det(Cm);
disp(Cm,wyznacznik)
//suma elementow pod przekatna
suma=0;
for i=1:10
for j=1:10
if i>j then
suma=suma+Bm(i,j);
end
end
end
// zamiana w macierzy Bm wszystkiech cyfry
// mniejszych od liczby 3 zeram
for i=1:10,
for j=1:10,
if Bm(i,j)<3 then,
Bm(i,j)=0;
end;
end;
end;
// Zadanie 8
// Narysuj wykres funkcji z(x,y) = sin(x) * sin(y) dla dziedziny [ -2, 2] x [-2, 2].
x=-2:0.1:2;
y=-2:0.1:2;
function z=f(x,y)
z=sin(x)*sin(y);
endfunction
fplot3d(x,y,f);
/ Zadanie 9
// Narysuj wykres funkcji z(x,y) = sin(x) * sin(y) + sin(x) + sin(y) dla dziedziny [ -2, 2] x [-2, 2].
x=-2:0.1:2;
y=-2:0.1:2;
function z=f(x,y)
z=sin(x)*sin(y)+sin(x)+sin(y);
endfunction
fplot3d(x,y,f);
// Zadanie 10
// Zdefiniuj funkcję wektorki(), której argumentami są dwa wektory tej samej długości x (tablica liczb),
// y (tablica stałych logicznych), zwracaną wartością suma współrzędnych wektora x o tych indeksach
// dla których współrzędne wektora y są prawdziwe. Sprawdź działanie funkcji dla wektorów
// x = [1, 2, 3, 4, 5, 6], y = [F T T F F T]. (wynik = 11).
function wynik=wektorki(x,y)
wynik=sum(x(y));
endfunction;
x = [1, 2, 3, 4, 5, 6];
y = [%F %T %T %F %F %T];
wynik=wektorki(x,y); // Zadanie 1
// Stworz wykres funkcji 2d y=cos(x)*sin(x) dla x:<-2,2>
function y=f(x)
y=cos(x).*sin(x);
endfunction
x=linspace(-2,2,100);
plot2d(x,f(x));
//Zadanie 2
//Stwórz wykres funkcji 3d dla
//X:<-3,-2>
//Y:<-2,2>
//Z:sin(e^y+cos(x))
//wersja 1
function z=f(x,y)
z=sin(%e^y+cos(x));
endfunction
x=linspace(-3,-2,50);
y=linspace(-2,2,50);
fplot3d(x,y,f);
//wersja 2
function z=f(x,y)
for i=1:length(x)
for j=1:length(y)
z(i,j)=sin(%e^y(j)+cos(x(i)));
end;
end;
endfunction

x=linspace(-3,-2,50);
y=linspace(-2,2,50);
z=f(x,y);
plot3d(x,y,z);
// Zadanie 3
// Zdefiniuj funkcje suma_c o parametrach „i” i „j” gdzie i to wiersze a j kolumny.
// Ktora bedzie zwracala macierz wyjsciowa A dla i=10 i j=12
//ja tego zadania nie rozumiem, nie jest bowiem napisane jak uzupelnic ta macierz..
//jak ktos wie o co chodzi to proszę napisać..
//Zadanie 4
//Stworz symulacje rzutu kostka do gry.
function oczka=kostka()
oczka=int(rand()*6)+1;
endfunction
oczka=kostka()
//Zadanie 5
//Rzut symetryczny monetą. Oblicz ile razy wypadnie orzel w 50 rzutach.
//wersja 1
//zakladam ze 1 to orzel a 0 to reszka
orzel_reszka=int(rand(50,1)*2);
orly=sum(orzel_reszka);
//wersja 2
//zakladam ze 1 to orzel a 0 to reszka
orly=0;
for i=1:50
if int(rand()*2)==1 then
orly=orly+1;
end;
end;
//Zadanie 6
//Dla ilu elementow suma wyrazow ciągu n^2-n+2 jest mniejsza od 1500.
//zakladam n=1,2,...
//mozna zrobic np tak:
suma=0;
n=0;
while suma<1500
n=n+1;
suma=suma+(n^2-n+2);
end;
suma=suma-(n^2-n+2);
n=n-1;
disp(n,'Ilosc elementow :');

// Polecenie 1 - 4/4 pkt
// nalezy - narysowac wykres funkcji:
// z(x,y) = cos(x)*sin (y*cos(x))
// przyjmujac dziedzine parametru jako D={(x,y): [-2,2] x [-2pi,2pi]}
//wersja 1
function z=f(x,y)
z=cos(x)*sin(y*cos(x));
endfunction
x=linspace(-2,2,50);
y=linspace(-2*%pi,2*%pi,50);
fplot3d(x,y,f);
//wersja 2
x=linspace(-2,2,50);
y=linspace(-2*%pi,2*%pi,50);
for i=1:length(x)
for j=1:length(y)
z(i,j)=cos(x(i))*sin(y(j)*cos(x(i)));
end;
end;
plot3d(x,y,z);
// Polecenie 2 - 4/4 pkt
// nalezy - wygenerowac losowo macierz A o 10 wierszach i 10 kolumnach
// - obliczyc sume wszystkich elementow macierzy powstalej po wykresleniu z macierzy A wierszy od 5 do 8,
// podstawiajac wynik pod zmienna "suma"
// - obliczyc macierz transponowana (oznaczajac ja przez "Atrans") do macierzy utworzonej z pierwszych 2
// kolumn parzystych i pierwszych 2 wierszy nieparzystych macierzy A
A=int(rand(10,10)*11)+1;
suma=sum(A([1:4,9,10],:));
Atrans=A([1,3],[2,4])';
// Polecenie 3 - 4/4 pkt
// nalezy - zdefiniowac funkcje o nazwie "wektor", ktorej argumentami bedzie n-elementowy wektor X,
// wynikiem bedzie wartosc X_1 + sin( X(2) + X(3) + ... + X(n) )
// ( X(i) oznacza i-ta wspolrzedna wektora X,
// X_n ostatnia wspolrzedna wektora X)
// - przetestowac dzialanie funkcji dla wektora [2 -4 1 4 7].
function wynik=wektor(X)
wynik=X(1)+sin(sum(X(2:$)));
endfunction
X=[2 -4 1 4 7];
wynik=wektor(X);
// Polecenie 4 - 4/4 pkt
// nalezy - podstawic pod zmienna x (definiujac ja jako wektor) wyniki 100 rzutów moneta
// (wartosc 0 gdy wyrzucono reszke, 1 gdy orla)
// - obliczyc i podstawic pod zmienna "reszki" ile razy wyrzucono reszke
x=int(rand(100,1)*2);
reszki=100-sum(x);// Polecenie 1
// nalezy - wygenerowac losowo macierz B o 25 wierszach i 25 kolumnach, elementy macierzy z przedzialu [0,10)
// - do elementow z kolumn nieparzystych nalezy dodac liczbe 1000
// - obliczyc macierz transponowana (oznaczajac ja przez "Bt") do macierzy utworzonej z macierzy B po wykresleniu
// kolumn nieparzystych i wierszy nr 14, 15, 16 macierzy B
B=int(rand(25,25)*11);
B(:,1:2:25)=B(:,1:2:25)+1000;
Bt=B([1:13,17:25],[2:2:25])';
// Polecenie 2 -
// nalezy - zdefiniowac funkcje o nazwie "sumka", ktorej argumentami beda wekory X i Y tego samego wymiaru,
// wynikiem bedzie wyrazenie X(1)*Y(n) + X(2)*Y(n-1) + ... + X(n)*Y(1)
// ( Y(i) ( X(i) ) oznacza i-ta wspolrzedna wektora Y (X),
// ( Y(n) ( X(n) ) ostatnia wspolrzedna wektora Y (X) )
// - przetestowac dzialanie funkcji dla wektorow [4 -15 3 9 -17], [1 3 5 7 9].
function wynik=sumka(X,Y)
wynik=sum(X.*Y($:-1:1));
endfunction
X=[4 -15 3 9 -17];
Y=[1 3 5 7 9];
wynik=sumka(X,Y);
// Polecenie 3
// nalezy - podstawic pod zmienna v (definiujac ja jako wektor) wyniki 100 rzutow kostka do gry
// - obliczyc i podstawic pod zmienna "oczka" ile razy wyrzucono 2 lub 3 oczka
//wersja 1
v=int(rand(100,1)*6)+1;
oczka=0;
for i=1:100
if ( v(i)==2 | v(i)==3 ) then
oczka=oczka+1;
end;
end;
//wersja 2
v=int(rand(100,1)*6)+1;
oczka=length(find(v==2 | v==3));
// Polecenie 4
// nalezy - generujac liczby losowe z przedzialu (0,1] i podstawiajac je jako kolejne elementy tablicy W
// wskazac za ktorym razem wylosowano liczbe > 0.9
// - po wylosowaniu tej liczby zakonczyc proces losowania
W=0;
i=0;
while W($)<=0.9
i=i+1;
W(i)=rand();
end;
// Polecenie 5
// nalezy - narysowac wykres funkcji:
// x(t) = t* sin(t) + t - cos(t)
// y(t) = t*cos(t)
// przyjmujac dziedzine parametru jako [-3, 2]
t=linspace(-3,2,100);
x=t.*sin(t)+t-cos(t);
y=t.*cos(t);
plot2d(x,y,5);
xtitle('x=t*sin(t)+t-cos(t), y=t*cos(t)','x','y'); // Zadanie 1
// Utwórz macierz 11x11 której elementy beda iloczynami numeru kolumny i wiersza
// a nastepnie zapisz ja do sformatowanego pliku.
A=[1:11]'*[1:11];
u=file('open','tablica.txt','unknown'); // na linuxie: u=file('open','~/tablica.txt','unknown');
write(u,A,'(f3.0,2X,f3.0,2X,f3.0,2X,f3.0,2X,f3.0,2X,f3.0,2X,f3.0,2X,f3.0,2X,f3.0,2X,f4.0,2X,f4.0,2X)');
file('close',u);
// macierz A mozna rowniez utworzyc przy pomocy petli for:
for i=1:11
for j=1:11
A(i,j)=i*j;
end;
end;
// Zadanie 2
// Stwórz macierz M o wymiarach 6x3 i wypełnij ja liczbami losowymi z przedzialu (4,12).
// Do elementów o indeksach ij, gdzie i=j dodaj 300.
// Oblicz ślad macierzy zbudowanej z wyrazów na przecięciu pierwszych dwóch kolumn i wierszy.
// wersja 1
M=int(rand(6,3)*9)+4;
M=M+eye(6,3)*300;
slad=trace(M(1:2,1:2));
// wersja 2, z pętlą "for"
M=int(rand(6,3)*9)+4;
for j=1:3
M(j,j)=M(j,j)+300;
end;
slad=trace(M(1:2,1:2));
// Zadanie 3
// Zdefiniuj funkcję ARCHIWIZACJA której argumentem jest dowolna macierz 3x3
// wypełniona liczbami całkowitymi.
// Funkcja powinna zapisac podaną macierz do niesformatowanego pliku w zadanej lokalizacji.
//wersja 1
function ARCHIWIZACJA(M,lokalizacja)
u=file('open',lokalizacja,'unknown');
write(u,M);
file('close',u);
disp('Macierz zarchiwizowana');
endfunction
M=int(rand(3,3)*10)+1;
ARCHIWIZACJA(M,'archiwum.txt'); // na linuxie: ARCHIWIZACJA(M,'~/archiwum.txt')
//wersja 2, z sprawdzeniem rozmiaru macierzy
function ARCHIWIZACJA(M,lokalizacja)
if size(M,1)==3 & size(M,2)==3 then
u=file('open',lokalizacja,'unknown');
write(u,M);
file('close',u);
disp('Macierz zarchiwizowana');
else
disp('Blad: Macierz nie ma rozmiaru 3x3 !');
end;
endfunction
M=int(rand(3,3)*10)+1;
ARCHIWIZACJA(M,'archiwum.txt'); // na linuxie: ARCHIWIZACJA(M,'~/archiwum.txt');
M=int(rand(10,3)*10)+1;
ARCHIWIZACJA(M,'archiwum.txt'); // na linuxie: ARCHIWIZACJA(M,'~/archiwum.txt');
// Zadanie 4
// Zdefinuj funkcje podmiana. Argumentem funkcji jest macierz,
// wynikiem - macierz wejsciowa w której zmieniono pierwszy wiersz z ostatnia kolumna.
//wersja 1
function M=podmiana(M)
bufor=M(1,:);
M(1,:)=M(:,$)';
M(:,$)=bufor';
endfunction
M=int(rand(6,6)*10)+1;
M2=podmiana(M);
//wersja 2, z sprawdzeniem rozmiaru macierzy
function M=podmiana(M)
if size(M,1)==size(M,2) then
bufor=M(1,:);
M(1,:)=M(:,$)';
M(:,$)=bufor';
else
disp('Blad: Macierz nie jest macierza kwadratowa');
end;
endfunction
M1=int(rand(6,6)*10)+1;
M2=podmiana(M1);
M3=int(rand(10,6)*10)+1;
M4=podmiana(M3);
// Zadanie 5
// Okresl wartosc tablicy TABLICA. Pierwsza kolumna to liczby -%pi do 12%pi co 0.7%pi,
// druga kolumna to iloczyn pierwszej i liczby 2, a trzecia kolumna zawiera wartosc sumy
// liczb z pierwzej i drugiej kolumny.
TABLICA=[-%pi:0.7:12*%pi]';
TABLICA(:,2)=TABLICA(:,1)*2;
TABLICA(:,3)=sum(TABLICA,'c'); // Zadanie 1
// Utwórz macierz Z zawierającą 4 wiersze i 8 kolumn i wypełnioną wartościami 23
// następnie nadaj elementom macierzy w wierszu drugim wartości równe 11,
// a kolumnie pięć wartość równą -4. Na przecięciu przedostatniego wiersza i ostatniej kolumny
// wpisz wartość liczby pi, a w poprzednim elemencie macierzy powyżej wpisz
// sumę drugiego i ostatniego elementu w kolumnie drugiej. Macierz Z zapisz do zbioru projektowego.
Z=ones(4,8)*23;
Z(2,:)=11;
Z(:,5)=-4;
Z($-1,$)=%pi;
Z($-2,$)=Z(2,2)+Z($,2);
// "Macierz Z zapisz do zbioru projektowego" ??? nie rozumiem..
// Zadanie 2
// Wygeneruj losową kwadratową macierz B o wymiarze 4 i utwórz macierz D zawierająca 4 wiersze i 4 kolumny,
// która zawiera kolejne liczby całkowite parzyste od 2 do 32.
// Wykonaj następujące operacje macierzowe:
// - przemnóż wszystkie elementy 3 wiersza macierzy D przez liczbę 10
// - przemnóż macierz D przez transponowaną macierz B
// - przemnóż 4 wiersz macierzy D przez 3 kolumnę macierzy B
// - przemnóż elementy pierwszej kolumny macierzy B przez elementy 3 kolumny
// macierzy D
// - w ostatnim wierszu macierzy B wpisz wartość cosinus elementów 2 wiersza
// macierzy B
// - oblicz wyznacznik i macierz odwrotną do macierzy B
B=int(rand(4,4)*10)+1;
D=matrix(2:2:32,4,4)';
D(3,:)*10
D*B'
D(4,:)*B(:,3)
B(:,1).*D(:,3)
B($,:)=cos(B(2,:));
det(B)
inv(B)
// Zadanie 3
// Podaj instrukcje sprawdzające wartość zmiennej o nazwie "owoc" ma wartość "gruszka",
// jeżeli tak nadaj zmiennej logicznej "o" wartość prawda.
// Sprawdź, jeżeli "owoc" ma wartość "banan", jeżeli tak nadaj zmiennej logicznej "o" wartość prawda.
// Jeżeli zmienna "wiek" jest, co najmniej równa 35 nadaj zmiennej logicznej "w" wartość prawda.
// W innych przypadkach nadaj zmiennym logicznym wartość fałsz. Przetestuj działanie funkcji dla danych:
// - "owoc" równa się "banan", wiek równa się 12;
// - "owoc" równa się "ananas", wiek równa się 35;
// - "owoc" równa się "gruszka", wiek równa się 65

// Zadanie jest niezbyt precyzyjnie sformułowane w kwestii czy ma być to ciąg instrukcji, funkcja czy dwie funkcje. Samo zadanie jest proste.
//wersja zoptymalizowana
function [o,w]=f(owoc,wiek)
o = (owoc=='gruszka' | owoc=='banan');
w = (wiek>=35);
endfunction
[o,w]=f("banan",12)
[o,w]=f("ananas",35)
[o,w]=f("gruszka",65)
//wersja z "ifami"
//(niesmaczna, maslo maslane, odradzam)
function [o,w]=f(owoc,wiek)
if owoc=="gruszka" | owoc=="banan" then
o=%t;
else
o=%f;
end;
if wiek>=35 then
w=%t;
else
w=%f;
end;
endfunction
[o,w]=f("banan",12)
[o,w]=f("ananas",35)
[o,w]=f("gruszka",65)
// Zadanie 4
// Zdefiniuj w pliku obj.fcr funkcję o nazwie "objętość”, dla której danymi są trzy liczby: r, n, d,
// które są długościami boków prostopadłościanu, a wynikiem jest liczba V równa objętości prostopadłościanu.
// Przetestuj działanie funkcji dla takich przypadków: "3,4,5", "1,2,5", "4,2,2".
function V=objetosc(r,n,d)
V=r*n*d;
endfunction;
save('obj.fcr',objetosc); // na linuxie save('~/obj.fcr',objetosc);
clear('objetosc');
load('obj.fcr','objetosc'); // na linuxie load('~/obj.fcr','objetosc');
V1=objetosc(3,4,5)
V2=objetosc(1,2,5)
V3=objetosc(4,2,2)

// Wykonaj 50 rzutów kostką do gry, zlicz ile razy została wyrzucona szóstka,piątka i czwórka.
// liczbę szóstek, piątek, czwórek podstaw pod zmienną liczby.
oczka=int(rand(50,1)*6)+1;
liczby=0;
for i=1:50
if oczka(i)==6 | oczka(i)==5 | oczka(i)==4 then
liczby=liczby+1;
end;
end;
disp(liczby);
// Polecenie 2
// nalezy - narysowac wykres funkcji
// w(t) = -12-2t*cos(t^2)
// - przyjac dziedzine zmiennej a jako D=[10,30]
// - na wykresie dokonac opisu osi t i w
// - zaznaczyc dowolnym symbolem graficznym 6 punktów
// - wartosci zmiennych t i w dla tych 6 punktow zapisz do zbioru o nazwie szesc
// - wykres zapisz do zbioru o nazwie rysunek
t=linspace(10,30,200);
function w=f(t)
w=-12-2*t.*cos(t^2);
endfunction
plot2d(t,f(t),2);
t2=linspace(11,29,6);
plot2d(t2,f(t2),-9);
xtitle('w(t)','t','w');
szesc=[t2', f(t2)'];
//"zapisz do zbioru o nazwie rysunek" ???
xs2gif(0,'rysunek.gif');
// Napisz funkcje LOTTO która losuje dwie liczby całkowite z przedzialu <-10,10>
// i zapisz je do wektora F0, a nastepnie wylosuj kolejne dwie liczby z tego przedziału i zapisz do F1.
// Jeżeli choć jedna wartość z tych dwóch wektorów jest taka sama to przerwij losowanie.
// Zlicz wszystkie losowania.
// ciezko zrozumiec o co dokladnie chodzi
// zalozylem ze jesli dwa wektory maja choc jedena wspolna wartość
// przerywamy losowanie
function F=LOTTO()
F=int(rand(2,1)*21)-10;
endfunction
F0=LOTTO();
F1=LOTTO();
i=1;
while sum(F0==F1)==0 then
i=i+1;
F0=LOTTO();
F1=LOTTO();
end;
disp(i);
disp([F0 F1]);
// Dane są dwa wektory A i B o wymiarach 1x5 każdy, w których znajdują się dowolne imiona, w A żeńskie, a w B męskie.
// Napisz funkcję która dla zadanej parzystej liczby zwróci dwa imiona żeńskie z wektora A,
// a dla nieparzystej trzy dowolne imiona męskie z wektora B.
//mozna zrobic np tak:
function imiona=imionka(A,B,l)
if l/2==int(l/2) then
imiona=A(int(rand(2,1)*5)+1);
else
imiona=B(int(rand(3,1)*5)+1);
end;
endfunction
A=['Kasia';'Katia';'Karolina';'Paulina';'Natalia'];
B=['Szymon';'Dawid';'Tomasz';'Andrzej';'Mieczyslaw'];
imiona=imionka(A,B,3);
disp(imiona);
imiona=imionka(A,B,2);
disp(imiona);

/ Zadanie 1
// Zdefiniuj funkcje zamiana ktorej argumentami sa macierz A i wektor
// b a wartoscia wyjsciowa jest podana macierz, w ktorej zamiast pierwszego
// wiersza jest podstawiony wektor b.
// zalozylem ze wektor b jest wektorem "pionowym"
function A=zamiana(A,b)
A(1,:)=b';
endfunction
A=int(rand(6,6)*10)+1;
b=int(rand(6,1)*10)+1;
A2=zamiana(A,b);
disp(A2,b,A);

//####################################################################################

// Zadanie 2
// Stworz tablice w ktorej pierwsza kolumna sa liczby 0.1, 0.2......3.1,3.2,
// a druga kolumna sa cosinusy liczb z pierwszej kolumny.

T=[0.1:0.1:3.2]';
T(:,2)=cos(T(:,1));

//####################################################################################

// Zadanie 3
// Zdefiniuj macierz kwadratowa 4x4 zawierajaca losowe liczby z przedzialu <1;50).
// W pola na przecieciu 3 i 4 wiersza oraz 1 i 2 kolumny wstaw jedynki.
// Zapisz to do pliku binarnego i jakas tam nazwa pliku podana.

W=int(rand(4,4)*50)+1;
W(3:4,1:2)=1;
save('zadanko.dat',W);

//####################################################################################

// Zadania 4
// Mniejsza z tym zadaniem, za malo danych aby je zrobic, bylo trzeba jakas macierz
// zapisac do sformatowanego pliku tekstowego.

//####################################################################################

// Zadanie 5
// Zdefiniuj funkcje obliczenie(x,y) ktorej wartoscia wyjsciowa jest wieksza z liczb:
// x*cos(x-y)/4 lub x+y

function w=obliczenie(x,y)
a=x*cos(x-y)/4;
b=x+y;
if a>=b then
w=a;
else
w=b;
end;
endfunction;

10



Wyszukiwarka

Podobne podstrony:
zadanka1, I semstr moje materiały, Semestr I, Informatyka stosowana, zadanka
zadanka, I semstr moje materiały, Semestr I, Informatyka stosowana, zadanka
Pytania na egzam z infy, I semstr moje materiały, Semestr I, Informatyka stosowana, wyklady i pytani
egzamin informa, I semstr moje materiały, Semestr I, Informatyka stosowana, wyklady i pytania
CHEMIA - WZORY, I semstr moje materiały, Semestr I, Chemia
Zakres teorii, I semstr moje materiały, Semestr I, Mechanika ogólna
LABORKI, I semstr moje materiały, Semestr I, Chemia, Chemia - I semestr, Inne Sprawozdania
korozja metali i, I semstr moje materiały, chemia materialow budowlanych, laborki
fizyka 201 sprawko, I semstr moje materiały, fizyka, 201
sciaga z matmy, I semstr moje materiały, Matematyka 1 Semsetr, Matematyka
Sprawozdanie 0, I semstr moje materiały, fizyka laborki, fizyka lab sprawka, MOJE
labolatoria302, I semstr moje materiały, fizyka laborki, fizyka lab sprawka, fizyka - labolatoria, O
calki+krzywoliniowe, I semstr moje materiały, Matematyka 1 Semsetr, analiza mat zadania

więcej podobnych podstron