全2241件中681~700件表示
  • 直線と線分の交差判定について高速なアルゴリズム

    タイトルの通りなのですが、 まさにその部分をプログラムで作っている最中です。 直線 : ax+by+c=0 で言うところの a,b,c のパラメータと 線分の2端点 ( x1 , y1 ) , ( x2 , y2 ) がわかっています。 その情報を使って今は  ( ax1 + by1 + c ) * ( ax2 + by2 +c ) < 0 のときに交差している。 という風に処理しているんですが、 どうにもこの部分の処理で時間がかかっているみたいで、 なんとか高速化したいんですが、直線と線分の交差判定について触れてあるサイトが少なかったり、 今使っているアルゴリズムのサイトだったりしか見かけないので、どうにもこうにもなりません。 もしこれが最速のアルゴリズムならしかたないんですが、もし皆さんご存知でしたらお力添えをお願いします。

  • Cコンパイルで出力先の指定

    現在、C++を使っています。 今、C:\Cpp\sari\test.cppを作りました。 これを C:\Cpp\sariEXE\test.exeとして、この場所にtest.exeを作るにはどうしたらよいでしょうか? 尚、コンパイラはdmcを使っています。 オプションなどをどのように指定したらよいかご指導お願いします。m(_ _)m

  • EAccessViolationクラス例外

    WindowsXPでBCB5を使用しています。 柴田望洋氏著、新版明解C++入門編の演習8-14ですが 「文字列sの文字の並びを反転する関数str_rvsを作成せよ。 char* str_rvs(char* s); たとえば、文字列sが"abc"であれば、その文字列を"cba"に更新する。受け取ったsの値をそのまま返却すること。」 と言う問題で、下記の様に作成したんですが、 char* s="a"、または"ab"、または"abc"とすると正常に終了しますが "abcd"とすると、 文字列[abcd]を反転します。 dcba 文字列[dcba]を反転します。 abcd が繰り返された後、「EAccessViolationクラスの例外を生成しました。~」が表示されて停止します。 s="abcde"とすると 文字列[abcde]を反転します。 edcba と1回表示されて、同様のエラーが発生しますが、何が悪いのかわかりません。ご教授願います。 //--------------------- #include <iostream> #include <cstring> using namespace std; char* str_rvs(char* s){ int len=strlen(s); char* tmp; for(int i=0;i<len;i++) *(tmp+i)=*(s+len-1-i); *(tmp+len)=NULL; for(int i=0;i<len;i++) *(s+i)=*(tmp+i); return s; } int main(){ char* s="abcd"; cout << "文字列[" << s << "]を反転します。\n"; cout << str_rvs(s) << '\n'; //getchar(); }

  • C#で、Cのファイルポインタ(?)のような機能

    プログラムの初心者、かつ、C#の初心者です。  C言語では、ファイルポインタを関数から関数へ渡すことができると思うのですが、C# ではどのようにすれば良いのですか? C#を使っていますが、C言語のような構造でプログラムを書いています。  やりたいことは、ファイルポインタを渡しながら、各関数で、ドカドカと計算結果をファイル内に書いていくということです。  宜しくお願いいたします。

    • azsx981
    • 回答数1
  • インライン展開されているか確認する方法

    VisualStudioを使用しています。 タイトルの通り、関数がインライン展開されているかどうかを確認したいのですが、何か方法はあるのでしょうか? void func(){ int a = 0; } void main(){ func(); } 例えば、上のコードで関数func()がインライン展開されてるかどうかを知りたいと思います。 どうかよろしくお願いします。

  • CppUnitはCプログラムにも使えますか?

    タイトルの通りなのですが、今度Cでプログラムを作ることになりました。今まではC++の開発が多かったので、単体試験はCppUnitを使っていました。webで探すと、CUnitというものがヒットしましたが、何者なのかよくわかりませんでした。新しいツールを導入する工数が無いので、できればCppUnitを使いたいです。CppUnitがCプログラムにも対応していればうれしいのですが、Cでも使えるのでしょうか。「ここをこうすれば使えるようになる」というような情報だけでもありがたいです。

    • aneja
    • 回答数1
  • 起動時の引数の取得方法が分からない。

    C++/CLIのFormでの開発なのですが、function(char *str)に起動時の引数を渡したいと考えたのですが、array<System::String ^>をchar型に変える方法が分からず、苦戦しております。 どうやったら良いのでしょうか? エラーは次のように出ます。 CouponPrint.cpp(22): error C2664: 'PtrToStringChars' : 1 番目の引数を 'cli::array<Type> ^' から '__const_String_handle' に変換できません。(新しい機能 ; ヘルプを参照) with [ Type=System::String ^ ] この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 以下、そのときのソースコード int main(array<System::String ^> ^args) { // コントロールが作成される前に、Windows XP ビジュアル効果を有効にします Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); if(!args) { size_t convertedChars = 0; size_t sizeInBytes = ((args->Length + 1) * 2); const wchar_t *wch = PtrToStringChars(args); char *ch = (char *)malloc(sizeInBytes); errno_t err = 0; err = wcstombs_s(&convertedChars, ch, sizeInBytes, wch, sizeInBytes); if (err != 0) printf_s("wcstombs_s failed! \n"); function(ch); free(ch); } // メイン ウィンドウを作成して、実行します Application::Run(gcnew Form1()); return 0; }

    • funaltu
    • 回答数5
  • 起動時の引数の取得方法が分からない。

    C++/CLIのFormでの開発なのですが、function(char *str)に起動時の引数を渡したいと考えたのですが、array<System::String ^>をchar型に変える方法が分からず、苦戦しております。 どうやったら良いのでしょうか? エラーは次のように出ます。 CouponPrint.cpp(22): error C2664: 'PtrToStringChars' : 1 番目の引数を 'cli::array<Type> ^' から '__const_String_handle' に変換できません。(新しい機能 ; ヘルプを参照) with [ Type=System::String ^ ] この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 以下、そのときのソースコード int main(array<System::String ^> ^args) { // コントロールが作成される前に、Windows XP ビジュアル効果を有効にします Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); if(!args) { size_t convertedChars = 0; size_t sizeInBytes = ((args->Length + 1) * 2); const wchar_t *wch = PtrToStringChars(args); char *ch = (char *)malloc(sizeInBytes); errno_t err = 0; err = wcstombs_s(&convertedChars, ch, sizeInBytes, wch, sizeInBytes); if (err != 0) printf_s("wcstombs_s failed! \n"); function(ch); free(ch); } // メイン ウィンドウを作成して、実行します Application::Run(gcnew Form1()); return 0; }

    • funaltu
    • 回答数5
  • STLで、vectorのファイルへの書き出し、読み込み。

    STLで、vectorのファイルへの書き出し、読み込み。 C++ の STL で vector をファイルに書き出し、読み込もうとしておりまして、まずは書き出しで躓いております。 vector<int> testvector; for (i = 0 ; i < 10 ; i++) testvector.push_back( i ); ofstream out("test.dat", ios::out | ios::binary); if (!out) return 1; out.write((vector<int>) testvector, sizeof(testvector)); out.close(); こんな感じのコードですと、 error: no matching function for call to ‘std::basic_ofstream<char, std::char_traits<char> >::write(std::vector<int, std::allocator<int> >, long unsigned int)’ /usr/include/c++/4.2.1/bits/ostream.tcc:173: note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::write(const _CharT*, std::streamsize) [with _CharT = char, _Traits = std::char_traits<char>] とのことです orz. どのようにすれば vector を書き出し、そして読み込むことができるのでしょうか。情報がありましたら是非お寄せください。

    • poerno
    • 回答数1
  • C言語で分からないことがあり、投稿しました。

    C言語で分からないことがあり、投稿しました。 ユーザから2から100までのいずれかの整数を受け取り、1からその数までの総和を計算するプログラムをfor文を使って書け。利用者が範囲外の数値を入力した場合、「値が範囲内にありません」などのエラー表示を行え。ただし、ユーザ定義の関数を1つ使うこと。(ここではfunc1に統一) もしよろしければ、アドバイスいただけると幸いです。

    • noname#160322
    • 回答数6
  • 今回のC言語の質問は以下の内容です>< 解説おねがいします

    今回のC言語の質問は以下の内容です>< 解説おねがいします 実行結果↓ ABC△DEF△△XYZ DEF△△XYZ XYZ △は空白です>< 友達に以下のプログラムを教えてもらったのですがJの意味が分かりません・・・ J=0やJ=1は何を表しているのでしょうか? また、else if(!J)の意味もちょっと・・・ #include<stdio.h> void main(void) { char m[]=" ABC DEF XYZ"; int i,j; for(i=0;m[i]!='\0';i++) { if(m[i]==32) { j=0; } else if(!j) { printf("%s\n",&m[i]); j=1; } } m[i]='\0'; fflush(stdin); getchar(); return ; } 解説してくれる方よろしくお願いいたします><

  • クラスや構造体のarrayを作りたい。

    クラスや構造体のarrayを作りたい。 クラスや構造体のarrayを作りたいのですが、 以下の方法で正しいのでしょうか? ==================================== #include <string> #include <vector> class Test{ public:   std::string sono1;   int sono2;   bool sono3;   //コンストラクタ   Test(std::string tmp_sono1,int tmp_sono2,bool tmp_sono3){     sono1=tmp_sono1;     sono2=tmp_sono2;     sono3=tmp_sono3;   } }; void main(){   std::vector<Test> testObjArray;   testObjArray.push_back(*(new Test("てすと1",1,true)));   testObjArray.push_back(*(new Test("てすと2",2,false))); } ==================================== 質問1: コンストラクタ時、クラス内の変数へ引数の値を渡す時、 上記のようにtmpを作成する以外の方法はありますか? 質問2: push_back時、クラスをインスタンスしてvectorに渡すにはこのような記述であってるのでしょうか? 「testObjArray.push_back(*(new Test("てすと1",1,true)));」 一応問題なく動いているようなのですが心配です。 よろしくお願いします。

    • kuwezi
    • 回答数5
  • .NET C++/CLIのガーベジコレクションについて

    .NET C++/CLIのガーベジコレクションについて .NET C++/CLIで、マネージピープの配列をネイティブDLLにポインタ引数として渡す動作で、 配列が正常に渡っていることは確認したのですが、ネイティブDLL側で配列の処理をしている最中に、 ガーベジコレクションが起こり、誤動作することはあるのでしょうか。 ちなみに、マーシャリングは以下のように行いました。 // マネージ側コード [DllImport("native.dll")] void ArraySet( [MarshalAs(UnmanagedType::LPArray)] array <int> ^ Data ); array <int> ^ Data = gcnew array <int>(64); ArraySet( Data ); // この中で配列の処理中にガーベジコレクションが起こると誤動作?

  • 初心者です。VisualStudioについて教えてください。(C++)

    初心者です。VisualStudioについて教えてください。(C++) VisualStudioのWindowsフォームプロジェクトを作成すると 「Form1」という簡易画面が自動で作成されます。 その画面にボタン等を追加していくと、そのボタン押下時の処理が 「Form1.h」にどんどん追加されていきます。 なぜヘッダファイルに処理の実装を記述していくのでしょうか? 基本的に、ヘッダとは関数やクラスを定義するだけのもので 実装はcppファイルに記述していくものだと研修等で教わったのですが。 なぜなのでしょう? ご教授下さい。 また、「Form1.h」ではなく「*.cpp」ファイルに実装を記述したい場合 どうのようにすればよいのでしょうか?

    • jbtftoc
    • 回答数3
  • 非const参照とconst参照の違いは

    非const参照とconst参照の違いは この違いがさっぱり分かりません。 ご回答お願いします。

    • noname#139165
    • 回答数4
  • C# csvでセル内で改行するには

    C# csvでセル内で改行するには お世話になっております。 C#でYahoo商品データのcsvを作るプログラムを作っております。 サイズとカラーの項目が一つのセルに格納する仕様になっています。 以下の用にセル内で改行する様にしたいのですが 参考になるページが無く困っております。 色 赤 青 黄 サイズ 23 24 25 ご存知の方おりましたらよろしくお願いいたします。

  • C言語でscanf()が先に実行されるのはなぜですか?

    C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }

  • C# に関する質問です。

    C# に関する質問です。 URLをパラメータを解析しているのですが、わけあってHttpUtility.ParseQueryString が使えない状態です。 なので他のクラスで、URLのパラメータを解析して、Dictionary<string,string> に入れたいと思ってます。 例えば、 パラメータ string datas = "?var1=1&var2=2&var3=3&var1=4" を、 Dictionary<string, string>に、 ("var1", "1") ("var2", "2") ・・・ という形で格納したいと思ってます。 恐れ入りますが、よい方法があれば教えてください。

    • xiha
    • 回答数3
  • 非const参照とconst参照の違いは

    非const参照とconst参照の違いは この違いがさっぱり分かりません。 ご回答お願いします。

    • noname#139165
    • 回答数4
  • 固定長char型のvector配列を作成したく、

    固定長char型のvector配列を作成したく、 いろいろと調べてみましたがわからなかった為質問させて頂きます。 10桁固定の品番があるとして、 この品番をpush_back()にてどんどん追加していけるように考えております。 vector<string> hinban;・・・stringは使用禁止となっています。 vector<char*> hinban; ・・・ポインタの値が変わる為使用できません。 上記の方法を可能にする方法をご存知の方ご教授お願い致します。