matlab程序if语句用法
MATLAB中我们常常用到条件判断语句结构,通过实例介绍这个结构的用法:1、if.....end结构,运行下面的句子,此条件语句是判断5是否大于3,如果大于3,就将1赋值给;2、if....else...end 结构,我们以如下内容进行判断:运行以上语句,结果如下a1=1,a2=1,判断a1是否大于a2,显然不大于,然后就执行else语句,给a赋值为2;3、if..elseif...else...end 结构我们以如下语句为例,进行此条件结构的示例运行以上语句,结果如下:a1=a2=1,判断a1>a2?不满足,执行elseif语句,a1<a2,不满足,执行else语句,a=3MATLAB IF 条件语句用法以及实例如下:1、if语句是一种选择判断语句,可以和for语句结合使用,也可以单独使用,这里创建了3个变量,作出了一个简单判断如果a小于b,b等于a,需要注意的是if语句后面要有end语句结束,如下图所示:2、运行脚本之后,在命令行窗口可以看到b已经等于a了,如下图所示:3、if嵌套语句,这里作出的判断是如果a小于b,b等于a,如果继续b还大于c,b等于c,如下图所示:4、运行脚本,在命令行窗口可以看到b等于a,这里是因为b变量只满足第一个条件,如下图所示:5、if语句中的else语句,else是否则的意思,这里作出的判断是如果a小于b,b等于a,如果满足a小于b条件下,b大于c,b就等于c,否则b=c-a,如下图所示:6、运行脚本,在命令行可以看出结果b=c-a,只满足第一个条件,第二个条件不满足进去else语句里面去了,如下图所示:
free Pascal 2.40 教程
第一节 Pascal 程序结构和基本语句
(1)程序首部
由保留字Program开头,后面跟一个程序名(如:Exl1);其格式为:
Program 程序名;
程序名由用户自己取,它的第一个字符必须是英文字母,其后的字符只能是字母或数字和下划线组成,程序名中不能出现运算符、标点符和空格。
(2)说明部分
程序中所用的常量、变量,或类型、及过程与自定义函数,需在使用之前预先说明,定义数据的属性(类型)。[例1.2] 程序中 Var S,R,C: Real; 是变量说明,此处说明S,R,C三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将与该变量同类型的数值赋给该变量。变量说明的格式为:
Var 变量表:类型;
(3)语句部分
指由保留字 Begin (开始)至 End. (结尾)之间的语句系列,是解决问题的具体处理步骤,也是程序的执行部分。
Pascal程序不管是哪部分,每句末尾都必须有分号(;),但允许最接近 End 的那个语句末尾的分号省略;程序结束的End末尾必须有圆点(. ),是整个程序的结束标志。
程序中花括号“{ }”之间的部分为注释部分。
Pascal程序结构可归纳用如下来表示:
Program 程序名; 程序首部
标号说明; (Label)
常量说明; (Const) 说明部分
类型说明; (Type)
变量说明; (Var)
过程或函数说明;
Begin 程序体 (主程序)
语句系列; 语句部分
End.
把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的基本特征。再来分析下面两道例题的Pascal程序结构和继续学习基本语句。
程序中Pi是Pascal提供的标准函数,它返回圆周率的近似值:3.1415926…。
(:=)是赋值符号,赋值语句的格式为:
变量:=表达式;
赋值语句的作用是将:=右边表达式的值记录到左边的变量中。
Writeln是输出语句,输出语句有三种格式:
① Write (输出项1,输出项2) ; {执行输出后光标不换行}
② Writeln (输出项1,输出项2) ; {执行输出后光标换到下一行}
③ Writeln {仅输出空白且光标换到下一行}
Writeln语句后面的圆括号以内部分均为输出项,可以是多项,各项间用逗号分隔; 对单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,则只输出表达式的值,而不是表达式本身。
执行本程序中第一个Write语句,输出其引号以内的一串提示信息,是给紧接着的输入语句提供明确的提示(要求),有“一目了然,人机对话”之效果。
Readln是一个特殊的输入语句,要求输入一个回车(换行)才能往下执行。
Readln是输入语句,它的一般格式为:
① Read (变量1,变量2);
② Readln (变量1,变量2);
③ Readln
前两种格式均要从键盘给变量输入数据,输入时,所键入的数据之间以空格为分隔,以回车为输入结束。若多输入了数据(即数据个数超过变量个数),Read语句读完数据之后,能让后续的读语句接着读取多下来的数据;而Readln 语句对本行多输入的数据不能让后续语句接着读取多下来的数据。为了防止多输入的数据影响下一个输入语句读取数据,建议尽量使用Readln语句输入数据。第三种格式不需输入数据,只需按入一个回车键。
细心观察,会发现本程序语句的顺序很关键。此例用反推顺序(逆序),按步骤正确推算出各变量的值。当然,有的问题可按正序步骤编程,这类程序都称为顺序程序。
本程序Writeln语句的输出项含有( ' ' : 4 ),这里的冒号用来指定该项显示所占宽度,此处是输出4个空格即(空格项占4格)。
:语句;
因此,上面程序中的情况常量表可以写成如下程序中表示形式:
Program Exam22_1;
Var x,p: integer;
tax: real;
Begin
Write('Number=') ; readln(x) ;
P:=trunc(x/1000) ;
if P>9 then P:=10;
Case P of
0 : tax:=0;
1..4 : tax:=x*0.2; { 从1至4作为同一情况处理 }
5..9 : tax:=x*0.3; { 从5至9作为同一情况处理 }
10 : tax:=x*0.5
end;
Writeln('tt=',tt:5:2) ;
Readln
End.
程序中的trunc(x)为取整函数,是Pascal的算术标准函数之一。Pascal常用的算术标准函数有19个:
(1) abs(x) 求x的绝对值(|x|);
(2) exp(x) 求ex的值; (e为无理数2.71828…)
(3) frac(x)求x的小数部分;
(4) int(x) 求x的整数部分(不舍入,函数值为实型);
(5) ln(x) 求以e为底的x的对数(log ex );
(6) odd(x) 判断x的奇偶数(当x为奇数时odd(x)值为true,否则为false);
(7) ord(x) 求x的序号,结果为整型(x为有序类型量);
(8) pi π值(3.1415926535897932…);
(9) pred (x) 求x(有序类型)的前趋值;
(10) succ(x) 求x(有序类型)的后继值;
(11) random 随机函数,产生0~1的随机值;
(12) random(n)产生0~n的随机数(n为word类型,先执行randomize, 才能得到随机整数);
(13) round(x) 求x的四舍五入整数;
(14) trunc(x) 求x的整数部分(截掉小数部分,结果为整型);
(15) sqr(x) 求x的平方值(x2 );
(16) sqrt(x) 求x的开平方根值( );
(17) sin(x) 求x的正弦函数(x为弧度);
(18) cox(x) 求x的余弦函数(x为弧度);
(19) arctan(x) 正切的反三角函数(x为数值);
习题2.2
1.运输公司计算运费时,距离(S)越长,每公里运费越低,标准如下:
如果S<250公里;运费为标准运价的100%
如果250公里<=S<500公里,运费为标准运价的98%;
如果500公里<=S<1000公里,运费为标准运价的95%;
如果1000公里<=S<2000公里,运费为标准运价的92%;
如果2000公里<=S<3000公里,运费为标准运价的90%;
如果S=>3000公里,运费为标准运价的85%;。请编计算运费的程序。
2. 输入考试成绩,如果获85分以上为 A等,获60分~84分为B等,60分以下为C等,编程输出考试等级。
3. 某车间按工人加工零件的数量发放奖金,奖金分为五个等级:每月加工零件数N 130者为80元。
请编程,由键盘输入加工零件数量,显示应发奖金数。
第三章 循环程序
在编程中经常遇到需要多次规律相同的重复处理,这就是循环问题。Turbo Pascal采用不同的循环方式来实现,常用的环循有三种: for、repeat、while.
第一节 for 循环
for循环是一种自动计数型循环。
程序中的变量yse为布尔(或逻辑)类型(Boolean)。布尔值只有两个:
True(真) False(假)
布尔值与条件判断结果为真(条件成立)或为假(条件不成立)的作用相同,常用于条件语句和循环语句中。
上面程序中用 if yes and (t mod 7=0) then writeln;实现每行打印七个素数换行,程序中布尔变量yes为真,在逻辑上表示是素数;关系式(t mod 7=0) 的值为真时,表示该行输出素数巳是7个;用and将这两个“条件”连起来是作一种布尔(逻辑)运算。
Pascal 共有四种逻辑运算符:
① and (与) 两条件都为True时,其结果值为True;否则为False;
② or (或) 两条件中只要有一个为True ;其结果值为True;否则为False;
③ xor (异或) 两条件的逻辑值不相同时,其结果值为True;否则为False;
④ not (非) 条件为True时,其结果值为False;否则为True;(取反)
第二节 repeat 循环
Repeat循环是直到型循环。
程序中的Repeat循环格式为:
repeat
循环体语句;
until 条件表达式; {直到条件为真}
Repeat循环首先执行由Repeat和Until括起来的循环体语句,然后检查Until后面的条件表达式:如果表达式结果为假,则继续执行循环体,接着继续检查Until后面的条件表达式,如此反复执行直到这个表达式结果为真时结束循环。Repeat循环体语句必须有能改变Until后面条件表达式值的语句,并最终使这个条件表达式的值为真,使循环自动结束。
程序中inc (a) 指令相当于a : =a+1,常用的同类指令格式如下:
(1) inc(x) 等同 x:=x+1;
(2) inc(x, n) 等同 x:=x+n;
(3) dec(x) 等同 x:=x—1;
(4) dec(x,n) 等同 x:=x—n;
第三节 While 循环
While循环是当型循环。
程序中采用While当型循环,While循环语句的格式为:
While 条件式 do 语句;
其中do后面的“语句”是被重复执行的,称为循环体;若循环体是多个语句, 必须用begin--end包起来成为复合语句。
While循环首先判断条件式,当条件式的值为真就执行do 后面的语句(循环体)。
While的循环体内也必须包含能改变控制变量取值语句, 影响条件式的值, 最终使条件式为false (假), 才能结束循环。
Pascal语言的三种基本循环方式, for循环对循环范围有明确规定, 且循环变量只能是递增加1或递减1自动计数控制; 而repeat--until循环和while--do循环比较灵活, 只要对条件表达式的值能控制满足一定要求就能组成循环, 但在循环体中必须有改变循环变量值的语句, 使条件判断(逻辑值)最终为True或flase, 让循环能够终止。
Pascal语言中的case语句怎么理解
我们知道可以用嵌套的if语句实现多分支的选择结构。但是如果分支越来越多时,用嵌套的if语句实现多分支就显得繁杂。当多分支选择的各个条件由同一个表达式的不同结果值决定时,可以用case语句实现。它的选择过程,很象一个多路开关,即由case语句的选择表达式的值,决定切换至哪一语句去工作。因此在分支结构程序设计中,它是一种强有力的手段。在实现多路径分支控制时,用case对某些问题的处理和设计,比用if语句写程序具有更简洁、清晰之感。
(一)、情况语句的一般形式:
case of
:语句1;
:语句2;
:
:语句n
end;
其中case、of、end是Pascal的保留字, 表达式的值必须是顺序类型,它可以是整型、布尔型及以后学习的字符型、枚举型和子界型。情况标号表是一串用逗号隔开的与表达式类型一致的常量序列。语句可以是任何语句,包括复合语句和空语句。
(二)、case语句的执行过程
先计算表达式(称为情况表达式)的值,如果它的值等于某一个常量(称为情况常量,也称情况标号),则执行该情况常量后面的语句,在执行完语
(三)、说明
①情况表达式必须是顺序类型的;
②情况常量是情况表达式可能具有的值,因而应与情况表达式具有相同的类型;
③情况常量出现的次序可以是任意的;
④同一情况常量不能在同一个case语句中出现两次或两次以上;
⑤每个分语句前可以有一个或若干个用逗号隔开的情况常量;
⑥如果情况表达式的值不落在情况常的范围内,则认为本case语句无效,执行case语句的下一个语句。turbo pascal中增加了一个"否则"的情况,即增加一个else子句,但也是可省的。
⑦每个常量后面只能是一个语句或一个复合语句。
例2 根据x的值,求函数Y的值:
分析:利用case语句进行程序设计, 关键在于巧妙地构造情况表达式。本例中三种情况可用一个表达式区分出来:Trunc(x/100)。因为x在(0~100)之间时表达式值为0;x在[100,200)时表达式值为1 ;其余部分可用else子句表示。
源程序如下:
program ex;
var x,y:real;
begin
write('Input x:');readln(x);
case trunc(x/100) of
0:y:=x+1;
1:y:=x-1;
else y:=0;
end;{end of case}
writeln('x=',x:8:2),'y=',y:8:2);
end.