検索結果 1281 件

by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: C言語初心者の大学1年生です。
返信数: 39
閲覧数: 11897

Re: C言語初心者の大学1年生です。

このフォーラムのルールですが、解決した場合は用いた方法やソースコードをお示しいただくことになっております。
後からこの掲示板に来た人の参考にするためですのでご協力お願いします。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: openSSLをVC++で使用する方法
返信数: 2
閲覧数: 2556

Re: openSSLをVC++で使用する方法

http://imagingsolution.blog107.fc2.com/ ... y-231.html
このサイトが役に立ちませんか?
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 左右に移動させるプログラムを組みたいのですが・・・
返信数: 35
閲覧数: 8851

Re: 左右に移動させるプログラムを組みたいのですが・・・

うさこ さんが書きました: このプログラムですと、今しがた回答をいただいたプログラムを入れればいいのでしょうか?
取り敢えず入れてみて、ダメだったら質問するようにしませんか。
それとも、回答者側が実際に実験してみて「ああ、提案したプログラムじゃ動かないや」ってのを確認しないとダメですか?
その動作確認などは質問者さんの役目だと思うのですが。

というより、そういう試行錯誤しないとプログラミング力は伸びません。
「これを挿入してみて下さい」って言われて挿入するのはコピペと変わりません。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: コンソールアプリケーションが直ぐに終了してしまう。
返信数: 24
閲覧数: 22682

Re: コンソールアプリケーションが直ぐに終了してしまう。

語源ってなんでしょう。プログラミング言語のことでしょうか。 ほとんど同じゲームを作るならともかくとして、真似する(コピペする)だけではやりたい事ができないと思います。 softyaさんも言ってますが「言語の勉強を程々にしておいて」からゲームを作ったほうがいいです。 「程々」という表現は確かに曖昧で難しいですが if文、for文、switch文など、C言語の文法を習得し strcpy、malloc、freadなどの標準関数もリファレンスを見つつ使いこなせる 程度を想定すれば良いと思います。 C++は段々学ぶに連れて 「難しいな」「段々わかってきた」「分かった!」「やっぱり分からん・・・」 という...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 左右に移動させるプログラムを組みたいのですが・・・
返信数: 35
閲覧数: 8851

Re: 左右に移動させるプログラムを組みたいのですが・・・

1を押した、3を押したということを検知する方法はご存知でしょうか。
それが分かれば

コード:

if (1が押された && x座標 > 0)
{
    /* x座標を1減らす */
}
if (3が押された && x座標 < 79)
{
    /* x座標を1増やす */
}
という感じに書けると思います。
2つめのif文にelseを付けないのは、1と3が押された場合に動かないようにするためです。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: #ifdef GLOBAL_INSTANCEについて
返信数: 10
閲覧数: 4098

Re: #ifdef GLOBAL_INSTANCEについて

今龍神録プログラミングの第5章を見てみましたが、誤解をまねく書き方してありますね。 GV.hでGLOBAL_INSTANCEを使う手法がなぜ効果を発揮するかというと、変数の場合 「externをつけると実体を生成しない」 「付けないと実体を生成する」 という違いがあるからです。 一方で関数プロトタイプ宣言の場合は 「externを付けても付けなくても実体を生成しない」 ので、function.hをGV.hと同じように改造するというのが混乱の元だと思います。 関数の実体はプログラマがどれかのcppファイルに書く必要がありますから、GV.hにあるグローバル変数のように 「GLOBAL_INSTAN...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: #ifdef GLOBAL_INSTANCEについて
返信数: 10
閲覧数: 4098

Re: #ifdef GLOBAL_INSTANCEについて

一つ書いておきますと、関数のプロトタイプ宣言(function.hに書いてあるのは全て関数のプロトタイプ宣言です)にはexternを付けても付けなくても意味が変わらないということです。
int hoge;

extern int hoge;
は実体を生成するかしないかにおいて違う意味ですが
void graph_main();

extern void graph_main();
は同じ意味です。どちらも実体を生成するわけではありません。

この知識があれば問題が解決したりしませんか?
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 構文エラー : ';' が '<' の前にありません。
返信数: 4
閲覧数: 8357

Re: 構文エラー : ';' が '<' の前にありません。

ちなみにヘッダファイルに
using namespace std;
などとusingを使うのはテロですのでやめましょう。
ヘッダファイル内では常にstd::を使います。

*なぜテロなのかというと、std名前空間とは関係ないはずのヘッダを読み込んだだけでstd内の名前が全部漏洩してしまい、意図しない名前の衝突が発生しやすくなるからです。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: なにもかもにおいて初心者ですので教えてください 汗
返信数: 7
閲覧数: 2368

Re: なにもかもにおいて初心者ですので教えてください 汗

もう少し情報を出していただけないと答えるのが難しいです。 回答者もエスパーではありませんので、 でも、勉強したけど…コンパイル?のC言語のソフトをダウンロードしても、 なんか、有効な32Winではありませんって出るんですよ。 と書かれましても、ましろさんがどんな教材でどんな勉強をしたのか、どこからソフトをダウンロードしたのかさっぱり分かりません。 情報が足りませんので「どうしたらいいですか?」という問に正確に答えることは非常に困難だと思います。 「有効な32Winではありません」というのもきっと正確なものではなくて、何かしら省略したメッセージなのだと思いますが、 エラーメッセージなどを下手に省...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

あ、プログラムの勉強というより、もしかして実用のツールを作るという目的なのでしょうか。 いままで僕は、むつみさんはプログラムの勉強のために課題設定をしているのだと思っていました。 もちろん連結リストや木構造くらいぱぱっと書けるくらいの力を付けるに越したことはありませんが、その勉強のコストをかける価値があるのか考えるべきだと思います。 例えば、むつみさんは将来プログラマを目指しているわけではなくて、しかしプログラムが少しでも出来る人が研究室内にむつみさんしか居ないためツール作成依頼が来ているなら、 プログラミング力を磨くより、既成の連結リストや木構造などのライブラリを使ってパパっと完成させるほう...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: #ifdef GLOBAL_INSTANCEについて
返信数: 10
閲覧数: 4098

Re: #ifdef GLOBAL_INSTANCEについて

externキーワードについて勉強してみてください。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割での変数共有
返信数: 6
閲覧数: 4572

Re: ファイル分割での変数共有

関数の外に(staticを付けず)変数を定義したら、他のソースコードやヘッダファイルでextern宣言しようがしまいが、グローバル変数になります。 // hoge.cpp int hoge; 変数hogeは他の場所でextern宣言されようがされまいが、グローバル変数です。 グローバル変数を他の場所からも参照したいというときにextern宣言します。 // foo.cpp extern int hoge; extern int hoge;の意味は「このソースファイル(foo.cpp)ではhogeの実体は定義しないけれども、どこかにあるhogeを利用します」ということです。 つまりは、他のファイ...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割での変数共有
返信数: 6
閲覧数: 4572

Re: ファイル分割での変数共有

複数ファイルでのグローバル変数の共有は、基本的にヘッダファイルにすべてのextern宣言を書き、どれか1つのcppファイル(cファイル)に実体を定義します。 ・・・なのですが、オーヤルガーさんの書き込みに1つ疑問点があります。 どうしてenemy_xをHitJudge関数の引数にしているのでしょうか? enemy_xはexternするかどうか悩むくらいなのでグローバル変数なのだと思いますが、もしそうならHitJudge関数にenemy_xを渡す必要はありませんよね。 グローバル変数なのですからHitJudge関数は引数として与えられなくとも、enemy_xを利用することができます。 よく言われ...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: インデントについて
返信数: 5
閲覧数: 4032

Re: インデントについて

ケース3

コード:

switch(data)
{
case 0:
    break;

case 1:
    break;

default:
    break;
}
僕はこんな感じですね。caseはラベルなので先頭に書きます。
vimで書いていても自動でこんなインデントになるので、設定をいじる手間が省けて良い感じです。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: Platinumでマップ表示
返信数: 49
閲覧数: 10587

Re: Platinumでマップ表示

CSVは Camma Separated Values の略でして、カンマ「,」で値が区切られています。
CSVファイルの読み込みについてはウェブ上にいろいろ参考になるページがありますね。
C言語 CSVファイルの読み込み
fscanfを使わずとも、文字列として読み込み strtol などを使って自前で変換することもできます。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++ setのイテレータ経由でinsertできない
返信数: 4
閲覧数: 2608

Re: C++ setのイテレータ経由でinsertできない

返信ありがとうございます。
確かに、イテレータ経由で要素を勝手にいじられると、setの中での順番が変わらないといけないときであっても順番が変わらないまま、整合性がなくなってしまいますね。
setの中身を弄るときは erase してから insert するのが基本だよとTwitterで教えてもらいました。

どうやら iterator と const_iterator が同じ宣言になってしまっているのはバグのようですね。
103. set::iterator is required to be modifiable, but this allows modification of keys
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 11448

Re: きれいなソースコードの書き方

helloworld1853 さんが書きました:ありがとうございます。
今直し始めて思ったのですが、
たとえば
定義と同時に
文字列を0に自動的に初期化
してくれるSCHARという
自作の型を作ることはできますか。
helloworld1853さんの書いたソースを読んだわけではないので的外れかもしれませんが、自動的に初期化してくれる文字列ってstd::stringのことでしょうか。std::stringはC++の標準ライブラリなのでC++で書いているなら使えます。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++ setのイテレータ経由でinsertできない
返信数: 4
閲覧数: 2608

C++ setのイテレータ経由でinsertできない

以下のコードで、なぜit経由だとinsertできず、s2経由だとinsertできるのか分かりません。 なぜコンパイルに通らないか分かる方、教えてください。 it->insertの行を有効にしてコンパイルしようとすると以下の様なコンパイルエラーとなります(clang++, g++ともにエラーになります)。 main.cpp:10:9: error: no matching member function for call to 'insert' it->insert(s2.begin(), s2.end()); // ERROR ~~~~^~~~~~ /usr/include/c++/4.2.1...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

2分木にするなら連結リストは使いませんよ。
各節点が「左の部分木へのポインタ」と「右の部分木へのポインタ」を持つだけです。
多分木の時は「部分木へのポインタのリスト」を持つようにして、このリストの実現に連結リストを使うんです。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの省略(?)
返信数: 8
閲覧数: 3820

Re: プログラムの省略(?)

ということで
「下記のものでも実行できる理由を教えてください。」
の答えは

mainのreturn省略について
「C99からのC言語の規格ではmainのreturnを省略するとreturn 0;が補われる(ので正常に動く)。C89では戻り値がintのときに引数なしreturn;に出会うと未定義の値が返されることになっているので、正常に実行できているのは単なる偶然かもしれない。」

mainの戻り値型の省略について
「(少なくともC89までの)C言語の規格ではデフォルトでintとして解釈される(ので正常に動く)。」
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの省略(?)
返信数: 8
閲覧数: 3820

Re: プログラムの省略(?)

C89 (ANSI-C)ですと、型を省略するとint型ということになりますから、mainの戻り値は(C89の規格的には)省略可能です。 C99の規格は今ざっと目を通したのですが、型省略時にintになるという記述は見つかりませんでした。 f(a, b) { return a + b; } main(void) { } をclangとgccを用い、c89, c99モード両方でコンパイルしたところ、下記のようなメッセージを得ました。 uchan@uchan-mbp:ctest1$ clang -Wall -std=c89 -pedantic main.c main.c:1:6: warning: p...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

作り終えたら確認してもらっても宜しいでしょうか?(>人<;) はい、いいですよ。作り途中でも疑問があれば是非。 その時ちょうど僕が居るかは分かりませんが、質問の仕方を間違えなければみなさん丁寧に回答してくれるはずです。 質問する際には、このスレッドではなくて新規にスレッドを建てたほうが良いと思います。 もちろん、新スレッドにこのスレッドへのURLは記載してくださいね。 ※スレッドのタイトルに顔文字などは入れないほうが良いと思いますし、もう少し具体的なタイトルの方がいいでしょうね。 連結リストは「線形リスト」や「リンクリスト」などとも呼びますので、検索の参考にしてください。 以下、連結リストに...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

ちなみに確認したいのですが、これは学校の課題かなにかでしょうか?期限があるものでしょうか?
もし期限が1週間くらいなら相当頑張らないと完成しないと思いますよ。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

連結リストのプログラムは今のむつみさんのやりたいことと完全に切り離してもまったく問題ありません。 というより、いっそ切り離して、汎用的な連結リストの作り方を学んだほうが良いと思います。 例えば、何か独自に定義した構造体を要素とするような連結リストを作るとか。 テストプログラムというのは、作った連結リストのプログラムがきちんと動いているかを確認するためのプログラムのことです。 テストプログラムがランダムな動作をしてしまうと、結果が正しいかを判定し難いので、テストプログラムは確定的な動作をするようにします。 例えば、連結リストを生成するテストプログラム、生成した連結リストに5つの要素を追加するテス...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

ええと、僕のおすすめのやり方は、まず連結リスト(とそのテストプログラム)だけを作ることです。 木構造はまだ考えないで、とにかく連結リストだけを作ります。 その際、malloc / freeの知識、構造体の知識など、幅広い知識が要求されるはずですので、連結リストの実装が終わる頃にはプログラミングの感覚が大分つかめるでしょう。 そうしたら、いよいよ木構造をやります。 連結リストの実装で培った経験があるので、それなりにプログラムしやすくなっていると思います。 この変数を用いて数を数える場合はどのようにインクリメントしていけば良いのでしょうか? 木構造に数列の要素を追加しようとしたけど、すでに木構造に...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: フリープログラマになるには
返信数: 13
閲覧数: 4948

Re: フリープログラマになるには

プログラマーになるためのプログラマの勉強として、競技プログラミングをしてみるのはいかがでしょうか。 TopCoderで世界と渡り合う日本IBMの異才――夷藤勇人 久しぶりにAOJでgolf的なことをしたのでコード晒し TopCoderは上位に入ると企業からスカウトが来るとか聞いたことがあります。 また、自分のレベルを測るにもいいでしょう。 僕はAOJしかやったことがないのでAOJの話をしますと、AOJでは問題毎に正答率が表示されます。 他の人達が解いた結果の平均ですから、自分の実力がどのへんにあるかを測る指標になります。 AOJで正答率が8割位の問題は簡単なので、プログラマーになるのでしたら是...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

辺(枝)が何本であろうとも、節点(TreeNode)の連結リスト「children」に格納することができます。
僕の書いたプログラムではLinkedListが連結リストを表しています。
むつみさん自身が連結リストを使うと仰ったので、連結リストの実装方法をご存知だと思っていたのですが。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

解決したのでしょうか?解決したらどのように解決したのかを示していただくことになっています。 (以下、解決してない前提で回答を続けます) まず一つ目の数列が与えられたら連結リストを使って数列を繋ぎます。 そして、二つ目の数列を読み込んだら、根に戻って一つ目の数列と比較していき、一つ目の数列に存在しない要素が出て来たらそこから枝分かれをさせていきます。 なるほど。考え方としてはいいと思います。 連結リストの各要素が木構造の各節点に該当する構造ですね。 木構造を作るには連結リストを各節点に持たせ、部分木のリストとして使用すればOKです。 struct Element; struct LinkedLi...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

さて、むつみさんはどのくらいプログラム初心者なのでしょうか。
C言語の基礎は分かるのでしょうか。

この掲示板では課題の丸投げはできませんので、むつみさんの分かる所までのソースコードをお示しください。
その上で、具体的に何処が分からないのか、ご質問ください。
(木構造というデータ構造をどうやってプログラムで表現するか分からない、など)
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

書きなおしてみました (A <1> B) A=( ( (6 <5> ) <3> ) <2> ( <4> ( <6> 7) ) ) B=( <4> ( ( <7> 10) <5> ( <8> 9) ) ) 頂点に<>を付けるようにするとNILが要らないことに気がついたのでNILは書いていません。 これを見るとむつみさんのやりたいことが分かりました。 4つの数列が木の根から葉までの路に対応しているんですね。 数列の先頭から木に配置していって、要素が重複している間は新しい節点が増えず、初めて要素が異なる場所で路が分岐するようになっていますね。 ここで疑問です。 数列1ではi+1番目の要素を常にi番目...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

レイアウトが崩れまくってて見づらいです。 行間にある / \ とは何を表しているのでしょうか?辺ですか? しかし辺を書かなくて良い記法を提案したはずですので、辺ではない何か違うものでしょうか。 ((3〈2〉4) 〈1〉 (NIL〈4〉5)) だけで一つの木を表せていることに注意してくださいね。 この木は左右に(3 <2> 4)と(NIL <4> 5)という部分木を持ち、根が 1 であるような木を表しています。 辺を図示していませんが、実は根と左右の部分木の間に辺があるのです(当たり前ですが)。 この木を図にすると次のようになります。 1 /\ 2 4 /\ \ 3 4 5 もし木構造が大きくな...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

ああ、勝手に2分木だと仮定して話を進めてしまいましたね。
では、こういうルールに改良しましょうか。
「頂点は<>で囲む」
例えば1を頂点として、辺が3本ある木は
((a <b> c) (d e <f> g) <1> h)
と、こんな感じに。
むつみ さんが書きました: 例えば
①1、2、4
②1、3、4
③1、4、5
のような場合、1の頂点から2、3、4へ3本の辺が出ることになりますよね?
「3本の辺が出ることになりますよね?」と言われても僕には理解できませんので、是非今改良した書き方で書き表してみて下さい。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: どのような手順を踏めば良いのでしょうか?
返信数: 8
閲覧数: 2493

Re: どのような手順を踏めば良いのでしょうか?

プログラム自体の初心者さんということでアドバイスを書きますと、まずはC言語の入門書を買ってそれを読むのがいいと思います。
C言語の入門書で勉強していけばプログラミングの感覚がつかめて来ますので、そうしたら少し現在やりたいことにつながってくるでしょう。

はっきり言って、yu-kiさんが提示されたURLの内容は高度ですし、省略されているソースコードや手順が多いです。
プログラミングに慣れればそれらをどう解決すればいいか見えてくるはずです。
jayさんが示している「Windowsプログラミング入門」のサイトもC言語の基礎知識が必要なサイトですし、やはりまずは入門書を読みましょう。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 木構造について(;_;)
返信数: 50
閲覧数: 12965

Re: 木構造について(;_;)

木構造というと、節点と辺がある構造というのは知ってますか?
木構造を文字で書くのは結構厳しいのですが、下記のようなルールで書くことにしましょう
(左辺 値 右辺)
例えば、頂点の値が1で、左辺が2、右辺が3であるような木は
(2 1 3)
と書きます。また、頂点の値が1で、左辺には部分木がなく、右辺に「頂点が2で左辺が3で右辺が無い」ような部分木を持つような木は
(NIL 1 (3 2 NIL))
と書きます。

この書き方に習って、1から4を木構造で書いてみて下さい。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: デスクトップか?ノートPCかULTRABOOKか
返信数: 11
閲覧数: 6150

Re: デスクトップか?ノートPCかULTRABOOKか

サーバー用はノートも結構いいと思います。なぜなら、停電などで停止しないからです。 (無停電電源装置が標準で付属しているとも言えます) まあ、性能とか通常時の安定性はデスクトップ機のほうが上でしょうけども。 僕が自宅サーバーを作ったときは http://www.shuttle-japan.jp/barebone/slim/xs35v3 こんな製品を使いました。動く部品を一つも使わないようにし、電気代を下げようというコンセプトでした。 もともとファンがないですし、さらにCD-ROMドライブを外し、SSDをつければ動く部品ゼロです! 大人数がアクセスするわけではない用途でしたので、性能的には十分でし...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: C言語のプログラムをC++に直すメリットとは何でしょうか?
返信数: 19
閲覧数: 6044

Re: C言語のプログラムをC++に直すメリットとは何でしょうか?

少なくとも僕の環境(Mac + GCC)だとエラーが出ませんでしたが、メロンパンさんの環境ではどのようなエラーがでるのでしょうか。
コピー出来ないと言いますが、手で書き写すとか、スクリーンショットを撮るとか、やり方はあるはずです。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列のデータをテキストファイルのデータに更新
返信数: 5
閲覧数: 1393

Re: 2次元配列のデータをテキストファイルのデータに更新

すいません。(int)(s - '0')はググって試行錯誤で書いてみたコードです。 消し忘れでした。 s は文字列ですね。テキストファイルは文字列からでないと読み込めない?みたいなことが書いてあったので s - '0'で文字を整数に変換しようとしましたがうまくできませんでした 消し忘れってどういう意味でしょうか? iNum = (int)( s - '0' ); の行は本来なら書く必要がないという意味でしょうか? でもそれだとiNumに値が入りませんのでダメですよね。 さて、s - '0'についての質問に回答していただいてありがとうございます。 文字列やポインタあたりはハマリポイントですから...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列のデータをテキストファイルのデータに更新
返信数: 5
閲覧数: 1393

Re: 2次元配列のデータをテキストファイルのデータに更新

まず58行目に注目してみましょう。
(int)(s - '0')
は何をやろうとしているのでしょうか?
何を言われているのか良くわからないならば、下記の質問にお応えください。
  • s はどんな値でしょうか(整数でしょうか、文字でしょうか、ポインタでしょうか)
  • s - '0' はどんな値でしょうか(文字を整数に変換した値でしょうか、ポインタでしょうか)
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラスの使いどころが解りません
返信数: 5
閲覧数: 3191

Re: 抽象クラスの使いどころが解りません

taketoshiさんの疑問は、「なぜ Java にはインターフェースなるものがあるのだ?」ということと一緒かもしれません。
C++にはインターフェースという特別な名前のついた機能はありませんが、すべての関数が純粋仮想関数(virtual かつ =0)であるようなクラスは Java のインターフェースとほぼ同じ意味になります。

ということで、実装とインターフェースの分離、というお話を勉強したらいいのではと思います。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 物理法則
返信数: 7
閲覧数: 2301

Re: 物理法則

空気中に突っ込んだり、空気中を抜けたりというように、環境が変わる場合には運動の式が変わりますね。 床に衝突するというのも環境が変わっていますね。(そして式も変わりますね) 式が変わった瞬間に時刻tを0にすればいいのです。 さて、空気抵抗は正確に計算するのは結構難しいと思いますが、確か kv^2 で近似できたと思います。 kは定数、vは物体の落下速度です。 kv^2 は上方向に働く力なので、重力と差分をとって mg - kv^2 が物体に下向きにかかる力ですね。 これが負ならば物体は減速しながら落下し、正ならば加速しながら落下します。 運動方程式は ma(t) = F(t) ですから、時刻 t ...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 章の移行について
返信数: 6
閲覧数: 1626

Re: 章の移行について

とっしーさんの質問は良い質問だったと思いますよ。
どんどん面白いソフト・役に立つソフトを作ってください。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 章の移行について
返信数: 6
閲覧数: 1626

Re: 章の移行について

ある一つのmain関数から別のmain関数を呼び出したい、ということでしょうか。 つまりこのように。 int main(void) { // 別のmainを起動! main(); return 0; } これは無理です。なぜなら、main関数1つ(0個でも2個以上でもだめ。ちょうど1つ)で1つのアプリケーションになるからです。 ちなみにですが、上記のプログラムはmainが自分自身を呼び出し続けるアプリケーションとなります。(そのうちスタックオーバーフローでストップすると思います) しかし、1つのアプリケーションから別のアプリケーションを呼び出すことは可能です。 たとえば呼び出したいアプリが h...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: イテレータについて
返信数: 9
閲覧数: 3148

Re: イテレータについて

へにっくすさんのやり方だと23行目で配列のコピーが発生するために効率が悪いと思います。効率を無視すれば問題ない書き方です。
itのままだと扱いにくい、でも配列のコピーが発生するのも嫌だなあ、ってときは

コード:

vector<Point>& p = *it;
などと、参照にするのがいいでしょう。

>>の間にスペースを挟まなくていいのは、実は C++11 の規格です。おそらく VS 2005 は独自に拡張して対応しているのでしょう。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: イテレータについて
返信数: 9
閲覧数: 3148

Re: イテレータについて

it == end では、pointに要素が1つも無い場合にのみfor文が実行されてしまいますよ。 典型的な書き方は次のようになります vector<vector<Point> > point; vector<vector<Point> >::iterator it; for (it = point.begin(); it != point.end(); ++it) { } イテレータit自体は普通のポインタと同じように扱えばいいです。 すなわち、itは vector<Point>* と同じような型だと思ってください(実のところ、本当にこの型の場合もあります)。 ですから it を使って何かす...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ジャバスクリプトでスクリーンキャプチャー
返信数: 9
閲覧数: 3230

Re: ジャバスクリプトでスクリーンキャプチャー

ウェブ界隈にはあまり詳しくないのですが、原理的に考えてみるとブラウザ依存な問題な気がします。
Javascriptなんて所詮ブラウザ上で解釈されて動くだけです。
ブラウザがスクリーンキャプチャの機能を持っており、その機能をJavascriptインタープリタにも提供しているのであればスクリーンキャプチャできるのだろうと思います。
とうことで、もしかしたらそんな機能を実装したブラウザがあるかもしれませんし(僕は知りませんけど)、オープンソースのブラウザを自ら改造して実装することもできるかもしれません。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: メモリリークor領域アクセスが分かりません
返信数: 5
閲覧数: 2061

Re: メモリリークor領域アクセスが分かりません

僕の環境(Mac OS X Lion 64 bits)では正常に動作しています(表面上は少なくともエラーが出ていません)。
一つ提案ですが、配列へのアクセスというアクセスすべてに、添字チェックのコードを付加したらどうでしょう。
assert(0 <= i && i < NUMDIGITS);
などというコードを、添字アクセスしている行の直前に書けばいいのです。
それで教授に動かしてもらい、どこで落ちたのか教えてもらうというのはいかがでしょうか。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 画像表示の質問
返信数: 3
閲覧数: 1919

Re: 画像表示の質問

イラスタで描いた絵をpng形式にしてデスクトップで適当に作ったフォルダに保存したのですが・・・・・・保存した場所が悪いのでしょうか? はい、まさにその通りです。 "画像/キャラクタ00.png" というのは重要な情報でして 「カレントディレクトリ」の中の「画像」ディレクトリの中の「キャラクタ00.png」というファイル を指します。 ディレクトリはフォルダと読み替えていただいてもいいでしょう。 カレントディレクトリというのは、プログラムが現在動作しているディレクトリのことです。 ファイルの場所を示すには2通りのやり方があります。まず絶対位置というやり方です。 C:\Users\Public\...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: AOJの問題
返信数: 5
閲覧数: 2598

Re: AOJの問題

せっかくC++を使うのにstd::stringは使わないのですかね。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: sleep関数について
返信数: 2
閲覧数: 1124

Re: sleep関数について

sleep関数の内部実装を覗いたわけではないのですが、OSを少し作ったことがある経験からもし僕だったらマザーボードに組み込まれているタイマー(プログラマブル・インターバル・タイマー)からの割り込み信号を積算して秒数を数えるような実装にすると思います。 クロさんのいう「サーバの時刻」がLinuxでいう「ハードウェアクロック」と「ソフトウェアクロック」のどちらを指しているか分かりませんが、タイマーによる実装はすなわちソフトウェアクロックによる実装ということです。 そもそも、スレッドという仕組みがあるマシン上でsleep関数を呼び出しますと、sleep関数を呼び出したスレッドは停止しますから、sle...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題が解けないけん、教えてください
返信数: 4
閲覧数: 1958

Re: 宿題が解けないけん、教えてください

yahoo! 知恵袋 にマルチポストされています http://detail.chiebukuro.yahoo.co.jp/qa ... 1490858649
この掲示板のフォーラムルールではマルチポストする場合は相互リンクすることが必要ですので相互リンクをお願いします。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: プログラミングを書いてほしい
返信数: 3
閲覧数: 1260

Re: プログラミングを書いてほしい

別スレッド http://dixq.net/forum/viewtopic.php?f=3&t=11082 に多重に投稿があるようです。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: プログラミングを書いてほしい
返信数: 3
閲覧数: 1260

Re: プログラミングを書いてほしい

フォーラムルールはご覧になりましたか?
この掲示板では課題の丸投げは禁止されています。
もし手も足も出ないために丸投げしているのでしたら、勉強方法からアドバイスを受けるようにしてください。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: {}の位置
返信数: 15
閲覧数: 13920

Re: {}の位置

使ってる言語や計算機、コミュニティーなどでも大きく変わる問題だと思います。
例えば上のような書き方は行数を削減しやすいため、昔の計算機のように画面が小さかったころには好まれたと読んだ記憶がありますし、
Visual C#のエディタでは下のようなフォーマットを強制してきます。
私は既存のソースコードを編集する場合はそのソースコードの形に合わせ、新規に書く場合は下のような書き方にする場合が多いです。
慣れ、趣味、一番最初に出会った教科書からの影響、憧れの人の書き方などなど、いろいろな要因があります。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 配列のincludeについて
返信数: 3
閲覧数: 1102

Re: 配列のincludeについて

基本的なやり方は、ヘッダーファイルに「配列aはどこかで定義されていますよ」というお知らせを書き、どれか一つのcppファイルに配列aの実際の定義を書きます。 何らかの変数が「どこかで定義されている」というのを表すには「extern」というキーワードを使って、ヘッダファイルに以下のように書きます。 extern T hoge; 今回の場合は配列aをextern宣言したいのですから extern T a[n][m]; と書いておきましょう。Tには要素の型を、n, mには要素数をそれぞれ書き込んでください。 そして、どれか1つのcppファイルに定義を書きます。 T a[n][m];
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: おかしいところがわかりません
返信数: 6
閲覧数: 2530

Re: おかしいところがわかりません

フォーラムルールはご覧になられましたか?
フォーラムルール さんが書きました: また、解決した時は、「解決しました」とだけ言って去らず、ソースコードや解決した方法を明記して下さい。

同じ事で困っている人の為に過去ログに有用な情報を残すようお願いします。
とのことです。よろしくお願いします。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二分探索木
返信数: 2
閲覧数: 1335

Re: 二分探索木

kknkさんは何を質問したいのでしょうか?
もしかして、「必要な関数・構造体の定義をここに書く」「木の高さや木の形をここで表示」を完成させてくれ、ということでしょうか。
そういうことでしたら、この掲示板の「フォーラムルール」にあるとおり課題の丸投げは禁止されていますので、答えることはできません。

ともかく、kknkさんの投稿は質問の体を成していないので、もう少しきちんと再度質問してください。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ナップサック問題の最適解を求めるプログラムについて質問です。
返信数: 3
閲覧数: 2910

Re: ナップサック問題の最適解を求めるプログラムについて質問です。

第一に、あなたが思うところの、間違っているかもしれない、抜けているかもしれないこととは何でしょうか? あと少しの所までできた、と言えるということは、「あと何をすれば完成するのか」の予想が出来ているということですよね?それは何ですか? 第二に、ソースコードを貼り付けるときはcodeタグを使って下さい。詳しくはフォーラムルールを御覧ください。 第三に、質問はもう少し簡潔にお願いします。 間違いを訂正してもらうのに、本当に全てのソースコードを貼り付ける必要があるのでしょうか? 抜けていることを探し出すという非常に根気のいる作業を、ほとんど丸投げしていいのでしょうか? 第四に、貼り付けるソースコードに...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: wavファイル
返信数: 1
閲覧数: 651

Re: wavファイル

wavファイルの波形データではない部分(ヘッダ部分)の書き方は知っていらっしゃるようですので、そのあたりのソースコードをお示しいただけますか?
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の変数代入操作を1つの関数にまとめて行う方法
返信数: 9
閲覧数: 2944

Re: 複数の変数代入操作を1つの関数にまとめて行う方法

補足:よりsnさんが書きたい方法に近づけたバージョン int main() { Color c1(100, 10, 20, 30); // アルファチャネルが100の色を生成 cout << "c1 (" << c1.a << "," << c1.r << "," << c1.g << "," << c1.b << ")" << endl; c1 = Color(40, 50, 60); // color = GetColorAll...的な書き方 cout << "c1 (" << c1.a << "," << c1.r << "," << c1.g << "," << c1.b << ")...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の変数代入操作を1つの関数にまとめて行う方法
返信数: 9
閲覧数: 2944

Re: 複数の変数代入操作を1つの関数にまとめて行う方法

C++を使っていいならこんな感じに書けます #include <iostream> using namespace std; struct Color { int a; int r; int g; int b; Color(int a, int r, int g, int b) : a(a), r(r), g(g), b(b) {} Color(int r, int g, int b) : a(-1), r(r), g(g), b(b) {} Color& operator=(const Color& rhs) { if (rhs.a >= 0) { a = rhs.a; } r = rhs....
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 自作関数と再帰呼び出しを使ったプログラムについて。
返信数: 15
閲覧数: 5027

Re: 自作関数と再帰呼び出しを使ったプログラムについて。

かずま さんが書きました:配列 t も個数 N もグローバルなので、段数もグローバルでいいでしょう。
と書いてありますが、いちこさんのプログラムでは段数jはローカル変数であり、毎回0に初期化されますので、毎回2つのタブが表示されるのは正常な動作ですね。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++ 2010を使ってAndroidで動くソフトの開発
返信数: 18
閲覧数: 8637

Re: Visual C++ 2010を使ってAndroidで動くソフトの開発

This batch is file needs to be run with administrative privileges.Since it copies files to the \Program Files directory. 続行するには何かキーを押してください. . . この英文に重大なヒントが書かれています。管理者権限で実行しろと。 しかも、Program Filesフォルダにコピーしてからやれと。 それは違うと思いますけども。 Since it copies... のitは恐らくThis batchを指すので、「このバッチファイルはファイルをProgram Filesに...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++ 2010を使ってAndroidで動くソフトの開発
返信数: 18
閲覧数: 8637

Re: Visual C++ 2010を使ってAndroidで動くソフトの開発

install.cmdはC:\temp\vs-android-0.93\MSBuildのフォルダの中に有りダブルクリックすると↓のように表示されます。 This batch is file needs to be run with administrative privileges.Since it copies files to the \Program Files directory. 続行するには何かキーを押してください. . . と表示されます。 この英文に重大なヒントが書かれています。管理者権限で実行しろと。 英語が苦手ならば仕方ないのかもしれませんが、これくらいの英語は読んで理解...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 計算の順序
返信数: 3
閲覧数: 1633

Re: 計算の順序

浮動小数点数は実数型ではなくて小数型でして、ある桁数までしか保持できません。
浮動小数点数の演算には誤差がつきものです。

AOJの問題文を読むと、小数点以下第4位を四捨五入しろと書いてありますが、その処理が見当たりません。
printfが四捨五入してくれるという保証もありませんし。

このあたりが複雑に絡み合った問題なのかもしれませんね。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル書き込みを関数化したい
返信数: 13
閲覧数: 6264

Re: ファイル書き込みを関数化したい

後から読んだ人が間違えないように幾つか指摘します。tazさんにとっては解決している問題ですので、読まなくても構いません。もちろん、これを読んで質問があるようなら是非質問してください。 csv_write関数は戻り値型がvoidではないのに戻り値を返しません。よって ret=csv_write(i); のようなコードはretに何が入るか分かりません。危険です。 今回のプログラムではret変数に代入したきり使用しておりませんので、運良く危険を回避しています。 csv_read関数も同様に戻り値を戻さない場合があります。 グローバル変数を使い過ぎています。fp, fnameはまだいいとして、ret,...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル書き込みを関数化したい
返信数: 13
閲覧数: 6264

Re: ファイル書き込みを関数化したい

このフォーラムのルールとして、解決した場合は最終的なソースコードや解決した方法を明記していただく必要があります。
同じ事で困っている人の為ですのでお願いします。
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: WINDOWSソースコードをコンパイルするには?
返信数: 13
閲覧数: 4720

Re: MinGWのコンパイラにDXライブラリのヘッダファイルを関連付け?リンク?する方法

以下、HHさんの到達度チェック項目 [1]GCC(gcc, g++など)を使って、あるC++ソースファイルを「コンパイルだけ」するやり方はご存知でしょうか。 [2]GCCを使って、何かのライブラリをリンクするやり方はご存知でしょうか。 [3]GCCを使って、コマンドライン引数によってマクロを定義するやり方はご存知でしょうか。 [1]は、オプション?-cをファイル名の後に付け足す 『gcc filename.c -c』 ですよね? [2]は、GCCを使ってコマンドラインでのライブラリのリンク方法は・・・C言語のソースファイルに、コマンドライン上でDXライブラリのリンクをする方法となると、 具体...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: 情報課題なんですが...
返信数: 5
閲覧数: 1898

Re: 情報課題なんですが...

特に手でグラフを描けるかどうかはそんなに重要ではないと思いますけど。 手で描くのが難しいようなグラフこそコンピュータで計算する価値があります。 さてと。とろろさんは何が「分かりません」なのでしょうか。 y=f(x)という式が与えられたとき、グラフの描き方が分からない グラフの描き方は分かるのだが、それが与えられた情報課題とどう関連するか分からない 情報課題が「y=f(x)のグラフが通る点を求めろ」と言っていることは分かるが、どうやってプログラムしていいか分からない 中学の数学で習うと思いますが、y=f(x)という式のグラフを描くとき、各xに対応するyの値を求めておき(つまりxとyの表を作ってお...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: WINDOWSソースコードをコンパイルするには?
返信数: 13
閲覧数: 4720

Re: MinGWのコンパイラにDXライブラリのヘッダファイルを関連付け?リンク?する方法

タイトルの内容になるのですが、以前いただいた回答の中に、標準的なものはコンパイルできると思うが、リンカの指定など含めるとmakefileを作る事になる。 とありました。 要するにDXライブラリとMinGWに同じかあるいは似たようなライブラリがある場合だとg++のみのコマンドでコンパイルが可能で、DXライブラリ内の全ての機能を使おうとするとmakefileを作る事になるという解釈で合ってますか? DXライブラリの中の関数を1つでも使う場合はDXライブラリをリンク指定しなければなりません。 そもそも、DXライブラリと同じような関数はMinGWには無いと思います。 以下、HHさんの到達度チェック項...
by beatle
11年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルデータの更新処理
返信数: 28
閲覧数: 9223

Re: ファイルデータの更新処理

main関数を再帰的に呼び出している(103行目)のは意図したことなのでしょうか?
普通のプログラムでは、自分でmainを呼び出すようなことはしません。

想像するに、update_record関数からmain関数へ戻りたいだけなのでしょうが、それならreturnすべきです。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 解決してませんでした><
返信数: 32
閲覧数: 9151

Re: 連結リストと二分探索木について

つまり悩んでおられるのは「木探索」ですね。 いろいろ検索できるように用語を書いておきますね。 まず木探索には主に2種類あります。「深さ優先探索」と「幅優先探索」です。 次に、どうやってプログラムで実装するかというと「再帰関数」で実装することが多いと思います。 木構造を辿って行く事を「トラバース」といったりします。 --用語終了-- 深さ優先探索の関数は大体次のような形の関数になります。 void VisitTree(Tree* t) { if (t == NULL) { return; } /* t自体の処理をする */ /* t->leftとt->rightの処理を再帰的に行う */ Vis...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: DrawGraphなどをヘッダファイルにして扱う
返信数: 7
閲覧数: 2596

Re: DrawGraphなどをヘッダファイルにして扱う

解決しているようですが一つ指摘させていただきますと、ヘッダファイルに関数定義を書くのはよくありません。関数のプロトタイプ宣言だけをヘッダファイルに書いて、関数定義は.cファイルに書くのが通例です。 現状ではヘッダファイルの中身が以下ですね。 #include "DxLib.h" int gazou(int test[],int n){ for(int i=0;i<n;i++) DrawGraph(10,10,test[i],TRUE); //この3行をヘッダファイルにして扱いたい return(0); }; これを、ヘッダファイルには以下の部分だけを書きます。(ちなみに最後のセミコロンは余分で...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の交換
返信数: 4
閲覧数: 1924

Re: 配列の交換

フォーラムルールを見ろというのは至極もっともで、是非読んでほしいのですが、重要なのは12asさんが「何が分かっていて何が分かっていないのか」です。
それを示す簡単な方法は、現状で書くことのできるソースコードを掲載することです。
「プログラムがわかりません。」とは具体的にどこがわからないのか。main関数の書き方は分かるのかどうなのか、配列の中身を表示するやり方は分かるのかどうなのか、そういうのを示すことが大切です。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: newで生成した複数のクラス
返信数: 1
閲覧数: 838

Re: newで生成した複数のクラス

newがソースコード中に出てきませんが、どういうことでしょうか? 仮に Character* mCharacter; mCharacter = new Character[3]; の貼り付けミスだと仮定して話を進めます。 mCharacter[0]がupdate内でgetPosition()を行なっても得られるのはmCharacter[0]のmPosの値でした。 これは当たり前のように思えます。あるインスタンスのメソッドを呼び出したら他のインスタンスのメソッドまで(意図せず)呼び出せてしまう、というのは逆に考えるととても怖いことです。 Character::getPosition()は単に自分...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 成績データのソート(連結リスト・その2)
返信数: 29
閲覧数: 9060

Re: 成績データのソート(連結リスト・その2)

せめて、どの行を実行したら動作が止まったかぐらいは特定できるように頑張りましょう。
VC++ならデバッグ機能でブレークポイントが使えますし、そうでなくともprintfなどを随所に織り込むとか、怪しそうな場所にexitの呼び出しを挿入してみるとか、やり方は沢山あります。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列判定プログラム(再帰的)の課題です
返信数: 16
閲覧数: 6450

Re: 文字列判定プログラム(再帰的)の課題です

まったく再帰関数にはなっていませんが、解決でよろしいのでしょうか。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 全てのキーの入力状態を取得する について
返信数: 11
閲覧数: 3255

Re: 全てのキーの入力状態を取得する について

ze さんが書きました: その後でkey配列の中にキーコードを入れている
具体的にどの部分が、Key配列の中にキーコードを入れている処理だと思っていますか?
(「入れている」を代入のことだと仮定して話します)

Keyを変更する処理は
Key++;

Key = 0;
しかありませんが、僕にはそのどちらもキーコードを代入しているようには見えません。

もしかして、Keyのiがフレーム数だと思ってらっしゃいますか?
それならそれは間違いです。このときのiもキーコードを示しており、「キーコードiを持つキーが押され続けているフレーム数」を表すのがKeyです。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題でつまづいています。助けて下さい。
返信数: 5
閲覧数: 1718

Re: 宿題でつまづいています。助けて下さい。

確かに配列aにn個の要素を代入していますが、それは配列a自体を動的に確保したことにはなりません。
配列aの(最大)要素数はCAPAであり、
int a[CAPA];
というように静的に確保しています。

もし、「input n>>」でCAPAより大きな数値、すなわち257以上の数値が入力されたら、配列から溢れてしまいますね。
そのような状況を防止するために、入力されたnを用いて配列aを動的に確保するようにします。それが問題文が求めていることです。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 関数について……教えてください
返信数: 14
閲覧数: 3598

Re: 関数について……教えてください

boxさんの指摘した部分を修正するのに加えて、変数名をもっとわかりやすいものにしましょう。 アルファベット1文字の変数が多すぎです。s, c, n, iはよく使うのでいいとして、その他の変数名は単語の組み合わせで作ってみてください。 例えば変数dは「numOfData」という名前がいいかと思います。 わかりやすい名前を付けることによって、その変数を何に使っているかをきちんと意識できるようになり、バグが減ります。 さらなる修正として、fgetsを使ってはいけないのでしたらmyfgetsなどという名前で、fgetsの動作を模倣するような関数を作れば、プログラム全体の構成がもっと簡単になります。 m...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列判定プログラム(再帰的)の課題です
返信数: 16
閲覧数: 6450

Re: 文字列判定プログラム(再帰的)の課題です

そして48行目から52行目までがおかしいですね。以下、その部分の抜粋です。 if(member(animal,listhead)==0){ printf("%sは存在します。\n",animal); }else if(member(animal,listhead)==1){ printf("%sは存在しません。\n",animal); } you3749さんは最初の投稿で 条件(2) memberのプロトタイプ宣言は int member(char *,struct cell *); 第1引数:文字列 第2引数:リストへのポインタ 返り値:第1引数の文字列が第2引数のリストの要素ならば1を、そ...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列判定プログラム(再帰的)の課題です
返信数: 16
閲覧数: 6450

Re: 文字列判定プログラム(再帰的)の課題です

65行目から72行目にかけて struct cell ani1; のように7つの変数を生成していますが、これらの変数は初期化されていません。 つまり、 ani1.animal ani2.animal などにはゴミデータが入っていますので、そのゴミデータと"rat"や"cat"のようなデータとを比較しても無意味ですし、そもそも未初期化のゴミデータを参照するのは正しいCプログラムではありません。 member関数は何をやりたい関数なのでしょうか?渡されたリスト(struct cell *next)に、渡された文字列(char *animal)が含まれるかをチェックしたいのですよね? だとしたら渡さ...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 関数について……教えてください
返信数: 14
閲覧数: 3598

Re: 関数について……教えてください

 しかし、これだと関数部分に2回目以降入るときもs[0]からになってしまうため、ずっと同じ数になってしまいます。  そこで、二週目以降、xを初期化しない方法が知りたいのです。 この考え方は捨てて下さい。 そして、文字列を整数に変換する関数unyoに、毎回変換したい文字列の先頭ポインタを渡すようにしてください。 つまり、 123 456 という入力が来る場合、一回目のunyoの呼び出しではunyo("123")となるようにし、二回目はunyo("456")となるようにします。 もちろんunyoの引数に直接文字列定数は書けませんから while (...) { // 標準入力から1行だけ読み込み...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列判定プログラム(再帰的)の課題です
返信数: 16
閲覧数: 6450

Re: 文字列判定プログラム(再帰的)の課題です

ideoneに貼り付けてあるソースコードのインデントがめちゃくちゃですので、それを綺麗にするところから始めましょう。 インデントについては 投稿前チェックリスト のチェック2と3を御覧ください。 さて、まず構造体のポインタで詰まっているようですね。基本を書きますので参考にしてください。 struct Foo { int bar; }; という構造体があったとしましょう。 基本的な使い方は下記のようになります。 struct Foo foo; /* struct Foo型の変数を生成 */ struct Foo *ptr = &foo; /* struct Foo*型のポインタ変数を生成(初期値...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 壁との接触でスムーズに滑らせたい。
返信数: 6
閲覧数: 3655

Re: 壁との接触でスムーズに滑らせたい。

新月獅子さんのいう「黙認」とはどういうことでしょうか。 僕の認識では、黙認とは明示的に許可はしていないが、(その状況は禁止するほど悪くなっていないので)明示的に禁止もしていない、ということだと思っています。 しかし、先ほど示したリンク先では 当サークルでは同人で慣例的な手段(ホームページ上で公開、即売会や同 人ショップの委託販売等)と内容(漫画、小説、ゲーム、CG、グッズ、 コスプレ等)であるならば、許諾、提出、報告等を行わなくとも自由に使 用して構わない事にしています。 とあります。 「許諾、提出、報告等を行わなくとも自由に使用して構わない事にしています。」だそうです。 確かに、個々の二次創...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 壁との接触でスムーズに滑らせたい。
返信数: 6
閲覧数: 3655

Re: 壁との接触でスムーズに滑らせたい。

新月獅子 さんが書きました:まず、「キャラクタを真似」したらまずアウトです。東方二次創作ゲームでキャラ真似てるのは黙認されてるだけでアウトです。
あれ、そうでしたっけ?
東方シリーズのキャラや設定を使って二次創作物を作るのは、ZUNさんが公式に許可していると思っていました。
参考上海アリス幻樂団創作物の二次創作・使用関連ページ
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: LEDマトリックスについて
返信数: 14
閲覧数: 6431

Re: LEDマトリックスについて

タイマー割り込みが来るたびに次の列に遷移するというやり方でいいと思います。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: どのプログラミングを選ぶべきか
返信数: 5
閲覧数: 2319

Re: どのプログラミングを選ぶべきか

プログラミング言語は世の中に沢山あります。それらには共通した部分が多くあります。
PCすら初心者ということですので、CやVBAも難しいような気がします。
ということで、絶対バグらない RPG制作勉強会1という動画を見つつ、HSPなる言語を勉強してみてはいかがでしょうか。

HSPはCやC++とは文法などがかなり異なりますが、HSPで得た知識はCやC++でも役立ちます。
HSPは開発環境自体の扱いが容易ですので、PC初心者でも扱えると思います。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】オブジェクト指向プログラミングについて
返信数: 19
閲覧数: 6593

Re: 【雑談?】オブジェクト指向プログラミングについて

>beatleさん ありがとうございます~ しかし参考書で4000円オーバーとは…(汗) サブPCを新しく買おうと思ってお金を溜めている僕には厳しいものが…! でも確か教務員室の本棚に参考書が一杯ありましたから、明日にでもそこを探してみますね…w まあ600ページを超える本ですから、妥当な値段だと思いますよ。 掲示板でいろいろな人に意見を聞くのはとても大事だと思いますが、やはりどうしても体系的に学びにくいと思います。 その点、書籍なら体系的に学びやすいです。 僕が紹介した本は演習問題も載っています。 本の構成は全体を通して「ある顧客の要望を聞いて、ソフトウェアシステムを実装し、改良していく」...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: c言語 動作しない理由がわかりません。
返信数: 5
閲覧数: 2047

Re: c言語 動作しない理由がわかりません。

正常に動かないとおっしゃいますが、正常に動かないのにもいくつか種類があります。
  • そもそもコンパイル(ビルド)が完了しない
  • ビルドは成功するが、アプリを起動させると強制終了する
  • 強制終了はしないが、期待した動作をしてくれない
もし、「正常に動かない」ときに何かエラーメッセージのようなものが出ているのであれば、それを貼り付けて下さい。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】オブジェクト指向プログラミングについて
返信数: 19
閲覧数: 6593

Re: 【雑談?】オブジェクト指向プログラミングについて

僕はオブジェクト指向を使ったソフトウェアの設計をHead Firstオブジェクト指向分析設計で学びました。
この本はプログラミング言語としてJavaを採用していますが、考え方は他のオブジェクト指向言語にも通用します。
それから、外人さん特有のノリで読んでて新鮮で楽しかったです。
参考までにどうぞ。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: メモリ領域について
返信数: 3
閲覧数: 1671

Re: メモリ領域について

静的変数はメモリを最後まで確保するのでむしろ自動変数より余計にメモリを食うと思うのですが… それともスタック領域より静的領域のほうがメモリのサイズが大きいということでしょうか? 静的領域は実行可能ファイルをメモリにロードする段階でサイズがはっきり分かりますから、それにあわせて領域が確保されます。 したがって、基本的にいくらでも静的領域に変数を確保することができます。 対照的に、スタック領域はメモリへのロード段階でははっきりした使用量が分かりません。動的に使用量が変化するからです。 ですから、通常はリンク時に決め打ちした容量でスタック領域が確保されます。 実行時にその領域を飛び出すくらい多く変...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題でつまずいてます
返信数: 93
閲覧数: 22019

Re: 宿題でつまずいてます

はい。0x00はヌル文字のことです。
C言語では御存知の通り、文字列はヌル文字で終端することになっていますから、文字列用のコピー関数strcpyはヌル文字までしかコピーしません。
しかしバイナリデータというのは0x00を通常のデータとして含む可能性がありますから、strcpyではデータ全体をコピーできません。
そこで、memcpy関数を使って指定したバイト数だけコピーするようにします。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 簡単な3Dゲーム
返信数: 3
閲覧数: 1674

Re: 簡単な3Dゲーム

C++で3Dゲームを作ったそうです3D c++ game with source code
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題でつまずいてます
返信数: 93
閲覧数: 22019

Re: 宿題でつまずいてます

れお さんが書きました:バイナリデータがわからないので理解できませんがまだ関係なさそうですねw

ありがとうございました^^
strcpyとmemcpyの違いは、簡単にいえばデータの途中に0x00がある場合に、strcpyはコピーが止まり、memcpyは止まらずに指定したバイト数だけ必ずコピーします。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 関数(?)で困っています……
返信数: 5
閲覧数: 3680

Re: 関数(?)で困っています……

なんと円周率を表すM_PIという定数は、ANSI-Cでは提供されないらしいです。
参考:M_PI : 定義されていない識別子です

ということで、ANSI-Cに従ったプログラムを書くなら円周率を自分で定義するのは間違っていないと思います。
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】と言うかテストのお願い。【gzipで高速化したよ】
返信数: 23
閲覧数: 8464

Re: 【雑談】と言うかテストのお願い。

接続直後2、3秒で表示されました。 スクロールは凄くスムーズです。 ページ切り替えは1秒くらいでした。 発売日と作者・キーワードはスムーズに切り替わりました。 これといって問題はありませんでしたが一応スペックを。 OS: Windows 7 Ultimate 64-bit Service Pack 1 CPU: Intel(R) Core(TM) i7 CPU 960 @ 3.20GHz (8 CPUs) RAM: 6GB RAM Chrome 19 GeForce GTX 285 【追記】 回線の話が出たので追記。うちのは光回線で、何世帯か共有の1Gbpsの回線です。 ルーターとか100Mb...
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題でつまずいてます
返信数: 93
閲覧数: 22019

Re: 宿題でつまずいてます

Eclipse + CDTでしょうか。でしたら、図のようにやればできるかもです。
eclipse_reo.png
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題でつまずいてます
返信数: 93
閲覧数: 22019

Re: 宿題でつまずいてます

どこまで実行したら動作を停止するのか、それを突き止めてみましょう。

Visual C++ならば、図の赤丸の部分をダブルクリックするとブレークポイントを設定できます。
その状態で実行ボタン(青丸で囲んだ三角形)を押せば、そのブレークポイントで実行が止まります。
ブレークポイントの位置をちょっとずつ変えながら実行を繰り返せば、どこで実行がストップしているかが分かります。
visual_cpp_reo.png
by beatle
12年前
フォーラム: C言語何でも質問掲示板
トピック: マイコンのメモリについて
返信数: 19
閲覧数: 8317

Re: マイコンのメモリについて

全ての変数がRAMに配置されるとは限りません。例えばconst変数はもしかしたらFlash上にのみ配置されるかもしれません。
それから、初期値有りグローバル変数の初期値はフラッシュに書き込まれます。

プログラムはFlashに書き込む以外にありませんよね。RAMは電源を切るとプログラムが消えてしまいますから。

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