10/06/22 15:42:55
>>334
>これだと >>264 の 2.5~3 倍速になる
>除算は遅いから書き直せるものは書き直したほうがいいね
流石にこれはないなw
358:デフォルトの名無しさん
10/06/22 16:19:38
>>334程度が理解できないアホは>>257でも使ってりゃいいんだよw
359:デフォルトの名無しさん
10/06/22 16:24:33
>>358
かわいそうに、いやマジで
360:デフォルトの名無しさん
10/06/22 16:46:58
>>352
ちょっと>>334の代わりになる保守性の高いコードとやらを書いてみてよ
361:デフォルトの名無しさん
10/06/22 16:59:32
そもそも>>352は根底からおかしいからな。
どこがボトルネックだと考えているのか教えてほしいわ。
362:デフォルトの名無しさん
10/06/22 18:13:59
>>360
高速化を考えるんだったら、そのマシンや環境がどうかで大きく変わるし、
それ以前に最大桁が幾らかでも手法は色々考えられる。
例えばその辺のWindowsPCとかなら、そこそこメモリも使えるから、
#include <stdio.h>
#define N 1000000
int main(void)
{
static long table[N];
long i, j;
for (i = 1; i < N; i++)
for (j = i+i; j < N; j += i)
table[j] += i;
for (i = 0; i < N; i++) {
j = table[i];
if (j <= N && i < j && table[j] == i)
printf("%ld %ld\n", i, j);
}
return 0;
}
363:デフォルトの名無しさん
10/06/22 18:20:07
>>362
はやいな、おい
364:デフォルトの名無しさん
10/06/22 18:24:47
>>362
>>264 の10倍速
365:デフォルトの名無しさん
10/06/22 18:56:50
>>361
え、一般論だと思うけど。それがコードチューニングってやつだよ
どこがボトルネックか教えろって、なに言ってるの?
366:デフォルトの名無しさん
10/06/22 19:00:10
>>365
ボトルネックの部分をチューニングしてるわけだけど、そこをチューニングするなといっているように見える
367:デフォルトの名無しさん
10/06/22 19:01:20
>>362
なんで動いてるのかが分からない!かっけー
368:デフォルトの名無しさん
10/06/22 19:03:56
と思ったけど理解できた!
逆転の発想スゴス
369:デフォルトの名無しさん
10/06/22 19:40:57
>>366
ボトルネックというのは、プログラムの実行時間の大半を占める部分だよ
370:デフォルトの名無しさん
10/06/22 19:52:51
>>362はかなりのやり手。
371:デフォルトの名無しさん
10/06/22 19:57:09
>>369
そんで、今回の友愛数を求めるプログラムのボトルネックはどこなの?
372:デフォルトの名無しさん
10/06/22 20:05:53
誰が友愛数を求めるプログラムの実行速度を要求してるの?
速くしたいのなら、いくらでもすればいいんじゃないでしょうか
保守なんていらないよ、そんなパーツには
373:デフォルトの名無しさん
10/06/22 20:11:41
>>371
Nの大きさに対する演算回数の多さじゃないの?
演算回数を減らす工夫が効果的ってことでしょ。
N*N だったものを 2*N にするとかはよくある話じゃないの。
374:デフォルトの名無しさん
10/06/22 20:17:00
だから、コンパイラが充分賢いなら小手先の最適化は慎んだ方がいいね。
>336の挙げた項目を整理すると、
・実数より整数の方が速いが、型変換は遅いから要注意。
・CPUによってはビットシフトは必ずしも速くない。
・条件分岐はできるだけループの外に。
・「ループの中で使う変数」だと意味不明だが、一次変数を利用してループ内の演算量を減らすのは有効。
・どうせ今時のコンパイラはstatic関数のインライン展開くらいしてくれるから、関数は機能ごとに分割すべき。
となるかな。
375:デフォルトの名無しさん
10/06/22 20:18:42
>>372
実行速度の要求もないのに、
自分の趣味で速くしたくてシフト演算使って高速化するの?
それで保守のことなど知ったことはないと開き直るの?
うちの会社なら即クビだ。
376:デフォルトの名無しさん
10/06/22 20:25:38
>>375
そういうことだ
377:320
10/06/22 20:44:43
>>327
ありがとございます。
残念ながら、VC++はC99に対応していないので、roundが使えないです・・・
>>328
あ、たしかに一律0.5f足すだと、負の四捨五入がおかしくなりますね・・・
調べてみたところ、次のようなやり方で絶対値的四捨五入ができると分かりました。
float a = -4.6f;
float b = ( a > 0 ) ? floor( a + 0.5f ) : ceil( a - 0.5f );
最終的に求めたいのはint型なので、以下のようなカタチでも良いと思うのですが、どうでしょう??
int b = ( int )( ( a > 0 ) ? ( a + 0.5f ) : ( a - 0.5f ) )
378:デフォルトの名無しさん
10/06/22 20:51:41
>>372
> 誰が
>>247
379:デフォルトの名無しさん
10/06/22 20:53:38
>>377
足して切り捨てしてるならおk。足して四捨五入ってところを心配したのだろうと思う。
380:デフォルトの名無しさん
10/06/22 20:56:36
割る数が2のべき乗の定数だと勝手に割り算をシフトに置き換えてくれるコンパイラもあるよ。
最近はその程度の最適化はやってくれる。
ただ、特定の乗除算とビットシフトが等価だって知らない人とは一緒に仕事したくない。
そんなの2進数の基本的な性質じゃん。
その程度のことで保守性が下がるとか、何寝言言ってんのって感じ。
381:デフォルトの名無しさん
10/06/22 20:58:16
>>375
ええと、あなたの会社のコーディング規約ではシフト演算が禁止、ただし要求速度を満たせない
場合を除くとなっているのですか?
どこからが複雑だから禁止になり、どこまでが許容される記述なのか、そのガイドラインを
社内で作成し、周知徹底されていますか?
また、速度に関する要件がない場合、速度はどれだけ遅くとも問題ないのですか?
382:デフォルトの名無しさん
10/06/22 21:06:49
職業プログラマが保守性とかって、お笑い
383:デフォルトの名無しさん
10/06/22 21:29:16
マ板に行けよ土方は
384:320
10/06/22 21:29:26
>>379
あ、そういうことでしたか。
了解です。
385:デフォルトの名無しさん
10/06/22 23:43:30
こんなところでまで会社に縛られてるなんて大変だね
386:デフォルトの名無しさん
10/06/23 00:23:48
scanfの引数に&をつける理由を大学の教授に尋ねたのですが、
「今は気にしなくていい。scanf使うときは&をつけるように」
といい加減な回答が返ってきました。
お金払ってるんだからちゃんと説明しろよ
387:デフォルトの名無しさん
10/06/23 00:25:40
その段階でポインタの説明始めたら一向に進まなくなるぞ
388:デフォルトの名無しさん
10/06/23 00:28:05
大学生だろ?
自分で調べられる程度の範囲は自分で調べろよ
小中学生じゃないんだから
389:デフォルトの名無しさん
10/06/23 00:40:32
>>388
俺が言いたいのは教授の教え方がいい加減だっていってるんだ。
他にもソースファイルの先頭に書くinclude文についてもそう。
教授は「プログラムを動かすためのおまじないだと思ってください」
とか抜かしやがる。
390:デフォルトの名無しさん
10/06/23 00:42:38
大抵の参考書もそう言ってるぞ。
物事には学ぶための順序ってもんがある。
391:デフォルトの名無しさん
10/06/23 00:44:00
>>389
何も分かってない人に教える場合はそれが普通
392:デフォルトの名無しさん
10/06/23 00:45:25
>>389
それが定番になってるけど、俺もどうかと思う。ガキに教えるんじゃないんだから
393:デフォルトの名無しさん
10/06/23 00:45:51
>>391
残念ながら最初に聞いたときぽかーんだったよ。
そもそも「おまじない」って何だよって?w
さすがに調べて分かったが。俺とおんなじこと考えてた人きっといるはず
394:デフォルトの名無しさん
10/06/23 00:49:33
includeやポインタくらいはちゃんと意味を教えたほうが良いのでは・・・
前者は至極分かり易いと思うぞ。
395:デフォルトの名無しさん
10/06/23 00:53:14
会社に入ってからも「おまじない」という単語はよく使うけどな。
「テスト済みの処理構造をブラックボックスとして使う」という意味で。
あとで暇な時にそのおなじないの内容を理解しておくことは必須
396:デフォルトの名無しさん
10/06/23 00:54:59
話が違いますが
397:デフォルトの名無しさん
10/06/23 00:56:16
なるほどね。
大まかには「お決まりの処理」という理解で、さらには「なぜその処理が必要か」という理解に踏み込んでいくという、
二段階の理解ステップとなるわけだ。
経験上、こういうのはけっこうあるね。
何となしにやっていたことの意味が徐々に明らかになっていくのは、成長を実感できてうれしいものだ。
>>386も是非この楽しさを知ってほしい。
398:デフォルトの名無しさん
10/06/23 00:57:51
調べる能力も大切って事を教授が教えてくれたんですね。
399:デフォルトの名無しさん
10/06/23 00:59:49
>何となしにやっていたことの意味が徐々に明らかになっていくのは
できれば本当の意味にすぐに気づきたい。時間はそんなに待ってくれないぞ
400:デフォルトの名無しさん
10/06/23 01:01:42
includeをおまじないと言っても、stdio.h以外を使う時点で
この関数を使うときはこれをインクルードと言っちゃうんだから
初めからprintfや標準入出力関数を使うためにこうすると言えばいいだろ、馬鹿らしい
401:デフォルトの名無しさん
10/06/23 01:01:45
>>399
printfの使い方とか、要所を抑えておけばあとは適当な理解でいいようなことは結構あるよ
402:デフォルトの名無しさん
10/06/23 01:01:49
>>393は言葉尻とらえてケチつけてるだけでなんの意味もない話だったな
403:デフォルトの名無しさん
10/06/23 01:04:48
慣行となってる教え方に問題があるって話だろ。意味を見い出せない馬鹿
404:デフォルトの名無しさん
10/06/23 01:08:40
Aを理解するには、Bを教えなければならない
Bを(ry
人に教えるならどこかで堺をつけないといけない
調べてわかるレベルならなおさら教えない
おしえてクンをその道に育てるのは自殺行為
405:デフォルトの名無しさん
10/06/23 01:11:04
全部調べて分かるだろ
406:デフォルトの名無しさん
10/06/23 01:11:40
調べて分かることならちゃんと説明できるだろう。
それを遠回しな表現で学生を撹乱させて時間稼ごうだってそうはいかない
お金払ってるんだから教授はちゃんと仕事しろってんだ
407:デフォルトの名無しさん
10/06/23 01:11:41
while(!関数名)ってあったんですけどこれってどういう意味なんでしょうか?
もし関数が0を返したらwhile(!0)になると思うんですがこれは真なんでしょうか?
よろしくお願いします。
408:デフォルトの名無しさん
10/06/23 01:13:00
人に聞く=調べる
金払ってんだ、質問した事に答えろよ。
409:デフォルトの名無しさん
10/06/23 01:13:43
えっ?
410:デフォルトの名無しさん
10/06/23 01:16:29
初心者にものを教える時に最初から1~10まで全て説明する馬鹿はいないだろ。順序を考えろ。
>>393>>400>>403みたいな馬鹿学生が山ほど潜んでるんだから教える方も大変だよ
411:デフォルトの名無しさん
10/06/23 01:18:17
誰が最初から1~10まですべて説明しろと言ったんだ?
順序を考えればおまじないなんて馬鹿なことを言わずに済むだろ
412:デフォルトの名無しさん
10/06/23 01:19:51
だよな。
「おまじない」とかふざけすぎ。
まず最初は printf を使わずに教えるべき。
C は、入出力は言語機能自体には含まれていない、と教えるべき。
苦C とかいうサイトはそういう始め方だったから好感が持てた。
413:デフォルトの名無しさん
10/06/23 01:22:05
>>411
#include で別のファイルを読み込みます
↓
中を見てみましょう
↓
???
これじゃ先に進みそうにないから
おまじないっていうんだよ
414:デフォルトの名無しさん
10/06/23 01:24:28
>>413
「おまじない」が「おまじない」じゃなくなる時点でもヘッダファイルの中身なんて見てないだろ
関数の概念だけ教えれば済む話。高校以上なら簡単なに受け入れられる
415:デフォルトの名無しさん
10/06/23 01:24:34
それが正しい順序?
初心者にはまず目に見える結果が出る部分を教えないと。
自分の覚えたことの結果が出ないと正しいのか間違ってるのかの判断も付かない。
だからprintfを最初に教えるのは理にかなっている。
printfを使うためにはインクルードがどうたらこうたらやり始めるのか?アホクセー
416:デフォルトの名無しさん
10/06/23 01:26:52
せめて printf は後にしろよ。
puts とか putchar が先だろ。
417:デフォルトの名無しさん
10/06/23 01:27:03
疑問があるから質問したんだろ。
授業とは違うんだよ、生徒の質問に答えろって話。
418:デフォルトの名無しさん
10/06/23 01:28:03
教えるのは後回しでもいいけど、「おまじない」って言葉を使うのはダメだと思う。
419:デフォルトの名無しさん
10/06/23 01:28:47
Java の System.Console.○○○ は最初から使えるのは何で?
420:デフォルトの名無しさん
10/06/23 01:29:44
単なる言葉の言い回しの是非をグダグダいうのも実に馬鹿らしいな
421:デフォルトの名無しさん
10/06/23 01:30:10
>>418
どんな言葉なら気が済むんだ
422:デフォルトの名無しさん
10/06/23 01:31:48
>>421
「これからC言語のプログラムを書きます」の合図でいいんじゃないです?
423:デフォルトの名無しさん
10/06/23 01:32:03
プリントフ
>>419 それC#。JavaはSystem.out.println()な。Java.langパッケージは宣言なしで使えるから。
424:デフォルトの名無しさん
10/06/23 01:32:33
>>422
おまじないよりタチ悪いな
425:デフォルトの名無しさん
10/06/23 01:33:21
>>422
おまじないと同レベルに糞。
426:デフォルトの名無しさん
10/06/23 01:33:58
>>425
ハァ?同レベル?
427:デフォルトの名無しさん
10/06/23 01:35:20
>>426
そう。どっちもまるで必須みたいで的外れ。printfを使いたいがために書いてるんだからそう言えばいいだけ
428:デフォルトの名無しさん
10/06/23 01:36:32
じゃあなんて言うんだよ!
お前も同レベルの事言うんだろ?言ってみろや
429:デフォルトの名無しさん
10/06/23 01:38:26
ここはCの教え方についてのスレになってるので>>407は取り消しますw
430:デフォルトの名無しさん
10/06/23 01:39:10
質問スレは別にあるし
431:デフォルトの名無しさん
10/06/23 01:39:36
>>427
それおまじないとどう違うの?
printfを使うためのおまじないじゃん
432:デフォルトの名無しさん
10/06/23 01:40:46
>>431
「おまじない」と「printfを使うためのおまじない」とには大きな差があるんだが
433:デフォルトの名無しさん
10/06/23 01:42:37
Q 「おまじない」ってなんですか?
A 「printfを使うためのおまじない」だよ
すげえ、大きな差だ
レベルたけえwwwwww
434:デフォルトの名無しさん
10/06/23 01:43:12
両方とも何も説明してないから同じだな
435:デフォルトの名無しさん
10/06/23 01:44:23
馬鹿学生は意味が知りたかったんだよな?
それを「printfを使うためのおまじない」と答えて大きな差だと言う。
436:デフォルトの名無しさん
10/06/23 01:44:42
もっと言えばスタンダードアイオー、標準入出力関数だよ。そう言えば良い
おまじないと言うより百倍良いだろう
437:デフォルトの名無しさん
10/06/23 01:45:39
馬鹿学生は意味が知りたかったんだよな?
それを「スタンダードアイオー、標準入出力関数だよ。」と答えて大きな差だと言う。
438:デフォルトの名無しさん
10/06/23 01:45:46
>>432
printf を使うためってのを理解させるには関数について教えなきゃいかんだろ
最初は #include も main も printf も return もおまじない
439:デフォルトの名無しさん
10/06/23 01:46:43
最初からprintfのポインタの説明から入って分かる訳ないじゃん。文字列リテラルとかの説明をいきなり教えるの?
440:デフォルトの名無しさん
10/06/23 01:46:45
>>436
それなんも教えてないよ。関数って何?ってなるだけだろ。
441:デフォルトの名無しさん
10/06/23 01:47:11
>>432で大きな差があると言ったら、それが答えみたいにとられてうざいんだが
>>438
俺は初めから関数について教えればいいと言ってるだろ
442:デフォルトの名無しさん
10/06/23 01:48:45
おまじない、に対しての答えが、関数を教える?
443:デフォルトの名無しさん
10/06/23 01:49:17
いきなり関数の説明から入るのかよ。ハードル高い授業だぜ。
444:デフォルトの名無しさん
10/06/23 01:49:59
int main()とかvoid main(void)とか書かれて混乱する入門者も多い
引数も戻り値も分かってないから当然だわな。関数を教えて、mainが特殊な関数だと教えればいいだろう
445:デフォルトの名無しさん
10/06/23 01:50:36
それって「おまじない」とどう違う?
446:デフォルトの名無しさん
10/06/23 01:50:56
意味が分かる
447:デフォルトの名無しさん
10/06/23 01:51:23
>>414
みるだろ。
printfってどうなってんの^^と気軽にのぞいて凹むステップは必要。
448:デフォルトの名無しさん
10/06/23 01:51:27
なんの意味だ
449:デフォルトの名無しさん
10/06/23 01:51:42
意味論の意味だよ
450:デフォルトの名無しさん
10/06/23 01:52:42
>>407
0は偽なので、その反対は真です。
451:デフォルトの名無しさん
10/06/23 01:52:50
結局おまじないじゃねえか
452:デフォルトの名無しさん
10/06/23 01:52:58
>>447
それには同意。用意されてるソートとかな
453:デフォルトの名無しさん
10/06/23 01:54:04
>>451
それはお前がやってるプログラミングが今もおまじないだからだろ
454:デフォルトの名無しさん
10/06/23 01:54:35
おっと罵倒きました!
455:デフォルトの名無しさん
10/06/23 01:54:38
>>453
話をすりかえるな
馬鹿学生の話をしてんだよ?
456:デフォルトの名無しさん
10/06/23 01:56:03
そもそもHello world.をprintfで出力することがおかしいとは考えないのか?
printfを用いるとしても、printf("%s\n", "Hello world.");と記述させるべきなのではないか?
457:デフォルトの名無しさん
10/06/23 01:56:10
そりゃ馬鹿文系学生のための一般教養のプログラミング入門ならおまじないでいいよ
458:デフォルトの名無しさん
10/06/23 01:57:21
おまじないで済ますなって話してんだよボケが!!!
459:デフォルトの名無しさん
10/06/23 01:57:36
おまじないが気にくわない→なぜそれが必要なのかの説明がないから気にくわない
ここまでいっておきながら、
なぜprintfでなければならないのかの説明がない
というところに進めないところに馬鹿の壁を見た。
460:デフォルトの名無しさん
10/06/23 01:58:18
>>459
なぜHello Worldでなければならないのかと同義だろ
461:デフォルトの名無しさん
10/06/23 01:58:46
おまえはどこに進んでんだwwww
462:デフォルトの名無しさん
10/06/23 02:00:17
おまじないって実生活ではただの気休めで効果があるのかないのかもわからないだろ。
プログラムにはそんな曖昧な要素が入り込む余地はないから、
おまじないって言葉を使うのはふさわしくない。
463:デフォルトの名無しさん
10/06/23 02:00:52
で、なんという言葉ならいいんだ?
464:デフォルトの名無しさん
10/06/23 02:01:03
願いを込めて、インクルード
465:デフォルトの名無しさん
10/06/23 02:02:07
質問に答えてください
466:デフォルトの名無しさん
10/06/23 02:02:50
説明すれば良いと言ってるのに、おまじないに代わる言葉を探してる時点でカス
467:デフォルトの名無しさん
10/06/23 02:03:03
>>460
文字列をコンソールに出力しましょう。文字列は別に何でも良いですが、Hello world.と出力しましょう。
これで十分理由に値する。
しかし、なぜprintfを用いるのかについては理由が明らかになっていない。
まるでリテラルを出力するためにはprintfでなければならないと思い込んでいるかのようだ。
scanfにはなぜアドレスを渡さなければならないのか。これについての疑問が解けた直後、
なぜ可変個の引数が渡せるのかという疑問を持つべきである。
>>461
もちろん、明日に向かって進んでいる。その延長には明後日がある。
468:デフォルトの名無しさん
10/06/23 02:04:07
>>462
実生活でも説明するのが面倒なときはおまじないって言うだろ
とくに子供に対して、前提となる知識や経験が不足している場合はとくに
プログラミングでも同様だよ
きちんと説明するには手間がかかりすぎるからおまじないって言われた、
つまり言われた側はまだまだレベルが低いってこと
469:デフォルトの名無しさん
10/06/23 02:04:28
>>466
説明?どれの事だね?
470:デフォルトの名無しさん
10/06/23 02:05:02
>>467
なんでもいいが、Hello worldと出力しましょう。なんでもいいが、printfを使いましょう
471:デフォルトの名無しさん
10/06/23 02:06:11
結局、満場一致で
おまじないでいい
という認識でいいのか?
教授は正しかったんだよな?
472:デフォルトの名無しさん
10/06/23 02:06:37
おまじない(笑)どんな低レベルな大学なんだよ、哀れ
473:デフォルトの名無しさん
10/06/23 02:07:03
>>470
ばかだなぁ。
高校出た時点で知識レベルをそろえる必要なんてなくなるんだから
おまじないで済ませてよい学生と、済ませてはならない学生が出てくるのは確か。
しかし、教授にその説明を求めるのもまた間違いだろうな。
金さえ払えばなんでもできるなんて甘えは捨てないと。
474:デフォルトの名無しさん
10/06/23 02:07:15
しかし、誰もおまじない以上の説明を書かないという。
475:デフォルトの名無しさん
10/06/23 02:07:53
>>473
は?俺教授に質問した学生なの?
476:デフォルトの名無しさん
10/06/23 02:08:18
同レベル
477:デフォルトの名無しさん
10/06/23 02:08:25
え、もしかしておまじないどまりの人?
478:デフォルトの名無しさん
10/06/23 02:09:05
>>475
ごめんね。後段はあなたへのレスじゃなかったんです。ツイート()なんです
479:デフォルトの名無しさん
10/06/23 02:09:15
>>474
じゃあお前は今もおまじないと思ってるわけ?ちゃんと分かってるなら、そう説明すればいいだろ
480:デフォルトの名無しさん
10/06/23 02:10:03
俺、教授じゃねえよ?
481:デフォルトの名無しさん
10/06/23 02:10:26
>>479
なんかずれてんぞ。
この場で説明してあげるべきだと考えてるなら説明すればいいだろ、じゃないのか?
482:デフォルトの名無しさん
10/06/23 02:10:58
>>474
プリプロセッサから解説しないといけないし
おまじないでいいと思うけどな。最初は不要な知識だし
483:デフォルトの名無しさん
10/06/23 02:11:35
結局物事には順序がある。
初心者にいきなり関数の説明とかポインタの説明したってわかる訳がない。
順序立てて学習して行くことでいままでおまじないだった事が理解できるようになる。scanfに何で&を付けるのかもわかるようになる。それで良いじゃないか
484:デフォルトの名無しさん
10/06/23 02:11:36
興味があって大学来てんだから、最初のプログラミングの講義受ける時点で半分以上はもうおまじないなんかじゃないんだよ
そこでおまじないとか言って二極化を促進させる教授パネェよ
485:デフォルトの名無しさん
10/06/23 02:12:05
ある変数(10桁)の
1の位:
10の位:
100の位:
1000の位:
・
・
・
ってな感じで出力する簡単な計算式教えてください
486:デフォルトの名無しさん
10/06/23 02:12:41
今の時代、大学なんて義務教育なんだよ
487:デフォルトの名無しさん
10/06/23 02:14:05
>>462
おまじないには自己暗示効果があるから、信じて実行すれば効果があるよ。
少しでも疑ったら魔法は消える。
488:デフォルトの名無しさん
10/06/23 02:14:46
おかげでレベルが下がった
ちゃんと試験でバカは落とせよ
489:デフォルトの名無しさん
10/06/23 02:14:56
あれもこれもインクルードして、いっぱいおまじないすればいいね
490:デフォルトの名無しさん
10/06/23 02:15:54
「プロセッサ」とか言ってるやつって何なの?
プロセスを「プロセッス」とか言うわけ?
「キッス」とか旧世代の言葉を使う人?w
491:デフォルトの名無しさん
10/06/23 02:15:59
>>484
マジレスすると大学のプログラミング講義でおまじないレベルからやるのって興味ない人向けの授業だよ
興味のある人は入門なんか飛ばして次の講義を受けるべき
492:デフォルトの名無しさん
10/06/23 02:16:54
>>489
あれもこれもインクルードするぐらいになったらもうおまじないじゃなくなってるだろ
493:デフォルトの名無しさん
10/06/23 02:17:00
おまじないはある種のパターナリズムなんだよ。
『お前には分からんかもしれんけど俺が正しいから従え』というのを言い換えただけ。
494:デフォルトの名無しさん
10/06/23 02:17:26
>>491
マジレスすると入門向けの講義受ければ休みまくっても余裕でいい成績が取れる
495:デフォルトの名無しさん
10/06/23 02:17:46
>>488
さがんないよ。授業余裕なら単位取れる最低限の行動だけして残った時間を有意義に過ごせばいい。
それが大学だろ。
496:デフォルトの名無しさん
10/06/23 02:18:13
プログラマになりたいのだったら小中学生のころにC言語くらいできるようになってんだろ
お前らもそうだったよな?
497:デフォルトの名無しさん
10/06/23 02:18:43
まさかFラン大学じゃないだろうな
質の高い教育はそれなりの場所へ行かなきゃ受けられないんだよ
授業料さえ払えばなんでも教えてもらえると思うのが大間違い
これが格差というもの
498:デフォルトの名無しさん
10/06/23 02:18:48
おまいら明日どうすんの?
499:デフォルトの名無しさん
10/06/23 02:19:23
小学生で既にLisperだった
500:デフォルトの名無しさん
10/06/23 02:19:52
>>490
URLリンク(www.intel.co.jp)
インテルにあやまれ
>>494
きちんとサボればおまじないが気になることなんて無い
501:デフォルトの名無しさん
10/06/23 02:21:14
>>496
中学の頃はPC-8001にカセットテープの時代だったのでCコンパイラが動く環境がありませんでした
502:デフォルトの名無しさん
10/06/23 02:21:42
>>500
サボりまくっても2chにこんだけおまじないの人がいるんだから気になるよ
503:デフォルトの名無しさん
10/06/23 02:22:01
くたばれジジイ
504:デフォルトの名無しさん
10/06/23 02:24:57
てか、そもそもその授業の単位を取得した時点で#include<stdio.h>がなんであるかの
具体的な説明をする予定がないんじゃないの?
505:デフォルトの名無しさん
10/06/23 02:26:38
>>485
while(n) {
printf("%d\n", n % 10);
n /= 10;
}
506:デフォルトの名無しさん
10/06/23 02:31:11
なんかマルチしまくってんのがいるなw
507:デフォルトの名無しさん
10/06/23 02:38:27
>>505
ありがとうございます
508:デフォルトの名無しさん
10/06/23 03:19:18
数学が(好き|得意)な奴には、「おまじない」が嫌いな奴が多い。
数学には「おまじない」など存在しない。
数学においては、新出の語句や定理は、必ずそれ以前に学習した定義・定理から導き出せる。
>>386の言い分もわからんでもない。
むしろ、「おまじない」になんの疑問も抱かない奴よりは見込みある。
教授にはぐらかされても放置せず、自分で調べようとしているならば、だが。
509:デフォルトの名無しさん
10/06/23 03:22:44
導き出せはしないだろ。
決めごとなんだから。
510:デフォルトの名無しさん
10/06/23 03:47:21
>>508
その定義・定理を自分で調べようともせず教授に教えろと言ってんだよ
どこに見込みがあるってんだ
511:デフォルトの名無しさん
10/06/23 04:06:01
>>510
ちゃんと最後の行読みなよ。
512:デフォルトの名無しさん
10/06/23 04:24:47
>>511
ちゃんと今までの話を読んだか?
最後の行はまるで的外れ。
513:デフォルトの名無しさん
10/06/23 04:30:08
詭弁の特徴のガイドライン
1:事実に対して仮定を持ち出す
2:ごくまれな反例をとりあげる
3:自分に有利な将来像を予想する
4:主観で決め付ける
5:資料を示さず自論が支持されていると思わせる
6:一見関係ありそうで関係ない話を始める
7:陰謀であると力説する
8:知能障害を起こす
9:自分の見解を述べずに人格批判をする
10:ありえない解決策を図る
11:レッテル貼りをする
12:決着した話を経緯を無視して蒸し返す
13:勝利宣言をする
14:細かい部分のミスを指摘し相手を無知と認識させる
15:新しい概念が全て正しいのだとミスリードする
514:デフォルトの名無しさん
10/06/23 04:30:22
>>512
もうすこし読解力をあげましょう。
または、もうすこし落ち着きましょう。
または、良い睡眠をとりましょう。
515:デフォルトの名無しさん
10/06/23 04:34:28
>>514
まさに詭弁だな。
おまえのことだよ、わかってるか?
516:デフォルトの名無しさん
10/06/23 04:50:47
>>506
本人乙
517:デフォルトの名無しさん
10/06/23 07:38:15
金払って受講してるんだから教授は辞書と同じ、質問しないと損だ。
授業でおまじないと言うのはいいが教えを乞いにきた学生に詳しく教えないのはおかしい。
ある講義で質問しに行ったら聞いてないことまで長々と話す教授もいた。
その教授はハズレ。
518:デフォルトの名無しさん
10/06/23 08:12:29
質問の良し悪しもあるが、せっかく質問したのに拍子抜けな答えしか返ってこない教授はつまらんからな
教授からすれば、馬鹿な質問はするなってことなんだろうけど。学生からすれば馬鹿な回答なんだよ
519:デフォルトの名無しさん
10/06/23 08:17:14
講義中にチラっと聞いただけなんじゃねーの?
520:デフォルトの名無しさん
10/06/23 12:38:31
質問者のレベルに合わせたんだよ
521:デフォルトの名無しさん
10/06/23 13:08:45
uzai
522:デフォルトの名無しさん
10/06/23 13:26:23
うざい
523:デフォルトの名無しさん
10/06/23 15:43:47
メイン文で宣言した変数に分割した別のファイルでその変数に代入して
メイン文でも反映されてるようにしたいんだけどいまいちポインタの使い方がわからない・・・
だれか教えてくれ
524:デフォルトの名無しさん
10/06/23 15:52:58
参照渡し
URLリンク(codepad.org)
525:デフォルトの名無しさん
10/06/23 19:56:22
おまじないより魔法のほうがしっくりくるよな。
526:デフォルトの名無しさん
10/06/23 20:08:49
マジックコード
527:デフォルトの名無しさん
10/06/23 21:51:58
>>524
そりゃ参照渡しじゃねーよ
528:デフォルトの名無しさん
10/06/23 22:03:15
枕詞だろ。
529:デフォルトの名無しさん
10/06/23 22:15:02
>>524
Cには参照渡しはねーんだよ
全部値渡し
それは「アドレス」を値で渡しているだけ
530:デフォルトの名無しさん
10/06/23 22:17:53
あるよバーカ
531:デフォルトの名無しさん
10/06/23 22:19:33
質問者の意図が参照渡しに該当してたからな
まあ言いたいことは分かるが、言い方がなんかダサいよ。なんで喧嘩腰というか、キレてんの?
532:デフォルトの名無しさん
10/06/23 22:21:26
>>531は>>527、>>529宛て。ポインタ渡しというなら分かるけど、断固として値渡しと主張する意味は分からん
533:デフォルトの名無しさん
10/06/23 22:26:14
>>529の言わんとするところは分かるが、怒らなくてもよくね。
ポインタの値渡しってのもなんか回りくどいしさ。
534:デフォルトの名無しさん
10/06/23 22:28:54
void main(void)
{
int *GetX(void)
{
return &x;
}
int *pGetX;
pGetX = GetX();
pGetX += 10;
535:デフォルトの名無しさん
10/06/23 22:32:32
>>534
ミス
536:デフォルトの名無しさん
10/06/23 22:44:08
ドンマイ
537:デフォルトの名無しさん
10/06/23 22:47:09
>>534
こいつなにしようとしたの?
538:デフォルトの名無しさん
10/06/23 22:47:47
>>532
キレてるようには見えないなぁ。
馬鹿にしてるようには見えるけど。
539:デフォルトの名無しさん
10/06/23 22:50:23
馬鹿にしてるようには見えない
540:デフォルトの名無しさん
10/06/23 23:02:55
〃
541:デフォルトの名無しさん
10/06/23 23:48:19
人工無能に詳しい人いる?
居たら何で勉強したのか教えてくれ
それとオススメの本とかあったらそれも
542:デフォルトの名無しさん
10/06/23 23:56:28
人工無能は勉強しすぎると味わいが無くなる気がする
543:デフォルトの名無しさん
10/06/24 00:09:05
まあいいおてんき
544:デフォルトの名無しさん
10/06/24 01:55:07
ふーん
545:デフォルトの名無しさん
10/06/24 03:40:41
名無しさんはどんな仕事してるの?
546:デフォルトの名無しさん
10/06/24 03:43:23
農家
547:デフォルトの名無しさん
10/06/24 03:45:34
わぁ!カッコよさそうな仕事ですね^^
548:デフォルトの名無しさん
10/06/24 03:49:32
別に
549:デフォルトの名無しさん
10/06/24 04:54:16
神
550:名無し
10/06/24 07:56:44
ポインタとメモリアドレスの違いなんだけどさ
同じ表現と考えていいのか?
105 :デフォルトの名無しさん:2010/06/14(月) 18:40:33
>>102
文字列リテラルはそれ自体がchar *と言う型のポインタ値として扱われる。
つまり、printf("Hello\n");と書いただけで、printf()関数にcharへのポインタを渡すと言うプログラムになっているわけだ。
これあるじゃん?
char *だからさ "aiueo"だとしたら まずaiueoをメモリ上に確保して a,i,u,e,o,\0みたいな16進数だけど そして確保したら その先頭のアドレスaの場所のアドレスを返すんだろ?
aの場所が100番地だったら100をchar *へ渡すみたいな?
っで気になるのが ポインタを返す と アドレスを返すって同じ意味でとらえていいのか?
これは先頭のアドレスを返してるよな? char *に先頭のアドレスを渡している
ポインタを返す と アドレスを返す これって同じ意味なのか?
ポインタ変数を返すなら違うが ポインタとは で検索したら e-wordではアドレスを保持する変数とあるが
それならポインタ変数=ポインタだよな?どうなんだ?
ポインタを返す を アドレスを返す 検索しても ポインタを返す関数 アドレスを返す関数とあるが
だれか教えてくれー
551:デフォルトの名無しさん
10/06/24 08:17:10
文字列リテラルは配列な。
552:デフォルトの名無しさん
10/06/24 09:27:31
>>550
メモリアドレス→メモリ上の住所を示す「定数」
ポインタ→任意のメモリアドレスを示すことができる「変数」
553:デフォルトの名無しさん
10/06/24 09:38:33
char *a;
sizeof a と sizeof "aiueo" は違う
554:デフォルトの名無しさん
10/06/24 09:48:36
俺の感覚
アドレス = 型情報は含まない。
"単なる住所"
ポインタ = アドレスと共に型情報も含む
加減算や指し先の参照等で、与えられた型に応じて評価してくれる
"どういう住人が住んでいるかを示している住所"
555:名無し
10/06/24 10:21:07
よくわからないが
"aiueo"はchar p[10]="aiueo";
ポインタを返すとは 先頭アドレスのpを返すこと?
配列の場合は&をつけなくていいんだよな先頭は
char *a;
a=p;
アドレスを返す場合は&p[0]などでいいんだよな?
文字リテラルは配列になるので &をつけなくても先頭のアドレスをポインタというのか?
556:名無し
10/06/24 10:37:49
char *p="abc";
があるとすると
>>この "abc" という式を評価すると、先頭の文字 'a' が格納されたメモリ領域を示すポインタが返ってきます!
と書いてあるのだが、100番地から始まったとして
a b c \0
100番地,101番地,102番地,103番地
この領域をひっくるめてポインタというであっているのか
100番地とかはアドレスであり ポインタを返すという表現は
100~103番地全体を返すということ?
557:名無し
10/06/24 10:39:31
100~103全体がポインタで
100や101それぞれはアドレスでおk?
558:デフォルトの名無しさん
10/06/24 10:44:59
ポインタはアドレスを抽象化したもの。
559:デフォルトの名無しさん
10/06/24 11:00:06
名前:ピッコロ
アドレス:ナメック星一番地
ポインタ:住所はナメック星一番地、俺はピッコロだぁああああ
560:デフォルトの名無しさん
10/06/24 11:05:07
まぁビットから
561:デフォルトの名無しさん
10/06/24 12:26:09
>>556
通りすがりの元プログラマーです
ポインタは「アドレス用の変数」と思っておけばOKです
例えばアドレスが16ビットの環境なら
char *a;
int *b;
long *c;
printf("%d %d %d",sizeof(a),sizeof(b),sizeof(c));
↑16ビットなので全て2になる…はず(今、手元にCの環境が無いので確認できないw)
ポインタの型は
*c、← cにはアドレスが入ってるので、その位置にLong型があると解釈される
b++ ← int型ポインタなので、アドレスに(16ビット環境なら)+2される
などの時に必要になります
562:デフォルトの名無しさん
10/06/24 12:28:01
そんな決まりあったっけ?
563:デフォルトの名無しさん
10/06/24 12:29:35
ありますよ
調べてみてください
564:デフォルトの名無しさん
10/06/24 12:40:19
いまどき16ビット環境で語っちゃう人って……
565:デフォルトの名無しさん
10/06/24 12:43:34
まぁ揚げ足取りになるけど
ポインタ全部が同じ大きさであるような言い方は良くない
566:デフォルトの名無しさん
10/06/24 12:48:07
というか、ポインタのサイズを得々と語ってるけど
たからどうしたとしか思えない
567:デフォルトの名無しさん
10/06/24 13:27:39
ですね
568:デフォルトの名無しさん
10/06/24 16:04:53
そもそも返さねぇよ。ファンクシャンじゃねぇんだから。
569:デフォルトの名無しさん
10/06/24 17:13:14
>>554にある型情報の型ってどんな情報?
で型はどのように決められるの?
570:質問
10/06/24 17:13:52
国語、社会、理科の3科目の合計と平均を求める問題で、
URLリンク(www.geocities.jp)
こちらのHPにある解答を実行してみたら、
goukei=2144332132 average is=2442545234
のような表示結果が出てきてうまくいきませんでした。
どこが違うのかどなたか教えていただけますか?
よろしくお願いします
571:デフォルトの名無しさん
10/06/24 17:15:21
>>570
ここはエスパーを召還するスレか?
うまくいかなかったソースを貼れよ
572:デフォルトの名無しさん
10/06/24 17:17:41
ポインタ=アドレス値 と考えていいよ
>>557
>100~103全体がポインタ
仮にC言語に文字列型があれば、その例では、全体は(文字列型)
573:デフォルトの名無しさん
10/06/24 17:33:48
仮の話はいりません。C言語に文字列型はありません。
574:554
10/06/24 17:36:17
>>569 俺の感覚の話なので、イメージで
宣言時に * の前に型指定してるじゃん(ex int * 等) それを指して型情報を持っている と捉えてる。
void * 中の void も 型無し という型指示されている という意識ね
int a[3]
int *p = a;
int *q = a + 2;
void *hoge = a;
q-p は合法で sizeof(int) に関係無く 2 を返すし hoge - p は非合法。
アドレスは、ただの整数値 という意識
575:デフォルトの名無しさん
10/06/24 17:45:16
> sizeof(int) に関係無く 2 を返すし
ヴォケ
576:デフォルトの名無しさん
10/06/24 17:48:16
>>575
ポインタ - ポインタ の値だぞ? アドレスの距離を返さずに、要素差返すんだけど?
577:デフォルトの名無しさん
10/06/24 17:56:09
煽る前に確認しろってことだな
578:デフォルトの名無しさん
10/06/24 18:21:56
>>576
ポインタの差を出すことは合法だろ
専用の型まであんのに
579:デフォルトの名無しさん
10/06/24 18:25:37
>>570
#include <stdio.h>
main()
{
int kokugo,shakai,rika;
int goukei,heikin;
printf("国語の点数=");
scanf("%d",&kokugo);
printf("社会の点数=");
scanf("%d",&shakai);
printf("理科の点数=");
scanf("%d",&rika);
goukei = kokugo + shakai + rika;
heikin = goukei / 3;
printf("合計=%d 平均=%d \n",goukei,heikin);
return 0;
}
580:デフォルトの名無しさん
10/06/24 18:27:59
いやintじゃねぇだろって言いたかったんだ
レスも安価も間違っちゃってるが
581:デフォルトの名無しさん
10/06/24 19:04:55
>>570
>>579
正常に動作している。
cygwin 1.7/gcc 4.3.4/Windows XP SP3
582:デフォルトの名無しさん
10/06/24 19:07:19
cygwin()笑い
583:名無し
10/06/24 19:13:26
ポインタのことだが
char *p="ABC";
ポインタを返すという表現をのせてるサイトがあったが
abcを確保して
先頭のアドレスを返すって意味と同じだったらしい
ポインタを返すって書くんじゃなくて abcが保存されてる場所の先頭アドレスを返すっていみ
すっきりしたよ
584:デフォルトの名無しさん
10/06/24 20:09:13
const char* p = "ABC"; なのに
char *p="ABC";
でOKなの?
585:デフォルトの名無しさん
10/06/24 20:14:04
規格で保証されている
内容書き換えちゃだめだけど
586:デフォルトの名無しさん
10/06/24 20:22:53
>>584
C言語/C++03以前では非constポインタへの暗黙変換が許される
587:デフォルトの名無しさん
10/06/24 20:40:46
つかC言語では文字列リテラルを評価した時の型はchar*と違ったか?
確認して書いたわけじゃないんで記憶違いならすまん。
588:デフォルトの名無しさん
10/06/24 20:43:43
>>587
sizeof は char* とは異なる
589:デフォルトの名無しさん
10/06/24 20:45:39
>>586
C++03でも許されてるはずだけど
「以前」ってのは含むのか含まないのか
590:デフォルトの名無しさん
10/06/24 20:46:53
>>587
文字列リテラルは array of const char で、当然 const char* に暗黙変換可能
ただし、例外的に char* に暗黙変換可能
591:デフォルトの名無しさん
10/06/24 21:57:16
>>589
一般ピーポーじゃあるまいし含むのが普通だろう
592:デフォルトの名無しさん
10/06/24 21:58:54
void f(char const x); // f(char)でも呼べるのに
template<typename T>class A;
void f(A<char const>x); // void f(A<char>); で呼べないのは不便だとおもう。
593:名無し
10/06/24 22:06:51
一般ピーナッツだろ
ねえ、int a;
&a=0xbffff978;とか代入できないんだが何故?
アドレスを直接いれるってのは無理なの?
594:デフォルトの名無しさん
10/06/24 22:10:13
キャストしる
0は特別扱い
595:デフォルトの名無しさん
10/06/24 22:11:03
1+2=5;
と同じ
596:594
10/06/24 22:13:34
いや、ちげえ
なんだそれ
597:デフォルトの名無しさん
10/06/24 22:24:06
>>593
int a;
*(&a)=0xbffff978;
598:デフォルトの名無しさん
10/06/24 22:27:03
>>593
int *a = (int*)0xbffff978;
*a = 0;
メモリマップドI/Oならvolatileつけた方が良い
599:デフォルトの名無しさん
10/06/24 22:27:11
いやそれ只のa =
600:デフォルトの名無しさん
10/06/24 22:28:41
>>599は>>597
601:デフォルトの名無しさん
10/06/24 22:30:37
そのアドレスがすでに使われてたりしないの
602:デフォルトの名無しさん
10/06/24 22:31:10
なんでアドレスとポインタの区別がつかないんだ?
アドレスは定数だっつーのに代入しようとすんなよ
603:名無し
10/06/24 22:31:53
>>597,598
もやっと解消してくれてありがとう^w^b
アドレスを直でいれられたとは初めてしったお
604:デフォルトの名無しさん
10/06/24 22:44:28
>>601
むしろシステム他に使われてるからこそ、そこを指したいだろ
605:デフォルトの名無しさん
10/06/24 22:49:46
ああ、任意の場所を確保しようとしてるわけじゃないのか
配列と混同した
606:デフォルトの名無しさん
10/06/25 00:43:54
本棚には入門者の本で埋め尽くされています。
いい加減入門レベルから卒業したいんですがどういうプログラムがかけるようになれば
中級、上級者になれるのですか。
私は、他の人が作成したプログラムにけちをつけるくらいの力は持っています
607:デフォルトの名無しさん
10/06/25 00:46:45
自分が作りたいプログラムがすぐに作れるようになったら
608:デフォルトの名無しさん
10/06/25 01:09:39
>>606
入門編としてマスターマインドを作ってみる
609:デフォルトの名無しさん
10/06/25 01:12:23
コンパイラをゼロから書けるようになったら「入門」だろ。
610:デフォルトの名無しさん
10/06/25 01:13:29
>>609
どこに入門するんだよ
ハードルたけぇよ
611:デフォルトの名無しさん
10/06/25 01:15:34
まーた口だけプログラマーかよ
gccレベルのもん書いてから偉そうなこと言えっつーの
612:デフォルトの名無しさん
10/06/25 01:16:20
>>611
偉そうなだけの人キタw
613:デフォルトの名無しさん
10/06/25 01:28:26
OSとコンパイラなら、どっちが先かえ?
614:デフォルトの名無しさん
10/06/25 01:32:02
比較するようなもんじゃない
615:デフォルトの名無しさん
10/06/25 02:02:05
規格に書いてある内容が一通り理解出来るまでが入門。
ある一つの処理系について何処が処理系依存がどう動くか、
その処理系の独自拡張や使えるライブラリ群に精通するぐらいが中級。
世にある代表的な多くの処理系について中級レベルに
分かるようになると上級。
実際に複雑なプログラムを作るには、Cの技術力より
設計やテストの技術、そして作りたい物の分野に対する
知識の方が重要です。
つまり>>606はスレ違い。
強いて言えば、コンパイラ作れて中級の入口じゃね?
構文解析手法やら機械語やらCそのものとは
あまり関係ない知識もたらふく要るけど。
616:デフォルトの名無しさん
10/06/25 02:16:03
>>612
あーん?
617:デフォルトの名無しさん
10/06/25 09:41:33
>>616
あなたの書いた「gccレベルのもん」を拝見させていただこうか
618:デフォルトの名無しさん
10/06/25 10:27:34
gccレベルという意味がわからん。
何と比べて、どの部分がどう高いんだ???
CでなくC++という意味か?
Unix系のOSが扱えるということ?
619:デフォルトの名無しさん
10/06/25 10:37:23
gccそのものを書けるぐらいのレベルって話だろw
620:デフォルトの名無しさん
10/06/25 13:00:01
gccって、あれ一人で作ってんのか?
621:デフォルトの名無しさん
10/06/25 15:41:51
gccを書いて偉そうな事を言ってる人もいるが
あれはあれで聞く気になれないよなw
622:デフォルトの名無しさん
10/06/25 16:06:35
>>621
そんな偉そうなことを言えるほどお前は有能なのか
身の程を知れよ
623:デフォルトの名無しさん
10/06/25 16:14:54
有能な>>622がgccをつくってくれるそうですよ
624:デフォルトの名無しさん
10/06/25 17:10:12
> コンパイラをゼロから書ける
と言われて gcc くらいしか発想にない頭の不自由な方イタすぎ
625:デフォルトの名無しさん
10/06/25 17:14:30
16進表記のテキストをバイナリ保存しなおすだけでもコンパイラと呼んでいい?
626:デフォルトの名無しさん
10/06/25 17:21:54
>>624
大学1年だろ、プログラミングを始めてまだ半年も経っていないから…
627:デフォルトの名無しさん
10/06/25 17:25:27
コンパイラのデザインと実装の講義・実験があったのは2回生のときだったなぁ。
今でもgccレベルのものなんて容易には作れないが。