资源描述:
《广东省汕头市金山中学pascal教程06-高一奥林匹克信息学系列教程(基础篇).》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、流程图表示:这个程序将输出50以内的一个等差数列:14710131619第戈礫基滓语句(四丿§61hile语句其一般形式:WHILEv布尔表达式〉DOv语句〉;N-S图表不:条件循环体WHILE语句主要用于循环次数未知而乂需要循环的情况,它把循环和条件判断结介在一-起。执行hile语句时,先检查布尔表达式的值,当为真时,重复执行DO后面的语句,直到条件为假时才终止。若表达式的值从一开始为假,则DO后而的语句一次也不执行。【例】试运行下而程序。vari:longint;begini:=l;whilei<50dobeginwritein(i);i:二i+3;end;end.令DO后面的语
2、句(即循环体),应有修改WHILE后面的条件操作,否则会死循环。例如,上述程序,如果少了i:二i+3;这句,i永远都是1,程序将无限地运行下去。不小心出现死循环怎么办?按Ctrl+Break强制断程序运行。【例】输入一串字符,以'?'结束,输出其小写字母个数与数字个数。分析:输入字符包括字母('A','B',……,'Z','a','b',……,‘z'),数字('0',T','2',……,‘9')和其它字符……),我们只统计其的小写字母的个数和数字的个数。输入的字符用字符变量ch存放,用numl,iwm2分别表示字母个数和数字个数。一级算法:1将小写字母个数和数字个数清02读入字符ch
3、3hilechv>'?'dobegin31判断ch是小写字母或数字,并将相应个数加132读入下一个字符chend;4输出小写字母个数与数字个数二级求精:31判断ch是小写字母或数字,并将相应个数加1:ifch是小写字母(ch>=,a,)and(ch<=,z,)then小写字母个数加1elseifch是数字(ch>='()')and(chv='9‘)then数字个数加1程序:programs601;varch:char;{ch存放读入的字符}numl,num2:integer;{num1小写字母个数,num2数了个数}beginnuml:=0;{将小写字母个数计数器清0}num2:二0
4、;{将数字个数计数器清0}read(ch);{读入字符到ch}hilechv>'?'dobegin{循坏休内的语句不止一句,所以要用begin和end扌舌起}if(ch>='a')and(ch<=,z,)thennuml:=numl+1{注意不能加';'}elseif(ch>='0‘)and(chv='9‘)thennum2:=num2+1;read(ch);{读入卜•一个字符到ch}end;ritclnnumberofletter:numl);{输】屮[小写字母个数}riteln(*numberofdigit:,,num2);{输出数字个数}end在上面的程序,有两个读字符ch的语
5、句,这是必要的。如果没有第一个读ch的语句,在hile语句头部的布尔表达式ch<>,7,就无法确定ch的值。如果没有笫二个读【例】输入一串字符,以'?'结束,输出其小写字母个数与数字个数。分析:输入字符包括字母('A','B',……,'Z','a','b',……,‘z'),数字('0',T','2',……,‘9')和其它字符……),我们只统计其的小写字母的个数和数字的个数。输入的字符用字符变量ch存放,用numl,iwm2分别表示字母个数和数字个数。一级算法:1将小写字母个数和数字个数清02读入字符ch3hilechv>'?'dobegin31判断ch是小写字母或数字,并将相应个数加
6、132读入下一个字符chend;4输出小写字母个数与数字个数二级求精:31判断ch是小写字母或数字,并将相应个数加1:ifch是小写字母(ch>=,a,)and(ch<=,z,)then小写字母个数加1elseifch是数字(ch>='()')and(chv='9‘)then数字个数加1程序:programs601;varch:char;{ch存放读入的字符}numl,num2:integer;{num1小写字母个数,num2数了个数}beginnuml:=0;{将小写字母个数计数器清0}num2:二0;{将数字个数计数器清0}read(ch);{读入字符到ch}hilechv>'?
7、'dobegin{循坏休内的语句不止一句,所以要用begin和end扌舌起}if(ch>='a')and(ch<=,z,)thennuml:=numl+1{注意不能加';'}elseif(ch>='0‘)and(chv='9‘)thennum2:=num2+1;read(ch);{读入卜•一个字符到ch}end;ritclnnumberofletter:numl);{输】屮[小写字母个数}riteln(*numberofdigit:,,num2);{输出数