επιστημη(@episteme) の回答履歴
![](https://gazo.okwave.jp/okwave/images/contents/av_nophoto_100_6.gif)
- プログラムの書籍について
勉強の為に「Professionalゲームプログラミング 2ndEdition」という本を買ってきました サンプルプログラムはwebからダウンロードするらしいのでサイトにアクセスしてみましたところ ウェブページが見つかりませんと出てアクセスできませんでした サポートが終了したということですか? この本のサンプルプログラムをダウンロードするのはあきらめたほうがいいのでしょうか? http://www.Cmagazine.jp/books/ http://www.amazon.co.jp/dp/4797332611/ よろしくおねがいします
- 乱数の発生確率(c++)
0,1の2値の乱数を発生させるとき、1の発生確率を例えば20%にするにはどのようにすればよいのでしょうか。 発生乱数を除算して余りを求めて・・・・の方法など試したのですが、うまいこといきませんでした。(プログラムが動かないのではなく結果が) 私の確率の認識が間違っているのかもしれませんが、この場合、1000個発生させた場合、300近く1が出れば良いということですよね。
- C言語のプログラムに関する質問です。
C言語の初心者です。 i=0~nまでのデータch1[i]の中から、負の値の個数を抽出したい場合、どのようにプログラムを書けばよいでしょうか? よろしくお願いします。
- 組み合わせと順列 アルゴリズム
こんにちは 組み合わせと順列についてです。 順序関係のある要素で構成される集合から一定の数をとり、順列を辞書順で生成する方法がわかりません。 うまく説明できないので、例を示します。 たとえば26文字のアルファベットから4文字を選んで辞書順に生成するプログラムはどのようにやればいいのでしょうか? このアルファベットの例だと abcd abce abcf ・・・ abcz abdc abde ・・・ zyxw のようになると思います。 要素と長さが決まっている場合で順列を生成する部分は大丈夫です。(C++ STLのnext_permutationにあたる部分) 一応自分なりに考えたやり方は26進数4桁のように考えて、それを1ずつ増やし、全体で2回以上使われていないかを調べる と思ったんですが、あまりスマートじゃないし要素がとびとびのアルファベットのときなどに応用が利かないと思いました。 指摘していただければ補足しますので、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ainobakuda
- 回答数4
- 組み合わせと順列 アルゴリズム
こんにちは 組み合わせと順列についてです。 順序関係のある要素で構成される集合から一定の数をとり、順列を辞書順で生成する方法がわかりません。 うまく説明できないので、例を示します。 たとえば26文字のアルファベットから4文字を選んで辞書順に生成するプログラムはどのようにやればいいのでしょうか? このアルファベットの例だと abcd abce abcf ・・・ abcz abdc abde ・・・ zyxw のようになると思います。 要素と長さが決まっている場合で順列を生成する部分は大丈夫です。(C++ STLのnext_permutationにあたる部分) 一応自分なりに考えたやり方は26進数4桁のように考えて、それを1ずつ増やし、全体で2回以上使われていないかを調べる と思ったんですが、あまりスマートじゃないし要素がとびとびのアルファベットのときなどに応用が利かないと思いました。 指摘していただければ補足しますので、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ainobakuda
- 回答数4
- クイックソートの比較交換回数について
クイックソートの比較交換回数を変数countで計算し、表示させようとしているのですがうまくいきません。 改善策を教えていただけないでしょうか。 /* クイックソート */ void quickSort(randomlist_t data[],int n){ /* 実質的な処理は何もせず、クイックソートを実際に行う関数を呼び出すのみ */ int count = 0; quickSort_1(data,0,n-1,count); printf("count:%d\n",count); } /* 実際にクイックソートを行う関数 */ void quickSort_1(randomlist_t data[],int l,int r,int count){ int v; if(l >= r) /* 整列する要素が1つなら、何もしないでリターンする */ return; v = partition(data,l,r,count); /* 枢軸vを基準に分割する */ quickSort_1(data,l,v-1,count); /* 左の部分の配列a[l]~a[v-1]を整列する */ quickSort_1(data,v+1,r,count); /* 右の部分の配列a[v+1]~a[r]を整列する */ } /* 配列a[l]~a[r]を分割する。枢軸の添え字を返す */ int partition(randomlist_t data[],int l,int r,int count){ int i,j,pivot; randomlist_t t; i = l - 1; j = r; /* ポインタiとjを初期化する */ pivot = data[r].no; /* 一番右端の要素を枢軸にする */ for(;;){ /* ポインタiとjとがぶつかるまで繰り返す */ while(data[++i].no < pivot) count++; /* ポインタiを右へ進める */ while(i < --j && pivot < data[j].no) count++; /* ポインタjを左へ進める */ if(i >= j) break; /* ポインタiとjがぶつかったらループを抜ける */ t = data[i]; data[i] = data[j], data[j] = t; /* iの指す要素とjの指す要素を交換する */ count++; } t = data[i]; data[i] = data[r]; data[r] = t; /* a[i]と枢軸を交換する */ count++; return i; }
- ベストアンサー
- C・C++・C#
- catsandanddogs
- 回答数5
- 構造体へのポインタについて
初心者です。 C入門書の著者のサポートページには正誤表とダウンロードしかないためこちらで質問させていただきます。 下記のコードの下から二行目の構造体へのポインタ (Car *) について、中学生に説明するように基本的な考え方、目的、書式、参考URLなどを教えて下さい。 ポインタについては、該当の章を読み直し基本事項については理解しておりますが、突然あるページから(Void *)や(Char *)など括弧で閉じるものが説明なしに出てきてちょっと混乱してます。(汗 どうぞ宜しくお願い致します。 #include<stdio.h> /* 構造体型struct Carの宣言 */ typedef struct Car{ int num; double gas; }Car; int main(void) { printf("int型のサイズは%dバイトです。¥n", sizeof(int)); printf("double型サイズは%dバイトです。¥n", sizeof(double)); printf("構造体structCar型のサイズは%dバイトです。¥n", sizeof(Car)); printf("構造体struct Car型へのポインタのサイズは%dバイトです。¥n", sizeof(Car *)); return 0; }
- C++の練習をしています。
クラスAをmainでインスタンス化してそれを参照(もしくはポインタ)で他のクラスB内で生成したいのですが、具体的にはどうしたいいでしょうか? またこのような参照は「同期」と似ていると思ったのですが、意味が違うのでしょうか。 初心者で妙な質問かと思いますがどうぞよろしくお願いします。
- ベストアンサー
- C・C++・C#
- rivalknockout
- 回答数3
- クラスの練習をしています。
ある方から、「参照(もしくはポインタ)を使って、人オブジェクトがまるで建物オブジェクトAから建物オブジェクトBに移動したようにしなさい」と言うお題を頂きました。 「生き霊」がなんちゃらとも言ってたのですが、 私は、人クラスを例えばmainでインスタンス化して、その実体をコピーさせて建物クラスAと建物クラスBにそれぞれ置き、それらを同期させてみてはと考えたのです。 初心者なので説明が難解してると思いますが、もし意図しているものが汲み取れた方がいらっしゃったら、 クラスの参照(もしくはポインタ)の扱い方(?)を教えてください。
- ベストアンサー
- C・C++・C#
- rivalknockout
- 回答数2
- visual c++でutf-8の扱い
visual c++でutf-8をprintfするにはどうすればいいのでしょうか。終端は00とします。 例えば 32 23 7c e4 bd 90 00 は 2#|佐 と表示されるようにしたいです。
- VC++でUTF-8のファイルを出力したい
VisualStudio2005で以下のコードを実行したとき、ファイルをUTF-8で作成したいのですが、なにか方法がありますか? 現状では、SJISで出力されてしまいます。 ソースは、『ファイル』-『保存オプションの詳細設定』で『UTF-8(BOM付き)』にしてあります。 #include <stdio.h> int main(int argc, char* argv[]) { FILE *fp; fp = fopen( "c:/temp/log.txt", "w"); fprintf( fp, "%s\n", "あいうえお" ); fclose( fp ); return 0; } ちなみに、”あいうえお”の部分を(EmEditorで)SJISに無くてUTF-8にだけ存在する文字にした場合、VisualStudioのエディタ上では正しく文字が表示されます。 したがって、VisualStudio内ではリテラルの文字コードはUTF-8で扱われていると考えられます。・・・が、上記プログラムで出力すると文字化けします。つまり、SJISで出力されてしまいます。 ご教授のほど、よろしくお願いいたします。
- 締切済み
- C・C++・C#
- bigbang2010
- 回答数5
- VC++2005のスレッド使用方法について
現在、VC++2005 SP2にてDLLを作成しています。 DLLには一つスレッドがあり、開始関数が実行されれば、スレッドが起動。終了関数を実行すればスレッドを停止させたいと思っております。 関数を分けていますので、以下の内容をグローバルで宣言したいと考えています。 Thread^ oThread = gcnew Thread( gcnew ThreadStart( &CUart::ThreadProc ) ); ~~~~~~~~~~~~~~~~~~~~~~~~ 実行関数です。 oThread->Start(); //開始関数のスレッド開始 oThread->Abort(); //終了関数のスレッド停止 現在、宣言をグローバルのところに配置して、ビルドすると エラー 1 error C3145: 'oThread' : グローバルまたは静的変数は、マネージ型 'System::Threading::Thread ^' を含むことはできません とエラーが発生してしまいます。 いろいろ調べましたが、なかなか進んでいない状態です。 使用方法が間違っているのでしょうか?申し訳ありませんが、教えてください。 もし、別の方法があればご教授願います。 よろしくお願いします。
- C++で画像を被らないようにランダムに表示
初めまして。 現在、C++を勉強しているものです。 配列に収納された画像をランダムにpictureboxに表示させたいです。 しかし、ダブらないようにしたいです。 1枚だけならどこかでソースが載っていたのでそれをコピーしたらいいだけだと思うので問題はないのですが、3枚をランダム表示させ、なおかつ同じ物が表示しないようにしたいのです。 1枚目の画像が決定した後、それ以外の画像からランダムに選択。さらに1枚目・2枚目の画像が決定したらそれ以外の画像からランダムに選択。 初心者の案としては (1)重複なしの乱数を生成 (2)生成された数を配列と参照する (3)参照された画像をpictureboxに表示する こんな事が出来ますか? また、どうしたらいいのでしょうか? よろしくお願いします。
- C言語でレジストリ取得「未解決の外部シンボル」
C言語でレジストリを取得する時に「未解決の外部シンボル」エラー レジストリを取得したくて、下記のコードで実行したら、 ====================================================================== #include <stdlib.h> #include <stdio.h> #include <windows.h> #include <shlwapi.h> int main(void) { char Value[1000]; DWORD ValueSize; char *DefaultValue = ""; ValueSize = 1000; /* HKEY_LOCAL_MACHINEのSoftware\masapicoというキーにあるfooという名前のレジストリ値を取得 */ SHRegGetUSValue( "Software\masapico", "foo", NULL, Value, &ValueSize, FALSE, DefaultValue, lstrlen(DefaultValue) + 1); /* 結果を表示 */ printf("%s\n", Value); return 0; } ====================================================================== こういうエラーが出ます。 1>コンパイルしています... 1>testExe.cpp 1>リンクしています... 1>testExe.obj : error LNK2019: 未解決の外部シンボル _SHRegGetUSValueA@32 が関数 _main で参照されました。 1>I:\testExe\Debug\testExe.exe : fatal error LNK1120: 外部参照 1 が未解決です。 いろいろ調べましたが原因はわからず困っています。 Javaはある程度やってましたが、Cに関しては初心者です。 環境は Win7 64bitです。 WinXPの環境でコンパイルしても同じ現象です。 その時のエラーは error LNK2019: 未解決の外部シンボル _SHRegGetUSValue が関数 _main で参照されました。
- ベストアンサー
- C・C++・C#
- segawa_3ker
- 回答数1
- 通常関数とメンバー関数のやりとりでコンパイルエラー
下記にあるようなプログラムをコンパイルしたら、下記のエラーになりました。 どこに問題があるのでしょうか? 「error C2227: '->SetValueXyzwpr2' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。」 //frrjif.h class _DataPosReg : public COleDispatchDriver { // Operations public: BOOL SetValueXyzwpr2(long Index, float X, float Y, float Z, float W, float P, float R, float E1, float E2, float E3, short C1, short C2, short C3, short C4, short C5, short C6, short C7, short UF, short UT); }; //frrjiftestDlg.h #include "frrjif.h" class CFrrjiftestDlg : public CDialog { public: CFrrjiftestDlg(CWnd* pParent = NULL); // standard constructor virtual ~CFrrjiftestDlg(); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation _Core *pCore; _DataPosRegXyzwpr *pPosRegXyzwpr; _DataSysVarPos *pSysVarPos; }; //frrjiftestDlg.cpp #include "frrjiftestDlg.h" void MyDataHandler(sFrameOfData* FrameOfData) { CFrrjiftestDlg::pSysVarPos->SetValueXyzwpr2(X,Y,Z,W,P,R,E1,E2,E3,C1,C2,C3,C4,C5,C6,C7,UF,UT); //↑ここでコンパイルエラー //↑error C2227: '->SetValueXyzwpr2' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。 } void CFrrjiftestDlg::OnBnClickedButton1() { Cortex_SetDataHandlerFunc(MyDataHandler); }
- 【至急】予想通りの結果が得られません。
下記のプログラム(C++)を実行しようとすると、以下の2と3の間で止まります。 1、「_/_/_/_/...」が表示される。 ↓ 2、「Hideaki...」が表示される。 ↓ 3、ユーザに性別(sex)の入力をさせる。 =停止(反応なし)= ↓ 4、継承クラスのWizardが「"Fire"を放つ」と表示される(はず・・・。 #include <stdio.h> #include <cstring> #include <cstdlib> #include <ctime> // if をたくさん使いたい // 所持金をつかったジョブシステムでゲーム // 所持金をメダルや経験値や武器・防具に交換できる struct Hajimete_no_struct { int i; char str; }; class BaseCharacter { protected: char name[200]; private: char sex[200]; //int HP; int EXP; char weapon[200]; char protector[200]; public: BaseCharacter(void){} void speak(const char speaker[200], const char speakThis[200]) { printf("%s:%s\n",speaker, speakThis); } }; BaseCharacter* p; class Wizard : public BaseCharacter { int MP; public: Wizard (void){} void magic(const char magicThis[200]) { printf("%s:%sを放つ", name, magicThis); } }; // ******************************************************************** // SimpleFunstion // ******************************************************************** void Start(void); void Start(void){ printf("\n\n\n_/_/_/_/_/_/_/_/_/_/_/_/_/_/\n = Fantasy =\n_/_/_/_/_/_/_/_/_/_/_/_/_/_/\n\n\n");} // sex void Ask01(void);int i; void Ask01(void){ printf("[ 1.woman 2.man ]\nChoose this sex:");scanf("%d", &i); printf("Your selection : %d\n",i); if (i == 1) { printf("1.woman\n"); }else if(i == 2){ printf("2.man\n"); }else { printf("Please select from 1 or 2.\n"); Ask01();} } // ******************************************************************** // intMain // ******************************************************************** int main(void) { Start(); BaseCharacter human01; human01.speak("Hideaki", "My name is Hideaki."); Ask01();//sex !This function will not use so destroy. Wizard human02; human02.magic("Fire"); }
- ベストアンサー
- C・C++・C#
- rivalknockout
- 回答数3
- C# monthCalendarについて
フォームにmonthCalendarを張り付けたままでは当月の表示になりますが それを任意の年月にしたいのですがどうすればいいのでしょうか? アドバイスお願いいたします。
- error C3867 関数呼び出しには引数リスト
VS2008 VC++ 環境にて、コンパイルで、「error C3867: 'CFrrjiftestDlg::MyDataHandler': 関数呼び出しには引数リストがありません。メンバへのポインタを作成するために '&CFrrjiftestDlg::MyDataHandler' を使用してください」 が発生しました。ネットで類似のエラーを見ましたが、エラーは回避できませんでした。どうすれば、エラーが直るのか教えてください。 【エラー箇所のソース】 void CFrrjiftestDlg::OnBnClickedButton1() ← このソースは、frrjiftestDlg.cpp で記述 #include "frrjiftestDlg.h" この間にいろいろな処理を記述 Cortex_SetDataHandlerFunc(MyDataHandler); ← この行でエラー発生 【frrjiftestDlg.h のヘッダ】 void MyDataHandler(sFrameOfData* FrameOfData); ← これを記述 【MyDataHandler の記述】 void CFrrjiftestDlg::MyDataHandler(sFrameOfData* FrameOfData) ← これは、frrjiftestDlg.cpp で記述 この後に処理を記述 ざっと、こんな感じで書いています。 エラーの説明をみると、「メンバへのポインタを作成するために '&CFrrjiftestDlg::MyDataHandler' を使用してください」となっていますが、いろいろ書いてみましたが、だめでした。
- C#のフォーム間のイベント駆動
C#悩んでおります。初心者です。 Form1とForm2があります。 Form1にはピクチャボックスが二つ並んでいて。 Form2にはチェックボックスが二つ並んでいます。 Form2のチェックボックスをオン-オフすると、それぞれのピクチャーのイメージを変更したいのですが、 なにせ、Form2の状況をForm1に知らせる方法がわかりません。 なにやら、デリゲートとイベントを使ってForm1に知らせるらしい、ということまではわかったのですが、具体的にどうやるのかわかりません。 いろいろネットで調べてはいるのですが、Form1,2が分かれていない例や、静的変数を使った例が多く、だめです。 静的だとイベントが発生しないので、イメージを更新するタイミングが無いですし、Form1,2が分かれていない場合を無理やりに分かれて記述すると、必ず記述のエラーが出ます。 どうすればいいのでしょうか?