实验2 M文件和流程控制语句[参考答案]

合集下载

实验三_M_文件及_MATLAB_程序设计与调试

实验三_M_文件及_MATLAB_程序设计与调试

实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。

二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。

(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。

有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。

MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。

(2)函数文件——它的第一行必须是函数定义行。

M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。

但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。

例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

matlab编程2

matlab编程2
18
第二节 程序控制结构
选择结构
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句. Matlab 用于实现选择结构的语句有 if -end语句 和 switch-end 语句
19
第二节 程序控制结构
if -end条件语句
单分支结构
if 条件表达式 语句组 end
双分支结构
If 条件表达式

input应用时,注意:
输入字符串时必须带单引号 单引号的输出:两个连续的单引号 若输入的是数、数学表达式,则in不能出现
11
第二节 程序控制结构
disp
数据的输出:disp
disp(X)
输出变量 X 的值,X 可以是数值矩阵或字符串
一次只能输出一个变量

>> A='Hello, Tom!'; >> disp(A) >> B=[1 2 3; 4 5 6; 7 8 9]; >> disp(B)
x=input(‘输入初值x=’);
n=input(‘输入迭代次数=’);
y(1)=x ; for k=1:n x=1/(x+1); y(k)=x;
function y=dd2(x,n) y(1)=x ; for k=1:n x=1/(x+1); y(k)=x; end
end
y
解:程序如下: function y=f(x)

语句组2
……
K=值m? 否 语句组n

语句组m
switch-end语句的 下一句
第二节 程序控制结构
switch-end 语句
关于 switch-end 语句的几点注解:

MA AB实验报告

MA AB实验报告

MATLAB实验报告姓名:专业:学号:实验一MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。

2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2MATLAB算术运算符表3MATLAB关系运算符表4MATLAB逻辑运算符表5MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8标准数组生成函数表9数组操作函数三、实验内容1、学习安装MATLAB软件。

2、学习使用help命令,例如在命令窗口输入helpeye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)3、学习使用clc、clear,观察commandwindow、commandhistory和workspace等窗口的变化结果。

4、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。

注意:每一次M-file的修改后,都要存盘。

四、实验结果练习A:(1)helprand,然后随机生成一个2×6的数组,观察commandwindow、commandhistory和workspace等窗口的变化结果。

EDA实验--流程控制语句

EDA实验--流程控制语句

实验二流程控制语句(if-else)验证试验一、实验目的:熟悉Quartus软件的基本操作,掌握用Quartus软件验证VHDL语言。

二、实验内容:给出的参考代码不是完整代码,根据实际情况补充完整代码,综合代码,自己设计仿真文件,来验证参考代码最后一个else的含义。

三、实验原理:If-else可以允许在一个语句中出现多重条件,每一个“if”语句都必须有一个对应的“end if”语句。

“if”语句可嵌套使用,即在一个if语句中可再调用另一个“if”语句。

四、实验步骤:1、在Quartus中输入如下程序:library ieee;use ieee.std_logic_1164.all;entity lbz2 isport(n : in std_logic;m : in std_logic_vector(7 downto 0);a : out std_logic_vector(2 downto 0);d : out std_logic);end;architecture behavior of lbz2 isbeginprocess(n,m)beginif n='1' thenif (m(7)='1') thena<="111";d<='0';elsif (m(6)='1') thena<="110";d<='0';elsif (m(5)='1') then a<="101";d<='0';elsif (m(4)='1') then a<="100";d<='0';elsif (m(3)='1') then a<="011";d<='0';elsif (m(2)='1') then a<="010";d<='0';elsif (m(1)='1')then a<="001";d<='0';elsif (m(0)='1') then a<="000";d<='0';elsea<="000";d<='1';end if;end if;end process;end;调试程序如下图所示:如图可以得出程序调试过程中午错误,所以根据调试程序生成如下综合电路图:。

流程控制语句实验方案

流程控制语句实验方案

流程控制语句实验方案下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!一、实验目的。

通过实验,深入理解和掌握流程控制语句的使用方法,包括条件语句(if-else、switch)、循环语句(for、while、do-while)等,提高编程能力和逻辑思维能力。

流程控制_参考答案

流程控制_参考答案

一、【必做题】1.输入一个数字,判断是一个奇数还是偶数if(i!=0){System.out.println("0");}else if(i%2==1){System.out.println("奇数");}else if(i%2==0){System.out.println("偶数");}2.编写程序,判断一个变量x的值,如果是1,输出x=1,如果是5,输出x=5,如果是10,输出x=10,除了以上几个值,都输出x=none。

(答案SwitchDemo.java)int x=1;switch(x){case 1:{System.out.println("x=1");break;}case 5:{System.out.println("x=5");break;}case 10:{System.out.println("x=10");break;}default:{System.out.println("none");break;}}•Switch说明✓表达式的值只可以接受int、byte、char、short 型,不接受其他类型的值✓不允许有重复的case取值✓ switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止3.判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)System.out.println("***********请输入一个整数*********");Scanner scanner = new Scanner(System.in);int value = scanner.nextInt();if (value % 5 == 0 && value % 6 == 0) {System.out.println("输入的数字" + value + "能被5和6整除");} else if (value % 5 == 0) {System.out.println("输入的数字" + value + "能被5整除");} else if (value % 6 == 0) {System.out.println("输入的数字" + value + "能被6整除");} else {System.out.println("输入的数字不能被5或者6整除");}4.输入一个年份,判断这个年份是否是闰年int year=2012;if(year%4==0&&year%100!=0||year%400==0){System.out.println("闰年");}else{System.out.println("不是闰年");}5.输入一个0~100的分数,如果不是0~100之间,打印分数无效,根据分数等级打印A,B,C,D,Eint score = 999;if(score<=100&&score>=90)System.out.println("A");else if(score<90&&score>=80)System.out.println("B");else if(score<80&&score>=70)System.out.println("C");else if(score<70&&score>=60)System.out.println("D");else if(score<=70&&score>60)System.out.println("E");elseSystem.out.println("分数无效");6.从命令行传入3个整数,求3个整数的和、积、最大值、最小值、平均值int[] a = new int[3];int max,min,add,pro,avr;for(int i=0;i<3;i++) {a[i] = Integer.valueOf(args[i]);}max = a[0];min = a[0];add = a[0];pro = a[0];for(int i=1;i<3;i++) {if(max<a[i]){max = a[i];}if(min>a[i]){min = a[i];}add = add+a[i];pro = pro*a[i];}avr = add/3;System.out.println("最大值 = "+max);System.out.println("最小值 = "+min);System.out.println("和 = "+add);System.out.println("积 = "+pro);System.out.println("平均值 = "+avr);7.试写一个三位数,从小到大排列,然后再从大到小排列。

实验1 Matlab基本操作、M文件和流程控制语句

实验1 Matlab基本操作、M文件和流程控制语句

实验1 Matlab 基本操作、M 文件和流程控制语句一、实验目的1、熟悉Matlab 的开发环境、熟悉Matlab 中的运算符。

2、掌握建立矩阵的方法,掌握相关命令操作。

3、理解命令M 文件和函数M 文件的区别。

掌握M 文件的创建和运行。

4、掌握流程控制语句的使用,掌握程序调试的基本方法。

二、实验内容1、计算以下表达式的值,将结果按不同格式输出。

掌握format 命令的使用方法。

(1)26)3sin(3.13π=y (2))1ln(212x x y ++=,其中⎥⎦⎤⎢⎣⎡-+=545.0212i x (3)23.0ln )3.0sin(23.03.0x x e e y x x +++-=-,其中0.3,9.2,8.2,,8.2,9.2,0.3 ---=x 2、已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=72330213176538773443412B A , 求下列表达式的值:(1) A+6*B 和A-B+I(2) A*B 和A.*B(3) A^3和A.^3(4) A/B 和B\A(5) [A,B]和[A([1,3],:);B^2]3、已知)20()30()40(f f f y +=, (1)当)5ln(10)(2++=n n n f 时,求y 的值。

(2)当)1(*4*33*22*1)(+++++=n n n f 时,求y 的值。

4、请分别用if 和switch 语句实现。

输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。

其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

5、已知⎪⎪⎩⎪⎪⎨⎧>+-=======---3,23,12,01,1321321n f f f f n f n f n f n n n n 求1001~f f 中:(1) 这100个数中的最大值,最小值,这100个数的总和。

MATLAB实验报告

MATLAB实验报告

实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。

了解字符串的操作。

二、实验内容1.向量的生成与运算;2.矩阵的创建、引用和运算;3.多维数组的创建及运算;4.字符串的操作。

三、实验步骤1.向量的生成与运算①向量的生成向量的生成有三种方法:直接输入法:生成行向量、列向量;冒号表达式法:变量=初值:间隔(可正可负):终值函数法:使用linspace线性等分函数,logspace对数等分函数。

格式为:linspace(初值,终值,个数)Logspace(初值,终值,个数), 初值及终值均为10的次幂。

②向量的运算A=[1 2 3 4 5],b=3:7,计算两行向量的转置,两行向量人加、减,两列向量的加、减;向量的点积与叉积。

a=[1 2 3 4 5];b=3:7;a =1 2 3 4 5b =3 4 5 6 7at=a',bt=b'at =12345bt =34567e1=a+b,e2=a-be1 =4 6 8 10 12 e2 =-2 -2 -2 -2 -2 f1=at+bt,f2=at-btf1 =4561012f2 =-2-2-2-2-2g1=dot(a,b),g2=a*bt>> g1=dot(a,b),g2=a*btg1 =85g2 =85g4=a.*b>> g4=a.*bg4 =3 8 15 24 35A=1:3;B=4:6;g3=cross(A,B)>> g3=cross(a,b)g3 =-3 6 -3注意:g1和g2的结果是否相同,为什么?g4的结果与g1和g2结果是否一样,为什么?g1和g2的结果相同,因为两者是同一种运算;g4与g1和g2不相同,因为两者一个是点乘一个是叉乘,运算不一样。

2.矩阵的创建、引用和运算矩阵是由n×m元素构成的矩阵结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 M 文件和流程控制语句
参考答案
1、 编写一个函数文件fun.m ,用于求
∑==10
1n n n a ,然后在命令文件中给定a 的值,调用函数fun 。

建立函数M 文件fun.m
function s=fun(a)
s=0; for i=1:10
s=s+a^n;
end
MATLAB 命令:
>> a=3;
>> s=fun(a)
2、 编写一个函数文件,求小于任意自然数n 的斐波那契数列各项。

Fibnacci 数列定义如下:
⎪⎩⎪⎨⎧>+===--2,1
12121n f f f f f n n n
建立函数M 文件fib.m
function f=fib(n)
if n==1
f=1;
end
if n==2
f(1)=1;
f(2)=2;
end
if(n>2)
f(1)=1;
f(2)=2;
for i=3:n
f(i)=f(i-1)+f(i-2);
end
end
3、 编制一个解数论问题的函数文件:取任意整数,若是偶数,则除以2,否则乘3加1,
重复此过程,直到整数变为1。

建立函数M文件collatz.m
function c=collatz(n)
% collatz
% Classic “3n+1” Ploblem from number theory
c=n;
while n>1
if rem(n,2)==0 %返回n/2的余数
n=n/2;
else
n=3*n+1;
end
c=[c n];
end
4、编写一个函数M文件([y1,y2]=fun(x1,x2)),使之可以处理1个或两个输入参数,一个
或两个输出参数,满足如下条件:
当只有一个输入参数x1时:如果只有一个输出参数y1,则y1=x1;
如果有两个输出参数y1,y2,则y1=y2=x1/2;
当有两个输入参数x1,x2时:如果只有一个输出参数y1,则y1=x1+x2;
如果有两个输出参数y1,y2,则y1=y2=(x1+x2)/2; 建立函数M文件fun.m
function [y1,y2]=fun(x1,x2)
if nargin=1&nargout=1
y1=x1;
elseif nargin=1&nargout=2
y1=x1/2;
y2=y1;
elseif nargin=2&nargout=1
y1=x1+x2;
elseif nargin=2&nargout=2
y1=(x1+x2)/2;
y2=y1;
end
5、A=rand(3,4)<0.7, 编程实现查找矩阵A的每行中第一个0元素所在的列。

将结果存放着
一个列向量中。

建立脚本M文件
A=rand(3,4)<0.7
result=zeros(3,1)
for i=1:3
for j=1:4
if A(i,j)==0
result(i)=j
break;
end
end
end
result
6、(个人所得税纳税问题)根据中华人民共和国个人所得税法规定,公民的工资、薪金所
得应该依法缴纳个人所得税。

个人所得税计算公式为:在每个人的月收入中超过1600元以上的部分应该纳税,这部分收入称为应纳税所得额。

应纳税所得额实行分段累积税率,按如下税率表计算
1) y 和x 的函数关系,并编写函数M 文件实现此函数。

2) 调用函数,求月收入为6850和12300的应纳税额。

分析:当1600≤x 时不用缴税,y=0
当21001600≤<x 时,纳税部分是x-1600,税率是5%,所以%5)1600
(⨯-=x y 当36002100≤<x 时,500元按5%纳税,应缴纳25元,再多的部分,即x-2100,税
率是
建立函数M文件tax.m
function y=tax(x)
%points 收入分段点,t收入分段点应缴纳的税额rates收入段税率points=[0,1600,2100,3600,6600,21600,41600,61600,81600,101600,inf]; t=[0,0,25,175,625,3625,8625,14625,21625,29625];
rates=[0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45];
n=length(points);
p=1; %收入x在points中的位置
for i=1:n-1
if x>points(i)&x<=points(i+1)
p=i;
break;
end
end
y=t(p)+(x-points(p))*rates(p);
y=tax(6850)。

相关文档
最新文档