Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 4327|回复: 6

sum函数的问题。

[复制链接]

该用户从未签到

发表于 2011-4-2 15:57:22 | 显示全部楼层 |阅读模式
刚刚在学习论坛中的帖子:练习题:成绩统计(原来Lazarus的编程效率可以很高的)

发现一个问题。是sum函数的。rtl帮助文档中关于sum函数有一个例子:
Program Example44;

{ Program to demonstrate the Sum function. }

Uses math;

Var
  I : 1..100;
  ExArray : Array[1..100] of Float;

begin
  Randomize;
  for I:=low(ExArray) to high(ExArray) do
    ExArray:=(Random-Random)*100;
  Writeln('Max     : ',MaxValue(ExArray):8:4);
  Writeln('Min     : ',MinValue(ExArray):8:4);
  Writeln('Sum     : ',Sum(ExArray):8:4);
  Writeln('Sum (b) : ',Sum(@ExArray[1],100):8:4);
end.

但该代码倒数第二句在lazarus中编译失败,提示:
Can't determine which overloaded function to call

这个是什么问题?我用的是0.9.30版本。
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-4-2 15:58:34 | 显示全部楼层
另外,关于StringReplace函数 ,我没有找到其中关于替换Pattern的详细介绍。

有人帮忙说说吗?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-4-2 21:21:09 | 显示全部楼层
Sum() 的這個 example (http://www.freepascal.org/docs-html/rtl/math/sum.html) 我这裡沒遇到问题, FPC 版本 2.4.2。 看错误消息应该是有超过一个 Sum() 被定义, 而且 signature 相同, 所以编译器不知道要调用哪个。 你可以改用 Math.Sum(ExArray) 试一下。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-4-2 21:23:02 | 显示全部楼层
StringReplace() 那个 Google 一下 stringreplace site:freepascal.org 就找到了, 裡面说的很清楚。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-4-2 22:00:05 | 显示全部楼层

回 2楼(zeus-chu) 的帖子

sum问题我解决了。
需要加一个显示的类型转换:
Writeln('Sum (b) : ',Sum(PFloat@ExArray[1]),100):8:4);
我猜应该是编译器参数设置问题。但没有能力研究。

另外我突然发现,我贴出的代码有问题。for to do后面应该是:
ExArray[i]:=(Random-Random)*100;
不知道为什么,英文的中括号不能显示。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-4-2 22:05:49 | 显示全部楼层

回 3楼(zeus-chu) 的帖子

我真没有看到那个页面是详细说明替换Pattern的,只有函数本身的简单介绍。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-4-11 19:36:24 | 显示全部楼层
不知道为什么,英文的中括号不能显示。

半角括号裡的 i 是个 BBCode 标签, 所以後面的字都变成斜体的了。

我真没有看到那个页面是详细说明替换Pattern的,只有函数本身的简单介绍。

按照 http://www.freepascal.org/docs-h ... /stringreplace.html, StringReplace()OldPatternNewPattern 分别是要查找的子串和要替换为的串 (StringReplace searches the string S for occurrences of the string OldPattern and, if it is found, replaces it with NewPattern)。
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-3 11:07 , Processed in 0.026731 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表