Cマガ電脳くらぶ
■ このスレッドは過去ログ倉庫に格納されています
0001お腹さん@名無しいっぱい。
NGNG00021
NGNG0003説けない
NGNG0004すぐ
NGNG0005ファイルが見つかりません。
NGNG0006デフォルトの名無しさん
NGNG手を使わないでオナニーするにはどうしたら良いか
0007デフォルトの名無しさん
NGNGHな夢を見る
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGじゃ、
手を使わないでセクースするにはどうしたら良いか
0010カン違いクン
NGNG> 手を使わないでセクースするにはどうしたら良いか
真中のアシを使う。
0011デフォルトの名無しさん
NGNG初心者の俺にとっては、今月号はよかった。
0012デフォルトの名無しさん
NGNGあげるの忘れてるよ
0013デフォルトの名無しさん
NGNG許さねぇ
0014デフォルトの名無しさん
NGNGごめんなさい
0016デフォルトの名無しさん
NGNGコンニャク
0017デフォルトの名無しさん
NGNG以前書いたプログラムは50時間走らせても
全ての解が出せなかったけど誌面の正解者は
30秒足らずで解いてたのには驚いた
0018デフォルトの名無しさん
NGNG乙武洋匡様にききなされ。
0019デフォルトの名無しさん
NGNG0020ななし〜
NGNG0021デフォルトの名無しさん
NGNGあの結論に全く同意できない。
ハードウェアの仕組みを知ることも大事かもしれないが、
プログラミング能力を伸ばすには他にもっと大事なことが
あるはずだ。
O太さん、ひょっとしてmalloc論争でボケたのか、それとも
もともとああいう人だったのか。
0022デフォルトの名無しさん
NGNGパフォーマンスクリティカルなコードを書く必要のない
ビジネス系のプログラマには理解できないかもしれないね。
でもハードやマシン語の知識がなければ、
いつまでたっても地に足を付けることはできないよ。
すべてはそれからだ。
0023デフォルトの名無しさん
NGNGもしかしたら、古い人間の戯言かもしれないって
少し思ってしまうんですよ。
ハードやマシンの知識って。
特に、Windowsでプログラムをしている場合などは‥。
最近、ハードウェア直でアクセスした方が良い機械に触れられて
なんか、嬉しい。
0024デフォルトの名無しさん
NGNG>パフォーマンスクリティカルなコードを書く必要のない
>ビジネス系のプログラマには理解できないかもしれないね。
今日は大漁だね、パパ。
つーことで、誰も理解できるだの出来ないだのという話は
してないんだよ。
つーか、あんた、Cマガ読んだか?
>でもハードやマシン語の知識がなければ、
>いつまでたっても地に足を付けることはできないよ。
ハァ?
0025デフォルトの名無しさん
NGNG>テストプログラムを書いて性能評価を行うことも大切だが、
>それと同時にハードウェアやOSの仕組みや性質を理解して、
>その背景にある設計思想に逆らわないプログラミングを
>心がけることも重要になる。
>ハードウェアが理解できるようになれば、より立体的で高度な
>視点から自分のプログラミングを眺めることができるようになり
>プログラミングの技術もいっそうスムーズに向上するはずだ。
引用:C-MAGAZINE2001.5 P27
で?どこに同意できないのよ。
ハードウェアの知識「も」大切だという意見だと思うのだが。
0026デフォルトの名無しさん
NGNG自分的にはもっと詳しく書かれてもOKな感じ。
0027デフォルトの名無しさん
NGNGしかし、新連載がすべて入門レベルで萎え萎え〜
002824
NGNGうむ、話せそうな奴と見うけられるので、ちょっと続けてみたりする。
俺が納得できないのは、
>効率的でパフォーマンスのよいプログラムを書くには、
>自分の書いたプログラムが計算機の中でどのように
>実行されているか、いいかえればそのプログラムが
>計算機のさまざまなハードウェアをどのように利用
>しているかを理解するのが最善の方法だ。
引用:C-MAGAZINE2001.5 P27
の部分。
効率的でパフォーマンスの良いプログラムを書くには、
まず、その言語の特徴と、ライブラリの理解、プラス、
普遍的なアルゴリズム・手法の理解の方が先だ。
この前の段落で、
>(略)〜ようでは、初級プログラマから脱却できる日は遠い。
と書かれていることを見ると、どうもこの「まとめ」は
初級プログラマ宛に書かれてるのではないかと推測される。
それだったら、なおのこと、この特集で解説されているよう
なことよりも、先に上で言ったようなことを勉強するべきだ。
・・・というのが、俺の主張。
もちろん、ハードウェアの知識が必要ない、などと言うつもり
はないが、O太さん、プライオリティが違うんじゃないですか、
と言いたいのだ。
002924
NGNG「DOSの知識(メモリモデルとか)は初学者には必要か」
という論争があったのを思い出した。
初級レベルは、基本情報処理試験に出るくらいのハードの
知識があれば十分で、今回の特集で説明されているような
ことは「必須」でも「最初に学習すべきもの」でも無い。
もちろん、あっても別にかまわないが。
0030デフォルトの名無しさん
NGNG003124
NGNG駄目?
003225
NGNGプログラマには設計能力と実装能力の両方が求められる。
どちらかが欠けていれば、
そのプログラマは、まだ初級レベルと言わざるを得ない。
>その言語の特徴と、ライブラリの理解、プラス、
>普遍的なアルゴリズム・手法の理解の方が先だ。
これはどちらかというと設計レベルの話だけど、
その言語がどうマシン語にコンパイルされ、
アルゴリズムやライブラリがどうインプリメントされ、
どうハードウェアで実行されるか
ということを知らなければ、
良いコードを書くことはできないと思うのよ。
だから、アルゴリズムや言語の知識はもちろん重要だけど
ハードウェア系の知識も同じ位重要だというのが俺の主張。
0033デフォルトの名無しさん
NGNG祝一平マンセー
003424
NGNG俺は「最善の方法だ」に引っかかってるんだよね。
例えばディスクアクセスがボトルネックになってる場合、
ハードウェア的なディスクアクセスの仕組みなんて
知らなくてもいいんだよね。それがボトルネックになって
いる、と認識できさえすれば。
で、どうやってそれを解消するかというと、それは
ハードウェアの知識では解消出来ないんだよ。
つまり、ハードウェアの知識より、ライブラリやアルゴリズム
の方が必要とされるわけ。
だから、「初心者脱皮」と言う面で見れば、まず「ハードウェア
の知識」ではなく「ソフトウェアの知識」が必要だ、と俺は
考える。
まぁ、見解の相違だろうから、俺はこのへんで。
0035ww
NGNG(送る気はありません)
#include <stdio.h>
#include <stdlib.h>
typedef unsigned short word;
int main() {
word *op0 = malloc(0x400);
word *op1 = malloc(0x400);
word *ip0 = malloc(0x400);
word *ip1 = malloc(0x400);
word *tmpp;
word a,b;
int oc0,oc1,ic0,ic1,i,count;
unsigned char och[0x200],ich[0x200];
for(i=1;i<0x200;i++){
och[i] = 0;
ich[i] = 0;
}
och[0] = 1;
op0[0] = 0;
oc0 = 1;
ic0 = 0;
count = 0;
while(oc0+ic0){
oc1 = 0;
ic1 = 0;
for(i=0;i<oc0;i++){
a = op0[i];
b = (((a&0x3)<<7) + ((a&0x4)<<4) + ((a&0x1f8)>>3))^0x80;
if(ich[b] == 0){
ip1[ic1++] = b;
ich[b] = 1;
}
b = (((a&0x7)<<6) + ((a&0x8)<<2) + ((a&0x1f)>>4))^0x140;
if(och[b] == 0){
op1[oc1++] = b;
och[b] = 1;
}
b = (((a&0x1f)<<4) + ((a&0x20)>>2) + ((a&0x1c)>>6))^0x5;
if(ich[b] == 0){
op1[oc1++] = b;
och[b] = 1;
}
b = (((a&0x3f)<<3) + ((a&0x40)>>4) + ((a&0x18)>>7))^0x2;
if(ich[b] == 0){
ip1[ic1++] = b;
ich[b] = 1;
}
}
for(i=0;i<ic0;i++){
a = ip0[i];
b = (((a&0x3)<<7) + ((a&0x4)<<4) + ((a&0x1f8)>>3))^0x100;
if(och[b] == 0){
op1[oc1++] = b;
och[b] = 1;
}
b = (((a&0x3f)<<3) + ((a&0x40)>>4) + ((a&0x180)>>7))^0x1;
if(och[b] == 0){
op1[oc1++] = b;
och[b] = 1;
}
}
count++;
oc0 = oc1;
tmpp = op1;
op1 = op0;
op0 = tmpp;
ic0 = ic1;
tmpp = ip1;
ip1 = ip0;
ip0 = tmpp;
if(och[0x1ff] || ich[0x1ff]){
printf("%d move",count);
return 0;
}
}
return 1;
}
0036デフォルトの名無しさん
NGNGんじゃあ、正解は締切りの後で。
■ このスレッドは過去ログ倉庫に格納されています