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

Slides:



Advertisements
Similar presentations
美丽的鹿城 —— 包头 包头简介 包头旅游景区 包头美食. 包 头, 中国内蒙古自治区第一大城市,又称鹿城、草原钢城。 随着包头钢铁(集团)有限责任公司和包头稀土研究院的建成与 发展,这里又被称作稀土之都。 包头稀土研究院 包 头位于内蒙古自治区中部,东与呼和浩特市相邻,西与巴彦 淖尔盟市连接 ,北与蒙古国接壤.
Advertisements

朗读全文,注意下列字词的读音。 少顷( shǎo ) 犬吠( fèi ) 呓语( yì ) 夫叱大儿声( chì ) 夫齁声起( hōu ) 意少舒 ( shāo ) 中间( jiàn ) 曳( yè )屋许许( hǔ )声 几欲先走( jī )
唐诗两首 与夏十二登岳阳楼 ——李白 登岳阳楼 ——杜甫.
第6章 应收应付款管理.
一天学会Free Pascal 制作者:ax_pokl.
青岛, 一座有故事的城市…… 刘瑞昌 青岛理工大学汽车与交通学院 2013年12月.
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
品读论语之四---- 巧言令色非君子.
引導者的角色 組別:第5組 4A1I0003 劉芷媛 4A1I0004 陳安琪 4A1I0014 陳佳瑩 4A1I0046 葉倢茹
搜索与回朔算法 搜索与回朔是计算机解题中常用的算法,很多无法根据某种确定的计算法则来求解的问题,可以利用搜索与回朔方法求解。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索的过程中,一旦发现原来的选择是错误的,就退回一步重新选择,然后再继续向前探索,如此反复进行,直到得到解或证明无解为止。
“缅怀先烈”之旅 班级:六年级 教者:贾瑞涛.
情緒與壓力管理─背部舒緩 指導老師:彭易璟 第六組組員:會資三乙 499A0047 謝宛霖 會資三乙 499A0019 吳汶諭
第一章 C语言概述 计算机公共教学部.
小组成员 杨云、王雯、曾明发 刘凤、祝会、陈丹凤.
指導老師:楊淑娥 組別:第一組 成員:劉怡萱4a0i0066 吳珮瑜4a0i0070 林秋如4a0i0075 陳婉婷4a0i0076
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
中国建筑钢结构施工企业诚信评价建设管理办法
第三章 企业资信评估 第一节 企业资信评估概述 一、企业资信评估的含义
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
图论算法 ---最大流问题 长沙市雅礼中学 朱 全 民.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
Chapter 4 流程控制.
基因分离规律习题课.
公司法(六) 股份有限公司 1.
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
第 二 课 程序组成、基本数据类型、表达式 我们以上一章练习题为例说明Pascal程序的结构形式:
第9章 运行时的存储组织 重点:符号表的内容、组织,过程调用实现, 难点:参数传递,过程说明语句代码结构,
第五章 数组.
一、单选题 1、 字符串“ababacbab”和字符串“abcba”的最长公共子串是( )。
第八章 符号表 符号表的作用: 一致性检查和作用域分析; 辅助代码生成..
第二章 Visual Basic语言基础.
第六章 結構型態 本書於2-2節已介紹若干基本資料型態,像是整數、實數、布林、字元及字串等,本章則針對一些進階的資料型態予以介紹,如陣列(Array)、記錄(Record)及集合(Set)。 6-1 陣列 6-2 動態物件變數與動態物件陣列 6-3 紀錄 6-4 集合.
第5章 编码.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
1、数组的概念 2、静态数组 3、动态数组 4、数组的基本操作 5、控件数组
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
递推算法 递推是一种重要的数学方法,在数学和计算机领域都有广泛应用。这种算法的特点是:一个问题的求解需要一系列的计算,在已知条件和所求问题之间总存在某种相互联系的关系。在计算时,可以找到前后过程间的数量关系,即递推。递推算法包括顺推和逆推。 递推算法的关键在于找到相邻数据项之间的关系,即递推关系,建立递推关系式。我们有时将递推算法看成一种特殊的迭代算法。
第四章 程序设计初步 顺序结构:赋值语句、输出语句
第六章 运行时存储空间的组织和管理 术语 本章内容 讨论一个活动记录中的数据布局 程序执行过程中,所有活动记录的组织方式 过程的活动
6 下标变量的中间代码生成 下标:数组;变量: 下标变量:即数组分量: 简单变量:id,其地址可查到;
程式撰寫流程.
编译原理课程设计.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
编译原理实践 5.给定语法的语法分析程序构造.
李元金 计算机与信息工程学院 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 1/
中间代码生成.
第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.
江西财经大学信息管理学院 《数据库应用》课程组2007
经典算法之 冒 泡 排 序.
第1章 绪论 2019/4/16.
第二章、第三章错题分析.
十六年前的回忆 四川省宜宾市农业街小学校 王明金.
第九章 运行时存储空间组织 网上教学系统: : 编译原理
农谚两则 江津区四牌坊小学王永平.
中五級電腦科 PASCAL檔案處理.
本节内容 Lua基本语法.
编译原理课程设计 2017年4月.
动态规划(五).
四 选择结构程序设计 厦大附中信息技术.
三 顺序结构程序设计 厦大附中信息技术.
PASCAL语言 吉林大学计算机科学与技术学院.
陳維魁 博士 儒林圖書公司 第六章 領域與範圍 陳維魁 博士 儒林圖書公司.
解题报告 七(5)班 严崟杰 03:20.
编译原理与实现 河北科技大学 信息科学与工程学院计算机系 杨奎河
Presentation transcript:

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

第六章 数组

三、 IF语句 一、一维数组 类型定义 TYPE 类型标识符=ARRAY〔下标类型〕OF 成分类型 下标类型 成分类型 规定数组类型分量的个数、分量的排列次序、下标的数据类型;下标数据类型应该是顺序类型的有穷集合,如字符型、布尔型、枚举和子界,但是整型和实型不可以,一般子界类型较多;下标类型一定要用方括号括起来。 成分类型 数组分量的数据类型,可以是简单类型,也可以是结构类型,但不应该为文件类型。

类型定义举例 变量定义举例 TYPE number=1..20; ax=(one,two); bx=(a,b,c); student=ARRAY[number] OF integer; ma=ARRAY[ax] OF real; na=ARRAY[bx] OF char; sw=ARRAY[boolean] OF ax; 变量定义举例 VAR a:number; b,c:student; d:ma; e:sw;

二、 数组元素 B[1] B[2] B[3] B[4] … B[20] 3 8 11 -23 … 1001

程序举例 Program ex(input,output); type number=1..10; student=array[number] of integer; var i:integer; num:student; begin for i:=1 to 10 do readln(num[i]); write(num[i]:4); end.

Var a,b,c:array[1..20] of integer; 提倡合并说明 数组注意事项 三、 IF语句 数组元素个数固定,不允许在执行中修改 Var a,b,c:array[1..20] of integer; 提倡合并说明 不允许整体操作;必须逐个处理分量 数组分量可以随机访问; 下标可以是合法表达式,但不能越界

三、 IF语句 引入数组的意义 减少了每个分量确定标识符的书写量 可以批量处理空间

程序举例 3 结束 9 5 18 2 开始

PROCEDURE sortofup ( VAR a:typeofa ) ; VAR i,r : integer ; flag : Boolean ; BEGIN flag := ture ; WHILE flag DO flag := false ; FOR i:=1 TO n-1 DO IF a[i] < a[i+1] THEN r := a[i] ; a[i] := a[i+1] ; a[i+1] := r ; flag:=ture END;

PROGRAM fup (input,output ) ; CONST n=100; TYPE typeofa=array[1..n] of integer; VAR k: integer ; b:typeofa; … …. BEGIN for k:=1 to n do readln(b[k]); sortofup(b); for k:=1 to n do write(b[k]); writeln; END;

例子中的几个问题 数组变量做参数类型必须一致 P112 6.2.4 1) 值参数与变量参数 变量之间直接赋值

三、 IF语句 三、二维数组 类型定义 TYPE 下标类型 成分类型 类型标识符=ARRAY[下标类型1] OF 联合规定数组类型分量的个数、分量的排列次序、下标的数据类型;下标数据类型应该是顺序类型的有穷集合,如字符型、布尔型、枚举和子界,但是整型和实型不可以,一般子界类型较多;下标类型一定要用方括号括起来;下标类型1和2可以不同。 成分类型 数组分量的数据类型,可以是简单类型,也可以是结构类型,但不应该为文件类型。

类型定义举例 变量定义举例 TYPE student=ARRAY[1..5] OF ARRAY[1..6] OF integer; TYPE student=ARRAY[1..5,1..6] OF integer; 变量定义举例 VAR a:student;

数组元素引用 a[1][1],a[1][2],a[1][3],a[1][4],a[1][5],a[1][6]; 。。。 。。。 a[5][1],a[5][2],a[5][3],a[5][4],a[5][5],a[5][6]; a[1,1],a[1,2],a[1,3],a[1,4],a[1,5],a[1,6]; a[2,1],a[2,2],a[2,3],a[2,4],a[2,5],a[2,6]; 。。。 。。。 a[5,1],a[5,2],a[5,3],a[5,4],a[5,5],a[5,6];

二维数组变量举例 11 12 13 14 15 16 21 22 23 24 25 26 31 32 33 34 35 36 41 42 43 44 45 46 51 52 53 54 55 56

程序举例

CONST m = 10 ; n = 20 ;p = 30 ;   TYPE atypematrix = ARRAY [ 1..m , 1..p ] OF real ; btypematrix = ARRAY [ 1..p , 1..n ] OF real ; ctypematrix = ARRAY [ 1..m , 1..n ] OF real ; PROCEDURE matrixproduct ( VAR a:atypematrix ; VAR b:btypematrix ; VAR c:ctypematrix ) ; VAR e : real ; i , j , k : integer ; BEGIN FOR i:=1 TO m DO FOR j:=1 TO n DO e := 0 ; FOR k:=1 TO p DO e := e + a[i,k] * b[k,j] ; c[i,j] := e END

三、 IF语句 四、多维数组 类型定义 TYPE 类型标识符=ARRAY[下标类型1] OF ARRAY[下标类型2] OF 下标类型2, 下标类型3] OF 成分类型

定义举例 TYPE student=ARRAY[1..5,1..6,1..3] OF integer; a[5,1,1],a[5,1,2],a[5,1,3] a[5,2,1],a[5,2,2],a[5,2,3] …… ……. a[5,6,1],a[5,6,2],a[5,6,3] VAR a:student; a[2,1,1],a[2,1,2],a[2,1,3] a[2,2,1],a[2,2,2],a[2,2,3] …… ……. a[2,6,1],a[2,6,2],a[2,6,3] a[1,1,1],a[1,1,2],a[1,1,3] a[1,2,1],a[1,2,2],a[1,2,3] …… ……. a[1,6,1],a[1,6,2],a[1,6,3]

三、 IF语句 五、紧缩数组 TYPE 1)牺牲时间换取空间的产物。 2)时间换取空间->空间换取时间 程序员的方便 类型标识符=PACKED ARRAY[下标类型] OF 成分类型 1)如果数组的成分是构造类型,则只有当该数组类型及成分类型均被指明为紧缩的,该存储才有效。 2)紧缩数组与非紧缩数组之间的整体赋值不可以,成员之间可以。(当然类型相同的情况下) 1)牺牲时间换取空间的产物。 2)时间换取空间->空间换取时间 程序员的方便 3)因此不提倡使用紧缩数组。

三、 IF语句 六、字符串 字符串变量 TYPE 串类型=PACKED ARRAY[下标类型] OF CHAR; 字符串的概念与字符串常量。用‘ ’括起来的一组字符序列。 可以进行常量定义。 CONST first=‘Chinese’ Write(first); write(‘chinese’); 字符串变量 TYPE 串类型=PACKED ARRAY[下标类型] OF CHAR; 1)等长的字符串可以直接赋值。不等长不可以。 var a,b:array[1..10] of char; a:=‘0123456789’; b:=a; 2)可以进行write()输出。如:write(a); 超过规定域宽则截断

三、 IF语句 六、字符串 1)不同长度之间的字符串变量或者常量之间不允许赋值操作。 3)标准PASCAL规定不允许用read语句直接读入字符串。如:var a:array[1..3] of char;read(a); 必须用for i:=1 to 3 do read(a[i]); 4)TURBO PASCAL规定可以用string[n]的形式来定义字符串,如:type a=string[10];等价于:a=array[1..10] of char;但是string方式支持read语句。 5)可以比较大小。实际是比较第一个不同的字符。 1)不同长度之间的字符串变量或者常量之间不允许赋值操作。 2)不同长度之间的字符串变量或者常量之间不允许比较大小。

Program aaa(input,output); Var letter:array[1..100] of char; I,j:0..100; ch:char; Begin i:=0; repeat read(ch); i:=i:+1; letter[i]:=ch; until ch=‘.’; j:=1; while(j<i) and (letter[j]=letter[i]) do begin j:=j+1; i:=i-1; end; write(letter); if j>=I then writeln(‘是回文’) else writeln(‘不是回文’); End.

Program aaa(input,output); Type county=string[10]; Var a:array[1..10] of county; temp:county; I,j:integer; Begin for i:=1 to 10 do begin readln(a[i]); end; for i:=1 to 9 do for j:=i+1 to 10 do if a[i]>a[j] then begin temp:=a[j]; a[j]:=a[i]; temp:=a[i]; writeln(a[i]); End.

http://WAM.4567.NET http://WAM.165.NET.CN