1 :
フルーツチンポ :
02/08/12 11:40
#include <math.h> typedef enum { false = 0, true = (!false) } boolean; int getMaxPrime(int n) { while(isPrime(n) != true) { n--; } return n; } boolean isPrime(int n) { if (isCanPowerAofB(n)) { return false; } int r = 2; while (r < n) { if (gcd(n,r) != 1) { return false; } if (isPrime(r)) { int q := MaxPrime(r-1); if (q >= round(4*sqrt(r)*ln(n)) && round(pow(n,(r-1)/q)) mod r) { break; } } r++; } for (int a = 1 ; a <= round(2*sqrt(r)*ln(n)) ; a++) { if (round(pow(x-1,n)) mod (pow(x,r)-1 ,n)) { // (*) return false; } } return true; }
>1 お疲れ >2 前スレの続きやるんですか(;´Д`)
Access レポートのコントロールソースから抜粋 ="平成 " & [年]-1988 & "年" & [月] & "月度"
>>1 あの〜 #4が違うスレになってるんですけど。。。
>7 ここが本スレですヨ
StripSlashes(arg) StripSlashes unescapes the string argument. See also AddSlashes(). AddSlashes(arg) Escapes any $ \ or ' (if MAGIC_QUOTES is set) with a backslash. See also StripSlashes().
>>548 あのババアなんつったけ?
清川虹子?
高田純次が、清川虹子の 指輪やダイヤのコレクションを拝見する企画。
高田が、高い指輪を口に入れて、清川が激怒してビンタ張ったり、
口から出したガムを ビロ〜ンと指輪にくっつけたり。
それと、なんと言っても、清川のぶ厚い唇に虫メガネをあて、
巨大唇に見せるのは最高だった。(大笑)
もう死んだんだっけ?ウプププ
ぷっぷー!!
13 :
仕様書無しさん :02/08/13 07:12
14 :
仕様書無しさん :02/08/13 12:18
1+1=2
>>14 ???????????????????????????????????????????
/* エディットコントロールに入力された文字列が整数に変換できるか調べる関数 変換できる場合 : TRUE 変換できない場合: FALSE */ static BOOL IsNumber(HWND hwnd) { char *p; /* for strbuf() */ char strbuf[5]; GetWindowText(hwnd,strbuf,5); if(strlen(strbuf)==0) return FALSE; strtol(strbuf,&p,10); if(strlen(p)!=0) return FALSE; return TRUE; }
>>16 これは
・コメントの「strbuf()」
^^
・マジックナンバー(5)
・バッファがあふれることを考えてもいない
・ポインタの指す位置が文字列終端かどうか
調べれば済むところでわざわざstrlen()を呼んでいる
・つーか、実はそもそもhwndの持ち主はCEditなので
ダイアログエディタの設定で数字以外あぼーんできるじゃん
以上、どこに突っ込めばよろしいので?
>>17 マジックナンバーというのは
「意味不明な(根拠のない)数字」
とかいう意味ですか?
業界用語?
質問に質問で返すなーーッ! 俺はどこに突っ込めばよろしいので、と聞いているんだあーー! 疑問文には疑問文で答えろと学校で教えているのか?
>>19 まぁおちけつ
>>18 意外と用語辞典とかにないな > マジックナンバー
(検索とか掛けると野球とか物理用語で引っかかる)
この際カーニハンとパイクの「プログラミング作法」とか
買ってみそと言ってみるテスト。
21 :
仕様書無しさん :02/08/14 21:12
>>19 > 俺はどこに突っ込めばよろしいので、と聞いているんだあーー!
どこって どこ?
URI
+−−−−−−−−−−−−−−−−+ | 〜〜しますが、よろしいですか? | | | | OK キャンヤル | +−−−−−−−−−−−−−−−−+ 納品後障害連絡がありました、、、、 製造は中国(T∀T
27 :
仕様書無しさん :02/08/15 13:31
URIという用語すら知らない厨までこんなとこ来るようになったのかよ。 しかも中卒PGですら知ってたというのに。 板のレベルもどんどん落ちるわけだ。
URI :我 NARA :国 でよかったっけ?
>24 ヴァカに英語は読めねえよ。 もっとも、訳したところで分からねえことには 変わりないだろうけど。
URIという言葉を知らなかったんではなく、意気がって使ってんじゃねーよ 中卒の癖に氏ね中卒がとでも思ったんではないでしょうか(藁 まぁマターリ行こうや :-)
33 :
仕様書無しさん :02/08/17 03:34
>31 おまえ、人間できてるなぁ。
>>32 URIという言葉を知らなかったのかよ、俺が使ってるからって意気がって突っ込むなよ。
お前、中卒なんだから得意げにURIなんて言葉使ってないで「氏ね中卒が」とでも思ったんじゃないの?藁
寂しいからマターリ進行してよ、かまってよ。
URI って、Uzai(うざい)Recruit(リクルート)Ittekure(逝ってくれ) ですか?
違うと思います。 Uzai Recent Information(触れられたくない過去の思い出) と解釈しましたが?
プログラマってギャグのセンス無いね
>>35 You are Iです。
和訳すれば「お前のものは俺のもの(、俺のものは俺のもの)」です。
>>38 それなら yours と mine にしないと
>38 誤訳デス。おれはお前お前は俺と言うことニダ。 怪しい宗教にはいっちゃだめよみんな。
41 :
仕様書無しさん :02/08/18 02:30
while(0)
heart of mine 地雷の心
このスレ辞めたくなった。
44 :
仕様書無しさん :02/08/18 13:14
#include<漏れ>
//作成者 yamanaka ・・・略・・・ int ymnk = getId();//PrimaryKey ・・・変な変数名付けられるとデバッグ時に死にますが?
46 :
仕様書無しさん :02/08/19 10:26
int WINAPI Wiz_UnzipToMemory(LPSTR zip, LPSTR file, LPUSERFUNCTIONS lpUserFunc, UzpBuffer *retstr) Where UzpBuffer is defined as: typedef struct _UzpBuffer { ulg strlength; /* length of string */ char * strptr; /* pointer to string */ } UzpBuffer Pass the name of the zip file in zip and the name of the file you wish to extract in file. UzpUnzipToMemory will create a buffer and return it in *retstr. 0 on return indicates failure.
この会社辞めようと思った時・・・ね #define if if( #define then ) #define begin { #define end } etc... で、 if hogehoge then begin fugafuga end else (以下略... ってキチガイじみた物を書く、4月に入ってきた新卒社員(雌)のを見たときかな。 前に座ってるけど御願いだからリアルで氏んで。 #defineはデバッガに出ないから良いでしょとか言ってるし、マジでこの会社辞めようかな。
48 :
仕様書無しさん :02/08/19 11:40
↑
そういう場合は、普通その新卒を退職に追い込むべきだろ。
新卒よりも弱い
>>47 晒しあげ
49 :
仕様書無しさん :02/08/19 12:08
>>47 sedで置換すれば一発で解決すると思われ...
雌犬に梃子摺っておりますな。
50 :
仕様書無しさん :02/08/19 12:48
>>47 なんでだめなの?
文法的に間違っていないと思うんだけど?
51 :
仕様書無しさん :02/08/19 12:51
>>47 読みづれーよ・・・
これ書いた奴しかメンテできなくなっちゃうでしょ。
これが読みやすいと感じる人間だけで構成されているチームなら別だが。
52 :
仕様書無しさん :02/08/19 12:56
以前ODBC使ってるのにSELECT文実行して値取得するのに SELECT NAME INTO NAME FROM .... って感じのマクロ使っているのがあったけどすごいね。
>50 文法的に間違っていない、とかいっちゃう悪い子は、 iocccのソースを全部解読しる!
54 :
仕様書無しさん :02/08/19 13:11
解読しる どういう意味だろう?
>>50 さらには、エディタの機能 (括弧の対応チェック等) が使えなくなりますね。
56 :
仕様書無しさん :02/08/19 13:17
>>55 新卒女は自分書式に特化したエディタを使っていたりして。
If RS.EOF Then RS.MoveFirst ... End If
58 :
仕様書無しさん :02/08/19 13:27
>>55 小せえよ。
そんなもんに頼っているから記憶力、判断力の低下につながるんだ。
>>58 あなたは「そういうの使わないからお前は仕事が遅いんだ!」と
言われた事はないですか?
あ、言い忘れましたが8月入社です。
62 :
仕様書無しさん :02/08/19 14:38
だから、49 のレスで一発貝穴だろ。
63 :
仕様書無しさん :02/08/19 14:59
>>58 括弧の数あわせなど人間がやる仕事ではなく計算機に
やらせる仕事です。
65 :
仕様書無しさん :02/08/19 15:03
66 :
仕様書無しさん :02/08/19 15:15
68 :
仕様書無しさん :02/08/19 15:29
69 :
仕様書無しさん :02/08/19 18:00
70 :
仕様書無しさん :02/08/19 20:04
保守しようにも変数名がわけわからん。コメントはもちろんなし。
72 :
仕様書無しさん :02/08/19 21:12
実際のコードとコメントの内容が食い違っている、というのはあったな。
>>72 懺悔……
「意味不明なコメント」の説明しに
客先まで逝ったことありまつ(汗
75 :
仕様書無しさん :02/08/19 22:41
何はともあれ、ifとそれに対応するelseが1ks以上離れている ってのはあんまりだ。関数分けるかせめてswitch文にしてくれ。 勘弁してくれ、K君。
76 :
仕様書無しさん :02/08/19 22:43
s君、お願いだ。コメントに発注元の悪口書くのはやめてくれ。 今度納品するんだぞ、そのソース。
>>74 いや、その「意味不明なコメント」書いたのは
漏れ自身なのですよ(w
だから「懺悔」。自業自得っす(つд`;)
Private Function ZeroCHK(CHK_int As Integer) As Boolean '数字0のチェックする関数 If CHK_int = 0 Then MsgBox "データ0は不正です。" ZeroCHK = False Else ZeroCHK = True End If End Function
VBは、Iif関数の存在を知ってから、無駄な関数や分岐を作らなくてよくなったなあ。 split知らない人が、頑張ってバグだらけのCSV解析関数を作っているのを見ると、 なんかもう・・・・・・・・・・・面白いから、そのまま放置してしまっているよ(w
iifってなんじゃら、とおもったら、なんだ、三項演算子か。
81 :
仕様書無しさん :02/08/20 18:38
わざわざ関数化するなって意味か、 チェック関数内でエラーメッセージ出しているのが問題、ぐらいか?
>82 共通ルーチンだから数値チェックするたびに出るのが問題なんでしょ。 GUIに絡まないところでメッセージが表示されたらショックでかいよ。
>78 関数名とか変数名がきもちわるいのですが。
これが入社6年超えようとしている人が書いたコードかよ…(T_T。 保守する身にもなってくれ…。 if(flag){ CDWordArray data, data2, data3; F_Data f_data; // a long long sentence..... if(count == 0){ return FALSE; }else if(count == 1){ if(win->MultiSelectFiles(...)){ if(FALSE == p_Data->m_file_inf.GetAt(...)){ return FALSE; } if(-1 != (op_index = GetMultiParrent(data))){ for(int i=0; i<data.GetSize(); i++){ for(int j=0; j<cc_inf.NameGetSize(); j++){ if(FALSE == p_data->m_file_inf.GetAt(...)){ return FALSE; } if(f_data.IsDummyFile()){ break; if(!IsEmptyOption2(...)){ showTool |= (1 << j); data2.Add(j); } } } if(showTool){ for(int j=0; j<cc_inf.NameGetSize(); j++){ if(showTool & (1 << j)){ も う い や だ
この後にもif文入れ子10段とか、C++お得意のローカル変数宣言が要所要所に 入ります。 …糞コード投げ捨ててもいいですか?(Tд⊂
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧ ∧ < >86 殺って良し! (ロ゜ ,) \__________ U | | 〜 U U  ̄ ̄ ̄ ̄
88 :
仕様書無しさん :02/08/21 01:23
すみませんが。。 フラグだらけのコードから、フラグなしのコードに変更するのって、 どうやるんですか?
>88 フラグが立ってるか立っていないかを判定するフラグを立てればいいんですよ
>85 複雑なものだったらこれぐらい普通だとおもうけど 何がいけないのか説明してもらえます?
>>90 > 複雑なものだったらこれぐらい普通だとおもうけど
んなわけない。
if 分のネストがあそこまで深いと、どういう条件で何が為されるのか
サッパリ分からん。変数名が f_data や data2 など「意味不明」なこ
とも相まって、解読不能になってますな。
>>85 break文の後ろのIsEmptyOption2のチェックをしているif文は実行されるの?
PG作業って共同作業相手が見えにくいだけで 基本的には共同作業だからね。 独り善がりなコード書く奴は嫌われるね。
>if(count == 1){ > if(FALSE == p_Data->m_file_inf.GetAt(...)){ ちゃんぽんはどうかと思うよ
>C++お得意のローカル変数宣言が要所要所に入ります。 ローカル変数宣言は、別にいいんでないの?
96 :
仕様書無しさん :02/08/21 09:25
>>ローカル変数=アホの溜まり場
>>88 C言語なら、フラグが立っているときの処理と立っていないときの処理を関数で分けて、
フラグを立てる代わりに、関数ポインタを差し替えるとか。
それでソースが見やすくなるかどうかはわからんが。
>>97 単に条件わけて関数呼ぶだけならif-else使ったほうが良いと思われ。
99 :
仕様書無しさん :02/08/21 11:41
>>79 splitが使えるのはVB6以降だったと思われ・・・・・
それ以前は、CSV解析関数を作っていたのでは?
>>53 そういえば、7行スレのソースを頑張って読んだら
割と読みやすくて驚いた覚えがある
>>100 あー、俺も。無駄な書き方は極力省いてるからなんだろうね。
>>79 Iifは実行速度が遅い。これ常識。
可読性、保守性向上のためなら、他にやることいくらでもあるでしょ。
漏れ、CSVよりタブ区切りの方が扱うのが楽だと思うんだけど、どうよ?
>>47 定番のマクロ厨ですな。
ご同情申し上げます。(−人−;
>>102 実行速度が遅い、ってVBで実行速度を求めるようなもん、どれぐらい需要があるんかね。
つか、コンパイル時に内部的にif〜elseと同じように展開されないんや?あれ。
106 :
2チャンねるで超有名サイト :02/08/21 12:42
107 :
仕様書無しさん :02/08/21 12:52
CList Array1,Array2,Array3; これを見てムカツイタ
108 :
仕様書無しさん :02/08/21 12:55
最近だと #define TIME_60 60 /* 1分は60秒 */ #define TIME_3600 3600 /* 1時間は3600秒 */ #define TIME_84600 84600 /* 1日は84600秒 */ ってのもね。
109 :
仕様書無しさん :02/08/21 13:32
>>108 地球の自転周期が変わったらどうするつもりだ!!
>>108 本当にデバッグしたのか?
60 * 60 * 24 = 86400
# まぁ閏秒を考えると1日=86400秒もアレだが。
111 :
仕様書無しさん :02/08/21 13:40
If str_Cnt = 0 Then MsgBox "(゚Д゚) ハァ?" Exit Sub End If
112 :
仕様書無しさん :02/08/21 14:05
>>111 (´・ω・`) ショボーン ← これも追加しといて
>>110 そもそも閏秒がいつ入るかなんて予測できないし。
>>113 うちは電波時計Unit導入前のシステムだと、1/1,7/1の9:00に閏秒ファイルがあると
1秒遅らせるようにしてました
実装はもう少し複雑で、現在も8:59:60秒が扱えるようになってたりします
115 :
仕様書無しさん :02/08/21 15:20
>>114 うちの時刻チェック関数は、バッチリエラーと判定します(w
>>105 If A Then B Else C
と
IIf( A, B, C )
は等価じゃないよ。
IIfは一行で書ける以外のメリットがない。
>>88 昔、そんなコードを整理したことがあるな。
俺が使ったのは、
1. まずは関数を細かくばらす
2. グローバル変数を使ってるフラグのうち、その関数内で「参照しているだけ」
で書き込んでないものを見つけて、それを関数の引数で渡すようにする。
3. グローバル変数に「書き込んでる」部分を見つけて、2, 3 の関数の呼び出し経路
を考えて見直す。
って感じの方法。慣れると機械的に作業を進められるようになる。
118 :
仕様書無しさん :02/08/21 16:11
static BOOL Wm_InitDialogProc(HWND hwnd,HWND hwndFocus,TLineData* LineData ) { int c; int EditControl[]={IDC_XS,IDC_YS,IDC_XE,IDC_YE}; char strbuf[100]; /* ラインデータのアドレスを保存 */ gVarLineData=LineData; /* 入力できる文字数を4に制限している */ for(c=0;c<(sizeof(EditControl)/sizeof(EditControl[0]));c++) SendDlgItemMessage(hwnd,EditControl[c],EM_SETLIMITTEXT,4,0); /* エディットコントロールの初期化 */ sprintf(strbuf,"%d",LineData->xs); SetWindowText(GetDlgItem(hwnd,IDC_XS),strbuf); sprintf(strbuf,"%d",LineData->ys); SetWindowText(GetDlgItem(hwnd,IDC_YS),strbuf); sprintf(strbuf,"%d",LineData->xe); SetWindowText(GetDlgItem(hwnd,IDC_XE),strbuf); sprintf(strbuf,"%d",LineData->ye); SetWindowText(GetDlgItem(hwnd,IDC_YE),strbuf); SetFocus(GetDlgItem(hwnd,IDC_XS)); return FALSE; }
119 :
仕様書無しさん :02/08/21 17:02
MsgBox Choose(Seibetsu, "Otoko", "Onna", "UniSex")
117 == マーチン
121 :
会社サボリ :02/08/21 18:56
今日NHKで人型ロボット開発の苦労話をやっていた。 「ロボットは、たかが 2mm の段差でもバランスを崩し 倒れてしまう… 人間がバランスを取るときの動きを 徹底的に解析し、ソフトウェアを修正します」 とかいう場面で、バーッとソースコードがスクロール。 思いっきり直値で 500 とか 600 番台まである switch case文だった。 case 528: /* こんな感じのが延々と */ : アシモよ、君は本当にこんなんで動いているのか…
>121 あれって自動生成じゃないか? 例えば状態遷移を専用の文法で書いてトランスレータ通すと あのCのコードが出てくるとか。
>>105 実行速度が求められないからって、何を書いてもよい、という訳ではありません。
アルゴリズムの善悪で、ふつうにコーディングすれば、1秒で済むはずの処理に3分
掛かったらどうするのですか?
それでも貴殿は「VBだからいいや」の一言で片付けるのですか?
マジレス、失礼。
>>124 >>105 はIfとIifの実行速度の違いについて言ってるだけと思はれ。
それともIifはIfの180倍遅いとでも?
マジレス、失礼
126 :
仕様書無しさん :02/08/21 22:14
>>90 君とは一緒に仕事したくない。。。。。。。。。
>127 まだ学生だが4月から仕事に入るがよろしくw ちなみに>85の例で(・∀・) イイ!コードに書き換えるのはどうすればいいですか? まあ入れ子10段はさすがに問題あるが 変数名を分かりやすくしてコメント入れればいいですか?
>>128 技術的な話より先に、謙虚さを身につけような…
>>128 俺も大学生だけど、もっとキチンとした敬語の使い方は勉強しておいた方がいい。
社会に出るとそれだと辛いよ。
>>85 のコードは単純に読みにくいよね。変数名がキチンとしてないのもあるし、
書き方が統一されてない。
>>94 で指摘されてるけど、
>if(count == 1){
> if(FALSE == p_Data->m_file_inf.GetAt(...)){
この部分とか。他にも
> if(f_data.IsDummyFile()){
> break;
> if(!IsEmptyOption2(...)){
> showTool |= (1 << j);
> data2.Add(j);
> }
> }
これ。break以降は実行されない無駄コード。
入れ子10段は関数化した方がいい。同級生のコード見たことあるけど、何してるか分かりにくい。
他にも文句付けたらたくさんあるよ。プログラミング歴2年の俺でもこんなコード書かないって。
>>130 > プログラミング歴2年の俺でもこんなコード書かないって。
業界歴10年というふれこみのヤツが、意外とこんな糞コードを書いたりする。
なんで淘汰されないんだか。
>>131 割とこの仕事って実力本位だと思ってたのにな…残念w
実力本位だとは思うけど、実力ある人はコーディングしなくなってく・・ その結果(略 皆さんソースレビューってどれくらい細かくやりますか?
>>133 了解しますたw 実力もあってコーディングも趣味でやるようなPG目指します。
というか上司にとっての実力と言うのはコーディングの早さとバグの少なさ でソースコードの美しさまで評価する会社ってあまり見たことないけど
今日すごいもん見ちゃった… スパゲッティなんてもんじゃない。あれは迷宮だ…
ラビリンスコード?w
138 :
仕様書無しさん :02/08/22 11:41
139 :
懲りない面々 :02/08/22 15:36
Open CSVFile_Name For Output As #1 For CellRow = 2 To 3 For CelCol = 1 To 37 If CelCol = 1 Then CSV_Record = """" & Cells(CellRow, CelCol) & """" Else If Cells(CellRow, CelCol) <> "" Then 'セルにデータがあるか確認 CSV_Record = CSV_Record & ",""" & Cells(CellRow, CelCol) & """" Else CSV_Record = CSV_Record & "," End If End If Next '最後にアスタリスク追加 CSV_Record = CSV_Record & ",*" Print #1, CSV_Record Next Close #1
140 :
仕様書無しさん :02/08/22 15:41
141 :
仕様書無しさん :02/08/22 15:41
地味に140get
If m_RS.RecordCount = 0 Then Exit Sub 'レコードがなければ終了
>>124 >>125 の言うとおり。
IIfについての話題なのに、何を勝ち誇ったかのように話題を展開しているんだ?
つか、それなら君は実行速度が速ければ、どんなに汚い糞コードでも「速いからいいだろ!」
で片付ける人なんか?
もっとみんな冷静になって。 最近変な人多すぎ。 レスつけちゃだめ。
>>130 多分手なりでコード書いてると思うんだよね、その人。
やっぱ整理しなきゃだめす。
149 :
仕様書無しさん :02/08/23 11:43
If List(0) <> "" Or List(1) <> "" Or List(2) <> "" Then MsgBox "データが入力されてません。" End If
変数名がわけわからん。
151 :
仕様書無しさん :02/08/23 12:44
グローバル多すぎ
152 :
仕様書無しさん :02/08/23 16:24
什器ネットのシステムのソースをすこしづつ公開するスレはここですか?
153 :
仕様書無しさん :02/08/23 16:56
こいうのはどう? do { if (〜) { 〜; break; } if (〜) { 〜; break; } if (〜) { 〜; break; } if (〜) { 〜; break; } if (〜) { 〜; break; } } while (0);
155 :
仕様書無しさん :02/08/23 18:02
2〜3人で作業したとあるプロジェクトが完了。 納品後に、 「このプロジェクトはヲレに任せろ。ヲレがメンテする。」 つった先輩社員が、客先から不具合を指摘される毎に、 「ココ、ヲレじゃなくてXX氏(現在出向中)が組んだところだから よくわからない。お前が客先の話聞いて、直しといて。」 ・・・だって。(゚Д゚)ハァ? つか、ソースの保守するっつったヤツが、他人のソースが わからんって・・・保守って自分のトコだけか? 普通、保守すんなら他人のソースだろうが、読むだろ。 しかも、不具合の内容はちょっと考えれば直せるようなもの。 ちゃんとソース見てから、判らんつったのか?コイツ・・・。 もういい・・・勘弁してくれ・・・。
157 :
仕様書無しさん :02/08/23 20:25
>>153 連続ifはいいけど
無限ループはwhile(1){〜}で先頭で確認させてくれ
158 :
仕様書無しさん :02/08/23 20:47
>>157 いや、あれはbreakで抜けるブロックを作るためにループしない
whileを使うのがポイント。
>154 とりあえず晒しとけ。
>>157 >>158 の言うとおり、ループはさせない。
goto 使いたくないから(だと思う)。
一連の処理があって、途中である条件が満たされたら(エラーとか)
終了処理をさせて終わるって時に使うてるらしい。
最初、この人は意味無い while(0) で何をしたいのかと悩んじゃったよ。
スパゲティーにならなけりゃ goto 使ってもいいじゃん。
>>161 スイッチない時代のソースなんだよ。きっと。
そんな時代があったのかしらねーけど。
163 :
仕様書無しさん :02/08/23 22:05
>>161 switchの方が処理が遅いと思っている人がいるんだよ
>>160 そのとおり。153のコードはずばり、本末転倒ってやつだ。gotoを使えばすっきりと
エラー時の処理が記述できるのに、gotoを使うこと=悪だとバカのひとつ覚えって
やつで、とんでもないクソコードを書いてるってこと。
>>162 switchでは記述できない。そもそも分岐したいわけではないからだ。153の意図は
だいたいこんなクソだろう。
do {
int c;
FILE* f = fopen("aaaa", "r");
if (f == NULL) break;
if ((c = getch(f)) == EOF) break;
if (c != 'B') break;
...
if ((c = getch(f)) == EOF) break;
if (c != 'A') break;
...
>>161 ifの条件式がswitchじゃダメなものだとか。
strcmpしたりとかね。
do〜while()の構文はループに使われるものだから、
このような使い方はよくないなと思う。
こういう場合はgotoでもokだろう。
つか、これってif〜else if〜else ifの連鎖でかけるんじゃないの?
166 :
仕様書無しさん :02/08/23 22:29
>>165 どういうことをやりたいかにもよるが、ネストが非常に深くなったり
フラグ変数を導入しないといけなくなったりする。
で、そんなことするくらいなら breakで抜けられるようにしてしまえと。
まぁ、普通は gotoを使うが(例外が使えない場合)。
167 :
仕様書無しさん :02/08/23 22:43
var m :Byte; begin m := MessageDlg('終了してもよろしいですか?',mtConfirmation,[mbYes,mbNo],0); if m = mrYes then Close; end;
168 :
仕様書無しさん :02/08/23 22:47
>>164 はあ?
あんたの言ってること、大間違いだぞ。
goto は悪なのは決定なの。
だから、Javaでは goto ないの。
goto は予約語ですが?なんて言わないでね。
169 :
仕様書無しさん :02/08/23 22:51
170 :
仕様書無しさん :02/08/23 22:52
>>153 } while (0);
これは、無限ループですか?
171 :
153=160 :02/08/23 22:52
>>164 、166の言う通りです。
Cなんで例外は使えないです。これ書いた人も例外が使えたら使ってたと思
う(?)。
まぁ他部署の人が書いたってだけで誰が書いたのかはわからんから真意は
不明だが。
ほんと本末転倒だよねぇ。
172 :
仕様書無しさん :02/08/23 22:55
>>171 普通は、問い合わせ関数にする、に1票!
>>168 よ、JAVA等は例外が使えるからすっきり書けるけど、Cなので例外は無いの
だよ。
goto 使わないで、if〜else if〜else でやろうとすると、それはそれで見づら
くなるのよ。
>>170 へ
「} while(0);」は無限ループじゃないです。ループ*しない*です。
174 :
仕様書無しさん :02/08/23 23:13
あはん
176 :
153=173 :02/08/23 23:38
>>175 うむ。それ(
>>172 )がいいだな。
ただ、似たようでちょっとずつ違う処理の流れが多数だと、しっくりこな
いかも。
まぁ何事も極端に走りすぎるのはどうかということで。
もうじき、俺のソースがここにさらされるだろう。
>>172 そういうテもある。
しかし、できちまったものはしょうがない(泣)。
とりあえずまずは、goto使って、エラーの場合の切り分けを明確化させてくしかない。
int c;
FILE* f = fopen("aaaa", "r");
if (f == NULL) goto open_err;
if ((c = getch(f)) == EOF) goto too_short;
if (c != 'B') goto content_error;
...
if ((c = getch(f)) == EOF) goto too_short;
if (c != 'A') goto content_error;
とかして、何がしたいかだけははっきりさせてやる。それから様子を見ながら
FSMを導入だ。っていういのは、このテのやつは状態遷移処理を頭から書こうと
してるから出てくることが多いからだ(泣)。
例としては手抜きだが、本来はこんな感じで処理すると良い。
strcut {
int current_char;
int (*func)(char);
} state_tbl[] = {
{ EOF, &tooshort }, // &は不要だが付けても良い
{ 'A', &baka_start },
{ 'B', &yappari_dana },
}; // 実際には、戻り値で次のステートが決定されるから2次元表になるぞ。
int c;
FILE* f = fopen("aaaa", "r");
if (f == null) return -1; // この時点で関数抜けろ。
for (;;) { // これは本当に無限ループで可
int i;
c = fgetc(f);
for (i = 0; i < sizeof(state_tbl)/sizeof(state_tbl[0]); i++) {
if (c == state_tbl[i].current_char) {
// 実際には、ステートは2重3重になるから、こんな単純ではないぞ。
c = *(state_tbl[i].func)(c);
break;
}
}
if (c == END_CODITION) break;
}
...
ムカついたときやるんですが、 こんなの見たらどうします? i = 0; while(n > i){ 〜〜〜 ++i; } とか、 if(;_;){ 〜〜〜 } とか、 while(T_T){ 〜〜〜 } ちなみに、真ん中のやつは変数宣言でバレて書き直させられました。
>>179 客に出さないやつだったら、おれは、許す。
しかし客にだすやつだったら、だめぽ。
>>180 もう客先には納品済みです。
つーか、運用開始してます。
それは勇気ありだなぁ。 ところで、おれ最初のwhileのやつわかんないんだけど、どう見るの? 2番目はfor(;_;) の書き間違いだよね?
goto、if〜else で思い出したが、以前いた会社で if (〜) { 〜; goto AAA; } else { 〜; } 〜; 〜; if (〜) { AAA: 〜; } 〜; とかって、if ブロックの中に飛び込む goto があったなぁ。 こういう goto は止めてくれ。
>>182 最初のはわざとfor()使ってないだけです(タイプ数ぶん墓穴掘ってるだけか)
2番目は、、、ダメだ寝ょぅ。
一度 >183 のようなコード書く人の頭の中みてみたい
186 :
仕様書無しさん :02/08/24 01:34
>>185 しばらくアセンブラやってると、そういうコードを思い付くようになった。
BASIC時代はそんなの日常茶飯事
>179 次はこうしとけば大丈夫。 i = 0; AAA: 〜処理〜 if (i < n) goto AAA; ラベルはわざと「AAA-0101010101」みたいな番号製にしとけば混乱させられるね。 #defineで3重置き換えにするとメンテも困難になるし。 でもさ、むかついたからってこんな書きかたしても自分の評価が下がるだけだよ
昔、ものすごい待遇の悪い(給料が…とかそういうレベルでなくて)会社で働いてて、辞める時に 一度だけそういうソースを書いた事がある。
190 :
仕様書無しさん :02/08/24 12:00
#include <stdio.h> #include "stdio2.h" #include "stdio3.h" #include "stdio4.h" 安直な命名にハァ?って感じ。 中身覗くと stdio.h の意味を成してないし。
191 :
仕様書無しさん :02/08/24 12:04
>>190 ですが
#include "all.h" っていうのもある。
中身は説明しなくても見当がつきますよね。。。
>>191 ……頑張れ…。
そういえば去年かな…VBで書かれたソースをVCに移植することになったんだけど、
そのソースがふるってた…変数名が「型名+通し番号」なんだよ…全部。もうね、アホかと(略。
193 :
仕様書無しさん :02/08/24 12:15
>>192 >>190 ですが
お互いたいへんですね。
仕事としてのプログラマーになってから質が落ちました。
へんな約束事しかりチームワークが難しいね。
通し番号の命名規則はどこ行ってもあるね。
モチベーションがたおち。
確かにお互い大変ですな…。 ハンガリアンは意味付けがあるからまだ許せるけど、通し番号はちょっとね。 何にせよ、臨時で入ってきた仕事だったのでもう関わることは無いと思うけど…。 そのコード書いたヒトの職歴聞いたら元COBO(略。 それで仕事できる気になって「なんで給料上がらないんだ」とかクダ巻いてるそうで。 …こういうところで評判落してるのに何故気が付かないのかね。
ここに晒すのにぴったりのくそコードがあった。 誰だ、こんなもんかいたやつぁ! …1年前の漏れ…。 だれかコロシテ…
昨日自分で書いたコードですら、今日は恥ずかしく思える。 日々精進。
198 :
仕様書無しさん :02/08/24 16:43
アホ1: Range(ActiveCell.Address(0, 0)) アホ2: Cells(ActiveCell.Row, ActiveCell.Column).Offset(, 1).Activate アホ3: .Range(.Cells(.Cells(1, 1).Row, .Cells(1, 1).Column), _ .Cells(.Cells(10, 3).Row, .Cells(10, 3).Column))
199 :
仕様書無しさん :02/08/24 17:26
正直、コードには執着しない。
>199 うそこけよ。 以前「俺はコーディングスタイルなんてどうでもいい」なんて言ってたやつが 「ここの括弧のつけ方辞めようよ」って一番騒いでたりしたしな。
前代未聞のファイル入出力をみました 何をどうやればこんな処理になるんだろう とにかく絶句
晒せ.
203 :
仕様書無しさん :02/08/24 21:53
1関数578行、return文17個。
>>203 特に普通だろ。 オレのソースはたいてい1000行は越えるぞ 最高5000行くらいのがあったな。
>>203 どうして関数分けませんか?
今日びオーバーヘッド気にしますか?
206 :
仕様書無しさん :02/08/24 22:03
>>204 えっと…笑うところだよね?
1関数が3Kあるソースを押し付けられたときは気が狂いそうになった。
深いネストの先に switch case があって、そこで処理を全部やってる。
同じような code がいたるところに出てきて迷路に迷い込んだようだった。
>>204 >特に普通だろ。
日本語能力すらアレですか。
関数分けたら引数作るのめんどうじゃん
209 :
仕様書無しさん :02/08/24 22:22
変数はグローバルに決まってるじゃん。何いってんの?
おまえらのいる会社には就職しません(w
214 :
仕様書無しさん :02/08/24 22:38
「1クラス1メソッドなのでシンプル&メンテナンスフリーです!」 これ、「大きな青」の子会社がうたってた営業トークです。 結果としてシステムは「平均3000ステップ/1メソッド」に。 言語はJavaでした。。。 WSAがまた重くてね、デバッグするときは発狂寸前でした。。。
>>212 ふつーグローバルに
int data[1000];
と変数を取って、あとはキャストして使い回すよな。
216 :
仕様書無しさん :02/08/24 22:43
そういえば、 ”引数が多いのは美しくない” とかいって、その関数用の構造体を定義してたのがいたな。 もちろん、その関数でしか使わない。
>>215 Javaではそのてのキャストはできないというわな
>>215 うそーん。
オレはキャストするのめんどうだから
int intData[1000];
char charData[1000];
って感じにするな。
ネタ発表会になってきました
221 :
仕様書無しさん :02/08/24 23:34
/*規制中の場合は再リトライ*/ 「3回目以降」という意味かと思ったが、そうでもなかった。 if(roop_flg == 0 ) /*ループフラグが0の場合*/ { break; /*ループを抜ける*/ } コメントの何たるかを理解していない典型。 roop_flgという変数名もどうかと。スペル間違ってるし。 それ以前にこんなことでフラグなんか使うな。
さらにそのroop_flgが、ループの別の場所では、 for (roop_flg = 0; roop_flg < 5; roop_flg++) { .. } とか使われてるという罠。
223 :
仕様書無しさん :02/08/24 23:46
ネタを書くのもいいが、それを真に受けてしまうDQNがいるのも事実。 バカボンの歌を聞いて、本当に太陽が西から昇ると信じるようなものだ。
>224 バカボンのように生きていけるヤツならそれでも良し。 人間の発する情報なんてのは常に玉石混合なんだから、自分に必要なものを見分ける能力は自分で身に付けるべき。
>>153 違う意味で頭(・∀・)イイ!!と思った(w
遅いレスですんまそん。
別の会社のヤシが書いたコードなんだけど、すべての行の 65桁目から115桁目までコメントブロックが置いてあるのを見たよ。 っていうか今も手元にあるんだが。 コメントすることもない空行にも、ご丁寧にコメントが置いてある。 /**************************//* */ /*****プログラム *//* */ /* *//* */ /**************************//* */ void hoge( ptr ) /* */ /*<機能><hoge>:**処理 *//* */ /* */ long ptr; /*<入 力>〜ポインタ */ { /* */ int a_i; /* 作業変数 */ int a_j; /* 作業変数 */ /* */ (略) return; /* リターンする *//* 97.03.26 Repair @@ */ ←なんか直した跡にはこんなのがあったりして } /* */ 漏れはこのコード(DOS版)をベースにWindows版を作ったので、このコードをメンテすることはなかったのだが。 このコードを書いたヤシの几帳面さに脱帽したよ。
229 :
仕様書無しさん :02/08/25 01:21
>>227 昔、一本だけだけどイヤミでそういうソース書いた事あるよ
230 :
仕様書無しさん :02/08/25 01:36
>>227 「リターンする」って(w、それにまでコメントはいらねぇーよ!
と突っ込んでおいて下さい。
231 :
仕様書無しさん :02/08/25 02:12
>>227 学校で黒板丸写しにするタイプだな。要領が悪いとも言うが。
>>227 > int a_i; /* 作業変数 */
2回宣言してるのは??
>>232 ごめん、i と j が見分けられなかった。。
234 :
仕様書無しさん :02/08/25 02:20
int a_i; /* Working Variable */
235 :
仕様書無しさん :02/08/25 05:29
>>227 あー、俺、そういうのをインポートさせられたことあるよ。
で、元のソースが更新されたんで差分取ったら、
ほぼファイル丸々差が出た。
「何をそんなに直したんだろう?」とよく見たら、
1行(関数呼び出し)追加なんだが、その関数名が長すぎたため、
その行のコメント開始位置が今迄より2,3桁後になり、よって
全部の行のコメント開始位置を2,3桁下げてやがった。
死 ね よ
小熊ちゃんのコメントを思い出したよ。
なんにも書かないヤシより100倍マシ。
>>237 適切に書く奴の10000000倍クソ。
標準タグライブラリ使うなボケ!!! 素直にスクリプト埋め込め!!! 何がメンテナンスしやすいだ!!! んな訳ねぇだろ!!!
240 :
仕様書無しさん :02/08/25 10:07
嫌味で書いたコードとかあります。 既存のCソースコードの命名規則は別紙の対応表がないと理解できません。 命名規則と言っておきながら規則性はありません。 名前の重複を防ぐためだけに用意されたもののようです。 おれは普通に書いたあとで変数名を置換してリリースしたことがあります。 char *I00, *I0O, *I01, *I0I, *I10, *I1O, *I11, *I1I; でも何も言われません。
241 :
仕様書無しさん :02/08/25 10:32
$cat project_a.h #ifndef _PROJECT_A_H #define _PROJECT_A_H /******************************************************************************** 画面INPUT01制御用変数 ********************************************************************************/ int AIN0110NUM; /* 画面番号 */ int AIN0120NUM; /* 前画面番号 */ char AIN0130PIC10[10]; /* 画面名称 */ char AIN0131PIC10[10]; /* 画面名称(サブA画面) */ /******************************************************************************** 画面INPUT02制御用変数 ********************************************************************************/ int AIN0210NUM; /* 画面番号 */ int AIN0220NUM; /* 前画面番号 */ char AIN0230PIC10[10]; /* 画面名称 */ char AIN0231PIC10[10]; /* 画面名称(サブA画面) */ ・ ・ ・ #endif ←5000行目くらい
244 :
仕様書無しさん :02/08/25 11:38
>>241 5000 行は長過ぎるが、手法としては普通。
…って、よく見りゃグローバル変数かよ!
マジです。 project_a.h が common.h やら system_a.h やらインクルードしてます。 common.h が・・・って調べていくと 再帰的に include してるし。 まあ #ifndef 付いているんで大丈夫だけど。 吐血・・・ 携帯ではありません。 古いシステムをPCベースのシステムで動作するよう C++で焼き直したものです。 初版は1970年代のシステムです。
イベントハンドラからはすぐにリターンしなきゃGUIがちゃんと動かないとか、 プロセッサの不可が無駄に高くなるから、Busyループを使うなとか、 なんどゆっても理解してもらえなかった。 // 俺の書いた箇所。 // リモートホストと接続する。時間がかかるかもしれないので、 // 本体はスレッドとして起動する。 connect( Remotehost host ) { notifier = conneced; connect_by_thread( host, notifier ); } // 同僚が書いた箇所。 boolean connected; // リモートホストとの接続が終了したら、このメソッドが呼ばれる。 connected( Host host ) { connected = ture; } //接続ボタンがクリックされたら、このメソッドが呼ばれる。 onClick( Event p ) { if( p.getName() == "connect" ) { //接続ボタンのとき。 //リモートホストと接続。 connected = false; socket.connect( remoteHost ); while( ! connected ) { } } }
>>247 ちなみに、言語は、何か特定できないように、ちょっとずついじって、書きました。
>248 書き直したってことはつまり、君の書くコードも>247と変わらないってことだな(藁 システム的なことが漏れないようにアレンジするのは意味あるけど、 言語が特定できないようにしても対して意味ない。
多重インクルードしようが、同じ名前の変数名を複数箇所で宣言しようが、 そこで使っていたコンパイラのオプションで自動補正されるようになっているから ど こ か お か し い 場 所 で も あ る の で す か ? コ ン パ イ ラ は エ ラ ー を 出 し ま せ ん よ 。 今 ま で 私 た ち は 8 年 以 上 こ の 環 境 で や っ て き て い ま す 。 と胸を張って言ってた人がいたっけな。 某大手メーカーの携帯電話製造工場内の開発室にて、プロジェクトリーダーのFさん(談) (32歳、工場勤務9年目)
も、もしや、ヘッダでグローバル宣言した変数が複数ファイルに散らばって、 コンパイラが「勝手に」外部参照と認識していることに気がついていないDQNですかFさんは!? それとも全部static? ま、コンパイルエラーがない=問題ないプログラムって思っている時点でDQNさんなんですが。
いや、そこが使っている某海外製の謎のコンパイラには、 「同じ変数名がグローバル宣言されている場合、最初に宣言されたもののみ有効とする」 てな、訳わからんオプションがついていたのだ。 「はあ、なんじゃそれは」と思ったが、それ以上に”その状態”が”ヤヴァい”と 気付いてない(正確にいうと、その程度の基礎も知らない)のがめちゃくちゃ怖かった。 新卒でC知らない状態から、そんなところで外部の開発環境も知らないまま 工場の片隅の開発室で、バカな先輩たちと同じコードの改良ばっかりやっていると、 そういう人間になってしまうんだなあとよくわかった。 いやいや、それよりもそんなソースで運よく動いているような携帯が、韓国や中国や 日本で売れているってのが、ものすごく怖い。
>>254 うへぇ……ひょっとすると携帯関連の開発に放り込まれそうなんだが
漏れもそういう恐怖に出会うことになるんだろうか(((;゚Д゚))))ガクガクブルブル
>254=252 なるほど。変わったオプションがあるんだね。 8年やっても知らないこともあるだろうけど、8年も知ろうとしなかったことが逆に怖い。 まぁ、企業プログラマは基本的に「動けば良い」で育てられてるから、 いかように動かすかはあまり関心ないみたいだよ。 コピペしてシステムの基本部分をサラッと作ってしまうから、プログラムの基本は疎かってことかもね。 >255 あ、漏れも携帯関わったことあるけど最悪。 リーダーから何から考え方がガキ。そしてそのすくつだよ。 ガキのおもりに疲弊して、3ヶ月もしないうちにウテュになりますた。
257 :
仕様書無しさん :02/08/27 09:54
携帯電話開発は、「最先端の現場」と思われがちだが 昔のソースを整理もしないままずるずる引きずり、ギャグではなく工場内で 毎日淡々と働く向上心のない人らがいっぱいいて、仕様は”昔からいる人の脳内”が 基本、スケジュールはその人たちのペースで組まれる、というのが常識。 よって、「春から●●に入社し、この課に配属されました!よろしくおねがいします!」と いう新人にも突然「じゃあ君ここの通信のこのレイヤとこのレイヤの担当ね。仕様書作成から プログラムまで、2〜3ヶ月で終えてね」という無茶なスケジュールを「出来て当然」という思考で 渡したりします。
害虫先のソース見てしまった。 Javaなのだが、 (1) メインのクラス名 Me = new メインのクラス名(); っておい、VBかよ。 (2) boolean ではなく Booleanオブジェクトを返すチェック用メソッド。 メソッド呼んだほうは if( chkParam(xxx).booleanValue() ) { ... } あほか。 boolean返せば booleanValue() なぞイランだろ
259 :
仕様書無しさん :02/08/27 13:15
誰にも気づかれずに 260Get
260 :
仕様書無しさん :02/08/27 13:16
260
>>225 細かいところをついて申し訳ないが、「玉石混交・玉石混淆(ギョクセキコンコウ)」だぞ。
日本語は大切に。
>261 ありがd。勉強になりますた。 以後、注意しますね。
263 :
仕様書無しさん :02/08/29 12:21
#include <stdio.h> #defineNINZU6/* 学生数 */ int main(void) { int i; int goukei = 0;/* 合計点 */ double heikin;/* 平均点 */ int ten[NINZU] = { 86, 67, 46, 96, 54, 72 }; /* 点数 */ for (i = 0; i < NINZU; i++) { goukei += ten[i]; } heikin = goukei / NINZU; printf("学生数 = %d\n", NINZU); printf("合計 = %d\n", goukei); printf("平均 = %f\n", heikin); return(0); }
>>263 ……これ、「うっかりさんのバグコード」みたいな
本とかサイトからの引用だよな?
間違っても企業でこんなコード素で通したりしてないよな?
そうだと言ってくれぇーーーーー(´Д;⊂
265 :
仕様書無しさん :02/08/29 13:05
>>265 笑いのツボがわからないのですが…
こんな俺は逝ってよし?
>>266 (double)でキャストしてないってことか。なんか間違い探しみたいだな。
>>266 -- #defineNINZU6/* 学生数 */
++ #define NINZU 6/* 学生数 */
-- heikin = goukei / NINZU;
++ heikin = (double)goukei / (double)NINZU;
あと、
int ten[NINZU] = { 86, 67, 46, 96, 54, 72 }; /* 点数 */
がハードコーディングになってるところも気になる。が、笑いのツボは
もっと他のところにあるんだろうな…。
270 :
仕様書無しさん :02/08/29 13:47
でべそでございます。その節はどうも。
272 :
仕様書無しさん :02/08/29 14:17
273 :
仕様書無しさん :02/08/29 23:16
return "NULL"; エラー発生時はNULLを返します。 ・・・
#include <stdio.h> int main(int argc, char **argv) { int i; int sum = 0; /* 合計点 */ double average; /* 平均点 */ int record[] = { 86, 67, 46, 96, 54, 72 }; /* 点数 */ int num = sizeof(record)/sizeof(int); for (i = 0; i < num; i++) { sum += record[i]; } average = sum / num; printf("学生数 = %6d 人\n", num); printf(" 合計 = %6d 点\n", sum); printf(" 平均 = %6.2f 点\n", average); return(0); }
- int num = sizeof(record)/sizeof(int); + int num = sizeof(record)/sizeof(record[0]);
- average = sum / num; + average = (double)sum / num;
277 :
仕様書無しさん :02/08/30 00:05
>>223 Pascalのプログラムは「write」する前に「rewrite」する、というのは有名な話です。
>273 間違ってはいない(w
全てのクラスがpublicで 全てのフィールドがprotectedで 車輪の再発明ばかりしている時
実行速度云々する人達ってホントに結果を計測してから言ってるんだろうか? 実際に計測した方法・数値を見せてくれればまだ納得できるし追試も可能 なんだけどな。 効率云々も然り。
うちのデムパ営業が 「このソフトメモリリークしてるんですけど!」 とか電話してくるな〜 貴様はどういう根拠でメモリリークしてるって言ってるのか(以下略
>>280 実行速度を計測しますた!と言いながら、アセンブラコードの命令数を示されてしまうという罠。
>>281 以前「メモリが足りません」のエラーを「メモリリーク」と言ったSEがいたっけな
>>277 それって、リファクタリングのこと?
>>280 全部は検証し切れないでしょう。世間周知の定石的なものなら、追検証せずに
追従するのは仕方がないと思いますが。
世間に事例がなく、Aの方法とBの方法を比較してどちらがよいか判断が付かない
場合は、ベンチマークテストすべきだと思います。
VBしか経験がないんで、Cやアセンブラではどうだかわかりませんが・・・。
286 :
仕様書無しさん :02/08/30 18:10
void strcpy(char *s, char *t) { int i; i = 0; while ((s[i] = t[i]) != '\0') i++; }
287 :
仕様書無しさん :02/08/30 18:21
>>280 普通は、実際の運用と同等の環境作ってテストやると思われ。
プログラム単体の速度測っても仕方ないしね。
>>288 strcpyをわざわざ自分で作ってたら、萎える。
>>289 __cdeclやめて__fastcallにしたかったとか。__inline狙ったとか、
一部のコンパイラなら効果あるけどな。
>>286 なら大抵のコンパイラ
で効果あるけどな。
FJで公開された某strcpyは4バイトづつコピーするという終了条件
が異常なものだったが。。今ローカルドライブ検索中。
俺が自分で作るなら、
char * str_push(char *s, char *t)
{
int i;
i = 0;
while ((s[i] = t[i]) != '\0')
i++;
return s + i;
}
constつけろよ、、
> 4バイトづつコピーするという わからんでもないな。
>>290 速度求めるのなら、多バイト同時コピーは基本中の基本だと思われ。
ところで、ふと思ったんだけど、DMA使ってメモリ->メモリ間の
コピーってできないのかな?
俺もあったぞ。これはひどいってのが。 char st_sign[100]; char ed_sign[100]; void strcpy_with(char *d, const char *s) { strcpy(d, st_sign); strcat(d, s); strcat(d, ed_sign); } strcpy(st_sign, "123"); strcpy(ed_sign, "456"); strcpy_with(p, q); sprintf("123%s456" でなぜ駄目なのかと子一時間。。
>>293 それって、ユーザーモード、カーネルモードの切り替え要るの?
Solarisのbcopyはどう?
>>293 物によっては出来る。
スピード遅いし、普通MMU通らないから、あんましいいことはないと思う。
>>295 普通はいる。
Solarisは、普通にソフトでコピーしてると思う。
それだけのためにDMA使ってるのはあんまり見たことない。
297 :
仕様書無しさん :02/08/30 19:35
>293 DMA が嬉しいのは、CPU と並列に DMA が動いてくれるからだよね。 たかだか RAM <-> RAM 間のデータコピー程度で非同期処理用の コードを書くのは、利用者の苦労が大きすぎるような…。
なるほど。DMA使ってもあまりうれしく無さそうですね。
ところで、
>>293 の多バイト同時コピーはコピーするバイト長が
分かってるときにはSIMD的で速いけど、そうでなければあまり
うれしくないと思った。
>>298 > ところで、
>>293 の多バイト同時コピーはコピーするバイト長が
> 分かってるときにはSIMD的で速いけど、そうでなければあまり
> うれしくないと思った。
なんで?
strcpyとかだと、結局1バイトずつ終端文字を探さないといけなくない?
でもコピーのコストは下がるでしょ。
>>297 CPUバスとDMAが使用するバスが分離されてて、かつDMAコントローラが
乗ってれば並列動作も可能だろうけど、マザボとかそうなってるの?
数バイトの転送ならDMA使う必要ないけど、数kOverならDMAの方が圧倒的に早いよ。
漏れの知ってるDMAとは違うのかな?
>>290 それは32Bitバス限定で使える技かな?
それならおそらく開始判定も異常なものだと思うんだが。
>>302 数 KB 程度だとキャッシュに収まるような気が。
>>300 前にとある32bit環境の逆汗みたけど、4バイト単位で読み書きしながら判定してた。
ビット操作とかを巧みに組み合わせた判定だったよ。
>>284 PascalのRewriteは新規ファイルオープンの命令です。
車輪の存在を知らずに車輪を発明したと喜んでるのが「車輪の再発明」だと 認識してたけど・・ あるのがわかってもう一度開発してるのは強いて言えば「車輪の再製作」かな? 「車輪の再発明」よりは「車輪の再製作」のほうがまだ救いがありそう。 五十歩百歩だけど。
308 :
仕様書無しさん :02/08/31 10:11
社命:既存特許に触れない車輪の発明
310 :
仕様書無しさん :02/08/31 11:05
食うために仕事しているプログラマが書いたコードです。 プログラムどころかコンピュータや情報処理に関して興味無いみたい。 for (i = 0; i <= 7; i++) buf[i] = '\0'; strncpy(buf, "abcdef", strlen("abcdef")); /* 処理 ... */ buf++; strncpy(buf, "ABCDE", strlen("ABCDE")); ---------------------------------- どういう処理してんの?と聞いたら >strncpy(buf, "ABCDE", 5) とやるとゴミが入るから >いろいろやってて buf++ したら上手くいったのでこう書きました。 との返事が・・・動けば理論や仕組みなど無視。 給料安いから転職するんだと。プログラマで職探し。
>>307 車輪自体は誰でも思い付く技術だけど、その車輪を作ろうとすると
そこにはいろんな技術が詰め込まれてるのに気付くんだよな。
312 :
仕様書無しさん :02/08/31 11:18
すこし脱線するが、 新人「PC触るの初めてなんですよー」 おれ「えっ?じゃあ、なぜプログラマを志願したの?」 新人「人に職業聞かれたとき一目おかれるじゃないですかー」 おれ「それだけで?」 新人「だいたい今の新入社員ってそんなものですよ」 おれ「・・・」 今の新入社員ってそんなものなのか? プロ意識とか誇りとかないのか?
>>312 そんな奴は昔から大多数を占めてると思うのだが。
若い会社だと設立当初のメンバーはプロ意識持ったやつが多いかも
知れないけどね。
>>312 最初はそんなもの、でも業界にいるうちに実力をつけて・・・って人は多いよ
もっとも、実力つけても最初からやる気があった人には根本的に叶わないことが
多いけどな
>>312 OLの転職希望で「派遣プログラマー・PC関係の事務」が上位にあるの知らないのか?
理由は「なんとなくやってみたいから」が殆ど
316 :
仕様書無しさん :02/08/31 11:46
かっこいい。 響きがいい。SE。 異性にもてる。 流行っている。 儲かる(MSとかSCEとか任天堂などの情報のみ)。 知的だから。 おしゃれ系だから PC関係のクリエータになろうと思います。
>316 嘘を嘘と見抜ける人でないと(PGになるのは)難しい。
>>317 嘘を嘘と見抜けなかったばかりにPGになってしまう。
俺は嘘を誠にする!
かっこいい。 ・・・知らない人にはそう思えるらしい。ただし、「自分がなればカッコイイ」である 響きがいい。SE。 ・・・SexlEss。せっくすれす。 異性にもてる。 ・・・女性の場合は、確かにそうだな。 流行っている。 ・・・確かに10年前よりは流行っているな。過労死や残業による入院も流行っているが。 儲かる(MSとかSCEとか任天堂などの情報のみ)。 ・・・確かに、会社は儲かるよな。 知的だから。 ・・・確かに、数年前はヲタ用の知識で敬遠してたことだからな。 おしゃれ系だから ・・・汚死ゃ霊の間違いだろう。 PC関係のクリエータになろうと思います。 ・・・逝け。
321 :
仕様書無しさん :02/08/31 13:49
低級PG、SEが多くてアカンわ。 もっと淘汰されるべきだね。 情報工学学んでないやつは氏ね
322 :
仕様書無しさん :02/08/31 14:47
情報工学ってなんですか〜?
ソフトウェアサイエンスではだめですか?
324 :
仕様書無しさん :02/08/31 18:58
>324 ということは職業は将来的には情報工作員になりますか?(藁
>>325 工作するかどうかは本人次第です。
実際に、みずぽ関係や住基関係のデータをネットで配布する
工作員も存在しています。
327 :
仕様書無しさん :02/09/01 00:03
唯一残っているアプリレベルのプロトコル仕様のタイトルが「....(案)」と なってるけど、じつはそれが(案)じゃなくて正式なもので社内の大掃除の時に そのドキュメントをアプリのサポートとは関係ない人間に 捨てられてしまった時...。
コード。 sb.append(i!=0 ? i%8==0 ? i%16==0 ? i%32==0 ? "\n " : " - " : " " : " " : " dump: "); 出力。 dump: 01 23 45 67 89 ab cd ef 01 23 45 67 89 ab cd ef - 01 23 45 67 89 ab cd ef 01 23 45 67 89 ab cd ef 01 23 45 67 89 ab cd ef 01 23 45 67 89 ab cd ef - 01 23 45 67 89 ab cd ef 01 23 45 67 89 ab cd ef
>>328 何でわざわざ解読困難なコードにするかなぁ。
読みやすいコードを書くのが一番だということを小一時間。
で、書き直そうとしたのだが書き直せねぇよぉ。ヽ(`Д´)ノウワァァン
それでも解読。 2項演算子をif文で書き直すとこうだから if (i!=0) if (i%8==0) if (i%16==0) if (i%32==0) sb.append("\n "); else sb.append(" - "); else sb.append(" "); else sb.append(" "); else sb.append(" dump: "); 整理するとこうかな?(自信なし) if(i==0) sb.append(" dump: "); else if(i % 32 == 0) sb.append("\n "); else if(i % 8 == 0 || i % 16 ==0) sb.append(" - "); else sb.append(" "); ちくしょう! 30分以上かかっちまったじゃねえかヽ(`Д´)ノウワァァン
漏れだったらこうかな? 10分もかかったじゃねぇかゴルァ!! switch(i%32) { case 0: if (i == 0) { /* 初回だけ見出しをつける */ printf(" dump: "); } else { printf("\n "); } break; case 8: printf(" "); break; case 16: printf(" - "); break; default: printf(" "); }
case 24を忘れてた。 case 8: case 24: printf(" "); break; に読み替えてオクレ。 でもこう簡単に漏れるなら、case8は捨ててこうかも・・・ default: if (i%8 == 0) { printf(" "); } else { printf(" "); } 簡潔なコーディングはムズカシイやね。
333 :
仕様書無しさん :02/09/01 16:06
なんか泣きたくなってきた。 誰も言わなくても俺がおまえらに言ってやる。 本当にお疲れ様でした。 がんばってればきっといいことあるさ。
さっき辞めてきたよ. まぁ次の仕事が見付かってるから生活の不安とかはないんだけどな. これから毎日PCに触らなくなるんだな, と思うとなんだが寂しいな.
>>334 詳細きぼん。
今までの仕事とか、これからの仕事 (職種) とか。
詳細と言われても無名の会社だしなぁ…それでもイイのなら.
小さい下請会社なんだよね. すでに動いてるCOBOLのシステムとかをC++で書き直したりとか
面倒臭いのはそのままメンテナンスしたりとか…. 主に保守作業. それはそれで大切な仕事だって
分かってるし, 頑張ってはいたんだけど….
ある時, 汚い設計で, 問題点もある業務に携わったのね. で, 上司に問題点を指摘したのに
面倒だとかそんな理由で無視されたんだよね. で, 当然のように納期に間に合わなかったんだけど,
ソイツに責任転嫁されてさ. まぁクライアントに頭下げるのは開発に携わってた人間として当然の
コトだと思うけど, お前も自分のミスを認めろYO!!ヽ(`Д´)ノ…と.
で, つまらなくなったので辞めますた.
転職した先は親会社同じなんだけど, ちょっと系列が違う会社. 前からお誘いはあったんだけど,
その職場で満足してたから断ってたのね. で, いい機会だし会社変えるかぁって.
幸い, まだ若いし…(´-`).。oO(とか言ってる時点でオヤジか…).
今度の仕事は, どっちかっつーと…サポート寄りかな. 実際にクライアントとお話しして…みたいな.
デスクワークと打合せが中心になるはずだから, 前みたいにコード書いたりなんてことはない.
んで,
>>333 を見て, 何だか寂しかったから書き込んだワケだ.
出遅れた。 sb.append(i == 0 ? " dump: " : i % 32 == 0 ? "\n " : i % 16 == 0 ? " " : i % 8 == 0 ? " - " : " "); スタイルはともかく、条件の判定の順番は普通こうだろ。
あ、i%16のところとi%8のところが逆だ。 首つってきます。
>336 なんならもっと言ってやる!! お疲れ様でした。 このスレを見ているみんなに もっともっと いい事がありますように・・・
340 :
仕様書無しさん :02/09/01 17:53
主よ、我らにもっと多くの試練を・・・・。
%を濫用する奴は、%演算のコストを知っているのか?
あんまりソースにこだわるのもどうかと思うよ。 もっと気楽にやろうよ。ストレス溜まるでしょ
>>341 いまどき、そんなの気にする必要も珍しいと思われ。
>>341 そんなことばっか考えてるから、君は仕事が遅いのだ。
345 :
仕様書無しさん :02/09/01 18:54
2のべき乗の剰余演算のコストが低いから使ってんだろ。
>341 知ってる。 で、俺は上の例なら%を使うよ。文字列をフォーマットして出力する部分の方が ずっと余計に時間がかかるからね。
>>345 % 4 なんてのは、コンパイラが最適化してシフト演算に置き換えちゃうよね。
ふつー。
>>347 コンパイラによっては最適化OFFでもシフト演算に置き換えるよ。
もはや最適化ですらないのであろう。
だからそんな細かいこと気にするなって。 禿ちゃうよ
シフトに置き換えるのは / ではないか? i % 32 は i & 31に置き換わるのでは
>>351 いや、化石化したPGは貧民意識がぬぐいきれなから、
そんなことは実践できないだろう。
>>353 それは変われないからだろ。
そんなヤシはもうだめぽ。
世の中はチェンジXXXであふれてるっていうのに。
355 :
ラックヒャレコム :02/09/02 00:12
ボーナスがない当社 夏休みがない当社 勝手に給料からいろいろ引き落とす当社 若い順にリストラしてポンコツだらけの当社 飯場みたいな当社 総会屋みたいな当社
>354 チェンジレッド?
>354 チェン・ジャキー?
>>356 チェンジマンはチェンジペガサスだ。
チェンジマーメイドにどきどきした当時消防の俺。
星矢とごっちゃになってたよ、ごめん……
361 :
仕様書無しさん :02/09/03 13:03
ちょっといい話し。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− あちこちから悲鳴が聞こえる泣き叫ぶ子供。瓦礫と化した家に押しつぶされる日本人。 「助けて…」という声が絶え間なく聞こえている。しかし被災した神戸の住民は、放心 したように黙って座り込んでいるだけだ。あまりのショックに下敷きになっている人を 助けることさえ忘れているのだ。 「今助けるけん。まっとんしゃい!」 こう叫んだのは共に住民として神戸に住む在日韓国人達だった。自分も血を流し怪我を しているにも関わらず救助活動を続けた。 「ぜったい助けるけん。がんばっとー!」こうして懸命な救助活動の末助け出された人 達は1万人以上にものぼる。助けられた中学生の女の子は「在日韓国人の人がいなかっ たら間違いなく死んでいた」と涙を流した。村山首相を始め救助活動の遅れが多くの助 けられる人たちの命を奪った。「助けるのは当たり前けん! 私ら同じ住民やもん!」 オモニ達は目に涙を浮かべていた。
はなしし?
マンセー
365 :
仕様書無しさん :02/09/03 13:19
>>361 みなさん気をつけてください。これは神戸地区の在日が
流しているデマです。実際には、金目のものを探して
奪っていたのが実情です。
>365 おまえが同じ日本人だと言うことが凄く恥ずかしい。
震災直後に運動会のごとく外で駆け回ってたのは実際頭の悪そうなおっさんヤンキーばっかりだったよ。
>>365 在日でも日本人でも人助けるヤツは助けてた. 逆にコンビニ襲ったりするような日本人もいたしな.
何故かニュースにはならないんだけど…. 俺は気が抜けて, 何もできんかった.
370 :
仕様書無しさん :02/09/03 18:47
a++
つか、スレ違いの話やめれ。
>>367 いや、あんたは在日だから日本人じゃないだろう。
帰化したんなら一応日本人だけどな(藁
i = i++
374 :
仕様書無しさん :02/09/04 00:17
memcpy(buf, "nannka-ippai-kaite", "nannka-ippai-kaite"); 推奨だとよ。
376 :
仕様書無しさん :02/09/04 01:47
FORTRAN77 3万行 関数3つ 関数の引数の数・約20 とある大学にあった教授の書いたソース. こういうのって普通?
ごく普通。 繰り返しでもないとに、サブルーチン・関数(いやらしいことに FORTRAN では この二つに区別があるのだ)ば使うち、なんばしょっとか ? 、と言われる。
378 :
仕様書無しさん :02/09/04 12:40
わたしにとって韓国のイメージは「お兄さん」。 昔のお寺や仏像フェチな私にとっては、朝鮮半島から伝えられた文物には「あ りがとうありがとう!」と涙流したいものがたくさんあるので。 だからこそ、というか、あの「教科書をつくる会」でしたっけ?キナ臭くて、 なんじゃそりゃってカンジ。自虐史観を覆したいとか言ってるらしいけど、は き違えもいいとこ。ジギャクじゃなくジジツなの。何なのよ、あのおっさんた ち。 呆れてるバアイでもないので、我々若いモノががんばりましょう。
スレ違いの話を続ける君達には、ゲイツOSの使用を強制する罰を与えます。 ・・・・・・そうですか、もう罰は受けてますか (;´д⊂
381 :
仕様書無しさん :02/09/04 13:37
public void mainFunction() { ... ArrayList textList = new ArrayList(Arrays.asList(this.getHogeList(str))); String[] strList = (String[])textList.toArray(new String[0]) while(...){ ... String element = strList[n]; ... } ... } public String[] getHogeList(String str) { StringTokenizer token = new StringTokenizer(str); Vecter hoge = new Vecter(); while(token.hasMoreTokens()) { hoge.addElement(token.nextToken()); } return (String[])hoge.toArray(new String[0]); } もうね...
382 :
仕様書無しさん :02/09/04 14:02
Sub Workbook_Open() Application.WindowState = xlMaximized ActiveWindow.WindowState = xlMaximized UserForm1.Show ’←コレ End Sub
>>380 ゲイツOSとかいってこばかにしてるようだけど、
きみはそのOSを作れるほどの頭がないことは自覚しているの
だろうか?
>383 スレ違いの話を続ける君達には、○○○○○の使用を強制する罰を与えます。 ・・・・・・そうですか、もう罰は受けてますか (;´д⊂ ○○○○の部分には適当なものを入れてください。 とかしてみると、結局のところ、強制されるところが問題なのだよ。
スレ違いの話を続ける君達には、MS-DOSプロンプトの使用を強制する罰を与えます。 ・・・・・・そうですか、もう罰は受けてますか (;´д⊂
388 :
仕様書無しさん :02/09/04 19:57
>スレ違いの話を続ける君達には、○○○○○の使用を強制する罰を与えます。 >・・・・・・そうですか、もう罰は受けてますか (;´д⊂ ・・・・・ですまーち?
389 :
bloom :02/09/04 20:09
x = (a[0] & 128) | (a[0] & 64) | (a[0] & 32) | (a[0] & 16) | (a[0] & 8) | (a[0] & 4) | (a[0] & 2) | (a[0] & 1); 先生! それは a[0] & 0xff と何か違うのですか!?
>388 うむ。その場合はこうなるな。 スレ違いの話を続ける君達には、デスマーチ(に陥っているプロジェクト)の仕様を矯正する罰を与えます。 ・・・・・・そうですか、もう罰は受けてますか (;´д⊂
>>390 コンパイラってこういうアホなコードも最適化してくれるのかな? ……
movl %ecx,%edx
andl $128,%eax
andl $64,%edx
orl %edx,%eax
movl %ecx,%edx
andl $32,%edx
orl %edx,%eax
.......
だめじゃん > gcc -O3
>>390 元の式は、
x = ((a[0] & 0xff) != 0);
と等価だね。よって、
bool x; なら君の言う通りだ。
int x; だったら、ほんのちょっとだけ違うぜ。
394 :
仕様書無しさん :02/09/05 17:09
char msg[20]; int p; p = 0; /* msgを初期化 */ msg[p++] = 0x00; /* 1こめ */ msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; /* 5こめ */ msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; /* 10こめ */ msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; /* 15こめ */ msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p++] = 0x00; msg[p ] = 0x00; /* 20こめ */ ----------------------------------------------- memset知らんのか?
>>394 forも知らない香具師が知ってるわけない。
>>393 疲れてるな…今日はもう(・∀・)カエレ!
>>394 つーか、
char msg[20] = {0x00};
では?
>>395 その割には++演算子と変数の評価の順序は知ってるようですね。
正直、indexにpなんて変数名をつけるなといいたい。 一瞬ポインタかとオモタよ
>>394 ループ展開。
昔はそれなりに有効だった。
>>396 うん、疲れてた。
>>390 が「(a[0] & 128) || (a[0] & 64) …」に見えてたようだ。
帰りまつ。
>>400 68000とかそのころの話だよね・・・
>400 一行いくらの時代の話?
>>403 キャッシュとか分岐予測とかパイプラインとか無かった時代。
>>403 アセンブラ使えないとプログラマになれなかった時代
>>390 #define a ("abcd"+rand()%4)
とか言うオチじゃあないだろうか。
# それはそれでイヤなコードだが...
407 :
仕様書無しさん :02/09/06 12:20
>404 PA-RISCでも結構効いていましたけどね。というか今試したら Celeron(Mendocino)とかでもそれなりに効きましたが。 キャッシュとかパイプラインは関係ないのでは。Cruesoみたいなアーキテクチャ だったらx86命令をデコードする際にループを展開とかすれば関係なくなるか もしれません。
>>407 それは、キャッシュがでかい&多段になってるからでは?
いわゆるL1キャッシュしかなくてその大きさも小さいときは
ループ展開しないほうが速かったことはある。
409 :
仕様書無しさん :02/09/06 18:27
a = a ;
そういえば、$a, $b, $1, $2, $3 って保存されないんだよね。 a = a;で揮発性・不揮発性を連想したよ
411 :
仕様書無しさん :02/09/06 20:20
小さいループだと、ジャンプしまくりだからねえ。 分岐予測ユニットの性能がでちゃうのかな?
>>412 でしょうね。
パイプラインが長いと、外した時のペナルティも馬鹿にならんし。
↑ s/412/411/
414 :
名無し募集中。。。 :02/09/06 23:43
プログラム書くときに、スゴク綺麗にソースコードを書く先輩が居るんだが、 そういうのは、みんな独学で覚えてるのか? ネストを深くしたりすると、怒られてしまう。変数もパッと見てわかりやすくしろとか・・・・・・
>>414 切磋琢磨。
己を磨くことでし。
独学だけではダメだと思うよ。幸いに綺麗なコードを書く先輩がいるんだから、
盗む アーンド 教えてもらいましょう。
怒られた場合には、どこが悪いのか納得行くまで問い詰めませう。
>>414 基本的に独学じゃないか?
俺は人のソース見て良いと思った書き方を取り入れるようにしてる。
>>415 奥が深い世界だな〜
俺も3年目に入るんだが、まだまだだな・・・・・・・・
技を盗むって、なんか職人の世界に似てる所もあるんだな。
>>416 そうか。今度、参考にしてみよう。
>>416 プログラミング作法とか CODE COMPLETE あたりの書籍を読むのも、一手。
「Writting solid code」もなかなか。
420 :
仕様書無しさん :02/09/07 00:27
まず、藤原から...
>>414 そのコード見てみたいね。
会社のじゃあ無理かな。
自分もなるべく綺麗に書くようにしてるけど、
なかなか納得行くのは難しい。
422 :
仕様書無しさん :02/09/07 01:36
>>421 そやね
なかなか身近に凄いプログラマーはいないね
むしろ先輩からは専門業界のノウハウを盗むほうがいい
ろくな先輩がいない場合は反面教師として見習え
ろくな先輩がいない場合はさっさと転職しる。 相手にしてもいいことないよ。 世の中に凄い人はたくさんいるよ。
>>419 職業プログラマなら必読ですね。
OOPLを使っているならリファクタリングも読みましょう。
>>424 ファウラーの本はいいよね。
ただ「リファクタリング」の前にデザパタを読んでおいた方が良いかも。
「Debugging the development process」も、これまたなかなか(・∀・)イイ!
426 :
仕様書無しさん :02/09/07 05:25
絵を描くようにプログラムを書きましょう。(といっても別に絵には詳しくないのですが・・・) 簡単なことです。 1 先ず全体の構図(構造)を決めます。ここで大事なのは最初からディテールを書き込まないことです。 絵を描くことに例えれば描きたいものの大体の配置を丸・四角等の単純な図形でレイアウトする ような作業に相当します。(いきなり毛や皺を一本一本の描きこみから始める人はいませんよね?) 2 あとはレイアウトした各パーツ(オブジェクトやら関数やら)に対して再び「1」の作業の繰り返しです。 充分に構図が定まったパーツにはディテールを書き込んでいきます。この繰り返しで気付いたら いつの間にか完成しているはずです。 当たり前過ぎですか?でも出来てない人が多いようです。
427 :
バキュ ◆4YMMQI62 :02/09/07 09:57
絵は芸術です。そんな決まった書き方では、おもしろいものはできませんし 世に広まるものなんて出来っこありません。 絵を書くように・・・そう、その場の感情でおもむろに筆をとり、心に描かれたものを 表現する・・・・・・・・ ・・・・・・・・・・・・・・・・というのは出来ている人が多いような気がする。
artist
絵を描くといっても、ダビンチの再来か?と思わせるようなものから ピカソのバッタもんまで幅広いかと。
ある FORTRAN のライブラリで、内部で座標系の変換を行うルーチンがあった。 CHNG( N, XI, YI, XO, YO) で、この N に82 とか 13 とか謎の数字が渡されていた。 調べてみると、 10 の位が入力の座標系、1の位が出力の座標系を表していた。 内部はこんな感じ IF (N-63) 1 2 3 1 処理A 2 IF (N-32) 3 4 5 3 処理B GOTO 1 完全にスパゲッティコード コード量という点では、最適化されていた。 あと全ての GOTO 文の飛び先に そこを通過する N の番号が書いてあったので助かった。
char buf[4]; int a; int b; 〜 処理 〜 sprintf(buf, "%4d", a+b);
>>431 '\0'の分が足りない、とでも言いたいのか?
とりあえずANSI Cの仕様書を嫁。
>>432 a + b の結果が 3 桁で収まってない、とかかな。
435 :
仕様書無しさん :02/09/08 02:45
>>432 \0 の分が足りないのでは?
a == 100, b == 200 だとしたら、"%4d" は " 300" ですよね?
これって buf == { ' ', '3', '0', '0', '\0' } だからやっぱ
足りない気がします。
ANSI C の仕様書って sprintf() みたいなライブラリ関数の規定も
含まれるんですか? 文法だけでなく。
ちなみにネタではありません。
>>435 標準関数とかいう名前で、規定があったような。
#define NUM NUMBER1 #define NUMBER1 NUM_PLUS #define NUM_PLUS UNSIGNED_LONG #define UNSIGNED_LONG ULONG #define ULONG unsigned long; NUM count; ...深すぎ!
439 :
仕様書無しさん :02/09/08 12:28
>>438 ↓ここが特に理解できん
#define UNSIGNED_LONG ULONG
#define ULONG unsigned long;
>438 プリプロセッサも前方参照できないんだよ。だからこうだる。 #define ULONG unsigned long; #define UNSIGNED_LONG ULONG #define NUM_PLUS UNSIGNED_LONG #define NUMBER1 NUM_PLUS #define NUM NUMBER1 それともネタで漏れは釣られたあはれな魚っすか?
DBのデータ型が数字と文字列しかなくて、 しかも数字にすべきIDとか日付とかも文字列で、 それを扱うJavaプログラムの中もString型だらけなんですが、 この職場の連中はアフォですか? それとも俺が物知らずなだけ? ちなみに設計した連中はコボラー。
>>442 ・・・・・・・・・・・・・・・・・・・・・・・・・・・がんがれよ。
char *compute(char *a, char *op, char *b); コボラーが作った関数。 nebiki_kakaku = compute(kakaku, "%", "-20"); こんなのがたくさーん! これからこの開発チームでやっていく自信がなくなりました。
445 :
仕様書無しさん :02/09/08 17:12
ho
446 :
仕様書無しさん :02/09/08 17:16
#define CALL CALL printf("hello, world\n"); 関数の前に CALL 文をつけろというリーダー。 なんでも、そのほうがどこでサブルーチン(wに入っているのか分かりやすいそうだ。
ねー、コボラーって馬鹿ばっかりなの? 元コボラーでもこんなソース書けるぞ!って人いないのかよ…。
450 :
名無しさん@Emacs :02/09/08 18:10
あるヘッダーファイルにそのプログラムに使う変数が 全て記載していた。
452 :
仕様書無しさん :02/09/08 18:38
446くらいの別に良いじゃん。打鍵数がちょい多くなる程度の実害しかないんだし。
>>452 ソフトウェア工学的にも言語処理系にとっても、まったく意味がない規約だから、
やるだけムダだって。
その上司、ほっとくとそのうち「句読点の使い方について」とか内部文書作って
回覧し始めるぞ。
455 :
仕様書無しさん :02/09/08 19:39
>>442 >>444 性能や品質を劣化させることに強いこだわりがあるんでしょうね。
そーゆー人、結構多いですよ。
「劣化」じゃなくて、「向上」の方にこだわって欲しいと思いますけど・・・。
>>450 プログラムミスが深刻なことになる組み込み系ならありうるかも
いや、「深刻なことになる」場合だよ 1命令を実行するごとに全部の変数の変化をトレースして 仕様どおりかどうか確認するとか。
>>450 それももしかして携帯電話系?
446も450も某携帯電話メーカー(大手、ピッチ系)で見たことある
460 :
名無しさん@Emacs :02/09/08 21:26
>>459 普通の業務系だよ。
派遣されてきたプログラマが書いてた。
書き直させたけど。
461 :
仕様書無しさん :02/09/09 00:16
>442 数値ならいざ知らず、日付だとDBMSによって 仕様が違ったりするので、マルチDBなシステムだと 日付を文字列にすることはままあるぞ。
>>461 C の規格には、ライブラリ関数やマクロなども含まれる。たとえば C99 の規格書
である ISO/IEC 9899:1999 では "Chapter 7 Library" がそれ。
亀レスだが、432は「ANSICの規格書嫁」と言いたいだけちゃうんか。 オマエはANSICの規格書読んだのかと問いたい。問い詰めたい。 まぁ、432のような素人はvoidのクツでも舐めてなさいってこった。
>>444 > char *compute(char *a, char *op, char *b);
>
> コボラーが作った関数。
>
> nebiki_kakaku = compute(kakaku, "%", "-20");
>
> こんなのがたくさーん!
>
> これからこの開発チームでやっていく自信がなくなりました。
うひゃー。こりゃー凄いや。
アフォなトランスレータが吐いたようなソースだな。
>>448 いくらでもいるだろ>元コボラ
ただ、人にはふれてはいけない過去ってものがあるんだよ・・・
467 :
仕様書無しさん :02/09/09 16:11
MsgBox "発注NOが入力されてません。" & VBCrLf & "発注NOが入力されていないとデータを登録することはできません。" & VBCrLf & "もう一度、発注書に記述されている発注NOを入力の上で登録ボタンをクリックして下さい。"
468 :
仕様書無しさん :02/09/09 16:34
>>468 なんでchat *なんだろう…(笑).
470 :
仕様書無しさん :02/09/09 20:03
ガ━━(゚Д゚;)━━ソ!
>>446 秘密のヘッダをインクルードするとCALLがとんでもないものに化ける罠
473 :
仕様書無しさん :02/09/09 23:30
漏れのコードを見て新人が3人辞めますた。。。。
(((;゚Д゚))ガクガクブルブル
475 :
仕様書無しさん :02/09/10 08:04
>>472 藤○博文氏の本とかで紹介されてるやつね。
>>467 > MsgBox "発注NOが入力されてません。" & VBCrLf & "発注NOが入力されていないとデータを登録することはできません。" & VBCrLf & "もう一度、発注書に記述されている発注NOを入力の上で登録ボタンをクリックして下さい。"
ユーザに対処方法を教えると言う点ではいいメッセージだと思うが。
直接MsgBoxで書くのが問題か?
477 :
仕様書無しさん :02/09/10 08:30
>>476 複数箇所で使いまわすメッセージなら、定数を使うなり、マスタ化してDBに登録するなりした方がよいと
思いますが、再利用しない、1回ポッキリのメッセージなら、ハードコーディングでも問題ないのではない
かと思います。(反論、ツッコミ求む)
478 :
仕様書無しさん :02/09/10 08:32
>>476 あえて言えば、ハードコーディングの場合でも、一度文字列変数に格納してから
使った方が保守性が高いかな。
そもそもこのメッセージが出ること自体間違いとか。 条件がそろわないなら登録ボタンを押せないようにしろ、と。
480 :
仕様書無しさん :02/09/10 09:40
Declare Function MSAU_OfficeGetFileName Lib "msaccess.exe" Alias "#56" _ (gfni As WLIB_OFFICEGETFILENAMEINFO, ByVal fOpen As Integer) As Long Public Function f_OfficeComDialog(p_Mode As Integer, Optional p_Title As String = "" _ , Optional p_Filter As String = "", Optional p_InitDir As String = "" _ , Optional p_View As Integer = 0) As String 'オフィスで使われるコモンダイアログを開く
481 :
仕様書無しさん :02/09/10 09:53
>>480 斬新なライブラリの使い方だな(藁
しかもそのライブラリは、ファイルサイズが3M以上ある(ww
きっと発注書を登録して印刷するプログラムなんだよ。
>>476 、
>>479 そもそも発注書には 発注NO なんて書いてなくて、
データ登録するときに同時採番されるという仕様。
なので、479が正。<出ること自体間違い
484 :
仕様書無しさん :02/09/10 11:14
>>483 >
>>476 、
>>479 >
> そもそも発注書には 発注NO なんて書いてなくて、
> データ登録するときに同時採番されるという仕様。
> なので、479が正。<出ること自体間違い
ふつー、そういうのはバグっていわんか?
>>479 でも情報を入力するダイアログで登録可能条件が揃うまでボタンが押下不可だと何が
原因でボタンが押下不可なのかわからずに苛々すると思います。なので登録ボタンを
押下された時点でメッセージで「どの情報が不足しているか」というのを通知してやる
(ついでに出来たら、その情報に対応するコントロールにフォーカスをうつす)方が正しい
のではないかと思います。
さらにボタンの押下可否をコントロールするためには入力項目からフォーカスアウト
(又は変更イベント)が発生する度にイベントハンドラで入力項目の正当性チェックを
しなければならないので保守性も処理効率もあまり良くない。一方「登録ボタン押下時
にチェック」の場合だと正当性チェックも一度で済む。
ただ
>>483 ということなら「発注NO」を入力不可項目又は非表示項目にする必要が
ありますが・・・。
>486 入力コントロールの横に、入力チェックの結果を伝える 信号をつければ解決するような。 2段落目に対しては、(ツールバー等の)更新ハンドラに 対する異議申し立てにしか見えないなぁ。
地味に490GET
遅レスですいませんが、
>>172 の「問い合わせ関数」ってどういう風にするのですか?
>>467 Call Msgbox を使わずに、ソース中にステートメントや関数やらを
ごちゃ混ぜにしているのが問題?
とか違う面で考えてみる。
>>487 >入力コントロールの横に、入力チェックの結果を伝える
>信号をつければ解決するような。
そんなダイアログ見たこと無いけどな〜。ますます保守性悪くなってる
ような気がするし・・・。巷のソフトを見てみても確定ボタン押下時に
エラーチェック&エラーメッセージ出力というのが多いように思います。
>2段落目に対しては、(ツールバー等の)更新ハンドラに
>対する異議申し立てにしか見えないなぁ。
そんなつもりは毛頭ありませんが?基本的にモーダルのダイアログの
話をしているつもりですが?
>494 その「保守性」ってなんやねん。 486の2段落目で述べられていることは、 ツールバー等の更新ハンドラを否定する 根拠としても使えるが、実際問題として 「ツールバーのボタンを押したら無効か調べて メッセージボックス出してその原因を教える」 という動作は行うアプリは無い。どう思うか。
>>495 コントロールの数(「信号」とやらを含む)、コードの量(入力項目毎の
イベントハンドラを含む)が増えればその分保守性は落ちますが?
さらに「信号」やらは一般的でないだけに作者以外が保守する場合は
理解に苦しみそうだし・・・。
>486の2段落目で述べられていることは、
(略)
>という動作は行うアプリは無い。どう思うか。
だ〜か〜ら〜「根拠としても使えるが」って勝手に使うなっつーの・・・。
誰もツールバー云々のことは語っていないと書いたと思いますが?
第一そういうアプリはあるって!例えば状態更新の判定処理の一部に
ある程度以上の処理時間を要する判定処理があった場合その部分の
判定処理だけは更新ハンドラに記述せずにボタンを押下してから判定
するようにしたりとか。じゃないとツールバーの状態更新ハンドラなんて
結構な頻度で自動的に呼び出されるたりするんだから、そこに時間の
かかる処理を書いたらレスポンス落ちちゃうでしょ?
仕組みとして同じものなら、同じ条件で使うべき、と言っているだけ。 >ある程度以上の処理時間を要する判定処理があった場合 だったらなぜ、ツールバーだけこういう配慮をするのかと聞いている。
>>497 >仕組みとして同じものなら、同じ条件で使うべき、と言っているだけ。
????
>だったらなぜ、ツールバーだけこういう配慮をするのかと聞いている。
だ〜か〜ら〜「だけ」とはどこにも書いてねーんだけど・・・。第一こんなものは
ケースバイケースだと思います。
>>496 であげた例のようなケースでは一部判定
処理を分ける必要があるし。まぁ判断基準の一つとして処理頻度が高い部分に
時間を必要とする判定処理を入れたら駄目でしょってこと(すごくあたりまえ)。
正直俺には全体的に
>>497 が何を言いたいのかよくわからん。一つだけ確認したい
んだけど
>>497 は
「モーダルダイアログでは入力内容確定の意味を持つボタンは<必ず>ツールバー
のように更新ハンドラで入力項目をチェックしてボタン押下可否の状態を更新すべし。
そしてボタン押下可能ならその時点で全てのチェックが終了しているから、その時点
でエラーメッセージが出るということはあり得ない。」
と言いたいの?仮にそうだとしたらもう何もいうまい。
正直DQN臭漂う
>>497 にはこれ以上レスする気力がありません・・・。それから
このスレの住民さん、スレとあまり関係のない話題を続けてしまって御免なさい。
ふむ。自分で書いた内容を思い出した方がいいと思うな。 >さらにボタンの押下可否をコントロールするためには入力項目からフォーカスアウト >(又は変更イベント)が発生する度にイベントハンドラで入力項目の正当性チェックを >しなければならないので保守性も これに関して、ツールバーの更新ハンドラは、OnIdleのとき(または明示呼び出しの際)に まとめて実行されるわけで、それを見習えば、保守性は低下しないと考える。 >処理効率もあまり良くない。一方「登録ボタン押下時 >にチェック」の場合だと正当性チェックも一度で済む。 については、たいがいのアプリケーションがたいがいの場合で 更新ハンドラの仕組みを用いている以上、そのほとんどの場合で、 「CPUの処理効率」は問題にならないと見る。 また、その文では、「ケースバイケース」も明示されて いなかったので、そう述べたまでである。
500 :
仕様書無しさん :02/09/11 01:45
アプリケーションがオンラインプログラムだと、 確定時に一括チェックするのが効率良いしね。 アプリケーションサーバーで動作するような ものも然り。 チェックに関してはホントにケースバイケースだ。 項目数やDBを参照する必要ありなしでも変わる。 入力形態でも変わるしね伝票打ちだとオペレータ は画面なんて見ないし。 ま、今更ながら当たり前の話を書いてスマソ。
>>486 要は画面設計がスカだった、ということか?
新規入力画面と、編集画面を分けときゃ済む話だろ。
今度こそ500Get
だいぶんずれてるけど、A Boneユーザー?
505 :
仕様書無しさん :02/09/12 17:35
Declare Function MSAU_OfficeGetFileName Lib "msaccess.exe" Alias "#56" _ (gfni As WLIB_OFFICEGETFILENAMEINFO, ByVal fOpen As Integer) As Long Public Function f_OfficeComDialog(p_Mode As Integer, Optional p_Title As String = "" _ , Optional p_Filter As String = "", Optional p_InitDir As String = "" _ , Optional p_View As Integer = 0) As String 'オフィスで使われるコモンダイアログを開く Declare Function MSAU_OfficeGetFileName Lib "msaccess.exe" Alias "#56" _ (gfni As WLIB_OFFICEGETFILENAMEINFO, ByVal fOpen As Integer) As Long Public Function f_OfficeComDialog(p_Mode As Integer, Optional p_Title As String = "" _ , Optional p_Filter As String = "", Optional p_InitDir As String = "" _ , Optional p_View As Integer = 0) As String 'オフィスで使われるコモンダイアログを開く
> 「ツールバーのボタンを押したら無効か調べて > メッセージボックス出してその原因を教える」 > という動作は行うアプリは無い。どう思うか。 アプリはどうだか知らないが、Web系の画面の場合は ボタンを押したら入力チェックというシステムが殆どだな。 # 2chの書き込みボタンもそうだよね。
> 「ツールバーのボタンを押したら無効か調べて 無効ボタンのデザイン予算が取れなかったと思われ。
508 :
仕様書無しさん :02/09/12 21:55
関数は略式にしてまふ。 int main(void) { print_err("なんとかエラー", NULL); } void print_err(char *title, char *msg1) { printf("%s : %s %s\n", title, msg1); }
>>509 printfの書式指定に対して引数が足りないのは誤記?
それともまさかそこがツッコミどころ?違うと言ってくれー(つ´д`;)
>>509 何とかエラー : (null) ダケケケfm
ソース内に唐突に //うんこ
int i; //i int sum; //sum sum = 0; //0 for (i = 1; i <= n; i++) { //for sum += i * i; //sum } //for return sum; //return お前はそのコメントでいったい何が言いたいのかと(略
514 :
仕様書無しさん :02/09/13 23:25
>>513 プログラムで自動生成したんぢゃねーの?
515 :
仕様書無しさん :02/09/13 23:35
>>513 見たら一気に脱力しそうだ。
辞めた奴の嫌がらせじゃねーの?
>>513 それも某携帯電話メーカーで見たことあるな
//キーワードでGrepでもかけるんじゃねえか? 今時Java開発でIDE使わないやつはアホだと思うね。 フリーの奴でも十分使えるぞ…
518 :
仕様書無しさん :02/09/13 23:45
エラーをcatchした後でエラー処理を何もしないのは止めてくれ。 バグを見つけづらくしているだけだ。 そんなことする位だったらcatchするな!!
519 :
仕様書無しさん :02/09/14 00:33
>>518 catch しないとコンパイラが怒るからでは?
…書き方が悪いな「怒られている」とそいつが感じているかでは? か
どんな言語でもそうだけど、「なぜそう設計しているのか」が理解できていないと、
多くの人に理解してもらえるコードを書くのは難しいね。
#ちなみに明日出勤の人、どのくらいいます?
パワービルダーって(−〜−)
>>514 うちの新人に
「ソースにはわかりやすいコメントを…」
と言ったら、そんなコメントを付けたヤシがいたよ(´・ω・`)
携帯で見たって書き込みがやたらに多いけど 携帯の開発ってそれほどまでに糞なの?
>>513 6行目のコメントだけは少し評価できる罠。
524 :
仕様書無しさん :02/09/14 01:31
>>522 知らない方が幸せな事ってあるよな?
ほんとにヒデェのが多いんだぜ。
sourceforge.jp なんかで一本、
オープンのリファレンス実装でも
できねぇかな。
>>524 ハード開発にソフトが追従する開発形態を取る限り、リファレンス実装なんて
ありえんでしょ。
>>522 /*--------------------------------------------------------------------------*/
/*98.06.18SRAM破壊判定メモリ (sram_test_on) for TC35604*/
/*--------------------------------------------------------------------------*/
#pragmasection area mf_data
#defineucharunsigned char
#defineBYTEunsigned char
#defineUINTunsigned short
#definewordunsigned short
#defineulongunsigned long
#define(SRAM_test1_short) (unsigned short)/*破壊判定領域 1*/
#define(SRAM_test2_short) (unsigned short)/*破壊判定領域 2*/
#define(SRAM_test3_short) (unsigned short)/*破壊判定領域 3*/
#define(SRAM_test4_short) (unsigned short)/*破壊判定領域 4*/
#define(SRAM_test1_byte) (unsigned char)/*破壊判定領域 1(バイト)*/
#define(SRAM_test2_byte) (unsigned char)/*破壊判定領域 2(バイト)*/
#define(SRAM_test3_byte) (unsigned char)/*破壊判定領域 3(バイト)*/
#define(SRAM_test4_byte) (unsigned char)/*破壊判定領域 4(バイト)*/
/*--------------------------------------------------------------------------*/ /* 98.06.18 SRAM破壊判定メモリ (sram_test_on) for TC35604 */ /*--------------------------------------------------------------------------*/ #pragma section area mf_data #define uchar unsigned char #define BYTE unsigned char #define UINT unsigned short #define word unsigned short #define ulong unsigned long #define (SRAM_test1_short) (unsigned short) /* 破壊判定領域 1 */ #define (SRAM_test2_short) (unsigned short) /* 破壊判定領域 2 */ #define (SRAM_test3_short) (unsigned short) /* 破壊判定領域 3 */ #define (SRAM_test4_short) (unsigned short) /* 破壊判定領域 4 */ #define (SRAM_test1_byte) (unsigned char) /* 破壊判定領域 1 (バイト) */ #define (SRAM_test2_byte) (unsigned char) /* 破壊判定領域 2 (バイト) */ #define (SRAM_test3_byte) (unsigned char) /* 破壊判定領域 3 (バイト) */ #define (SRAM_test4_byte) (unsigned char) /* 破壊判定領域 4 (バイト) */ ※ズレ訂正
つづき #define SRAM_test1_short_byte(c) (BYTE)(c) /* 破壊判定領域 1(キャスト) */ #define SRAM_test2_short_byte(c) (BYTE)(c) /* 破壊判定領域 2(キャスト) */ #define SRAM_test3_short_byte(c) (BYTE)(c) /* 破壊判定領域 3(キャスト) */ #define SRAM_test4_short_byte(c) (BYTE)(c) /* 破壊判定領域 4(キャスト) */ #define SRAM_test1_byte_short(s) (short)(s) /* 破壊判定領域1 (キャスト) */ #define SRAM_test2_byte_short(s) (short)(s) /* 破壊判定領域2 (キャスト) */ #define SRAM_test3_byte_short(s) (short)(s) /* 破壊判定領域3 (キャスト) */ #define SRAM_test4_byte_short(s) (short)(s) /* 破壊判定領域4 (キャスト) */ メインのヘッダより
529 :
仕様書無しさん :02/09/14 07:29
#define LOW_VALUE "-9999999999999" #define HIGH_VALUE "9999999999999" COBOLERの居る風景。 到底理解できないようなところはWEBでCOBOLの解説ページにアクセスして 頭の中でC←→COBOL相互変換しながらコードを読み書きしています。 おかげでCなのにCOBOLにも詳しくなってきた(涙。
>529 到底理解できなそうなら突っ返せYO! そんなんじゃしまいにゃCOBOLerの軍門に下っちゃうぞ。
531 :
仕様書無しさん :02/09/14 12:43
>>520 わかるよ その気持ち・・・・・
F通などは、以前は、これ(PB)でパッケージを作ってたからな
今もそのパッケージ使ってるユーザーがあるし
532 :
仕様書無しさん :02/09/14 13:40
//ヘッダ #define FLAG_A_MASK 0x04 #define FLAG_A_ON 0x04 #define FLAG_A_OFF 0x00 //本体 if ( (FLAG_A_MASK & a) != FLAG_A_ON ) { ... } if ( (FLAG_A_MASK & b) != FLAG_A_OFF ) { ... }
533 :
仕様書無しさん :02/09/14 15:04
#define NULL_P "" /* NULLポインタ */ 大規模システムの共通関数は、まともな奴に作らせてください。 おながいです、不治痛さん。
>>533 まともな香具師がひとりもいなかったら、どうしますか?
次スレは実情を反映して、 「この会社もうだめぽ、と思ったソースコード」 あたりにするのはどうか。
いや、どうせなら現状を反映して この会社もう不治痛と思ったソースコード なんてのはどうかと。
539 :
仕様書無しさん :02/09/14 18:52
#define CALL goto いまやっているしごと。 source は CALL だらけ。 関数がねーよ。機能ごとにラベルをつけて処理を書く。 どうなってんだって感じ。
え?これってネタじゃなかったの? だとしたら大変だあね、あはは。
541 :
仕様書無しさん :02/09/14 18:59
>>539 もしかしてそれは....
COBOLer様の書いたコードでわ?!
542 :
仕様書無しさん :02/09/14 19:02
$ wc -l main.cpp 10345 $ grep -v '^//' | main.cpp 1701
543 :
仕様書無しさん :02/09/14 19:04
訂正。 $ wc -l main.cpp 10345 $ grep -v '^//' main.cpp | wc -l 1701
544 :
仕様書無しさん :02/09/14 19:23
//戻り値 //1:成功 //2:失敗 //3:バグ int function(void) { ・・・ } 成功、失敗がともに正の整数というのも問題ありだが バグっていうのは絶対あるべきファイルが無いときに返す値。
545 :
仕様書無しさん :02/09/14 20:13
>>182 ノアを八百長と言う人たちへ。あなたたちは人間を信じられない可哀想な人たちです。
どうしてそんな悲しいことを言うのか理解出来ません。
三沢は自著ではっきりと「八百長ではない」と言ってます。なのに、あなたたちは三沢が嘘
をついてるとでも言いたいのですか?
小橋も秋山も大森も、はたまた新日の選手たちも、みんな実はインチキをやっていて、仕事が
終わるとロッカールームでぺロリと舌を出してるとでも言いたいのですか?熱狂して応援
してる客に対して、内心「この単純馬鹿が」と思ってるとでも?
私はそんなことは絶対に信じられません。あり得ない事だと思います。
プロレスラーはみんな一生懸命で、真面目で、誠実な人たちだと思います。私は彼らを信用
します。誰が何と言おうと。
妙な噂に惑わされないで、もっと純粋な心でプロレスを見て欲しいです。お願いします。
>>545 たしかにこんなコードが書かれてた日には、会社を辞めたくもなるわな。
549 :
仕様書無しさん :02/09/15 03:14
550get前夜祭
550 :
仕様書無しさん :02/09/15 03:36
★★★★★ モーニング娘。のマル秘画像を狼で大公開中! ★★★★★
見方はとても簡単!
まず、狼のスレをどれでもいいので開きます。
狼への行き方が分からないという方は、こちらをクリック!
http://tv2.2ch.net/morningcoffee/ 開いたスレッドに、次の内容で書き込みます。
名前欄:ここには何も入れないでください。
メール欄:IDとパスワードを入力します。
ID:musume
パスワード:gekiyaba
IDとパスワードは、それぞれ半角小文字で記入し、半角スペースで区切ってください。
本文には、あなたが見たい画像を示す文字列を記入します。
飯田:iidakaori 安倍:abenatsumi 保田:yasudakei
矢口:yaguchimari 後藤:gotomaki 石川:ishikawarika
吉澤:yoshizawahitomi 辻:tsujinozomi 加護:kagoai
高橋:takahashiai 紺野:konnoasami 小川:ogawamakoto
新垣:niigakirisa
たとえば、石川の画像が見たい場合は、本文にishikawarikaとだけ記入します。
この文字列も、半角小文字で入力してください。
スペースなどの余分な文字を入れると、見ることはできません。
さあ、今すぐ狼へGO!
あんな姿やこんな姿をした娘。たちが、あなたを待っています!!
551 :
仕様書無しさん :02/09/15 03:47
550がこれかよ!
554 :
仕様書無しさん :02/09/16 07:45
555get前夜祭
555 :
仕様書無しさん :02/09/16 11:06
124げt
一応プログラマなんだから、 exit if とか書くのはやめてください。
557 :
じゃんじゃん :02/09/16 13:16
Public Function JAN_CHKDigit(JanCode As String) 'モジュラス10 JANコード用 Dim w As Integer, cnt As Integer, sumJ As Integer, amari As Integer, ANS As String 'ウエイトの初期値をセットする w = 1 '1文字ずつ取り出して、ウエイトを掛けた値を合計していく For cnt = 1 To 12 sumJ = sumJ + CInt(Mid(JanCode, cnt, 1)) * w If w = 1 Then w = 3 Else w = 1 End If Next cnt '10で除算して余りを求める amari = sumJ Mod 10 If amari = 0 Then '余りが"0"の場合はCDを"0"にする ANS = "0" Else '求めたチェックデジットをansへ代入する ANS = CStr(10 - amari) End If JAN_CHKDigit = ANS End Function
558 :
仕様書無しさん :02/09/16 15:11
先輩のVB用文字チェック(1バイト文字か2バイト文字か)のチェック処理 private function check_moji_1byte_2byte( moji as string) as integer open "MOJICHECK.DAT" for output access write as #3 print #3, moji close #3 if filelen("MOJICHECK.DAT") = 4 then function check_moji_1byte_2byte = 1 '漢字 exit function else function check_moji_1byte_2byte = 0 '英語 exit function end if end function ----------------------------------------- 自称VB経験2年で社内では一番VB詳しいということだったが、 これを見た時には唖然としたね。 で、色々つついていくとVB経験2年つーても出向先であまりにも 出来ないためにテストとテストデータ作成しかさせてもらえず、 社内で詳しいと言うのは誰もが認めるデマで、本人だけ自分はスゴイと 思ってたとのこと。 別の先輩に「お前あいつの言うことマジに受けてたんかー。気付けよ、雰囲気で」 といわれてしまった俺達・・・
559 :
仕様書無しさん :02/09/16 16:30
>>557 ツッコミどころがわかんない (ノДT ) 解説希望
560 :
仕様書無しさん :02/09/16 16:37
>>558 優良なソースだと思うが・・?
確実なチェック方法だったらやっぱりそれだろう
俺もVB5年ぐらいやっているが、それ以外はAPI使うしか方法ないと思うぞ?
どこの職場でもそうだった
562 :
仕様書無しさん :02/09/16 16:54
int cnt; //半島のカウンタ
564 :
仕様書無しさん :02/09/16 18:12
565 :
仕様書無しさん :02/09/16 20:05
・ソースファイルの依存関係が無意味に等しいほど沢山ある。 ヘッダファイルを一つでも弄ろう物なら8割以上のソースファイルがリコンパイルの対象となる。 大詰めって時にコンパイル時間は10分以上取られる。 ・文字列のコピーが必ず・・ void func(CString param) { CString data; data.Format("%s", param); // ← なぜだー! } ・構造体を渡す関数の引数が必ず、void*になっている。それだけなら良いのだが、そのまま構造体にコピーする。 void func(void * data) { struct tagPACK pack = *(struct tagPACK*)data; } ・顧客から「開発環境はVisual Studio 6.0」とお願いされているのに、いつまでもVisual Studio .NETを使って開発する人がいる。 以上、我らのチームリーダー(反面教師?)のソースコードです。 チームメンバーたちはそろそろ会社を辞めようと裏で相談しております。
>>561 はあ?
strconv使ってからどうチェックするんだ
全角文字を半角文字にして、その長さが前と違ったら全角か、とか見るのか?
そんな面倒なことやるよりファイルにするほうが一般的だと思うんだが。
567 :
仕様書無しさん :02/09/16 20:38
>566 vbFromUnicodeでシステム既定(Sjis等)にすれば一発やん・・・ ファイルにするなんてぜんぜん一般的じゃないと思うけど(w
>>566 なんで『LenB』をしらんのだ。ヽ(´ー`)ノ
>>571 32ビット化されたVBを知らないの? っていうか、ネタか。
>>571 アホ発見!
LenBしてもVBでは半角文字は2バイト扱い、全角文字も2バイト扱いになるの知らないのか!
中途半端な知識だけで煽ってんじゃねーよ!
プログラム組んだことあるのか?ないだろ?
あ、コボラーかごめんごめん(w
>>560 及び一連のカキコ
・・・あの先輩かな?
からかった時も
>>574 のようなこと言ってたな。。。
先輩なら、「お前ほんっとダメ」と言われて
会社クビになった時の心境を教えてくだちい。
LenB(StrConv("a", vbFromUnicode)) = 1 LenB(StrConv("あ", vbFromUnicode)) = 2 ・・・えっ?こうじゃないの?>560
>576 (゜ー゜)(。_。)(゜-゜)(。_。)ウンウンそうですよねぇ
578 :
仕様書無しさん :02/09/16 23:46
L=LenB( StrConv( S, vbFromUnicode, &h0411)) あたりかな?
激しく乗り遅れた...
581 :
仕様書無しさん :02/09/16 23:50
>>579 &h0411ってなに?そんなのいるの?
なんだ、本当に中学生の集いなんだな。LenBが最初から2を返す仕様だと頭から 信じこんでるのか。571.572参照 もっとも571は10年前で化石化しているワナ
VB知らんのやけど、 > if filelen("MOJICHECK.DAT") = 4 then なんでここは4なん?
>>582 つーか、VBなんてまともな奴は使わなねーよ(w
>>584 > 使わなねーよ(w
ほう、VBユーザですか?(w
587 :
仕様書無しさん :02/09/17 00:01
Label低いなVBやってる奴等は
>581 明示的に国別指定を書いているだけだろ。 日本語環境でしか使用しないならきにせんでいいよ。
>>583 多分改行(CR/LF)分じゃないかな。
ところで、
> function check_moji_1byte_2byte = 1 '漢字
ここって 'function' いるんだっけ?
590 :
仕様書無しさん :02/09/17 00:03
560って馬鹿だな。
592 :
仕様書無しさん :02/09/17 00:09
>>591 あっはっはっはっは
爆笑してしまった。
VB5年もやってんだ(VBなんて5年もやるのかよ)
どこの職場でもなんだ(どんな職場なんだよ)
優良なソースなんだってさ(たまげた)
よくこんなバカが雇ってもらえるよな。
>>592 おや?
ツボにはまった人がいるようです。
>>592 VBを5年もやるのは仕事なら珍しくないけど。
まぁ560は5年もやってあの程度なら氏んだほうがいいね。
ドツボにはまった人ならこの板にたくさんいるぞ。
おいおい、おまえらあんまりいじめるなよ 560自殺しちゃうよ
>>597 自殺はともかく、職業を変えてくれた方が世界平和に貢献しそうな気が。
catch(Exception err){ System.exit(1); } //異常終了 問題はこれがEJBの中に書いてあったってことだな。
>>599 catch文それだけ?
(Exception errってのもやばいな、そいつの理解度)
>>566 560なんかに「はぁ?」って言われた・・・鬱だ。
>>602 士 農 工 商 エタ 非人 犬 猫 プログラマ アニメーター
…プログラマより上じゃん
イパーイ釣れた 満足満足 さあ寝よう
>>604 君が560でもあるのなら、その「イパーイ釣れた」は正解かもしれんが、
558を書いただけなんだったら間違い。君が釣ったのは560だた一人。
560がこの盛り上がりの根だから。
607 :
仕様書無しさん :02/09/17 08:15
あ〜ん、VBなんて使ったこと無いから、せっかくの馬鹿スレなのに乗れないよ〜。
釣ってなんかいないよ!!
>>558 以下たくさん
ひっでぇなあ・・・。
(唖然)
>>608 ワラカシテもらた
先輩クビになってよかったですね
Private Function Check_Str(str1 As String, str2 As String) As Boolean '変数に指定文字が存在するかチェック If str_Cell = str Then Check_Str = True Else Check_Str = False End If End Function
>611 これ、ホントに動いているのか?
613 :
仕様書無しさん :02/09/17 12:28
sage忘れた
>>603 なるほど…
アニメーターよりは上なのか…つД`)
558 の処理は、ディスクに書きこめなかった時の 例外処理がなかったり、他プロセスで同処理が動 いていた時に判定をミスるところが突っ込みドコロ と言うことで良いのでしょうか?
617 :
仕様書無しさん :02/09/17 23:00
#if 1 処理 #else // //#if 1 //旧処理 //#else ////旧々処理 //#endif #endif もうね……… ちなみに、旧々処理が汚い元ソース 旧処理がそれをデバッグしたやつ で、処理が「旧処理が汚いから書き直したもの」らしい 暇つぶしに消してみたら、3000行あったmainが900行近くまで減りますた
>618 と反応してる時点で釣られてまつ(藁
620 :
仕様書無しさん :02/09/18 00:38
VBで作られていたActiveX、プロパティが700ほどあった。 こんなにもプロパティが増えると事前バインディングができなくなるなんて知らなかったよ。
>>617 すまそ
900行でも( ゚д゚)ポカーンなのだが。
main()一個の話じゃないのかな?だったらダブルスマソ。
俺が今見てるソースも #ifdef A社向けオプション #else #ifdef ××機能あり #ifndef デモ用バージョン #else #ifdef バグ票○○対策 #endif #endif #else #ifndef ××年以前の版 #endif #endif #endif みたいな感じで、もう何が何だかわからん。
>>622 このスレではmain()900行なんて驚くに値しません。
うちの職場モナー
625 :
仕様書無しさん :02/09/19 09:29
a * a + b * b = c * c
627 :
仕様書無しさん :02/09/19 10:01
clc iret
628 :
仕様書無しさん :02/09/19 10:57
ピタゴラスの低利?
ブタゴリラの経理
631 :
仕様書無しさん :02/09/19 11:31
>>627 見て昔のこと思い出した。
cmp al,02h
cmp al,0Eh
cmp al,0Ah
je …
リリース直前に退職した馬鹿が残したコード。
あとはテストして出すだけだから、という上司の言葉にだまされた。
見たら中身こんなんばっか。
ビット1がONの時飛ぶべき処理なんだけど、
デバッガで見るたびALの値が違うからそのたびcmp入れたらしい。
意味ない命令はコメントアウトくらいしろ←そういう問題じゃないって。
main1つしかないのに、 9以上もネストされていた… その上、1000行以上。 こんなの改修しなきゃんならんと、鬱になる
633 :
仕様書無しさん :02/09/19 14:15
634 :
仕様書無しさん :02/09/19 15:16
Public Function SisyaGonyu( int as Integer ) As Integer SisyaGonyu = Int( int + 0.5 ) End Function
>>634 integerって小数点が入らないような気がするのですが。。。
637 :
仕様書無しさん :02/09/19 15:46
>634 VBのint関数は変な丸め方をするけど、それを考慮してのコードなのか 単に何も考えていないだけなのか・・・・・ 後者だな。きっと。
Intを使用すると小数点以下切り捨てです。 なので、0.5をたしてIntをすると四捨五入になるという考えではないでしょうか? ・・・Integer型には小数点以下が含まれることはないですが。
今までオラクルとVBと専門にやってきたのですが、 JAVAサーブレットをやることになりました。 しかもいきなり実務です。 こんなんでできるほど、JAVAって簡単なんですか?
641 :
仕様書無しさん :02/09/19 16:57
俺もC知っているだけでいきなりJAVAで8画面を2週間でやれって言われたことあるよ しかも不治某用にカスタマイズされたJAVA環境でね できるできる 頑張れ そして氏(略
JAVAわからん。 もうやめようかな・・・。嫌になってきた・・・。 はげそうやし。この仕事。
その1(Java) a = b +-+-+ c; その2(JavaScript) a = b - - c;
>640 開発環境の整備等は他の人がやってくれるて、仕様も固まっていて、 単純にコーディングするだけ、ってならなんとかなる。 VBをちゃんと使えている人なら、スンナリとはいかないまでも移行は可能。 逆に、Javaが難しすぎると感じるなら・・・ それはVB房の証。逝ってヨシ。
640 名前:_ 投稿日:02/09/19 16:52 今までオラクルとVBと専門にやってきたのですが、 JAVAサーブレットをやることになりました。 しかもいきなり実務です。 こんなんでできるほど、JAVAって簡単なんですか? 642 名前:640 投稿日:02/09/19 17:10 JAVAわからん。 もうやめようかな・・・。嫌になってきた・・・。 はげそうやし。この仕事。 まさに即死(w
>>643 面白い!いろいろやってみました。
int a = 2, b = 1;
System.out.println( a +-+-+-+ b );
System.out.println( a ++ + ++ b );
System.out.println( a ++-+-++ b );
647 :
仕様書無しさん :02/09/19 21:20
>>644 >開発環境の整備等は他の人がやってくれるて、仕様も固まっていて、
>単純にコーディングするだけ、ってなら
突然やってくれ言うて、そんな恵まれた環境になっているプロジェクトが
一体日本のどこにあるというのだ。
>>634 VBよく知らないんですが、関数と同じ名前の変数ってOKなんですか?
>>648 ひょっとしてネタですか?
ともかく・・・これはただの返り値です。
Cで言うreturn
pascalで言うresult
VBなんて、そんな難しいものではないです。
これくらい調べて(勉強して)下さい。
>>648 は int as Integer について言っているのかも。
たしかにこんな(
>>648 )質問する奴とは仕事したくないな。
>>651 たった1行の文で「関数と」を見落とすような奴とも仕事したくないな
Int(関数)とint(変数)のことじゃあないのか?
int main () { // 延々と続く処理 if ( k ) { main (); } else { // 延々と続く処理 }
656 :
仕様書無しさん :02/09/19 23:10
>>655 main()の再帰呼び出しは禁止されてなかったか?
Turbo C++ では出来たが (何時の話や)
>>656 たまたま動く処理系だったんでしょう…。
今ちょっと階乗を求めるプログラム書いたら-W -Wallで警告もなしにしっかり動きました。
659 :
仕様書無しさん :02/09/19 23:34
mainといえども、スタートアップルーチンから呼ばれるという以外に 自分で作る関数と何の違いもないので再帰で呼び出せるのは当然だと思う。
>>659 ・・・・・・・・・・・・・・・読解力ないね。。
読解・・・・・・それはロマン・・・・・。
>>659 main がコンパイル後に「ふつうの関数」としてオブジェクトファイルに格納
されているかは、何とも言えない。
オブジェクトファイルでは、シンボル名が変わってたり、スタートアップルー
チン込みのオブジェクトコードを吐いたり、main を再配置不可能なシンボル
としてマークするく処理系があるかもしれんぞ。
664 :
仕様書無しさん :02/09/20 01:23
>>648 Int(関数)と同じ名前のint(変数)はNGです。
665 :
仕様書無しさん :02/09/20 01:43
変数名がunko、chinko、mankoにはまいったな。
667 :
仕様書無しさん :02/09/20 13:12
For intFor_Cnt = 0 To 10000 intDoEvents = DoEvents If gintCancelFlag = 1 Then End End If Next intFor_Cnt
>>666 (悪魔の数字)
どんな業務か想像して、笑ったよ。
今日はもう仕事やめ。
669 :
仕様書無しさん :02/09/20 13:17
DOUBLE PRECISION GANKIN ,NENRI ,GOKEI INTEGER NENSU GANKIN=1.0E6 NENRI=6.25E-2 NENSU=20 DO 101 J=1,NENSU GOKEI=GANKIN*(1.0+NENRI)**J WRITE(6,*) J,GANKIN,NENRI,GOKEI END
FORTRAN 分かんねえよ。 解説してくれ。
671 :
仕様書無しさん :02/09/20 13:58
>>664 ありがと。
>>650 なんか書き方が悪かったせいか誤解を招いたみたいでスマソ
何について言われてるかよくわかってないのだが、Functionと勘違いしたの?
今M$にうpされてるのはbeta版らしいぞ!
VBネタが多いようだが、VBの仕事をやってるということ自体、会社 辞めるのに十分な理由じゃないのか?
>>675 そうでもないで、行政業務支援システムとかはVB-Oracleで書いたりしたし。
まー会社によるというありきたりな結論になるかな。
677 :
仕様書無しさん :02/09/20 23:33
/* 来歴: * 88年8月8日 ○○ 作成 * 99年9月9日 △△ 改鼠 */ void foo() { double initial_rate = 50.0; /* 開始値を100%から50%に改鼠 */ …… printf("%.3f", result); /* 小数点以下3桁まで出すように改鼠 */ } 「変更を改竄ってゆーなヽ(`Д´)ノ 」 「いや、よく見ろ! 『かいざん』ですらないぞ」
>>676 なんでVBだと辞めないといけないんだ???
意味不明。
680 :
仕様書無しさん :02/09/20 23:56
#define offsetof(a , b) (&(((a*)0)->b)) こんなマクロ作っているやつがいたぞ。どーにかしてほしーよ。 何がしたいの?
>680 作ったほうも読めないほうもワラタ
>>680 まじっすか? #include <stddef.h> すればいいだけなのにね。
stddef.hを知らんのかな?
>>634 四捨五入、無問題だたーよ。
SisyaGonyu(3.00)=3
SisyaGonyu(3.10)=3
SisyaGonyu(3.20)=3
SisyaGonyu(3.30)=3
SisyaGonyu(3.40)=3
SisyaGonyu(3.50)=4
SisyaGonyu(3.60)=4
SisyaGonyu(3.70)=4
SisyaGonyu(3.80)=4
SisyaGonyu(3.90)=4
Private Sub Form_Load()
Dim d As Double
For d = 3 To 4 Step 0.1
Debug.Print "SisyaGonyu(" & Format(d, "0.00") & ")=" & SisyaGonyu(d)
Next
End Sub
Public Function SisyaGonyu(ByVal i As Integer) As Integer
SisyaGonyu = Int(i + 0.5)
End Function
>683サン 実はInteger型にDouble型を入れると勝手に四捨五入される罠。 Double = 3 Integer = 3 Double = 3.1 Integer = 3 Double = 3.2 Integer = 3 Double = 3.3 Integer = 3 Double = 3.4 Integer = 3 Double = 3.5 Integer = 4 Double = 3.6 Integer = 4 Double = 3.7 Integer = 4 Double = 3.8 Integer = 4 Double = 3.9 Integer = 4 Private Sub Form_Load() Dim i As Integer Dim d As Double For d = 3 To 4 Step 0.1 i = d Debug.Print "Double = " & d & " Integer = " & i Next d End Sub
>>683 SysyaGonyu()に入った直後、Int( i + 0.5)の前で、iの値はどうなってるの? VB使ったことないんだけど。
暗黙の型変換?
>684 知らんかった。便利だけど使うに使えない。 i = d '自動的に四捨五入される とかコメントにかいときゃいいかな。 負数でも問題無しでした。
int aa[] = { 2, 3, 88, 4, 10 }; /* []の後に数値を入れなくても登録できるバグがある模様 */ このコメント見た瞬間、叫びたくなった。
>>677 そのソース書いた奴は「かいそ」とか読んでいるかも知れんな。
かいねずみってなに?
>>690 ○改鼠
×改竄
わざわざねずみで変換したぽいからネタかも・・・
「かいちゅう」と読んでいた、に一票。
かいきゅうと読み間違った人は見たことあるが変換すると改窮 多分読めなくて似てる漢字を探しただけだと思ふ
新たな2ちゃん語が誕生したスレはここですか?
ある先輩から受け継いだjavaのコード: 関係ない所も全て一括でtryで囲み、何かの例外発生→即プログラム終了。エラーと表示するだけで、 どこで何の例外が起こったのかわからない。 メンバは全部public。 引数のチェックをしてない為、ちょっとでも間違っていると例外発生。 IOエラーもnull例外も全て同じ例外を発生。
697 :
仕様書無しさん :02/09/21 17:13
>>678 プライドのあるエンジニアならVBなんかやらないってことだら
実際「VBやるくらいだったら会社辞めます」っていう奴はよくいる
VBやるくらいだったらCOBOLやってやる。
50歩100歩。50歩も違うやんけ!! むしろ、めくそはなくそ。
>>697 それは仕事に対するプライドが無いわがままなプログラマだよな
社会人じゃなくて趣味で仕事しているようなヤツ
もしくはVBは4ぐらいの頃に少し触っただけで、もう5も6も理解したと思い込んでいるやつ
>>697 適材適所なんでVBだからダメ、とはおれは思わないがな。
実際ささっとコントロール貼り付けて、複雑なロジックとか
複雑なデータ構造のないプログラムだったら
VBを使うべき分野じゃないかな。
もっともおれはVBが嫌いだから、
「VBやるくらいだったら会社辞めます」というやつの気持ちはよくわかる(w
>>697 本当にプライドのあるエンジニアなら道具が悪くてもどうにかしようと思う
「意志の堅い本物のプログラマなら、どんな言語の上でも FORTRAN を書ける」
>>700 そうそう 社会人なんだから「VBでもお茶組みでもコピーでもなんでもやります!」
ぐらいの意気込みがほしいよな
>実際ささっとコントロール貼り付けて、複雑なロジックとか 複雑なデータ構造のないプログラムだったら VBを使うべき分野じゃないかな。 まさに正論。さらにそういう分野の仕事なんかやりたくないのも事実。
>>697 俺別にそういうプライドないからいい道具を使いたい
数年前、ソープの待合室で業界の人間と思しき二人組みの
「だからVBなんて誰でもできるんだからそんなやつ採用するなっていっただろ!」
「すみません、部長」
という会話を聞いて悔しくて悔しくて個室でも立たなかった。。。。
その後俺は必死でC++を勉強して、今じゃそれなりに周りからも認められそれなり
の仕事をある程度自分で選べるようになった。
VBで業務アプリ作ってた頃に比べると毎日の技術的な充実感はほんと天と地
ほどの差があるよ。
あの日ソープで無駄にした数万円はむだじゃなかった。(W
707 :
仕様書無しさん :02/09/21 18:59
VBの適所つったら、「プログラムが本職じゃない人間が外注に出すほどじゃない 自分の仕事の一部のコンピュータ化のために使う」って所じゃないの?
「プログラムが本職じゃない人間」向けにいろいろ言語が つくられてきたけど、死屍累々、って感じだね。 結局、「本職じゃないけど、本職並みにデキル」ヤツでないと 使えない、つーか。
709 :
仕様書無しさん :02/09/21 19:07
>>708 そういや、「ハイパーカード」ってまだアップルは売ってるの?
>>702 仕事を選べる立場にあるなら「VB 嫌だ」っつーのもアリだとは思うけどね。
ただ、それが偉いかどうかは別問題。
VBは誰でもできる超高級言語
>>711 でも本格的なアプリを組もうとすると、やっぱり本格的なプログラマが必要に
なる。(っつか C++ の方が楽)
簡単なプログラムは簡単に、難しいプログラムはメンテナンス不可能にする
言語。それが VB
>>710 何らかの理由があってVBに決まったものを「俺は嫌いだからやだ」とかいうのは
社会人として問題外だとは思うけどね。
717 :
仕様書無しさん :02/09/22 03:26
アプリケーションのログを解析して統計するクラスの名前が LogAnal だった時。
718 :
仕様書無しさん :02/09/22 04:26
String str[] = {"methodA", "methodB", "methodC"}; for(int i=0; i<str.length; i++) { dispatch(i); } public static void dispatch(int id) { switch(id) { case 0: methodA(); break; case 1: methodB(); break; case 2: methodC(); break; } } なんじゃそりゃ。
ホントになんじゃそりゃ。
>718 たたいをつかえ
>>718 そんなソース書く奴いるんだ…。素直に3つ呼べばいいのに…。
>>699 50バイト 100バイト、
50ステップ、100ステップ、
50人月、100人月
この間外注で作成したPG(ACCESS)を実行しててえらく時間がかかると思ってBreakしたら こんなコード書いてました。 Dim DB As Database Dim RC As Recordset Set DB = CurrentDb() Set RC = DB.OpenRecordset("ワーク") 〜(中略) Do Until RC.EOF RC.Edit RC.Delete RC.MoveNext Loop 一万を越すようなデータにこんなことすんな!いつまでたっても終わらん!
724 :
仕様書無しさん :02/09/22 11:51
たまに、手段と目的を区別できないやつがいるよね。 言語はあくまで目的を達成するための手段であり道具。 適材適所が原則。 VBを批判するやつは、大抵VBを知らない。VBがろくな言語ではないとは確かに俺も思うけどね。
>VBを批判するやつは、大抵VBを知らない。VBがろくな言語ではないとは確かに俺も思うけどね。 見事な自己批判だ
全然知らないか、初心者でもできる標準的な機能しか知らないんだろう。 でも2ちゃんとかで叩かれてたり、会社の先輩が「糞」というのを聞いて理由もわからず「禿同!」とか言っているのが殆どだと思う
727 :
仕様書無しさん :02/09/22 12:54
>>726 いろんな言語を極めた上で俺はVBを選択する、ってならいいが
そんな奴はいるのか?
エンジニアのプライドが許さないんなら、 OS作るところから始めれば良いじゃん。 既存のOSの上で言語がどーのとか言うのは エンジニアのプライドは許してくれるんですか?プ
エンジニアのプライドが許さないんなら、 言語作るところから始めれば良いじゃん。 人が作った言語や環境を極めただの、どーのと 言うのはエンジニアのプライドは許してくれるんですか?ププ
エンジニアのプライドが許さないんなら、 会社つくるところから始めれば良いじゃん。 人の作った会社でVBだったら嫌だとか 言うのはエンジニアのプライドは許してくれるんですか?プププ
エンジニアのプライドが許さないんなら・・・ あぁ、飽きた。
VBでも作れるような簡単なプログラムならVBで作ればいい。 そういう意味での適材適所はみんなわかっていること。 ただしVBでも作れるような簡単な仕事はやりたくない っていうのが みんなの本音
734 :
仕様書無しさん :02/09/22 13:35
>>723 細かい知識はともかく、処理に掛かるコストの目安ぐらいは感覚的に
把握していないと寒いですね。
そもそも、その程度の常識は、VBマガジンなり日経ソフトウェアなり
を少しでもかじっていればわかりそうなものだ。
ちなみに、それを書いた椰子って、田舎の害虫さんですよね。
(首都圏や近畿だったら、そんなDQNを飼ってる会社がいるとはちょっと
信じられない話ですが・・・)
>>734 たくさん居るよ。ろくすっぽ研修もやってない新人、他社のプロジェクトに
突っ込む会社とか。
736 :
仕様書無しさん :02/09/22 13:42
>>735 ある意味、そんなDQN害社に仕事を発注する会社も同罪。
737 :
仕様書無しさん :02/09/22 14:07
隣の国に行くには飛行機を利用するが、隣の町に行くにはバスで十分。 それが適材適所。 バスも飛行機も両方必要なのだから、飛行機のパイロットに対して バスの運転手は引け目をかんじることは何もない。 VBプログラマの皆さんも誇りを持ってがんばってください
自己批判しる!!
>>734 いるよ。実行してほったらかしにしてると、OSの仮想メモリまで限界超えました(w
ソースみたら数十万件のレコード全部読み込んでる。
さらにウィンドウをリサイズしたら使われてないボタンが出てきたり。
そのシステムをチューニングして機能拡張してくれって仕事だったけど断りますた。
>>729-731 は、もうちょっと最適化について勉強すべきだな。
この程度の最適化ができずに毎回毎回同じこと書いているバカな先輩とか729とか731とかが多いんだよねえ、全く。
プライドよりも文章整理の技術を学ぼうね。
ネタニマジレス(・∀・)カコイイ!
>736 というよりは、自社のプログラマで賄えないから害虫雇ってるのに、 それに文句を垂れるバカがいるのが問題。
>>740 最適化と文章表現を混同しているバカがいるな。
こういうヤツは、仕様書とかで
・ボタンAを押す
・ボタンBを押す
・ボタンCを押す
ってのを、「ボタンABCを押す」とか書いちゃうんだろうねぇ。
∧_∧
>>743 って例えが下手だね~
∩´∀`∩)
\ )
( ( /
((_)
>>742 > 文句を垂れるバカがいるのが問題。
俺のことを言ってるんですか?
746 :
仕様書無しさん :02/09/22 16:19
>>743 ABC全部いっぺんにやっちゃうのはせっかちと思われ。
時間を掛けて仲良くなるべし・・・って、何の話やねん!!
つうか、いつの時代のギャグだ!?
(「はじめての・・・」と同レベル)
打つ山車脳・・・。
747 :
仕様書無しさん :02/09/22 16:29
>>739 あのさ、俺、某大企業の下請け仕事でさ、
最初の仕様の1万倍くらいのデータ量を扱う仕様に、最後には変更の
嵐でなった。
その大企業はSEが馬鹿なので、頻発するんだって、そういうことが。
だから、最初はデータ量が凄い少ないって申し出だったんじゃない?
それで低コスト+短期間で引き受けたら、馬鹿が仕様変更乱発、自分の
データ量見積もりの馬鹿さをカバーするのに変なプログラムにって
ケースだろ、それ。
748 :
仕様書無しさん :02/09/22 17:47
>>734 ねcや不実宇・常陸の名前を関したソフト会社の正社員ならメズラシくもない
749 :
仕様書無しさん :02/09/22 17:49
仕様変更頻発はよくあること。別に珍しくともなんともない。 気に入らない害虫にはわざと仕様変更をするぜ。 それで文句いうような害虫は切るけどな。 このご時世だからな、害虫は切られないように、何でもするぜ。これが現実。
751 :
仕様書無しさん :02/09/22 18:18
なーこたーない。 背任ってのは、会社に重大な損害を与えなければ成立しない。 害虫を甘やかすとろくなことが無い。害虫には常に緊張感を持ってもらわないとな。 やつらは常に締めてないとすぐに手抜きをするのだ。 むしろ害虫を締め上げて自社に利益になることをしているんだよ。 逆に褒められるってものだ。
752 :
仕様書無しさん :02/09/22 18:27
>>751 なんで外注を締め上げると、自社の利益になるの?
お前、プロジェクト管理を成功させたことないだろ(w
みじめだね
753 :
仕様書無しさん :02/09/22 18:29
>>752 > お前、プロジェクト管理を成功させたことないだろ(w
> みじめだね
いや、それ以前に、
>>751 には友達がいないと見た。(w
754 :
仕様書無しさん :02/09/22 18:33
>>752 ばか、逆だよ。
おれは、どん詰まりの瀕死になったプロジェクトをいくつも蘇らせた。
プロジェクトを成功させるってのはな、並大抵のことでは無いんだよ。
プロジェクトをコントロールしたことの無い害虫には理解できないこと。
755 :
仕様書無しさん :02/09/22 18:35
>>753 職場は仲良し倶楽部では無いんだよ。君は甘ちゃんだな。
プロジェクトを成功に導くまでの道のりは、戦場なんだよ。
その心構えが無ければ、プロジェクトをコントロールすることなど不可能。
756 :
仕様書無しさん :02/09/22 18:43
>>751 >やつらは常に締めてないとすぐに手抜きをするのだ。
最初からなめられるなんて、すごく情けないリーダーですね。
ちゃんとした外注を見抜けないのかなあ?
757 :
仕様書無しさん :02/09/22 18:45
>>755 戦争の勝敗は、開戦する以前に決まっている。
勝ちに偶然の勝ちあり、負けに偶然の負け無し。
758 :
仕様書無しさん :02/09/22 18:50
>>756 >>757 実際にプロジェクトをコントロールしたことのない害虫は、やっぱダメだな。
最近は文句ばかり言って実行力ゼロの評論家気取りの無能ばかり増えて困るぜ。
759 :
仕様書無しさん :02/09/22 18:52
なんか1名、暇なやつが一人で頑張っている模様
761 :
仕様書無しさん :02/09/22 18:56
>>759 そんなんだから君はダメなんだ。
実社会は矛盾だらけ。きみはそんなこともまだ判らないのか。
762 :
仕様書無しさん :02/09/22 18:57
763 :
仕様書無しさん :02/09/22 18:58
>>758 アジャイルを嫁!
こまえのやっていることは「管理ごっこ」だ!
764 :
仕様書無しさん :02/09/22 19:02
>>763 何も知らない子供は引っ込んでいなさい。
キミは大規模なプロジェクトをコントロールし、無事に出荷まで持っていった経験があるとでも言うのか。
キミは批判家気取りの無能の典型。口先ばかり、文句ばかりで実行力がまったく伴わない典型。
自己批判しる!
マ板もWebProg板に近づきつつあるな。
767 :
仕様書無しさん :02/09/22 19:05
>>764 おまえがプロジェクトを成功させてるなんて思い上がるなよ。ボケ。
周りが頑張ってるんだよ。おまえみたいな無能管理者のせいでな。
(´-`)oO(なにが楽しいんだろ...)
770 :
仕様書無しさん :02/09/22 19:10
>> 764 ちなみに、ちみの言う「大規模」とは 何人月のプロジェクトなんだ? そして、ファンクションポイントはいくつだ?
そもそも、規模がでかいほうが偉いと思ってる時点で無能。逝ってよし。 ソフトは人が作るんだよ。人を大切にしない管理なんてあるものか。ボケが。 給料泥棒。 そいつを雇った会社も、その下に着いちまったヤツも不幸だな。あーやだやだ。
ステップ数でなら答えられるぜ。 ファンクションポイントなんだそりゃ?
773 :
仕様書無しさん :02/09/22 20:05
害虫は使い捨て これ資本主義社会の常識
なんだ、もう燃料切れか。
775 :
仕様書無しさん :02/09/22 20:09
未熟さまるだしだな。
776 :
仕様書無しさん :02/09/22 20:17
世の中には二種類の人間しかいない。 害虫を管理する側と害虫として管理される側 おまえは今どっち側にいるんだ。そしてどっち側になりたいんだ。
777 :
仕様書無しさん :02/09/22 20:21
君はどこにも属さず管理もされていない自由人?
スナフキン萌え〜
>>776 ものごとを二極でしか考えられない人ですか?
あいにく世間はもうちょっと複雑にできています。
嗚呼人生スレ違い
陰険な仕様変更をかけて開発費を無駄にしてる管理者がいるスレはここですか?
s/外注/PG/ ならたまにみかけるな、そういう意見。笑い
ファンクションポイントも、アジャイルも知らずに 自分を管理者だと思っている給料泥棒がいるスレはここです。
784 :
仕様書無しさん :02/09/22 21:55
>>783 そんな言葉を知っていたって大規模なプロジェクトをコントロールして出荷まで
持っていくことはできないんだよ。
口先だけの実行力が伴わないおこちゃまは引っ込んでいなさい。
>>784 おまいのような管理者が出荷した製品なんてバグだらけに決まってる。
そんなひどい品質の製品を出荷したくらいで威張るな。
どうせ顧客からのクレーム処理も外注にやらせるんだろ。おめでてーな。
たまには自分でクレーム処理してみろ。
まだやってる......
連休の中日にこんなところで罵りあってるのが まともな社会人のわけないだろ。ふつーに考えれ。
>>788 両方とも騙り厨だなんて水差すようなこと言うなよ
連中は楽しんでんだからさ
>>788 平日にやりあってるよりは、幾分マシと思われ。
>784 あはは。その言葉をプログラマに当てはめたら凄いプログラムになるね。 必要な知識を身に付けなきゃいけないのは管理職だって一緒でしょ? >788 まともなプログラマならここで遊べるのは休日なのが普通かと。 しかも今日は雨で外出るのも億劫だったしね。
この会社辞めようと思ったソースコード この会社辞めようと思ったソースコード この会社辞めようと思ったソースコード この会社辞めようと思ったソースコード
このスレ熱い!!
>>737 同感
再帰処理などVBが苦手な部分はC++でDLL化してユーザインターフェースはVB6でよくやってます。
やっぱり開発効率とOSまで絡むような深刻なBUGの出にくさはVBの方が強いですね。
あとVBは覚えやすいから開発経験のあまり無い奴でもそこそこ使える。
でも最近のVB.netってどう?ちょっとC/Java/C#を意識しすぎて扱いづらくなったような気がします。
これならCでやってもあんま変わらないような...
ま、そうなっても元々コードを分化してるから一からやり直しにはならないけどね。
いちいちローカル変数の前にwk_って付けるバカ 超うぜー、意味ねーよ
本人に言え!!(・∀・)
>>794 この業界入る時にそれぐらい覚悟しとけよ、脳なしがよ。
全員が自分と同じ組み方だとでも思ってんのかカス。
, - 、 __ _/∠二、 , -<ヾ.{ .∠二_ ̄_`マ__ ,ィ'´ ,、` ´, - 、 ` ー- 、 `≧、 /′ / , , . 、\ ヽ _  ̄`マ__ ∠, '/ / , ' , ! . 、、ヽ ヽ、 、 ` ー- .∠  ̄ ` ' ー- 、 //,' / /ー-- ト、` 、-‐‐ヽ._ヽ ` 、 、 ___> _ _ ..ヽ /! i /,T! /=、\! ヽヾゝ=ミ、`ヾ ヽ \`ー ¬’ ̄ , ' │l ! { !レ1! | ` ヽ.| 丶`‐y、 \ ` < r‐'" | | ト、ヽト'〈 t.ー 1 !ー ッ'.〉∧ナ 、 `、ー - ヽ_ `゙''ー─ 1'|/.ヽト、ゞ、" ̄ _'_  ̄" /_,ヘ` 、`ニヌ  ̄ , --------- ヾぃXヽ、 ` ,.∠_ゝー-ヽ'`′` _/ /.::::`:/ミ`、r、. ..イ/ />;'ニ.=:‐、  ̄7 でも、変数が全部グローバルなのとかは /ー‥'7 ‘\ ヾ.二=彳_∠∠:_´:.:.:.:.:.:.:.:.ヽ | よくないと思います。 ヽ''" ̄} ` `'y┴<´ _, .‐1:.:.:.:.:.:.:.:.:.:i \_ ヽ. ` ーfO:.:!「  ̄ {ヽ.:.:.:.:.:.:.:.:| 丶---------- ゙i`゛ゝ` _ゝ:_;リ ー- r'` 、ヽ:.:.:.:.:.:| ‘┬ヽ-‐iVハ、 r' ヽ`ニニフト-、、 | ト;' |レメ、 ー-イ /ノノ:::} ト、
798 :
仕様書無しさん :02/09/23 05:34
害虫って要するにメーカーの奴隷のことだろ。 なんか勘違いしているヤシがいるな。 取り扱いは当然ながら、使い捨て。 メーカーの正社員でさえ厳しい状況なのに、害虫なんてただの道具さ。
>>796 自分のことを言われてカチンと来ましたか(^^)
800 :
仕様書無しさん :02/09/23 06:25
>>794 スコープを使い分けできないヤシの免罪符ですな
802 :
仕様書無しさん :02/09/23 07:03
同僚が上司に「なんでわかんねーんだよ!給料泥棒が!」って言われ 会社を次の日から来なくなった時、いい機会だから俺も一緒に逃げよかなとおもた。
>>798 仕事を出す側からすれば、大手企業のバックがあるため単価が高いにも
関わらず、仕事の質が低いところに頼んでる余裕はない。企業名だけで
食っていける時代は終わった。
正社員って要するにメーカーの奴隷のことだろ。 なんか勘違いしているヤシがいるな。
805 :
仕様書無しさん :02/09/23 09:26
害虫は簡単に言えば、江戸時代の小作農、貧農ってヤシよ。 まさに生かさず殺さずだね。人を大切にしないととか寝ぼけたこと言ってるヤシは人生の負け犬。
まだやってる・・・ よほど日頃の鬱憤が溜まってるんね。 プログラマーってカワイソ
この会社辞めようと思ったソースコード
管理職は簡単に言えば、江戸時代の小作農、貧農ってヤシよ。 まさに生かさず殺さずだね。人を大切にしないととか寝ぼけたこと言ってるヤシは人生の負け犬。
ミントたんらぶ
↓ウンコ関係の仕事に就いてる奴
うんこまん○参上 ま○こ関係の仕事に就いてる奴 ↓
49 名前:仕様書無しさん :02/09/23 00:35 上司 「ハッキリしろ、結局納期には間に合うのか? trueかfalse、booleanで答えろ!」 プログラマ「 NullPointerException ... 」 } finally { 「とにかくやれ!」 }
for(i=0;i<top_menu_count;i++){ j = start = MenuPoint[i]->GetMenuItemCount() - 1; for(;j>=0 ;j--){ STAT = MenuPoint[i]->GetMenuState(j ,MF_BYPOSITION); if(STAT & MF_SEPARATOR ){ STAT = 0; if(j != 0){ STAT = MenuPoint[i]->GetMenuState(j-1 ,MF_BYPOSITION); } if((STAT & MF_SEPARATOR)||(start == j)||(j == 0)){ MenuPoint[i]->DeleteMenu(j, MF_BYPOSITION); j--; // もしかしたら3本連続しているかもしれないので if(j != 0){ STAT = MenuPoint[i]->GetMenuState(j-1 ,MF_BYPOSITION); if(STAT & MF_SEPARATOR){ MenuPoint[i]->DeleteMenu(j, MF_BYPOSITION); j--; // もしかしたら4本連続しているかもしれないので... if(j != 0){ STAT = MenuPoint[i]->GetMenuState(j-1 ,MF_BYPOSITION); if(STAT & MF_SEPARATOR){ MenuPoint[i]->DeleteMenu(j, MF_BYPOSITION); j--; if(j != 0){ STAT = MenuPoint[i]->GetMenuState(j-1 ,MF_BYPOSITION); if(STAT & MF_SEPARATOR){ // もしかしたら5本連続しているかもしれないので...
j--; if(j != 0){ STAT = MenuPoint[i]->GetMenuState(j-1 ,MF_BYPOSITION); if(STAT & MF_SEPARATOR){ // もしかしたら5本連続しているかもしれないので... MenuPoint[i]->DeleteMenu(j, MF_BYPOSITION); i--; } // これ以上はループにしてください。 } } } } } } } } } ,,ノ'⌒ヽ、, (;;;:..○.,..:(;;)<ちょっとまてやゴルア  ̄ノ ( ̄ アッヒャッヒャーー ∩(゚∀゚*) \ つ (, ( "''ヽ)
ウザイヤシがいるなぁー。
街中を大音量で薀蓄垂れ流す房と一緒だな。逝ってよし。
>>737 がイイ子と逝った。
817 :
仕様書無しさん :02/09/23 16:00
/* WinSockの初期化を行う */ wVersionRequested = MAKEWORD(1, 1);/* バージョン 1.1 を要求する */ nErrorStatus = WSAStartup(wVersionRequested, &wsaData); if (atexit((void (*)(void))(WSACleanup))) {/* 終了時にWinSockのリソースを解放するようにしておく */ fprintf(stderr,"atexit(WSACleanup)失敗\n"); exit(-1); } if ( nErrorStatus != 0 ) { fprintf(stderr,"WinSockの初期化失敗\n"); exit(-1); }
818 :
仕様書無しさん :02/09/23 16:31
びヴぁなんか使うのはアホ
819 :
仕様書無しさん :02/09/23 20:08
某社でPostgreSQL使ったWebサイトのメンテと機能追加任された学生バイトなんですが。 ここ見てると、一応プロなはずの前任者の作っていたものの、 在庫テーブルのフィールドが100こあって全部TEXT型だったのも、 その在庫テーブルが、9割方共通なのに微妙な違いで4つもあったのも(うち2個は全く同じ)、 ほとんど同じ用途と扱い方で全く同じ定義のテーブルが5個あったのも、 それらを扱うPGも、違いは数行だけの数KBあるファイル数十個、な状態だったのも、 (多態性とか言わんからせめてIF使えと)、 複雑な共通価格計算ロジックがコピペされて何個所にもあったのも、 GROUP BY知らないせいで数万件をスクリプト側で集計してたのも、 トランザクションの使い方明らかに知らないで無駄なCOMMITとかしてたのも、 500行を越えるforループがざらにあったのも、 SQLはPG側で生成してるのにユーザ入力のクォートなんて素通しだったのも、 ユーザの入力からの不等号も当然完全に素通しで表示してたのも、 1個のテーブルの中にSJISとEUCが見事に混在していたのも、 ていうか関数なんてほとんど存在しないから変数は全部グローバルだったのも、 2スペースと4スペースとタブでのインデントが1ファイル中に混在しまくってたのも、 未だにApacheなんかが1年以上前のリリースなのも、 全部このスレじゃネタにもできない日常の範疇なんだな、と。 この程度で嫌気が差すようじゃ職業プログラマなんて出来ない気がしたので、 別の道にしますやっぱり。
>>819 タイヘンだね。
>この程度で嫌気が差すようじゃ職業プログラマなんて出来ない気がしたので、
>別の道にしますやっぱり。
プロでも人のプログラム触るの嫌な人多いと思うけどね。
まあ、嫌でもやるんだけど。。。
821 :
仕様書無しさん :02/09/23 22:32
>>819 > 2スペースと4スペースとタブでのインデントが1ファイル中に混在しまくってたのも、
わずか30行程度の関数の中で、1スペ、2スペ、3スペ、4スペの全種インデントが混在
してるを見た経験あり。(w
品質は推して汁べし。
822 :
名無しさん@おひさまのよう。 :02/09/23 22:49
>>821 普通、フィルタプログラム通して直すだろ?
>>819 まぁ、畑違ったらド素人って人は居るからね。
特に PostgreSQL+WEB なんて、会社なんかにはノウハウ蓄積
されてないだろうから。その様子じゃ Database も初めてッポイ
けど、その前任者。
なんか新人が構築した臭いなぁ。
>>819 そりゃ特徴からして前任は新人ではなく明らかにCOBOLerと思われ。
こんなとこにも害毒を撒き散らすのか。
ソースに歴史あり 異なるタブが混在するのは、最初にソースを書いた人が8タブで、次の担当者が4タブで機能追加、 前任者は2タブが趣味、・・・ こうしていろんなタブ数が混在する。 おれも、クソみたいなやっつけ仕事ならソースをきれいにしたりはしない。
俺は人の書いた汚いコードをリファクタリングするの嫌いじゃない。 俺にやらせるとまったく別物になるけどナー
>> 827 同意。本気でやるとdiff取る意味もなくなるんで、確かにテストユニットも必要になる道理だ。
829 :
仕様書無しさん :02/09/24 00:05
typedef struct { FILE *fp; char *filename; char *mode; } fopen_t; void extend_fopen(fopen_t *arg); typedef struct { FILE *fp; } fclose_t; void extend_fclose(fclose_t *arg); typedef struct { char *buf size_t n; FILE *fp; } fgets_t; void extend_fgets(fgets_t *arg); 標準ライブラリ関数名の前にextend_が付いたのがたーくさん。 戻り値voidにして戻り値と引数を構造体で一つにしただけ。 コーディング規約でextend_関数を使うことになっている。 このライブラリの作者の気が知れない。 どの異言語からやってきたのだろうか?
返り値を異常に憎むのもCOBOLerの特徴だな。
>829 最近なんとなくオブジェクト指向が分かりかけて、てな奴なんじゃないの。
自分の書いたコード観ると、会社辞めたくなる。 きっと、ソフトウェア開発向いてないんだろうね。 かといって、ほかに向いてる仕事がありそうな気もしないし。 コンビニの店員って簡単なんかな。 簡単だったらいいな。 あー、もう、日曜プログラマでいいや。 って、思う。いつも。
コンビニの店員のほうが遙かに難しいという罠。その性格では。
>>826 俺は人の書いたソースに手を入れるときには、そのコーディングスタイルに
従うけどな。
>>835 そのソースコードが既に複数のコーディングスタイルで書かれていたら、
結局自分のコーディングスタイルで書くだろ?
そうやって歴史は作られてくんだよ。
>>836 時間がありゃ全部自分のスタイルに直しちまうんだが。
# インデント変えただけでレビューしなきゃいけないところもあったな。
838 :
仕様書無しさん :02/09/24 01:27
>>823 いやいや、結構複数人数ではやってたみたい。
タブ数なんてファイル開けるたびに違うし。
ていうか同じファイルを次の日開けるとインデントが荒れてたりしたw
設計者がDB初めてだったのかどうかは分かんないですが、
「TEXT型なら何でも入るじゃん」という確固たる信念でTEXT型にしてたよ、
と、3代目くらいの引継ぎ者から聞いた。
…その人も聞いてたんなら止めてよ、と。
案の定数値としてそのフィールドソートしないといけない処理が一杯来たし。
ちなみに、できて何十年てな会社でもなく、やってる仕事のほとんどが
こういったPostgres+Webの開発だと思われる会社………。
>>836 > そのソースコードが既に複数のコーディングスタイルで書かれていたら、
次から、そこの仕事を断ることを決意する。
フリー配布されてるCGIのソースは結構ムゴいと思った秋の空。
>>840 モノによるよ。綺麗なソース書いてるな、と関心するCGIもある。タマニナー。
842 :
仕様書無しさん :02/09/24 11:28
Open 読込むファイル名 For Input As #1 Select Case 出力モード Case ファイル 出力ファイルのオープン Do While Not EOF(1) Line Input #1, InputData ファイルへ出力 Loop 出力ファイルのクローズ Case プリンタ 印刷ダイアログの表示 Do While Not EOF(1) Line Input #1, InputData プリンタへ出力 Loop 出力ファイルのクローズ Case 通信 通信の初期設定 Do While Not EOF(1) Line Input #1, InputData 通信ポートへ出力 Loop 通信ポートの解放 End Select Close #1
ちょっと簡略化するけどこんな感じ。 '//月ごとの配列に結果をセット Select Case Int_Month Case 4 Array1(4)=Array(4) Case 5 Array1(5)=Array(5) ・・・・・・・・・・・・ Case 12 Array1(12)=Array(12) Case 1 Array1(1)=Array(1) Case 2 Array1(2)=Array(2) Case 3 Array1(3)=Array(3) End Select なぜSelect Case 文を使ってるか真剣に一時間悩んだ。 所詮自分も厨PGってことか…。 鬱。
>844 んだ。 その通りだす。 ちなみに↑のプログラム書いた人は弊社で すんごいプログラムが出来るベテランとあがめられていて、 自分でもそう思っているらしい。 だから、その人の書いたコードに意見すると すっごい勢いでムッとしやがる…。 Array1(Int_Month)=Array(Int_Month) の1行ですむんじゃないですかって言ったときは、 それはもう………。
旧暦閏月を処理できるように準備していたに違いない。
847 :
仕様書無しさん :02/09/24 13:05
848 :
仕様書無しさん :02/09/24 13:56
>>513 N*(N+1)*(2*N+1)/6
で一撃
というのはつっこみどころが違う?
なんでその式で答えが出るのかをできれば教えて欲しい…。三角数とか四角数みたいに。
850 :
仕様書無しさん :02/09/24 14:11
Public Function ConnectCurrentDB() As Boolean 'オープンデータベースの設定 If m_cnn.State > 0 Then 'コネクションが開いていたり接続中だった利した場合処理中止 ConnectCurrentDB = False Exit Function Else Set m_cnn = CurrentProject.Connection End If End Function
852 :
仕様書無しさん :02/09/24 19:06
public abstract class Super{ private String aaa; private String bbb; … public String getAAA(){ return aaa; } public void setAAA(String a){ aaa = a; } public String getBBB(){ return bbb; } public void setBBB(String b){ bbb = b; } public abstract void execute(); … } public class Sub extends Super{ private String aaa; private String bbb; … public String getAAA(){ return aaa; } public void setAAA(String a){ aaa = a; } public String getBBB(){ return bbb; } public void setBBB(String b){ bbb = b; } public void execute(){…} … } その他、全フィールド全メソッドあわせてコピペ、abstract メソッドを実装しただけ。 おまえ何のために継承してんだと小一時間 (略
ここにあるようなソースコードは心臓の弱いわしには つらいです。
855 :
仕様書無しさん :02/09/25 00:01
>>852 継承の意味もわからず extends 使ったらコンパイルエラーが
出たのでとりあえずメソッドを並べたに1000カノッサ
856 :
仕様書無しさん :02/09/25 00:07
>>852 多態性がからむソースコードだと、まともに動作すらしないな、これ
privateメンバ変数をオーバーライドしてんな、、、
ある数値解析プログラムより(言語は Fortran) VAR = SQRT(1.0 / (1.0 + TAN(T)**2)) 何で素直に COS を使わなかったんだろう…
#define FAR far #define INT int #define CHAR char #define LONG long #define VOID void ・ ・ ・ 何がしたいのやら
>>858 昔のBASICみたいに全部大文字で打ちたいんだろう。
860 :
仕様書無しさん :02/09/25 13:15
後で#define FARとか#define INT shortとかやるつもり、に1票。
#define begin { #define end } 藤原さんの本に出てたような気もする。
862 :
仕様書無しさん :02/09/25 13:57
#define int short
>>862 組み込み系ではたまに使う。
ターゲットが複数ある場合ね。
#ifdef __HOGEHOGE__
#endif
で囲むけど。
864 :
仕様書無しさん :02/09/25 16:02
PHPで3桁ごとにカンマ区切りする処理 if (strlen($num) == 4) { $num = substr($num,0,1) . "," . substr($num,1,3); } elseif (strlen($num) == 5) { $num = substr($num,0,2) . "," . substr($num,2,3); elseif (strlen($num) == 6) { $num = substr($num,0,3) . "," . substr($num,3,3); こんな感じで以下16桁ぶんくらいまで… おまえはマニュアルをちゃんと読めと、 number_format という関数があるだろと、 てかそれ以前に最低でもループ処理、 せめて正規表現でやれと言いたい。
865 :
仕様書無しさん :02/09/25 16:05
カッコ閉じ忘れ 俺の書き込みもバグってた。 ×elseif (strlen($num) == 5) { $num = substr($num,0,2) . "," . substr($num,2,3); ×elseif (strlen($num) == 6) { $num = substr($num,0,3) . "," . substr($num,3,3); ○elseif (strlen($num) == 5) { $num = substr($num,0,2) . "," . substr($num,2,3); } ○elseif (strlen($num) == 6) { $num = substr($num,0,3) . "," . substr($num,3,3); }
866 :
仕様書無しさん :02/09/25 17:38
コスモクリエーション株式会社より、 真のシステムエンジニア募集のお知らせ。 八=ノ”×マ=ノ〒、⊃-ノニ千ワ。 へた字を知らずとも、こんな文がスラスラと読める方。 そんな柔軟な頭をお持ちの方を当社では求めています。 当社は、医療システム/デジタル放送/モバイル環境開発に強みを持つ、 独立系Sierです。小規模ながらも、強い意志と理念に基づいて各分野の 最先端の案件に取り組んでいます。
867 :
仕様書無しさん :02/09/25 17:49
VBにて Dim strAAA(10) as String Dim intBBB(10) as Integer Dim i as Integer For i = 0 To 10 strAAA(i) = "" intBBB(i) = 0 Next i ------------------------- こんなんが山ほどあった・・・ Eraseを使ったらだめなのか?
868 :
仕様書無しさん :02/09/25 18:22
#define foreverfor( ;; )
>864 きっと英文字列でもカンマ処理したんだろ(藁
>>866 もしかして2ちゃんねらーを募集しているのか?
>>863 それにしても
1 typedef にする
2 int32_t のように別名で定義する
だろ。ふつー。
#define _ そのシステムではエディタで空行を打つと挿入モードから抜けるので、 空行が事実上使えなかった。
Public Function 僕本店なの() As Boolean 〜 End Function 頃してやろうかとオモタ
>>877 本店に行くたびに返す値をtrueにして、家に帰るときにfalseにしていたんだろうか…
やたらと空行が連続して入っているソースコード。 3行5行は当たり前、時には50行くらいずーっと空行が続いていたり。 どうやら、プリンタで印刷した時に、ちょうどいい所で切れるように してあるらしいです……。
プリンタドライバが変わると意味無しですか?
^Lが山ほど入ってるの、紙が無駄なんですけど…
>>882 印刷せずに、エディタで読めよ。タグジャンプも使えんような環境でソース
読んでも、効率悪かろうに。
884 :
仕様書無しさん :02/09/28 00:02
#include <stdio.h> ... int int1, int2, int3 ... ,int100; long long1, long2, long3 ... ,long100; char char1[1000], char2[1000], char3[1000] ... ,char100[1000]; ... int main(int argc, char *argv[]) { ... } とりあえずグローバル変数宣言。 実際使っている変数は10個にも満たない。
wk_data = data; とワークに移しておきながら、実際に計算ワークにしているのはオリジナル(data変数)の値。 で、かなり先のほうにて data = wk_data; もうね。だめぽ。
そういえばソースコードを紙で読むってこと少なく なったなぁ。 昔は、ストックホームに印刷されたソースコードを 眺めて悦にひたってたが・・・レーザプリンタって 趣がなくって嫌。
887 :
仕様書無しさん :02/09/28 15:57
おれは出張の新幹線でA4に印刷したソースを読んでは赤ペンで修正してるよ。 なぜか車中だと集中できて、バグを見つけやすい。 ノートパソコンの画面を見るよりイイ
888 :
仕様書無しさん :02/09/28 16:06
俺も印刷してタバコ吸いながらボーっと眺めてる時のほうがバグみつけやすい。
>>886 微妙にしかつながりがないが、
今の職場はお客さんからのメール、関係者には全て転送・・・
ではなくて、プリントアウトして配布です。
ソースの説明をするときもプリントアウトして説明。
なんか変。
2ちゃんでしばらく厨を煽った後でデバッグすると効率良いとか…(藁。 俺はちょっとぶらついてくるとか気分転換してからバグ取りするようにしてる。印刷はしないなぁ。 結構みんなソース印刷してデバッグしてるんやね。
891 :
仕様書無しさん :02/09/28 21:03
以前某ケータイメーカでの話。 Cだったんだけど型が全部unsigned。キモチ悪かった... メモリ効率重視なのかな、と認識したけど、組み込み系じゃ常識なの!?
>>891 別に負の数にならない事が保証される変数ではunsignedになるのはいい事では?
for( short i=0 ; i<60000 ; ++i ){
}
で無限ループに入るとかあるし。
>>891 なぜunsignedならメモリ効率重視なのかと小一時間(以下略
>>893 メモリを節約できるって意味じゃないの
ぺっ、ぺっ、ぺっ、ぺっって感じだけど
if xxxx = 1 continue end-if.
896 :
仕様書無しさん :02/09/28 22:04
こぼらーはDQN
897 :
仕様書無しさん :02/09/28 22:20
うるせー!
>>891 はunsignedの意味を理解してないに65535票
>>894 なぜ unsigned ならメモリを節約できるのか、
いくら考えてもわからないんですけど・・・。
>898 は >891 >892 (>893) >894 の流れを理解してないに 32767票。
>>892 unsigned int でも unsigned char でも unsigned short でも unsigned long でもなく
型宣言でただ unsigned ってだけ書かれてるって事??
しかし、ワード単位で変数確保するにしても、必要があれば signed 使うでしょう。
902 :
仕様書無しさん :02/09/29 00:50
unsigned にすればメモリ節約できると思い込んでいる
>>891 は馬鹿
ってことでしょ。
負の数を使わないプログラムって珍しくもないしな。
それに明示的にunsignedするのは、悪いことではないぞ。むしろ正しいやり方。
補足 明示的にsignedとunsignedするのは・・・って意味ね。
お前らコボラーに分かるように説明してあげてください
905 :
仕様書無しさん :02/09/29 01:09
>891は unsignedを付けずに宣言すると、マイナスを扱える分だけ余計にメモりを使用すると思い込んでいるに、 1000000000MS$ ゲイツもびっくリだね。
>>905 signed int(32bit) 使うより、使えるならunsigned short(16bit)使った方が
省メモリになるということだと漏れは認識したけど。
>906 >891をどう読んだらそういう解釈になるのかと小一時間(略
>>906 単に unsigned と書いたらコンパイラは unsigned int と認識するはずですが何か?
909 :
仕様書無しさん :02/09/29 01:19
>>891 の文脈は、unsignedばかりで、unsignedしていない変数が無かったからキモイってことだろ。
どう考えたら、
>>906 の結論に達するのか、小一時間・・・
>>906 signed int == 32 bit ??
911 :
仕様書無しさん :02/09/29 01:22
色々解釈を考えた末に袋小路に迷い込んでしまったみたいだ。
891の書いてる事と全然整合性がないな。俺逝ってよし。
>>908 いや、ただの例なので・・・
>>910 sizeof(short)==sizeof(int)な環境の人もいるだろうと思って適当な数字を例示しただけ。
>>906 ぜんぜんちげーよ!!
君のコードを読んで会社を辞めたくなった人が居るに 200 ガッツ
914 :
仕様書無しさん :02/09/29 01:30
うーん僕は以下のソースいつも殺したくなるんだけど。 某企業のソースには山ほどある、ばっかじゃねえかとおもう。 char buf[50]; for(i=0;i<50;i++)buf[i]=0; きっとmemsetとsizeofをしらんやつばっかで作ったんだろうねぇ。
(負数を使わないときは)unsigned 付けないと1bit 無駄になる(short でも int でも)。 >892 が挙げている60000回のループのループカウンタは 16bit signed 整数では無理で、 (同じく16bit の)unsigned 整数なら可能、という例。 もちろん、32bit 整数ならば(signed でも unsigned でも)可能だが、16bit の無駄。 >906 はそう言いたかったのでは? ただ、ループさせるだけなら、初期値を -32768 にして signed 16bit 整数で回す手がある。 ソースを読んだ者が会社を辞めると思うけど。
まだ判ってない奴がいるよ。おい。。。
>>915 ==891?
その1bitの無駄があるからなんだというのだ?
無駄があるsigned intを32個集めればもう1個intが使えるとでも???
で、結局
>>891 の某メーカーは何がしたかったんだ?
919 :
仕様書無しさん :02/09/29 02:39
結局、某メーカの携帯電話のある部分のモジュールにおいて負数をまったく使用しないため、明示的に変数宣言がunsigned
となっていた。単にこれだけだろ。
使いもしないのに、signed が無いと不安になる
>>891 は鬱病だろ。
920 :
仕様書無しさん :02/09/29 02:42
unsignedの演算が速いCPUとかあるのかな??? そうだったらすごいな
921 :
仕様書無しさん :02/09/29 02:43
お わかった ソースサイズ拡大で金額を上乗せしようというはらか!! げ、今COBOLの時代とちがってステップ数やソースサイズで発注する時代じゃないか
>917 「無駄がある」signed int を32個集めて全部 short にすれば、signed int を余分に16個使える。速度も上昇。
>>922 > 速度も上昇。
プロセッサによっては、アライメント絡みでペナルティが課される可能性ある
けどな。
924 :
携帯デジタル土方 :02/09/29 02:49
>>891 ただ単に負の数を使う必要のないとこだったんじゃねーの?
925 :
携帯デジタル土方 :02/09/29 02:51
いけね。書き込み前にリロードせんかった。
>>919 に同意、てことで。
926 :
仕様書無しさん :02/09/29 02:53
922 え? よのなかって int は32ビットってきまっているんだ??? で、誰が決めたの??
>926 決まってないよ。>917 の脳内仕様に従っただけ。
928 :
仕様書無しさん :02/09/29 03:03
intが32bitのプロセッサの場合、16bitアクセスは大抵遅くなるぞ。
>>914 そーゆうおまえは、memsetもsizeofもいらねーってのをしらんやつなわけだが。
>917 ワラタ
>>922 は915ではないと思うが、どちらにせよ言っていることはトンデモだな。
確かにこういうこというヤシとは一緒に仕事したくない、という意味ではこのスレに合っているわけだが(藁
携帯電話だと16bitか32bitかはシビアになりそうな気がせんでもない よく知らないけど
>>933 っつか、組み込みの世界は 32bit プロセッサを使うと
オブジェクトファイルのサイズが大きくなるから不許可
みたいなケースもあるから。ただ signed / unsigned で悩むって話は聞いた
ことがない。
sizeof(char) = sizeof(short) = sizeof(int) = sizeof(long) = 1 なんてのは今でもあるの?
>32bit プロセッサを使うと >オブジェクトファイルのサイズが大きくなるから不許可 こんなの大昔の話だろ(W
>>937 まだまだゼッパチ互換チップも現役だと…。
外注は外注 外注は寄生虫
>>938 Z80選ぶのはOBJファイルのサイズよりもカネの話だけどな。
>>936 int 型って最低でも 16bit が保証されてなかったっけ?
1 byte が 16bit な処理系でもあるのか?
>>941 たしか INT_MIN <= -32767 && INT_MAX >= 32767 だったと思う。
途中で送ってしまった。ごめん。 CHAR_BIT >= 8 だから16でいけないという法はなさそうな 気がするけど現実にそんなもんあるのかなぁということなのでしたね。
>>943 char は 1byte でさえあれば何 bit でもいいんじゃなかったっけ?
>>942 マイナスは-32768だね。
>>944 1Byteが8Bitじゃない場合もあるのか?
>>936 byte = 8Bit
short = 16Bit
long = 32Bit
は決められてたはず。
Pentiumなんかは16bit演算より32bit演算のほうが速いんじゃなかったっけ
歴史的に 1byte の定義はさまざま。確か 7bit, 12bit, 16bit とか使ってたマシンも存在したはず。 だからよく RFC では 8 ビットバイト (OCTET) という表現を使う。 ANSI 的に C の整数長の定義はこんなだったはず sizeof(short) <= sizeof(int) <= sizeof(long) 手元に資料が無いので詳しくは分からん。MSDN のどこかに書いてあると思う。
第1オクテットがマスクなアィピーアドレスがウォンチュゥです!
>>947 short と int は最低 16bit、long は最低で 32bit が保証されているようだ。
不等号は
>>947 の通り。
1byte = 16bit のマシンもあるんだね。9bit というのは聞いたことがあったが。
>>947 >>949 そんな半端なbyteがあったのか。
7bitはなんとなく想像できるんだが。
勉強になったよ、サンクス ヾヾ(^−^)
>>936 > sizeof(char) = sizeof(short) = sizeof(int) = sizeof(long) = 1
オレはいじったことないけど、Crayのいわゆるスパコンが
そうだったらしい。charもlongもぜーんぶ64bit。
詳しい人のフォローきぼん。
>>951 それって、コンパイラの実装が手抜きなだけじゃないのか。
953 :
仕様書無しさん :02/09/30 01:01
建てます
建てました
>>957 最近は 16bit 環境と 32bit 環境の両方扱うなんてのは少なくなったからねぇ。
初めて VC4.0 で 32bit int を使ったときは感動したよ、ケンちゃん。
959 :
仕様書無しさん :02/09/30 03:03
>>958 >16bit 環境と 32bit 環境の両方扱うなんてのは少なくなったからねぇ。
そんな皆は 組み込みで ARM を!!
960 :
942,943 :02/09/30 12:51
参考までに。JIS X 0004 04.05.07 の「バイト」の意味「8ビットからなる列」は
JIS X 0001 01.02.09 (1バイト中のビット数については備考としてデータ処理
システム内で一定であり,通常8ビットであることが記されている)で置き換
えられてる。
>>945 -32768まで表せる処理系が多いとは思うけど,Cの規格で保証され
てるのは-32767まででしょ。
>>952 コンパイラの手抜きというか、そもそもプロセッサのアーキテクチャが
8bit アクセスなんて考えてない代物なんだろう。
963 :
仕様書無しさん :02/09/30 22:17
初のByteマシンIBM SYSTEM/360以前のマシンにByteの概念を当てはめようとすると、 1 Byte=1Wordだよな。で、1 wordが36bitだったりするわな。
>>949 >>964 char, short, int, long がそれぞれ
9, 36, 36, 36 (ビット)な処理系は聞いたことがある。
>>963 K&Rには
1. sizeof(char) == 1
2. sizeofは指定したオブジェクトまたは型のサイズをバイト数で表した整数を返す
って書いてあるな。で、`バイト'の定義はどこにある? K&Rに書いてあるかい?
DSPではlimits.hのCHAR_BITが8でなくて16なのは珍しくないぞ。
CHAR_BITが32なDSPもあって、こいつでは
>>936 >sizeof(char) = sizeof(short) = sizeof(int) = sizeof(long) = 1
が成立する。
>>951 おれもCrayは知らん
967 :
仕様書無しさん :02/10/01 13:45
K&Rにどう書いてあるとかじゃなくて 自分の頭で考えて判断できねーのかよ。 書いてあること丸暗記して あそこににこう書いてあるとか言ったって意味ねーんだよ。 ボケカス糞はさっさと引退しろ。
私の名前は中野でつ。
969 :
仕様書無しさん :02/10/01 14:26
言語仕様がどうなってるかを自分で考えて判断したらまずいと思うんだが。
971 :
CORBA :02/10/01 14:46
あー、昔あったなぁ。 先輩の書いたコード見て、これは無いだろってのが! 最初は自慢してたけど、まわりにも言われちゃってた。
ハァ?
>>967 が仕様書を書いたら
「仕様書にどう書いてあるとかじゃなくて(以下略)」
とか言いそうだ。ま、リアルな世界で陰口叩かれないように
せいぜい精進してくだされ。
>>960 (=942,943)、
>>964 "byte"の概念のおさらいをする機会ができた。感謝。
特にJISからの引用は興味深かったよ。
>964 12年位前に悪友から聞いたんだけど、UNISYSの旧バロース系のコンピューターって1ワードが五十数ビットとか言ってた。そんなマシンでCOBOLやらされているって言ってたな。今はどうしているんだか、その後何年かして音信不通になったままだ。
975 :
仕様書無しさん :02/10/02 03:01
この会社辞めようと思ったソースコード
1000!
1001!
1024!
981 :
仕様書無しさん :02/10/03 17:12
/ミヽ /ミヽ ミミミ /川川川\ミミミ |||@ノハヽヽ@||| ミミ〇川||/ ヽ|||||〇ミミ ミ/川 \l||||彡 |川/ ヽ卅川 |||||/ ヽ卅||| (|| ・ , ・ ||) |⌒|(|| ‘ , ‘ l|) |⌒|ヽ"▽ "ノ(⌒ヽ ヽ ⊃ゝ" ▽"ノ| ヽ ⊃入ノ| ⌒ ⊂ 丿 /_/入ノヽ ( ノ / / ★ ( ヽ─゛ ☆1000はあたしたちのものよ /● ● ●丿/=/ ヽ゛ヽ★ ★\| |● ● 入ノ ヽノ , _)★ ★ ヽ ヽ__ヽ/ ̄ ̄ヽ / ̄| __ヽ/___| \ ヽ─ / ,\ / / ヽ )/ ̄/ (__( ヽ゛ /─-/‖ ̄ヾ). \─ヽ 《ヽ=ヾ  ̄ ̄ =ミ 》 \___) (___/
982 :
仕様書無しさん :02/10/03 18:44
Dim aanzyoousama
>968 Wnnかよ!(w /* 関係無いのでsage */
>979 チッチッチ 解ってないな。 先に(新スレへ)イッちゃったヤシが早漏。
986 :
仕様書無しさん :02/10/05 03:59
/ミヽ /ミヽ ミミミ /川川川\ミミミ
|||@ノハヽヽ@||| ミミ〇川||/ ヽ|||||〇ミミ
ミ/川 \l||||彡 |川/ ヽ卅川
|||||/ ヽ卅||| (|| ・ , ・ ||)
|⌒|(|| ‘ , ‘ l|) |⌒|ヽ"▽ "ノ(⌒ヽ
ヽ ⊃ゝ" ▽"ノ| ヽ ⊃入ノ| ⌒ ⊂ 丿
/_/入ノヽ ( ノ / / ★ ( ヽ─゛ ☆
>>985 いやだぴょ〜ん
/● ● ●丿/=/ ヽ゛ヽ★ ★\|
|● ● 入ノ ヽノ , _)★ ★ ヽ
ヽ__ヽ/ ̄ ̄ヽ / ̄| __ヽ/___|
\ ヽ─ / ,\ / /
ヽ )/ ̄/ (__( ヽ゛
/─-/‖ ̄ヾ). \─ヽ
《ヽ=ヾ  ̄ ̄ =ミ 》
\___) (___/
987 :
仕様書無しさん :02/10/05 05:41
>>986 のAAって何だろう…
不愉快というかムカツクというか…
ここまで嫌な気分になったAAを見たのは初めてだ
988 :
仕様書無しさん :02/10/05 22:35
/ミヽ /ミヽ ミミミ /川川川\ミミミ
|||@ノハヽヽ@||| ミミ〇川||/ ヽ|||||〇ミミ
ミ/川 \l||||彡 |川/ ヽ卅川
|||||/ ヽ卅||| (|| ・ , ・ ||)
|⌒|(|| ‘ , ‘ l|) |⌒|ヽ"▽ "ノ(⌒ヽ
ヽ ⊃ゝ" ▽"ノ| ヽ ⊃入ノ| ⌒ ⊂ 丿
/_/入ノヽ ( ノ / / ★ ( ヽ─゛ ☆
>>987 /● ● ●丿/=/ ヽ゛ヽ★ ★\|
|● ● 入ノ ヽノ , _)★ ★ ヽ
ヽ__ヽ/ ̄ ̄ヽ / ̄| __ヽ/___|
\ ヽ─ / ,\ / /
ヽ )/ ̄/ (__( ヽ゛
/─-/‖ ̄ヾ). \─ヽ
《ヽ=ヾ  ̄ ̄ =ミ 》
\___) (___/
がきのけんかだな・・・
〈 1000getデス スミマセンスミマセン... ∨ ̄ ̄ ̄ ̄ ̄ ̄ (;´Д`) ( 八) 〉 〉
991 :
仕様書無しさん :02/10/05 23:07
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 1000ゲットー!! \________ _______ |/ /⌒\ (´´ (・ω ・´ \/) (´⌒(´ (人__つ__/ ≡≡≡(´⌒;;;≡≡≡ (´⌒(´⌒;; ズサーーーッ アレ? /⌒\ / ´・ω・`) と__(ノ__人) /⌒\ っ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ;´・ω・) っ < 違ったみたい・・・ ((( と__(ノ__人) \_____________
992 :
仕様書無しさん :02/10/05 23:08
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 1000ゲットー!! \________ _______ |/ /⌒\ (´´ (・ω ・´ \/) (´⌒(´ (人__つ__/ ≡≡≡(´⌒;;;≡≡≡ (´⌒(´⌒;; ズサーーーッ アレ? /⌒\ / ´・ω・`) と__(ノ__人) /⌒\ っ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ;´・ω・) っ < 違ったみたい・・・ ((( と__(ノ__人) \_____________
993 :
仕様書無しさん :02/10/05 23:10
なにかと思えば1000とりか
994 :
仕様書無しさん :02/10/05 23:10
だれもいねえのかよ
995 :
仕様書無しさん :02/10/05 23:10
1000get!
996 :
仕様書無しさん :02/10/05 23:10
いや、ちがうし>995
997 :
仕様書無しさん :02/10/05 23:11
1000
998 :
仕様書無しさん :02/10/05 23:11
ぺ
999 :
仕様書無しさん :02/10/05 23:11
1000!!!
1000 :
仕様書無しさん :02/10/05 23:11
多分俺とお前の2人しかいねぇ>995
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。