资源简介 (共24张PPT)Pascal程序的调试F9 编译Ctrl+F9 运行Alt+F5 查看结果PROGRAM ex43(input,output);VAR x, A, B, C, D : real ; i : integer ;BEGINA:=0 ; B:=1 ; C:=0 ;FOR i:=1 TO 10 DOBEGINread(x) ;A:=A+x ;B:=B*x ;C:=C+sqr(x)END ;D:=sqr(A) ;writeln(‘A=’, A:5:0 , ‘ B=’ , B:5:0 , ‘ C=’ , C:5:0 , ‘ D=’ , D:5:0 )END.PROGRAM ex44(input,output);VAR fac : real ; i , n : integer ;BEGINfac:=1 ;read(n) ;FOR i:=2 TO n DOfac:=fac*n ;writeln(n , ‘!=’, fac:10:3 )END.程序4.5 求菲波拉契数a0,a1,a2,…,a20a0=0a1=1a2=a0+a1a3=a1+a2…an=an-2+an-1PROGRAM fibo (input,output) ;VAR a0 , a1 , a2 , i : integer ;BEGINa0:=0 ; a1:=1 ;write( a0:5 , a1:5 );FOR i :=2 TO 20 DOBEGINa2:=a0+a1;write( a2 : 5 ) ;IF i MOD 5 = 4 THEN writeln ;a0:=a1 ; a1:=a2END;END.程序4.6 输入10个学生成绩,分别统计成绩在85~100分,60~85分和60分以下的分数段中的人数。PROGRAM count(input,output) ;VAR n1 , n2 , n3 , i : integer ; x : real ;BEGINn1:=0; n2:=0; n3:=0;FOR i :=1 TO 10 DOBEGINread( x ) ;IF x >=85 THEN n1:=n1+1ELSE IF x >=60 THEN n2:=n2+1ELSE n3:=n3+1END ;writeln( ‘ 85-100: ’ , n1 , ‘ 60-85: ’ , n2 , ‘ 0-60: ’ , n3)END.习题4.7 输入20个数,统计其中的正、负和零的个数IF x > 0THEN n1:=n1+1ELSE IF x < 0THEN n2:=n2+1ELSE n3:=n3+1程序4.7 输入10个数,求出其中的最大值、最小值。PROGRAM maxmin(input,output) ;VAR x , max , min : real ; i : integer ;BEGINread(x) ; max:=x ; min:=x ;FOR i :=2 TO 10 DOBEGINread(x) ;IF x>max THEN max:=xELSE IF xEND;writeln( ‘ max= ’ , max:5:0 , ‘ min= ’ , min:5:0 )END.作业:P874.64.74.84.104.124.13 max,min,ave习题4.6 利用下列公式计算并输出π的值PROGRAM ex46(input,output) ;VAR n : integer ; s : real ;BEGINs:=0 ;FOR i :=1 TO 10000 DOs:=s+1/(4*n-3)-1/(4*n-1) ;writeln(‘pi=’, 4*s)END.4 3 5 7 4n-3 4n-1π 1 1 1 1 1— = 1- — + — - — + —— - ——习题4.8 在1-500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数(选自《孙子算经》)PROGRAM ex48(input,output) ;VAR i : integer ;BEGINFOR i :=1 TO 500 DOIF (i MOD 3=2) AND (i MOD 5=3) AND (i MOD 7=2)THEN write(i:5) ;writelnEND.习题4.10 求100-999中水仙花数(若三位数abc,a3+b3+c3=abc,则称abc为水仙花数。PROGRAM ex410(input,output) ;VAR i , a , b , c : integer ;BEGINFOR i :=100 TO 999 DOBEGINa:=i DIV 100 ; b:=i DIV 10 MOD 10 ;c:=i MOD 10 ;IF a*a*a+b*b*b+c*c*c=i THEN write( i : 5 )END;writelnEND.打印九九乘法表VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 9 DOBEGINFOR j :=1 TO i DOwrite( i, ‘*’, j, ‘=’, i*j , ‘’:3) ;writelnEND ;END.用*号打印出如下图案****** ****************** ******VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案****** ****************** ******VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案 ****** ****** ****** ****** ****** VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 5-i ) ;FOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案****** ****** ****** ****** ******VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: i-1 ) ;FOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* ** *** **** *****VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO i DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* *** ***** ******* *********VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* ** *** **** *****VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 5-i ) ;FOR j :=1 TO i DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* *** ***** ******* *********VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 10-2*i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END.* *** ***** ******* *********VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 5-i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END. * *** ***** *** *VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 3 DOBEGINwrite( ‘’: 3-i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;FOR i :=2 DOWNTO 1 DOBEGINwrite( ‘’: 3-i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END.(共26张PPT)Pascal程序的调试F9 编译Ctrl+F9 运行Alt+F5 查看结果调试习题4.26 4.27的程序本次作业:P874.64.74.84.104.114.13 max,min,ave习题4.6 利用下列公式计算并输出π的值PROGRAM ex46(input,output) ;VAR n : integer ; s : real ;BEGINs:=0 ;FOR i :=1 TO 10000 DOs:=s+1/(4*n-3)-1/(4*n-1) ;writeln(‘pi=’, 4*s)END.4 3 5 7 4n-3 4n-1π 1 1 1 1 1— = 1- — + — - — +… +—— - ——习题4.7 输入20个数,统计其中的正、负和零的个数。PROGRAM ex47(input,output) ;VAR n1 , n2 , n3 , i : integer ; x : real ;BEGINn1:=0; n2:=0; n3:=0;FOR i :=1 TO 20 DOBEGINread( x ) ;IF x > 0THEN n1:=n1+1ELSE IF x = 0THEN n2:=n2+1ELSE n3:=n3+1END ;writeln( ‘ x>0 ’ , n1:5 , ‘ x=0 ’ , n2:5 , ‘ x<0 ’ , n3:5)END.习题4.8 在1-500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数(选自《孙子算经》)PROGRAM ex48(input,output) ;VAR i : integer ;BEGINFOR i :=1 TO 500 DOIF (i MOD 3=2) AND (i MOD 5=3) AND (i MOD 7=2)THEN write(i:5) ;writelnEND.习题4.10 求100-999中水仙花数(若三位数abc,a3+b3+c3=abc,则称abc为水仙花数。例如13+53+33=1+125+27=153,则称153为水仙花数)。PROGRAM ex410(input,output) ;VAR i , a , b , c : integer ;BEGINFOR i :=100 TO 999 DOBEGINa:=i DIV 100 ; b:=i DIV 10 MOD 10 ;c:=i MOD 10 ;IF a*a*a+b*b*b+c*c*c=i THEN write( i : 5 )END;writelnEND.习题4.11 求2-1000中的守形数(若某数的平方,其低位与该数本身相同,则称该数为守形数。例如25,252=625,625的低位25与原数相同,则称25为守形数。PROGRAM ex411(input,output) ;VAR i , j : integer ;BEGINFOR i :=2 TO 1000 DOBEGINj:=i*i ;IF (j MOD 10=i) OR (j MOD 100=i) OR(j MOD 1000=i) THEN write( i : 10)END;END.习题4.13 输入20个数,求出它们的最大值、最小值、平均值。PROGRAM ex413(input,output) ;VAR x , max , min , ave : real ; i : integer ;BEGINread(x) ; max:=x ; min:=x ; ave:=x ;FOR i :=2 TO 20 DOBEGINread(x) ;IF x>max THEN max:=xELSE IF xave:=ave + xEND;writeln( ‘ max= ’ , max:8:2 , ‘ min= ’ , min:8:2 , ‘ave=’ ,ave:8:2 )END.WHILE语句(当型循环)格式:WHILE 〈布尔表达式〉 DO〈循环体〉循环体真假布尔表达式例1:编一个程序,求1+2+3+…+100= PROGRAM while1(input,output) ;VAR i , sum : integer ;BEGINsum:=0 ; i:=1 ;WHILE i<=100 DOBEGINsum:=sum+i ;i:= i+1END;writeln( ‘ 1+2+3+…+100= ’, sum)END.例2:编一个程序,求1× 2 × 3 × … ×10= PROGRAM while2(input,output) ;VAR i : integer ; mul :real ;BEGINmul:=1 ; i:=1 ;WHILE i<=10 DOBEGINmul:=mul*i ;i:= i+1END ;writeln( ‘ 1× 2 × 3 × … ×10= ’, mul:10:0 )END.例3:求恰好使s=1+1/2+1/3+…+1/n大于10时n的值PROGRAM while3(input,output) ;VAR n : integer ; s : real ;BEGINs:=0.0 ; n:=0 ;WHILE s<=10 DOBEGINn:=n+1 ;s:= s+1/nEND;writeln( ‘ n= ’, n )END.例4:求1!+2!+…+10!的值PROGRAM while4(input,output) ;VAR n : integer ; s , t : real ;BEGINs:=0 ; t:=1 ; n:=1 ;WHILE n<=10 DOBEGINt:= t*n ;s:= s+t ;n:=n+1END;writeln( ‘ 1!+2!+…+10! = ’, s : 10 : 0 )END.例4.9:输入一串字符,以‘ ’结束,输出其中字母个数与数字个数。 (书本67)PROGRAM count(input,output) ;VAR num1 , num2 : integer ; ch :char ;BEGINnum1:=0 ; num2:=0 ;read(ch) ; write(ch) ;WHILE ch<>‘ ’ DOBEGINIF (ch>=‘a’) AND (ch<=‘z’)THEN num1:=num1+1ELSE IF (ch>=‘0’) AND (ch<=‘9’)THEN num2:=num2+1;read(ch) ; write(ch)END;writeln( ‘ number of letter: ’, num1) ;writeln( ‘ number of digit: ’, num2)END.例5:求1—100之间所有的素数(素数是大于1,且除1和它本身外,不能被任何其它整数所整除的整数)。PROGRAM sushu(input,output) ;VAR i , j : integer ;BEGINFOR i:=2 TO 100 DOBEGINj:=2 ;WHILE (j<=round (sqrt (i))) AND( i MOD j <> 0 ) DOj:=j+1 ;IF j > round(sqrt(i)) THEN write(i:5)END.习题4.20:输入两整数,求出它们的最大公约数和最小公倍数。思路1:用两数中较小的数作为因子去除两数,若均能除尽,表明它就是最大公约数。否则将它减1以后再去除,直到除尽为止。最小公倍数可由两数的乘积除以最大公约数得到。PROGRAM ex420(input,output) ;VAR m , n , gys , gbs : integer ;BEGINread(m , n) ; writeln( ‘m=’, m , ‘n=’, n ) ;IF mWHILE (m MOD gys<>0 ) OR (n MOD gys<>0 ) DOgys:=gys-1 ;gbs:=m*n DIV gys ;writeln(‘ gys=’, gys , ‘gbs=’ , gbs)END.习题4.20:输入两整数,求出它们的最大公约数和最小公倍数。思路2:辗转相除法分别用m, n, r表示被除数、除数、余数①求m/n的余数r②若r=0,则n为最大公约数。若r<>0,则执行③③将n的值放在m中,将r的值放在n中。④返回重新执行①PROGRAM ex420(input,output) ;VAR m , n , r , gys , gbs : integer ;BEGINread(m , n) ; writeln( ‘m=’, m , ‘n=’, n ) ;gbs:= m*n ;WHILE n <>0 DOBEGINr:= m MOD n ;m:=n ; n:=r ;END ;gys:=m ; gbs:=gbs DIV gys ;writeln(‘ gys=’, gys , ‘ gbs=’ , gbs)END.本次作业:4.6 (用WHILE语句)4.184.204.28例4.10:一个较复杂的计算器程序设计。PROGRAM calculator (input,output) ;VAR x , y : real ; oper : char ;BEGINread ( x , oper) ; write ( x : 8 : 2 , oper ) ;WHILE oper < > ‘=’ DOBEGINread( y ) ; write( y:8:2 ) ;CASE oper OF‘+’ : x :=x+y ;‘-’ : x :=x-y ;‘*’ : x :=x*y ;‘/’ : x :=x/yEND ;read (oper) ; write (oper)END;writeln( x : 8 : 2 )END.(共22张PPT)作业:4.6 (用WHILE语句)4.184.204.284.6 利用下列公式计算并输出π的值PROGRAM ex46(input,output) ;VAR n : integer ; s : real ;BEGINs:=0 ; n:=1 ;WHILE n<=10000 DOBEGINs:=s+1/(4*n-3)-1/(4*n-1) ;n:=n+1END ;writeln(‘pi=’, 4*s)END.4 3 5 7 4n-3 4n-1π 1 1 1 1 1— = 1- — + — - — +… +—— - ——4.18 输入一串字符,以‘ ’结束。统计其中字母个数,数字个数,其它符号个数。n1, n2, n3PROGRAM ex418 (input,output) ;VAR n1 , n2 , n3 : integer ; ch :char ;BEGINn1:=0 ; n2:=0 ; n3:=0 ;read(ch) ; write(ch) ;WHILE ch<>‘ ’ DOBEGINIF (ch>=‘a’) AND (ch<=‘z’) OR (ch>=‘A’) AND (ch<=‘Z’)THEN n1:=n1+1ELSE IF (ch>=‘0’) AND (ch<=‘9’)THEN n2:=n2+1ELSE n3:=n3+1read(ch) ; write(ch)END;writeln( ‘letter:’, n1);writeln( ‘digit:’, n2);writeln( ‘others:’, n3)END.4.20 输入两整数,求出它们的最大公约数和最小公倍数。PROGRAM ex420(input,output) ;VAR m , n , r , gys , gbs : integer ;BEGINread(m , n) ; writeln( ‘m=’, m , ‘n=’, n ) ;gbs:= m*n ;WHILE n <>0 DOBEGINr:= m MOD n ;m:=n ; n:=r ;END ;gys:=m ; gbs:=gbs DIV gys ;writeln(‘ gys=’, gys , ‘ gbs=’ , gbs)END.4.28 求1—100之间所有的素数(素数是大于1,且除1和它本身外,不能被任何其它整数所整除的整数)。PROGRAM ex428(input,output) ;VAR i , j , count : integer ;BEGINcount:=0 ;FOR i:=2 TO 100 DOBEGINj:=2 ;WHILE (j<=round(sqrt (i))) AND (i MOD j<>0) DOj:=j+1 ;IF j>round(sqrt(i)) THEN BEGINwrite(i:5) ;count:=count+1ENDENDEND.PROGRAM ex428(input,output) ;VAR i , j , count : integer ; flag : boolean ;BEGINcount:=0 ;FOR i:=2 TO 100 DOBEGINflag:=true ;FOR j:=2 TO round (sqrt (i)) DOIF i MOD j = 0 THEN flag:=false ;IF flag THEN BEGINwrite(i:5) ;count:=count+1 ;IF count MOD 5=0 THEN writelnENDENDEND.REPEAT语句(直到型循环)格式:REPEAT〈循环体〉UNTIL 〈布尔表达式〉循环体真假布尔表达式例1:计算 S =1 + 3 + 5 + … + n(n为大于1的奇数)PROGRAM repeat1 (input,output) ;VAR m , n , s : integer ;BEGINwrite(‘please input an odd data:’) ; readln(m) ;s:=0 ; n:=1 ;REPEATs:=s+n ;n:=n+2UNTIL n > m ;writeln( ‘1+3+5+…+’, m , ‘=’ , s )END.例2: 计算直到最后一项的绝对值小于10-7时停止计算,x由键盘输入。3! 5! 7!x3 x5 x7sin(x) = x - — + — - — + …PROGRAM repeat2 (input,output) ;VAR x , term , sum : real ; n : integer ;BEGINread(x) ; writeln(‘x=’, x) ;n:=1 ; term:=x ; sum:=x ;REPEATn:=n+2 ;term:=term*(-x*x)/n/(n-1) ;sum:=sum+term ;UNTIL abs(term)< 1e-7 ;writeln(‘sin(x)=’, sum:8:4)END.例3:利用泰勒公式求e的值,直到最后一项小于10-7为止。泰勒公式如下:e= 1 + 1/1! + 1/2! + 1/3! + … + 1/n!PROGRAM repeat3 (input,output) ;VAR e , m : real ; n : integer ;BEGINe:=1 ; m:=1 ; n:=1 ;REPEATm:=m/n ;e:=e+m ;n:=n+1UNTIL n < 1e-7 ;writeln(‘e=’, e)END.例4.17 验证歌德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示。例如4=2+26=3+38=3+598=19+79PROGRAM godbah(input,output) ;VAR n , p , q , j : integer ; flagp , flagq : boolean ;BEGINread(n) ; p:=1 ;REPEATp:=p+1 ;q:=n-p ;flagp:=true ;FOR j:=2 TO round (sqrt (p)) DOIF i MOD j = 0 THEN flagp:=false ;flagq:=true ;FOR j:=2 TO round (sqrt (q)) DOIF i MOD j = 0 THEN flagq:=false ;UNTIL flagp AND flagq ;writeln( n , ‘=’ , p , ‘+’ , q )END.本次作业:4.21 (用REPEAT语句)4.224.294.334.30 求2—100中,每个数的质因子,输入如下形式:2=23=34=2*2…100=2*2*5*5PROGRAM ex430(input,output) ;VAR i , x , y , n : integer ;BEGINFOR i:= 2 TO 100 DOBEGINwrite( i:3 , ‘=’ ) ; x:=i ; y:=2 ; n:=1;REPEATIF x MOD y=0THEN BEGINx:=x DIV y ;IF n<>1 THEN write(‘*’) ;write( y:2 ) ; n:=2ENDELSE y:=y+1UNTIL x=1 ;writelnENDEND.4.33 要将一张100元的大钞票,换成等值的10元、5元、2元、1元一张的小钞票。要求每次换成40张小钞票,每种至少一张。编程输出所有可能的换法,程序应适当考虑减少重复次数。(i、j、k、l分别表示10元、5元、2元、1元的张数)(共34张PPT)Pascal程序的调试F9 编译Ctrl+F9 运行Alt+F5 查看结果打印九九乘法表VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 9 DOBEGINFOR j :=1 TO i DOwrite( i, ‘*’, j, ‘=’, i*j:2, ‘’:2) ;writelnEND ;END.用*号打印出如下图案****** ****************** ******VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案 ****** ****** ****** ****** ****** VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 5-i ) ;FOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案****** ****** ****** ****** ******VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: i-1 ) ;FOR j :=1 TO 6 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* ** *** **** *****VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO i DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* *** ***** ******* *********VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINFOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* ** *** **** *****VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 5-i ) ;FOR j :=1 TO i DOwrite( ‘*’ ) ;writelnEND ;END.用*号打印出如下图案* *** ***** ******* *********VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 10-2*i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END.* *** ***** ******* *********VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 5 DOBEGINwrite( ‘’: 5-i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END. * *** ***** *** *VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 3 DOBEGINwrite( ‘’: 3-i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;FOR i :=2 DOWNTO 1 DOBEGINwrite( ‘’: 3-i ) ;FOR j :=1 TO 2*i-1 DOwrite( ‘*’ ) ;writelnEND ;END.程序4.5 求菲波拉契数a0,a1,a2,…,a20a0=0a1=1a2=a0+a1a3=a1+a2…an=an-2+an-1PROGRAM fibo (input,output) ;VAR a0 , a1 , a2 , i : integer ;BEGINa0:=0 ; a1:=1 ;write( a0:5 , a1:5 );FOR i :=2 TO 20 DOBEGINa2:=a0+a1;write( a2 : 5 ) ;IF i MOD 5 = 4 THEN writeln ;a0:=a1 ; a1:=a2END;END.习题4.12 求数列a0,a1,a2,…,a20。已知a0=0, a1=1, a2=1a3 = a0 + 2a1 + a2a4 = a1 + 2a2 + a3…PROGRAM ex412(input,output) ;VAR a0 , a1 , a2 , a3 , i : integer ;BEGINa0:=0 ; a1:=1 ; a2:=1 ;write( a0:10 , a1:10 , a2:10);FOR i :=3 TO 20 DOBEGINa3:=a0+2*a1+a2;write( a3:10 ) ;IF i MOD 5 = 4 THEN writeln ; (每行显示5个数)a0:=a1 ; a1:=a2 ; a2:=a3END;END.习题4.26 输出下列图形aa ba b c……a b c … x y zPROGRAM ex426 (input,output) ;VAR i , j : char ; k : integer ;BEGINwriteln ; k:=1 ;FOR i :=‘a’ TO ‘z’ DOBEGINwrite( ‘’: 26-k) ;FOR j :=‘a’ TO i DOwrite( j:2 ) ;writeln ; k:=k+1END ;END.习题4.27 打印数字金字塔11 2 12 3 2 1……1 2 3 … 8 9 8 … 3 2 1PROGRAM ex427 (input,output) ;VAR i , j : integer ;BEGINwriteln ;FOR i :=1 TO 9 DOBEGINwrite( ‘’: 18-2*i ) ;FOR j :=1 TO i DOwrite( j:2 ) ;FOR j:=i-1 DOWNTO 1 DOwrite( j:2 ) ;writeln ;END ;END.程序4.6 输入10个学生成绩,分别统计成绩在85~100分,60~85分和60分以下的分数段中的人数。PROGRAM count(input,output) ;VAR n1 , n2 , n3 , i : integer ; x : real ;BEGINn1:=0; n2:=0; n3:=0;FOR i :=1 TO 10 DOBEGINread( x ) ;IF x >=85 THEN n1:=n1+1ELSE IF x >=60 THEN n2:=n2+1ELSE n3:=n3+1END ;writeln( ‘ 85-100: ’ , n1 , ‘ 60-85: ’ , n2 , ‘ 0-60: ’ , n3)END.习题4.7 输入20个数,统计其中的正、负和零的个数IF x > 0THEN n1:=n1+1ELSE IF x < 0THEN n2:=n2+1ELSE n3:=n3+1程序4.7 输入10个数,求出其中的最大值、最小值。PROGRAM maxmin(input,output) ;VAR x , max , min : real ; i : integer ;BEGINread(x) ; max:=x ; min:=x ;FOR i :=2 TO 10 DOBEGINread(x) ;IF x>max THEN max:=xELSE IF xEND;writeln( ‘ max= ’ , max:5:0 , ‘ min= ’ , min:5:0 )END.调试习题4.26 4.27的程序本次作业:P874.64.74.84.104.114.13 max,min,ave习题4.6 利用下列公式计算并输出π的值PROGRAM ex46(input,output) ;VAR n : integer ; s : real ;BEGINs:=0 ;FOR i :=1 TO 10000 DOs:=s+1/(4*n-3)-1/(4*n-1) ;writeln(‘pi=’, 4*s)END.4 3 5 7 4n-3 4n-1π 1 1 1 1 1— = 1- — + — - — +… +—— - ——习题4.8 在1-500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数(选自《孙子算经》)PROGRAM ex48(input,output) ;VAR i : integer ;BEGINFOR i :=1 TO 500 DOIF (i MOD 3=2) AND (i MOD 5=3) AND (i MOD 7=2)THEN write(i:5) ;writelnEND.习题4.10 求100-999中水仙花数(若三位数abc,a3+b3+c3=abc,则称abc为水仙花数。例如13+53+33=1+125+27=153,则称153为水仙花数)。PROGRAM ex410(input,output) ;VAR i , a , b , c : integer ;BEGINFOR i :=100 TO 999 DOBEGINa:=i DIV 100 ; b:=i DIV 10 MOD 10 ;c:=i MOD 10 ;IF a*a*a+b*b*b+c*c*c=i THEN write( i : 5 )END;writelnEND.习题4.11 求2-1000中的守形数(若某数的平方,其低位与该数本身相同,则称该数为守形数。例如25,252=625,625的低位25与原数相同,则称25为守形数。PROGRAM ex411(input,output) ;VAR i , j : integer ;BEGINFOR i :=2 TO 1000 DOBEGINj:=i*i ;IF (j MOD 10=i) OR (j MOD 100=i) OR(j MOD 1000=i) THEN write( i : 10)END;END.程序4.8 画y=sinx图形。PROGRAM graph (input,output) ;CONST pi=3.14159 ;VAR i , wide : integer ; y : real ;BEGINFOR i :=0 TO 24 DOBEGINy:=sin(i*15*pi/180) ;wide:=round(35*y+40) ;writeln( ‘*’: wide )ENDEND.程序4.8 画y=cosx图形。PROGRAM graph (input,output) ;CONST pi=3.14159 ;VAR i , wide : integer ; y : real ;BEGINFOR i :=0 TO 24 DOBEGINy:=cos(i*15*pi/180) ;wide:=round(35*y+40) ;writeln( ‘*’: wide )ENDEND.习题4.15 在同一坐标轴上画出sin(x)与cos(x)的图形。PROGRAM ex415 (input , output) ;CONST pi=3.14159 ;VAR i , wide1 , wide2 : integer ; y , z :real ;BEGINFOR i=0 TO 24 DOBEGINy:=sin(i*15*pi/180) ; z:=cos(i*15*pi/180) ;wide1:=round(y*35+40); wide2:=round(y*35+40) ;IF wide1> wide2THEN BEGINwrite(‘*’:wide2) ; write(‘.’:wide1-wide2)ENDELSE BEGINwrite(‘.’:wide1) ; write(‘.’:wide2-wide1)END ;writelnEND ;END.(共21张PPT)Pascal软件的安装1、将C:\bak\Pascal7.0\tp7.exe 解压到 D:\2、进入D:\ TP7 \ BIN,将 TURBO.EXE 发送到桌面快捷方式3、双击桌面的快捷方式PROGRAM ex35(input,output);VAR ch1 , ch2 , ch3 , t : char ;BEGINwrite(‘please input ch1,ch2,ch3= ’); readln(ch1,ch2,ch3);IF ch1>ch2 THEN BEGINt:=ch1; ch1:=ch2; ch2:=tEND;IF ch1>ch3 THEN BEGINt:=ch1; ch1:=ch3; ch3:=tEND;IF ch2>ch3 THEN BEGINt:=ch2; ch2:=ch3; ch3:=tEND;writeln(ch1,ch2,ch3)END.PROGRAM ex35(input,output);VAR ch1 , ch2 , ch3 : char ;BEGINreadln(ch1,ch2,ch3);IF (ch1>ch2) AND (ch1>ch3)THEN IF ch2>ch3 THEN writeln(ch3,ch2,ch1)ELSE writeln(ch2,ch3,ch1) ;IF (ch2>ch1) AND (ch2>ch3)THEN IF ch1>ch3 THEN writeln(ch3,ch1,ch2)ELSE writeln(ch1,ch3,ch2) ;IF (ch3>ch1) AND (ch3>ch2)THEN IF ch1>ch2 THEN writeln(ch2,ch1,ch3)ELSE writeln(ch1,ch2,ch3)END.PROGRAM ex35(input,output);VAR ch1 , ch2 , ch3 : char ;BEGINreadln(ch1,ch2,ch3);IF ch1>ch2THEN IF ch3>ch1THEN writeln(ch2,ch1,ch3)ELSE IF ch3>ch2THEN writeln(ch2,ch3,ch1)ELSE writeln(ch3,ch2,ch1)ELSE IF ch3>ch2THEN writeln(ch1,ch2,ch3)ELSE IF ch3>ch1THEN writeln(ch1,ch3,ch2)ELSE writeln(ch3,ch1,ch2) ;END.PROGRAM ex37(input,output);VAR x , y , z : real ;BEGINreadln(x , y) ;IF x>0THEN IF y>0THEN z:=ln(x)+ln(y)ELSE z:=sin(x+y)/cos(x+y)ELSE IF y>0THEN z:=sin(x)+sin(y)ELSE z:=exp(2*x)+exp(3*x) ;writeln(‘z=’ , z:6:2)END.PROGRAM ex38(input,output);VAR x , y , z : real ; s : integer ;BEGINreadln(x , y , s) ;CASE s OF1 : z:=ln(x)+ln(y) ;2 : z:=sin(x)+cos(x) ;3 : z:=exp(2*x)+exp(3*x) ;4 : z:=sin(x+y)/cos(x+y)END ;writeln(‘z=’ , z:6:2)END.PROGRAM ex39(input,output);VAR class , num : integer ;BEGINwrite (‘please input class’) ;readln( class ) ;CASE class OF91, 93, 94 : num:=30;92, 95 : num:=32;96 : num:=25END ;writeln(‘num=’ , num)END.第四章 循环结构程序设计FOR语句(计数循环)形式FOR〈循环变量〉:=〈初值〉TO〈终值〉DO〈循环体〉FOR〈循环变量〉:=〈初值〉DOWNTO〈终值〉DO〈循环体〉循环体真假循环变量 := 初值循环变量:=succ(循环变量)循环变量<=终值FOR〈循环变量〉:=〈初值〉TO〈终值〉DO〈循环体〉例1:输出1~20的自然数PROGRAM for1(input,output) ;VAR i : integer ;BEGINFOR i :=1 TO 20 DOwrite( i :5 )END.例1:输出1~20的自然数 (每行显示5个)PROGRAM for1(input,output) ;VAR i : integer ;BEGINFOR i :=1 TO 20 DOBEGINwrite( i :5 ) ;IF i MOD 5 = 0 THEN writelnENDEND.思考:1、输出20 ~ 1的自然数2、输出1 ~ 100的偶数(每行显示10个)PROGRAM for2(input,output) ;VAR i : integer ;BEGINwriteln;FOR i :=1 TO 50 DOBEGINwrite( 2*i ) ;IF (2*i) MOD 20 = 0 THEN writelnENDEND.例2:输出1 ~ 100的偶数(每行显示10个)例3:编一个程序,求从1至100的自然数的和PROGRAM for3(input,output) ;VAR i , sum : integer ;BEGINsum:=0 ;FOR i :=1 TO 100 DOsum:=sum+i ;writeln( ‘ 1+2+3+…+100= ’, sum)END.例4:编一个程序,求从1至10的自然数的积PROGRAM for4(input,output) ;VAR i : integer ; mul :real ;BEGINmul:=1 ;FOR i :=1 TO 10 DOmul:=mul*i ;writeln( ‘ 1× 2 × 3 × … ×10= ’, mul:10:0 )END.程序4.3 计算n!PROGRAM for4(input,output) ;VAR i , n : integer ; mul :real ;BEGINread(n) ;mul:=1 ;FOR i :=1 TO n DOmul:=mul*i ;writeln( ‘1× 2 × 3 × … ×n= ’, mul:10:0 )END.读下列程序s:=0 ;for i :=1 to 5 dos:=s+2 ;write(s)s:=0 ;for i :=1 to 5 dos:=s+i ;write(s)s:=0 ;for i :=1 to 5 dos:=s+2*i ;write(s)s:=0 ;for i :=1 to 5 dos:=s+2*i-1 ;write(s)例5:按正序和反序输出字母表PROGRAM for5(input,output) ;VAR ch : char ;BEGINFOR ch :=‘a’ TO ‘z’ DOwrite( ch :2 ) ;writeln;FOR ch :=‘z’ DOWNTO ‘a’ DOwrite( ch :2 ) ;writelnEND.例6:读入10个数,计算它们的和、积、平均值PROGRAM for6(input,output) ;VAR i : integer ; x , sum , mul , ave : real ;BEGINsum:=0 ; mul:=1 ;FOR i :=1 TO 10 DOBEGINread(x) ;write(x);IF i MOD 5=0 THEN writeln;sum:=sum+x ; mul:=mul*xEND;ave:=sum/10;writeln( ‘ sum= ’, sum , ‘ mul= ’, mul , ‘ ave= ’, ave )END.作业:P874.34.4 展开更多...... 收起↑ 资源列表 循环结构1.ppt 循环结构2.ppt 循环结构3.ppt 循环结构4.ppt 循环结构5.ppt