




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
例1输出1100之间的所有数字。,program ex; var i:integer; begin for i:=1 to 100 do write(i:5); end.,program ex; var i:integer; begin i:=1; while i=100 do begin write(i:5); i:=i+1; end; end.,循环结构程序设计计数循环for 循环,For描述已知重复次数的循环结构。 一、For语句基本格式 (1) 递增循环: for 循环变量:=初值 to 终值 do 语句(块)(循环体); (2)递减循环: for 循环变量:=初值 downto 终值 do 语句(块)(循环体);,I=1 I5 退出循环,I=5 I=1 write(i) 5 I=4 I=1 write(i) 4 I=3 I=1 write(i) 3 I=2 I=1 write(i) 2 I=1 I=1 write(i) 1 I=0 I1 退出循环,二、For语句执行过程 先将初值赋给左边的变量(称为循环控制变量); 判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤; 如果没有超过终值,则执行do后面的那个语句(称为循环体); 循环变量递增(对to)或递减(对downt o); 返回步骤; 循环结束,执行 for 循环下面的一个语句。,例7_2按正序和反序输出26个英文字母。 program ex7_2; var m:integer; zf:char; begin for m:=65 to 90 do begin zf:=chr(m); write(zf:2); end; writeln; for m:=90 downto 65 do begin zf:=chr(m); write(zf:2); end; end.,?换个方法尝试一下。,例7_3 求1+2+3+99+100 Program ex; Var i,sum:integer; Begin End.,sum:=0; for i:=1 to 100 do sum:=sum+i; Writeln(sum);,同类型的题目: 编程计算从1到20每个数的平方值; 求h=1+1/2+1/3+1/4+1/n; 求n! 输出1到1000之间的能够被3整除的数。 统计1到1000之间能够同时被3和7整除的数的个数,并计算他们的和。,三、说明 循环控制变量必须是顺序类型。 循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。 循环控制变量的值“超过”终值,对递增型循环,“超过”指大于,对递减型循环,“超过”指小于。 循环体可以是一个基本语句,也可以是一个复合语句。 循环控制变量的初值和终值一经确定,循环次数就确定了。 abs(终值初值)1,abs(ord(初值)ord(终值)1 在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死循环。建议不要在循环体中随意修改控制变量的值。 for语句中的初值、终值都可以是顺序类型的常量、变量、表达式。,For/to/do while/do repeat/until,while 循环和repeat-until循环是可以互相替代的。 for 循环在大多数场合也能用while和repeat-until循环来代替. for循环用于有确定次数循环,而while和repeat-until循环用于未确定循环次数的循环。,while 布尔表达式 do 语句(块)(循环体);,for 循环变量:=初值 to 终值 do 语句(块)(循环体); for 循环变量:=初值 downto 终值 do 语句(块)(循环体);,Repeat 语句1; 语句2; 语句3; 语句 n; Until 布尔表达式;,1设有如下程序段: i :=1; repeat n :=i*i; i :=i+2; until n2*i; 假设所有变量均已说明,问其中循环体的执行次数是: (A)1 (B)2 (C)3 (D)4,3 设有如下程序段: s :=100;n :=3; for ch :=a to e do begin if not odd(n) then s :=s-n; n:=n+5; end; 假设所有变量均已说明,程序执行后s的值是: (A)97 (B)89 (C)74 (D)58,4 设有如下程序段: n :=19876; k :=3; for i:= 1 to k do n :=n mod 10; n :=n div 10; 假设所有变量均已说明,程序执行后n的值是: (A)0 (B)6 (C)10 (D)1,2设有如下程序段:i :=2.5 while i=4 do begin i :=i+0.5; end; 假设所有变量均已说明,问其中循环体的执行次数是: (A)1 (B)2 (C)3 (D)4,巩固练习,C,A,C,D,上机练习 下面三题选做一题即可。 求s=2+4+6+8+10+n; 求S= 1-1/2 +1/3-1/4+1/5-1/6+ (求前N项的和) 求1!+2!+10!的值。 统计1到1000之间能够同时被3和7整除的数的个数,并计算他们的和。 求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a3+b3+c3=abc,则abc是水仙花数。 宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?,for循环的嵌套 在一个for循环的循环体中又包含另一个for循环,称为for循环的嵌套。内层for循环是外层for循环体中的一个语句。,Write(*);,For i:=1 to 8 do Writeln(*);,For i:=1 to 8 do Write(*);,For i:=1 to 8 do Begin for j:=1 to 8 do Write (*); writeln; end.;,编程序分别打印以下三图:,例7_5 编程输出以下形状的字符组合: 题1 program ex1; var i,j:integer; begin for i:=1 to 5do begin for j:=1 to 5 do write(*); writeln; end; readln; end.,题2 program ex2; var i,j:integer; begin for i:=1 to 5 do begin for j:=1 to i do write(*); writeln; end; readln; end.,题3 program ex3; var i,j:integer; begin for i:=1 to 5 do begin write( :6-i); for j:=1 to i do write(*); writeln; end; readln; end.,题4 program ex4; var i,j:integer; begin for i:=1 to 5 do begin write( :6-i); for j:=1 to 2*i-1 do write(*); writeln; end; readln; end.,题5 program ex5; var i,j:integer; begin for i:=5 downto 1 do begin write( :6-i); for j:=1 to 2*i-1 do write(*); writeln; end; readln; end.,一个循环变量控制行数(外循环) 一个循环变量控制列数(内循环),例7-6 打印出下列的金字塔 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1,分析:我们用嵌套的二重循环来实现,外层循环用来控制行数,内层循环用来控制每一行的列。 从数字金字塔中我们可以发现,每一行最大的数就是该行的行数,且位于中间。这样,内层循环先从1递增到最大数,然后再递减到1。为控制输出格式,用变量Indent存放每行前面的空格数,且设定每个数字以场宽L输出,indent存放每行的初值至少应为9,程序中我们设为25。,program ex57; var row,col,indent:integer; begin indent:=25; for row:=1 to 9 do行数 begin write(:indent); for col:=1 to row do write(col:2); for col:=row-1 downto 1 do write(col:2); 每行上的数字 writeln; indent:=indent-2; end; readln; end.,例7-7 把一元钞票换成一分、二分、五分硬币(每种至少一枚)有多少种换法。,百钱买百鸡:今有钱100元,要买100只鸡,公鸡3元一只,母鸡1元一只,小鸡1元3只,若公鸡、母鸡和小鸡都至少要买1只,请编程求出恰好用完100元钱的所有的买鸡方案 有三种明信片:第一种每套一张,售价2元;第二种每套一张,售价4元; 第三种每套9张,售价2元。现用100元钱要买100张明信片,要求每种明信片至少要买一套,问三种明信片应各买几套?请输出全部购买方案。,兑换一分,兑换二分,兑换五分,program ex77; var i,j,k,total:integer; begin total:=0; for i:=1 to 99 do for j:=1 to 49 do for k:=1 to 19 do if 1*i+2*j+5*k=100 then begin writeln(i:3,j:3,k:3); total:=total+1; end; writeln(total=,total); readln; end.,上机练习: 一个炊事员上街采购,用500元钱买了90只鸡, 其中母鸡一只15元,公鸡一只10元,小鸡一只5元,正好把钱买完。问母鸡、公鸡、小鸡各买多少只? 打印下列图案: * * * * * * * * * # * # # * * # # # * * * A B C D E F 1 222 33333 4444444 555555555 九九乘法表: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=13 4*4=16 : : 9*1=9 9*2=18 9*9=81,求素数表:输入一个自然数n,输出到n之间的所有素数。,program ex7_8; var x,i,n,flag,y:integer; begin readln(n); for x:=1 to n do begin flag:=1; y:=x div 2; for i:=2 to y do if x mod i =0 then flag:=0; if (x1) and (flag=1) then write(x, ); end; readln; end.,输入一个数,判断是否为素数。,for i:=2 to n-1 do if n mod i=0 then flag:=true;,program ex7-9; var i,k,kend,n:integer; yes:boolean; begin writeln(the primary between 100 and 200:); n:=0; for i:=100 to 200 do if odd(i) then begin yes:=true; kend:=trunc(sqrt(i); for k:=2 to kend do if i mod k=0 then yes:=false; if yes=true then begin write(i, ); n:=n+1; end; if n mod 5=0 then writeln; end; readln; end.,例7-9 求100200之间的求全部素数,一行打印5个素数。 分析:对100200之间的任一自然数I,若I是素数则输出。对于i(=100),如果是偶数,当然不是素数;如果I能被2到 i(取整)中的任一自然数整除,则也也不是素数,否则即为素数。,输入一个正整数N,把它分解成质因子相乘的形式。如:36=12233; 19=119(提示:设因子为I,从2开始到N,让N重复被I除,如果能整除,则用商取代N,I为一个因子;如果不能整除,再将I增大,继续以上操作,直到I等于N。),猜价格:中央电视台的“幸运52”栏目深受观众喜爱,其中的“猜商品价格”的节目更是脍炙人口,现在请你编一个程序模拟这一游戏:由计算机随机产生200至5000之间的一个整数,作为某件商品的价格,然后由你去猜是多少,若你猜的数大了,则计算机输出提示“Gao”,若你猜的数小了,则计算机输出提示“Di”,然后你根据提示继续猜,直到你猜对了,计算机会提示“Ok”,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八级上册英语期中试卷及答案
- 2025年中小学生心理健康考试试题与答案
- 收获机械制造工三级安全教育(班组级)考核试卷及答案
- 评茶师标准化作业考核试卷及答案
- 墨水制造工主管竞选考核试卷及答案
- 地理信息建库员效率提升考核试卷及答案
- 2025年智能家居安防系统技术创新与市场前景
- 2025年智能电网需求侧响应技术创新与智能调度系统融合报告
- 风力发电运维值班员专业技能考核试卷及答案
- 质量意识培训考试试卷及答案
- 2025至2030中国原果浆行业项目调研及市场前景预测评估报告
- 商场装修合同
- 2025年版住宅房屋租赁合同范本下载
- 2-5跨学科实践制作隔音房间模型八年级物理学案人教版
- 房屋学位租赁合同协议书
- 2025年高速公路标杆企业组织效能报告
- 2025年秋新人教版数学三年级上册全册教案
- 政府装监控合同范本
- 重症凝血病标准化评估中国专家共识(2025版)
- 2025年秋季学期“1530”安全教育记录表
- 竖井滑模施工组织设计
评论
0/150
提交评论