一个小计算程序.20000至300000之间除以504,能否除尽。(20)

  • 主题发起人 主题发起人 楚辞
  • 开始时间 开始时间

楚辞

Unregistered / Unconfirmed
GUEST, unregistred user!
想实现200000到300000,除以504,除尽后显示能被504整除,此数是397。如除不尽则显示为不能被除,其余数为多少,多少。使用什么控件好?不想手动一个一个的输入,200000,200001,200002。。。。。想能够手动选取这些数,请富翁们看看。。。
 
在10万个数中手动一个一个选择? 楼主不是吧?
 
哦。我也觉得不对劲。有什么好的解决办法吗?
 
为什么要在界面上手动选择? 你在程序里面用一个For循环,把能除尽的数加到一个Memo里面;不能除尽的显示在另一个Memo里面不就行了?
 
我的数据由那个地方输入了?
 
在界面上放两个编辑框啊(Tedit), 一个输入起始数(假如是你的200000);另一个输入结束数(300000).For循环的两头就取这个两个数.
 
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Memo1: TMemo; Memo2: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var a:integer; c :real ; b : integer;begin if (edit1.Text='')or (edit2.Text='') then showmessage('输入要计算的数据') else begin a:=strtoint(edit1.Text ); b:=strtoint(edit2.Text ); begin c:=a/b for a to b do //从这开始报错.请大家帮我看看如何修改..... begin if c:=strtoint then showmessage(memo1.Text'此数可整除,结果为c') else showmessage(memo2.Text'此数不可整除,余数为c') endend;end;
 
修改了下:还是有错误.procedure TForm1.Button1Click(Sender: TObject);var a:integer; c :integer ; b : integer;begin if (edit1.Text='')or (edit2.Text='') then showmessage('输入要计算的数据') else begin a:=strtoint(edit1.Text ); b:=strtoint(edit2.Text ); c:=a div b ; for c:=a to b do begin memo1.Lines.Add(inttostr(c)+'此数可整除,结果为c') ; end memo2.Lines.Add (inttore(c)+'此数不可整除,结果为c') ;//错误在这.DIV 是结果为整数.可是这段数据里只有一个数可以整除,其他的都是有小数的.因此,memo2里是浮点数.我应该怎样修改程序. end ;end;
 
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Memo1: TMemo; Memo2: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1 : TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin Memo1.Clear; Memo2.Clear; Edit1.Text := '20000'; Edit2.Text := '30000';end;procedure TForm1.Button1Click(Sender: TObject);var a, b, c, i : Integer; h, n : Integer;begin a := StrToInt(Edit1.Text); b := StrToInt(edit2.Text); for i := a to b do begin h := i div 504; n := i mod 504; if n = 0 then Memo1.Lines.Add(intToStr(i) + '÷504 = ' + intToStr(h) ) else begin Memo2.Lines.Add(intToStr(i) + '÷504 = ' + intToStr(h) + ',余数= ' + intToStr(n)); end; application.ProcessMessages; end;end;end.没有作容错处理 ,你自己改一下吧
 
多买几本傻瓜书看看吧,你这样问学不到任何东西。
 
谢谢.......我回去试试.
 
接受答案了.
 
后退
顶部