Presentation - Osama Talaat Homepage

advertisement
1
Lecture (5)
Programming (2)
Eng. Osama Talaat
2
Announcement
 M-Files are available:
 Download the file from the course page
www.osamatalaat.com/matlab
 Copy it into the current directory
 Open it using MATLAB (Open, Double
click, ... )
 Run !!
3
clear all;
close all;
clc;
Clean
Start
% n=input('Please enter the number of cycles: ');
% f=input('Please enter the frequency: ');
% A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi];
y=sin(x);
plot(x,y)
xlabel('x')
ylabel('sin(x)')
title('Sine Curve')
grid
disp('The amplitude values are: ')
y
disp('Plotting Done Successfully!!')
4
clear all;
close all;
clc;
No of
Cylces
n=input('Please enter the number of cycles: ');
% f=input('Please enter the frequency: ');
% A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi*n];
y=sin(x);
plot(x,y)
xlabel('x')
ylabel('sin(x)')
title('Sine Curve')
grid
disp('The amplitude values are: ')
y
disp('Plotting Done Successfully!!')
5
clear all;
close all;
clc;
Amplitude
n=input('Please enter the number of cycles: ');
% f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi*n];
y=A*sin(x);
plot(x,y)
xlabel('x')
ylabel([num2str(A) 'sin(x)'])
title('Sine Curve')
grid
disp('The amplitude values are: ')
y
disp('Plotting Done Successfully!!')
6
clear all;
close all;
clc;
Frequency
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi*n/f];
y=A*sin(f*x);
plot(x,y)
xlabel('x')
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve')
grid
disp('The amplitude values are: ')
y
disp('Plotting Done Successfully!!')
7
clear all;
close all;
clc;
Done !!
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi*n/f];
y=A*sin(f*x);
plot(x,y)
xlabel('x')
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve')
grid
disp('The amplitude values are: ')
y
disp('Program Terminated !!')
8
clear all;
close all;
clc;
Output
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi*n/f];
y=A*sin(f*x);
plot(x,y)
xlabel('x')
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve')
grid
disp('The amplitude values are: ')
y
disp('Program Terminated !!')
9
clear all;
close all;
clc;
Output
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
x=[0:0.1:2*pi*n/f];
y=A*sin(f*x);
plot(x,y)
xlabel('x')
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve')
grid
disp('The amplitude values are: ')
disp(y)
disp('Program Terminated !!')
10
Plot Sine
 Try n = any negative number:
clear all;
close all;
11
clc;
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
if n>0
x=[0:0.1:2*pi*n/f]; y=A*sin(f*x);
plot(x,y)
xlabel('x');
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve'); grid
disp('The amplitude values are: '); disp(y)
end
disp('Program Terminated !!')
If Statement
12
if conditions
________________________
______ Commands ________
________________________
end
________________________
______ Commands ________
________________________
clear all;
close all;
13
Error Msg
clc;
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
if n>0
x=[0:0.1:2*pi*n/f]; y=A*sin(f*x);
plot(x,y)
xlabel('x');
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve'); grid
disp('The amplitude values are: '); disp(y)
else
disp('The number of cycles must be positive')
end
disp('Program Terminated !!')
If Else Statement
14
if conditions
________________________
______ Commands ________
________________________
else
________________________
______ Commands ________
________________________
end
________________________
______ Commands ________
________________________
...
if n>0
15
Compare
x=[0:0.1:2*pi*n/f]; y=A*sin(f*x);
plot(x,y); xlabel('x');
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve'); grid
disp('The amplitude values are: '); disp(y)
else
disp('The number of cycles must be positive')
end
......................................................
if n>0
x=[0:0.1:2*pi*n/f]; y=A*sin(f*x);
plot(x,y); xlabel('x');
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve'); grid
disp('The amplitude values are: '); disp(y)
end
if n<=0
disp('The number of cycles must be positive')
end
...
16
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Comments
clear all; close all; clc;
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
if n>0 %Check positive number of cycles
x=[0:0.1:2*pi*n/f]; y=A*sin(f*x);
plot(x,y)
xlabel('x');
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve'); grid
disp('The amplitude values are: '); disp(y)
else
disp('The number of cycles must be positive')
end
disp('Program Terminated !!')
17
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Comments
clear all; close all; clc;
n=input('Please enter the number of cycles: ');
f=input('Please enter the frequency: ');
A=input('Please enter the Amplitude: ');
if n>0 %Check positive number of cycles
x=[0:0.1:2*pi*n/f]; y=A*sin(f*x);
plot(x,y)
xlabel('x');
ylabel([num2str(A) 'sin(' num2str(f) 'x)'])
title('Sine Curve'); grid
% disp('The amplitude values are: '); disp(y)
else
disp('The number of cycles must be positive')
end
disp('Program Terminated !!')
18
Password
 Enter the password.
 If the entered password is ‘a13’, display a
welcome message ‘Welcome Osama’.
 Else, Display an error message ‘Wrong password’.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
19
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all; close all; clc;
pass = input('Please enter password: ','s');
if strcmp(pass,'a13')
disp('Welcome Osama')
else
disp('Wrong password')
end
To enter
string
To compare
strings
20
Password
 Enter the password.
 If the entered password is ‘a13’, display a
welcome message ‘Welcome Osama’.
 If the entered password is ‘com’, display a
welcome message ‘Welcome Hamdy’.
 If the entered password is ‘t10’, display a
welcome message ‘Welcome Mona’.
 Else, Display an error message ‘Wrong password’.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
21
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
close all;
clc;
pass = input('Please enter password: ','s');
if strcmp(pass,'a13')
disp('Welcome Osama')
elseif strcmp(pass,'com')
disp('Welcome Hamdy')
elseif strcmp(pass,'t10')
disp('Welcome Mona')
else
disp('Wrong password')
end
22
If Elseif Statement
if conditions 1
________________________
______ Commands ________
________________________
elseif conditions 2
________________________
______ Commands ________
________________________
elseif conditions 3
________________________
______ Commands ________
________________________
...
else
________________________
______ Commands ________
________________________
end
________________________
______ Commands ________
________________________
23
Switch Case Statement
switch variable
case value 1
______ Commands
break
case value 2
______ Commands
break
case value 3
______ Commands
break
. . .
otherwise
______ Commands
break
end
________________________
______ Commands ________
________________________
________
________
________
________
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
24
clear all;
close all;
clc;
pass = input('Please enter password: ','s');
switch pass
case 'a13'
disp('Welcome Osama')
break
case 'com'
disp('Welcome Hamdy')
break
case 't10'
disp('Welcome Mona')
break
otherwise
disp('Wrong password')
break
end
Another
Solution
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Error Msg
25
clear all;
close all;
clc;
pass = input('Please enter password: ','s');
switch pass
case 'a13'
disp('Welcome Osama')
break
case 'com'
disp('Welcome Hamdy')
break
case 't10'
The error message stops execution
disp('Welcome Mona')
break
otherwise
error('Wrong password')
break
end
26
Length Units Converter
 Convert the length from meter to several length
units.
 Enter the length in meters.
 Enter the unit to convert to.
 Switch on the unit and upon its values multiply
the input length by the conversion factor, and
display the output
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Several
values
27
clear all; close all; clc;
len = input('Please enter Length in meter: ');
unit = input('Please enter the unit to convert to: ','s');
switch unit
case 'cm'
disp([num2str(len)
break
case 'mm'
disp([num2str(len)
break
case 'in'
disp([num2str(len)
break
otherwise
disp('This unit is
break
end
' m = ' num2str(len*100) ' cm'])
' m = ' num2str(len*1000) ' mm'])
' m = ' num2str(len/0.0254) ' in'])
not supported')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Designed by: Eng. Osama Talaat
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28
clear all; close all; clc;
len = input('Please enter Length in meter: ');
unit = input('Please enter the unit to convert to: ','s');
switch unit
case {'cm' 'centimeter'}
disp([num2str(len) ' m
break
case {'mm' 'millimeter'}
disp([num2str(len) ' m
break
case {'in' 'inch'}
disp([num2str(len) ' m
break
otherwise
disp('This unit is not
break
end
= ' num2str(len*100) ' cm'])
= ' num2str(len*1000) ' mm'])
= ' num2str(len/0.0254) ' in'])
supported')
For Loop
29
clear all; close all; clc;
for k=1:20
disp(rand) %do not display "ans ="
end
________________________________________
for index = vector
________________________
__ Commands to repeat __
________________________
end
________________________
______ Commands ________
________________________
30
Calculate the Formula
5
𝑠=
𝑘2
𝑘!
𝑘=1
22 32
12
42 52
∴𝑠=
+ + + +
1! 2! 3! 4! 5!
>> s=0;
>> s=s+1^2/factorial(1);
>> s=s+2^2/factorial(2);
>> s=s+3^2/factorial(3);
>> s=s+4^2/factorial(4);
>> s=s+5^2/factorial(5);
Calculate the Formula
31
clear all; close all; clc;
s=0;
for k=1:5
s=s+k^2/factorial(k);
end
disp(s)
Test Yourself !!
32
 Try it using matrices:
5
𝑠=
𝑘=1
𝑘 2 12 22 32 42 52
=
+ + + +
𝑘! 1! 2! 3! 4! 5!
33
GOOD LUCK
To be continued in the next lecture …
Download