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.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

展开阅读全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php静态数组变量初始化,为什么数组初始化时,赋值不能是常量?

刚刚发现的一个很奇怪的现象下面这个数组我设置为类的属性&#xff0c;其中SYSTEM_LIB为我定义的常量final class Application { public static $_libarray( route > SYSTEM_LIB./lib_route.php, mysql > SYSTEM_LIB./lib_mysql.php, );}但最终运行时报错为Parse error: …

php比例算法,图片比例转换算法

项目要求将图片上传的任意图片按固定比例进行转换&#xff0c;没办法自己就写了一个&#xff0c;代码如下&#xff1a;public function cropImage($imagePath, $savePath, $scale){$imgHandler $this->model(Picture_Model_Image);$imgHandler->setSrcImg($imagePath);$…

oracle安装过程掉电,Oracle数据库掉电后ORA-01172磁盘坏块解决方法

由于服务器突然掉电&#xff0c;重启机器后发现数据库无法启动。数据库版本 Oracle10201&#xff0c;OS REDHAT 5.4数据库无归档&#xff0c;无备份 [oraclehuna由于服务器突然掉电&#xff0c;重启机器后发现数据库无法启动。数据库版本 Oracle10201&#xff0c;&#xff0c;O…

php sqlite id自增,Android sqlite设置主键自增长的方法教程

今天在APP中增加一个添加项目的功能&#xff0c;项目的主键为整数&#xff0c;要让它自增长。既然要自增长&#xff0c;那么在代码里面就不用给id字段赋值。但是调试的时候发现不行&#xff0c;提示主键重复&#xff0c;观察了输出&#xff0c;不赋值的话&#xff0c;id默认为0…

oracle flashback 深入研究,oracle 之flashback 深入研究。

oracle 之flashback 深入研究。今天是2013-08-24&#xff0c;开始进行oracle flashback 内部原理研究&#xff0c;记录一下笔记。SQL> startupORACLE instance started.Total System Global Area 405020672 bytesFixed Size 2213816 bytesVariable Size …

linux删除了mount目录,Linux记录-分区(df/fdisk/mount/umount/fuser)

1.查看磁盘挂载(df -TH)2.卸载umount /dev/vdb13.查杀用户进程(fuser -m -v -i -k /dev/vdb1)4.再次卸载umount /dev/vdb1&#xff0c;并查看挂载信息df -TH5.删除分区(fdisk /dev/vdb m d 1 d w)6.查看分区(fdisk -l&#xff0c;没有Start-End磁盘分区表示可用)7.添加分区(fdi…

linux中pak命令,如何在Linux系统中安装Flatpak

选择你的Linux发行版快速安装Flatpak及使用Flatpak。支持Ubuntu、Fedora、Red Hat Enterprise Linux、Deepin、Endless OS、Linux Mint、openSUSE、Arch、Debian、CentOS、Gentoo、Solus、Alpine、Mageia、Pop!_OS、elementary OS、Raspbian。以下为你逐一介绍如何在这些Linux版…

linux服务器组件有哪些,推荐几个linux服务器面板

天兴工作室自zblog从asp换到了php就一直在玩php的程序&#xff0c;php的程序肯定是搭配linux系统更方便一些。现在的云服务器也都不贵几百块钱一年&#xff0c;就算是个人也玩得起。当然linux服务器和windows服务器的用法完全是两样&#xff1a;windows系统就跟本地电脑一样操作…

ubuntu 改linux密码忘了怎么办,Ubuntu 14.04忘记root密码的解决方法

电脑20多天没用&#xff0c;忘记Ubuntu 14.04 root密码了&#xff0c;下面是在网上找到的一个解决办法&#xff0c;其它的和这个也大概相同。因为其中有些缺漏&#xff0c;没能给我解决问题。通过分析最终问题还是解决了&#xff0c;现解决方案的关键点记录一下。希望能方便到其…

drcom linux怎么运行,Drcom_linux

64位ubuntu设置32位环境sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0//目前自己用到sudo apt-get install libsm6:i386sudo apt-get install libxi6:i386sudo apt-get install libxrender1:i386sudo apt-get install libxrandr2:i386sudo apt-get install libxcur…

linux设置历史命令保留数目限制,linux下修改history命令保存条数

在linux系统下、history命令会保存多少条命令呢&#xff1f;曾在一本书上说&#xff0c;如果注销系统&#xff0c;那么会将所有的历史命令都定入到~/.bash_history,但只保留1000条命令(这个是由默认的shell变量所设置了的)但是为什么我们执行history命令后会出现大于1000条的历…

虚拟机linux如何扩大内存吗,如何扩大Vmware虚拟机中Ubuntu系统磁盘空间的方法

在虚拟机里安装系统&#xff0c;有时即会遇到初始分配的磁盘空间不够用的情况。如果是windows系统&#xff0c;则直接在虚拟机选项里扩容即可&#xff0c;但linux系统则没有这么简单。下面是整理的vmware下ubuntu系统磁盘扩容的方法与步骤&#xff0c;仅供参考。提示&#xff1…

linux lvm lv扩充--虚拟机,虚拟机新增磁盘后lvm下的lv扩容

系统环境&#xff1a;CentOS 6.5_X64一、识别新增磁盘&#xff1a;ls /sys/class/fc_host (会看到host1,host2...hostN,对每个host进行如下操作)echo "- - -" > /sys/class/scsi_host/host1/scan (中间是有空格的)!!echo "- - -" > /sys/class/scsi_…

linux7yum安装mysql,CentOS7 使用yum安装mysql

1、安装libaio&#xff0c;yum install libaio2、卸载mariadbyum remove mariadb-libs-5.5.41-2.el7_0.x86_643、下载mysql yumrepositorywget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm4、添加Mysql yumrepository到系统列表的中&#xff0c;执行…

linux读整个文件内容,Linux查看整个文件

Linux查看整个文件使用cat命令显示文本文件的内容使用cat命令可以显示文本文件的内容。cat后面可以不加任何选项&#xff0c;直接跟文件名功能说明&#xff1a;查看某个文件的内容###cat命令语法cat [参数] [文件]选项与参数&#xff1a;-A&#xff1a;显示所有的内容&#xff…

linux终端怎么设置monaco,Monaco Editor 使用指南

为什么要写这篇文章&#xff1f;最近开发了一个简单的在线代码编辑器&#xff0c;基于 Monaco Editor 实现&#xff0c;没有了解过 Monaco 的人可能不知道&#xff0c;我们常用的 VS Code 也是基于它实现的~回到正题&#xff0c;Monaco Editor 有一份完整的官方文档&#xff0c…

linux c实现线程超时退出,c – 如何在另一个线程的超时内唤醒select()

根据“男人选择”信息&#xff1a;"On success, select() and pselect() return the number of file descrip‐tors contained in the three returned descriptor sets which may be zeroif the timeout expires before anything interesting happens. On error,-1 is ret…

linux中var的作用,linux中var是什么意思

在搭建Kubernetes集群过程中&#xff0c;安装了kube-dns插件后&#xff0c;运行一个ubuntu容器&#xff0c;发现容器内无法解析集群外域名&#xff0c;一开始可以解析集群内域名&#xff0c;一段时间后也无法解析集群内域名。$ nslookup kubernetes.default Server: 10.99.0.2 …

linux redis 主从配置,redis集群(主从配置)

redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操 作&#xff0c;而且这些操作都是…

telnet入侵linux,教你入侵RedHatLinux

此文的目的不在于教人入侵&#xff0c;而是为了提高自身的技术和加强网络管理员的安全防范意识。仅此而已!粗心大意的网络管理员应该明白&#xff1a;由于你们一个小小的操作失误可能会导致整个网络全面沦陷!本文主要是围绕LPD:网络打印服务的攻击而进行的。首先确定目标&#…