Delphi Pascal 5实现埃拉托斯特尼筛法运行无输出问题求助
修复说明
你已完成埃拉托斯特尼筛法的核心计算逻辑,程序无输出是因为缺少将计算结果写入界面控件的代码,你界面上已配备TMemo组件Memo1,直接调用该组件输出结果即可。
修改后的完整代码
procedure TForm1.BerechnenClick(Sender: TObject); const n = 200; var zahl : array [2..n] of boolean; p,i,v : integer; weiter : boolean; begin // 筛法核心逻辑 for i := 2 to n do zahl[i] := true; p := 2; while p <= n do begin v := 2*p; while v <= n do begin zahl[v] := false; v := v+p; end; p := p+1; weiter := false; if p <= n then weiter := true; while weiter do if (p<=n) and (zahl[p] = false) then p := p+1 else weiter := false; end; // 新增:输出结果到Memo1 Memo1.Clear; Memo1.Lines.Add('2到' + IntToStr(n) + '范围内的质数:'); for i := 2 to n do begin if zahl[i] then Memo1.Lines.Add(IntToStr(i)); end; end;
可选优化项
如果你需要自定义质数计算的上限,不用固定写死为200,可以读取Edit1输入框的数值:
- 删除
const n = 200;定义 - 在变量声明区新增
n: Integer; - 过程开头添加代码:
n := StrToIntDef(Edit1.Text, 200);,输入非法值时会默认使用200作为上限
内容的提问来源于stack exchange,提问作者Schreiberkugel
相关产品推荐
相关产品推荐

