- 1 名前:静的領域の名無しさん mailto:sage [2008/08/12(火) 18:23:10 ]
- C言語の入門者向け解説スレです。
教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題を片付けます 114代目 pc11.2ch.net/test/read.cgi/tech/1216746971/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 33 pc11.2ch.net/test/read.cgi/tech/1217073697/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
- 151 名前:デフォルトの名無しさん [2008/08/15(金) 03:58:51 ]
- それは可能だろ
機械語を生成するだけだからな でも使った事はないし知らない 32bitPCで64bitや携帯の機械語が生成できるのと同じ
- 152 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:58:56 ]
- Cygwinターゲットのクロスgccはなんか聞いたことがある。
- 153 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:02:15 ]
- MinGW
- 154 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:02:22 ]
- >>147
とりあえず答えておくとmingwとか使えばできます
- 155 名前:デフォルトの名無しさん [2008/08/15(金) 04:04:44 ]
- こういうケースだとJavaや.NETはいいな
- 156 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:57:51 ]
- typedef union _BYTE{
unsigned char byte; unsigned bit0:1; unsigned bit1:1; unsigned bit2:1; unsigned bit3:1; unsigned bit4:1; unsigned bit5:1; unsigned bit6:1; unsigned bit7:1; } BYTE; sizeof(BYTE)がどうしても1になってくれないんですけど、どうすりゃいいんでしょう?
- 157 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:05:14 ]
- >>156
つーかbitをくくれよ
- 158 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:06:31 ]
- 忘れてたよ
で、これ1byteにできないの?
- 159 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:08:13 ]
- あ、なんか自己解決したわ
unsigned char bitn:1;にすればよかったのね
- 160 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:08:48 ]
- つーかそんなので悩むなら普通に
byte に対してビット演算しろよ byte | 0x01 byte ^ 0x01 とかすればいいだけだろ?
- 161 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:50:01 ]
- 共用体でビットフィールド使っても無意味じゃないの?
- 162 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:52:20 ]
- ビットフィールド操作は大抵のコンパイラで糞なコードに展開されるわー
もうちっと最適化できないもんかね
- 163 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:56:01 ]
- 糞だとおっしゃるだけの英知をお持ちならそのご自分の能力でなんとかなさっては?
- 164 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:57:29 ]
- そもそもワードを任意のビットで区切ろうという発想が糞 は言いすぎとしても処理効率なんぞ求めんな
- 165 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:57:57 ]
- 英知というほどの物じゃないけど、アセンブラでビット操作を書いたら
こういう風には書かないだろうなあというコードになる。 C言語の仕様なので我慢して使ってるけど。
- 166 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:00:22 ]
- そこまで文句を言うならなぜ自分でアセンブらないの?
で、それに対する答えがそのまま>>162への答えだよ
- 167 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:02:15 ]
- インラインアセンブラは時々使うけど可読性が・・・
- 168 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:10:52 ]
- 宿題で世界のナベアツプログラムがでたんですが
3の倍数はいいとして 3のつく数の判定はどうすればいいんでしょう
- 169 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:15:27 ]
- 非標準だがitoa()を使って文字列に変換しstrchr()で判定する
- 170 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:18:34 ]
- >>168
それ、私が新人研修で出した課題だw sprintf()で文字列にしてから、strchr()で探すのが一番手っ取り早い。 真面目にやるなら、一桁ずつ10で割った余りをチェックすればいい。
- 171 名前:168 mailto:sage [2008/08/15(金) 13:39:07 ]
- なるほど、ありがとうございます
あまりを出して調べるやり方でやってみます。 ああ、でもそれだと32とか321は無理ですよね 一桁ずつというのは、 1、3を引く 2、10で割ってあまりが0か調べる 3、違うなら1へ って感じですかね ちなみに学校の宿題ですw
- 172 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:55:02 ]
- 12345
12345%10 = 5 12345/10 = 1234 1234%10 = 4 1234/10 = 123 123%3 = さぇぁ〜ん!
- 173 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:55:37 ]
- %3じゃなくて%10ね
- 174 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:56:41 ]
- 321と言う数字があったとする
321 ÷ 10 = 32 … 1 32 ÷ 10 = 3 … 2 3 ÷ 10 = 0 … 3 余りに3が出たのでこの数字は3が含まれていると言う事がわかる と言うこと
- 175 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:57:59 ]
- >>170
そのやり方だと3の時に3を足さないと結果変わるね。 170の最後の行は 1 0かどうかチェック 2 %3の結果が0かどうかチェック 3 10で割った商と余りを別々に保存 4 余りが3かどうか 5 違うなら商を使って3へ てことだろうから32でも321でも対応できるよ。 ただsprintf使った方がラク。
- 176 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 14:00:57 ]
- C言語質問じゃなくてアルゴリズム質問だからスレ違い
- 177 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 14:45:08 ]
- cursesを使ってブロック崩しのプログラムを作っているんですが、
return関数やscanfなどの標準入力関数を使うと、 なぜかprintfやmvaddstr関数などを飛ばしてしまい、ハイスコアの名前入力が作れません。 名前入力はどのようにすればいいでしょう? メイン関数は下のようになってます int main(int argc, char **argv){ int score; char tmp[7]; initscr(); /* 画面の初期化 */ noecho(); /* エコーなし */ cbreak(); /* 一度に1文字入力をON */ keypad(stdscr,TRUE);; /* 矢印キーが使える */ if(LINES>MinY&&WCOLS>MinX){ window(); /* 画面描画 */ } else{ printf("Windou size is too small!!!"); // return 0; } score = go(); /* ゲームを実行 */ GameEnd(score); endwin(); /* ウィンドウ終了 */ return 0; } GameEnd関数では、mvaddstrで「GameOver」と出した後、 scoreの値とファイルの値を比較し、ハイスコアであれば mvaddstrで「HighScore!put your name」と書いた後に scanfで名前を受け取ろうとしたのですが、mvaddstrが抜かされてしまう感じです。
- 178 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:11:06 ]
- cursesを使ったこと無いから的外れのことを言うかも知れないが
scanwを使っちゃ駄目なのか?
- 179 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:16:08 ]
- fflush(stdout)とか?
- 180 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:19:28 ]
- その肝心の部分を張らずに質問とはいい度胸だ
- 181 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:21:17 ]
- 環境依存すぎる
まずinitscrやらnoechoやらの仕様を詳細にチェックしなおすこと モードを変えた後で元に戻さないとならないとかないか?
- 182 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:22:31 ]
- # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
- 183 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:27:15 ]
- >>179ぐぐってみますた。バッファフラッシュですね。ちょっとやってっます。
>>178 使ってみましたが無視されてしまいました。 GameEndのソースファイルは今こんな感じです(いろいろ注釈にして試したりしてるのでごちゃごちゃしてますが… endwin()を実行後に、注釈部のscanfなどをやってみてもだめでした・・・ void GameEnd(int score) { int i,j,k; char tmp[7]=" ",file[10][7]; FileRead(file); mvaddstr(LINES/2-2,WCOLS/2-5," GameOver!! "); for(i=0;i<5;i++){ if(score>=atoi(file[1+2*i])){ for(j=4;j>i;j--){ strcpy(file[j*2], file[2*(j-1)]); strcpy(file[2*j+1],file[2*j-1]); } mvaddstr(LINES/2,COLS/2-22,"HighScore!!Put your name!!(Max 5 ch\ ars)"); mvscanw(LINES/2+1,COLS/2-15,tmp); FileWrite(file); break; } } return; }
- 184 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:36:34 ]
- 本当にちゃんとハイスコア出してるか?
あとbreakはそこ一箇所だけでいいのか?
- 185 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:37:46 ]
- >>180,182
すいません、ごちゃごちゃしてたので貼り忘れてました。 >>179 やってみましたがその部分になると凍結してしまいました… mvaddstr(LINES/2,COLS/2-22,"HighScore!!Put your name!!(Max 5 ch\ ars)"); fflush(stdout); fflush(stdin); scanf("%s",tmp); こういう順番でやってみたのですが >>181 やはりそうですよね… 学校の夏休み課題なんですが、cursesについての詳しい内容をほとんど教えられず 書き方だけしか教わってなかったのでさっぱりでした。 最悪カーセスモードを終了してからのscanfでやろうかと思ってるんですが、モードの終了の仕方もわからないで苦戦してます
- 186 名前:184 mailto:sage [2008/08/15(金) 15:37:54 ]
- あ、breakはいいのか
見間違えた
- 187 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:44:26 ]
- >fflush(stdout);
cursesは標準出力じゃないから意味がない。 >fflush(stdin); 入力のフラッシュ動作は環境依存。 >scanf("%s",tmp); %6sにしてバッファオーバフローを避けよう。
- 188 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:45:19 ]
- >>185
fflush(stdin) は環境によっては segmentation fault になるんじゃなかったっけ? curses で入力がある限り読み飛ばせば大丈夫そうな気はする curses 使ったこと無いのでちゃんとかけないけど こんな感じかと while(キーボードバッファに何か残っている) 読み込む;
- 189 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:54:59 ]
- >>187,188
ふむふむ。勉強になります こんな感じに書き換えてみましたがどうしてもここで凍結してしまいます。 scanfをなくすだけでちゃんとmvaddstrの文が表示されて正常終了するのですが… mvaddstr(LINES/2,COLS/2-22,"HighScore!!Put your name!!(Max 5 ch\ ars)"); while(fgetc(stdin)!=EOF) echo(); scanf("%6s",tmp);
- 190 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:59:25 ]
- >>189
それは駄目だ fgetc(stdin)==EOF になった時点以降は stdin から入力することはできない dos (conio.h) でいうところの while(kbhit()) getch(); っていうのがあるはず
- 191 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:02:47 ]
- あーそうそう、curses使っているときに標準入力を使おうとすると、想定外の場所にカーソルが出たり
標準入力の端末動作で画面が崩れたりするからそもそも標準入力は使えないと思う。
- 192 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:05:28 ]
- ・開発環境や動作環境も晒すと答えが早いかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:09:02 ]
- うおおおお、奥が深い
getch()ですね、ラケット移動などのカーソル受付をそれでやってます。 ただ、kbhit()にあたる方が分かりません。 仕様では「ゲーム終了時にTOP5に入っていたら名前を入力してもらう」と書いてあったのであれなんですが 友達はウィンドウモードにする前に、一番最初に名前入れてもらってやったと言っていました。 最悪自分もそうしようかなと思っていますが、、何か腑に落ちない感じがします。
- 194 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:14:42 ]
- 良く分からないけどバッファを読み飛ばすなら
while(getch() != '\r') 的な感じでどうだろうか?
- 195 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:17:45 ]
- >>193
ググってみた while(getch()!=ERR); でよさげ
- 196 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:22:41 ]
- >>191
なんと。 授業では入力方法は標準入力しか習ってないので…やはり一番最初に聞くしかない感じですかね >>193 すいません初心者で。以後気をつけます 環境は学校の端末(ice環境)を外部環境(PodeRosa)で動かしてます。 >>194、195 行の左端に戻る…と。ERRも始めてみました。勉強になります どちらも標準入力は受け付けなかったんですが、mvaddstrは表示されるようになりました! mvaddstr(LINES/2,COLS/2-22,"HighScore!!Put your name!!(Max 5 ch\ ars)"); while(getch()!=ERR); echo(); scanf("%6s",tmp); 今はこんな感じです
- 197 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:26:10 ]
- そこでscanfじゃなくてcursesでの入力受付使えばなんか出来るんじゃないかな?
- 198 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:32:20 ]
- おお、早速以下のコードでやってみました!
…が、出ませんでしたorz mvaddstr(LINES/2,COLS/2-22,"HighScore!!Put your name!!(Max 5 ch\ ars)"); while(getch()!=ERR); echo(); mvscanw(LINES/2+2,COLS/2-22,tmp); +------------------------------------------------------+ | | | |Time 1 | #### #### #### #### #### #### #### |Level 1 | |Score 10 | GameOver!! |HighS | #### #### #### #### #### #### |Name | HighScore!!Put your name!!(Max 5 chars) | | | | | | | | | | | ssh{*********}262: |
- 199 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:43:00 ]
- すいません、大分レス引っ張ってしまって。
いろいろアドバイスくださってありがとうございます。勉強になりました。 とりあえずは期限もあとわずかなので仕様とは少しずれてしまいますが以下のソースで提出だけしておきます ただ、自己満足になりますが悔しいのでいちおう現段階のソースも残しておきたいと思います。 int main(int argc, char **argv){ int score; char tmp[7]; printf("Hello,put your Name!(Max 5 Chars)\n"); fgets(tmp,6,stdin); printf("Let's play!!\n"); sleep(1); initscr(); /* 画面の初期化 */ noecho(); /* エコーなし */ cbreak(); /* 一度に1文字入力をON */ keypad(stdscr,TRUE);; /* 矢印キーが使える */ if(LINES>MinY&&WCOLS>MinX){ window(); /* 画面描画 */ } else{ printf("Windou size is too small!!!"); // return 0; } score = go(); /* ゲームを実行 */ GameEnd(score); endwin(); /* ウィンドウ終了 */ return 0; }
- 200 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:56:44 ]
- fgets()の常道では、第2パラメータは第1パラメータのサイズだ。
つまり、fgets(tmp, sizeof(tmp), stdin)でいい。 それから、(文字数オーバーじゃない場合に)末尾に改行文字が残ることにも注意。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 18:01:18 ]
- >>85
win32プロジェクトでやってもエラーが出ました。 ちなみに拡張子を.cppでやるとコンパイルできます。 Cなんですけど。
- 202 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 18:05:30 ]
- >>201
それが出るとき、プロジェクトのプロパティの全般の共通言語サポートはどうなってる?
- 203 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 18:15:29 ]
- >>201
共通言語ランタイム サポートのことですよね。 共通言語ランタイム サポートを使用しないになってました。
- 204 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 18:23:13 ]
- これ以上はVC++あたりかな。
/clr のオプションがつくとCとしてはコンパイルできなくなる。 /clrをつけるのが、共通言語ランタイムサポート。 つまり、キミの状態はあきらかにおかしい。 同じ症状を持った人じゃないとわからんな。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 09:52:03 ]
- なにかオススメのコンパイラはありますか?
- 206 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 10:59:01 ]
- >>205
LSI C-86
- 207 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:23:44 ]
- >>205
私はgcc(cygwin)を使っています。
- 208 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 14:34:52 ]
- ギャップバッファのサンプルコード等ありましたら教えて下さい
- 209 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 14:42:31 ]
- >>208
www.amazon.co.jp/dp/4938704269 この本に載ってるけど、見てみたらすごい値段になってるな。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 15:20:02 ]
- >>209
凄く・・・高いです。 どこかのサイトにCで書かれたサンプルコードは無いのでしょうか
- 211 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:11:22 ]
- aibm4.main.eng.hokudai.ac.jp/~takty/pro/gapbuf/index.html
ほれ。つーか自分でぐぐれよ まー俺もテキストはいじるので研究させもらうわ
- 212 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:26:47 ]
- >>211
すまん、それは昨日見たんだが、 C++はどうも・・・ ありがとうございます。
- 213 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:59:15 ]
- >>212
おいおい、100行ちょっとのソースも駄目なのかよw
- 214 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:20:38 ]
- 本が高かったら図書館に行けばいいじゃない
- 215 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:25:22 ]
- >>213
うん、駄目なのよ、C++分からないのよ >>214 既に取り寄せ連絡したから問題無い
- 216 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:33:43 ]
- そのソースを解析できないようじゃあ洋書を翻訳したのなんて厳しいんじゃね?
ちなみにグーグルにはこんなのもあって books.google.co.jp/bkshp?hl=ja&utm_source=ja-wh
- 217 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:41:10 ]
- >>216
書籍だが、C++使える事前提で解説されてるの?
- 218 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:44:06 ]
- 100行くらいならCに書き直してやろうかと思って>>211見にいったら
死ぬほど丁寧に解説されててワロタ あの解説文でわからないなら本読んでも無駄じゃない?
- 219 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:47:24 ]
- つーかギャップバッファの代替ロジックもおおよそ浮かんだけどなあ。
イメージはファイルシステムの情報管理の方法だよ
- 220 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:08:41 ]
- K&Rみたいな有名本ってほかになんかある?
- 221 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:16:13 ]
- >>218
Cに書き直して下さい
- 222 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:21:46 ]
- >>218
死ぬほど、とかそんな次元じゃなくて、 STL?template?operator?T& x?ってなんぞ?ってな感じでして、 C言語スレでC++のソースコード見せられるとは予想外でした。 C++じゃ全く読めなくて、すみません
- 223 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:23:28 ]
- これってさ双方向リストとかやってればすぐに応用かけそうだよな。
ギャップって呼ばれるのは特に説明がかかれてなかったけど1ギャップ=1バイトではなく 1ギャップ=nバイトの塊だよな?
- 224 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:25:02 ]
- >>222
ソースは見ないで、下の解説文だけ読めばいいと思う あれだけ丁寧に解説してあればサンプルソースなんかよりもずっと理解しやすいと思う
- 225 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:31:13 ]
- >>223
図をみたら、nバイトとしか解釈しようがないと思うけど。
- 226 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:35:39 ]
- テキストエディタで考えると1ギャップ=64バイトから128バイトくらい間が理想か。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:51:30 ]
- ネタではなく。
かなり前にMicrosoft Visual C++ 2005 Express Editionってのを やってみたんだけど、何をどうやっていかわからずいくつかくだらない ソフトを作って終わってしまいました。 やってみたいことは、ブラウザなどの操作を自動でやらしたい。 メールを受信して、本文中にある一部が定型のアドレスを 抽出し指定時間ごとにブラウザで開きブラウザに定型の文が 表示されたらタブを閉じる。 アプリケーションを操作する。などです。 こんなことできますか?できるなら何の勉強が必要なのか または近道なのか詳細お願いします。
- 228 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:59:39 ]
- >>227
C#でやったほうがいいんじゃね? ブラウザの操作は知らんけど、コンポーネントでIEの機能を使えるから、同様のことができると思う。 メールを受信してどうこうは、ググれば簡単に分かると思う。
- 229 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:00:02 ]
- >>227
ネットワーク系かな
- 230 名前:デフォルトの名無しさん [2008/08/16(土) 22:32:48 ]
- スロットのプログラムみたいね〜
- 231 名前:デフォルトの名無しさん [2008/08/16(土) 23:20:29 ]
- homepage3.nifty.com/mmgames/c_guide/index.html
すいません、上記サイトを眺めて勉強しているのですが、 C言語を業務で行うっていうレベルはどの程度なのでしょうか。 単に数の受け渡しをトレースできれば、 業務に就いたとき問題ないですか。
- 232 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:30:08 ]
- >>231
そのリンク先の内容が理解できるなら、 業務に問題ないレベルだろうと思う。 >数の受け渡しをトレース ってのはよく解らんのだけど。
- 233 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:32:24 ]
- ぴんきり
- 234 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:37:46 ]
- >>231
> 単に数の受け渡しをトレースできれば データフローのことだと思うよ データフローはプログラミングの基本、いやシステム設計の基本でもある
- 235 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:38:27 ]
- >>231
ちょっと古くなってる部分もあるけど、C FAQくらいは目を通しておくとか。 www.kouno.jp/home/c_faq/ Cを使っている職業プログラマでもC FAQレベルに達してないのはいっぱいいるけど。
- 236 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:52:56 ]
- C言語やっててトレースなんて単語言った時点でたぶん減点。
ollyでもやってんのか?
- 237 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 00:49:53 ]
- >>232-236
ありがとです。 引き続きサイトで勉強してみます。
- 238 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 01:30:09 ]
- 文字コードの相互変換をサポートする関数とかってありましたっけ?
S-JIS->EUCとか
- 239 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 01:32:48 ]
- sjistoeuc関数
使っている環境にあればの話 なければ自作
- 240 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 06:50:04 ]
- ちょっと相談させてください。
本格的にc言語を勉強したいと思い下記のサイトをよんだりしていたのですが やっぱり1から勉強するとしても情報が古すぎますか? ttp://www9.plala.or.jp/sgwr-t/index.html ttp://homepage3.nifty.com/mmgames/c_guide/ 今まで子供の頃から端々でプログラムを書いて利用する事はあったのですが 例題の文章を適宜加工して使っていた程度です。 本格的にc言語を学ぶにはどのサイトを参考にするのが現在お勧めなのでしょうか? そもそもビジュアルベーシックとか他の学ぶ方が現在では無難なんでしょうか?
- 241 名前:デフォルトの名無しさん [2008/08/17(日) 07:36:51 ]
- 本格的にC言語を学ぶのはよくないですよ。
本格的にアセンブラやっても利用されるのはほんの一部なのと同じような物です。 C言語は生産効率が良くありません。 C++言語からにして、それで不足分があればC言語を勉強したほうがいいですよ
- 242 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 08:04:59 ]
- そうなんですか
音楽でいうところのピアノやクラッシックと同じで 基本として完全に把握しておけばその分将来有利だと考えたのですが・・・・ そもそもflashうまくなればcはむしろ必要ない言語なのでしょうか? それでも基本は抑えておいた方が良いのかな? オブジェクト指向プログラムしか扱えない人間はなにかしら欠点抱えるようにおもって勉強しようかと思ったのですが・・・・ 苦しんで覚えるc言語でいうとどの程度までかじる価値があるのでしょうか? それともオブジェクト指向メインでやるなら完全に必要ないとか・・・・・
- 243 名前:デフォルトの名無しさん [2008/08/17(日) 08:16:20 ]
- 芸術ではないのでやりたい事が簡単に実現できれば良いんです。
ピアノは演奏自体が大事ですが、プログラムは生産物が大事です。 コードに芸術性を求めても良くないです。 生産性はC++の方が上です。 オブジェクト指向は、プログラムを簡単にするやり方なだけで C++だからといって必ずしも使う必要はありません。
- 244 名前:デフォルトの名無しさん [2008/08/17(日) 08:23:01 ]
- ここがいいですよ。 C言語もC++言語も。
あと日本語を読み書きするのに文法の勉強が必ずしも必要ないように 動かして体験して動作が確認できればいいんです。 とくにC++(の実用面)で重要な点はSTLと思います。 www5c.biglobe.ne.jp/~ecb/index.html www.geocities.jp/ky_webid/index.html
- 245 名前:デフォルトの名無しさん [2008/08/17(日) 08:23:46 ]
- いくらC言語を習得、熟練しようとも
基礎学力がないと、大作は作れないような気がするのですが どうでしょうか?
- 246 名前:デフォルトの名無しさん [2008/08/17(日) 08:29:30 ]
- マシンに近いという意味で、基本といえるのはアセンブラと思います。
C言語も、C++言語も、結局はアセンブラに変換されるので、最も基本だと思います。
- 247 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 08:45:08 ]
- そうなんですか
アセンブラ+flashあたりが私にとっての理想の組み合わせなのかなぁ とりあえずちょっと位さわりの部分程度は学んでc使える人と会話くらいはできるようになりたいので 苦しんで覚えるc言語をちょこっとやってみようとしたのですが問題が ttp://hp.vector.co.jp/authors/VA017148/pages/cpad.html#cpaddownload きときとCPadの一番重要なC/C++開発環境用だけが何故かリンク切れしてます。 どうすればこのエディタが手に入るでしょうか?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 08:46:28 ]
- >>245
もし私への質問でしたら、大作をつくる気はないです。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 11:36:36 ]
- 素人はrubyでもやってろってこった
- 250 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 12:30:13 ]
- >>249
Ruby の方が100倍難しいぞ 環境設定とか 環境設定とか 環境設定とか
- 251 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 12:36:11 ]
- >>245
大作を作るためのノウハウを修得、熟練しましょう。 特に、C言語の取扱いだけに固執するのではなく、 上流工程と呼ばれるもの(要求分析と設計)も含めて学習を進めるといいでしょう。 ER図やDFDが書けるだけでも世界が変わってくるはずです。
|

|