★★★还是关于那个特殊的for循环!你们说的不对!!这是答案,看看吧!!
原贴(Delphi 基础类问题 ):★★关于一个特殊的for循环的困惑?请问答案是什么?
http://expert.csdn.net/Expert/topic/1333/1333370.xml?temp=.8214075很多人说循环变量不能在循环里被赋值,可是在turbo pascal 7.0中,下面的代码却可以执行:
例1:
program tefor(output);
uses crt;
var b:boolean;
begin
  clrscr;
  for b:=false to true do
    begin
      writeln('hello world !');
      b:=succ(b); 
    end;
end.
运行后输出一行 hello world !,如果没有b:=succ(b);这句的话则输出两行 hello world !。然而在delphi6.0中下面的代码却无法执行:
例2:
program tefor(output);
{$APPTYPE CONSOLE}
var b:boolean;
begin
  for b:=false to true do
    begin
      writeln('hello world!');
      b:=succ(b);
    end;
end.
运行时报:不能对for循环中的变量b赋值。Q1: 请问各位老师,这是怎么回事呢?
Q2: delphi中制作的控制台程序中的清屏命令是什么,怎么用?tp7中的clrscr过程无法使用!
Q3: 为什么delphi制作的控制台程序运行时一闪就没了,要在msdos中运行才可以停留住,而turbo pascal             7.0制作的程序运行时却可以在屏幕上停留,并且有许多属性设置?(win98th环境)
Q4: 为什么delphi制作的控制台程序'hello world!'有9k 而tp7制作的'hello world!'却只有3k?如何用delphi做出和用tp7做出的程序一样的控制台程序?
Q5: 按照规则,在循环体内是不能改变循环控制量的值的(这个“不能”有歧义,是改不了还是不允许改?)。然而在例1中却与此矛盾!难道是tp7没有遵守这一规则?还是遵守了,但没做这方面的检验,是个bug?
Q6: 一启动turbo pascal 7.0 CPU的占用率就达到100% 怎么回事?
顺便看一下下面的帖子:
http://expert.csdn.net/Expert/topic/1333/1333365.xml?temp=.2648126

解决方案 »

  1.   

    1、5:不清楚。应该是TP7的问题。
    4:DELPHI5的编译器版本是15.0,而TP7的版本是7.0,有差别是正常的吧。
    另外……我记得TP7做的最小的文件是16K的?也许我记错了?
    2:不清楚。DELPHI中没有CRT单元了。
    3:应该同样是编译器版本的问题。你可以看一看DELPHI编译的控制台程序,里面仍然有“This program must be run under Win32.”的字样,表示仍然是WINDOWS程序,不能够在纯DOS下面运行。而TP7编译后是DOS程序,不是WINDOWS程序。
    6:所有DOS程序运行时都是这样的。