検索結果 1883 件

by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

異なる意見/考え方 が書かれていた方が何かの参考になるかもしれないので,書いてみる. > ・引数付きコンストラクタ… 「書くのが面倒」とかそういう話ではなくて,「どうしてそうするのか?」という理由/必要性 の観点から考える事柄かと. (個人的には,本件の「敵」みたいなのは,メソッドの引数として都度受ければ済むだけの話と見えるので,この形にする必要はないと思う.) > ・インスタンスの数×ポインター分のメモリがもったいない よほど切羽詰った環境でやってるのでもなければ,その程度のメモリ節約を理由とした設計を考える必要はないんじゃないかなぁ. グローバルな何かに依存する方向に持っていくというのは,...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

なにはともあれ「必要なものだけを書く」から無意味に逸脱しないこと を心掛けると良いんじゃないかなぁ. 「こういう形にしとけば → こういうこともできるよね」 とかいう話があったとしても,その「こういうこと」をそもそもやる予定が無いのであれば,その形にすることを選ぶ理由にはなり得ない. 特に,その形にすることに相応のデメリットが存在するようであれば,そのデメリットしか享受しないことになるのだから,その場合は選ばないのが正解であろう. 「自分が今作っている物の範囲を超えた何かをもサポートできる(かもしれない)枠組み!」みたいなのを目指す意味は無い(そのこと自体が目的でないなら). 「べったり」でO...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 2 の倍数でも 3 の倍数でもないものの和を求めたい
返信数: 4
閲覧数: 17462

Re: 2 の倍数でも 3 の倍数でもないものの和を求めたい

実装する前に,「どうすれば良いのか?」というのを日本語で具体的に説明してください(説明できる状態まで考えてください). これは算数の話なので,プログラミングとは無関係です. で,それができたら,その話をその通りに実装してください. おわり. …っていうだけの話になるかと. 例えば,話を少しだけ単純にして, 「N以下の正の整数の総和を求む関数 F(N) があるとき, 2つの正の整数a,b(ただし a<b)に関して,a以上b未満の正の整数の総和を求む関数 G(a,b) を F() を用いて書け」 とかいう話だったらどうですか? F(b) は b以下の総和. F(a) は a以下の総和. そしたら例...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

おまけ:これは完全に邪推(っていうのか?)だけども,もしも

コード:

class AbstEnemy : public Task { ... };
class AbsBullet : public Task{ ... };
みたいなことになっていて,「Update() は引数無し」という話がこういうところから生じていたりするのであれば,まずそこから考え直すと自由になるんじゃないかな.
すなわち,「こいつらって Task から派生する必要が本当にあるん?」っていう.
(さらには,「そもそもこの Task ってやつ,必要なの?」とか)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

> として、敵クラスでは特にインスタンス化せず引数として持ってくるのがいいのでしょうか。しかしこの場合updateはオーバーライドしてるので引数変えるなら大幅に変更が必要になりそうなのですが。 (敵クラスが「インスタンス化」するという話は,何かを間違っている感を感じますが) 実装形態に関しては好きな形でやれば良いでしょう. 何かしら外部とのやり取りをせねば仕事をできないであろう update() が,あえて(?)「引数無し」にされている理由は私(というか,あなた以外)には不明ですから,どんな形が望ましいのかはあなたにしか判断できません. あなたにとって最もやりやすい形にするのが良いでしょう. ...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

> これだと結局インターフェースを継承しているクラス(ここでは弾管理クラス)が敵クラスで必要になっているのでは…と思いました。 必要になってないですね. そういうのはコンソールアプリのプロジェクトでも作ってそこで小さい検証コードを作ってやってみればよいです. 例えば,このような基底クラスを設けたとする. //Base.h class Base { public: virtual ~Base(){} //(テスト用なのでこの動作自体に特別意味は無いが,とにかく処理内容を以下のように規定する) //引数をコンソールに出力する. //戻り値として 77 を返す. virtual int Output...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 32727

Re: 条件式のelseの書き方

関数を提示するならするで
「この関数というのは何をするもので,引数はこういうもので,戻り値はこうなる」っていうような説明をまともにすればいいのに.
そういった正しい動作に関する説明が関数 moji() に対して存在していたら,こんな無意味に話がこじれたりしないよね,きっと.

(まぁ,それが把握できているならこんな関数名を付けてはいないであろう,とも思えるが)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

そこは言語文法の範疇なので,ここで素人説明するよりはまともな説明を見て学んでもらうべき事柄と思う. とりあえずものすごくざっくりと書いておくと, //なんか基底クラスがあって class Base {...}; //それをpublic継承したクラスがあるとき… class Deriv : public Base {...}; //これが可能 Deriv D; Base *pBase = &D; っていうことになってる. 「継承」「仮想関数」「ポリモフィズム」「is-a」「静的な型/動的な型」とかいったような言葉を「C++」と絡めて検索するとかしても相応に必要な情報にたどり着くんじゃないかと思う...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

逆に言えば,「敵」がアクセスするのが実際のところ未来永劫 BullterManager である(つまり,そこには実装変更の自由度は要らない)ということが確定事項なのであれば,あえてそんなことをしなくても良いとも言える.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

「敵」から見れば,自身がアクセスする IXXX がとにかくその役割を約束通りに果たしてくれさえすればよいので,その相手は別に BulletManager じゃなくてもいい( ← ここが変わる).

例えば,「この BulletManager ってやってること少なくね? 別のやつにこいつの機能も持たせちゃえば要らなくね?」とかいう変更をして BulletManager なる存在が消滅したとしても敵の実装には全く影響が及ばない.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

> 結局どこかで弾管理クラスをインクルードしてこなきゃいけない

少なくとも,IXXX のメソッドを呼ぶ側(敵)は IXXX のクラス定義を必要とするから,
「class IXXX の定義が書かれたヘッダ」をインクルードする必要はある.
それは間違いない.

しかし,
「敵」から見れば IXXXのポインタが指す物が何なのか(:動的な型)は分からないし,知る必要も無いのだから
「IXXX を継承した BulletManager」の定義が書かれている BulletManager.h をインクルードする必要はない
ここが違いとなる.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

で,それはそれとして, 「敵」がやりたいことは「どこかが弾を管理しているから,そこに新しい弾を登録する(:管理下に置いてもらう)」なのであろうから, 「どこか」が実際には何者なのかを知る必要も無く,例えば, class IXXX //名前は知らんが {//話と関係ない所は全て省略 public: //弾を管理下に登録する void RegisterBullet( std::shared_ptr<AbstBullet> ); }; みたいなのがあれば良い, ……っていうのが「インタフェースがどうの」いう話だよね. 単純には,「敵」の Update() を //必要なら rXXX のメソッドを使っ...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

現実装を批判しているのではなく,「そういうことから考えてみたらどうかな?」という一個人の意見を言っているだけなので,誤解なきよう.

最初にそういった入れ物(?)だけを増やした結果,本来必要な事柄がやりにくくなっている(あるいは「なんだかなぁ」と思える)のであれば,その実装形態があなたにとっての枷になっているということではあるまいか?
であれば「それらの入れ物の存在を前提としない状態で」一度考えてみてはどうか.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

EnemyManager なんて,実質,正体は

> std::vector<std::shared_ptr<AbstEnemy>> _vector;

だよね.
これ本当に必要?
(おそらく BulletManager の側もまた同等程度の物でしかないのでは?)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 10238

Re: 敵の弾発射に関するコード

> 弾の管理クラス,敵の管理クラス 「弾の管理」って具体的に何をするの? 「敵の管理」って具体的に何をするの? こいつらの役割は何なの? 何のために存在するの? 本当にそんな縦割り(?)な感じにする価値はあるの? etc… が他者には不明(あなたしか知らない)なので,何を問うているのかも不明. 個人的には(問うている事柄とは異なるであろうが) 例えば,BulletManager のメソッド > void GenerateBullet(int index,const eBullet ebullet); が ebullet とかいう値でswitchしているのが非常に馬鹿馬鹿しいと思える. これを誰...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 授業でわからないところがあったので質問です
返信数: 2
閲覧数: 3419

Re: 授業でわからないところがあったので質問です

表題は

> 質問です

となっているが,質問は書かれてないよね.
あなたが実際に直面している問題点について具体的に述べねば何も伝わらない.(何もかもできない! コードを1文字も書けない! なんてことはないだろうし)

実は「質問」ではなくて,「こういう問題が出たけど自分ではやりたくないから誰かやれや」みたいな話なのであれば,その旨を明言する必要があるだろう.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 再帰関数 総和問題
返信数: 7
閲覧数: 5637

Re: C言語 再帰関数 総和問題

区間を半分にしていくとか.

コード:

int sumof( int m, int n )
{
	if( m > n )return 0;
	if( m==n )return m;
	int h = (m+n)/2;
	return sumof(m,h) + sumof(h+1,n);
}
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 再帰関数 総和問題
返信数: 7
閲覧数: 5637

Re: C言語 再帰関数 総和問題

せっかくだから俺は
「mからnまでの和」を「m+n+(m+1からn-1までの和)」ということにするぜ!

コード:

int sumof( int m, int n )
{
	if( m > n )return 0;
	if( m==n )return m;
	return m + n + sumof(m+1,n-1);
}
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 実際に二分探索を使うとして
返信数: 4
閲覧数: 11454

Re: 実際に二分探索を使うとして

しかし,C++で今現在実装作業に従事している者が > C言語を勉強する必要 とか言っている状況が謎なのだが…… 他にも「ほかの人が苦労して何行もかけてつくっている」「基本情報処理の試験テストでも」とか謎めいた記述が散見されることから想像するに, 二分探索というものを「自前で実装できること」を求められている場面でありそうな予感もする. (仮にそういう場面だとしたら,binary_search って1行書いてドヤってるのはマズイよね.「ほかの人」がやれていることをあなたもやれること,が求められているのでは?) まぁ,どんな場面なのかはわからんけども, 「二分探索って何なのか全然わかんねぇけど,ST...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 実際に二分探索を使うとして
返信数: 4
閲覧数: 11454

Re: 実際に二分探索を使うとして

状況がわからん.

仕事か何かで(?),「実装してくれ」っていう話なら何を使ってもまともな処理時間でまともな結果が得られる物ならOKじゃないかな.
(実装された機能を利用する側は,その内側の具体実装コードを知りたいわけじゃない,ふつうは見ない.)

そうじゃなくて,「実装してみせてみろよw(できればな)」とかいう話だと自前で実装しろっていう話であろう.

---

で,それはそれとして,

> ただxがvに含まれているかどうかを探す

っていうだけの機能なのに,元のコンテナの中身が変更されてしまうってのは仕様としてOKなのか?
という話の方が気がかりな感じ.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 3729

Re: シューティングゲームの敵の弾を連続して発射

ま,平たく言えば,

「少なくともそんな漠然としすぎた質問を投下しないような最低限のレベルには自力で達しないとどっちにしろ無理じゃね?」ってことになるかと.

非常に面倒なことだが,こればかりはどうしようもない.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 3729

Re: シューティングゲームの敵の弾を連続して発射

一応補足しておくけど,
上記の話での「現状」という語の範囲は,全体のうちの「弾」に関連する部分ね.

> シューティングゲーム

全体を自前で最初から作れ,と言っているわけではないよ.
(とは言え,一部だけを取り換え可能な形に全体の実装ができているのかどうか等は不明だし,部品としてどこかを切り出して流用するにしても存在しているコードを相応に把握する必要があるから,その点の難易度は問題となり得る.)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 3729

Re: シューティングゲームの敵の弾を連続して発射

文面の雰囲気から「現状」とかいうのを自身で作ったわけではないのであろうな,と推測するので, もしもこの推測が正解であれば, その「現状」を一切合切捨てろ というのが最も真摯なアドバイスとなり得るであろう,と考える. というのは,こんな質問をしている時点でその「現状」の実装内容を(そこから出発して改造していくために必要となるレベルで)把握できていないであろうから. 個人的な意見だけど,他人のコードから出発してどうこうしようというのは,大抵の場合,自身が最初から書いていくのに比べて難易度が高いものとなるよ. 「同時に複数撃てない」という仕様が先にあって実装されているコードから改造するのは(その仕様...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でピラミッドをつくる課題のアドバイスをいただきたいです
返信数: 3
閲覧数: 10363

Re: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

こういう話でしょう.

コード:

const char Circle[] = "○";
const char Triangle[] = "△";
const char Square[] = "□";
const char * const Shapes[3] = { Circle, Triangle, Square };  //配列

for( int i=0; i<3; ++i )
{	printf( "%s\n", Shapes[i] );	}  //配列添え字でどうの
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 課題のヒントを教えていただきたいです
返信数: 7
閲覧数: 4191

Re: 課題のヒントを教えていただきたいです

> 2行ある数字をどう処理すれば

xとyの値を得るところで躓いているとかであれば,
「C言語 カンマ区切り 入力」とか何とか,目の前の問題を表しそうな文言でググる.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 課題のヒントを教えていただきたいです
返信数: 7
閲覧数: 4191

Re: 課題のヒントを教えていただきたいです

> まず何から始めたら良いか ヒント 何はともあれ,まずは仕様を明確にすること.話次第でやるべきことが変わる可能性があるので. (不明点は「こういうのはどうなん?」と出題元に問うべし) 例えば, 「複数のファイル間でファイル内のデータの個数が異なっていた場合にはどうするのか?」とか, 「ファイル内のデータ個数の上限は仮定しても良いのか?」とか. 「何かエラーがあったときにはどうするのか?」とか. 実装に関しては,いきなり全てをやれないのであれば,各要素のみを実装して試すことを行うと良かろう. 例えば, 「単一のファイルからデータ(x,y)をあるだけ読込んで表示するだけ」とか. 「何かてきとーに...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 4989

Re: C++20で多量のthreadを一括発行と自動同期する方法

全ての箇所のルールに従った正当な(?)マルチポストであれば
ここのルールによって相互リンクが成されるのだから,あなただけでなく,読み手全員が

> みんなの叡智を拝見

できる形となるわけですな.すばらしい.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 4989

Re: C++20で多量のthreadを一括発行と自動同期する方法

私が熱心な宗教家ならば真っ先に teratail の側に書いてるであろう.
あっちは厳しいですぞ.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 4989

Re: C++20で多量のthreadを一括発行と自動同期する方法

> 何が悪いの?

誰が「悪い」と言ったのか?

私はマルチポストである旨を周知しただけ.
それがきっかけとなって,あなたが利用している各所のルールに従っていないことに気付いたのであれば,今からでも各所において適切に対処すればよいのではあるまいか.
ルール違反を認識してもなお適切な措置を講じず,自分勝手だけを貫こうとするのであれば,それは「悪い」と思うが.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 静的変数 [漸化式問題]
返信数: 6
閲覧数: 11568

Re: C言語 静的変数 [漸化式問題]

エラーというのがコンパイル時の物なのであれば,それは文法面で異常なコードを書いているということ. 例えば,seq(a) とか書いてるけど,引数無しの関数にaを渡すのは異常. きっとエラーメッセージも「何が悪いのか」を言ってきているはずだから,そこはちゃんと読むべし. で,それはそれとして… > 「次の漸化式の第2項から第10項までを表示するプログラム。ただし、第n項の値を戻り値として、引数なしの関数seqを定義して利用すること。」 具体的に何をどうすれば題意を満たすことになるのか? という点をあなたは把握しているのでしょうか? とりあえず,私にはこの文章はちょっと何言ってるかわからないので,も...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーマリオのようなゲームの作成
返信数: 8
閲覧数: 5487

Re: スーパーマリオのようなゲームの作成

そのような調査を自身で行ってみて,どうしても解せない現象が観測されるのであれば, その部分に焦点を絞った具体的な質問を行ってください. 例えば… 実際に変数値を確認してみたら,地面に触れた時にはちゃんとこの判定が働いていて結果としてこの変数の値が〇〇になっている.OKなハズだ. にもかかわらず,以降の処理の時点での値は××になってしまっているようで,そのために処理が正当な方向に進まないのだ,というところまではわかった. しかしながら,前述のように変数値が○○から××に変わってしまう理由がわからない.この変数の値を変更するような処理は他には無いハズのに! 何故変わってしまうのでしょうか?? …と...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーマリオのようなゲームの作成
返信数: 8
閲覧数: 5487

Re: スーパーマリオのようなゲームの作成

自身でデバッグしてください.

「すり抜ける」ときのプログラムの実際の動作を追い,何が起こっているのかを確認してください.

【本来ならば処理がどの経路を通って,変数値がどのように変遷していくのか】というような,そのプログラムの「正しい(しかしながら今現在存在していない=観測できない)振る舞い」の具体的詳細というのは,あなたしか知らない/把握していない のですから,実際にどのように振る舞っているのかを逐一見ていけば,「あなたなら」間違いに気づけるのではありませんか?
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: int型関数を用いた テスト点数の計算
返信数: 6
閲覧数: 22323

Re: int型関数を用いた テスト点数の計算

怪しい部分の想像が付くのであれば,そこら辺に変数値を確認するための printf を入れてみるとかして,実際に何が起こっているのかを確認してみれば良いのではないでしょうか.
(真っ先にそういう確認作業をしないのは何故か? こうやって質問文を書いて投下する方がよっぽど手間だと思うが…)

まぁ,ぱっと見で

> int i,sum;

で sum の初期値が与えられていないのが原因かと見えますが.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2019でOpenCVを使うときのデバッグモードとリリースモードの違い
返信数: 4
閲覧数: 3922

Re: VC++2019でOpenCVを使うときのデバッグモードとリリースモードの違い

全く役に立たない話かもしれませんが…


(1) lib の指定を間違っていないか?

Debug版のlibのファイルタイトル末尾には d が付いていて,Release版にはついていない.
適切なものを使わないと問題が起きる.


(2) OpenCVは Release/Debug 共にご自身の環境でビルドしたものですか?

どっかから拾ってきたままの dll を使っているような場合,
自身でビルドした物を使っても同じことが起こるのか?…というのを試してみてもよいかも.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい
返信数: 4
閲覧数: 4056

Re: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい

> DXライブラリを使わずに

何故特定のライブラリのみを名指しで述べているのかわからないが,
背景事情として何らかの要件があってそういう話になっているのであれば,そこのところを述べるべきではあるまいか.

事情的にはAもBも同様にダメであるときに,「AがダメならBではどうですか?」とかいうやりとりが発生するとしたら無駄であろう.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 18699

Re: 最小値が出力できない、(ド素人質問です)

maxやminの「初期値」を決めるのに苦労しているのであれば,
INT_MIN,INT_MAX で初期化しとく形の方が楽に感じられるかもしれない.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 条件を増やすか否か
返信数: 6
閲覧数: 4576

Re: 条件を増やすか否か

そのように単純に比較を書けるのであれば組み込み型なのでしょうから,
仮に差が生じたとしても,ほぼどうでもいい程度なのではないでしょうか.

あえて効率を考えるなら,その条件判定がどのくらいの頻度で行われるのかを考える…かな?
例えば,このifが書かれている個所が相応の頻度で走るのだとして…
追加した判定がほとんどの場合に正となるのであれば,書かない方が効率は良いのかもしれない.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 座標間の折れ線の長さを出力するプログラム
返信数: 4
閲覧数: 3956

Re: 座標間の折れ線の長さを出力するプログラム

穴埋め問題なのであれば,要は, 【ここに無駄に大仰に用意した機構があるだろ? これの使い方をコードを読んでわかってみせてみろや】 っていう「コードを読む問題」なので,読んでください. (「折れ線の長さがどうの」とかいう話は取って付けたようなどうでもいい「お題」でしかない) で,コードを読むためには,少なくともそこに用いられている文法の意味がわかる必要があります. 文法の時点で行き詰っている場合には,まずは勉強(復習)してください.それしか手はありません. 「文法はわかるけど意味が読めないんです><」とかいうのなら,単に「わかりません」とだけ漠然と述べるのではなく,どこがわからんのかを具体的に質...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 8015

Re: 文字列を逆順に表示したい

こんな例はいやだ

コード:

void ReversePrint( const char *Str )
{
	if( *Str == '\0' )return;
	ReversePrint( Str+1 );
	putchar( *Str );
}

int main()
{
	char InputStr[10];
	printf( "input : " );
	scanf( "%s", InputStr );

	ReversePrint( InputStr );
	putchar( '\n' );
	return 0;
}
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 8015

Re: 文字列を逆順に表示したい

> プログラミングではイコールの左側に右側を入れるのですね、私が使用していた教材にはその旨が書いていなかったので気が付けませんでした、ありがとうございます。

これは冗談なのかマジなのか判断難しい絶妙な文章!!

あえて後者だと仮定してマジレスするならば…
配列を弄るような問題に取り組むよりも前に必要な前提知識を学ぶべき.
その「教材」とやらにそこらへんの話が書かれてないのならば,それは単に「そこは知っていることが前提」っていう扱いなのだろうと想像する.
そのような場合には,より平易な(もっと手前からの話が書いてあるような)別の情報元を探して,必要な事柄を補うのがよろしかろう.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 8015

Re: 文字列を逆順に表示したい

オフトピック
(forを使わずに)たくさん書き並べてみること は低レベルすぎて馬鹿馬鹿しいと思いますか?

「自分は馬鹿ではないのだから,いきなり最終形の実装を作れるのだ!」と思って実際にやってみたら→できなかった
のであれば,
より 低レベルな/馬鹿馬鹿しい と思える形に立ち返って考え直してみることは,間違いを見つけるのに有用な手段となり得ます.

そういうことを,まずは(人に訊く前に,当たり前のこととして)やるべきです.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 8015

Re: 文字列を逆順に表示したい

> これを for を用いた形に書き換えたとしても,処理内容(アルゴリズム)自体が変わるわけではないのですから
そこに実装される代入文というのは,常に「左辺が moji2 の要素であり,右辺が moji1 の要素である」という形になるでしょう.

また,forループの中に代入文が複数個並ぶような形にもならないでしょう.
(あえて 素直じゃない/ひねくれた/etc な形の実装をしない限りは)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 8015

Re: 文字列を逆順に表示したい

そこまでご自身で説明を書いてみて,コードの間違いに気づきませんか? 要は,あなたの for の処理とは, 「配列 moji2 の内容を更新する処理」なのであり, その処理においては,配列 moji1 の内容を変更する必要はありませんし,するべきでもありません. であれば, 代入文の左辺側に moji1 が来ている時点で何もかも間違っているということになるでしょう. --- いきなり for で書くのが困難なのであれば,ステップを経てみるべきです. 例えば,最初はとりあえず文字列の長さを何らかの値に固定した世界の上で,且つ「for を用いない形で」書いてみるべきです. //とりあえず文字数を 5...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 8015

Re: 文字列を逆順に表示したい

他者に「なぜ」とか言い出す前に, 「何を」やっているのかを説明すべきではあるまいか? > 文字列を入力し、それを逆にしたものを表示したい という話において,nなる値を入力させていることは完全に意味不明である. nとは何なのか? nが何らかの役割を持つのであれば, 「文字列と整数値(n)とを入力し,…(何かしらnの値に基づいた処理がどうのこうの)」 とか何とか正確に述べよ. (「まともに動いてないコード」だけから「何らかのまともな意味」を察しろ,というのは無理があるとは思わないのか?) おそらく主たる処理の実装部に該当すると思われる for の箇所で何をやってるのか(やっているつもりなのか)に関...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

オフトピック
これ以上どうでもいい話をここには書かない.
こっちに(もっと毒がある感じで)書いてるので,気になるならどうぞ.
(一応,私が思うスネークゲームの基礎部分の実装も書いてみた)
blog/7311
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

わからんもの は わからん.そんなの仕方ない. ただ,わからないもの を わからないままで 取り込んでいくと コードのわからん具合がどんどん膨れていってしまうのではなかろうか. 「さっぱりわからんけども現時点で何故か動く」状態と化したコードが手に入ったとして そこから先を自分でやっていけるのか? …みたいなことを勝手に思ったんだけど,余計な話だったな. 混乱させる意図があったわけじゃないし 目の前の問題点に即応する内容の話でもないので, 放置/無視 してくれてOK. --- 「mFieldが要るのか?」という話については… 【「四角いフィールドの外周部にしか壁が無い」という世界だけをとりあえ...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

> まだこのやり方しかわからないのでこのやり方でやっている

というのは全くOK.

あなたがいう「このやり方」の詳細~全容まで をあなた自身がしっかりと把握しているのだろうか?
というのが疑問というか怪しいように見えるのだけど大丈夫か? ということ.
プログラムは詳細まで具体的に処理を書かなきゃならんわけなので.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

> 他の最適な方法があるのなら教えてもらえると助かります。 そういうことを言いたいのではなくて, 自身が用意したデータの必要性とか役割とか使い方等に関して,もっとこう強い意志というか考えを持って「こうなのだから→こう書くのだ」という明確な筋道に沿ってプログラミングを行うべきなんじゃないのだろうか? …っていうような話をしている. こうなるべき/こうではないべき という判断基準があなたの中にちゃんと存在していて,それに基づいた判断が行わていれば > 参照魚さんが示してくれたコードと入り交じってよくわからなくってしまいました・・・ なんてことにならないんじゃないかな,とか思うわけ. あなたが考え...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

オフトピック
mPX[], mPY[] の履歴に関しては,
内容をいちいちバケツリレーみたく更新するんじゃなくてリングバッファ扱いするのが楽だと思う
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインタの仕組みについて
返信数: 2
閲覧数: 3742

Re: 関数ポインタの仕組みについて

「どこにも存在しない」なら使うこともできないのだから,
「どこかにはある」ハズだよね.

その「どこか」というのが実際にどこであろうが,とにかくその場所を表現する(指し示す)何らかの値ってのを考えることができるよね.
それを「アドレス」と呼ぶなら,それが「関数のアドレス」だよね.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

そもそも mField とかいうデータ,必要ですか? 無くても何も問題ないように思うのですが. ……って言われたら,それに何と答える(反論する)のでしょう? もしもその答えが将来の課題の話になるようであれば,そこは一旦忘れて,まずは「基本動作をまともにやれるだけのもの」という目標だけに注力するステップを設けた方が楽なのでは. 例えば,「後々,いろんな形の壁を作りたいのだ」とかいう話があるのだとしても,そのことを基本動作もおぼつかない今の時点からサポートしようとして「二兎を追う者は…」な状態に陥っていないか?っていう. 逃げない兎を相手にしているのなら一匹(一羽?)ずつ狙っていくのが早いのでは.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 9141

Re: スネークゲーム、伸ばすところがうまくいかない

> 状態の更新と描画のため処理がUpdateの中に混在しています。UpdateではmFiledの変更は行わず… mField って,そもそも「描画のための」データなのでしょうか? ちょっと前に 「そのデータは何の座標系の値なのか?」と問うた気がしますが,同様に 「mField って何のためのデータなの? 役割は何なの?」というのをもっときちっとした方が良いように見えます. 壁の有無の判定に専ら mField が用いられているのであれば,その点では mField とはロジック側の存在なのであって,少なくとも「描画のためだけのデータ」ではないものと見えますが, もしも描画に際して参照するための存在...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 5774

Re: 一部だけ表示されない

mX, mY がどの座標系の値なのか? というのは他者には判断つかない
(だって,そこがあやふやになっていると見えるコードが目の前に示されているのだからね).

そこはあなた自身がきっちりと定めねばならない.
どこをどう修正すべきなのか? という話は,その定義に完全に依存することになる.

> ・その値はそもそも正当なの?

っていうのは,「あなたが定めた定義の上で」正当な値なのか? っていう話だよ.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 5774

Re: 一部だけ表示されない

> int mField[ FIELD_SIZE + 2 ][ FIELD_SIZE + 2 ] これのサイズって,22x22 しか無いんじゃないの? それに対して, > 結果:mX:260 mY:20 というとき,この値を > mField[ mY ][ mX ] = CHIP_TEX_PLAYER;//初期座標に書き込み みたく用いることが正当なのですか? mField[ 20 ][ 260 ] というアクセスをする話になりますが. --- 要は, mX と mY っていうのは「どんな値なの?」っていう: 少なくともこのプログラムには ・データの座標系(mField のindex) ・表示...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 5774

Re: 一部だけ表示されない

例えば,

「動作を追ってみたところ,mX の値がマイナス7千万,mY の値が 3億 になっていたのですが,その座標に「●」が表示されないんです」

っていうのと,

「動作を追ってみたところ,mX の値が 6,mY の値が 10 になっていたのですが,その座標に「●」が表示されないんです」

っていうのとでは,「どこが疑わしいのか」が全然違ってくるっしょ.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 5774

Re: 一部だけ表示されない

> 確認してみました

っていうなら,確認してみたという作業の内容とその結果を示せと.

・init() によって mX と mY の値はそれぞれいくつになったの?
・その値はそもそも正当なの?
・その後に書きかえられていないかをチェックした結果はどうなったの? 未知の値に書き換わったの? それともずっとそのままだったの?

それらの振る舞いを確認した結果として,何がわかっていて何がわからない状態にあるっていう話なの?
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の浮動小数点について
返信数: 5
閲覧数: 4031

Re: c言語の浮動小数点について

あえて(?) ク〇みたいな文面でいくらか突っ込んでみたが,
コードってのは細部まで具体的な事柄が定まってないと示せるはずがない,ということですぞ.

そしたら他者(←どこの馬の骨とも知れないのに)に全てを具体的に把握させるまで何やかんやと説明し続ける必要があるわけだが,これはほんとに骨が折れる作業になり得る.
そのことに要する労力と時間(あと,それを行ったとしてもコードが示されるとは限らないということ)を考えれば
さっさと自分でやるなり,その話を知っている者(e.g. 同じ課題を出されている学生とか)に協力を仰ぐことを考えるのが良いと思う.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の浮動小数点について
返信数: 5
閲覧数: 4031

Re: c言語の浮動小数点について

> 整数部2桁小数部3桁までの数字を使ってプログラムをする

って具体的にどういう意味?

> 有働小数点

ってのが「浮動小数点数」の誤記なのだとして,
例えばある入力値に関して "1234.56789" って入力されたらどう振る舞うのが正解なの?
妥当でない入力ってことになるの?
それとも「整数部2桁小数部3桁」とかいう条件を満たす何かに勝手に変換されて使われるの?

昇順に並べ替えることとその後の計算との関係もイミフ.
その謎の計算式で用いられている {1,2,3,4} ってのは何なの?
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の浮動小数点について
返信数: 5
閲覧数: 4031

Re: c言語の浮動小数点について

意味わからん.
課題丸投げしたいだけであれば,課題の問題文を丸ごと示した方が無意味に齟齬が生じ難い分だけマシなのでは?とか思うレベル.

> 数値ごとの妥当性

とは何か? 何が妥当で何は妥当でないのか? 平和とは何か?
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャッチゲーム
返信数: 7
閲覧数: 7264

Re: キャッチゲーム

オフトピック
GetRand のリファレンスらしきページ(https://dxlib.xsrv.jp/function/dxfunc_other.html)には

> 解説  乱数を得ます。この関数は 0 から RandMax で指定した数値のどれかの数値を返します。

くらいの説明しかない様子.
これだけを読む限りでは,個人的には「そもそも何のためにこんなものがわざわざ用意されているの?」と首をかしげたくなります.
こんなん,「rand でなくこっちを使おう」とか思えない.

(ひょっとしたらどこか他のところに詳細情報があるのかもしれませんが)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャッチゲーム
返信数: 7
閲覧数: 7264

Re: キャッチゲーム

> DXライブラリを利用しているのに rand関数は一切利用してはなりません。
> SRand関数/GetRand関数を代わりに使わなければなりません。

本当にそのような話があるのですか?
(少なくとも公式らしきリファレンスの GetRand, SRand の部分にはそのような要件は記載されていないように見えます.)

本当にそんなク〇みたいな制約があるとすれば,当然ながらどこか(公式みたいなところ?)で相応の注意書き等がありそうに思いますので,
そういった情報ソースを提示されると良いのではないでしょうか.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 28964

Re: ヘッダファイルについてうまくいかない

…ということで,
とりあえずこのくらいの簡素なコードならいけるんか? ってのを試してみてはどうか.

これなら問題無くexeまで作れるということであれば,
コンパイルのために打ってるコマンドの側ではなくて,あなたの現状のソースコードの記述のどこかに問題がある とかかもしれないし.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 28964

Re: ヘッダファイルについてうまくいかない

DXライブラリを持ってないし導入するのも嫌なので,すごい単純な下記のコードでテストしてみたが, 「開発者コマンド プロンプト for VS 2017」起動して,ソースがある場所まで行って cl /c main.cpp cl /c window.cpp link main.obj window.obj /OUT:test.exe でふつーにいける. ※コンパイル時に > C4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 っていう warning は出たけども. --- main.cpp : #include <io...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 28964

Re: ヘッダファイルについてうまくいかない

とりあえず「やり方」を
「cl 分割コンパイル」だとか適当にそれっぽい言葉でググってみたら?
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 28964

Re: ヘッダファイルについてうまくいかない

> link window.cpp /OUT:main.exe なんでリンカに .cpp を食わせようとしてるの? > 2つのオブジェクトファイル(main.obj, window.obj かな)をリンクする必要がある っていう話ならば, 【少なくともリンカにはこの2つの .obj のファイル名を指定する必要がありそうだなぁ】とは考えないの? 個人的にはわざわざ cl とかを直にコマンドラインから叩こうとする意味がわからんが… あえてそんなことに挑むのならば,そういう話に手を出すための最低限の物事の勉強(というか調べもの)は先に済ますべきちゃうん? 「何をどうすれば→できるはず」っていう筋道す...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 28964

Re: ヘッダファイルについてうまくいかない

> Visual Studioで編集はせず、コンパイルだけVSでやってます。

というのが具体的にどういう状況なのかよくわからんけども,

main.cpp と window.cpp という2つの翻訳単位をコンパイルして

その結果できた2つのオブジェクトファイル(main.obj, window.obj かな)をリンクする必要があると見えるが,

・window.cpp をコンパイルする
・window.obj をリンク対象にする

のあたりは大丈夫?
Visual Strudio を素直に使ってれば特段何の苦労も発生しない(勝手に面倒見てもらえる)ところだが.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

オフトピック
> 三角関数が目的の値を返す角度を二分探索する

解を囲み込むのに工夫が要りそうな…?
(そのへんをやりやすい形の目的関数を立てるのかな?)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

オフトピック
> えっとー,これが sin と cos の値なんだよね?

の意味が理解できないのに
変数名を nx,ny に変えてやれば「解決」するんかい?

「解決」ってのは「そのままパクれるコードそのものが出てくること」なのかな?
(#まぁ今回の場合だと,そのままパクったら無事に済みそうにはないが)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

> 正規化した「方向ベクトル」を求め

それが sin と cos なわけだがw
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

どうやらプログラミング以前の話と見えるので,「三角関数」でググるとかした方が早いと思う.
(ここまでの話が理解できない状態では,このような場所でのやりとりは不可能であろう)

コーディングよりも先に,まず数学の復習が必要であろう.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

> si = b / c;
> co = a / c;

えっとー,これが sin と cos の値なんだよね?
それなのに,これを cos(co) だとか sin(si) だとかいう使い方するのはおかしいよね?
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

あと,

> si = b / c;

みたいなのがノーチェックで書いてあるように見えるけど,
「2点が同一座標である場合にはどうするのか?」っていうのも考えた方が良いのではないかな.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 10875

Re: 特定の角度を返す関数

> a = abs(x2 - x);
> b = abs(y2 - y);

なぜ abs ?

---

> angle = 180 / (si * 3.1415);

これは何を計算している?

---

・角度が欲しいなら atan2 でも使えばいいんじゃないかな.自前で計算する必要ある?
・それ以前に sin と cos の値が必要な場面なのであれば,そもそも「角度」を計算する必要すら無いっていう.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 制限時間から減らす
返信数: 3
閲覧数: 4123

Re: 制限時間から減らす

ならば私は
「開始時刻」と「制限時間」とから初期に求められた「終了時刻」の側を減じてくれようぞ!
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 制限時間から減らす
返信数: 3
閲覧数: 4123

Re: 制限時間から減らす

「残り時間」が減っていき→これが0になった時点で終了(タイムアップ)という話があったとしたら,
ダメージを受けたときに当該「残り時間」の値を適当に減じれば良いのではないでしょうか.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

オフトピック
> 個人的に,こういう課題の話を外の世界に訊くのは下策だと思う.

質問するにしても,「課題」ならば期限とかあるだろうから,
それなりに人がいる場所でやらないと レスポンスのくる率,やりとりの速度 等の面でダメなのではなかろうか.
ここは期限のある話をするには過疎過ぎると思う.
(まぁ適切な場所がどこかにあるのか? っていうのを私は知らないけど…)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

「コードに何も手を入れていない渡されたままの状態」でmakeできないということ? > エラーがでてしまいます で止まらずに,エラーの文章を読むなりその文言でググるなりしましょう. 「多重定義」って言われてるんだから,そいつらの定義が複数あるのがダメっていうエラー. 例えば image.h あたりに im_r とか width とかいうのの「定義」が書かれてたりしてない? --- > 同じ課題を出されている奴に「そもそもコレどうやって動かすの?」って訊いちゃうのが早い 正直,状況に関する情報を持っていない外野に質問するよりも,これ↑を検討すべきと思うよ. (一度そういう関係を作っちゃえば今回だけ...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

その makefile がある場所で,コマンドラインから

make draw

で良いのではなかろうか?
(成功すれば draw という実行形式ファイルが生成されると思う)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

ご指摘感謝.
(やはりしばらく触ってない物の話は知ってたハズのことでもこうやってさくっとミスるからダメっすね…)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

オフトピック
普段 IDE に完全依存して生きてるので,このくらいの事しか書けないぜ!
gcc 使うところの話は gcc マスターな誰かにお任せするしか!
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

例えば > undefined reference to `main' なんてのが出てるけど,main関数の定義はどこにあるのか? っていう. main関数が書かれている(拡張子が .c な)ソースファイルがあるんじゃない? あるなら, > gcc -o 実行ファイル名 ソースファイル名 の「ソースファイル名」のところに,そのソースも含めてやる必要があるよね. (コードが複数のソースファイルに分かれているなら「ソースファイル名」のところにそいつらを書き並べる) "image.h" や "draw.h" で宣言されている関数群(make_rgb_image とか set_white とかdraw...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

> undefined reference to `関数名` っていうのが大量に出てる →「これらの関数の実装がどこにあるかわかんねぇよ」って話. 各関数の実装がどこにどうやって提供されている話なのか不明ですが, コンパイルすべきソースファイルが足りてないとか,あるいはライブラリのリンクが必要とか,そんなような話かと. 課題でサンプルコードをもらってるなら,それと一緒に 「そのサンプルをどうやって使うのか(コンパイル→リンク するか)」 という情報も一緒に受け取っているのではないか (動かすにはどういうコマンドを打てばよいのかっていう話とか,あるいは makefile があるとか) と思うのだ...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

丸投げ質問する前に,上記の(1)と(2)くらいはやるべき.

最初から(3)だけやれば即終了な話となるところであろうが,
それができないからこそ質問をしているのだろうから,であれば(1)や(2)のステップを飛ばすべきではない.
【(2)の状態を実際に作ってみて→そこに「ループ処理で書けそうな何らかの規則性」を見出す】という作業をやってみるべき.

「どうしても見出せない」ときには,このような場所で質問しても良いだろうが
その際の質問内容は,
自身が書いた(2)のコードを示して「これをループでいい感じに纏めたいんだけど?」とかいう話となろう.
(「チェック柄を描くコードをください!」じゃなくて.)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で幾何学的模様をプログラミングする。
返信数: 13
閲覧数: 7857

Re: c言語で幾何学的模様をプログラミングする。

(1)提示されたサンプルコードに > draw_line(xs, ys, xe, ye, r, g, b); というのがある.おそらく線を描画する処理であろう. ・これの引数の値をいろいろと変えてみたらどうなるのか? → 線の位置や色が変わると思われる ・この関数を呼ぶ記述を複数個書き並べたらどうなるのか? → 複数の線が描画されると思われる …といった実験を行ってみて, 所望の本数の線をそれぞれ所望の位置に描画するにはどうすれば良いのか? というのを把握する. (あと,サンプルに存在している不要な描画のための記述は邪魔だからコードから抹消しておく) --- (2)縦横の線で描くチェック柄 を...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 2つのexeで動かしたいのですが…
返信数: 2
閲覧数: 3605

Re: 2つのexeで動かしたいのですが…

Unityの事は知らんけども,
C++側に関しては
ウィンドウにメッセージが降ってくるのを受動的に待つような形とせずに,能動的に状態判定すればいいんじゃないの?
(Win32 なら GetAsyncKeyState とか GetCursorPos とか使って)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: ウィンドウの後ろでも動かせるプログラムを作りたいです
返信数: 2
閲覧数: 3495

Re: ウィンドウの後ろでも動かせるプログラムを作りたいです

話がイミフすぎる. 「装置を作っている」とか「映像に合わせてどうの」とかいう話が,ウィンドウの前後関係の話とどう絡んでくるのか? 実は全然必要ない情報なのであれば書くべきではないし,何かしら話として必要な情報なのであればそこの部分をちゃんと説明しないと読み手には何が何だかわからないよ. --- 「手前のウィンドウ」も「後ろのウィンドウ」も自前の同一のプログラムが作っているのであれば, キー入力等のメッセージをどっちのウィンドウから受け取ろうが好きに処理すればいいだろうし. 2つウィンドウの前後関係を常に保ちたいという話ならば 「後ろ」を「手前」のオーナーウィンドウにすれば常に「手前」が前に来る...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 正方形の中に正方形を出力する
返信数: 4
閲覧数: 4568

Re: 正方形の中に正方形を出力する

> iとjが表す位置が正方形の内部であるの表し方をその考え方から理解できてないです

(i,j) = (0,0) のとき,これは「正方形の内部」ですか? それとも「外部」なのですか?
(i,j) = (100,55) ならばどうですか?
(i,j) = (127,132) ならどうですか?


これらに答えられるならば,どうやって答えを導いたのか? を自問してみればどうか.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: getcharによる文字列入力
返信数: 3
閲覧数: 3896

Re: getcharによる文字列入力

> 生のコンソール入力 stdin だと、Ctrl+C 入れると、プログラムが中断しちゃうから。

入力を終える手段としては,この場合だと
Ctrl+Z や Ctrl+D あたり(実行環境次第らしいけど)を使うのでは.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: getcharによる文字列入力
返信数: 3
閲覧数: 3896

Re: getcharによる文字列入力

> …ことも変わっています。

「変わっている」と言われても,元の(変わる前の)状態は誰も知らないので,何の話をしているのか謎.
(「わかっている」の誤記かな?)

> ですが、やってることは分かっているのにループの順番が不明瞭です。

「不明瞭」とは何か?
「どういう順序で動いているのかを(あなたが)読み解けない」という話なのであれば,各所に好きなだけてきとーなprintfでも仕込んでみれば動作順序の把握の助けになるのではあるまいか.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: nの階乗を求めるプログラム
返信数: 4
閲覧数: 4298

Re: nの階乗を求めるプログラム

> for文の初期値を2にしてはいけない理由 「2にしてはいけない」という話がそもそもどこからどうやって湧いてきたのか? 唐突に「2にしてはいけない」ということが決定事項のような話をされても,読み手には意味不明だと思わない? どう見ても2でOKと見える話に対して「2だとダメな理由は?」とか言われても, 背景事情が不明な第三者からは「とりあえずその話が湧いてきた箇所に問えば…?」としか言えない. もしもご自身の中に「2でOKだろ常考…」的な考えや確信がある状態で,そのことに対する{共感,賛同}が欲しい的な話なのであれば, 「コレ1じゃなくて2でもいいですよね?」とか「むしろ1より2の方が良いです...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語画像処理 出力する画像のサイズを変更する
返信数: 3
閲覧数: 4479

Re: c言語画像処理 出力する画像のサイズを変更する

どうでもいい話だけども,
出力画像の画素値はファイルに出力するだけ(他には使わない)という話なら,
出力画像全体なサイズのでかい配列は必須ではないよね.

「1pixelずつファイルに出力するループ」を書くなら配列は不要だし
「1行ずつファイル出力するループ」なら1行分のサイズの配列で事足りる.

個人的には,「1pixelずつファイルに出力するループ」の形が
最もプログラムとしては簡単かな? とか思う.
(出力画像データのためのメモリ確保と解放の処理が不要という点で)
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語画像処理 出力する画像のサイズを変更する
返信数: 3
閲覧数: 4479

Re: c言語画像処理 出力する画像のサイズを変更する

「何がわからないという話なのか」が不明だが…… 「自分が何をすれば良いのか」というのが明確になるように物事を進めてみてはどうか. 例えば…… --- やるべきことは 【出力画像の全ての画素についての画素値を決定すること】 であろう. であれば,とりあえず【出力画像の位置(x,y)の画素値を決定して返す関数】を用意することを考えてはどうか. mainの処理は 512*512 回繰り返すループ内でその関数を呼んでは戻り値を得るだけの処理となるだろう. (あとはその結果をファイルに書き出す処理があるだけ.) そしたらあとは「この関数の中身をどうするか(何をreturnするか)」ということを決めれば良...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: c言語自由課題
返信数: 3
閲覧数: 4384

Re: c言語自由課題

要は,「自分で何か関数を作ってそれを使え」って話でしょう.きっと.

何か入力値を用いててきとーな計算を行うプログラムにおいて,入力値を1個入力する部分を関数にするとかしとけばよいのでは?

・数値を入力させる処理が実装されている関数であって,
・入力された値が特定の範囲に入ってない場合にはその旨を表示して入力をやり直させるという機能を有し(つまり,妥当な値が入力されるまでループする形になっている)
・戻り値として入力された値を返す.

みたいな.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 静的ライブラリをReleaseビルドとDebugビルドで共用したい。
返信数: 6
閲覧数: 6454

Re: 静的ライブラリをReleaseビルドとDebugビルドで共用したい。

> 『Release 時と Debug 時で同じ .dll をリンクしたい』という本筋

そもそもそんなこと言ってないように見える.
共用したいのは「静的ライブラリ」であり dll の話はしてない.

Debug,Releaseで共用できる「スタティックライブラリが作りたい」って話でしょ.
質問文の末尾側にある

> ↓自分の予想↓

のところに書いてある話は,
「スタックオーバーフローの話を見た感じだと,インポートライブラリならば共用できるっぽいけど,そうじゃない場合(実装が詰まったlib)ではできないっぽい」
という調査結果を述べているだけであろう.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 円の集合体を液体のように描画をしたいです
返信数: 4
閲覧数: 4669

Re: 円の集合体を液体のように描画をしたいです

> ブラー

という語の意味を取り違えていませんか?
ここでは時間方向の話ではなくて,単なる画像のぼかしを意味するのだと思いますが.

すなわち,「単純に●で描画 → この絵をぼかす → 2値化する」というだけの話かと.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGLで3Dモデルに剣などの武器を持たせる方法
返信数: 4
閲覧数: 5239

Re: OpenGLで3Dモデルに剣などの武器を持たせる方法

■がある.これは左右に動く.そこまではできているのだが, この■の上に□を乗せたいのだ.どうしたらいいだろうか? ↓ 【「乗せる」とは何か?】ってのをまず定義し, そしたらその定義に従った形で□を適切に制御すればよかろう. 例えば,「□が■に乗っている,とは,■が動くときそれに□も追従するすること」だとするならば, 「■を動かすときに,□も同時に同じ量だけ動かす」という処理をすれば良いことになる. ……って感じの話と,まぁ同様なのでは. 【「持たせる」とは何か? どう動けばいいのか?】という話に見合うように,モデルと武器とを制御すれば良い. 逆に言えば,【「持たせる」とは何か? どう動けばいい...
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 学校で課された問題について
返信数: 3
閲覧数: 4895

Re: 学校で課された問題について

方法論を見つけたならば,運がよければその方法の名前もわかるかもしれない.
「○○法」みたいな.

そしたら,「C言語 ○○法」とかで検索すれば実装例も見つかるかも.
by usao
3年前
フォーラム: C言語何でも質問掲示板
トピック: 学校で課された問題について
返信数: 3
閲覧数: 4895

Re: 学校で課された問題について

何はともあれ,
逆行列ってどうやったら求められるんですか? っていう方法自体を確定させる(調べる)必要があるのでは? 数学の話として.

で,その手順を実装する.

詳細検索ページへ移動する