PASCAL语言程序设计(7)

2019-04-16 00:40

2.字符串可以和数组一样操作。如设a:='nabcdeg'; 则:a[1]:='e';a[3]:='f';writeln(a); 或:for i:=1 to length(a) do write(a[i]);都是合法的。

3.因为从键盘一次只能连续输入127个字符,所以较长字符串的输入一般都是采用文件输入的方式。

4.要严格区分数字字符、数字字符串与数字的不同,它们之间可以相互转化。如:'4'<>4;'1326'<>1326;再如:现设var a:char; i:integer;若有 a:='4';i:=ord(a)-48; 则writeln(i)这时输出i的值将会是数字4。

5.字符串大小的比较。 '123'='123'的值为TRUE,'12345'>'12325'的值为TRUE,'12345'>'1234'的值为TRUE, '456'<'123456'的值为FALSE。

例4-3 输入5个学生的姓名,然后反序输出每个学生的姓名,姓名位于一行,姓名之间以一个空格隔开。

【样例输入】

lihua zhaoping zhangsan zhouyu qianwen 【样例输出】

qianwen zhouyu zhangsan zhaoping lihua 【参考程序】 program aa;

var a:array[1..10] of string[8]; i,n,t:integer; ch:string[8]; st:string; begin n:=5;

read(st); //输入5个学生姓名组成的字符串 for i:=1 to n-1 do //先分离出来前n-1个姓名 begin

t:=pos(' ',st); //寻找第一个空格的位置赋值为t

a[i]:=copy(st,1,t-1); //分离出来前t-1字符作为第i个名字 delete(st,1,t); //删除前t个字符 end;

a[n]:=st; //将剩下的字符串作为最后一个名字

for i:=n downto 2 do write(a[i],' '); //输出结果 writeln(a[1]); end.

第三节 字符串应用举例

例4-4 从键盘上输入一串字符(可能含数字、小写字母),以#作为输入结束标志。 编程完成:

统计输入字符中每个小写字母出现的次数(没有出现的不输出)。 【样例输入】 2bcdaab33wycc# 【样例输出】 a 2 b 2 c 3 d 1 w 1 y 1

【参考程序】 program aa;

31 / 53

var

ch:char;

a:array['a'..'z'] of integer; begin

fillchar(a,sizeof(a),0); read(ch);

while ch<>'#' do begin

if (ch>='a') and (ch<='z') then a[ch]:=a[ch]+1; read(ch); end;

for ch:='a' to 'z' do

if a[ch]>0 then writeln(ch,' ',a[ch]); end.

例4-5 编写一个程序,统计从键盘输入的n(<200)个英文单词中以c(小写)开头的单词,并输出个数。

【样例输入】 4 an cat bee cow

【样例输出】 cat cow 2

【参考程序】 program aa; var

n,i,k:integer;

a:array[1..200] of string; begin

readln(n);

for i:=1 to n do readln(a[i]); for i:=1 to n do

if a[i,1]='c' then begin writeln(a[i]); inc(k); end; writeln(k); end.

例4-6 编程完成30000以内的正整数的+、-、*、/一种运算,只含一个运算符号。 【样例输入】 130*100

【样例输出】 13000

【参考程序】 program aa; var

ch:char; st:string;

a,b,c,n,i:longint; begin

32 / 53

readln(st);

for i:=1 to length(st) do

if st[i] in ['*','/','+','-'] then begin n:=i; ch:=st[i]; break; end; n:=pos(ch,st);

val(copy(st,1,n-1),a,c);

val(copy(st,n+1,length(st)-n+1),b,c); case ch of

'+':writeln(a+b); '-':writeln(a-b); '*':writeln(a*b); '/':writeln(a/b:0:2); end; end.

例4-7 统计一个英文句子中有多少英文单词。假设句子中字符数小于80个,单词间用至少一个空格隔开(可以有多个空格),句子头部可以有多个空格,句子以‘$’作为结束标志。

【样例输入】□□□THIS□□IS□A□□GOOD□□□BOOK!$ 【样例输出】5 【参考程序】 program aa; var

ch:char;

a:array[1..80] of char; n,i:integer; begin n:=0; read(ch);

while ch=' ' do read(ch); while ch<>'$' do begin inc(n);

while (ch<>' ') and (ch<>'$') do read(ch); while ch=' ' do read(ch); end;

writeln(n); end.

习题

4-1 输入一串(<80个),且最后以“#”结束的字符,判断它们是否构成回文。回文打印“YES”,不是回文打印“NO”。

【样例输入】 //一行 abcdcba#

【样例输出】 //一行 YES

4-2 输入一串(<80个并大于5个),且最后以“#”结束的字符,然后倒序输出后四个字符,不包括“#”字符。

【样例输入】 abcdefgh# 【样例输出】

33 / 53

hgfe

4-3 输入一串(<80个),且最后以“#”结束的字符,然后输出它们对应的ASCII码,“#”字符的ASCII码不输出。

【样例输入】 abcd#

【样例输出】 //数字之间隔一空格,最后一个数字后面无空格 97 98 99 100

4-4 输入4个学生的姓名,并按输入的顺序进行输出前3个学生的姓名,姓名位于一行,姓名之间以一个空格隔开,最后无空格。

【样例输入】 //一行,姓名之间隔一空格,最后无空格 lihua zhaoping zhangsan zhouyu

【样例输出】 //一行,姓名之间隔一空格,最后无空格 lihua zhaoping zhangsan

4-5 输入一个字符串ST1和ST,将ST1插入到ST字符串第二个字符的位置上。两个字符串中间隔一空格,ST字符串长度都大于5。

【样例输入】 //一行,两个字符串之间隔一空格 abcefg sdfjs879098

【样例输出】 //一行,插入后的字符串 sabcefgdfjs879098

4-6 输入两个数字字符串(长度大于10),将每个数字字符串前五个字符取出来转换为数字后,输出它们的和。

【样例输入】 //两个数字串之间隔一空格 3434556476567 7868769898769

【样例输出】 //一行,两个数的和 113032

4-7 输入一个实数,转换为字符串的过程中保留两位小数。

【分析】str(a:0:2,st)的意思是:将实型数a转换为字符串的过程中保留两位小数。 【样例输入】 987.7655688 【样例输出】 987.77

4-8 完成计算器功能:完成30000以内的正整数加法运算。 【样例输入】 130+100

【样例输出】 230

4-9 删数问题

键盘输入一个正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。(N不超过240位)

【输入】两行,第一行:正整数n,第二行:正整数S。 【输出】n去掉的s个数字后组成的新的最小的正整数m。 【样例输入】 123006 2

【样例输出】1006

34 / 53

第五章 函数与过程 第一节 自定义函数

函数分为标准函数和自定义函数,标准函数由Free Pascal系统内部提供的函数,供用户编程时调用,如求绝对值函数abs(x),平方根函数sqrt(x)等,但它毕竟数量有限,用户可以根据自己需要,自行定义函数。

一、自定义函数的定义格式

Free Pascal自定义函数用function语句开始,每个自定义函数均由函数的首部和函数体组成。

定义格式如下:

Function 函数名(形参表):函数类型; //函数首部 说明部分; Begin //函数体 语句块;

函数名:=表达式; //函数运算结果通过函数名带出函数体 End; 二、说明

1.函数首部以保留字Function开头,其后的函数名必须与保留字之间有一个以上的空格。

2.函数名是对用户定义的一个函数标识,用于存放调用后的函数值,函数名与标识符的构成规则相同,并且它不能和其他标识符重名。

3.圆括号中的形参表是用逗号隔开的一个或多个形参名,形参名由用户自己决定,所有形参都必须同时说明类型,不同类型的说明之间用分号隔开。

例如:

Function B01(x,y:Real; m,n:integer):real;

形参即函数的自变量,其初值来源于函数的调用,只有在程序执行过程中调用了函数,形参才有可能得到具体的值并参与运算,求得函数值,可见形参表相当于变量说明,但应特别注意:此处只能使用类型标识符,而不能直接使用类型。

若函数没有自变量,则形参表可以缺省,称为无参函数。此时函数的定义形式为: Function 函数名:函数类型; //函数首部

4.函数的类型也就是函数值的类型,它由函数首部来说明,所求得的函数值通过函数名传送回调用程序,由此可见函数的作用一般是为了求得一个值。

5.函数体由说明与执行两部分组成。它的说明部分用来对函数体内所用的类型、常量、变量等进行说明,这些量只在本函数内有效,与函数体外的同名量无关,它的执行部分以BEGIN开始,以END结束(其后紧跟一个分号),中间为语句块,至少要有一条赋值语句,即:函数名:=表达式;

该操作把表达式的值赋给函数名,然后把这个值通过函数名带回调用它的程序中去。 注意:自定义函数只是定义了一个求值的模块,只有当一个语句中使用了这个函数时,这个模块才被调用执行。

6.函数的调用形式:变量:=函数名(实在参数表); 例5-1 求a!+b!+c!的值。(a,b,c<=10) 【样例输入】 6 7 3

【样例输出】 5766

【参考程序】

var a,b,c,s:integer;

35 / 53


PASCAL语言程序设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:金融衍生工具期末复习总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: