- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[高等教育]帕斯卡pascal教程
PASCAL程序设计 信息技术教研组 PASCAL是一种结构化程序设计语言 FOR语句 FOR 循环变量 :=初值 TO 终值 DO 循环体 FOR语句的功能:对于初值和终值之间的每一个循环变量的值,重复执行循环体。 FOR语句的执行过程:首先将初值赋给循环变量,然后将循环变量与终值比较,当循环变量的值小于等于终值时,执行循环体。在每次执行循环体以后,将循环变量的后继值赋给循环变量,然后再与终值比较,若它仍小于等于终值,则再次执行循环体,否则结束FOR语句,执行FOR语句后面的下一个语句。 例1 输出1~100之间的所有偶数。 例2 计算10个数的和、积与平均值。 回顾一下“计算三个数的和、积与平均值”。 分析:变量的逐个输入、求和时变量的累加、求积时变量的累乘这些运算都是一些重复的操作。 利用FOR循环,只需要一个输入变量x,执行下列操作 输入一个实数放在变量x中; 将sum(其初值为0)与x相加,结果再存入sum; 将mul (其初值为1)与x相乘,结果再存入mul; 例3 计算n!(n的阶乘) n!=1x2x3x…xn (n是正整数) 当n较大时,n!是一个很大的数,因此必须将存放n!的结果变量fac定义为实型。 FOR语句的注意点 循环变量的初值与终值可以是表达式(其特例是常量或变量) 循环变量必须与初值、终值的类型相同,且只能是有序类型(整型、字符型、布尔型、枚举型、子界型)实型不能作为循环变量和初值、终值的类型。 循环变量必须在包括该循环的最内分程序中说明它的类型。 循环体可以是任何单个语句或由多个语句组成的复合语句。 FOR语句的注意点 在循环执行前,根据初、终值表达式计算初、终值,并由此决定循环的次数及循环变量的取值。在循环体中对初、终值表达式值的改变不会影响循环次数及循环变量的取值。 在循环体中,不允许用任何语句改变循环变量的值。 从FOR循环退出时,循环变量的值是无定义的,不得使用。 如果初值大于终值,循环体将根本不执行。 FOR语句(二) FOR 循环变量 :=初值 DOWNTO 终值 DO 循环体 注意:当初值≥终值时,执行循环体。 例4 按正序和反序输出字母表 例5 求菲波拉契数列a0、a1、a2…a20 a0=0 a1=1 a2=a0+a1 a3=a1+a2 …. an=an-2+an-1 例9 求1-100之间的素数 素数是大于1并且除了1和它本身之外,不能被其它任何整数所整除的整数。 判断i是否为素数:用2,3,4,…, 去除,如果都除不尽,则i是素数。 WHILE循环 WHILE 布尔表达式 DO 循环体 功能:当布尔表达式的值为真时,执行循环体。 特点:先判断再执行,最少执行 次。 注意:循环体中若包含多个语句,必须采用复合语句的形式。 例11 辗转相除法求最大公约数 辗转相除法: 用m、n、r分别表示被除数、除数、余数。 求m/n的余数r; 若r为0,则n为最大公约数,算法结束。若r不为0,执行第3步; 值传递:将n的值传给m,将r的值传给n; 返回第1步。 REPEAT循环 REPEAT 循环体 UNTIL 布尔表达式; 例15 一个炊事员上街采购,用500元买了90只鸡,其中母鸡一只15元,公鸡一只10元,小鸡一只5元,正好把钱花完。问母鸡、公鸡、小鸡各买了多少只? 分析:设母鸡i只,公鸡j只,则小鸡90-i-j只, 可以列出方程15*i+10*j+(90-i-j)*5=500, 显然一个方程求两个未知数是不能直接求解的,必须组合出所有可能的i,j值,看是否满足条件,这里i的值可以是0到33,j的值可以是0到50。 思考:33与50是怎么计算出来的? * * 基本的程序结构 顺序结构 选择结构 循环结构 IF语句 CASE语句 输入语句 赋值语句 输出语句 FOR语句 WHILE语句 REPEAT语句 PROGRAM case401; {输出1到100之间的所有偶数} VAR i:integer; BEGIN FOR i:=1 TO 100 DO IF (i MOD 2=0) THEN write(i:5); { i:5表示i的场宽为5 } END. 重复 执行 10次 PROGRAM case402; {计算10个数的和、积与平均值} VAR x,sum,mul,ave:real; i:integer; BEGIN sum:=0; mul:=1; FOR i:=1 TO 10 DO BEGIN read(x); sum:=sum+x;
文档评论(0)