qq_54487514 2021-11-21 19:29 采纳率: 100%
浏览 95
已结题

matlab 函数文件编程求解 求问题

编程实现矩形、三角形、圆形的面积计算。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.”,然后程序返回。
!

img

  • 写回答

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
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月21日

悬赏问题

  • ¥15 ubuntu20.04怎么安装yolov5(已经安装anaconda)
  • ¥100 基于delphi10.2几个功能的程序demo
  • ¥15 TinyMCE如何去掉自动弹出的“链接…”工具?
  • ¥15 微信支付转账凭证,如何解决
  • ¥15 在win10下使用指纹登录时,界面上的文字最后一个字产生换行现象
  • ¥20 使用AT89C51微控制器和MAX7219驱动器来实现0到99秒的秒表计数,有开始和暂停以及复位功能,下面有仿真图,请根据仿真图来设计c语言程序
  • ¥15 51单片机 双路ad同步采样
  • ¥15 使用xdocreport 生成word
  • ¥15 请教怎么用MATLAB求坐标
  • ¥15 gradle整合es,在创建索引时报错