實驗五、選擇與迴圈結構
一、 實驗目的:
1、 掌握建立和執行m檔案的方法。
2、 掌握利用if語句實現選擇結構的方法。
3、 掌握利用switch語句實現多分支選擇結構的方法。
4、 掌握try語句的使用。
5、 掌握利用for語句實現迴圈結構的方法。
6、 掌握利用while語句實現迴圈結構的方法。
7、 熟悉利用向量運算來代替迴圈的操作方法。
二、 實驗內容:
1、 列分段函式的值。
要求:(1) 用if語句實現,分別輸出x=-0.5,-3.0,1.0,2.0,2.5,3.0,5.0時的y值。
提示:x的值從鍵盤輸入,可以是向量。
clear
x=input('請輸入x的值:x=');
if x<0&x~=-3
y=x^2+x-6;
elseif x>=0&x<10&x~=2&x~=3
y=x^2-5.*x+6;
else y=x^2-x-6;
enddisp(y)
(2) 用邏輯表示式實現上述函式。
2、 輸入乙個百分制成績,要求輸出成績的等級為a,b,c,d,e。其中90~100分為a,80~89分為b,70~79分為c,60~69分為d,60分以下為e。
要求:(1)分別用if語句和switch語句實現。
clear
x=input('請輸入你的成績x=');
if x<=100&x>90
disp('a');
elseif x>80&x<=89
disp('b');
elseif x>70&x<=79
disp('c');
elseif x>60&x<=69
disp('d');
else disp('e');
endclear;
x=input('請輸入你的成績x=');
switch fix(x)
case num2cell(90:100),
disp(char(65));
case num2cell(80:89),
disp(char(66));
case num2cell(70:79),
disp(char(67));
case num2cell(60:69),
disp(char(68));
case num2cell(0:59),
disp(char(69));
otherwise disp('你輸入的成績無效');
end(2)輸入百分制成績後要判定該成績的合理性,對不合理的成績要輸出出錯資訊。
3、 建立 5×6矩陣,要求輸出矩陣的第n行元素,當n值超過矩陣的行數時,自動轉為輸出矩陣最後一行元素、並給出出錯資訊。
clear
a=rands(5,6);
n=input('n:n=')
if n>0&&n<=5
y=a(n,:)
else y=a(5,:)
end4、 根據求的近似值。當n分別取100、1000、10000結果是多少?
要求:分別用迴圈結構和向量運算(使用sum函式)來實現。
clear
n=input('n=');
y=0;
for i=1:n;
y=y+1/i/i;
enddisp('piü:')
pi=sqrt(6*y)
clear
n=input('n=');
i=1:n;
f=1./i.^2;
y=sum(f)
disp('piü')
pi=sqrt(6*y)
5、 根據,求:
(1)的最大n值。
(2)與(1)的n對應的y。
clear
n=0;
y=0;
while(y<3)
n=n+1;
i=2*n-1;
y=y+1/i;
endy=y-1/i
n6、 乙個三位整數各位數字的立方和等於該數的本身則稱該數為水仙花數。試輸出全部水仙花數。
要求:(1)用迴圈結構實現。
(2)用向量運算來實現。
提示:全部三位整數組成向量m;分別求m各個元素的個位、十位、百位數字,組成向量m1、m2、m3;向量n=m1.*m1.
*m1+m2.*m2.*m2+m3.
*m3.*m3;向量k=m-n;顯然k中的零元素的序號即m中的水仙花的序號。
clear
disp('¨:')
for s=100:999
a=s/100;
b=(s-100*a)/10;
c=s-100*a-10*b;
if s==a^3+b^3+c^3
disp('i')
endendm=100:999;
m1=rem(m,10);
m2=rem((m-m1)/10,10);
m3=rem((m-m2*10-m1)/100,10);
n=m1.^3+m2.^3+m3.^3;
i=find(m==n);
disp('水仙花數為:');
m(i)
7、 已知
求中:(1)最大值、最小值、各數之和。
(2)正數、零、負數的個數。
clear
f1=1;f2=0;f3=1;ma=f1;mi=f2;s=f1+f2+f3;
for i=4:100;
f=f3-2*f2+f1;
f1=f2;
f2=f3;
f3=f;
if f>ma;
ma=f;
endif f mi=f;
ends=s+f;
end disp('×ó:')
madisp('×:')
midisp('÷:')#brbr##end#最大值:
ma =
4.3776e+011
最小值:
mi =
-8.9941e+011
各數之和:
s = -7.4275e+011
f1=1;
f2=0;
f3=1;
p=2;
q=1;
s=0;
n=input('請輸入大於三的整數:n=');
for i=4:n
f=f1-2*f2+f3;
f1=f2;
f2=f3;
f3=f;
if f>0
p=p+1;
elseif f==0
q=q+1;
else
s=s+1;
endsu=su+f;
end disp('正數的個數:');
p disp(' 0的個數:');
q disp('負數的個數:');
s 結果:
請輸入大於三的整數:n=100
正數的個數:
p = 49
0的個數:
q = 2
負數的個數:請輸入整數
陣列的元素為
隨機選出的m個元素為:
請輸入小於m的整數:m=
s = 49
提示:可以考慮使用matlab的有關函式實現。
8、 從陣列隨機選出m(m<=n))個不重複的元素.
n=input('請輸入整數:');
disp('陣列的元素為:');
for p=1:n
pendm=input('請輸入小於m的整數:m=');
disp('隨機選出的m個元素為:');
for i=unidrnd(n,1,m)-1
iend9、 假定某地區的**收費標準為:通話時間在3分鐘以下,收費為0.5元,3分鐘以上,則每超過1分鐘加收0.
15元;在7:00~22:00之間通話者,按上述收費標準全價收費,在其它時間通話者,按上述收費標準半價收費。
計算某人在t1時刻通話到t2時刻,應交多少**費。(選做,有挑戰性)
實驗六程式結構及游標
實驗六 pl sql程式結構及游標 一 實驗學時 2學時二 實驗型別 驗證性實驗。三 實驗目的和主要內容 掌握pl sql程式的各組成部分,掌握pl sql的控制結構。主要內容包括 1.在sql plus中定義pl sql塊處理。2.在pl sql執行塊中進行迴圈結構控制。了解游標的概念,掌握游標的...
函式與程式結構實驗實驗報告
c語言程式設計實驗報告 專業 電腦科學與技術班級 電腦科學與技術創新實驗班日期 2011 12 12成績 實驗組別第次實驗指導教師 學生姓名學號同組人姓名 實驗名稱 函式與程式結構實驗 1 實驗目的 1 熟悉和掌握函式的定義 宣告,函式的呼叫和引數傳遞方法,以及函式返回值型別的定義和返回值的使用。2...
09上機實驗五函式與程式結構
實驗目的 掌握函式宣告 定義和使用的方法 掌握函式遞迴呼叫的方法 掌握全域性變數 區域性變數 靜態變數的使用方法 掌握過載函式及預設函式引數的使用方法 實驗內容 1.分析程式執行結果 輸入下列程式,執行它,分析得到的結果。include int n 0 int func int x 10 void ...