1、循环结构的程序设计(二)FOR 循环的嵌套及举例例一:打印出如下由数字组成的三角形: 11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1.1 2 3N 3 2 1分析:N 行,每行从 1 到 N,再从 N-1 到 1,前面再加上若干空格(数目从多到少)。程序段: CONST N=9;VAR I,J,K,SPACE:INTEGER;BEGINSPACE:=40;FOR I:= 1 TO N DOBEGINWRITE(:SPACE);FOR J:= 1 TO I DO WRITE(J:2);FOR K:=I-1 DOWNTO 1 DO WRITE(K:2);
2、WRITELN;SPACE:=SPACE 2ENDEND.例二:求 S=11+22+33+44+NN程序段:WRITE(PLEASE INPUT N= );READLN(N);SUM: =0;FOR I:=1 TO N DO BEGINT:=1;FOR J:=1 TO I DO T:=T*J;SUM:=SUM + TEND;WRITELN( S= ,SUM);例三:某人想将手中的一张面值 100 元的人民币换成 5 元、1 元和 0.5 元面值的票子,但要求换正好 100 张,且每种票子至少一张。问:有几种换法?分析:设 5 元票 I 张,1 元票 J 张,0.5 元票 K 张,则:I+J+K
3、=1003 个变量 2 个方程不能直接出解,也不唯一。5I+J+K/2=100程序段:WRITELN(I:8,J:8,K:8);FOR I:=1 TO 100 DOFOR J:=1 TO 100 DO FOR K:=1 TO 100 DOBEGINSUM:=I+J+K;TOTAL:=2*I+J+K/2;IF (SUM=100)AND(ABS(TOTAL 100)I/2KIF I MOD J = 0 THEN YES:=FALSE;IF YES THEN BEGIN 没有反对理由的打印输出,且计数WRITE(I:10);N:=N+1END;IF N MOD 5 = 0 THEN WRITELN 输出完 5 个换下一行END;WRITELN实数的比较可用 CONST循环次数为 98+97+96+88 = 1023 次,大大节省了时间,提高了效率。END.