PASCAL语言 吉林大学计算机科学与技术学院.

Slides:



Advertisements
Similar presentations
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
Advertisements

主題:時間和日期 二零零九年 七月七号.
中小学教育网课程推荐网络课程 小学:剑桥少儿英语 小学数学思维训练 初中:初一、初二、初三强化提高班 人大附中同步课程
液 体 高二物理.
第二章 复式记账原理*** 主要内容、重点难点: 1.会计要素与会计等式*** 2.会计科目与账户*** 3. 借贷记账法***
第四章 決策敘述 4-1 if 4-2 if..else 4-3 case 4-4 綜合範例.
1、分别用双手在本上写下自己的名字 2、双手交叉
第三课 走向自立人生.
2007年11月考试相关工作安排 各考试点、培训中心和广大应考人员:
06学年度工作意见 2006年8月30日.
分式的乘除(1) 周良中学 贾文荣.
第四章 制造业企业 主要经济业务核算.
《思想品德》七年级下册 教材、教法与评价的交流 金 利 2006年1月10日.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
Chapter 4 流程控制.
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
一、单选题 1、 字符串“ababacbab”和字符串“abcba”的最长公共子串是( )。
第八章 符号表 符号表的作用: 一致性检查和作用域分析; 辅助代码生成..
第五课选择结构 布尔表达式、IF语句 选择结构 2.布尔变量必须预先定义后使用。 第一节 布尔运算 例如:
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第四章 程序设计初步 顺序结构:赋值语句、输出语句
第3章 C语言的基本语句 和程序结构设计.
文件操作.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
编译原理实践 5.给定语法的语法分析程序构造.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
日 月 明 生 星 期 今 天 昨 你 我 他 的 幾 是 qí wŏ Rì yuè jīn tā míng tiān de shēng
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第二章 Java语言基础.
第2章 PL/0编译程序 2.1 PL/0语言和类pcode的描述 2.2 PL/0编译程序的结构 2.3 PL/0编译程序的语法语义分析
Lok Sin Tong Leung Kau Kui college
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
編譯程式設計 期末專題說明 V1.1 May 2004.
动态规划(一).
第七章 操作符重载 胡昊 南京大学计算机系软件所.
最大公约数 ——解题报告 作者:宋含章 七(12)班 1.
第一章 函数与极限.
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
第4章 Excel电子表格制作软件 4.4 函数(一).
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第九节 赋值运算符和赋值表达式.
3.16 枚举算法及其程序实现 ——数组的作用.
中五級電腦科 PASCAL檔案處理.
本节内容 Lua基本语法.
College of Computer Science & Technology
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
主讲教师 欧阳丹彤 吉林大学计算机科学与技术学院
四 选择结构程序设计 厦大附中信息技术.
五 循环结构程序设计 厦大附中信息技术.
三 顺序结构程序设计 厦大附中信息技术.
数据表示 第 2 讲.
鸡兔同笼(续) ——选择结构.
顺序结构程序设计 ——关于“字符串”和数值.
PASCAL语言 吉林大学计算机科学与技术学院.
编译原理实践 6.程序设计语言PL/0.
解题报告 七(5)班 严崟杰 03:20.
编译原理与实现 河北科技大学 信息科学与工程学院计算机系 杨奎河
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

PASCAL语言 吉林大学计算机科学与技术学院

第五章 流程控制

一、 程序结构 顺序结构 分支结构 循环结构

二、 顺序结构 BEGIN write('pleace input x:'); readln(x); 二、 顺序结构 BEGIN write('pleace input x:'); readln(x); f:=sin(x+x)/ln(x*0.3); p1:=(f+sin(x))/exp(x); END. 复合语句从语法意义上可以相当于一条语句

三、 IF语句 三、 IF语句 IF <布尔表达式> THEN <语句> 单分支IF PROGRAM examp(input,output); var letter:char; Begin writeln(‘请输入字母:’); readln(letter); writeln(‘输入字母:’,letter); if letter<>‘z’ then letter:=succ(letter); writeln(‘输入字母的后继:’,letter); End. 读入小写字母,打印之;并打印其后继字母,当z时打印z本身。

三、 IF语句 三、 IF语句 IF <布尔表达式> THEN <语句> ELSE <语句> 双分支IF PROGRAM examp(input,output); var letter:char; Begin readln(letter); writeln(‘输入字母:’,letter); if letter>‘m’ then letter:=succ(letter) else letter:=pred(letter); writeln(letter); End. 读入小写字母,打印之;字母表前一半的打印后继,字母表后半部分打印前驱

例子的另外一种形式 PROGRAM examp(input,output); var letter:char; Begin readln(letter); writeln(‘输入字母:’,letter); if letter>‘m’ then writeln(succ(letter)) else writeln(pred(letter)); End. 读入小写字母,打印之;字母表前一半的打印后继,字母表后半部分打印前驱

四、 IF语句注意事项 1、布尔表达式 2、关于‘;’ 3、双分支和单分支的关系 4、复合语句的利用

单分支和双分支的关系 PROGRAM examp(input,output); var letter:char; Begin readln(letter); writeln(‘输入字母:’,letter); if letter>‘m’ then writeln(succ(letter)); if letter<=‘m’ then writeln(pred(letter)); End. 读入小写字母,打印之;字母表前一半的打印后继,字母表后半部分打印前驱

复合语句的应用 PROGRAM examp(input,output); var letter:char; Begin readln(letter); writeln(‘输入字母:’,letter); if letter>‘m’ then begin writeln(‘后继字母是:’); writeln(succ(letter)); end; End.

五、 IF语句嵌套 三、 IF语句 如果a<b而且c=d则把y赋给x,如果a<b而且c<>d则把w赋给x如果a>=d则将z赋给x If a<b then if c=d then x:=y else x:=w Else x:=z

五、 IF语句嵌套 三、 IF语句 If b1 Then s1 Else if b2 then s2 If b1 Then s1 else s3 If b1 Then if b2 then s1 If b1 Then if b2 then s1 else s2 If b1 Then if b2 then s1 else s2 Else s3

Else和向上最近的if匹配 五、 IF语句嵌套 三、 IF语句 If b1 Then begin if b2 then s1 end Else s2

六、 CASE语句 三、 IF语句 一般格式 CASE 表达式 OF 常量表1 : 语句1; 常量表2 : 语句2; 。 常量表1 : 语句1; 常量表2 : 语句2; 。 常量表n : 语句n; END

CASE语句举例 计算分段函数:

CASE语句举例 PROGRAM examp(input,output); var a,b,c,x,y:real;; Begin readln(a,b,c,x); case round(x) of 1:y:=a+b*x+c*sqr(x); 2:y:=sqr(a*sin(b*x)); 3:y:=a-b*c/x; 4:y:=a*ln(abs(b+c/x)); end; writeln(y:12:3); End.

2、情况常量不必排序,也可以在同行并列,但不允许重复 5、CASE扩展:ortherwise或者else 3、情况语句只能一条,但可以是复合语句 4、CASE可以嵌套,也可以和IF嵌套等 5、CASE扩展:ortherwise或者else

三、 IF语句 CASE语句和IF语句的关系

七、 重复结构的三要素 循环体 循环条件 循环控制的方式

八、 重复结构的三种形式 WHILE-DO循环 REPEAT-UNTIL循环 FOR-DO循环

九、 WHILE 循环(当语句) 三、 IF语句 WHILE 布尔表达式 DO 语句 WHIILE和DO是关键字 语句可以是简单语句或复合语句

WHILE循环举例 PROGRAM exam(input,output); var i,j,k:integer; Begin readln(i); j:=1; k:=0; while j<=I do begin k:=k+j; j:=j+2; end writeln(k); End.

十、 REPEAT 循环 三、 IF语句 REPEAT 语句组 UNTIL 布尔表达式 REPEAT和UNTIL是关键字 语句组不需要BEGIN。。END

例子 PROGRAM exam(input,output); var i,j,k:integer; Begin readln(i); repeat k:=k+j; j:=j+2; until j>i writeln(k); End.

三、 IF语句 WHILE循环和REPEAT循环的关系

WHILE先发制人;REPEAT后发制人 WHILE亲复合语句;REPEAT排斥之 三、 IF语句 都是用条件控制重复次数 控制条件在循环体内得到修改 布尔表达式的TRUE和FALSE WHILE先发制人;REPEAT后发制人 WHILE亲复合语句;REPEAT排斥之

FOR 变量:=表达式1 DOWNTO 表达式2 DO 语句 三、 IF语句 FOR 变量:=表达式1 TO 表达式2 DO 语句 FOR 变量:=表达式1 DOWNTO 表达式2 DO 语句 变量必须事先定义;复合语句 变量必须是顺序类型,不许修改其值 表达式1和表达式2与变量必须相容

FOR循环举例(TO) PROGRAM exam(input,output); var i,j,k:integer; Begin readln(i); k:=0; for j:=1 to i do if odd(j) then k:=k+j; writeln(k); End.

FOR循环举例(DOWNTO) PROGRAM exam(input,output); var i,j,k:integer; Begin readln(i); k:=0; for j:=i downto 1 do if odd(j) then k:=k+j; writeln(k); End.

FOR循环再举例(TO) PROGRAM exam(input,output); var c:char; Begin for c:=‘a’ to ’z’ do if (ord(‘z’)-ord(c)) mod 2=0 then writeln(c) End.

FOR 循环之注意事项 变量的值不允许直接或间接改变 初值和终值不能形成区间 循环结束后循环变量无确切定义

十二、三种循环的关系 1、WHILE循环与REPEAT循环相似 区别在于先判断和后判断。 2、它们与FOR循环相比更擅长 处理不太规则、不确定次数 的循环。 3、FOR循环运行次数明显,适合 规律性强的循环。

认识和重视死循环的使用

枚举和子界类型

一、 枚举类型 三、 IF语句 一般格式 (标示符表) (red,yellow,blue) 一、 枚举类型 三、 IF语句 一般格式 (标示符表) (red,yellow,blue) (Spring,Summer,Autumn,Winter) (Sun,Mon,Tue,Wed,Thu,Fri,Sat) 穷举所有值的方法来定义的。 值称为枚举元素或者枚举常量。 值是有序的,从0开始自左到右递增。 类型定义 TYPE Color=(red,yellow,blue); Season=(Spring,Summer,Autumn,Winter); Week=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);

三、 IF语句 一、 枚举类型 变量定义 VAR col:color; ss:season; wd:week; 合并形式 VAR 一、 枚举类型 三、 IF语句 变量定义 VAR col:color; ss:season; wd:week; 合并形式 VAR Col:(red,yellow,blue); Ss:(Spring,Summer,Autumn,Winter); Wd:(Sun,Mon,Tue,Wed,Thu,Fri,Sat); (不提倡使用)

三、 IF语句 例、 program exam(output); var wd: (Sun,Mon,Tue,Wed,Thu,Fri,Sat); begin for wd:=Sun to Sat do case wd of Sun:writeln(‘星期日’); Mon:writeln(‘星期一’); Tue:writeln(‘星期二’); Wed:writeln(‘星期三’); Thu:writeln(‘星期四’); Fri:writeln(‘星期五’); Sat:writeln(‘星期六’); end; end.

枚举类型的注意事项 3、变量说明中,同一类型不能以新类型出现两次 4、属于顺序类型,相应的操作都可以进行 1、值只能是标识符,数值和字符常量不可以(布尔可以) 2、同层类型定义中,一个值不允许出现在两个枚举类型中 3、变量说明中,同一类型不能以新类型出现两次 4、属于顺序类型,相应的操作都可以进行 5、不支持算术和逻辑运算 6、不能用read和write直接读写枚举类型的值 7、可以用做循环控制变量

错误举例 2、type p=(red,green,blue); q=(black,red,white); 3、var col: (red,yellow,blue); cou: (red,yellow,blue); 4、赋值相容 关系运算 前驱后继 (注意例外情况) 6、用if或者case语句来判断

二、子界类型 三、 IF语句 一般格式 常量一。。常量二 (又称子域类型) 1900。。2000 常量一。。常量二 (又称子域类型) 1900。。2000 上界是2000,下界是1900,基类型是整型,值域为1900-2000。 不能为实型。 下界不能大于上界。 下界和上界也可以用常量表达式。 类型定义 TYPE Week=(Sun,Mon,Tue,Wed,Thu,Fri,Sat); Month=1..12; Letter=‘a’..’z’; WorkDay=Mon..Fri;

三、 IF语句 二、枚举类型 变量定义 VAR m:month; l:letter; w:workday; 合并形式 VAR l:’a’..’z’; w:Mon..Fri; (不提倡使用)

三、 IF语句 将一个十进制数转换为8进制数,精确到10位小数点。 0.27 × 8 ------- 2.16 × 8 1.28 × 8 × 8 ------- 2.16 × 8 1.28 × 8 2.24 1.92

三、 IF语句 program exam(input,output); const max=10; type len=1..max;int=0..8;digit=‘0’..’8’; var num:real;l:len;i:int;d:digit; begin readln(num); write(‘0.’); for l:=1 to max do i:=trunc(num*8); d:=chr(ord(‘0’)+i); write(d); num:=num*8-I; end; end.

子界类型的特点 3、函数的使用同1,但值域可以突破自变量范围 4、read和write的使用依赖基类型 1、适用于基类型的运算也适用该类型的子界 2、赋值越界则程序出错。 3、函数的使用同1,但值域可以突破自变量范围 4、read和write的使用依赖基类型 5、基类型不允许是子界方式 Var max:900..1000;min:10..20; data:min..max; 6、子界类型可以节省空间,可以自动核查值域

三、类型相容 三、 IF语句 1、类型相同 var a,b:1..10; type data=1..100; var d1:data;d2:data; type data=1..100; ran=data; var d1:data;d2:ran; 2、变量的类型是另一个变量类型的子界 3、两个变量类型都是同一类型的子界

四、类型相容 三、 IF语句 1、类型相同 2、子界类型之间,不越界 3、实型与整型

谢谢大家!