アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
私はプログラミングが殆ど未経験の大学生です。

これからC++builderを勉強し始めようと思うのですが、おススメの入門書、勉強に使えるサイト、などありましたら教えてください。

ちなみにプログラミングを始めた動機は卒論で必要な計算を簡単にしたいと思ったからです。。

二次平面上の4000個ほどある点の、全ての組み合わせの距離の中から、ある範囲内のものを全て見つけ出したいのです。

実は僕の一番の目的はこの計算を楽に簡単に行うことの方です。なので理想はこの計算が出来るソフトをダウンロードするか、似たソフトを拾って来てちょろっと改造することです。

どなたか、こんなことが出来るソフトをご存知でしたら、是非教えて頂きたいです。こっちの質問の方が僕にとって大事なのでよろしくお願いします。

A 回答 (2件)

>二次平面上の4000個ほどある点の、全ての組み合わせの距離


点の座標(X,Y)はどのようにして取得するのでしょうか?

EXCELのデータやテキストファイルなどで取得できるのなら、簡単な
プログラムで計算することができます。

以下は、読み込みがわからないので、座標に勝手に乱数で値を設定して
指定された範囲の距離のみを出力する例です。

#C++Builderがないので、Borland C++ 5.5.1で書いた例です。
#あくまで考え方なので、このままでは使えません
(全角スペースは半角スペースに置き換えてください)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define RMAX 4000
double x[RMAX],y[RMAX];

int main(int argc,char* argv[]) {
  int i,j;
  double dist, rmin,rmax;

  if (argc < 3) {
    printf("usage:dc min max\n");
    return 1;
  } else {
// 最小、最大の読み込み
    rmin=atof(argv[1]);
    rmax=atof(argv[2]);
    printf("min=%f max=%f\n\n",rmin,rmax);
  }
// テスト用に値をセット
  for (i=0;i<RMAX;i++){
    x[i] = rand();
    y[i] = rand();
  }
// 距離の計算
  for (i=0;i<RMAX;i++){
    for (j=i+1;j<RMAX;j++){
      dist = sqrt((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));
      if (rmin <= dist && dist <= rmax){
         printf("%04d:%04d dist = %f\n",i,j,dist);
      }
    }
  }
  return 0;
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
座標はExcelから取るつもりでした。
最近勉強し始めたばっかりで、まだ回答の内容を理解しきれませんが、これを手助けに頑張ってみたいと思います。

お礼日時:2008/11/04 15:26

>おススメの入門書、勉強に使えるサイト



入門書は
http://www.amazon.co.jp/C-Builder-6%E3%82%B3%E3% …

C++Builder専門の質問掲示板もあります

C++ Builder / Turbo C++ 質問の木
http://gimite.net/bcbqtree/qtreemain.cgi
    • good
    • 0
この回答へのお礼

ありがとうございます。
やっぱり、専門書は高いですね…

おススメのサイト、大変参考になりました。
ありがとうございます。

お礼日時:2008/11/04 21:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!