第一课时集合与记录

发布 2023-11-12 21:40:05 阅读 1238

集合与记录。

集合。集合是一序列有共同性质或联系的数据组成的一个集体。如日常生活中所说的:

一个班的全体同学;一个书架上所有的书等。而在 pascal语言中,集合一般都是指一系列的数值或字符等数据,如:小于 10的正整数; 26个英语字母等。

集合也象常 /变量一样有自己的名字,即集合名,它是在程序头部象定义变量一样来定义的。

记录型数据类型是 pascal语言中做搜索问题中一定要用到的数据类型,所以,它在 pascal语言中占着非常重要的地位。学过数据库管理软件的人都知道,在数据库文件中,有一个非常重要的概念 —记录,例如:一个人的各门成绩,一个人的各种信息(姓名、性别等等),我们都把它们存放成一条记录而给予一个统一的名称。

一。集合的定义:

type 类型名=set of 基类型。

例如:type

num=set of char;

varn:num;或。var

n: set of char;

以下集合类型的定义是错误的:

typet1=set of integer;

t2=set of -30..-20;

t3=set of real;

二。集合的运算:

1、集合类型的数据可以进行赋值。

例如:var

a:set of 0..255;

begina:=[2,3,5,7];

2.集合的表示:

用一组方括号括号一组元素来表示,元素之间用逗号分隔。如:

[a,b,c,d]--有四个枚举量的集合。

['a','b','c','d']-有四个字符的集合。

[1..20]--包含了1到20中所有整数的集合。

[0]--只有一个元素0的单元素集。

空集 3.集合的运算:

(1)赋值(:=

ll:=[a'..c'];

(2)并(+)

[0..7]+[0..4]的值为[0..7]

(3)交(*)

[0..7]*[0..4]的值为[0..4]

(4)差(-)

[0..7]-[0..4]的值为[5..7]

(5)相等(=)

[0..7]=[0..4]的值为false

(6)不等(<>

[0..7]<>0..4]的值为true

(7)包含于(<=

[0..7]<=0..4]的值为false

(8)包含(>=

[0..7]>=0..4]的值为true

(9)成员存在于 (in):

1 in [0..4]的值为true

练习:1 in [1,2,3] 的值。

1 in [2,3,4] 的值。

1,2]=[1,2] 的值。

1,2]=[1,3] 的值。

1,2,3]>=1,2] 的值。

1,2]>=1,2,3] 的值。

解答。元素与集合之间可以进行“属于”运算,运算符为in,运算结果为布尔值。对于一个元素x和集合a,若x是a的元素,则称“x属于a”,表达式x in a的值为真;若x不是a的元素,则称“x不属于a”,表达式x in a的值为假。

例如:1 in [1,2,3] 的值为真。

1 in [2,3,4] 的值为假。

集合之间可以进行并、差、交三种集合运算:

(集合并)——产生一个包含两个集合元素的集合;

(集合差)——产生一个包含所有属于第一个集合,但不属于第二个集合的元素的集合;

(集合交)——产生一个只包含两个集合的公共元素的集合;例如:

集合之间可以进行“相等”和“包含”两种关系运算,运算结果为布尔值。

若两个集合的所有元素都相同,则这两个集合是相等的。

若集合b的所有元素都是集合a中的元素,则有a>=b,即b<=a。

例如:1,2]=[1,2] 的值为真。

1,2]=[1,3] 的值为假。

1,2,3]>=1,2] 的值为真。

1,2]>=1,2,3] 的值为假。

3.注意:(1)集合运算相当快,在程序中常用集合表达式来描述复杂的测试。如。

a)条件表达式: (ch='t') or (ch='t') or (ch='y') or (ch='y') 可用集合表达式表示为:

ch in ['t','t','y','y']

b)if (ch>=20) and (ch<=50) then ..

可写成:if ch in [20..50] then ..

(2)集合类型是一种使用简便,节省内存面又运算速度快的数据类型。

(3)turbo pascal规定集合的元素个数不超过256个(当实际问题所需的元素个数大于256时, 可采用布尔数组代替集合类型)。所以如下定义是错误的: var i:

set of integer;

(4)集合类型变量不能进行算术运算,了不允许用读/写语句直接输入/输出集合。 所以集合的建立:

a)要通过赋值语句实现;

b)或先初始化一个集合,然后通过并运算向集合中逐步加入各个元素。

(5)集合元素是无序的,所以ord,pred和succ函数不能用于集合类型的变量。

集合是具有共同性质的一组数据构成的整体,集合中的数据叫做集合元素,简称元素。例如,10以内的所有质数构成一个集合,它包括共4个元素,其共同性质是:是质数并且不大于10。

不包括任何元素的集合叫做空集。

集合有以下基本性质:

1、元素唯一性:集合中不存在重复的元素,即每个元素都是唯一的。

2、元素无序性:集合中的元素是没有排列顺序的。

pascal语言的集合类型有以下限制:

1、集合的元素必须是有序类型的数据。

2、集合的元素数目不能超过256个。

实例。例1:从键盘上输入10个数,添加到集合中,然后输出集合的全部元素。

vars:set of 0..255;

i,n:byte;

begins:=[

for i:=1 to 10 do begin

read(n);

s:=s+[n];

end;for i:=0 to 255 do

if i in s then write(i,'

end.例2:编写一个加密程序将一个英文句子加密后输出。加密译码规则为:

a、由键盘输入英文句子和密钥m(20<=m<=50)

b、将其中的英文字符都变为大写,用数字1..26分别代表'a'..z'并加上密钥m后输出。

c、将其中的空格用数字'0'输出。

d、其它符号则变成ascii序号加上100输出。

e、输出数字之间用空格分隔。

varst:string;

m,i:byte;

c:char;

beginwrite('input a sentence: '

readln(st);

repeat

write('input m: '

readln(m);

until m in [20..50];

for i:=1 to length(st) do

if st[i] in ['a'..z','a'..z'] then begin

c:=upcase(st[i]);

write(ord(c)-64+m,'

end else if st[i]='then write(0,'

else write(ord(st[i]+100,'

end.例3:用筛选法求2至100中的所有质数。

分析:筛选法是比较常用的求质数的算法之一,适用于求2到一个给定的上限n之间的全体质数,基本思想是:

1、设立一个2到n之间的全体整数的集合sieve,作为筛选的“原材料”

2、设立一个集合primes,用于存放筛选出来的质数,其初始状态为空。

3、i从集合sieve中最小的质数2开始。

4、先将i添加到primes中,然后将i的所有整倍数(包括i本身)从sieve中删除,此时sieve中剩下的最小元素x一定是与i紧邻的质数。

5、将i更新为x

6、重复执行第步,直到sieve中没有元素为止,此时primes中存放的就是筛选出来的2到n之间的全体质数。

constn=100;

varsieve,primes:set of 2..n;

p,d:byte;

beginsieve:=[2..n];

primes:=[

p:=1;repeat

repeat

p:=p+1;

until p in sieve;

primes:=primes+[p];

d:=p;repeat

sieve:=sieve-[d];

d:=d+p;

until d>n;

until sieve=

for d:=2 to n do

第一课时集合

一 集合。1 集合描述性定义为 某些指定的对象就成为一个集合,简称 集合中的每一个对象叫做这个集合的 2 集合中的元素属性具有 123 3 集合的表示法常用的有和韦恩图法三种。4 元素与集合是属于和的从属关系,若a是集合a的元素,记作5 集合与集合的关系用符号表示 6 子集 若集合a中都是集合b的元...

第一课时集合

知识能否忆起 一 元素与集合。1 集合中元素的三个特性。2 集合中元素与集合的关系 元素与集合之间的关系。有和两种,表示符号为和 3 常见集合的符号表示 4 集合的表示法。二 集合间的基本关系。三 集合的基本运算。小题能否全取 1 2012 大纲全国卷 已知集合a b c d 则。a abb cb ...

第一课时集合

教学目标 1 在具体情境中,使学生感受集合的思想,感知集合圈的产生过程。2 能借助直观图,利用集合的思想方法解决简单的实际问题,同时使学生在解决问题的过程中,进一步体会集合的思想,进而形成策略。3 渗透多种方法解决重叠问题的意识,培养学生善于观察 勤于思考的学习习惯。教学重点 让学生感知集合的思想,...