線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:841
推到 Plurk!
推到 Facebook!

陣列數值計算

尚未結案
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-29 11:12:07 IP:210.62.xxx.xxx 未訂閱
請問一下這要怎麼寫呀?? 計算每一對角線之值,並記錄其最大值 紅色線之方格要相加,相加結果放於藍色線方格 綠色線為0 謝謝~~    
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-29 15:44:50 IP:218.160.xxx.xxx 未訂閱
Hi peiyao 你好: 這是很基本的練習題喔, 有很多方法可以做, 要不要先說明你的概念, 再請這裡的眾高手指點. 我不是高手, 高手是正在銀幕前微笑的人. 發表人 -
------


我不是高手, 高手是正在銀幕前微笑的人.
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-30 08:56:51 IP:210.62.xxx.xxx 未訂閱
這個問題對我實在太難了~我想了好久~ 都想不出來~拜託高手幫幫忙~ =.="
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-30 12:04:32 IP:210.62.xxx.xxx 未訂閱
麻煩各位高手幫幫我找問題~~ c:=0; x:=0; y:=0; for z:=1 to 4 do begin x:=x 1; y:=y 1; C := C strtoint(floattostr(ary[x][y])); end; stg.Cells[x, y] :=inttostr(c);
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-30 12:12:58 IP:203.95.xxx.xxx 未訂閱
hi, 試試看:    
procedure TForm1.Button1Click(Sender: TObject);
var
  index, i, j: integer;
  fsum: double;
begin
  RangeX := 4; // 數字的 x 座標最大 index
  RangeY := 5; // 數字的 y 座標最大 index
  for index := 1 to RangeY do
  begin
    i := RangeX;
    j := index;
    fsum := 0;
    while (i>=1) and (j>=1) do
    begin
      fsum := fsum   StrToFloat(StringGrid1.Cells[i,j]);
      i := i-1;
      j := j-1;
    end;
    StringGrid1.Cells[RangeX   1, index] := FloatToStr(fsum);
  end;
  for index := 1 to RangeX - 1 do
  begin
    i := index;
    j := RangeY;
    fsum := 0;
    while (i>=1) and (j>=1) do
    begin
      fsum := fsum   StrToFloat(StringGrid1.Cells[i,j]);
      i := i-1;
      j := j-1;
    end;
    StringGrid1.Cells[index, RangeY 1] := FloatToStr(fsum);
  end;
end;
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-30 12:27:52 IP:210.62.xxx.xxx 未訂閱
非常謝謝你的幫忙~~ 可是我們好像出現了一些錯誤 麻煩請你再幫我們看看 謝謝~~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-30 13:01:32 IP:203.95.xxx.xxx 未訂閱
這是因為你的內容還未填完, 所以取出的 stringgrid 中的 cell 值是空字串, 無法轉為數值. 請你先將 stringgrid 填入如問題中的數字後, 再執行我貼上來的程式即可!
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-30 13:42:55 IP:210.62.xxx.xxx 未訂閱
剛才那個問題解決了~真的非常感謝~ 那請問一下如何把紅色部份的數值 做比較,取出最大值回存到SQL欄位中~ 不好意思哦~又要麻煩你了~ ^^" ~謝謝~
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-30 16:22:09 IP:210.61.xxx.xxx 未訂閱
我來接力 關於拿出最大值 以下給你參考
var
  i,j:Integer;
  maxval:Integer;
begin
  for i:=0 to 3 do
    for j:=0 to 3 do
      StringGrid1.cells[i,j]:=IntToStr(Random(20));
  maxval:=0;
  for i:=0 to 3 do
    maxval:=max(maxval,StrToInt(StringGrid1.Cells[2,i]));
  ShowMessage(IntToStr(maxval));
end;
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-10-01 00:31:37 IP:61.62.xxx.xxx 未訂閱
那再加上紅色的部分取出最大值吧!    

var
  fMax: Double;    procedure TForm1.Button1Click(Sender: TObject);
var
  index, i, j: integer;
  fsum: double;
begin
  RangeX := 4; // 數字的 x 座標最大 index
  RangeY := 5; // 數字的 y 座標最大 index
  fMax := 0;
  for index := 1 to RangeY do
  begin
    i := RangeX;
    j := index;
    fsum := 0;
    while (i>=1) and (j>=1) do
    begin
      fsum := fsum   StrToFloat(StringGrid1.Cells[i,j]);
      i := i-1;
      j := j-1;
    end;
    StringGrid1.Cells[RangeX   1, index] := FloatToStr(fsum);
    if fsum > fMax then fMax := fsum;
  end;
  for index := 1 to RangeX - 1 do
  begin
    i := index;
    j := RangeY;
    fsum := 0;
    while (i>=1) and (j>=1) do
    begin
      fsum := fsum   StrToFloat(StringGrid1.Cells[i,j]);
      i := i-1;
      j := j-1;
    end;
    StringGrid1.Cells[index, RangeY 1] := FloatToStr(fsum);
    if fsum > fMax then fMax := fsum;
  end;
end;
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-10-01 14:05:36 IP:210.62.xxx.xxx 未訂閱
真的非常感謝你~~ 已經可以執行了, 感謝你在這麼危急的時刻伸出援手, 真的謝謝你的幫忙~
系統時間:2024-05-18 7:37:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!