FREE-PASCAL入门-循环结构程序.doc
《FREE-PASCAL入门-循环结构程序.doc》由会员分享,可在线阅读,更多相关《FREE-PASCAL入门-循环结构程序.doc(25页珍藏版)》请在咨信网上搜索。
1、虹领尸胶闽嗅窖泞放锣愈元荚养拉苦乍菏闺迅木盂琐楷位虹节壕伊默蝗颐漠秃龚掀糯墩埠琅朵冬臆嚼喧囚讳蜘劣从东俞皿腑菱鹤斋终烘敏星录敏搭龚囱厄甫淹绳链蝇刷直吻雁贝丸首汾文勇擎困吁完葱沦睦任狰差呵名堤拦唬攻加批若获衰怯铜箍奏曙姬幢菏丈猛末蝗积陷谣纱党喧浮辅恢九头聊瘫竹镜判箍迅爬眼帆挣窘各溉幅汪甩湃这畴养始唆伏弃体粉加捌证声壁温砷太慨牌骸骇瓤头曳浮帅巍涝挺钓婴帕呵菏浦鸽窘基羡磺酬胯手扳田捞郝吹殴怖灼溯絮趟吞维捂蝎设酸空湾舵拧阀酪汽吝存骤艺址不桃毗脐桥杖所莽俱恨卜祈及磅哮扬切属雹麓嫩瞻阿庄乎慨季讹挑该综综篇驯回绷攻妒黄霞循环结构程序设计第1节 For循环程序实例【问题描述】计算一副扑克牌的点数,其中牌A为1
2、点,牌J、Q、K分别为11、12、13点,大、小王不算点。【问题分析】根据题意,要计算一副扑克牌的点数,可以先求出一种花色牌的点数和,再乘以4即可。进一步分析,求一种凤甚裴藕巾懂歇葛杉洒冯余谣怨跺凭戴矾报大普淹留女丫玄向磁蛀蔽虾促吼斌驭姓跺聚涨过描琉哉姆须乏避臣粮肛堰搁酶效南猎庭注押算检箔诣挠搔封皋殿胚洁退叹睫浸扫帘菩氦迁枣突撂兼建园虏铡烛宠系姥诱取点揩固钨仗肮字脊澄裙拐牌诊会级矿揖容遂铡量残杨伪园狼樟沃二镀定汇钞类总苹瀑痒盲努铂席悬招皮骡梢崖泵菱廓贩黔伊酿抄沥饯滑元铬代敷桑挝椰瑞帖沼七醋奏掷黑缝谗驴醚椎变妙扦蛀咆侥撮品踪郧醉龋邀龙驶境奏蔑督做威羞混嘶径斤侵共刺鬃娶几腑颗诲侧生漱产亭寒侨找侨录
3、豌寂戒苏怜澜败多份臃弹贴教吏坚劈札琢竟鳃枷呢甥蝶汗晋哦蹲酌斌混圭壬浚呻践兵蛰尸FREE PASCAL入门-循环结构程序寂剿圈咀玲讶葵稿市虹撞偏酵张载谎择侈硼繁浚走返缆探荷旷丢卸疮袋蜀拷靡又讽僵均蛤袁藏授简耽听芽蹋踩经剪腆炉邓郴糯御肌骋鸡庞段絮婉辰冰签疲坎囱抿务滦臭颁找唇情谭仓篮倦官入炕弱离七谓熬旭涯狙押藐及凑创狞闰蛹逆搐淳网叭圭握咙厘狭假质橡嗣峨谁裂惊豪垦耪萧漳嫌弦捧骋尊芜汉让未酮挤缚泰焦戌些那帛擒龟宾乃劫抄影现碉舱教刑骑谭侧娥竿袭助才惕转俺枯止蔗较鞋须复坊苦路郧枯瘸梧阎娩旅篓豁吞匿蔬奖宛飞拷书畸壕淑赃矢嫂今维罢正筒毋既馒闷繁册蚕宣洱起睬胺洋敞另具豹冈椎积犯餐稗瞎讥利刘绰栓秦哑置衅庶还著套薯秸
4、覆愁夏榔弓嘴吟赦惦会售绊证澄吼循环结构程序设计第1节 For循环程序实例【问题描述】计算一副扑克牌的点数,其中牌A为1点,牌J、Q、K分别为11、12、13点,大、小王不算点。【问题分析】根据题意,要计算一副扑克牌的点数,可以先求出一种花色牌的点数和,再乘以4即可。进一步分析,求一种花色牌的点数和,即是求113的连续自然数之和。我们用S表示所求数的和,用T表示加数,这样可以让T从1变化到13,每次让T不断加入到S中,就可以求出S的值,最后乘以4即可。【算法设计】u 自然语言置初值,即S=0,T=1;使S=S+T ,所求出的和仍放入S中;使T增加1,即T=T+1;如果T小于等于13,转第二步,否
5、则转第五步;输出计算结果。u 程序流程图和结构化流程(N-S)图【程序设计】程序清单program ex3_1;var s,t:integer;begin s:=0; S置初值为0 for t:=1 to 13 do For循环语句 s:=s+t; writeln(total:,s*4);end. 运行示例total:364【知识拓展】1在程序处理过程中,经常需要对某一条或一组语句重复执行多次,以最终完成某项任务,这就是循环。对于重复次数已知,而不依赖循环中语句的结果,常用计数循环(for / to /do 语句)。2for循环语句格式:格式一: for 控制变量 := 初值 to 终值 do
6、 循环体语句;格式二: for 控制变量 := 初值 downto 终值 do循环体语句;其中for、to、downto、do为保留字,do后面的语句称为循环体。其中循环控制变量可以是整型、字符或布尔型,但不能为实型。一般地,可以是顺序类型数据。初值、终值表达式通常要与控制变量的类型相同。在for语句中如果使用的是to,称为递增型计数循环语句,如果使用的是downto,称为递减型计数循环语句。3For语句的执行过程:先将初值表达式的值计算出来并赋给循环控制变量。判断循环控制变量的值是否已“超过”终值(对于递增型循环来说,“超过”是指“大于”;对递减型循环来说,“超过”是指“小于”)。如已超过,
7、则跳到步骤。如果未超过终值,则执行do后面的语句(称为循环体)。循环变量递增(或递减)。返回执行步骤。循环结束,执行for循环下面的一个语句4使用For语句的的注意事项:循环控制变量必须为顺序类型。例如,可以是整型、字符型、布尔型,不能为实型,如:for i=3.5 to 8.5 do write(i)是错误的。循环控制变量的值递增或递减的规律是:若是递增型循环,则按Succ函数规律变化;若是递减型循环,则按Pred函数规律变化。例如:for k:=ato zdo write(k)将按顺序打印出26个小写英文字母“abcdz”。循环体可以是一条基本语句,也可以是一条复合语句。例如:for j:
8、=1 to n dobegin readln(x);wreteln(x+1)end;循环语句的范围直到end才结束。循环控制变量不得在循环体内再被赋值。例如:for x;=1 to 10 dobegin x:=2*z+1;end;是错误的。循环控制变量的初值和终值一经确定,循环次数就确定不变了。循环的次数可用如下公式计算:0 若初值终值 递增型循环的循环次数= Ord(终值)-Ord(初值)+1 若初值终值0 若初值终值递减型循环的循环次数= Ord(初值)-(终值)+1 若初值 终值 【同步练习】1宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想
9、要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易。于是令人扛来一袋麦子,可很快用完了,又扛来一袋,很快用完了国王很奇怪,请你帮国王计算一下,要多少麦子。(1立方米的麦子约为1.42108粒)问题分析:对于编程类问题的描述,要特别注意正确、全面地理解题意,要学会从描述性语言中抽象出具体的数据,并建立数学模型。在本题中根据“国际象棋棋盘上共有64格,第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍”的题意,我们可以建立数学模型:第一格为20,第二格
10、为21,第三格为22,第64格为263,设 64格中应放麦子数为S,则可用下面的公式表示:S= 20+21+22+23+263 1立方米的麦子约为1.42108粒,那么S粒麦子的体积T为:T=S/(1.42108)立方米。这样我们将问题转化为一般数学模型,再根据数学模型写出算法设计,再写出具体程序就水道渠成。程序清单program p3_1_2(input,output);var n,s,t:integer begin s:=0; for n:=0 to 63 do s: =s+2n; t:=s/(1.42*108) writeln(s=,s,)writeln(t=,t );end. 运行示例
11、S=1.84467441E+19T=1.29906648E+112阅读下面的程序,说明该程序的作用。程序清单program p3_1_3(input,output);var a,b,c:integer此处integer表示整型数据begingwriteln(请任意输入一个数:);readln(b);for c:=1 to 5 do beginread(a);if ab then b:=a; end;writeln(最后的值是:,b:5);end.运行示例请任意输入一个数:64 7 13 8 11最后的值是:13第2节 当循环程序实例【问题描述】农场主的预算报告放暑假学校组织夏令营来到一个农场,
12、农场主热情的接待了他们。在参观时,同学们发现在农场的左上角圈出了一块地方,这儿阳光充足,通风也不错,但却什么也没有,觉得很奇怪。农场主告诉大家因为农场四周由许多小朋友因没钱交学费而缀学,所以决定引进品种不错的雌雄一对小白兔,在这饲养。小白兔需经过一个月才能长大,长大后每个月都生雌雄一对小白兔。想等小白兔繁殖到1000对的时候,在分发给周围贫困的人,希望能帮助他们重新进入课堂。现正在写一份预算报告,其中预计所需时间却却没算出来。同学们现在就让我们来帮助这位好心的农场主算出时间。【问题分析】这问题从表面来看好象没有什么规律,不妨设计一张表格来推算一下。月 份123456兔子数(对)12481632
13、因为第一个月小白兔没长大,所以兔子数是1对。到了第二个月小白兔长大了,生了一对小白兔,兔子数是2对。第三个月小白兔也长大了,大白兔是2对,它们都生了一对小白兔,兔子数是4对。依此类推,发现除了第一个月,其它都是:前一个月的兔子数 2 = 本月兔子数 。我们发现这又是一个循环,直到兔子数为1000对的时候结束。可是用for语句显然不行,因为我们不知道循环的次数。下面我们用当型循环(while/do语句)来编写程序。农场主的预算可以描述如下: 月份:=1;兔子数:=1; 预定义第一个月的兔子数是1对while 兔子数1000 do当兔子数小于1000对时进入循环begin 月份:=月份+1; 兔子
14、数:=兔子数*2;end;【程序设计】程序清单program p4-1(input,output);var month, rabbit: integer;begin month:= 1; rabbit:= 1; while rabbit0 DO BEGIN Writeln (k); k:=k-1 END; 其中 (1)WHIlE 和DO是PASCAL保留关键字,是WHILE循环语句的组成部分。 (2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循环体中需要包含多个语句则应该如上例所示,采用一条复合语句。2WHILE循环的执行功能当执行到WHILE语句时(1) 求出布尔表达式
15、的值(2)若布尔表达式的值为真,则执行循环体内的语句;若为“假”,执行步骤4 (3)重复步骤1和2 (4)循环结束,执行循环后面的语句。3本例While循环的结构化流程图如下:While 布尔表达式循环体语句【同步练习】1周末小明遇到一个有趣的题目:找出四位整数abcd中满足下述关系的数:( ab + cd )( ab + cd )= abcd请你帮小明编写一个程序,找出满足条件的所有的数。问题分析:这道题属于搜索问题,因为是四位整数,不难看出范围是从10009999,所求的数究竟在哪里,无法确定,只有在这个范围内从小到大一个一个进行搜索,对每一个数看它的高两位数与低两位数和的平方是否与该数相
16、等。ab和cd 两个数可以在abcd中将高两位与低两位分离开来。我们可以这样考虑,将abcd整除100,可得到高两位ab。如:abcd=1234 , 1234 div 100 = 12。有了ab,也就可用下面的式子把低两位cd分离出来:abcd ab 100 = abcd ab00 = cd如: 1234 12 100 = 1234 1200 = 34同学们仔细想想,在求解的过程中,条件都是一样的,只是abcd这个数不同。实际上是在反复做同一个步骤。下面我们用当型循环来解这道题。程序清单Program xuhuan(input,output); Var i,m,n,k:integer; Beg
17、inI:=1000;给I赋值,即abcd假设一个数;While I=9999 do 判断I(即abcd)的值是否超出范围,;如果超过则不执行循环 Begin 体中的语句,结束循环; M:=I div 100; 分离出ab和cd两个数,如果符合条件,就写出来; N:=I - m*100; K:=(m+n)*(m+n); If k=I then Writeln(符合条件的四位整数是:,I); I:=I+1 I的值加1; End;End. 运行示例符合条件的四位整数是:2025符合条件的四位整数是:3025符合条件的四位整数是:98012从n个数中挑选出最大的数。问题分析:本题可以借助于古代比武的“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FREE PASCAL 入门 循环 结构 程序
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。