MATLAB課堂作業: 作業3.3
五月份的台北天氣已經開始轉熱,其整月的日平均溫度如下:
T=[25 26 24 23, 18 17 20 30 29, 25 19 19 21 20, 23 24 23 25 23,…
27 28 24 26 27, 23 25 24 21 19, 20]C
1. 試撰寫一程式,以上述之溫度資料為輸入值,求其月平均、最高及最低溫度。
2. 試撰寫另一程式,以交談式輸入之方式,按月份輸入每日之溫度,(必須分清楚每月應有之輸入日數)然後呼叫第一項之程式進行分析。
ANS:
1.
程式指令
function [Mean Max Min]=temp(T)
% 計算月平均、最高及最低溫度
Mean=mean(T); % 平均溫度
Max=max(T); % 最高溫度
Min=min(T); % 最低溫度
執行結果
>> T=[25 26 24 23 18 17 20 30 29 25 19 19 21 20 23 24 23 25 23 27 28 24 26 27 23 25 24 21 19 20];
>> [Mean Max Min]=temp(T)
Mean =
23.2667
Max =
30
Min =
17
2.
程式指令
% month_temp.m
% 以交談方式,按月份輸入每日之溫度,呼叫另一程式進行溫度分析
month=input('請輸入月份 (1-12):');
T=input('請輸入每日溫度 ex.[24 28 30]:');
switch month
case {1,3,5,7,8,10,12}
if numel(T)==31
[Mean Max Min]=temp(T)
else
input('輸入溫度之日數不符,此月份應輸入31天之溫度!\n')
end
case 2
if numel(T)==28
[Mean Max Min]=temp(T)
else
input('輸入溫度之日數不符,此月份應輸入28天之溫度!\n')
end
case {4,6,9,11}
if numel(T)==30
[Mean Max Min]=temp(T)
else
input('輸入溫度之日數不符,此月份應輸入30天之溫度!\n')
end
end
執行結果
& 情境一 (當輸入溫度之日數與當月天數相符時,則可算出當月平均、最高及最低溫度):
>> month_temp
請輸入月份 (1-12):4
請輸入每日溫度 ex.[24 28 30]:[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]
Mean =
15.5000
Max =
30
Min =
1
& 情境二 (當輸入溫度之日數與當月天數不符時,則會顯示警示):
>> month_temp
請輸入月份 (1-12):12
請輸入每日溫度 ex.[24 28 30]:[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]
輸入溫度之日數不符,此月份應輸入31天之溫度!
1 則留言:
用剛學到的menu指令將原本的程式做了一點修正
視窗中列出可供選擇的月份,可避免使用者輸入非1~12月的數字
程式指令
% month_temp2.m
% 以交談方式,按月份輸入每日之溫度,呼叫另一程式進行溫度分析
month=menu('請輸入欲計算溫度之月份:','一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月')
T=input('請輸入每日溫度 ex.[24 28 30]:');
switch month
case {1,3,5,7,8,10,12}
if numel(T)==31
[Mean Max Min]=temp(T)
else
input('輸入溫度之日數不符,此月份應輸入31天之溫度!\n')
end
case 2
if numel(T)==28
[Mean Max Min]=temp(T)
else
input('輸入溫度之日數不符,此月份應輸入28天之溫度!\n')
end
case {4,6,9,11}
if numel(T)==30
[Mean Max Min]=temp(T)
else
input('輸入溫度之日數不符,此月份應輸入30天之溫度!\n')
end
end
執行結果
在指令窗中輸入敘述檔檔名month_temp2後會出現 選擇視窗
當輸入溫度之天數與該月份相符時,會出現以下之結果
天數相符
當輸入溫度之天數與該月份不符時,會出現以下之結果
天數不符
雖然指令只有小小的不一樣,但是也會提供不大一樣的功能性 :p
張貼留言