[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 17:58 / Filesize : 57 KB / Number-of Response : 328
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングが上達するコツ



1 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 22:43:51 ]
語り合おう。

121 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:27:38 ]
>>114
4番は要らない。そんなことに警告も出せないコンパイラを使うな。

122 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:43:00 ]
>>120 だってあの中でstrxxxとかmemxxx使ってないじゃん。

123 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:54:30 ]
m = MIN(x, MAX(y,z));

124 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 11:01:14 ]
>>123
xが最小だとアウト

125 名前:デフォルトの名無しさん [2007/09/25(火) 13:43:02 ]
>>106
短いマッチだと英語の問題文を読んでいるうちに終わってしまうけど、
マラソンマッチだと問題文を読む時間に余裕があるので、
英語苦手な場合にも辞書を引きながらなんとか出来ると思う。

126 名前:123 mailto:sage [2007/09/25(火) 19:40:13 ]
できたっぽい
m = x > y ? y > z ? y : z > x ? x : z : y > z ? z > x ? z : x : y;

127 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 20:02:06 ]
((x - y) * (y - z) >= 0) ? y : (((z - x) * (x - y) >= 0) ? x : z)

128 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 20:08:03 ]
あなるほど

129 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 20:22:44 ]
m = (x > y) == (y > z) ? y : (z > x) == (x > y) ? x : z;



130 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 21:05:14 ]
>>121
コンパイラの警告レベルがデフォルトだと代入は捕まえない場合あるからなあ。
コンパイラ任せよりもプログラマの意識が高いことはいいことだよ。

131 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 21:48:20 ]
>>130
確かにいいことだ。でも上達するコツなのか?
4以外はわからないでもないんだが、これだけがなんか違う。

132 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:00:37 ]
なんか違う、じゃなあ。
漏れも定数左派。
コーディングテクニックの一つってことで、
知らないよりは上達してるんじゃね?
知らない奴は代入バグが存在することに気がつかないし。

133 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:03:49 ]
なんかこのスレ、初心者同士の情報交換って感じで和むよね。

134 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:07:54 ]
そら達人プログラマーに
上達するコツは必要ない

135 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:14:21 ]
コンパイラの警告レベルは理由が無い限り常に最大に。
これを守るだけで解消できることのために可読性を犠牲にしてもなぁ。

136 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:20:11 ]
でもVCにWallオプション付けたらすんごい事になるよ
一応ワーニングサプレッサヘッダ作ったけど、これまた凄い行数で…

137 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:09:54 ]
>>135
可読性が落ちる?
んなわけねー

138 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:26:03 ]
可読性なんて人それぞれ。上がる人もいれば下がる人もいる。

139 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:29:57 ]
等値比較で定数を左に置くのがナンセンスな理由

- 今どきのコンパイラは警告を出してくれる
- 比較する対象が両方変数だった時にはどうしようもない
- プログラムを読むときには、普通左辺にあるものを主語として読むけれども、
  数値が主語になるのはいかにも不自然
  (コードの意味を理解するまでにワンクッション入ってしまう)




140 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:36:31 ]
IDEだと色もつくんじゃない?


141 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:39:32 ]
2行目で破綻してるんだが。定数って書いてあんじゃん。
3行目も、初心者だからだろ。
定数左に慣れるのは2、3日もあれば十分。クッションなんかいらんし。

142 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:43:12 ]
右利きと左利きどっちがいい?っていう質問で、
両利きが一番いい、って答えと一緒だな。
左定数が分かる奴は右だろうが左だろうが関係ないし。
可読性どうこう言ってる奴は、メリットを理解できないだけ。
コーディングテクニックを身につけることを何故拒絶するのか意味分からん。

143 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:44:43 ]
2,3日もかかるのかよ
俺は書かんけど一目見たら慣れたよ

144 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:46:13 ]
だろ。すぐわかるよな。

145 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:46:29 ]
警告放置するなよ
そっちのほうがよっぽど重要だ

146 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:48:34 ]
>>141
2番目に関して。
変数同士の比較をすることも結構多いんだから、
片方定数の場合だけアドホックに回避するんじゃなくて、
変数同士の場合でも大丈夫な対処法を取る方が賢いよね。
そしてそれはコンパイラの警告スイッチを入れるだけで十分な訳で。

147 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:50:34 ]
C#だから定数を左に書く必要がありません><
C++だと左に書いてもいいかな、昔のVCは警告出なくて困ったような

148 名前:146 mailto:sage [2007/09/25(火) 23:53:43 ]
失礼。「2番目」と書いてあるのは、
>>141 で「2行目で破綻してるんだが……」と
書いてあることについてのレスという意味ね。

149 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:55:06 ]
>>146
確かにその通りね。
ただ、それは警告してくれるコンパイラを使ってることが前提になるでしょ。
現場によっては優秀とは言えない処理系になる場合もある。

変数同士のは注意する。定数の場合は左に書く。
こういうコーディングテクニックを身につけておけば、
少なくとも定数に限って言えば、代入バグは回避できるでしょ。



150 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:59:54 ]
lintでチェックしようぜ


151 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:02:28 ]
長い事やってて代入バグなんて一度もないが。
どんだけ見難いソースなんだよ

152 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:03:59 ]
実をいうと俺もない。
他人のも見たことない。
けど議論には参加するw

153 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:05:01 ]
一度もないのはすごいな。
漏れは極まれにある。

あれ、常に同じ動作だな -> if(a = 1) { /* hogehoge*/} else { /*fuga*/}
みたいな・・・

154 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:07:42 ]
俺は数年前に1回だがやっちまった事がある
プログラミング歴8年
他人のは見たことが無い

155 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:08:32 ]
VB転向組がやらかしたのを見たことがある。

156 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:20:09 ]
俺はタイプ遅いからかなw
ひょっとして = をやってしまいがち人は & | もやってしまう?


157 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:22:49 ]
ビット演算で&&や||ならやったことある

158 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 01:01:02 ]
俺はやった事は無いが、俺が居ない時に代わりに仕事をやってくれる小人さんはしょっちゅうやってる。

159 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 02:10:41 ]
#define == eq



160 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 03:37:19 ]
>>145
STL使ってて「名前が長すぎるんで255文字にカットしましたよん」って警告はどうすれば?
ライブラリのほうではプリプロセッサで回避してるけど、少し長いSTL使うたびにこれではやってらんない。

テンプレートクラス一回派生して使うとかそういうことしないと駄目?
関数引数以外でテンプレート引数使う関数同士を識別出来ないVC6でテンプレート使うなって言われたらそれまでだけどさ…。

161 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 07:33:59 ]
>>160
そういう対処しようのない警告は無視するよう指定しておく。

162 名前:119 mailto:sage [2007/09/26(水) 08:36:56 ]
大勢乗ってくれてありがと。いろんなアイデアに出会えて良かったですね。ちなみに私のは
m = x+y+z - max(x,y,z) -min(x,y,z) 私が駆け出しの頃に達人にやられた噺、当時はFortran。

163 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 08:55:22 ]
本物の達人はオーバーフローを気にしない

164 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 09:01:07 ]
うーC++にも可変引数のmax,minが欲しいぜ
でもboost使えば引数nのmax,minは引数n-1のを使って楽に作れそうだから
もう誰かが作ってるだろうなぁ…

165 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 10:05:48 ]
>>57
DHCに相談汁

166 名前:デフォルトの名無しさん [2007/09/26(水) 16:11:41 ]
やる気だろ

167 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:14:49 ]
マジレスすると、運動。

運動して、気分を明るくするというか、眠気を覚まして、体とか精神をリフレッシュさせると
プログラミングもはかどるし、それに集中できる。

168 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:21:18 ]
昼は土木作業員
夜は趣味プログラマ
というのがいいんですね?

169 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:21:48 ]
夜って言っても、深夜は駄目だけどね。
午後10時ぐらいまでは、趣味でプログラミングするのはいい。




170 名前:デフォルトの名無しさん [2007/09/26(水) 16:45:47 ]
規則正しい生活を送ってないと、何をするにも集中できないよ。

171 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:14:22 ]
4:00〜8:30 仕事 9:00〜12:00 体育館でジム 13:00〜17:00 仕事 18:30〜19:00頃 就寝
ってパターンでやってます。ヘルシーでいいよ。

172 名前:デフォルトの名無しさん [2007/09/26(水) 17:34:16 ]
TopCoder
pc11.2ch.net/test/read.cgi/tech/1177344510/
に参加。

173 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:34:36 ]
>>171
どんな仕事してるの?

174 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:41:02 ]
英語を勉強。

175 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:47:47 ]
プログラマーライフを楽しみたければ生業にしてはいけないということだな

176 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:50:12 ]
まずは、
#include <stdio.h>
int main(void)
{
int i,j;

for (i=1; i<=9; i++) {
for (j=1; j<=9; j++)
printf("%3d",i*j);
putchar('\n');
}
return (0);
}
の理解を目指せ。

177 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:06:07 ]
参考にしてはいけないコード

178 名前:デフォルトの名無しさん [2007/09/26(水) 20:19:51 ]
目標がない

179 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:21:52 ]
今の環境で欲しいものとかあるでしょ
それを作るのを目標にすればいいじゃない



180 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:22:22 ]
環境でって?

181 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:14:40 ]
今の環境で欲しいものといえばおにゃのこです。


182 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:43:44 ]
>>181
親に頼め。

183 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:24:46 ]
>>161
ども。

184 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:47:31 ]
そろそろ終了しそうな雰囲気

185 名前:171 mailto:sage [2007/09/27(木) 03:24:10 ]
>>173 フリーで、主に自宅で書いてます。小さいチップのクミコ。
客先の人達、私が朝型だと知ってるので、夕方のメールは翌朝返事がデフォになってます。

186 名前:デフォルトの名無しさん [2007/09/27(木) 15:07:09 ]
好きこそ物の上手なれだ

187 名前:デフォルトの名無しさん [2007/09/27(木) 16:26:27 ]
俺の生き方みたいに、スマートにコーディングしてると上達が早い。

188 名前:デフォルトの名無しさん mailto:age [2007/09/27(木) 16:30:29 ]
www.premiumtv.12gbfree.com/?rSTV=dvdmajestic+trailer+STAR+WARS

189 名前:デフォルトの名無しさん [2007/09/27(木) 18:20:28 ]
>>168
体も動かせて運動不足どころか鍛えれて良いと思う。
ただ土木作業員にプログラミングなどする奴がいるかどうかは不明だが。



190 名前:デフォルトの名無しさん [2007/09/27(木) 18:50:23 ]
マッチョなプログラマーを目指せば、自然とプログラミングも上達するよ

191 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 18:53:15 ]
それなんてノムソウ社員?

192 名前:デフォルトの名無しさん [2007/09/27(木) 18:54:28 ]
筋肉留学ならぬ、プログラミング留学すれば、技術も付くと思う。
違う環境で頑張るのもいいと思う。気分一新頑張れると思う。

193 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 18:54:42 ]
専門学校に行くのはどうよ。

194 名前:デフォルトの名無しさん [2007/09/27(木) 18:56:08 ]
目標リストC言語の場合
初の初級:
初級:九九
中の初級:
中級:
上の初級:
上級:

195 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 19:02:39 ]
初の中級:cal

196 名前:デフォルトの名無しさん mailto:age [2007/09/27(木) 19:05:05 ]
rimo.tv/en/ch

197 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 22:36:03 ]
目標リストC言語の場合
下の下:Hello,World
下の中:九九
下の上:
中の下:
中の中:
中の上:
上の下:
上の中:
上の上

198 名前:デフォルトの名無しさん [2007/09/27(木) 22:39:24 ]
目標リストC言語の場合
下の下:Hello,World
下の中:九九
下の上:受験勉強
中の下:東大入学
中の中:東大卒業
中の上:東大助手
上の下:ソフトウェア作成
上の中:逮捕
上の上:勝訴


199 名前:デフォルトの名無しさん mailto:age [2007/09/27(木) 22:56:34 ]
  _________ 
  (遠く宇宙のラップを)
   ̄ ̄ ̄\| ̄ ̄ ̄ ̄ 
www.premiumtv.12gbfree.com/?X3/?rSTV=New+Star+Wars+Gangsta+Rap




200 名前:デフォルトの名無しさん mailto:age [2007/09/27(木) 22:58:04 ]
他人まかせ

201 名前:デフォルトの名無しさん mailto:age [2007/09/28(金) 14:20:10 ]
->
を使ったプログラムを作れ

202 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 14:21:05 ]
49氏ですか?wwww

203 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 14:36:08 ]
printf("->");

204 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:50:45 ]
>>201
「アロー演算子」の積もりならそう書かないと

205 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 01:28:37 ]
>>189
謝れ、俺に謝れ。

206 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 01:35:53 ]
不明と言っただけだろう
へぇ居るんだね で終わり

207 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 02:50:30 ]
肉体労働して金が貰えるんだから嬉しいじゃないか。
俺なんか金払って肉体労働してるんだぞ。

208 名前:>>201 mailto:sage [2007/09/29(土) 02:56:19 ]
typedef void (*const t_cmdsub)(char*);
typedef struct {              // 識別コマンド+処理関数型
        char    cmd[12];    // コマンド名
        t_cmdsub funca;       // 関数アドレス
    } t_cmdfunct;
static const t_cmdfunct cmdtbl[] = {    // 識別コマンド+処理関数tbl
    { "VER?" , cmdver },       // Version?        
    { "$GPGGA" , cmdgga },      // GPS NMEAセンテンス
    { "$GPRMC" , cmdrmc },      // GPS NMEAセンテンス
    ・・・
こんな感じにmax-n文字のコマンド名とそれの処理ルーチンの関数ポインタテーブルを定義

209 名前:つづき mailto:sage [2007/09/29(土) 03:02:09 ]
void etcfunc(char *p) { sendout("?\r\n"); } // 再入力のプロンプトルーチン
static void *cmdmatch(char* cmd) {      // コマンド名識別ルーチン
//  in : *cmd コマンド名のあるバッファのアドレス、
//  return : 認識したコマンド処理ルーチンのアドレス、
   register t_cmdfunct *p = cmdtbl;

   do {
     if( memcmp(cmd,p->cmd,strlen(p->cmd))==0 )
       return (void*)(p->funca);    // n番目のコマンドを識別
   } while( (++p)!=(cmdtbl+(sizeof cmdtbl/sizeof cmdtbl[0])) );
   return (void*)etcfunc;         // 不一致時、空func
}



210 名前:つづき mailto:sage [2007/09/29(土) 03:09:23 ]
構造体[n].メンバ という参照をするたびに、「添え字から[n]番目のメンバへのアドレス計算」
が実行されるが、ポインタp+オフセットというアドレッシングはたいていの石で速い。
なのでループ中でアドレス計算が何度も実行されないというのが利点1。

cmdfunct[n].cmd という参照が、p->cmd で、短く書けて楽、なのが利点2。
テーブルの並べ方は、コマンドABCDとABC があるような時はABCDのほうを前に置くこと。

211 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 07:48:44 ]
珈琲はブラックでないとだめみたいだね。

212 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 09:50:45 ]
>ポインタp+オフセットというアドレッシングはたいていの石で速い。
最近はそうとも限らない。
とくに構造体のサイズが2のべき乗の場合は。

213 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 03:45:55 ]
元が>>201なんだから、そんなとこにつっこまんでも・・・ 201はこれでも食いきれないだろうし。

214 名前:デフォルトの名無しさん [2007/10/08(月) 12:25:24 ]
プログラミング的な発想
とは?

215 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 15:09:54 ]
物事が予測可能だと思うこと、かな。

216 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 16:39:46 ]
ラプラス気取りか

217 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:37:19 ]
経験した物事しか予想できない、だな

218 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 19:24:26 ]
プログラマ的発想なら分かる。
「手でやれば1分で片付く作業を、10分かけてスクリプトにやらせる」

でも、ある入力をどう加工すれば目的の出力になるかということを考えるのは、いいトレーニングになると思う。

219 名前:デフォルトの名無しさん [2007/10/09(火) 19:27:08 ]
ここに書いてる人ってみんなプログラマーなんですか?




220 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 19:31:15 ]
このスレの3割ぐらいはプログラマじゃない俺のコメントです。
ごめんね。

221 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 20:17:52 ]
>>220
おぬし、気にいったゾ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<57KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef