You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 5中实现埃拉托斯特尼筛法并将结果写入Edit控件?

解决Delphi 5中埃拉托斯特尼筛法结果输出到Edit控件的问题

我来帮你调整代码,把质数结果输出到Edit控件里,而不是控制台。关键修改有两处,我会给你讲清楚:

关键修改点

  • 先清空Edit内容:每次点击按钮计算前,先清空Edit控件的现有内容,避免多次计算的结果堆叠在一起。
  • 拼接质数到Edit:遍历数组时,把每个值为true的索引(也就是质数)转换成字符串,添加到Edit的文本中,还可以加上空格分隔,让结果更易读。

修改后的完整代码

var 
  Form1: TForm1; 
  iValue, iCode: Integer; 
  index, anzahlgaeste: Integer; 
  gaeste: array of string; 
  zahl:array[1..1000] of boolean; 
  i,j,grenze:integer; 
implementation 

{$R *.DFM} 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if n.text = '' then 
  begin 
    error.text := 'Feld ist leer'; 
    n.SetFocus; 
  end 
  else 
  begin 
    val(n.text, iValue, iCode); 
    if iCode = 0 then 
    begin 
      if StrToInt(n.text) < 2 then 
      begin 
        error.text := 'Zahl ist kleiner als zwei'; 
        n.SetFocus; 
      end 
      else 
      begin 
        error.text := 'Erfolgreich'; 
        grenze:=1000; 
        fillchar(zahl,sizeof(zahl),true); 
        i:=2; 
        //erste Streichzahl 
        repeat 
          j:=i+i; 
          repeat 
            zahl[j]:=false; 
            j:=j+i; //nächste zu streichende Zahl 
          until j>grenze; 
          inc(i); 
          while zahl[i]=false do inc(i); 
        until i>sqrt(grenze); 

        // --- 下面是修改的核心代码 ---
        result.Clear; // 先清空Edit控件
        for i:=2 to grenze do 
        begin
          if zahl[i] then 
          begin
            // 把质数转成字符串,添加到Edit,用空格分隔
            result.Text := result.Text + IntToStr(i) + '  '; 
          end;
        end;
        // --- 修改结束 ---
      end; 
    end 
    else 
    begin 
      error.text := 'Keine (natürliche) Zahl'; 
      n.SetFocus; 
    end 
  end; 
end; 

end.

额外说明

如果你的Edit控件不是叫result,记得把代码里的result换成你实际的控件名称。另外,要是质数太多导致Edit显示不全,可以把Edit的ScrollBars属性设为ssVertical,这样就能滚动查看所有结果啦。

内容的提问来源于stack exchange,提问作者Keyinator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:11:57