以下是我在自学中的几个问题,实在弄不明白,来这里请教各位大哥了.谢谢!(1). 当用repeat循环语句的时候,代码如下:I:=0;
Repeat
  I:=I+1;
  Writeln(I)
Until I=100;当用While循环改写的时候,代码如下:I:=0;
While I<100 do
  Begin
   I:=I+1;
   Writeln(I);
  End;请问其中的 Writeln(I)语句是什么含义?是否可以将这段代码改写为如下:I:=0;
While I<100 do
  I:=I+1;
这样不是更简单吗?(2).在for循环中有这样一个例子:for i:=1 to 5 do
  printf("I=%d\n",i);  //该句执行"printf("I=%d\n",i); 5次.请问,如果是输出语句应该用print呀,不应该用printf呀.在D中我并未见到对括号的使用有特殊的声明,请问什么时候用括号呢?还有  "I=%d\n",i  这是什么代码?如果执行了,执行的结果是什么?(3).使用for语句时,应注意不要在循环体内改变循环变量的值,以免造成不确定性.例如:for k:=10 downto 1 do
  begin
    a:=b+c;
    k:=k+1;
  end;请问这段代码在那里错误了?书上说它在循环体内给变量k赋值了,可我却没看出来,请各位帮忙解释一下.(4).在有参过程声明中有这样一个例子:procedure exchange(var a,b:real);
var
  temp:real;
begin
  temp:=a;
  a:=b;
  b:=temp;
end;请问在该过程中如果不用begin.……end复合语句,根据程序执行的顺序结构,去掉他们一样可以达到目的呀。是不是begin……end 该复合语句有什么特殊的要求呀,这里必须用他们?

解决方案 »

  1.   

    1, writeln是输出文本,不过你要在Console程序中才能看到
    2,Delphi有printf语句吗?那时c语句吧
       %d表示以十进制整数输出,\n是换行符
       因此printf("I=%d\n",i); 就是显示I=<i的值><回车>
    3,k:=k+1不就是嘛,他给k加了1
       由于delphi给循环作了优化,不能再循环体内修改循环变量的值
    4,函数体的begin, end不是表示复合语句,它是用于定义循环体的,必须要有小弟,你的基础太浅,还需加倍努力啊!
      

  2.   

    他在看TurboPascal吧。
    楼上的回答是对的,
    不过一切都是从头开始的么,我们才开始的时候不也是这样啊!!!!!
      

  3.   

    呵呵都是些基础的语法  不要急慢慢来
    ronaldli(木的) 回答是正确的
    先把语法学扎实把