




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环结构程序,信息学奥林匹克培训讲座(四),PASCAL基础知识函数,函数就是指一种运算。格式为函数名+(+自变量+)其中自变量可以是数、字符、变量或表达式。函数的值为经过某种形式的计算得出的结果。常用函数绝对值函数:ABS(X)平方函数:SQR(X)平方根函数:SQRT(X)前趋函数:PRED(X)后继函数:SUCC(X)奇函数:ODD(X)字符函数:CHR(X)序数函数:ORD(CH)小数函数:FRAC(X)整数函数:INT(X)截尾函数:TRUNC(X)舍入函数:ROUND(X),绝对值函数ABS(X),1、绝对值是指去掉正负号的数值,故绝对值函数ABS(X)就是把自变量X的值去掉符号。,2、例:ABS(-119)=119ABS(119)=119,3、绝对值函数的自变量可以是整数或实数,其相对应的函数的值也是整数或实数。,平方函数SQR(X)和平方根函数SQRT(X),1、平方即指某个数自己乘以自己。即SQR(X)=X*X=X2,2、例:SQR(-5)=25ABS(10)=100,3、平方函数的自变量可以是整数或实数,其相对应的函数值也是整数或实数。,4、平方根即指如果某个数X是由另一个正数Y*Y所得,那么Y就是X的平方根。即SQRT(X)=Y,5、例:SQRT(25)=5SQRT(100)=10,6、平方根函数的自变量可以是整数或实数,其相对应的函数值也是整数或实数。,前趋函数PRED(X)和后继函数SUCC(X),1、前趋是指前一个的意思。前趋函数PRED(X)即指求X的前面一个值。,2、例:pred(-119)=-120pred(119)=118pred(x)=wpred(R)=pred(Q)pred(true)=false,3、前趋函数的自变量可以是整数、字符或布尔量,其相对应的函数值也是整数、字符或布尔量。,4、后继是指后一个的意思。后继函数SUCC(X)即指求X的后面一个值。,5、例:succ(-119)=-118succ(119)=120succ(x)=ysucc(R)=pred(S)pred(false)=true,6、后继函数的自变量可以是整数、字符或布尔量,其相对应的函数值也是整数、字符或布尔量。,奇函数ODD(X),1、奇数指除不2尽的数。奇函数ODD(X)指X为奇数时,函数的值为真,当X为偶数时,函数的值为假。,2、例:ODD(-119)=TRUEODD(12)=FALSE,3、奇函数的自变量只可以是整数,其相对应的函数值是布尔量。,字符函数CHR(X)和序数函数ORD(X),1、ASC码把各种符号转换成数字的代码表。,3、例:CHR(65)=ACHR(97)=aCHR(48)=0,4、字符函数的自变量只可以是0至255之间的整数,其相对应的函数值是各种符号。,2、字符函数CHR(X)就是把数字通过ASC码转换成相对应的字符。,3、例:ord(B)=66ord(b)=98ord(1)=49ORD(FALSE)=0ORD(TRUE)=1,4、字符函数的自变量只可以是各种符号共256个,其相对应的函数值是0至255之间的整数。,5、序数函数ORD(X)就是把符号通过ASC码转换成相对应的数字。,小数函数frac(X)和整数函数INT(X),1、小数函数FRAC(X)就是取自变量X的值的小数部分。,2、例:FRAC(-10.34)=-0.34FRAC(10.34)=0.34,3、小数函数的自变量只可以是实数,其相对应的函数的值也是实数。,4、整数函数INT(X)就是取自变量X的值的整数部分。,2、例:INT(-10.34)=-10.00INT(10.34)=10.00,3、整数函数的自变量只可以是实数,其相对应的函数的值也是实数。,截尾函数trunc(X)和舍入函数round(x),1、截尾函数trunc(X)是指把自变量X的小数部分舍去,并转换为整数。,2、例:TRUNC(-11.9)=-11TRUNC(11.9)=11,3、截尾函数的自变量可以是只能是实数,其相对应的函数的值也只能是整数。,4、舍入函数ROUND(X)是指把自变量X的小数部分四舍五入保留成整数,并把函数值转换为整型的数。,5、例:ROUND(-11.9)=-12ROUND(11.9)=12,6、舍入函数的自变量可以是只能是实数,其相对应的函数的值也只能是整数。,课堂练习一:,求出表达式的值:(1)124DIV4*SQR(6.0)/3.6(2)28DIV4MOD3*TRUNC(3.674)(3)12MOD5*ORD(SUCC(N)DIV3ORD(TRUE)(4)(Ab)or(succ(E)=F)(5)PRED(TRUE)=FALSE(6)SUCC(5)=5(7)98DIV12/ORD(PRED(F)*TRUNC(2.45+3.6*4)*ROUND(23.56*3-6.75),循环结构语句,1、For循环变量:=初值表达式to终值表达式do语句2、For循环变量:=初值表达式downto终值表达式do语句3、While布尔表达式do语句4、Repeat语句until布尔表达式,for语句的一般格式:,programtext1;vari:integer;beginfori:=1to10dowrite(i:3);end.,上机测试:输出结果,for:=todo语句;(递增型循环),for:=downtodo语句;(递减型循环),programtext1;vari:integer;beginfori:=10downto1dowrite(i:3);end.,上机测试:输出结果,for语句的执行过程:,1、先将初值赋给“循环变量”;2、判断变量的值是否超过终值(对递增型来说,“超过”是大于,对递减型来说,“超过”是小于),如果超过则跳到步骤6;3、如果未超过终值,则执行do后面的语句;4、循环变量递增(递减)1;5、返回执行步骤26、循环结束,继续执行下面的语句;,试一试,programtext2;vari:char;beginfori:=atozdowrite(i:3);end.,programtext3;vari:real;beginfori:=1.5to2.5dowrite(i:3);end.,programtext1;vari:integer;beginfori:=1to10dobegini:=2*i+1;writeln(x);end;end.,1、For循环变量:=初值表达式to终值表达式do语句2、For循环变量:=初值表达式downto终值表达式do语句,(1)当我们多次重复做某件有规律的事时,我们通常采用循环语句。FOR循环适用于知道循环次数的时候。(1)循环次数=abs(ord(终值)ord(初值)+1。(2)FOR语句的含意是:计算循环次数N,重复执行N次do后面的语句。(3)循环变量是FOR循环中控制循环次数的变量,只可以是有序型变量(整数、字符、布尔)。(4)循环体可以是一个基本语句,也可以是一个复合语句。,例3:programex5_3;varI,x:integer;beginx:=1;forI:=1to5dobeginx:=x*2;writeln(x=,x)endend.,例1:programex5_1;vari:integer;beginforI:=1to5dowriteln(i=,i)end.,例4:programex5_4;vari:char;beginforI:=zdowntoudowriteln(i=,i)end.,例2:programex5_2;varI,x:integer;beginx:=1;forI:=1to5dox:=x*2;writeln(x=,x)end.,例5:programex5_5;vari:boolean;beginforI:=falsetotruedowriteln(i=,i)end.,例6:programex5_6;varI,a,b,c:integer;begina:=1;b:=9;c:=1;forI:=a+ctob+c-adobeginI:=I-1;writeln(i=,i)endend.,例7:programex5_7;varI,a,b,c:integer;begina:=1;b:=9;forI:=atotrunc(b/a)dowriteln(i=,i)end.,练习:,1、programlx_1;vari:integer;beginfori:=10to50dowrite(i:5);writelnend.,3、programlx_3;varI,k:integer;begink:=10;fori:=1to6dobegink:=k+5;write(k:5);endend.,2、programlx_2;varI,s:integer;begins:=88fori:=1to6dowrite(i:5);writelnend.,4、programlx_4;varI,a,b,c:integer;begina:=2;b:=10;c:=3fori:=atobdobeginc:=i+c;write(c:5);endend.,例8:求197的累加和。,Program5_8;,Vars,i:integer;,begin,End.,S:=0;,Fori:=1to97do,S:=s+I;,Writlen(s:5),分析:S=1+2+3+97,循环次数:97次,Fori:=1to97do,每一次所加的数与循环变量的关系,等于,S:=S+I,当第一次执行S:=S+I时,表达式中的S没有值,S赋初值,S:=0,加的数据是有规律的,例9:求1100之间的奇数和。,Program5_9;,Vars,i:integer;,begin,End.,S:=0;,Fori:=1to50do,S:=s+2*i-1;,Writlen(s:5),分析:S=1+3+5+97+99,循环次数:50次,Fori:=1to50do,每一次所加的数与循环变量的关系,2*i-1,S:=S+2*i-1,当第一次执行S:=S+2*i+1时,表达式中的S没有值,S赋初值,S:=0,加的数据是有规律的,家庭作业:,1、累加1+5+9+33的和。2、求1000以内的奇数和。,复习,1、第一台计算机的叫(),是()年()国研制而成的。1034732写成科学计数法是()看程序写结果(1)varx,y:integer;beginreadln(x,y);ifx-10ythenwriteln(xdivy)elsewriteln(xmody);end.输入:3426输出:(2)vara,b,c,d,e:integer;begina:=79;b:=46;c:=57;d:=10;e:=1;if(ac)and(bc)thend:=d+eelseifd+10ethend:=e+10elsed:=e+a;writeln(d=,d);end.输出:_,预习P97102,课堂作业二:看程序写结果,(1)programlx_5;varI,x,t:integer;begint:=0;forI:=1to3dobeginread(x);t:=t+x;writeln(x=,x,t=,t)endend.输入:2468,(2)programlx_6;varx,s:integer;begins:=0;forx:=-5downto-11dobegins:=s+x;writeln(s)endend.,例10:根据公式,计算圆周率的PAI的值。,分析:根据公式第一项可以看成,则公式共有9项,ForI:=1to9do,公式右边S=s+1/(I*i),pai=sqrt(s*6);,X=1/(I*I),Program5_10;,VarI:integer;s,pai:real;,begin,End.,s:=0;,Fori:=1to9do,s:=s+1/(i*I);,Writlen(pai:0:2),循环次数为9,每一次所加的数与循环变量的关系,课堂练习三:,计算1-1/2+1/3-1/4+1/99-1/100的值.,Programlx_7;varI:integer;s,x:real;begins:=0;x:=-1forI:=1to100dobeginx:=x*(-1)s:=s+x*1/i;endend.,例11:某市一路公共汽车共有8站,从起点发车,每到一站先从车上下来一半乘客,然后再上来两位乘客,到终点前车上还有乘客5人,问在起点站发车时车上有多少人?,分析:设起点站有X人,第二站A人,第三站到第八站依次B,C,D,E,F,G人,A=,X/2+2,B=A/2+2,C=,B/2+2,D=C/2+2,把每一站的人数都看成X人,则X=X/2+2,如果知道后一站往前一站推:X=(X-2)*2,Program5_11;,Varx,i:integer;,begin,End.,x:=5;,Fori:=1to7do,x:=(x-2)*2;,Writlen(x:5),8站有一站知道,求7站的人,循环次数:7,课堂练习四:,卖瓜者言:“我在第一天卖出瓜的二分之一又二分之一个。在第二天卖出剩下的三分之一又三分之一,第三天又卖出瓜的四分之一又四分之一个。第四天卖出剩下的五分之一又五分之一个。最后剩下11个瓜。而且每天卖出的和剩下的都是完整的瓜。问原有多少个瓜?,看程序写结果:,Programlx_1;vara,i:integer;begina:=2;forI:=atoa*4dobeginwrite(I*2);writelnendend.,Programlx_2;vara,i:integer;begina:=0;forI:=1to5doa:=a+1/(I*(I+1);writeln(b=,a)end.,例12:有四个小朋友要去游乐场玩,甲说:“我妈妈不让我去。”乙说:“丙肯定去。”丙说:“丁一定去。”丁说:“丙说的不对,我妈妈也不让我去。”到了游乐场发现,四个小朋友中有三个说得与实际相符只有一个说得不符合实际,问究竟谁说的不对?,分析:将甲、乙、丙、丁四人编号1,2,3,4,设X为说错话的人;四人说有话可写成逻辑表达式:,X1,X=3,X=4,X4,四句话有三个T,一个F,则四句话的序号加起来为1,Program5_12;,Varx:integer;,begin,End.,Forx:=1to4do,iford(x1)+ord(x=3)+ord(x=4)+ord(x4)=1thenwriteln(chr(64+x);,因为我们不知道谁是对,谁是错,因此我们采用穷举法,一个个去试,因为四种可能,即循环次数为4。FORI:=1TO4,循环变量的值刚好可以看成是甲乙丙丁,课堂练习五:,A,b,c,d四人中有一个人做了好事。A:我没做好事。B:是C做了好事。C:是D做了好事。D:不是我做了好事。已知四人中有一个人说了假话,请编程判断是谁做了好事。,While布尔表达式do语句,1、WHILE语句的含义是:当布尔表达式的值是T时,反复执行DO后面的语句,直到布尔表达式的值是F才执行下一语句。2、WHILE语句适用于不知道循环次数的循环语句。3、WHILE语句和FOR语句比较,ForI:=1to10do语句1,I:=1;whileI=10dobegin语句1;I:=I+1;end;,例13:计算1*3*5*N=10000时,N的值是多大?,分析:因为不知道循环次数,所以不能用FOR循环,而只能使用WHILE循环。,假设积为P,则条件表达式为P=10000,注意P要在循环前赋初值1,Whilep=10000do,Program5_13;,Varp,i:integer;,begin,End.,p:=1;,Whilep=10000dobegin,p:=p*i;,Writlen(I-2:5),i:=1;,i:=i+2;,end;,课堂练习:,计算1+1*2+2*3+3*4+(N-1)*N900时,N的值是多大?,分析:除第一项以外,其余各项均为有规律的数,故采用循环来做,但又不知道循环次数,而只能使用WHILE循环。,假设和为s,则条件表达式为s900,I:=1;Whilep3thenwrite(p)end;writeln(p)end.,Repeat语句1;语句2;until布尔表达式,1、repeat语句的含义是:反复执行repeat后面的语句直到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年南阳桐柏县招聘医学院校毕业生真题
- 在未成年人保护和预防未成年人犯罪工作座谈会上的交流发言
- 2025年口腔颌面外科手术操作流程考核试卷答案及解析
- 第3课《动手做纸杯电话》(教学设计)-2023-2024学年三年级下册综合实践活动沪广州版
- 5.数学广角-鸽巢问题 (教学设计)-2023-2024学年六年级下册数学人教版
- 2025届南京零模与省常中高三周练3导数压轴题教学设计
- 六年级体育上册 讲究仪表美说课稿
- 2025年心理学心理健康与心理问题处理模拟考试卷答案及解析
- 病房改造分阶段施工与患者安置方案
- 装配式混凝土构件安装技术方案
- 脑疝的观察与护理
- 腹腔热灌注护理课件
- 家庭适老化改造案例研究及经验分享
- 消防装备维护保养课件
- 乡村调解员课件
- 中邮理财招聘笔试题库2025
- 2024年西师版小学数学二年级上册教案全册
- 2025初中语文新教材培训
- 体重管理宣教课件
- 美术培训学期课件
- 局部晚期头颈部肿瘤治疗讲课件
评论
0/150
提交评论