聪明人的游戏-Pascal编程探秘.ppt

上传人:xt****7 文档编号:16174462 上传时间:2020-09-21 格式:PPT 页数:124 大小:1.28MB
返回 下载 相关 举报
聪明人的游戏-Pascal编程探秘.ppt_第1页
第1页 / 共124页
聪明人的游戏-Pascal编程探秘.ppt_第2页
第2页 / 共124页
聪明人的游戏-Pascal编程探秘.ppt_第3页
第3页 / 共124页
点击查看更多>>
资源描述
聪明人的游戏,-Pascal编程探秘,Lesson 1,一起学单词:,begin 开始 end 结束 write 写入,第一题:31+25=?,如果我想让电脑来帮我算? 我该怎么告诉它呢?,begin 告诉电脑我要开始了 write(31+25) ; 写出31+25的答案 write(31-25) ; 写出31+25的答案 end. 告诉电脑我结束了,; 每一句结束用分号 . 整个程序结束用句号 write 输出语句,作用是输出括号中指定的内容。,小练习:31*25=?,电脑里的乘号和数学的不一样 电脑里是这样写的 * 数学里是这样写的 ,begin 告诉电脑我要开始了 write(31*25) ; 写出31*25的答案 end. 告诉电脑我结束了,小练习:31/25=?,如果我想在电脑的黑屏上打出的不仅仅是结果,而是整条算式呢?我又能怎么做?,第二题:在黑屏上显示:31+25=56 不仅仅帮我们算出结果,而且还显示整条算式。,begin write(31+25=,31+25) ; end., 单引号括起来的内容按原样输出,括住什么输出什么 没有单引号的电脑就会帮我们计算出结果! , 逗号的作用是分开每一项输出结果,小练习:输出 31*25=775,不要帮电脑计算哦!,begin write(31*25=,31*25) ; end.,Lesson 2,一起学单词:,writeln 写入并换行,一起来建金字塔,* * * *,* * * *,*,begin write(*) ; end.,金字塔可不是一天建成的!,* * * *,第一步:,*,begin writeln(*) ; writeln(*) ; writeln(*) ; writeln(*) ; end.,第二步:,* * * *,第三步:,* * * *,begin writeln(* :4) ; writeln(* :5) ; writeln(*:6) ; writeln(*:7) ; end.,:4 这是什么意思呢?,场宽:场宽表示输出的内容要用多少个 字符位显示。,如: writeln(34+25:8)中的8就是场宽,在输出时,会在59的左端留出6个空格。 writeln(34+25:8)中的8也是场宽,在输出时,会在34+25的左端留出 个空格。,你明白了吗?,小练习:如果要在屏幕上显示以下内容,怎么编写程序呢?,rooms two,begin writeln(rooms) ; writeln(two:5) ; end.,小练习:如果要在屏幕上显示以下内容,怎么编写程序呢?,liu xiang chinese 1983 29 years old,begin writeln(Liu Xiang) ; writeln(Chinese:11) ; writeln(1983:8) ; writeln(29 years old:18) ; end.,Lesson 3,大家一起来做题,复习单词:,begin 开始 end 结束 write 写入 writeln 写入并换行,(1) begin write(I am); write(9:3, years old) end.,1、看程序写结果,(2) begin write(7*9=); write(7*9 :5); writeln; writeln(8*9:10) end.,2、完善程序,让计算机显示如下图案: AAAAA AAA A,begin writeln(AAAAA:10); writeln (_); writeln(A:_) end.,3、编程,(1)食品店运来410千克鸡蛋,上午卖出152千克,下午卖出174千克,还剩多少千克?请编一个程序求出结果。,begin writeln(410-152-174); end.,(2)一个长方形,长10cm,宽为4cm,求出长方形的周长和面积。请列出算式哦! Tips:周长=2*(长+宽) 面积=长*宽,begin writeln(2*(10+4)=,2*(10+4); writeln(10*4=,10*4); end.,Lesson 4,神秘的编码,一起学单词:,ASCII ord 求出字符的ASCII 码 chr 求出ASCII 码对应的字符,ASCII码:在计算机中,用一种被称为ASCII码的编码表示每一个字符,这些字符包括英文字母、数字和其它一些符号。,部分字符的ASCII码,(字符的ASCII码是有一定规律的,你能从表中找规律吗?),求字符的ASCII码,利用ord函数,可求出字符的ASCII码。,(什么是“函数”?不用管它,会用就行了!),格式:ord(字符) 作用:求出字符的ASCII码。 例题:ord(D)的值是多少呢?,68,小练习:ord(2)的值是多少呢?,ord(d)的值是多少呢?,begin write (19); writeln(ord(b); end.,小练习:看程序写结果,一起来分析: 试分析语句writeln(ord(M)的执行过程。,1、先由ord函数求出M的ASCII码。 2、再由输出语句writeln显示出所得的字符编码。,begin write (20); writeln(ord(5); end.,小练习:大家一起来找茬,参考程序: begin write (ord(S)+5); write (ord(k)+5); write (ord(y)+5); end.,编一个程序,对英文名“Sky”进行加密,并输出密码。 加密的方法是:取姓名每一个字母的ASCII码再加5,作为该字母对应的密码。,(1)使用函数ord求出姓名中每个字母的ASCII码; (2)将所求得的每个字母的ASCII码加5再输出,就能生成一串数字化密码了。,求ASCII码对应的字符,利用chr函数,可求出ASCII码对应的字符。,格式:chr(ASCII码) 作用:求出ASCII码对应的字符。 例题:chr(78)的值是多少呢?,N,小练习:chr(57)的值是多少呢?,chr(103)的值是多少呢?,begin write (chr(66),chr(101); writeln(jing); end.,小练习:看程序写结果,(1) begin writeln(20); writeln(chr(X); end.,小练习:大家一起来找茬,(2) begin write(chr(57)+10); writeln(jing); end.,求前趋或后继字符,所有字符都是有顺序的,ASCII码小的字符排在前, ASCII码大的字符排在后。,求前趋字符的函数为pred(字符) 例:pred(B)的值是A。,求后继字符的函数为succ(字符) 例:succ(8)的值是9。,Lesson 5,一起学单词:,length 求出字符串中字符的个数,求出字符串中字符的个数,利用length函数,可求出字符串中字符的个数。,格式:length(字符串) 作用:求出字符串中字符的个数。 例题: length (IE)的值是多少呢?,2,小练习: length (12345)的值是多少呢?,length (ab d124)的值是多少呢?,比较字符串大小,比较字符串大小时,是按字符串中每个字符的ASCII码大小来比较,而不是以字符串长度来比较的。具体方法如下:,(1)当一个字符串恰好是另一个字符串前面的一部分时,字符多的字符串大。 如:字符串window 比wind 大。 (2)当两个字符串的第一个字符不同时,第一个字符的ASCII码大的字符串大。 如:字符串Big 比Aine 大。,(3)当两个字符串前面对应的位置的字符相同时,就比较后面同一位置的两个字符,字符ASCII码大的,字符串大。 如:字符串GOOD 比GOLD 大。,小练习: 比较下列字符串的大小,并在横线上填上“”、“”、“=”。,(1)MS-DOS_Windows (2)IE_Excel (3)FrontPage_Word (4)2000_Win (5)excel_exercise (6)Power_Page,begin write (length(Word); writeln(3+length(IE); end.,小练习:看程序写结果,begin writeln(3+length(“IE”); end.,小练习:大家一起来找茬,begin writeln(3+length(“IE”); end.,小练习:大家一起来找茬,字符串的连接运算,可以通过“+”将两个字符串连接为一个。(注意啦:它不是数值相加!),如语句writeln( a+ b )的显示结果为:ab,Lesson 6,一起学单词:,if 如果 then 那么 else 否则,条件语句,格式1:if 条件 then 语句 作用:当“条件”代表的事情为真时,执行then后的语句。 例如: (1)if 103 then writeln( Yes ); (2)if 100=101 then writeln(101 );,条件语句有两种格式:,begin if length(Excel)3 then writeln( Long); end.,小练习:看程序写结果,begin writeln(3:5); if ord (R) ST then writeln; end.,小练习:大家一起来找茬,begin if length (Powerpoint)3); end.,格式2:if 条件 then 语句1 else 语句2 作用:当“条件”代表的事情为真时,执行then后的语句,否则执行else后面的语句。 例如: (1)if 103 then writeln( Yes ) else writeln ( No ) ; (2)if 100=101 then writeln(101 ) else writeln(100 ) ;,条件语句有两种格式:,begin if chr(65)=A then writeln (A) else; writeln (OT) end.,小练习:大家一起来找茬,小练习:用Pascal语言来描述,(1)若A大于B则打印A的值。 If AB then write(A); (2)若A不大于B则打印B的值。 If AB then writeln(A) else writeln(B);,begin writeln(Big:) if ord (T) ord (D) then writeln(TD); end.,小练习:看程序写结果,begin if length(Gate)3 then writeln(3); if ord (G)80 then writeln(1) Else writeln(2) end.,小练习:请你来编程,编程序比较你和爸爸的姓名(用拼音表示),将大的显示在前面,小的显示在后面。,begin if BabaErzi then writeln( Baba Erzi) else writeln(Erzi Baba); end.,Lesson 6,一起学单词:,var 定义 integer 整型 real 实型 char 字符型 string 字符串型,变量和变量说明,数据类型: (1)integer 整型 数据范围:-32768 32767范围内的整数。 占用空间:2 例:0,25,-65 (2) real 实型 数据范围:2.9E-39 1.7E+38范围内的所有数,它包含了整型的范围。 占用空间:4 例:0,25,-65,0.18,554123356,-5.21,(3) char 字符型 数据范围:Pascal字符集中所有的字符。 占用空间:1 例:F、5、 作用是说明一个名为p的变量,它的类型是integer(整型)。整型变量只能存放-3276832767范围内的数。,(2)var m1,m2:string; 作用是说明m1和m2两个变量,它们的类型都是string(字符串型)。字符串变量可以存放不多于255个任意字符组成的字符串。 (3)var p:integer; m1,m2:string; 作用是说明p、m1、m2三个变量,其中 p的类型是integer(整型), m1、m2的类型都是string(字符串型)。,小练习: 指出下列哪些不能作为变量名使用,并说明理由。,Ty age pred s11 VAR END3 writeln d:= p_12 ord succ2 String integer x+y w8n,Lesson 7,赋值语句,赋值语句,格式: 变量:=表达式 作用: 执行时,首先计算表达式的值,再将结果存入变量中。 例题: 当执行S:=3+9时,会先计算出3+9的值12,再将12存入变量S中。,赋值语句和输出语句比较:,整型数 实型数 字符 字符串,关于变量赋值兼容问题:,整型变量 实型变量 字符变量 字符串变量,注意: (1)赋值号左边只能是一个变量; (2)一条赋值语句只能出现一次赋值号。,(1)win+3:=50 (2)x2:=years (变量x2已说明为integer类型) (3)ky:=windows dows (想取得除dows 以外的那部分字符) (4)p1:=p2:=ab (想将ab的值存入p1和p2两个变量中),小练习:大家一起来找茬,(1)var my:integer; begin my:=163; writeln(my); end.,小练习:看程序写结果,(2)var n,v:integer; begin n :=25; v :=5*n; writeln(VP=,v); end.,(3)var w1,w2:integer; begin writeln(Enter:); w1:=250; w2:=295; if w1w2 then writeln(w1) else writeln(w2) ; end.,(4 )var k1,k2,fn:integer; begin k1:=219; k2:=91; fn:=k1+2*k2; if fn100 then writeln(fn); end.,(2)求任意两个数的积。,小练习:完善程序,var ls:integer; h:real; begin ls:=2; h:=_; writeln(Gao,h); end.,(1)用一根长2米的木料,锯成同样长的4根,用来做凳腿,这个凳子的高大约是多少?,var x1,x2,chj:real; begin _; chj:=x1*x2; writeln(chj=,chj); end.,小练习:请你来编程,1、面包车准乘17人,5辆面包车最多可乘多少人?,2、小军每分钟走65米,从他家到学校大约要走8分钟,他家离学校有多远?,var a,b,c:integer; begin a :=17; b :=5; c:=a*b; writeln(zuiduo=,c); end.,Lesson 8,整除和求余,一起学单词:,div 整除 mod 求余,除法运算,运算符:/ (代替数学中的“”号) 结 果:两个任意数值相除的商(含小数) 例 如:11/4=2.75 15/5=3 3/5=0.6,整除运算,运算符:div 结 果:两个整型数除法的整数商 例 如:11 div 4=2 15 div 5=3 3 div 5=0,求余运算,运算符:mod 结 果:两个整型数除法的余数 例 如:11 mod 4=3 15 mod 5=0 3 mod 5=3,小练习:请你来算数,12*3+6= 54/9= 45 div 4= 98 mod 10= 30/3+2= (40 mod 3)+5= (120 div 12)+12= (52 div 10)*10= (78 div 10)*10+(78 mod 10)=,基 本 的 运 算,1、算术运算 分为: (1)+ - * 操作数类型:整数或实数 结果类型:整数或实数 (2)/ 操作数类型:整数或实数 结果类型:实数 (3)div mod 操作数类型:整数 结果类型:整数,2、关系运算 运算符包括:=、 、 、 = 操作数类型:整数、实数、字符、字符串等 结果类型:布尔型(boolean) 3、逻辑运算 运算符包括:and、or 、 not 操作数类型:布尔型(boolean) 结果类型:布尔型(boolean),优先级 表达式一般是按运算符的优先级别由高到低的次序进行计算的。 优先级别由高到低的次序是: 一元运算(负号、not) 乘除运算(* 、 / 、 div 、 mod 、 and) 加减运算( + 、 、or ) 关系运算( =、 、 、 = ),注意:括号可以改变优先级别。,例:输入一个两位数34,将它的个位和十位调换位置,生成一个新数。,分析: (1)输入一个两位数34; n:=34; (2)求出它的个位和十位; g:=n mod 10; s:=n div 10; (3)生成一个新的数。 m:=g*10+s;,var n,g,s,m:integer; begin n:=34; g:=n mod 10; s:=n div 10; m:=g*10+s; writeln(m); end.,小练习: 输入一个两位数34,求出它的个位和十位之和。,Lesson 9,输入语句,一起学单词:,read 从键盘输入 readln 从键盘输入并换行,例:输入一个两位数34,将它的个位和十位调换位置,生成一个新数。,提问:如果要任意输入一个两位数,怎么办呢?,var n,g,s,m:integer; begin n:=34; g:=n mod 10; s:=n div 10; m:=g*10+s; writeln(m); end.,var n,g,s,m:integer; begin readln(n); g:=n mod 10; s:=n div 10; m:=g*10+s; writeln(m); end.,输入语句的几种格式:,格式1:read(变量表) 从键盘输入数据 注意: (1)其中变量表可以是单个变量,也可以是一串逗号分隔开的变量标识符。 (2)程序运行后,从键盘输入的数据必须是常量,且输入的数据类型一定要与变量类型保持一致。,例: (1)read(x); 执行该语句的时候,系统等待我们从键盘输入数据,如果键入: 6 执行结果是:变量x的值是6,为便于分析问题,简记为x=6 (2) read(a,b,c); 如果键入:3 5 8 执行结果是: a=3,b=5,c=8 注意:从键盘上输入数值型(实型或整型)数据时,两个数据之间用空格或回车键(不能用逗号)分隔,在最后一个数后面一定要击回车键 ,表示结束。,(3) read(a,b,c);其中a,b,c为字符型变量 如果键入:mnp 执行结果是: a=m,b= n,c= p, 注意:从键盘上输入字符型数据时,两个数据之间不能用空格或回车键分隔,因为系统默认空格或回车键也是字符。 比如上题若键入:m np 执行结果是: a=m,b= ,c= n,注意:当变量表中的变量为多个时,要求输入的相应数据个数不能少于变量的个数。 如果输入的数据个数少于变量个数时,系统仍处于等待状态,接着输入的数据无论是换行输入还是不换行输入,都是有效的。 如果输入的相应数据个数多于变量的个数,系统是允许的,但是多余的数据在这个read语句中不起作用。,格式2:readln(变量表)从键盘输入数据后换行 readln语句和read语句的功能基本相同。它们的区别是: 当输入的数据个数多于变量的个数时,这两条语句的处理不同:执行read后,如果后面不再有输入语句,多余的数据就被忽略;如果后面还有输入语句,多余的数据就被下一个read或readln语句所读入。 格式3:readln 换行,例1: (1) read(a); read(b,c,d,e); read(f,g); (2) readln(a); readln(b,c,d,e); readln(f,g); 如果为两组语句输入相同的数据: 1 2 3 4 5 6 8 9 则执行结果分别是: a=? b=? c=? d=? e=? f=? g=?,例2: readln(x); readln; readln(y,z); 如果为两组语句输入相同的数据: 5.2 9.3 6.1 7.4 8.0 2.8 则执行结果分别是: x=? y=? z=?,小练习:看程序写结果,(1) var a,b,c,d,e,f:integer; begin read(a,b,c); d:=a+b; e:=b+c; f:=d+e; writeln(d=, d, ,e=, e); writeln(f=, f); end. 输入:2 3 5,(2) var ch:char; begin read(ch); write (ch , ); writeln(ord(ch); end. 输入:a,(3) var a,b:integer; begin read(a,b); writeln(a*a:8); writeln(b*b:8); end. 输入:6 5,Lesson 10,单场宽与双场宽,场宽:场宽表示输出的内容要用多少个字符位显示。 格式:输出项:场宽,如: writeln(34+25:8)中的8是场宽,在输出时,会在59的左端留出6个空格。 writeln(34+25:8)中的8也是场宽,在输出时,会在34+25的左端留出3个空格。,小复习:,新知识:,双场宽:用来定义实数型数据的输出格式。 格 式:输出项:总场宽:小数位数 其中总场宽表示输出实数型的总列数,包括符号位、整数部分、小数点、小数部分; 小数位数表示小数部分所占的列数。 显然,总场宽小数位数。,如: writeln(-110.1194:9:3); 输出结果为:-110.119 (注意: 表示一个空格) 此例的输出项是实型数-110.1194,有4位小数,由于双场宽定义中只要求3位小数,所以在输出时“四舍五入”,舍去了第4位小数“4”。屏幕上显示的是-110.119,但计算机的内存中仍然是-110.1194.,那么,你猜猜writeln(-110.1195:9:3);的输出结果会是多少呢? 输出结果是:-110.120,你猜对了吗?,Lesson 11,Pascal标准函数,1、前趋函数 pred(x) :求x的前一个数。 如:pred(B)的值是A。 2、后继函数 succ(x) :求x的后一个数。 如:succ(8)的值是9。 3、字符函数 chr(x):求ASCII码为X的字符 如:chr(78)的值是N 4、序数函数 ord(ch):求出字符ch的ASCII码。 如:ord(D)的值是68 5、字符串长度函数 length(st):求出字符串中字符的个数。 如: length (IE)的值是2,小复习:,新知识:,一、数学函数 1、绝对值函数 abs(x) 作用:求x的绝对值。 举例:abs(-4)= 4 abs(-4.3)=4.3 abs(0)=0 abs(4)= 4 abs(4.3)=4.3 2、平方函数 sqr(x) 作用:求x的平方。 举例:sqr(4)=16 sqr(-4)=16 sqr(0)=0 3、平方根函数 sqrt(x) 作用:求x的平方根。 举例:sqrt(4)=2 sqrt(0)=0,二、转换函数 1、截尾函数 trunc (x) 作用:截取x的整数部分 。 举例:trunc(-2.88)=-2 trunc(2.88)=2 2、舍入函数 round (x) 作用:求x四舍五入,得整数 。(四舍五入是指绝对值的四舍五入。) 举例:round(-4.3)=-4 round(4.3)=4 round(-4.7)=-5 round(4.5)=5 3、序号函数 ord (x) 作用:求x的ASCII 码。 举例:ord(A)=65 ord(false)=0 ord(true)=1 4、字符函数 chr (x) 作用:求ASCII码为x的字符 。 举例:chr(66)=B,三、顺序函数 1、前趋函数 pred(x) 作用:求x的前一个数。 举例:pred(2000)= 1999 pred(x)=w 2、后继函数 succ(x) 作用:求x的后一个数。 举例:succ(2000)=2001 succ(x)=y,四、逻辑函数 奇数函数 odd(x) 作用:检测x是否为奇数。 举例:odd(1000)= false odd(7)= true,Lesson 12,分情况语句,一起学单词:,case 情况 Of 的,例1:输入任意一个1-5之间的阿拉伯数字,让计算机输出它的英文单词。,var num:byte; begin readln(num); case num of 1:writeln(one); 2:writeln(two); 3:writeln(three); 4:writeln(four); 5:writeln(five); end; end.,case 表达式 of 常数表1:语句1; 常数表2:语句2; 常数表3:语句3; 常数表n:语句n; end;,Case语句格式1:,其中case和of之间的表达式必须是有序类型(整型,字符型,布尔型),不能使实型。常数表是用逗号分隔的常数。,case 表达式 of 常数表1:语句1; 常数表2:语句2; 常数表3:语句3; 常数表n:语句n; else 语句n+1; end;,Case语句格式2:,其中case和of之间的表达式必须是有序类型(整型,字符型,布尔型),不能使实型。常数表是用逗号分隔的常数。,例1:输入任意一个1-5之间的阿拉伯数字,让计算机输出它的英文单词,如果输入其它阿拉伯数字,就让计算机输出“repeat”。,var num:byte; begin readln(num); case num of 1:writeln(one); 2:writeln(two); 3:writeln(three); 4:writeln(four); 5:writeln(five); else writeln(repeat); end; end.,例2:输入年份和月份,让计算机输出该月份的天数。,var year,month,days:byte; begin readln(year,month); case month of 1,3,5,7,8,10,12:days:=31; 4,6,9,11:days:=30; 2:? end; end.,2月份怎么办呢?2月的天数是需要判断的?,If 闰年 then days:=29 else days:=28;,闰年:指年号能被4整除,但是不能被100整除 ,或者能被400整除的年。 year mod 4=0但是year mod 1000或者year mod 400=0,逻辑运算符:and or not,逻辑表达式:将几个条件用逻辑运算符连接的表达式,就是逻辑表达式。,var year,month,days:byte; begin readln(year,month); case month of 1,3,5,7,8,10,12:days:=31; 4,6,9,11:days:=30; 2: if (year mod 4=0) and (year mod 1000) or (year mod 400=0) then days:=29 else days:=28; end; end.,Lesson 13,随机函数,var a,b,c,d:integer; begin randomize; a:=trunc(100*random); b:=trunc(100*random); c:=a+b; write(a,+,b,=); readln(d); if d=c then writeln(Right!) else writeln(Wrong!) end.,计算机要出一道两位数以内的加法题来考考你,看你能不能正确回答.运行以下程序,你就可以开始答题了!,随机函数 random,意义:产生大于等于0,小于1的数 即0,1)范围内的随机小数. 说明: 如果想每次运行都可能产生不同的数,请在使用这个函数前加一个randomize(随机种子).,1 、产生P-Q(PQ)之间的随机整数(包括A,B) 公式: P+trunc(Q-P+1)*random) 例如: 50-80范围内的整数 50+trunc(31*random),小练习: 1 、要随机产生一系列520范围内的整数,可用的表达式是( )。 A、trunc(5+15*random) B、16+trunc(5*random) C、5+trunc(15*random) D、5+trunc(16*random) 2 、写出产生下列范围随机数的表达式. (1)三位以内的整数 0+trunc(1000*random) (2)3-12范围内的整数 3+trunc(10*random) (3)50-100范围内的整数 50+trunc(51*random) (4)四位整数 1000+trunc(9000*random),公式: P+trunc(Q-P+1)*random),2 、产生P-Q(PQ)之间的随机数(不包括A,B) 公式: P+(Q-P)*random 例如: 100-150范围内的数 100+50*random,小练习: 1 、要随机产生一系列520范围内的数,可用的表达式是( )。 A、5+15*random B、16+5*random C、5+trunc(15*random) D、5+trunc(16*random) 2 、写出产生下列范围随机数的表达式. (1)三位以内的数 999*random (2)3-12范围内的数 3+9*random (3)50-80范围内的数 50+30*random,(1)产生两个100-500之间的随机整数,输出较大的一个. var d1,d2:integer; begin randomize; d1:=_; d2:=100+round(400*random); if _ then writeln(d1) else writeln(d2) ; end.,小练习:根据题意完成程序,(2)根据学生的成绩给予相应的等级,对应关系如下:A:90-100 B:80-89 C:60-79 D:60分以下 var sc:integer;ch:char; begin readln(sc); case _ of 10,9:ch:=A; 8:ch:=B; 6,7:ch:=c; else _; end; writeln(sc,ch) ; end.,公式: P+trunc(Q-P+1)*random) P+(Q-P)*random,Lesson 14,字符串处理函数及过程,字符串用于存放批量字符的一串字符。 Var a:string; 或Var a:stringn; A:=hello 其中正整数n(1=n=255)表示构成字符串的字符最多个数。 若字符串说明中没有指定长度,缺省值为255。,字符串,1 、 length(st) 意义:求字符串st的长度 练习: l:=length(pascal) l=6 l:= length(23+54) l=5 2 、 pos(st1,st) 意义:查找子串st1在st中的起始位置 练习: a:=pos(in,windows) a=2 a:=pos(+,1+2=) a=2 3 、 copy(st,p,n) 意义:提取字符串st中从第p个起的连续n个字符 说明:若p大于st的长度,则返回空串;否则,若p+n大于st的长度,则截断。 练习: a:=copy(windows,4,3) a=,字符串处理函数,1 、 val(st,a,code) 意义:将字符串st转换为数值a,code存放返回的错误代码 练习: val(359,a,c1) 结果:a=359 val(12.4e,b,c2) 结果:b=12.4 val(rtv,a,c1) 结果: 2 、 str(v,st) 意义:将数值v转换为字符串st 练习: str(128,s1) 结果:s1=128 str(25.3:8:2,s2) 结果:s2= 25.30,字符串处理过程,3 、 insert(st1,st2,n) 意义:将字符串st1中插入到st2中的第n个位置 练习: st2=win insert(dows,st2,4) 结果:st2= windows st2=win insert(dows,st2,3) 结果:st2= widowsn 4 、 delete(st,n,m) 意义:删除字符串st中第n个位置起的m个字符 练习: st=Excel delete(st,4,2) 结果:st= Exc,练习:,1、写出下列表达式的值。 (1)length(my name is LiFeng) (2)copy(nanhai,4,3)+nan (3)pos(,Hello,Mike) (4)pos(new,We have 6 new lights.),2、写出下列程序的运算结果。,(1)var xx,x1,x2:string; w1,w2,c:integer; begin xx:=1234567890; x1:=copy(xx,2,3); x2:=copy(xx,6,2); val(x1,w1,c;); val(x2,w2,c;); writeln(w1+w2); end.,(2)var x,y,z:real; xs,ms:string; begin readln(x); z:=x*x; str(z:0:2,ms); str(x:0:2,xs); ms:=xs+*+xs+=+ms; writeln(ms); end. (运行时输入12),(3)var v,a1,a2:longint; s,s1,s2:string; c,ln,ln1,c:integer; begin readln(v); str(v,s); ln:=length(s); ln1:=ln div 2; s1:=copy(s,1,ln1); s2:=copy(s,ln1+1,ln-ln1); val(s1,a1,c); val(s2,a2,c); if a1a2 then writeln(a2,-,a1,=,a2-a1); else writeln(a1,-,a2,=,a1-a2); end. (运行时输入5634857),Lesson 15,循环语句,请根据以下的运行结果编写程序。 1 2 3 4 5,begin writeln(1); writeln(2); writeln(3); writeln(4); writeln(5); end.,参考程序:,一、计数循环语句(for循环),细心想: 如果我们用同样的方法输出1-50或更大的数值,方便吗?为什么?,递增计数循环语句 格式: for 循环变量 := 初值 to 终值 do 循环体;,循环,递增到,做,例1: for i:=1 to 5 do write(A); 运行结果: AAAAA,2、循环体共执行了多少次?怎样算出来的?,1、语句中,循环体是什么?,读法:循环变量i从1递增到5,循环体write(A)共执行5次, 每次都输出字符A,write(A),5,思考:,请你运用计数循环的知识编写程序,输出以下的运行结果。 1 2 3 4 5,参考程序:,试一试,var i:integer; begin for i:=1 to 5 do writeln(i); end.,例2: for j:=1 to 5 do writeln(j) ;,运行结果,1,2,3,4,每次循环体执行都输出变量 j 的值。,想一想:语句中循环体是什么?循环体是怎样执行的?,5,我们都能做,请试一试,1、写出下列程序的运行结果。,运行结果是:,运行结果是:,2 1,1、下列的语句,写对的打,写错的打,并说说错在哪里。 (1)for j:=1 to 5.3 do write(j); ( ) (2)for i:=1.5 to 5.5 do write(i); ( ) (3)for x:=G to M do writeln(x); ( ) (3)for j:=A to 6 do write(j); ( ) (4)for k:=2 to 2 do writeln(*); ( ) 2、下面的说法,对的打,错的打。 (1)for i:=1 to 5 do i:=i*2;这个循环语句可以正常循环。 ( ) (2)程序段for i:=3 to 4 do write(i);的运行结果是34。 ( ) (3)程序段for i:=4 to 3 do write(i);的运行结果是43。 ( ),小练习:,例3: for j:=1 to 4 do begin s:=j*2+1; write(s:2); end;,思考: 程序段中,循环体是什么?循环 体是怎样执行的,运行结果是( )。,运行结果:,综合练习,1、写出下列程序的运行结果。,运行结果:,运行结果:,A B C,综合练习,1、写出下列程序的运行结果。,运行结果:,46,2、根据题目的要求,完善程序。(拓展题) 木匠李师傅要做12张大小不一的长方形桌子,自己手动去计算木板的面积比较麻烦,他想请你帮他设计一个程序,算一算木板的总面积。 【参考程序】 var a,b,s,zs:real; i:integer; begin zs:=0; for i:=1 to do begin readln( ); s:=a*b; zs:=zs+ ; end; writeln(zs:0:2); end.,3、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。(拓展题),12,a,b,s,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!