第二讲程序的结构一_第1页
第二讲程序的结构一_第2页
第二讲程序的结构一_第3页
第二讲程序的结构一_第4页
第二讲程序的结构一_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二讲程序的结构一第1页,共33页。(优选)第二讲程序的结构一第2页,共33页。例:输入三角形的三条边a,b,c,输出三角形的面积。(a,b,c是正整数<100,满足三角形条件)一、顺序结构第3页,共33页。vara,b,c:integer;p,s:real;beginreadln(a,b,c);p:=(a+b+c)/2;s:=sqrt(p*(p-a)*(p-b)*(p-c));writeln(s:0:2);end.程序从第一句开始,依次顺序执行语句直到结束,中间无分支和循环,这种程序结构称为顺序结构第4页,共33页。Readln(a,b,c)读入边长求p求s输出面积s流程图第5页,共33页。改进:输入三角形的三条边a,b,c,如果能构成三角形则输出三角形的面积;如果不能构成三角形则输出”Noanswer”.第6页,共33页。Readln(a,b,c)读入边长A,b,c能否构成三角形?求p,s,输出面积输出:‘Noanswer’YESNO第7页,共33页。vara,b,c:integer;p,s:real;beginreadln(a,b,c);if(a+b>c)and(a+c>b)and(b+c>a)thenbeginp:=(a+b+c)/2;s:=sqrt(p*(p-a)*(p-b)*(p-c));writeln(s:0:2);endelsewriteln(‘Noanswer’);end.无“;”第8页,共33页。二、选择结构(一)关系运算、逻辑运算及布尔表达式1.关系运算符(表示数值大小关系的运算符号)

运算符运算结果类型

=等于布尔型

<>不等于布尔型

<小于布尔型

>大于布尔型

<=小于等于布尔型

>=大于等于布尔型第9页,共33页。如:a:=1;b:=2;

则表达式:a<=b的值是TRUE;a>b的值是FALSE;

a+1=b的值是TRUE;Varf:boolean;

f:=a>b;Write(f);输出:FALSE数据类型:布尔型(boolean)一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false(错误)和true(正确),并且false的序号是0,true的序号是1。false和true都是预定义常数标识符,分别表示逻辑假和逻辑真。并且true<false。boolean是布尔型的标识符。

如:vara,b:boolean;第10页,共33页。2、逻辑运算(布尔运算)

运算符运算运算对象结果类型

not逻辑非(取反)布尔型布尔型

and逻辑与(并且)布尔型布尔型

or逻辑或(或者)布尔型布尔型

xor逻辑异或布尔型布尔型如:a:=1;b:=2;c:=3;1)、Not(a>b)

2)、(a<b)and(b<c)

3)、(a<b)and(b>c)

4)、(a<b)or(b<c)

5)、(a<b)or(b>c)

6)、(a<b)xor(b<c)

7)、(a<b)xor(b>c)布尔表达式:由关系运算符和逻辑运算符连接成的表达式。结果是布尔类型:TRUE或FALSE第11页,共33页。(二)、选择结构:if语句

有两种形式的IF语句:

(1)if<布尔表达式>then<语句>;

(2)if<布尔表达式>then<语句1>else

<语句2>;

IF语句是由一个布尔表达式和一个或两个供选择的操作序列组成。运行时根据布尔表达式的求值结果,选取其中之一的操作序列执行。当布尔表达式的值为TRUE,则执行then后面的语句,值为FALSE时有两种情况:

(1)什么也不做;(2)执行else后面的语句。注意:

1、else前面的语句不能有分号;2:如果语句部分是复合语句(多于一条语句),则必须用begin与end括起来。第12页,共33页。例1:输入一个整数a,判断他的奇偶性。(是偶数输出“yes”,奇数输出“no”)。方法一:Vara:integer;Beginreadln(a);Ifamod2=0thenwriteln(‘yes’);

ifamod2<>0thenwriteln(‘no’);End.方法二:Vara:integer;Beginreadln(a);Ifamod2=0thenwriteln(‘yes’)elsewriteln(‘no’);End.无“;”第13页,共33页。例2、计算下列函数,输入x,输出y的值(精确到小数点后两位小数)。第14页,共33页。分析:根据输入的x值,先分成x<0与x>=0两种情况,然后对于情况x>=0,再区分x=0,还是x>0。varx:real;beginreadln(x);ifx<0thenwriteln(x*x:0:2)elseifx=0thenwriteln(0)elsewriteln(sqrt(x):0:2);end.IF语句的嵌套在if语句中,如果then子句或else子句仍是一个if语句,则称为if语句的嵌套。第15页,共33页。例3:已知方程:

ax2+bx+c=0输入系数a,b,c,a<>0,输出方程的解(考虑各种情况)。保留两位小数。(1):如果无实数解输出:’noanswer’;(2):相同的实数解:输出一个即可。(3):两个不同的实数解:分别输出。如:输入:132输出:X1=-1.00X2=-2.00输入:21输出:X=-1.00第16页,共33页。vara,b,c:integer;d,x1,x2:real;beginreadln(a,b,c);d:=b*b-4*a*c;ifd<0thenwriteln('noanswer');ifd=0thenwriteln('x=',-b/(2*a):0:2);ifd>0thenbeginx1:=(-b+sqrt(d))/(2*a);x2:=(-b-sqrt(d))/(2*a);writeln('x1=',x1:0:2);writeln('x2=',x2:0:2);end;end.第17页,共33页。引例:键入一个自然数N(<10000),求这个自然数的所有约数之和S(不包含1和n)。如:输入:6输出:5三、循环结构第18页,共33页。

varn,i:integer;s:longint;beginreadln(n);s:=0;fori:=2ton-1doifnmodi=0thens:=s+i;writeln(s);end.第19页,共33页。循环结构程序通常由三种循环语句来实现。它们分别为

1)、FOR循环

2)、当循环while3)、直到repeat循环。第20页,共33页。一)、for语句1、for语句的一般格式:

for<控制变量>:=<表达式1>to<表达式2>do<语句>;

for<控制变量>:=<表达式1>downto<表达式2>do<语句>;

其中for、to、downto和do是Pascal保留字。表达式1与表达式2的值也称为控制变量的初值和终值。第21页,共33页。例1:计算1+2+3+……+99+100

vari,s:integer;

begin

s:=0;

fori:=1to100dos:=s+i;

writeln(s);

end.For语句执行过程①先将初值赋给左边的变量i(称为循环控制变量);②判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤⑥;③如果末超过终值,则执行do后面的那个语句(称为循环体);④循环变量自动递增(对to)1;⑤返回步骤②;⑥循环结束,执行for循环下面的一个语句。循环体:重复执行初值i:循环控制变量终值第22页,共33页。

1)、通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。

2)、重复语句是由循环体及重复终止条件两部分组成。第23页,共33页。例2、求100---999中的水仙数。(若三位数abc,a3+b3+c3=abc,则称abc为水仙数。如153,13+53+33=1+125+27=153,则153称为水仙数)。

varn,a,b,c:integer;beginforn:=100to999dobegina:=ndiv100;b:=(ndiv10)mod10;c:=nmod10;ifn=a*a*a+b*b*b+c*c*cthenwriteln(n);end;end.第24页,共33页。例3、从键盘上输入n个数,输出他们的最大数,最小数,平均数。输入:第一行:n(<100).

第二行:n个正整数([1,1000]),中间一个空格隔开。输出:第一行:最大数。第二行:最小数。第三行:n个数的平均值(小数点后保留2位小数)。样例:输入:

41042030输出:

30416.00第25页,共33页。varn,i,x,min,max:integer;sum:longint;beginreadln(n);min:=1001;max:=0;fori:=1tondobeginread(x);sum:=sum+x;ifx>maxthenmax:=x;ifx<minthenmin:=x;end;writeln(min);writeln(max);writeln(sum/n:0:2);end.varn,i,x,min,max:integer;sum:longint;beginreadln(n);read(x);min:=x;max:=x;sum:=x;fori:=1ton-1dobeginread(x);sum:=sum+x;ifx>maxthenmax:=x;ifx<minthenmin:=x;end;writeln(min);writeln(max);writeln(sum/n:0:2);end.第26页,共33页。例4、键入一个自然数N(<=109),求这个自然数的因数的个数S(包含1和n)。如:输入:6输出:4第27页,共33页。varn,I,s:longint;beginreadln(n);s:=0;

fori:=1tondoifnmodi=0thens:=s+1;writeln(s);end.第28页,共33页。varn,I,s:longint;beginreadln(n);s:=0;

fori:=1totrunc(sqrt(n))doifnmodi=0thens:=s+2;

writeln(s);end.ifn=int(sqrt(n))*int(sqrt(n))thens:=s-1;第29页,共33页。例5、编一个程序,从键盘输入一个真分数的分子n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论