Professional Documents
Culture Documents
% Program poprawiony
% Program oblicza szescian podanej liczby
disp('Obliczanie szescianu danej liczby:');
a = input('dana liczba= ','s');
x=a^3;
disp(['szescian tej liczby=', num2str(x)]);
% przykad z helpa
reply = input('Do you want more? Y/N [Y]: ', 's');
if isempty(reply)
reply = 'Y';
end
%% instrukcja IF str 16
%
%
%
%
%
%
%
%
%
%
%
clear
x = input('x=');
if x<-1
y = 1-x^2
else
if x>1
y = 1+x^2
else
y = x
end
end
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
if x == 0
%
disp('Podcz arwk z odpowiednim gwintem.')
%
elseif x == 1
%
x = input('Czy arwka jest dobra i niespalona? ');
%
if x == 0
%
disp('Podcz dobr arwk.')
%
elseif x == 1
%
x = input('Czy kabel jest podpity do arwki i kontaktu?
');
%
if x == 0
%
disp('Podepnij kabel.')
%
elseif x == 1
%
x = input('Czy kabel jest bez uszkodze? ');
%
if x == 0
%
disp('Wymie kabel na nieuszkodzony.')
%
elseif x == 1
%
x = input('Czy bezpiecznik odpowiadajcy badanemu
obwodowi z arwk jest wczony? ');
%
if x == 0
%
disp('Wcz bezpiecznik.')
%
elseif x == 1
%
x = input('Czy bezpiecznik jest dobry niespalony? ');
%
if x == 0
%
disp('Wymie bezpiecznik na nowy.')
%
elseif x == 1
%
x = input('Czy w oknach okolicznych
budynkw wieci si wiato? ');
%
if x == 0
%
disp('Prawdopodobnie przerwa w dostawie
prdu - sprawd czy na drzwiach Twojego budynku')
%
disp('znajduje si jaka informacja o
takich przerwach.')
%
disp('Jeli takiej informacji nie ma,
skontaktuj si z elektrowni, aby ustali')
%
disp('przyczyn awarii.')
%
elseif x == 1
%
x = input('Czy w ssiednim pokoju po
wczeniu kontaktu wiato si wieci? ');
%
if x == 0
%
disp('Prawdopodobnie awaria
gwnego bezpiecznika prdu w Twoim budynku.')
%
elseif x == 1
%
x = input('Czy masz moliwo
sprawdzenia gwnego bezpiecznika w Twoim budynku? ');
%
if x == 0
%
disp('Sprowad elektryka z
Twojego rejonu.')
%
elseif x == 1
%
x = input('Czy gwny
bezpiecznik jest wczony? ');
%
if x == 0
%
disp('Wcz
bezpiecznik.')
%
elseif x == 1
%
x = input('Czy gwny
bezpiecznik jest nieuszkodzony? ');
%
if x == 0
%
disp('Bezpiecznik
gwny uleg uszkodzeniu, sprowad elektryka.')
%
else disp('Sprawd
jeszcze raz poszczeglne elementy obwodu zasilajcego arwk,')
%
disp('a jeli to nie
pomoe sprowad elektryka.')
%
end
%
end
%
end
%
end
%
end
%
end
%
end
%
end
%
end
%
end
%
end
% end
%
% % przykad 3
for i = 1:5
p(i) = (2*i)^2;
end
p
%
%
%
%
%
%
%
% fprintf('\n
x
sin(x)'); % nagowek tabeli
% for alfa =0 : 5 : 360
%
k=k+1;
%
X(k)= alfa*pi/180; Y(k)=sin(X(k))^2;
%
fprintf('\n %5.1f %7.4f',alfa,Y(k));
% end
% plot(X,Y); set(gca,'XTick',0:pi/4:2*pi);
%
set(gca,'XTickLabel',{'0','1/4pi','1/2pi','3/4pi','pi','5/4pi','3/2pi','7
/4pi','2pi'}); grid on; % to wykres i siatka
% title('Funkcja sinus alfa kwadrat'); % tytu wykresu
% xlabel('x'); ylabel('y'); % etykiety osi
%
%
%
%
%
%
%
% % przykad 5
for w=1:3
for k=1:4
M(w,k)=w+k;
end
end
M
%
%
%
%
%
%
%
%
%
%
%
%
%
% % wiczenia 2.4.10
%
%
%
%
%
%
%
k = 0;
fprintf('\n
fi
beta'); % nagowek tabeli
for fi = 3.6 : 0.4 : 13
k = k + 1;
beta(k) = (fi - 0.5)/(1.1 + sin(fi));
fprintf('\n %5.1f %7.4f',fi, beta(k));
end
k = 0;
fprintf('\n
n sqrt(n)'); % nagowek tabeli
for n = 1 : 9
k = k + 1;
m(k) = mod(n,2);
if m(k) ~= 0
s(k) = sqrt(n);
fprintf('\n %5.f %7.4f',n,s(k))
end
end
close
clear;
p='T';
while p=='T'
disp('Obliczanie wartosci dowolnej funkcji f(x)');
x=input('Podaj wartosc x:');
funkcja=input('Wpisz wyraenie zalene od x','s');
y=eval(funkcja);
fprintf('\n x=%10.4f f(x)= %10.4f\n',x,y);
p=input('Czy nowe obliczenie? (T/N):', 's');
p=upper(p);
end
% % funkcja inline
% f1=inline('1+sin(x) '); % pozwala na przypisanie zmiennej acucha
% odpowiadajcego wyraeniu matematycznemu.
% Zmienn t moemy dalej uywac jak odpowiadajc jej funkcj.
f1(pi/6)
% % funkcja silnia
%
% silnia(9)
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
% przykad 12
x= 0 : 0.2 : 2*pi;
plot(x,sin(x));
grid on
title('Przykad wykresu:');
xlabel('x');
ylabel('sin(x), cos(x)');
% a teraz drugi wykres
hold on % w tym samym ukadzie
P=plot(x,cos(x), ':m');
set(P,'Linewidth',3);
legend('sinus','cosinus');
hold off
%
%
%
%
Przykad 13
Wykres supkowy:
x=0 : 0.2 : 2*pi;
bar(x,sin(x));
%
%
%
%
%
%
%
%
%
%
%
% % testowanie
F1=figure('Position',[5 40 790 300], 'Name', 'TESTOWANIE');
grid on
get(F1,'Color')
set(F1,'Color', [0.9, 0.7, 0.95], 'MenuBar', 'none');
get(F1,'Color')
set(F1,'Position',[5 40 790 300], 'Color', [0.5 0.5 0.9])
set(F1,'Position',[5 40 790 300], 'Name', 'TESTOWANIE'...
, 'Color', [0.9, 0.7, 0.95], 'MenuBar', 'none');
get(F1);
% % % UICONTROLs - kontrolki,
% S1 = uicontrol('Style', 'Slider', 'Units', 'pixels', 'Position', [10,
20, 15, 40]);
% % % wiczenie A, str 29
% kontrolki1 %% uruchamia plik kontrolki1.m oraz zwizane z nim
procedury kolor.m i przyrost.m
% % wiczenie B, str 30
% pierwiastki %% uruchamia plik pierwiastki.m oraz zwizane z nim
procedury rysuj.m i nowe.m
%% GUIDE str 31
% guide
%% Macierze str 33
% % generowanie tablic
% for i=1:4; A(i)=2*i; A, end; % sposb niezalecany, gdy generowaniu
tablicy towarzyszy
%
% przymusowa operacja wielokrotnego
powikszania rozmiaru
%
% tablicy
% B(4)=0, for i=1:4; B(i)=2*i; B, end;
% sposb zalecany - najpierw
rezerwujemy miejsce
%
% dla tablicy w pamici programu
przez wstawienie
%
% zer do wszytskich elementw
wcznie z elementem
%
% o maksymalnych wartociach
wskanikw
% i=1:4; B=2*i
% sposb zalecany najbardziej, gdy unikamy ptli FOR.
Matlab jest
%
% zoptymalizowany do operacji na macierzach
% A(2,3)=0.
% A(3,5)=2.
elementu o
%
%
%
%
%
%
% % wektor str 34
x = 0 : 0.2 : 1
a = x.*x
b = x.^2
% i = 1 : 6
% z(i)=2*i
% p=2*i
A
A
A
A
=
=
=
=
%
%
%
%
%
%
%
%
%
%
%
A=[4, 2, 3; 3, 6, 1 ], B=[5, 3, 8; 4, 1, 2]
A+B
% A*B
A*B.'
A.*B
%
%
%
%
% % przykad
% najpierw siatka punktw (x,y) dla wykresu 3D:
[x,y]=meshgrid(-3*pi : 0.5 : 3*pi, -3*pi : 0.5 : 3*pi);
% nastepnie definiujemy funkcje z(x,y):
%
%
%
%
%
%
%
%
%
%
%
% w. A)
M = [-2 0.5 4.2 8; 0 4 8 2; -5 7 3 1; 10 12 -6 4];
C = [73.5; 15.2; -33; 5];
X = M\C;
disp(X)
% w. B)
transpM = M.'; disp(transpM)
transpC = C.'; disp(transpC)
wyznaczM = det(M); disp(wyznaczM)
wyb_kol1 = M(:,1); disp(wyb_kol1)
wyb_kol2 = M(:,2); disp(wyb_kol2)
wyb_kol1i2 = M(:,1:2); disp(wyb_kol1i2)
el11 = M(1,1); disp(el11)
el22 = M(2,2); disp(el22)
liczba_elemC = length(C);
rozmiarM = size(M);
% rozmiarC = size(C);
% % % elemensty macierzy numerowane s od 1!!
%% pierwiastki wielomianu str42
%
% % % rozwiazanie rwnania: 3*x^2 + 2*x + 1=0
% aa = [-3 2 1];
% pierwiastki = roots(aa);
% % % aby narysowa wykres wielomianu wygodnie uy funkcji polyval(a,xp)
% xp=min(real(pierwiastki))-1; xk=max(real(pierwiastki))+1;
% x=linspace(xp,xk);
%
% help polyval
% wyznacza wartosc wielomianu dla danego wektora
wspczynnikw
%
% a oraz danej wartosci x=xp. Jesli za xp wstawimy
ciag
%
% wartosci zmiennej niezalenej to otrzymamy ciag
wartosci
%
% wielomianu potrzebny do wykresu.
% y=polyval(aa,x);
% plot(x,y); grid on
% st=['W(x)=-3*x^2+2*x+1'];
% title(st);
%
%
%
%
%
%
%
%
%
%
%
%
%
%
% grid on
% %
%
%
%