编程实现矩形、三角形、圆形的面积计算。a)建立函数area=calculateArea(shape,params),保存为函数文件calculateArea.m。其中,shape可以为’rectangle’,‘square’,‘circle’,params为一个向量,存储计算面积所需的参数,比如矩形包括两个参数,则params是一个包含两个元素的数组。例:calculate(‘rectangle’,[3,4]);calculate(‘circle’,5);b)针对不同的形状编写面积计算的函。rectangleArea(params),square(params),circle(params),返回面积值。9の在calculateArea函数中调用步骤b的三个函数,实现三种形状的面积计算的功能。为了使程序更完善,添加代码检查针对每种形状参数矩阵的大小,若不对,则输出“Thenumber ofthe parameters is incorrect.”,然后程序返回。
!
![](https://profile-avatar.csdnimg.cn/cc7831923c7c49d3937de91a19b6dd91_qq_54487514.jpg!4)
matlab 函数文件编程求解 求问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 技术专家团-Joel 2021-11-21 19:46关注
你好,代码供参考,如有帮助,还请帮忙点个宝贵的采纳支持一下呢
函数:function area = calculateArea(shape, params) switch lower(shape) case 'rectangle' area = rectangleArea(params); case 'square' area = squareArea(params); case 'circle' area = circleArea(params); case 'triangle' area = triangleArea(params); end end % 计算长方形面积 function area = rectangleArea(params) if(length(params)==2) area = params(1)*params(2); else error('The number of the parameters is incorrect\n') end end % 计算方形面积 function area = squareArea(params) if(length(params)==1) area = params(1)^2; else error('The number of the parameters is incorrect\n') end end % 计算圆形面积 function area = circleArea(params) if(length(params)==1) area = pi*params(1)^2; else error('The number of the parameters is incorrect\n') end end % 计算三角形面积 function area = triangleArea(params) if(length(params)==3) params = sort(params); if(params(1)+params(2)>params(3)) p = sum(params)/2; area = sqrt(p*(p-params(1))*(p-params(2))*(p-params(3))); else error('three sides can not construct triangle') end else error('The number of the parameters is incorrect\n') end end
示例主程序
% 示例 area1 = calculateArea('rectangle', [3,4]) area2 = calculateArea('square', 5) area3 = calculateArea('circle', 5)
运行结果:
area1 = 12 area2 = 25 area3 = 78.539816339744831
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同