Matlab的if語句switch語句for迴圈while迴圈語句練習
1、 輸入一組整數a,輸出其中奇偶數、奇偶數的和、積以及個數。
m檔案程式碼
clear
clc
n=input('輸入數字個數');
for i=1:n
x(i)=input('輸入數字:');
end
j=1;k=1;
%y向量存奇數,z向量存偶數
for i=1:n
if mod(x(i),2)
y(j)=x(i);
j=j+1;
else
z(k)=x(i);
k=k+1;
end
end
%輸出奇數和偶數
y
z
%輸出所有奇數和、所有偶數和
sum(y)
sum(z)
%輸出所有奇數連乘積、所有偶數乘積
prod(y)
prod(z)
%輸出所有奇數個數、所有偶數個數
length(y)
length(z)
其他方法(下面的方法輸入必須是矩陣形式,如:[2 3 4 5 6 7 8],前一個用除法,後一個用find函式)
clear
a=input('input some numbers:')
n=length(a);
j=0;k=0;
for i=1:n
if rem(a(i),2)==0
j=j+1;
b(j)=a(i);
else
k=k+1;
c(k)=a(i);
end
end
a
b,j
c,k
----------------------
a=input('input some numbers:')
b=a(find(rem(a,2)==0))
j=length(b)
c=a(find(rem(a,2)~=0))
k=length(c)
-------------
2、計算s=e-(1/1+1/1!+1/2!+...+1/N!)使得s<10^(-6),求最小的N
m檔案程式碼
clear
clc
s=exp(1);
i=0;
while(1)
s=s-1.0/factorial(i);
if(s<1e-6)
break;
end
i=i+1;
end
i
結果為9
注:階乘除了可以用factorial(i),還可以用prod(1:i),prod是連乘函式
3、 試計算以下迴圈語句將進行多少步操作
(1) for i= —32768:32767
(2) for j= 32768:32767
(3) for k=2:4:3
(4) for m=ones(5,5)
m檔案程式碼
count=0;
for i= -32768:32767
count=count+1;
end
count
count=0;
for j= 32768:32767
count=count+1;
end
count
count=0;
for k=2:4:3
count=count+1;
end
count
count=0;
for m=ones(5,5)
count=count+1;
end
count
結果為65536、0、1、5
4、 觀察以下迴圈語句,試計算每個迴圈次數和迴圈結束之後ires或x的值
(1) ires=1;
while mod(ires,10)~=0
ires=ires+1;
end
(2) ires=2;
while ires<=200
ires=ires^2;
end
(3) ires=2;
while ires>200
ires=ires^2;
end
(4)x = 500;
while x > 0
if isprime(x)
break;
end
x = x -1;
end
m檔案程式碼ires=1;
while mod(ires,10)~=0
ires=ires+1;
end
ires
ires=2;
while ires<=200
ires=ires^2;
end
ires
ires=2;
while ires>200
ires=ires^2;
end
ires
x = 500;
while x > 0
if isprime(x)
break;
end
x = x -1;
end
x
結果為:10、256、2、449
注:isprime(x)為求素數函式,如果是素數返回1,否則返回0
ISPRIME True for prime numbers.
ISPRIME(X) is 1 for the elements of X that are prime, 0 otherwise.
5、分別用if和switch多分支語句計算稅款,使用者輸入貨價,輸出相應的稅款:
貨價<2000,免稅;
貨價在2000到5000之間,超過2000部分抽稅2%;
5000以上,除2%以外,5000以上抽稅5%,加收手續費60元。
if語句
m檔案程式碼
clear
clc
price=input('請輸入價格:');
taxes=0;
fee=0;
if price<2000
taxes=0;
elseif price<5000
taxes=(price-2000)*0.02;
else
taxes=(5000-2000)*0.02+(price-5000)*0.05;
fee=60;
end
taxes
fee
switch語句
m檔案程式碼
clear
clc
price=input('請輸入價格:');
taxes=0;
fee=0;
switch floor(price/1000)
case {0,1}
taxes=0;
case {2,3,4}
taxes=(price-2000)*0.02;
otherwise
taxes=(5000-2000)*0.02+(price-5000)*0.05;
fee=60;
end
taxes
fee
6、分別用if和while做,m=1+2+2^2+...+2^n,直到1000為止,求最大的N
只用if的話,用遞迴可以實現
儲存下面兩個m檔案
sum2n.m
%matlab遞迴計算1+2+2^2+...+2^n
function num=sum2n(n)
if n==0
num=1;
else
num=2^n+sum2n(n-1);
end
sum2nbigm.m
%判斷1+2+2^2+...+2^n是否大於m,引數為m,n的初值(n的初值建議取0)
%對於本題呼叫方法為sum2nbigm(1000,0)
function num=sum2nbigm(m,n)
if sum2n(n)>m
num=n;
else
num=sum2nbigm(m,n+1);
end
然後呼叫sum2nbigm(1000,0),結果為9
while迴圈方法
m檔案程式碼
clear
clc
m=0;
i=0;
while m<1000
m=m+2^i;
i=i+1;
end
n=i-1;
n
7、‘The quick brown fox jumps over the lazy dog’,26個字母至少出現過一次,統計每個字母出現的次數。
逐個遍歷即可
方法一:sum函式遍歷
m檔案程式碼
%利用sum函式遍歷
clear
clc
str='The quick brown fox jumps over the lazy dog';
str=lower(str); %將字串中的大寫轉換為小寫
for i=1:26
x(i)=sum(str==char('a'-1+i));
end
x
方法二:逐個遍歷累加
m檔案程式碼
%逐個遍歷累加
clear
clc
str='The quick brown fox jumps over the lazy dog';
str=lower(str);
z=zeros(1,26);
for i=1:length(str)
if(str(i)<='z'&&str(i)>='a')
z(str(i)-'a'+1)=z(str(i)-'a'+1)+1;
end
end
z
8、輸入一個字元,如果是大寫字母,輸出小寫;如果是小寫字母,輸出大寫;其他字元,原樣輸出。
m檔案
clear
clc
n=input('請輸入一個字元','s');
n=n(1);%即使輸入多個字元也只取第一個
if(n>='a'&&n<='z')
n=char(n-32);
elseif(n>='A'&&n<='Z')
n=char(n+32);
else
n=n;
end
n
9、利用rand函式編制一個新的函式rand10,該函式能夠產生在[-10,10]之內的隨機數。
rand10.m
function num=rand10()
num=rand()*20-10;
end
10、對上題的函式加以修改,使得產生的隨機數在[low,high]之間,其中low和high為使用者輸入引數。
randLowToHigh.m
%呼叫示例:randLowToHigh(-50,100)
function num=randLowToHigh(low,high)
num=rand()*(high-low)+low;
end
相關文章
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-WHILE迴圈SQLWhile
- Java基礎 迴圈語句 for while do.....while語句JavaWhile
- c語言中,while(1)語句使用break語句跳出迴圈C語言While
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-基本迴圈(EXIT語句)SQL
- TypeScript 迴圈語句TypeScript
- JavaScript for 迴圈語句JavaScript
- MySQL迴圈語句MySql
- Oracle迴圈語句Oracle
- 加更—迴圈語句的練習題
- Python基礎-While迴圈語句PythonWhile
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- 【js迴圈語句】for與while的區別JSWhile
- Object-C,迴圈語句for,while,do-whileObjectWhile
- python04: while迴圈語句 break continue for in 迴圈PythonWhile
- JavaScript跳出for迴圈語句JavaScript
- java 迴圈語句(轉)Java
- Shell指令碼應用 – for、while迴圈語句指令碼While
- Go_ if else語句 ,,迴圈,,switch,,陣列Go陣列
- Python的迴圈語句Python
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-下限和上限SQL
- Python-條件語句和迴圈語句Python
- Python趣味入門5:迴圈語句whilePythonWhile
- 流程控制、 迴圈語句
- swift控制流——迴圈語句Swift
- 6、迴圈結構語句
- linux 迴圈控制語句Linux
- PL/SQL迴圈控制語句SQL
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- Python學習筆記(三)——條件語句、迴圈語句Python筆記
- Python 迴圈語句的使用Python
- Java 可以採用什麼語句跳出迴圈語句Java
- C語言goto語句以及用goto語句構成迴圈C語言Go
- Java學習中迴圈語句的學習Java
- Java語言程式設計—迴圈語句Java程式設計
- [譯] part 9: golang 迴圈語句Golang
- 【Python基礎】for迴圈語句Python