关于PASCAL的一个循环程序PROGRAM ZLX;VARI:INTEGER;BEGINWRITELN;FOR I:=1 TO 100 DOBEGINI:=I+100;WRITELN(' ',I);READLN;END;END.此程序在FREE PASCAL 里边是错的但在TP中则可以运行我知道不能随便改变I的值但奇怪的是

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 19:43:28
关于PASCAL的一个循环程序PROGRAM ZLX;VARI:INTEGER;BEGINWRITELN;FOR I:=1 TO 100 DOBEGINI:=I+100;WRITELN(' ',I);READLN;END;END.此程序在FREE PASCAL 里边是错的但在TP中则可以运行我知道不能随便改变I的值但奇怪的是

关于PASCAL的一个循环程序PROGRAM ZLX;VARI:INTEGER;BEGINWRITELN;FOR I:=1 TO 100 DOBEGINI:=I+100;WRITELN(' ',I);READLN;END;END.此程序在FREE PASCAL 里边是错的但在TP中则可以运行我知道不能随便改变I的值但奇怪的是
关于PASCAL的一个循环
程序
PROGRAM ZLX;
VAR
I:INTEGER;
BEGIN
WRITELN;
FOR I:=1 TO 100 DO
BEGIN
I:=I+100;
WRITELN(' ',I);

READLN;
END;
END.
此程序在FREE PASCAL 里边是错的

但在TP中则可以运行
我知道不能随便改变I的值
但奇怪的是 在TP中
当完成第一次循环后 I=101 已经大于了终值100 
因此我认为此循环会结束 
结果只有一个 101
但结果却是匪夷所思

以及后面一大堆负值

关于PASCAL的一个循环程序PROGRAM ZLX;VARI:INTEGER;BEGINWRITELN;FOR I:=1 TO 100 DOBEGINI:=I+100;WRITELN(' ',I);READLN;END;END.此程序在FREE PASCAL 里边是错的但在TP中则可以运行我知道不能随便改变I的值但奇怪的是
我手头没有TP无法做实验.只能猜测一下
我想这个结果可能说明,TP中for循环的终止条件是:循环变量严格等于终止值时跳出.
也就是说,只有当循环执行完毕之后,i=100,循环才会跳出.
但是你这个写法,导致第一次循环执行完毕之后,i已经是101了,虽然大于100,但是程序发现i不等于100,于是继续执行.相当于说,你已经越过终点了,但是是"瞬移"过去的,编译器只盯着100那条线看,没注意到你跳过去了.
要验证这一点,你可以把终止值设为101,202..试试,应该可以结束循环.

关于PASCAL的一个循环程序PROGRAM ZLX;VARI:INTEGER;BEGINWRITELN;FOR I:=1 TO 100 DOBEGINI:=I+100;WRITELN(' ',I);READLN;END;END.此程序在FREE PASCAL 里边是错的但在TP中则可以运行我知道不能随便改变I的值但奇怪的是 pascal关于因式分解的有关问题用pascal语言编出一个程序输入:100输出:2*2*5*5急用! 求一个背包程序(PASCAL)最原始的 Miller-Rabbin素数测试法求一个用Miller-Rabbin算法判断是否为素数的程序,注意要用PascalPascal!Pascal!Pascal!Pascal!Pascal!Pascal!Pascal!Pascal!最好有说明 如何编制一个死循环的程序 N 的倍数 pascal语言写一个程序,对于给定的一个自然数N(0 pascal问题,求程序:1、 文本文件t.in中第一行的一个 正整数N(N 用PASCAL语言编写一个求1+2+3+...+N的程序 pascal 将计时器结果保留两位小数程序中我设置了一个循环,记录每一次计时的结果,转化成秒(real)并保留两位小数(后面的数字直接不要)保存到array里面,循环结束后输出array.比如 计时结果分别 下列关于程序框图的说法,正确的是1.程序框图只有一个入口,也只有一个出口2.程序框图中的每一部分都应有一条从入口到出口的路径通过它3.程序框图中的循环可以是无尽的循环4.程序框图中 产生数pascal程序给出一个整数n(n 为什么在退出循环后循环变量的值比最后一次循环时循环变量多一个步长?图中程序退出循环值为11 pascal 求整数A除以B的循环节 计算1*2*3*.*n>1000的第一个n值(用pascal语言,while循环和repeat循环来做) Pascal程序,很急!N个小朋友手拉手站成一个圆圈,从第一个小朋友开始循环报数,报到M的那个小朋友退到圈外,然后他的下一位重新报“1”.这样继续下去,直到最后只剩下一个小朋友,他原来站在 分数变小数 in pascal分数变小数(fch.pas) 【问题描述】 写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子D为分母,输出它的小数形式.如果它的小数形式存在循环节,要将其用括号括 求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数. pascal程序(序列)问题描述 有一个非递减的整数序列S1,S2,S3,……,Sn+1(Si