lazarus解决三角形凑边长问题

lazarus 跨平台free pascal语言ide工具
http://www.fpccn.com/ 社区

下载ftp://freepascal.dfmk.hu/pub/lazarus/releases
https://sourceforge.net/projects/lazarus/files/
 

2021-2-22发布的2.0.12稳定版,2021-7-8发布的2.2rc1版本

小视频看到一个问题:一个外卖订单备注说一个直角边长11,另外2边整数,求外卖小哥解答,外卖小哥答复:我要是能解决这问题我就不至于送外卖了

为了鼓励家里小宝好好学习,这里把这个问题用一个穷举法简单解决一下,展示一下科学的魅力:

var
  a, b, c: integer;
  d: real;
begin
  try
    a := StrToInt(Edit1.Text);
    if a < 1 then
      raise EConvertError.Create('');
    for b := 1 to 200 do
    begin
      d := sqrt(a * a + b * b);
      c := trunc(d);
      if (c * c) = (a * a + b * b) then
      begin
        EventLog1.Warning(IntToStr(a) + '*' + IntToStr(a) + '+' + IntToStr(b) + '*' +
          IntToStr(b) + '=' + IntToStr(c) + '*' + IntToStr(c));
        ShowMessage(IntToStr(a) + '*' + IntToStr(a) + '+' + IntToStr(b) + '*' + IntToStr(b) +
          '=' + IntToStr(c) + '*' + IntToStr(c));
        break;
      end;
    end;
  except
    on EConvertError do
    begin
      ShowMessage('请输入一个正整数!');
      Edit1.Text := '';
      Edit1.SetFocus;
    end;
  end;
end; 

Edit1.Text 是可以输入一个边长比如11,EventLog1.Warning是输出到日志,很有意思的结果
 

3*3+4*4=5*5

5*5+12*12=13*13

7*7+24*24=25*25

11*11+60*60=61*61

13*13+84*84=85*85

 EventLog1是输出到日志的控件,在system控件组里,在窗体的create里启动一下即可

EventLog1.AppendContent:=true;
  EventLog1.LogType := ltFile;
  EventLog1.FileName := 'sqrt.log';
  EventLog1.Active := True;

------------------------------

顺手记一下deepinlinux下安装了新lazarus的2个自定义:

lazarus默认ide界面是分体式,为了改为一体式,打开主界面 包 》安装包 》anchordocking和Sparta_DockedFormEditor
选中然后点选保存并重新编译IDE重启ide即可,默认缺少工程查看器,打开工程-》工程查看器,会跳出来一个可拖动的界面,鼠标点击很细的那个标题行,拖动到代码区坐上角,会自动停靠

安装完成工程文件默认图标没启用lazarus,我们就手动更新下

找到/usr/share/mime/packages/lazarus.xml文件,在lpi部分增加

更新系统文件类型启用新图标即可 sudo update-mime-database -V /usr/share/mime

所用的图标文件默认是/usr/share/icons/deepin/apps/48/lazarus.svg

如果自己新建了ukui-icon-theme图标文件夹就更新一下缓存放文件管理器能找到
sudo gtk-update-icon-cache /usr/share/icons/ukui-icon-theme/

你可能感兴趣的:(lazarus,linux,lazarus)