信息学初级班第九课一、复习,回顾1、循环while语句2、函数sqrt、trunc的应用3、6个关键词:while;odd;break;halt;sqrt;trunc4、作业讲解(1)1029题目描述求两个自然数M和N的最大公约数(M,N都在长整型范围内)输入输入一行,包括两个整数.输出输出只有一行(这意味着末尾有一个回车符号),包括1个整数。样例输入4560样例输出15vara,b,c:longint;beginread(a,b);ifabthenbeginc:=a;a:=b;b:=c;end;whileamodb0dobeginc:=amodb;a:=b;b:=c;end;writeln(b);end.(2)1028题目描述求两个整数M和N的最小公倍数。输入输入一行,包括两个整数.输出输出只有一行(这意味着末尾有一个回车符号),包括1个整数。样例输入4560样例输出180vara,b,c,a1,b1:longint;beginread(a,b);a1:=a;b1:=b;ifabthenbeginc:=a;a:=b;b:=c;end;whileamodb0dobeginc:=amodb;a:=b;b:=c;end;writeln(a1*b1divb);end.(3)1035题目描述编程求正整数M与N之间的所有素数的个数.(M=N)输入输入只有一行,包括2个整数M,N,之间用一个空格分开。输出输出只有一行(这意味着末尾有一个回车符号),包括1个整数。样例输入120样例输出8varn,k,m,i,s:longint;beginread(m,n);ifm2thenm:=2;s:=n-m+1;fork:=mtondofori:=2totrunc(sqrt(k))doifkmodi=0thenbegindec(s);//dec是递减1的意思,就是s:=s-1break;end;writeln(s);end.二、循环repeat语句1、格式:repeat语句1;语句2;⁞语句n;until布尔表达式;2、while与repeat的区别:while循环与repeat循环都是条件循环,while是先判断后执行的循环,当条件不成立时退出循环;repeat是先执行后判断的循环,当条件成立时退出循环。即repeat循环先执行语句1到语句n,然后对布尔表达式进行判断,当条件不成立时,重复执行语句1到语句n,直到布尔表达式条件成立时,退出循环,执行until语句下面的语句。3、例:1020题目描述编程求1+3+5+...+n输入:输入一行,只有一个整数n(1=n=9999)这里n为奇数。输出:输出只有一行样例输入99样例输出2500解法一:用次数循环for语句varn,i,s:longint;beginread(n);fori:=1tondoifodd(i)then//odd叫奇数函数,用于判定变量是否为奇数s:=s+i;writeln(s);end.解法二:用条件循环while语句vari,n,s:longint;beginread(n);i:=1;whilei=ndo//while只要当i=n条件成立循环一直持续,条件不成立循环退出。begins:=s+i;i:=i+2;end;writeln(s);end.解法三:用条件循环repeat语句vari,n,s:longint;beginread(n);i:=1;repeat//repeat重复执行循环,当in条件成立时循环退出。s:=s+i;i:=i+2;untilin;writeln(s);end.4、课堂练习:1053题目描述算算以‘.’结束的一串字符中含有多少个大写的英文字母。输入输入一串字符,以.结束输出输出一行,即这串字符中大写字母的个数。样例输入PRC,PRC,I’mfromChina.样例输出8varn:integer;c:char;beginrepeatread(c);if(c='A')and(c='Z')theninc(n);untileoln;//eoln为行结束函数writeln(n);end.三、字符串类型的应用1、部分字符串过程与函数操作类型作用返回值例子str(i,s)数值转换字符串过程将数值i转为字符串s字符串i:=1234;str(i,s);{s='1234'}pos(c,s)查找子串函数求字符串c在s中的位置整型s:='123.5';i:=pos('',s);{i的值为1}length(s)字符串测长函数求字符串s的长度整型s:='abcde';l:=length(s);{l的值为5}copy(s,i,n)求子串函数复制s中从i开始的n位字符串s:='123456789';s1:=copy(s,3,5);{s1的值是'34567'}+运算符将两个字符串连接起来字符串s1:='1234';s2:='5678';s:=s1+s2;{'12345678'}字符串类型是一种特殊的数组类型,s[i]代表字符串的第i位2、课堂练习:1071题目描述“扫描识别”你知道是怎么回事吧?它的意思就是:先用扫描仪把纸上的文字扫描成一个图片,再用识别软件把那个图片中的文字识别出来,最后生成一个文本文件。这对于需要把大量的纸稿录入成电子文档的人来说,当然是非常方便的。以现有的技术,扫描效果是比较理想的,但识别效果还不十分另人满意,经常会出现错误,尤其是当两个字形状特别接近的时候,而且,这种错误是很难用眼睛看出来的。我们的纸稿上有一个数字串,识别之后得到的字符串保存在输入文件中,这个串可能有识别错误。已知,可能出现的错误有如下几种:1、把数字0错误地识别为大写字母O;2、把数字1错误地识别为小写字母l;3、把数字2错误地识别为大写字母Z;4、把数字5错误地识别为大写字母S;5、把数字6错误地识别为小写字母b;6、把数字8错误地识别为大写字母B;7、把数字9错误地识别为小写字母q。你的改正方案是:如果字符串中出现了上述字母,请替换为原来的数字。最后把改正之后的数字串输出。输入只有一个字符串,表示识别后得到的字符串。串的长度不超过100。输出只有一个数字串,表示改正后的数字串。样例输入321lO88BqS样例输出3211088895vars:string;i:integer;beginread(s);fori:=1tolength(s)do//length是求字符串s长度的函数cases[i]of'O':write(0);'l':write(1);'Z':write(2);'S':write(5);'b':write(6);'B':write(8);'q':write(9);elsewrite(s[i]);end;writeln;end.四、课堂程序示例:1、1062题目描述在墙角堆放着一堆完全相同的正方体小木块,如下图所示:因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。输入只有一个整数n,表示这堆小木块的层数,已知1=n=100。输出只有一个整数,表示这堆小木块的总数量。样例输入5样例输出35vari,n:integer;y1,y2:longint;beginread(n);fori:=1tondobeginy1:=y1+i;y2:=y2+y1;end;writeln(y2);end.2、2284题目描述小X喜欢下棋。这天,小X对着一个长为N宽为M的矩形棋盘发呆,突然想到棋盘上不仅可以放棋子,还可以放多米诺骨牌。每个骨牌都是一个长为2宽为1的矩形,当然可以任意旋转。小X想知道在骨牌两两不重叠的前提下,这个棋盘上最多能放多少个骨牌,希望你帮帮他。输入第一行包含用一个空格隔开的两个整数N,M。输出第一行包含一个整数,表示该棋盘上最多能放的骨牌个数。样例输入23样例输出3varn,m:longint;beginread(n,m);writeln(n*mdiv2);end.五、本节课关键词:dec;eoln;length;copy;s[i]六、作业:1、1034提示:2、10423、10844、10855、给你一个序列字符串要求将单词反转输出dianshijijishidian提示:用copy函数i123…s:=s*i1*11*21*2*3…c:=c+s0+1*11*1+1*21+1*2+1*2*3…