matlab实验函数编写与程序设计,matlab实验四函数编写与程序设计.doc
實驗四:函數編寫與程序設計
一、實驗目的1 . 掌握M文件的創建。
2.掌握函數的編寫規則。
3.掌握函數的調用。
4 . 掌握基本的輸入輸出函數以及顯示函數的用法。
5.會用Matlab程序設計實現一些工程算法問題。
二、實驗內容
1 . 設計程序,完成兩位數的加、減、乘、除四則運算,即產生兩個兩位隨機整數,再輸入一個運算符號,做相應的運算,顯示相應的結果,并要求結果顯示類似于“a=x+y=34”。a=input(請輸入一個數:)
b=input(請輸入一個數:);
fuhao=input(請輸入一個運算符號(+-*/):,s);
switch fuhao
case {+}
he=a+b;
disp([和=,num2str(a),+,num2str(b),=,num2str(he)]);
case {-}
he=a-b;
disp([減=,num2str(a),-,num2str(b),=,num2str(he)])
case {*}
he=a*b;
disp([乘=,num2str(a),*,num2str(b),=,num2str(he)])
case {/}
he=a/b;
disp([除=,num2str(a),/,num2str(b),=,num2str(he)])
otherwise disp(請輸入正確的符號);
end
2 . 求下列分段函數的值
要求:用if語句實現,分別輸出x = -5.0,-3.0,1.0,2.0,2.5,3.0,5.0時的y值。其中x的值以向量的形式從鍵盤輸入。(length())
x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
y=x;
for k=1:length(x)
if (x(k)<0 & x(k)~=-3)
y(k)=x(k)*x(k)+x(k)-6;
elseif (0<=x(k) & x(k)<10 & x(k)~=2 & x(k)~=3)
y(k)=x(k)*x(k)-5*x(k)+6;
else
y(k)=x(k)*x(k)-x(k)-1;
end
end
for i=1:length(x)
disp([y(,num2str(i),),=,num2str(y(i))])
end
3 . 輸入一個百分制成績,要求輸出成績等級A、B、C、D、E。其中90分~100分為A,80分~89.5分為B,70分~79.5為C,60分~69.5分為D,60分以下為E。
要求:1)分別用if語句和switch語句實現
2)對不合理的成績應輸出出錯信息“輸入的成績不合理”(若成績出現小數,則只能是“.5”)
(rem函數 num2cell函數:將數值矩陣轉化為單位矩陣)
x=input(請輸入成績:);
f=x-fix(x);
if (f==0 | f==0.5)
if x>=0 & x<=100
y=fix(x/10);
switch y
case 10
disp(A)
case 9
disp(A)
case 8
disp(B)
case 7
disp(C)
case 6
disp(D)
otherwise
disp(E)
end
else
disp(輸入的成績不合理)
end
else
disp(輸入的成績不合理)
end
4 . Fibonacci數組的元素滿足Fibonacci規則:
a(k+2)=a(k)+a(k+1),(k=1,2,3,…);且a1= a2=1。
請設計一段程序,求出該數組中第一個大于10000的元素
要求顯示的結果為:
i=21
a(i)=10946
或者
a(21)=10946
程序如下:
a=[];
a(1)=1;
a(2)=1;
k=0;
while (a(k+2)<10000)
k=k+1;
a(k+2)=a(k)+a(k+1);
end
s=a(k+2)
k=k+2
5 . 單步執行該程序,記錄程序結果;試著分析try-catch語句的功能。
a =
8 1 6
3 5 7
4 9 2
a_end =
4 9 2
程序中有錯誤
錯誤是
ans =
Attempted to access a(4,:); index out of bounds because size(a)=[3,3].
6 . 編寫一個階乘函數jiecheng.m,利用該函數找出最小的n值,使得n!>10100,并求出n!。
function [i,s]=jiecheng(n)
s=1;
i=0;
while(s<100^n)
i=i+1;
s=s*i;
end
5.編寫一個函數,實現對一個向量求以及求平均值的功能。(要求實現函數中,輸入若不是一個向量,則報錯)(sum(),length())
7.程序設計:公元前五世紀我國古代數學家張丘建在《算經》一書中提出了“百雞問題”:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、母、雛各幾何?
for a=1:100
for b=1:100
for c=1:100
if((a+b+c)==100 & 100=5*a+3*b+c/3)
disp([num2str(a),,,num2str(b),,,num2str(c)]);
end
end
end
end
三、設計提示
1.函數名和函數文件名應相同;對調用參數的取值范圍要檢驗是否符合要求,如不符合要求,應給出出錯信息(用if和error或disp函數實現)。
2.程序設計——“百雞問題”答案不唯一。提示:設x:雞翁數,則x的范圍:0~19;y:雞母數,則y的范圍:0~33;z:雞雛數,則z的范圍:0~100。
四、實驗報告要求
1.編寫函數文件。
2.程序設計用M文件編寫,并記錄執行結果。“百雞問題”答案不唯一,要給出所有答案。
3.書寫實驗報告時要結構合理,層次分明,在分析描述的時候,需要注意語言的流暢。
展開閱讀全文
總結
以上是生活随笔為你收集整理的matlab实验函数编写与程序设计,matlab实验四函数编写与程序设计.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python和arduino串口通信_利
- 下一篇: matlab人脸追踪,求大神帮助我这个菜