この会社辞めようと思ったソースコード #5

このエントリーをはてなブックマークに追加
1フルーツチンポ
この会社辞めようと思ったソースコード。 プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
をつらつらと綴っていって頂戴。

■過去スレ
この会社辞めようと思ったソースコード
#1http://mentai.2ch.net/prog/kako/997/997104873.html
#2http://pc.2ch.net/prog/kako/1001/10010/1001076034.html
#3http://pc.2ch.net/prog/kako/1015/10158/1015861447.html
#4http://pc.2ch.net/test/read.cgi/prog/1007385689/

■関連スレ
この会社辞めようと思った上司の一言
#1http://mentai.2ch.net/prog/kako/992/992259973.html
#2http://pc.2ch.net/prog/kako/1003/10034/1003497181.html
#3http://pc.2ch.net/test/read.cgi/prog/1024763650/
2って:02/08/12 11:41
#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;
}
3仕様書無しさん:02/08/12 11:45
>1
お疲れ

>2
前スレの続きやるんですか(;´Д`)
4仕様書無しさん:02/08/12 12:23
1の#4はミニスカートスレだよ、、、

前スレ:http://pc.2ch.net/test/read.cgi/prog/1021560641/
5仕様書無しさん:02/08/12 12:50
Access レポートのコントロールソースから抜粋

="平成 " & [年]-1988 & "年" & [月] & "月度"
6立ち読み:02/08/12 14:10
>>1
あの〜 #4が違うスレになってるんですけど。。。
7仕様書無しさん:02/08/12 14:23
8仕様書無しさん:02/08/12 16:48
>7
ここが本スレですヨ
9    :02/08/12 18:00

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().

10    :02/08/12 18:00
>>1
ハンドル名を変えなさい!
11てつや:02/08/12 18:12
>>548
あのババアなんつったけ?
清川虹子?

高田純次が、清川虹子の 指輪やダイヤのコレクションを拝見する企画。
高田が、高い指輪を口に入れて、清川が激怒してビンタ張ったり、
口から出したガムを ビロ〜ンと指輪にくっつけたり。
それと、なんと言っても、清川のぶ厚い唇に虫メガネをあて、
巨大唇に見せるのは最高だった。(大笑)

もう死んだんだっけ?ウプププ
ぷっぷー!!

12んわんん:02/08/12 21:58
>>11
パカモノ
13仕様書無しさん:02/08/13 07:12
>>8
こっちが本スレか
14仕様書無しさん:02/08/13 12:18
1+1=2
15って:02/08/13 12:34
>>14
???????????????????????????????????????????
16    :02/08/14 13:06
/*
エディットコントロールに入力された文字列が整数に変換できるか調べる関数
変換できる場合 : 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;
}
17仕様書無しさん:02/08/14 14:35
>>16

これは
・コメントの「strbuf()」
            ^^
・マジックナンバー(5)
・バッファがあふれることを考えてもいない
・ポインタの指す位置が文字列終端かどうか
 調べれば済むところでわざわざstrlen()を呼んでいる
・つーか、実はそもそもhwndの持ち主はCEditなので
 ダイアログエディタの設定で数字以外あぼーんできるじゃん

以上、どこに突っ込めばよろしいので?
18仕様書無しさん:02/08/14 15:10
>>17
マジックナンバーというのは
「意味不明な(根拠のない)数字」
とかいう意味ですか?
業界用語?
19仕様書無しさん:02/08/14 17:17
質問に質問で返すなーーッ!
俺はどこに突っ込めばよろしいので、と聞いているんだあーー!
疑問文には疑問文で答えろと学校で教えているのか?
2017:02/08/14 17:39
>>19 まぁおちけつ

>>18

意外と用語辞典とかにないな > マジックナンバー
(検索とか掛けると野球とか物理用語で引っかかる)
この際カーニハンとパイクの「プログラミング作法」とか
買ってみそと言ってみるテスト。
21仕様書無しさん:02/08/14 21:12
>>19
> 俺はどこに突っ込めばよろしいので、と聞いているんだあーー!

どこって どこ?
22中卒PG:02/08/15 03:42
ガイシュツとは思いつつもURIが出てないので一応・・・
http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html
23プ:02/08/15 06:27
URI
24仕様書無しさん:02/08/15 06:58
25仕様書無しさん:02/08/15 11:51
+−−−−−−−−−−−−−−−−+
| 〜〜しますが、よろしいですか?   |
|                        |
|    OK     キャンヤル      |
+−−−−−−−−−−−−−−−−+

納品後障害連絡がありました、、、、
製造は中国(T∀T
26仕様書無しさん:02/08/15 12:05
>>25
×キャンヤル
○キャンギャル
27仕様書無しさん:02/08/15 13:31
>>25
× OK
○ PK
28仕様書無しさん:02/08/15 22:51
URIという用語すら知らない厨までこんなとこ来るようになったのかよ。
しかも中卒PGですら知ってたというのに。
板のレベルもどんどん落ちるわけだ。
29仕様書無しさん:02/08/16 00:01
URI :我
NARA :国
でよかったっけ?
30仕様書無しさん:02/08/16 01:17
>24
ヴァカに英語は読めねえよ。
もっとも、訳したところで分からねえことには
変わりないだろうけど。
31中卒PG:02/08/16 17:26
URIという言葉を知らなかったんではなく、意気がって使ってんじゃねーよ
中卒の癖に氏ね中卒がとでも思ったんではないでしょうか(藁
まぁマターリ行こうや :-)

32ななし:02/08/17 00:43
誰か>>31をホニャクしてくれ
33仕様書無しさん:02/08/17 03:34
>31
おまえ、人間できてるなぁ。
34仕様書無しさん:02/08/17 08:05
>>32
URIという言葉を知らなかったのかよ、俺が使ってるからって意気がって突っ込むなよ。
お前、中卒なんだから得意げにURIなんて言葉使ってないで「氏ね中卒が」とでも思ったんじゃないの?藁
寂しいからマターリ進行してよ、かまってよ。
35追伸:02/08/17 09:15
URI って、Uzai(うざい)Recruit(リクルート)Ittekure(逝ってくれ)
ですか?
36仕様書無しさん:02/08/17 09:29
違うと思います。
Uzai Recent Information(触れられたくない過去の思い出)
と解釈しましたが?
37仕様書無しさん:02/08/17 17:45
プログラマってギャグのセンス無いね
38仕様書無しさん:02/08/17 23:37
>>35
You are Iです。
和訳すれば「お前のものは俺のもの(、俺のものは俺のもの)」です。
39仕様書無しさん:02/08/18 00:04
>>38
それなら yours と mine にしないと
40仕様書無しさん:02/08/18 01:36
>38
誤訳デス。おれはお前お前は俺と言うことニダ。
怪しい宗教にはいっちゃだめよみんな。
41仕様書無しさん:02/08/18 02:30
while(0)
42仕様書無しさん:02/08/18 02:48
heart of mine

地雷の心
43仕様書無しさん:02/08/18 08:33
このスレ辞めたくなった。
44仕様書無しさん:02/08/18 13:14
#include<漏れ>
45仕様書無しさん:02/08/18 16:46
//作成者 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.
47仕様書無しさん:02/08/19 11:22
この会社辞めようと思った時・・・ね
#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 ....

って感じのマクロ使っているのがあったけどすごいね。
53仕様書無しさん:02/08/19 13:10
>50
文法的に間違っていない、とかいっちゃう悪い子は、
iocccのソースを全部解読しる!
54仕様書無しさん:02/08/19 13:11
解読しる

どういう意味だろう?

55仕様書無しさん:02/08/19 13:13
>>50
さらには、エディタの機能 (括弧の対応チェック等) が使えなくなりますね。
56仕様書無しさん:02/08/19 13:17
>>55
新卒女は自分書式に特化したエディタを使っていたりして。
57おまえだ!:02/08/19 13:27
If RS.EOF Then
  RS.MoveFirst
  ...
End If

58仕様書無しさん:02/08/19 13:27
>>55
小せえよ。
そんなもんに頼っているから記憶力、判断力の低下につながるんだ。
59仕様書無しさん:02/08/19 13:30
>>58
あなたは「そういうの使わないからお前は仕事が遅いんだ!」と
言われた事はないですか?
6058:02/08/19 13:32
>>59
まだ3回しか言われたことないよ。
6158:02/08/19 14:03
あ、言い忘れましたが8月入社です。
62仕様書無しさん:02/08/19 14:38
だから、49 のレスで一発貝穴だろ。
63仕様書無しさん:02/08/19 14:59
>>62
貝穴で一発。ハァハァ
64仕様書無しさん:02/08/19 14:59
>>58
括弧の数あわせなど人間がやる仕事ではなく計算機に
やらせる仕事です。
65仕様書無しさん:02/08/19 15:03
>>64
機械は信用できん!
66仕様書無しさん:02/08/19 15:15
>>65
おまえよりマシじゃ!
67んわんん:02/08/19 15:27
>>67=人間のクズ
68仕様書無しさん:02/08/19 15:29
>>67
自分を否定しちゃいかんよ。
69仕様書無しさん:02/08/19 18:00
>>67
ワラタ
70仕様書無しさん:02/08/19 20:04
>>67
イ`
71 :02/08/19 20:52
保守しようにも変数名がわけわからん。コメントはもちろんなし。
72仕様書無しさん:02/08/19 21:12
実際のコードとコメントの内容が食い違っている、というのはあったな。
73仕様書無しさん:02/08/19 22:05
>>72

懺悔……
「意味不明なコメント」の説明しに
客先まで逝ったことありまつ(汗
74仕様書無しさん:02/08/19 22:29
>>73
乙彼でした・・・
75仕様書無しさん:02/08/19 22:41
何はともあれ、ifとそれに対応するelseが1ks以上離れている
ってのはあんまりだ。関数分けるかせめてswitch文にしてくれ。
勘弁してくれ、K君。
76仕様書無しさん:02/08/19 22:43
s君、お願いだ。コメントに発注元の悪口書くのはやめてくれ。
今度納品するんだぞ、そのソース。
7773:02/08/20 00:31
>>74

いや、その「意味不明なコメント」書いたのは
漏れ自身なのですよ(w
だから「懺悔」。自業自得っす(つд`;)
78    :02/08/20 16:51
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
79仕様書無しさん:02/08/20 17:33
VBは、Iif関数の存在を知ってから、無駄な関数や分岐を作らなくてよくなったなあ。
split知らない人が、頑張ってバグだらけのCSV解析関数を作っているのを見ると、
なんかもう・・・・・・・・・・・面白いから、そのまま放置してしまっているよ(w
80仕様書無しさん:02/08/20 17:45
iifってなんじゃら、とおもったら、なんだ、三項演算子か。
81仕様書無しさん:02/08/20 18:38
>>78
何が問題なの?
82仕様書無しさん:02/08/20 19:10
わざわざ関数化するなって意味か、
チェック関数内でエラーメッセージ出しているのが問題、ぐらいか?

83仕様書無しさん:02/08/20 21:16
>82
共通ルーチンだから数値チェックするたびに出るのが問題なんでしょ。
GUIに絡まないところでメッセージが表示されたらショックでかいよ。
84仕様書無しさん:02/08/20 21:30
>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д⊂
87仕様書無しさん:02/08/20 23:11
          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ∧ ∧ < >86 殺って良し!
    (ロ゜ ,)  \__________
    U  |
     |   〜
     U U
    ̄ ̄ ̄ ̄
88仕様書無しさん:02/08/21 01:23
すみませんが。。
フラグだらけのコードから、フラグなしのコードに変更するのって、
どうやるんですか?
89( ´∀`):02/08/21 03:12
>88
フラグが立ってるか立っていないかを判定するフラグを立てればいいんですよ
90仕様書無しさん:02/08/21 03:26
>85
複雑なものだったらこれぐらい普通だとおもうけど
何がいけないのか説明してもらえます?
91仕様書無しさん:02/08/21 03:32
>>90
> 複雑なものだったらこれぐらい普通だとおもうけど
んなわけない。

if 分のネストがあそこまで深いと、どういう条件で何が為されるのか
サッパリ分からん。変数名が f_data や data2 など「意味不明」なこ
とも相まって、解読不能になってますな。
92仕様書無しさん:02/08/21 05:14
>>85
break文の後ろのIsEmptyOption2のチェックをしているif文は実行されるの?
PG作業って共同作業相手が見えにくいだけで
基本的には共同作業だからね。
独り善がりなコード書く奴は嫌われるね。
94仕様書無しさん:02/08/21 08:12
>if(count == 1){
>    if(FALSE == p_Data->m_file_inf.GetAt(...)){

ちゃんぽんはどうかと思うよ
95仕様書無しさん:02/08/21 08:14
>C++お得意のローカル変数宣言が要所要所に入ります。

ローカル変数宣言は、別にいいんでないの?
96仕様書無しさん:02/08/21 09:25
>>ローカル変数=アホの溜まり場
97仕様書無しさん:02/08/21 11:26
>>88
C言語なら、フラグが立っているときの処理と立っていないときの処理を関数で分けて、
フラグを立てる代わりに、関数ポインタを差し替えるとか。
それでソースが見やすくなるかどうかはわからんが。
98仕様書無しさん:02/08/21 11:37
>>97
単に条件わけて関数呼ぶだけならif-else使ったほうが良いと思われ。
99仕様書無しさん:02/08/21 11:41
>>79
 splitが使えるのはVB6以降だったと思われ・・・・・
 それ以前は、CSV解析関数を作っていたのでは?
100仕様書無しさん:02/08/21 11:49
>>53
そういえば、7行スレのソースを頑張って読んだら
割と読みやすくて驚いた覚えがある
101仕様書無しさん:02/08/21 11:51
>>100
あー、俺も。無駄な書き方は極力省いてるからなんだろうね。
102ななし:02/08/21 12:13
>>79
Iifは実行速度が遅い。これ常識。
可読性、保守性向上のためなら、他にやることいくらでもあるでしょ。
漏れ、CSVよりタブ区切りの方が扱うのが楽だと思うんだけど、どうよ?
104ななし:02/08/21 12:16
>>47

定番のマクロ厨ですな。
ご同情申し上げます。(−人−;
105仕様書無しさん:02/08/21 12:21
>>102
実行速度が遅い、ってVBで実行速度を求めるようなもん、どれぐらい需要があるんかね。
つか、コンパイル時に内部的にif〜elseと同じように展開されないんや?あれ。
1062チャンねるで超有名サイト:02/08/21 12:42
http://s1p.net/xcv123

 携帯対応

男性より女性の書き込み多し
女性性65%男性35%割合です
穴場的サイトです。
幼い中高生直アポ直電
OL〜熟女迄の出会い
 聞ける穴場サイトです
 
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
地球の自転周期が変わったらどうするつもりだ!!
110仕様書無しさん:02/08/21 13:40
>>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
(´・ω・`) ショボーン  ← これも追加しといて
113仕様書無しさん:02/08/21 14:13
>>110
そもそも閏秒がいつ入るかなんて予測できないし。
114仕様書無しさん:02/08/21 15:09
>>113
うちは電波時計Unit導入前のシステムだと、1/1,7/1の9:00に閏秒ファイルがあると
1秒遅らせるようにしてました
実装はもう少し複雑で、現在も8:59:60秒が扱えるようになってたりします
115仕様書無しさん:02/08/21 15:20
>>114
うちの時刻チェック関数は、バッチリエラーと判定します(w
116仕様書無しさん:02/08/21 15:38
>>105
If A Then B Else C
 と
IIf( A, B, C )
は等価じゃないよ。
IIfは一行で書ける以外のメリットがない。
117仕様書無しさん:02/08/21 15:46
>>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")
120仕様書無しさん:02/08/21 18:37
117 == マーチン
121会社サボリ:02/08/21 18:56

今日NHKで人型ロボット開発の苦労話をやっていた。

「ロボットは、たかが 2mm の段差でもバランスを崩し
倒れてしまう… 人間がバランスを取るときの動きを
徹底的に解析し、ソフトウェアを修正します」

とかいう場面で、バーッとソースコードがスクロール。

思いっきり直値で 500 とか 600 番台まである switch case文だった。

case 528: /* こんな感じのが延々と */
:

アシモよ、君は本当にこんなんで動いているのか…
122仕様書無しさん:02/08/21 19:12
>>121 角度で違うんだよ、角度で。
123仕様書無しさん:02/08/21 19:26
>121
あれって自動生成じゃないか?
例えば状態遷移を専用の文法で書いてトランスレータ通すと
あのCのコードが出てくるとか。
124ななし:02/08/21 20:29
>>105

実行速度が求められないからって、何を書いてもよい、という訳ではありません。
アルゴリズムの善悪で、ふつうにコーディングすれば、1秒で済むはずの処理に3分
掛かったらどうするのですか?
それでも貴殿は「VBだからいいや」の一言で片付けるのですか?

マジレス、失礼。
125仕様書無しさん:02/08/21 20:34
>>124
>>105はIfとIifの実行速度の違いについて言ってるだけと思はれ。
それともIifはIfの180倍遅いとでも?

マジレス、失礼
126仕様書無しさん:02/08/21 22:14
>>125=童貞PG(38歳)
127仕様書無しさん:02/08/21 22:20
>>90
君とは一緒に仕事したくない。。。。。。。。。
128仕様書無しさん:02/08/22 00:40
>127
まだ学生だが4月から仕事に入るがよろしくw
ちなみに>85の例で(・∀・) イイ!コードに書き換えるのはどうすればいいですか?
まあ入れ子10段はさすがに問題あるが
変数名を分かりやすくしてコメント入れればいいですか?
129仕様書無しさん:02/08/22 00:54
>>128
技術的な話より先に、謙虚さを身につけような…
130仕様書無しさん:02/08/22 01:47
>>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年の俺でもこんなコード書かないって。
131仕様書無しさん:02/08/22 01:59
>>130
> プログラミング歴2年の俺でもこんなコード書かないって。
業界歴10年というふれこみのヤツが、意外とこんな糞コードを書いたりする。
なんで淘汰されないんだか。
132130:02/08/22 02:10
>>131
割とこの仕事って実力本位だと思ってたのにな…残念w
133仕様書無しさん:02/08/22 02:22
実力本位だとは思うけど、実力ある人はコーディングしなくなってく・・
その結果(略
皆さんソースレビューってどれくらい細かくやりますか?
134仕様書無しさん:02/08/22 02:29
>>133
了解しますたw 実力もあってコーディングも趣味でやるようなPG目指します。
135仕様書無しさん:02/08/22 08:12
というか上司にとっての実力と言うのはコーディングの早さとバグの少なさ
でソースコードの美しさまで評価する会社ってあまり見たことないけど
136仕様書無しさん:02/08/22 08:15
今日すごいもん見ちゃった…
スパゲッティなんてもんじゃない。あれは迷宮だ…
137仕様書無しさん:02/08/22 08:38
ラビリンスコード?w
138仕様書無しさん:02/08/22 11:41
>>136
うpきぼんぬ
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
>>139
読みにくい
141仕様書無しさん:02/08/22 15:41
地味に140get

142  :02/08/22 16:26
If m_RS.RecordCount = 0 Then Exit Sub 'レコードがなければ終了
143105 != 125:02/08/22 18:15
>>124
>>125の言うとおり。
IIfについての話題なのに、何を勝ち誇ったかのように話題を展開しているんだ?
つか、それなら君は実行速度が速ければ、どんなに汚い糞コードでも「速いからいいだろ!」
で片付ける人なんか?

144仕様書無しさん:02/08/22 18:47
もっとみんな冷静になって。
最近変な人多すぎ。
レスつけちゃだめ。
145仕様書無しさん:02/08/22 19:10
>>144
禿同。
変なやつは放置って事で。
146仕様書無しさん:02/08/22 19:17
>>145は放置でおながいします。
147仕様書無しさん:02/08/22 21:56
>>141
地味に失敗しとるのう
148仕様書無しさん:02/08/23 00:04
>>130
多分手なりでコード書いてると思うんだよね、その人。
やっぱ整理しなきゃだめす。
149仕様書無しさん:02/08/23 11:43
If List(0) <> "" Or List(1) <> "" Or List(2) <> "" Then
MsgBox "データが入力されてません。"
End If

150 :02/08/23 12:43
変数名がわけわからん。
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);
154仕様書無しさん:02/08/23 17:00
>>153
それ推奨してたところあったな。
155仕様書無しさん:02/08/23 18:02
2〜3人で作業したとあるプロジェクトが完了。
納品後に、
「このプロジェクトはヲレに任せろ。ヲレがメンテする。」
つった先輩社員が、客先から不具合を指摘される毎に、
「ココ、ヲレじゃなくてXX氏(現在出向中)が組んだところだから
よくわからない。お前が客先の話聞いて、直しといて。」

・・・だって。(゚Д゚)ハァ?
つか、ソースの保守するっつったヤツが、他人のソースが
わからんって・・・保守って自分のトコだけか?
普通、保守すんなら他人のソースだろうが、読むだろ。

しかも、不具合の内容はちょっと考えれば直せるようなもの。
ちゃんとソース見てから、判らんつったのか?コイツ・・・。

もういい・・・勘弁してくれ・・・。
156仕様書無しさん:02/08/23 19:43
>>155

むしろこっち向けのネタでわ。

この会社辞めようと思った上司の一言#3
http://pc.2ch.net/test/read.cgi/prog/1024763650/l50
157仕様書無しさん:02/08/23 20:25
>>153
連続ifはいいけど
無限ループはwhile(1){〜}で先頭で確認させてくれ
158仕様書無しさん:02/08/23 20:47
>>157
いや、あれはbreakで抜けるブロックを作るためにループしない
whileを使うのがポイント。
159仕様書無しさん:02/08/23 21:17
>154
とりあえず晒しとけ。
160153:02/08/23 21:41
>>157
>>158の言うとおり、ループはさせない。
goto 使いたくないから(だと思う)。

一連の処理があって、途中である条件が満たされたら(エラーとか)
終了処理をさせて終わるって時に使うてるらしい。

最初、この人は意味無い while(0) で何をしたいのかと悩んじゃったよ。
スパゲティーにならなけりゃ goto 使ってもいいじゃん。
161まnこ:02/08/23 22:00
>>153
switchじゃだめなの?
1629:02/08/23 22:03
>>161
スイッチない時代のソースなんだよ。きっと。
そんな時代があったのかしらねーけど。
163仕様書無しさん:02/08/23 22:05
>>161
switchの方が処理が遅いと思っている人がいるんだよ
164仕様書無しさん:02/08/23 22:22
>>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;
 ...
165仕様書無しさん:02/08/23 22:25
>>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
>>168
あとね、>>153 みたいな書き方は、マルチスレッドプログラミングではよくやる手だよ。
>>153 がそうだとは、言わないが。
170仕様書無しさん:02/08/23 22:52
>>153
} while (0);
これは、無限ループですか?
171153=160:02/08/23 22:52
>>164、166の言う通りです。
Cなんで例外は使えないです。これ書いた人も例外が使えたら使ってたと思
う(?)。
まぁ他部署の人が書いたってだけで誰が書いたのかはわからんから真意は
不明だが。
ほんと本末転倒だよねぇ。
172仕様書無しさん:02/08/23 22:55
>>171
普通は、問い合わせ関数にする、に1票!
173153:02/08/23 23:01
>>168よ、JAVA等は例外が使えるからすっきり書けるけど、Cなので例外は無いの
だよ。
goto 使わないで、if〜else if〜else でやろうとすると、それはそれで見づら
くなるのよ。

>>170
「} while(0);」は無限ループじゃないです。ループ*しない*です。
174仕様書無しさん:02/08/23 23:13
あはん
175仕様書無しさん:02/08/23 23:19
>>173
>>172 が、いいこと言った!
176153=173:02/08/23 23:38
>>175

うむ。それ(>>172)がいいだな。
ただ、似たようでちょっとずつ違う処理の流れが多数だと、しっくりこな
いかも。
まぁ何事も極端に走りすぎるのはどうかということで。
177仕様書無しさん:02/08/23 23:38
もうじき、俺のソースがここにさらされるだろう。
178164:02/08/24 00:08
>>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){
〜〜〜
}
ちなみに、真ん中のやつは変数宣言でバレて書き直させられました。
180仕様書無しさん:02/08/24 00:17
>>179
客に出さないやつだったら、おれは、許す。
しかし客にだすやつだったら、だめぽ。
181179:02/08/24 00:33
>>180
もう客先には納品済みです。
つーか、運用開始してます。
182仕様書無しさん:02/08/24 00:36
それは勇気ありだなぁ。
ところで、おれ最初のwhileのやつわかんないんだけど、どう見るの?
2番目はfor(;_;) の書き間違いだよね?
183153:02/08/24 00:59
goto、if〜else で思い出したが、以前いた会社で

 if (〜) {
  〜;
  goto AAA;
 }
 else {
  〜;
 }
 〜;
 〜;
 if (〜) {
AAA:
  〜;
 }
 〜;

とかって、if ブロックの中に飛び込む goto があったなぁ。
こういう goto は止めてくれ。
184179:02/08/24 01:16
>>182
最初のはわざとfor()使ってないだけです(タイプ数ぶん墓穴掘ってるだけか)
2番目は、、、ダメだ寝ょぅ。
185仕様書無しさん:02/08/24 01:18
一度 >183 のようなコード書く人の頭の中みてみたい
186仕様書無しさん:02/08/24 01:34
>>185
しばらくアセンブラやってると、そういうコードを思い付くようになった。
187仕様書無しさん:02/08/24 01:50
BASIC時代はそんなの日常茶飯事
188仕様書無しさん:02/08/24 11:16
>179
次はこうしとけば大丈夫。

i = 0;
AAA:
〜処理〜
if (i < n) goto AAA;


ラベルはわざと「AAA-0101010101」みたいな番号製にしとけば混乱させられるね。
#defineで3重置き換えにするとメンテも困難になるし。

でもさ、むかついたからってこんな書きかたしても自分の評価が下がるだけだよ
189仕様書無しさん:02/08/24 11:56
昔、ものすごい待遇の悪い(給料が…とかそういうレベルでなくて)会社で働いてて、辞める時に
一度だけそういうソースを書いた事がある。
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" っていうのもある。

中身は説明しなくても見当がつきますよね。。。
192仕様書無しさん:02/08/24 12:08
>>191
……頑張れ…。

そういえば去年かな…VBで書かれたソースをVCに移植することになったんだけど、
そのソースがふるってた…変数名が「型名+通し番号」なんだよ…全部。もうね、アホかと(略。

193仕様書無しさん:02/08/24 12:15
>>192
>>190 ですが

お互いたいへんですね。
仕事としてのプログラマーになってから質が落ちました。
へんな約束事しかりチームワークが難しいね。

通し番号の命名規則はどこ行ってもあるね。
モチベーションがたおち。
194192:02/08/24 12:50
確かにお互い大変ですな…。
ハンガリアンは意味付けがあるからまだ許せるけど、通し番号はちょっとね。
何にせよ、臨時で入ってきた仕事だったのでもう関わることは無いと思うけど…。
そのコード書いたヒトの職歴聞いたら元COBO(略。
それで仕事できる気になって「なんで給料上がらないんだ」とかクダ巻いてるそうで。
…こういうところで評判落してるのに何故気が付かないのかね。
195仕様書無しさん:02/08/24 13:40
ここに晒すのにぴったりのくそコードがあった。
誰だ、こんなもんかいたやつぁ!

…1年前の漏れ…。
だれかコロシテ…
196仕様書無しさん:02/08/24 14:13
>>195 うpきぼんぬ
197名無しさん:02/08/24 16:22
昨日自分で書いたコードですら、今日は恥ずかしく思える。

日々精進。
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
正直、コードには執着しない。
200仕様書無しさん:02/08/24 19:20
>199
うそこけよ。
以前「俺はコーディングスタイルなんてどうでもいい」なんて言ってたやつが
「ここの括弧のつけ方辞めようよ」って一番騒いでたりしたしな。
201仕様書無しさん:02/08/24 21:11
前代未聞のファイル入出力をみました


何をどうやればこんな処理になるんだろう
とにかく絶句
202仕様書無しさん:02/08/24 21:45
晒せ.
203仕様書無しさん:02/08/24 21:53
1関数578行、return文17個。
204仕様書無しさん:02/08/24 21:56
>>203
特に普通だろ。
オレのソースはたいてい1000行は越えるぞ
最高5000行くらいのがあったな。
205仕様書無しさん:02/08/24 22:01
>>203
どうして関数分けませんか?
今日びオーバーヘッド気にしますか?
206仕様書無しさん:02/08/24 22:03
>>204
えっと…笑うところだよね?

1関数が3Kあるソースを押し付けられたときは気が狂いそうになった。
深いネストの先に switch case があって、そこで処理を全部やってる。
同じような code がいたるところに出てきて迷路に迷い込んだようだった。
207仕様書無しさん:02/08/24 22:06
>>204
>特に普通だろ。
日本語能力すらアレですか。
208仕様書無しさん:02/08/24 22:14
関数分けたら引数作るのめんどうじゃん
209仕様書無しさん:02/08/24 22:22
>>208
!!!
210仕様書無しさん:02/08/24 22:24
>>208はネタ。
211仕様書無しさん:02/08/24 22:25
>>208
グローバル変数を使えよ。
212仕様書無しさん:02/08/24 22:27
変数はグローバルに決まってるじゃん。何いってんの?
213仕様書無しさん:02/08/24 22:34
おまえらのいる会社には就職しません(w
214仕様書無しさん:02/08/24 22:38
「1クラス1メソッドなのでシンプル&メンテナンスフリーです!」

これ、「大きな青」の子会社がうたってた営業トークです。

結果としてシステムは「平均3000ステップ/1メソッド」に。

言語はJavaでした。。。
WSAがまた重くてね、デバッグするときは発狂寸前でした。。。
215仕様書無しさん:02/08/24 22:41
>>212
ふつーグローバルに

int data[1000];

と変数を取って、あとはキャストして使い回すよな。
216仕様書無しさん:02/08/24 22:43
そういえば、
”引数が多いのは美しくない”
とかいって、その関数用の構造体を定義してたのがいたな。

もちろん、その関数でしか使わない。
217仕様書無しさん:02/08/24 22:43
>>215
Javaではそのてのキャストはできないというわな
218仕様書無しさん:02/08/24 22:44
>>215
うそーん。
オレはキャストするのめんどうだから
int intData[1000];
char charData[1000];
って感じにするな。
219仕様書無しさん:02/08/24 22:48
ネタ発表会になってきました
220仕様書無しさん:02/08/24 22:49
>>167
これって何か変?
221仕様書無しさん:02/08/24 23:34
/*規制中の場合は再リトライ*/
「3回目以降」という意味かと思ったが、そうでもなかった。



if(roop_flg == 0 ) /*ループフラグが0の場合*/
{
  break;  /*ループを抜ける*/
}
コメントの何たるかを理解していない典型。
roop_flgという変数名もどうかと。スペル間違ってるし。
それ以前にこんなことでフラグなんか使うな。
222仕様書無しさん:02/08/24 23:38
さらにそのroop_flgが、ループの別の場所では、
for (roop_flg = 0; roop_flg < 5; roop_flg++) {
 ..
}
とか使われてるという罠。
223仕様書無しさん:02/08/24 23:46
>>221「再リトライ」
ワラタ
224仕様書無しさん:02/08/24 23:48
ネタを書くのもいいが、それを真に受けてしまうDQNがいるのも事実。
バカボンの歌を聞いて、本当に太陽が西から昇ると信じるようなものだ。
225仕様書無しさん:02/08/25 00:11
>224
バカボンのように生きていけるヤツならそれでも良し。
人間の発する情報なんてのは常に玉石混合なんだから、自分に必要なものを見分ける能力は自分で身に付けるべき。
226仕様書無しさん:02/08/25 00:19
>>153
違う意味で頭(・∀・)イイ!!と思った(w

遅いレスですんまそん。
227仕様書無しさん:02/08/25 00:35
別の会社のヤシが書いたコードなんだけど、すべての行の 65桁目から115桁目までコメントブロックが置いてあるのを見たよ。
っていうか今も手元にあるんだが。
コメントすることもない空行にも、ご丁寧にコメントが置いてある。

/**************************//*                 */
/*****プログラム     *//*                 */
/*                  *//*                 */
/**************************//*                 */
void hoge( ptr )           /*                 */
/*<機能><hoge>:**処理  *//*                 */
                     /*                 */
long ptr;                /*<入 力>〜ポインタ     */
{                     /*                 */
  int  a_i;              /* 作業変数          */
  int  a_j;              /* 作業変数          */
                     /*                 */
(略)
  return;               /* リターンする         *//* 97.03.26 Repair @@ */ ←なんか直した跡にはこんなのがあったりして
}                     /*                 */

漏れはこのコード(DOS版)をベースにWindows版を作ったので、このコードをメンテすることはなかったのだが。
このコードを書いたヤシの几帳面さに脱帽したよ。
228仕様書無しさん:02/08/25 01:03
>>227
アセンブラを眺めてるよーな気分だね
229仕様書無しさん:02/08/25 01:21
>>227

昔、一本だけだけどイヤミでそういうソース書いた事あるよ
230仕様書無しさん:02/08/25 01:36
>>227
「リターンする」って(w、それにまでコメントはいらねぇーよ!
と突っ込んでおいて下さい。
231仕様書無しさん:02/08/25 02:12
>>227
学校で黒板丸写しにするタイプだな。要領が悪いとも言うが。
232仕様書無しさん:02/08/25 02:18
>>227

> int  a_i;              /* 作業変数          */

2回宣言してるのは?? 
233仕様書無しさん:02/08/25 02:19
>>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桁下げてやがった。

死 ね よ



236仕様書無しさん:02/08/25 07:09
小熊ちゃんのコメントを思い出したよ。
237仕様書無しさん:02/08/25 07:42
なんにも書かないヤシより100倍マシ。
238仕様書無しさん:02/08/25 07:45
>>237
適切に書く奴の10000000倍クソ。
239仕様書無しさん:02/08/25 08:03
標準タグライブラリ使うなボケ!!!
素直にスクリプト埋め込め!!!
何がメンテナンスしやすいだ!!!
んな訳ねぇだろ!!!
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行目くらい
242241:02/08/25 10:36
>>241
C++です。
243仕様書無しさん:02/08/25 11:14
>>241
マジですか?w
244仕様書無しさん:02/08/25 11:38
>>241
携帯クサイ・・・
245仕様書無しさん:02/08/25 11:53
>>241
5000 行は長過ぎるが、手法としては普通。
…って、よく見りゃグローバル変数かよ!
246241:02/08/25 12:25
マジです。
project_a.h が common.h やら system_a.h やらインクルードしてます。
common.h が・・・って調べていくと
再帰的に include してるし。
まあ #ifndef 付いているんで大丈夫だけど。
吐血・・・

携帯ではありません。
古いシステムをPCベースのシステムで動作するよう
C++で焼き直したものです。
初版は1970年代のシステムです。
247仕様書無しさん:02/08/25 13:26
イベントハンドラからはすぐにリターンしなきゃ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 ) {
        }
    }
}
248247:02/08/25 13:28
>>247
ちなみに、言語は、何か特定できないように、ちょっとずついじって、書きました。
249仕様書無しさん:02/08/25 19:58
>248
書き直したってことはつまり、君の書くコードも>247と変わらないってことだな(藁

システム的なことが漏れないようにアレンジするのは意味あるけど、
言語が特定できないようにしても対して意味ない。
250仕様書無しさん:02/08/25 20:26
>>249
いや、世界中で>>248の会社でしか使ってない言語だということもありうるぞ(w
251仕様書無しさん:02/08/25 21:48
>>248脳内専用言語か・・・
252仕様書無しさん:02/08/26 10:16
多重インクルードしようが、同じ名前の変数名を複数箇所で宣言しようが、
そこで使っていたコンパイラのオプションで自動補正されるようになっているから


 ど こ か お か し い 場 所 で も あ る の で す か ?

 コ ン パ イ ラ は エ ラ ー を 出 し ま せ ん よ 。

 今 ま で 私 た ち は 8 年 以 上 こ の 環 境 で や っ て き て い ま す 。


と胸を張って言ってた人がいたっけな。
某大手メーカーの携帯電話製造工場内の開発室にて、プロジェクトリーダーのFさん(談) (32歳、工場勤務9年目)

253仕様書無しさん:02/08/26 19:40
も、もしや、ヘッダでグローバル宣言した変数が複数ファイルに散らばって、
コンパイラが「勝手に」外部参照と認識していることに気がついていないDQNですかFさんは!?
それとも全部static?

ま、コンパイルエラーがない=問題ないプログラムって思っている時点でDQNさんなんですが。
254252:02/08/26 19:46
いや、そこが使っている某海外製の謎のコンパイラには、
「同じ変数名がグローバル宣言されている場合、最初に宣言されたもののみ有効とする」
てな、訳わからんオプションがついていたのだ。

「はあ、なんじゃそれは」と思ったが、それ以上に”その状態”が”ヤヴァい”と
気付いてない(正確にいうと、その程度の基礎も知らない)のがめちゃくちゃ怖かった。

新卒でC知らない状態から、そんなところで外部の開発環境も知らないまま
工場の片隅の開発室で、バカな先輩たちと同じコードの改良ばっかりやっていると、
そういう人間になってしまうんだなあとよくわかった。

いやいや、それよりもそんなソースで運よく動いているような携帯が、韓国や中国や
日本で売れているってのが、ものすごく怖い。
255仕様書無しさん:02/08/26 20:08
>>254

うへぇ……ひょっとすると携帯関連の開発に放り込まれそうなんだが
漏れもそういう恐怖に出会うことになるんだろうか(((;゚Д゚))))ガクガクブルブル
256253:02/08/26 22:19
>254=252
なるほど。変わったオプションがあるんだね。
8年やっても知らないこともあるだろうけど、8年も知ろうとしなかったことが逆に怖い。

まぁ、企業プログラマは基本的に「動けば良い」で育てられてるから、
いかように動かすかはあまり関心ないみたいだよ。
コピペしてシステムの基本部分をサラッと作ってしまうから、プログラムの基本は疎かってことかもね。

>255
あ、漏れも携帯関わったことあるけど最悪。
リーダーから何から考え方がガキ。そしてそのすくつだよ。
ガキのおもりに疲弊して、3ヶ月もしないうちにウテュになりますた。
257仕様書無しさん:02/08/27 09:54
携帯電話開発は、「最先端の現場」と思われがちだが
昔のソースを整理もしないままずるずる引きずり、ギャグではなく工場内で
毎日淡々と働く向上心のない人らがいっぱいいて、仕様は”昔からいる人の脳内”が
基本、スケジュールはその人たちのペースで組まれる、というのが常識。

よって、「春から●●に入社し、この課に配属されました!よろしくおねがいします!」と
いう新人にも突然「じゃあ君ここの通信のこのレイヤとこのレイヤの担当ね。仕様書作成から
プログラムまで、2〜3ヶ月で終えてね」という無茶なスケジュールを「出来て当然」という思考で
渡したりします。
258仕様書無しさん:02/08/27 11:37
害虫先のソース見てしまった。
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
261仕様書無しさん:02/08/28 05:38
>>225
細かいところをついて申し訳ないが、「玉石混交・玉石混淆(ギョクセキコンコウ)」だぞ。
日本語は大切に。
262225:02/08/28 19:49
>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);
}

264仕様書無しさん:02/08/29 12:51
>>263

……これ、「うっかりさんのバグコード」みたいな
本とかサイトからの引用だよな?
間違っても企業でこんなコード素で通したりしてないよな?
そうだと言ってくれぇーーーーー(´Д;⊂
265仕様書無しさん:02/08/29 13:05
>>263
ワロタ
266仕様書無しさん:02/08/29 13:14
>>265
笑いのツボがわからないのですが…
こんな俺は逝ってよし?
267仕様書無しさん:02/08/29 13:28
>>266
(double)でキャストしてないってことか。なんか間違い探しみたいだな。
268仕様書無しさん:02/08/29 13:30
>>266

-- #defineNINZU6/* 学生数 */
++ #define NINZU 6/* 学生数 */

-- heikin = goukei / NINZU;
++ heikin = (double)goukei / (double)NINZU;

あと、
int ten[NINZU] = { 86, 67, 46, 96, 54, 72 }; /* 点数 */
がハードコーディングになってるところも気になる。が、笑いのツボは
もっと他のところにあるんだろうな…。
269268:02/08/29 13:33
>>267
かぶった。スマソ
270仕様書無しさん:02/08/29 13:47
>>270=でべその男
271270:02/08/29 13:53
でべそでございます。その節はどうも。
272仕様書無しさん:02/08/29 14:17
>>270-271
おまえのかあちゃん・・・
273仕様書無しさん:02/08/29 23:16
return "NULL";

エラー発生時はNULLを返します。

・・・
274仕様書無しさん:02/08/29 23:41
#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);
}
275仕様書無しさん:02/08/29 23:43
- int num = sizeof(record)/sizeof(int);
+ int num = sizeof(record)/sizeof(record[0]);
276仕様書無しさん:02/08/29 23:59
- average = sum / num;
+ average = (double)sum / num;
277仕様書無しさん:02/08/30 00:05
>>223
Pascalのプログラムは「write」する前に「rewrite」する、というのは有名な話です。
278仕様書無しさん:02/08/30 01:11
>273
間違ってはいない(w
279 :02/08/30 08:32
全てのクラスがpublicで
全てのフィールドがprotectedで
車輪の再発明ばかりしている時
実行速度云々する人達ってホントに結果を計測してから言ってるんだろうか?

実際に計測した方法・数値を見せてくれればまだ納得できるし追試も可能
なんだけどな。

効率云々も然り。
281仕様書無しさん:02/08/30 11:01
うちのデムパ営業が
「このソフトメモリリークしてるんですけど!」
とか電話してくるな〜

貴様はどういう根拠でメモリリークしてるって言ってるのか(以下略
282仕様書無しさん:02/08/30 11:21
>>280
実行速度を計測しますた!と言いながら、アセンブラコードの命令数を示されてしまうという罠。
283仕様書無しさん:02/08/30 12:56
>>281
以前「メモリが足りません」のエラーを「メモリリーク」と言ったSEがいたっけな
284ななし:02/08/30 13:08
>>277
それって、リファクタリングのこと?

>>280
全部は検証し切れないでしょう。世間周知の定石的なものなら、追検証せずに
追従するのは仕方がないと思いますが。
世間に事例がなく、Aの方法とBの方法を比較してどちらがよいか判断が付かない
場合は、ベンチマークテストすべきだと思います。

VBしか経験がないんで、Cやアセンブラではどうだかわかりませんが・・・。
285仕様書無しさん:02/08/30 15:56
>>281
Purify かけました、とか…。
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
普通は、実際の運用と同等の環境作ってテストやると思われ。
プログラム単体の速度測っても仕方ないしね。
288JustFuck:02/08/30 18:40
>>286
なんで?最高速のコードじゃん。
289仕様書無しさん:02/08/30 18:42
>>288
strcpyをわざわざ自分で作ってたら、萎える。
290JustFuck:02/08/30 18:50
>>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;
}
291仕様書無しさん:02/08/30 18:51
constつけろよ、、
292仕様書無しさん:02/08/30 18:54
> 4バイトづつコピーするという
わからんでもないな。
293仕様書無しさん:02/08/30 18:56
>>290
速度求めるのなら、多バイト同時コピーは基本中の基本だと思われ。

ところで、ふと思ったんだけど、DMA使ってメモリ->メモリ間の
コピーってできないのかな?
294JustFuck:02/08/30 18:58
俺もあったぞ。これはひどいってのが。

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" でなぜ駄目なのかと子一時間。。
295JustFuck:02/08/30 19:06
>>293
それって、ユーザーモード、カーネルモードの切り替え要るの?
Solarisのbcopyはどう?
296仕様書無しさん:02/08/30 19:32
>>293
物によっては出来る。
スピード遅いし、普通MMU通らないから、あんましいいことはないと思う。

>>295
普通はいる。
Solarisは、普通にソフトでコピーしてると思う。
それだけのためにDMA使ってるのはあんまり見たことない。
297仕様書無しさん:02/08/30 19:35
>293
DMA が嬉しいのは、CPU と並列に DMA が動いてくれるからだよね。
たかだか RAM <-> RAM 間のデータコピー程度で非同期処理用の
コードを書くのは、利用者の苦労が大きすぎるような…。
298293:02/08/30 19:39
なるほど。DMA使ってもあまりうれしく無さそうですね。

ところで、>>293の多バイト同時コピーはコピーするバイト長が
分かってるときにはSIMD的で速いけど、そうでなければあまり
うれしくないと思った。
299仕様書無しさん:02/08/30 19:43
>>298
> ところで、>>293の多バイト同時コピーはコピーするバイト長が
> 分かってるときにはSIMD的で速いけど、そうでなければあまり
> うれしくないと思った。
なんで?
300293:02/08/30 19:48
strcpyとかだと、結局1バイトずつ終端文字を探さないといけなくない?
301仕様書無しさん:02/08/30 19:49
でもコピーのコストは下がるでしょ。
302仕様書無しさん:02/08/30 19:57
>>297
CPUバスとDMAが使用するバスが分離されてて、かつDMAコントローラが
乗ってれば並列動作も可能だろうけど、マザボとかそうなってるの?
数バイトの転送ならDMA使う必要ないけど、数kOverならDMAの方が圧倒的に早いよ。

漏れの知ってるDMAとは違うのかな?
303仕様書無しさん:02/08/30 19:59
>>290
それは32Bitバス限定で使える技かな?
それならおそらく開始判定も異常なものだと思うんだが。
304仕様書無しさん:02/08/30 20:11
>>302
数 KB 程度だとキャッシュに収まるような気が。
305仕様書無しさん:02/08/30 21:12
>>300
前にとある32bit環境の逆汗みたけど、4バイト単位で読み書きしながら判定してた。
ビット操作とかを巧みに組み合わせた判定だったよ。
306仕様書無しさん:02/08/31 09:49
>>284
PascalのRewriteは新規ファイルオープンの命令です。
307仕様書無しさん:02/08/31 10:02
車輪の存在を知らずに車輪を発明したと喜んでるのが「車輪の再発明」だと
認識してたけど・・
あるのがわかってもう一度開発してるのは強いて言えば「車輪の再製作」かな?

「車輪の再発明」よりは「車輪の再製作」のほうがまだ救いがありそう。
五十歩百歩だけど。
308仕様書無しさん:02/08/31 10:11

社命:既存特許に触れない車輪の発明

309仕様書無しさん:02/08/31 10:41
>>308
キビシー!
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++ したら上手くいったのでこう書きました。
との返事が・・・動けば理論や仕組みなど無視。

給料安いから転職するんだと。プログラマで職探し。
311仕様書無しさん:02/08/31 11:16
>>307
車輪自体は誰でも思い付く技術だけど、その車輪を作ろうとすると
そこにはいろんな技術が詰め込まれてるのに気付くんだよな。
312仕様書無しさん:02/08/31 11:18
すこし脱線するが、

新人「PC触るの初めてなんですよー」
おれ「えっ?じゃあ、なぜプログラマを志願したの?」
新人「人に職業聞かれたとき一目おかれるじゃないですかー」
おれ「それだけで?」
新人「だいたい今の新入社員ってそんなものですよ」
おれ「・・・」

今の新入社員ってそんなものなのか?
プロ意識とか誇りとかないのか?
313仕様書無しさん:02/08/31 11:22
>>312
そんな奴は昔から大多数を占めてると思うのだが。
若い会社だと設立当初のメンバーはプロ意識持ったやつが多いかも
知れないけどね。
314仕様書無しさん:02/08/31 11:30
>>312
最初はそんなもの、でも業界にいるうちに実力をつけて・・・って人は多いよ
もっとも、実力つけても最初からやる気があった人には根本的に叶わないことが
多いけどな
315仕様書無しさん:02/08/31 11:31
>>312
OLの転職希望で「派遣プログラマー・PC関係の事務」が上位にあるの知らないのか?
理由は「なんとなくやってみたいから」が殆ど

316仕様書無しさん:02/08/31 11:46
かっこいい。
響きがいい。SE。
異性にもてる。
流行っている。
儲かる(MSとかSCEとか任天堂などの情報のみ)。
知的だから。
おしゃれ系だから

PC関係のクリエータになろうと思います。
317仕様書無しさん:02/08/31 11:48
>316
嘘を嘘と見抜ける人でないと(PGになるのは)難しい。
318仕様書無しさん:02/08/31 12:20
>>317
嘘を嘘と見抜けなかったばかりにPGになってしまう。
319仕様書無しさん:02/08/31 12:35
俺は嘘を誠にする!
320仕様書無しさん:02/08/31 13:42
かっこいい。          
  ・・・知らない人にはそう思えるらしい。ただし、「自分がなればカッコイイ」である
響きがいい。SE。
  ・・・SexlEss。せっくすれす。
異性にもてる。
  ・・・女性の場合は、確かにそうだな。
流行っている。
  ・・・確かに10年前よりは流行っているな。過労死や残業による入院も流行っているが。
儲かる(MSとかSCEとか任天堂などの情報のみ)。
  ・・・確かに、会社は儲かるよな。
知的だから。
  ・・・確かに、数年前はヲタ用の知識で敬遠してたことだからな。
おしゃれ系だから
  ・・・汚死ゃ霊の間違いだろう。

PC関係のクリエータになろうと思います。
  ・・・逝け。
321仕様書無しさん:02/08/31 13:49
低級PG、SEが多くてアカンわ。
もっと淘汰されるべきだね。
情報工学学んでないやつは氏ね
322仕様書無しさん:02/08/31 14:47
情報工学ってなんですか〜?
323仕様書無しさん:02/08/31 18:11
ソフトウェアサイエンスではだめですか?
324仕様書無しさん:02/08/31 18:58
>>322
情報を工作する学問です。
325仕様書無しさん:02/08/31 19:14
>324
ということは職業は将来的には情報工作員になりますか?(藁
326仕様書無しさん:02/08/31 20:50
>>325
工作するかどうかは本人次第です。
実際に、みずぽ関係や住基関係のデータをネットで配布する
工作員も存在しています。
327仕様書無しさん:02/09/01 00:03
唯一残っているアプリレベルのプロトコル仕様のタイトルが「....(案)」と
なってるけど、じつはそれが(案)じゃなくて正式なもので社内の大掃除の時に
そのドキュメントをアプリのサポートとは関係ない人間に
捨てられてしまった時...。
328仕様書無しさん:02/09/01 02:09
コード。
  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
329仕様書無しさん:02/09/01 12:12
>>328
何でわざわざ解読困難なコードにするかなぁ。
読みやすいコードを書くのが一番だということを小一時間。

で、書き直そうとしたのだが書き直せねぇよぉ。ヽ(`Д´)ノウワァァン
330仕様書無しさん:02/09/01 12:30
それでも解読。
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分以上かかっちまったじゃねえかヽ(`Д´)ノウワァァン
331仕様書無しさん:02/09/01 13:01
漏れだったらこうかな? 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(" ");
}
332331:02/09/01 13:06
case 24を忘れてた。

case 8:
case 24:
  printf(" ");
  break;

に読み替えてオクレ。
でもこう簡単に漏れるなら、case8は捨ててこうかも・・・

default:
  if (i%8 == 0) {
    printf(" ");
  }
  else {
    printf(" ");
  }

簡潔なコーディングはムズカシイやね。
333仕様書無しさん:02/09/01 16:06
なんか泣きたくなってきた。 誰も言わなくても俺がおまえらに言ってやる。
本当にお疲れ様でした。 がんばってればきっといいことあるさ。
334仕様書無しさん:02/09/01 16:34
さっき辞めてきたよ. まぁ次の仕事が見付かってるから生活の不安とかはないんだけどな.
これから毎日PCに触らなくなるんだな, と思うとなんだが寂しいな.
335仕様書無しさん:02/09/01 16:39
>>334
詳細きぼん。
今までの仕事とか、これからの仕事 (職種) とか。
336334:02/09/01 17:23
詳細と言われても無名の会社だしなぁ…それでもイイのなら.

小さい下請会社なんだよね. すでに動いてるCOBOLのシステムとかをC++で書き直したりとか
面倒臭いのはそのままメンテナンスしたりとか…. 主に保守作業. それはそれで大切な仕事だって
分かってるし, 頑張ってはいたんだけど….

ある時, 汚い設計で, 問題点もある業務に携わったのね. で, 上司に問題点を指摘したのに
面倒だとかそんな理由で無視されたんだよね. で, 当然のように納期に間に合わなかったんだけど,
ソイツに責任転嫁されてさ. まぁクライアントに頭下げるのは開発に携わってた人間として当然の
コトだと思うけど, お前も自分のミスを認めろYO!!ヽ(`Д´)ノ…と.

で, つまらなくなったので辞めますた.


転職した先は親会社同じなんだけど, ちょっと系列が違う会社. 前からお誘いはあったんだけど,
その職場で満足してたから断ってたのね. で, いい機会だし会社変えるかぁって.
幸い, まだ若いし…(´-`).。oO(とか言ってる時点でオヤジか…).

今度の仕事は, どっちかっつーと…サポート寄りかな. 実際にクライアントとお話しして…みたいな.
デスクワークと打合せが中心になるはずだから, 前みたいにコード書いたりなんてことはない.
んで, >>333を見て, 何だか寂しかったから書き込んだワケだ.

337仕様書無しさん:02/09/01 17:44
出遅れた。

sb.append(i == 0 ? " dump: "
: i % 32 == 0 ? "\n    "
: i % 16 == 0 ? " "
: i % 8 == 0 ? " - "
: " ");

スタイルはともかく、条件の判定の順番は普通こうだろ。
338仕様書無しさん:02/09/01 17:49
あ、i%16のところとi%8のところが逆だ。
首つってきます。
339333:02/09/01 17:51
>336
なんならもっと言ってやる!!
お疲れ様でした。 このスレを見ているみんなに もっともっと いい事がありますように・・・
340仕様書無しさん:02/09/01 17:53
主よ、我らにもっと多くの試練を・・・・。
341仕様書無しさん:02/09/01 17:58
%を濫用する奴は、%演算のコストを知っているのか?
342仕様書無しさん:02/09/01 18:01
あんまりソースにこだわるのもどうかと思うよ。
もっと気楽にやろうよ。ストレス溜まるでしょ
343仕様書無しさん:02/09/01 18:19
>>341
いまどき、そんなの気にする必要も珍しいと思われ。
344仕様書無しさん:02/09/01 18:45
>>341
そんなことばっか考えてるから、君は仕事が遅いのだ。
345仕様書無しさん:02/09/01 18:54
2のべき乗の剰余演算のコストが低いから使ってんだろ。
346仕様書無しさん:02/09/01 18:57
>341

知ってる。
で、俺は上の例なら%を使うよ。文字列をフォーマットして出力する部分の方が
ずっと余計に時間がかかるからね。
347仕様書無しさん:02/09/01 19:35
>>345
% 4 なんてのは、コンパイラが最適化してシフト演算に置き換えちゃうよね。
ふつー。
348仕様書無しさん:02/09/01 19:39
>>347
コンパイラによっては最適化OFFでもシフト演算に置き換えるよ。
もはや最適化ですらないのであろう。
349仕様書無しさん:02/09/01 20:23
だからそんな細かいこと気にするなって。
禿ちゃうよ
350仕様書無しさん:02/09/01 20:28
シフトに置き換えるのは / ではないか?
i % 32 は i & 31に置き換わるのでは
351仕様書無しさん:02/09/01 20:54
352仕様書無しさん:02/09/01 20:59
>>350
そだね。
353仕様書無しさん:02/09/01 22:09
>>351
いや、化石化したPGは貧民意識がぬぐいきれなから、
そんなことは実践できないだろう。
354仕様書無しさん:02/09/01 22:11
>>353
それは変われないからだろ。
そんなヤシはもうだめぽ。

世の中はチェンジXXXであふれてるっていうのに。
355ラックヒャレコム:02/09/02 00:12
 ボーナスがない当社
 夏休みがない当社
 勝手に給料からいろいろ引き落とす当社
 若い順にリストラしてポンコツだらけの当社
 飯場みたいな当社
 総会屋みたいな当社
356仕様書無しさん:02/09/02 05:44
>354
チェンジレッド?
357仕様書無しさん:02/09/02 19:52
>354
 チェン・ジャキー?
358仕様書無しさん:02/09/02 21:55
>>356 チェンジマンはチェンジペガサスだ。
チェンジマーメイドにどきどきした当時消防の俺。
359仕様書無しさん:02/09/02 22:31
>>358
赤相当はドラゴン
360仕様書無しさん:02/09/02 22:52
星矢とごっちゃになってたよ、ごめん……
361仕様書無しさん:02/09/03 13:03
ちょっといい話し。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
あちこちから悲鳴が聞こえる泣き叫ぶ子供。瓦礫と化した家に押しつぶされる日本人。
「助けて…」という声が絶え間なく聞こえている。しかし被災した神戸の住民は、放心
したように黙って座り込んでいるだけだ。あまりのショックに下敷きになっている人を
助けることさえ忘れているのだ。
「今助けるけん。まっとんしゃい!」
こう叫んだのは共に住民として神戸に住む在日韓国人達だった。自分も血を流し怪我を
しているにも関わらず救助活動を続けた。
「ぜったい助けるけん。がんばっとー!」こうして懸命な救助活動の末助け出された人
達は1万人以上にものぼる。助けられた中学生の女の子は「在日韓国人の人がいなかっ
たら間違いなく死んでいた」と涙を流した。村山首相を始め救助活動の遅れが多くの助
けられる人たちの命を奪った。「助けるのは当たり前けん! 私ら同じ住民やもん!」
オモニ達は目に涙を浮かべていた。
362仕様書無しさん:02/09/03 13:06
はなしし?
363仕様書無しさん:02/09/03 13:09
マンセー
364仕様書無しさん:02/09/03 13:16
>>362
ヘミ猫?
365仕様書無しさん:02/09/03 13:19
>>361
みなさん気をつけてください。これは神戸地区の在日が
流しているデマです。実際には、金目のものを探して
奪っていたのが実情です。
366仕様書無しさん:02/09/03 13:31
>>365
デマなの?
>>361見て、韓国人もやるなって感心したんだけど。
367仕様書無しさん:02/09/03 13:39
>365
おまえが同じ日本人だと言うことが凄く恥ずかしい。
震災直後に運動会のごとく外で駆け回ってたのは実際頭の悪そうなおっさんヤンキーばっかりだったよ。
369仕様書無しさん:02/09/03 13:58
>>365
在日でも日本人でも人助けるヤツは助けてた. 逆にコンビニ襲ったりするような日本人もいたしな.
何故かニュースにはならないんだけど…. 俺は気が抜けて, 何もできんかった.
370仕様書無しさん:02/09/03 18:47
a++
371仕様書無しさん:02/09/03 18:56
つか、スレ違いの話やめれ。
372仕様書無しさん:02/09/03 20:09
>>367
いや、あんたは在日だから日本人じゃないだろう。
帰化したんなら一応日本人だけどな(藁
373仕様書無しさん:02/09/03 23:19
i = i++
374仕様書無しさん:02/09/04 00:17
>>373
シンプルながらワロタ。
375料金計算:02/09/04 00:21
memcpy(buf, "nannka-ippai-kaite", "nannka-ippai-kaite");

推奨だとよ。
376仕様書無しさん:02/09/04 01:47
FORTRAN77
3万行
関数3つ
関数の引数の数・約20


とある大学にあった教授の書いたソース.
こういうのって普通?
377仕様書無しさん:02/09/04 02:12
ごく普通。
繰り返しでもないとに、サブルーチン・関数(いやらしいことに FORTRAN では
この二つに区別があるのだ)ば使うち、なんばしょっとか ? 、と言われる。
378仕様書無しさん:02/09/04 12:40
わたしにとって韓国のイメージは「お兄さん」。
昔のお寺や仏像フェチな私にとっては、朝鮮半島から伝えられた文物には「あ
りがとうありがとう!」と涙流したいものがたくさんあるので。

だからこそ、というか、あの「教科書をつくる会」でしたっけ?キナ臭くて、
なんじゃそりゃってカンジ。自虐史観を覆したいとか言ってるらしいけど、は
き違えもいいとこ。ジギャクじゃなくジジツなの。何なのよ、あのおっさんた
ち。

呆れてるバアイでもないので、我々若いモノががんばりましょう。
379仕様書無しさん:02/09/04 12:42
>>378
早く半島に帰れや
380仕様書無しさん:02/09/04 12:45
スレ違いの話を続ける君達には、ゲイツ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を作れるほどの頭がないことは自覚しているの
だろうか?
384仕様書無しさん:02/09/04 16:09
>>383
どうせ、ゲイツにだって作れないし。
385仕様書無しさん:02/09/04 16:58
>383

スレ違いの話を続ける君達には、○○○○○の使用を強制する罰を与えます。
・・・・・・そうですか、もう罰は受けてますか (;´д⊂

○○○○の部分には適当なものを入れてください。

とかしてみると、結局のところ、強制されるところが問題なのだよ。
386仕様書無しさん:02/09/04 17:34
>>385
○は5文字・・・
COBOLか?
387仕様書無しさん:02/09/04 17:40
スレ違いの話を続ける君達には、MS-DOSプロンプトの使用を強制する罰を与えます。
・・・・・・そうですか、もう罰は受けてますか (;´д⊂
388仕様書無しさん:02/09/04 19:57
>スレ違いの話を続ける君達には、○○○○○の使用を強制する罰を与えます。
>・・・・・・そうですか、もう罰は受けてますか (;´д⊂

・・・・・ですまーち?
389bloom:02/09/04 20:09
390仕様書無しさん:02/09/05 00:29
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 と何か違うのですか!?
391仕様書無しさん:02/09/05 00:42
>388
うむ。その場合はこうなるな。

スレ違いの話を続ける君達には、デスマーチ(に陥っているプロジェクト)の仕様を矯正する罰を与えます。
・・・・・・そうですか、もう罰は受けてますか (;´д⊂
392仕様書無しさん:02/09/05 15:59
>>390
コンパイラってこういうアホなコードも最適化してくれるのかな? ……

movl %ecx,%edx
andl $128,%eax
andl $64,%edx
orl %edx,%eax
movl %ecx,%edx
andl $32,%edx
orl %edx,%eax
.......

だめじゃん > gcc -O3
393仕様書無しさん:02/09/05 16:54
>>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知らんのか?
395仕様書無しさん:02/09/05 17:16
>>394
forも知らない香具師が知ってるわけない。
396仕様書無しさん:02/09/05 17:25
>>393
疲れてるな…今日はもう(・∀・)カエレ!
397仕様書無しさん:02/09/05 17:30
>>394
つーか、
char msg[20] = {0x00};
では?

>>395
その割には++演算子と変数の評価の順序は知ってるようですね。
398仕様書無しさん:02/09/05 17:46
>>397
た ま た ま
399仕様書無しさん:02/09/05 17:59
正直、indexにpなんて変数名をつけるなといいたい。
一瞬ポインタかとオモタよ
400仕様書無しさん:02/09/05 18:07
>>394
ループ展開。
昔はそれなりに有効だった。
401393:02/09/05 19:45
>>396
うん、疲れてた。>>390 が「(a[0] & 128) || (a[0] & 64) …」に見えてたようだ。
帰りまつ。
402仕様書無しさん:02/09/06 00:14
>>400
68000とかそのころの話だよね・・・
403仕様書無しさん:02/09/06 01:04
>400
一行いくらの時代の話?
404仕様書無しさん:02/09/06 01:21
>>403
キャッシュとか分岐予測とかパイプラインとか無かった時代。
405仕様書無しさん:02/09/06 01:21
>>403
アセンブラ使えないとプログラマになれなかった時代
406仕様書無しさん:02/09/06 08:17
>>390
#define a ("abcd"+rand()%4)
とか言うオチじゃあないだろうか。

# それはそれでイヤなコードだが...
407仕様書無しさん:02/09/06 12:20
>404

PA-RISCでも結構効いていましたけどね。というか今試したら
Celeron(Mendocino)とかでもそれなりに効きましたが。

キャッシュとかパイプラインは関係ないのでは。Cruesoみたいなアーキテクチャ
だったらx86命令をデコードする際にループを展開とかすれば関係なくなるか
もしれません。

408仕様書無しさん:02/09/06 12:31
>>407
それは、キャッシュがでかい&多段になってるからでは?
いわゆるL1キャッシュしかなくてその大きさも小さいときは
ループ展開しないほうが速かったことはある。
409仕様書無しさん:02/09/06 18:27
a = a ;
410仕様書無しさん:02/09/06 19:17
そういえば、$a, $b, $1, $2, $3 って保存されないんだよね。
a = a;で揮発性・不揮発性を連想したよ
411仕様書無しさん:02/09/06 20:20
小さいループだと、ジャンプしまくりだからねえ。
分岐予測ユニットの性能がでちゃうのかな?
412仕様書無しさん:02/09/06 20:47
>>412
でしょうね。
パイプラインが長いと、外した時のペナルティも馬鹿にならんし。
413仕様書無しさん:02/09/06 20:48

s/412/411/
414名無し募集中。。。:02/09/06 23:43
プログラム書くときに、スゴク綺麗にソースコードを書く先輩が居るんだが、
そういうのは、みんな独学で覚えてるのか?

ネストを深くしたりすると、怒られてしまう。変数もパッと見てわかりやすくしろとか・・・・・・
415仕様書無しさん:02/09/06 23:47
>>414
切磋琢磨。
己を磨くことでし。

独学だけではダメだと思うよ。幸いに綺麗なコードを書く先輩がいるんだから、
盗む アーンド 教えてもらいましょう。
怒られた場合には、どこが悪いのか納得行くまで問い詰めませう。
416仕様書無しさん:02/09/06 23:48
>>414
基本的に独学じゃないか?
俺は人のソース見て良いと思った書き方を取り入れるようにしてる。
417414:02/09/06 23:53
>>415

奥が深い世界だな〜
俺も3年目に入るんだが、まだまだだな・・・・・・・・
技を盗むって、なんか職人の世界に似てる所もあるんだな。

>>416
そうか。今度、参考にしてみよう。
418仕様書無しさん:02/09/06 23:56
>>416
プログラミング作法とか CODE COMPLETE あたりの書籍を読むのも、一手。
419仕様書無しさん:02/09/07 00:03
「Writting solid code」もなかなか。
420仕様書無しさん:02/09/07 00:27
まず、藤原から...
421仕様書無しさん:02/09/07 01:06
>>414
そのコード見てみたいね。
会社のじゃあ無理かな。
自分もなるべく綺麗に書くようにしてるけど、
なかなか納得行くのは難しい。
422仕様書無しさん:02/09/07 01:36
>>421
そやね
なかなか身近に凄いプログラマーはいないね
むしろ先輩からは専門業界のノウハウを盗むほうがいい
ろくな先輩がいない場合は反面教師として見習え
423仕様書無しさん:02/09/07 01:38
ろくな先輩がいない場合はさっさと転職しる。
相手にしてもいいことないよ。

世の中に凄い人はたくさんいるよ。
424仕様書無しさん:02/09/07 01:40
>>419
職業プログラマなら必読ですね。
OOPLを使っているならリファクタリングも読みましょう。
425仕様書無しさん:02/09/07 01:47
>>424
ファウラーの本はいいよね。
ただ「リファクタリング」の前にデザパタを読んでおいた方が良いかも。

「Debugging the development process」も、これまたなかなか(・∀・)イイ!
426仕様書無しさん:02/09/07 05:25
絵を描くようにプログラムを書きましょう。(といっても別に絵には詳しくないのですが・・・)

簡単なことです。
1 先ず全体の構図(構造)を決めます。ここで大事なのは最初からディテールを書き込まないことです。
 絵を描くことに例えれば描きたいものの大体の配置を丸・四角等の単純な図形でレイアウトする
 ような作業に相当します。(いきなり毛や皺を一本一本の描きこみから始める人はいませんよね?)
2 あとはレイアウトした各パーツ(オブジェクトやら関数やら)に対して再び「1」の作業の繰り返しです。
 充分に構図が定まったパーツにはディテールを書き込んでいきます。この繰り返しで気付いたら
 いつの間にか完成しているはずです。

当たり前過ぎですか?でも出来てない人が多いようです。
427バキュ ◆4YMMQI62 :02/09/07 09:57
絵は芸術です。そんな決まった書き方では、おもしろいものはできませんし
世に広まるものなんて出来っこありません。

絵を書くように・・・そう、その場の感情でおもむろに筆をとり、心に描かれたものを
表現する・・・・・・・・


・・・・・・・・・・・・・・・・というのは出来ている人が多いような気がする。
428_:02/09/07 10:08
artist
429仕様書無しさん:02/09/07 10:22
絵を描くといっても、ダビンチの再来か?と思わせるようなものから
ピカソのバッタもんまで幅広いかと。
430仕様書無しさん:02/09/07 11:11
ある 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 の番号が書いてあったので助かった。
431仕様書無しさん:02/09/07 20:25
char buf[4];
int a;
int b;

〜 処理 〜

sprintf(buf, "%4d", a+b);
432仕様書無しさん:02/09/08 00:42
>>431
'\0'の分が足りない、とでも言いたいのか?
とりあえずANSI Cの仕様書を嫁。
433仕様書無しさん:02/09/08 00:52
>>431
どこが悪いのか分からん.
434仕様書無しさん:02/09/08 01:52
>>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() みたいなライブラリ関数の規定も
含まれるんですか? 文法だけでなく。

ちなみにネタではありません。
436仕様書無しさん:02/09/08 05:28
>>432
明らかに足りない。
437仕様書無しさん:02/09/08 11:36
>>435
標準関数とかいう名前で、規定があったような。
438仕様書無しさん:02/09/08 12:05
#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;
440仕様書無しさん:02/09/08 12:53
>438
プリプロセッサも前方参照できないんだよ。だからこうだる。

#define ULONG unsigned long;
#define UNSIGNED_LONG ULONG
#define NUM_PLUS UNSIGNED_LONG
#define NUMBER1 NUM_PLUS
#define NUM NUMBER1

それともネタで漏れは釣られたあはれな魚っすか?
441仕様書無しさん:02/09/08 13:22
>>440
あわれあわれ〜w
442仕様書無しさん:02/09/08 14:02
DBのデータ型が数字と文字列しかなくて、
しかも数字にすべきIDとか日付とかも文字列で、
それを扱うJavaプログラムの中もString型だらけなんですが、
この職場の連中はアフォですか?
それとも俺が物知らずなだけ?
ちなみに設計した連中はコボラー。
443仕様書無しさん:02/09/08 15:58
>>442
・・・・・・・・・・・・・・・・・・・・・・・・・・・がんがれよ。
444仕様書無しさん:02/09/08 17:10
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に入っているのか分かりやすいそうだ。
447仕様書無しさん:02/09/08 17:20
>>442 >>444 >>446
なんか、本気で「辞めよう」と思えるソースだ…。面白すぎ。
448仕様書無しさん:02/09/08 17:36
ねー、コボラーって馬鹿ばっかりなの?
元コボラーでもこんなソース書けるぞ!って人いないのかよ…。
449仕様書無しさん:02/09/08 17:52
>>446
もしかして、携帯電話関係?
450名無しさん@Emacs:02/09/08 18:10
あるヘッダーファイルにそのプログラムに使う変数が
全て記載していた。
451仕様書無しさん:02/09/08 18:25
>>446
指が拒否反応を起こしそう・・・。
452仕様書無しさん:02/09/08 18:38
446くらいの別に良いじゃん。打鍵数がちょい多くなる程度の実害しかないんだし。
453仕様書無しさん:02/09/08 19:04
>>452
ソフトウェア工学的にも言語処理系にとっても、まったく意味がない規約だから、
やるだけムダだって。

その上司、ほっとくとそのうち「句読点の使い方について」とか内部文書作って
回覧し始めるぞ。
454仕様書無しさん:02/09/08 19:06
>>453
俺はまだイイと思う。>>444>>442に比べたらね。
455仕様書無しさん:02/09/08 19:39
>>442
>>444
性能や品質を劣化させることに強いこだわりがあるんでしょうね。
そーゆー人、結構多いですよ。
「劣化」じゃなくて、「向上」の方にこだわって欲しいと思いますけど・・・。
456仕様書無しさん:02/09/08 19:40
>>450
プログラムミスが深刻なことになる組み込み系ならありうるかも
457仕様書無しさん:02/09/08 19:42
>>456
組み込み系ではそういうの普通なのん?
458仕様書無しさん:02/09/08 19:47
いや、「深刻なことになる」場合だよ
1命令を実行するごとに全部の変数の変化をトレースして
仕様どおりかどうか確認するとか。
459仕様書無しさん:02/09/08 21:12
>>450
それももしかして携帯電話系?

446も450も某携帯電話メーカー(大手、ピッチ系)で見たことある
460名無しさん@Emacs:02/09/08 21:26
>>459
普通の業務系だよ。
派遣されてきたプログラマが書いてた。
書き直させたけど。
461仕様書無しさん:02/09/09 00:16
>>448
太田純さんも元コボラーじゃなかったっけ。

>>435
誰か突っ込んで。
462仕様書無しさん:02/09/09 00:19
>442
数値ならいざ知らず、日付だとDBMSによって
仕様が違ったりするので、マルチDBなシステムだと
日付を文字列にすることはままあるぞ。
463仕様書無しさん:02/09/09 00:27
>>461
C の規格には、ライブラリ関数やマクロなども含まれる。たとえば C99 の規格書
である ISO/IEC 9899:1999 では "Chapter 7 Library" がそれ。
464仕様書無しさん:02/09/09 10:58
亀レスだが、432は「ANSICの規格書嫁」と言いたいだけちゃうんか。
オマエはANSICの規格書読んだのかと問いたい。問い詰めたい。
まぁ、432のような素人はvoidのクツでも舐めてなさいってこった。
>>444
> char *compute(char *a, char *op, char *b);
>
> コボラーが作った関数。
>
> nebiki_kakaku = compute(kakaku, "%", "-20");
>
> こんなのがたくさーん!
>
> これからこの開発チームでやっていく自信がなくなりました。
うひゃー。こりゃー凄いや。
アフォなトランスレータが吐いたようなソースだな。
466仕様書無しさん:02/09/09 14:56
>>448
いくらでもいるだろ>元コボラ

ただ、人にはふれてはいけない過去ってものがあるんだよ・・・
467仕様書無しさん:02/09/09 16:11
MsgBox "発注NOが入力されてません。" & VBCrLf & "発注NOが入力されていないとデータを登録することはできません。" & VBCrLf & "もう一度、発注書に記述されている発注NOを入力の上で登録ボタンをクリックして下さい。"
468仕様書無しさん:02/09/09 16:34
>>465
全部char*型ってのがすごいな。
469仕様書無しさん:02/09/09 19:32
>>468
なんでchat *なんだろう…(笑).
470仕様書無しさん:02/09/09 20:03
>>469
チャット型ですか。
471469:02/09/09 20:30
ガ━━(゚Д゚;)━━ソ!
472仕様書無しさん:02/09/09 22:38
>>446
秘密のヘッダをインクルードするとCALLがとんでもないものに化ける罠
473仕様書無しさん:02/09/09 23:30
漏れのコードを見て新人が3人辞めますた。。。。
474仕様書無しさん:02/09/09 23:32
(((;゚Д゚))ガクガクブルブル
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
あえて言えば、ハードコーディングの場合でも、一度文字列変数に格納してから
使った方が保守性が高いかな。
479仕様書無しさん:02/09/10 08:41
そもそもこのメッセージが出ること自体間違いとか。
条件がそろわないなら登録ボタンを押せないようにしろ、と。
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
482仕様書無しさん:02/09/10 09:58
きっと発注書を登録して印刷するプログラムなんだよ。
483仕様書無しさん:02/09/10 10:00
>>476>>479

そもそも発注書には 発注NO なんて書いてなくて、
データ登録するときに同時採番されるという仕様。
なので、479が正。<出ること自体間違い
484仕様書無しさん:02/09/10 11:14
>>483
> >>476>>479
>
> そもそも発注書には 発注NO なんて書いてなくて、
> データ登録するときに同時採番されるという仕様。
> なので、479が正。<出ること自体間違い
ふつー、そういうのはバグっていわんか?
486仕様書無しさん:02/09/10 13:07
>>479
でも情報を入力するダイアログで登録可能条件が揃うまでボタンが押下不可だと何が
原因でボタンが押下不可なのかわからずに苛々すると思います。なので登録ボタンを
押下された時点でメッセージで「どの情報が不足しているか」というのを通知してやる
(ついでに出来たら、その情報に対応するコントロールにフォーカスをうつす)方が正しい
のではないかと思います。

さらにボタンの押下可否をコントロールするためには入力項目からフォーカスアウト
(又は変更イベント)が発生する度にイベントハンドラで入力項目の正当性チェックを
しなければならないので保守性も処理効率もあまり良くない。一方「登録ボタン押下時
にチェック」の場合だと正当性チェックも一度で済む。

ただ>>483ということなら「発注NO」を入力不可項目又は非表示項目にする必要が
ありますが・・・。
487仕様書無しさん:02/09/10 14:28
>486
入力コントロールの横に、入力チェックの結果を伝える
信号をつければ解決するような。

2段落目に対しては、(ツールバー等の)更新ハンドラに
対する異議申し立てにしか見えないなぁ。
488仕様書無しさん:02/09/10 15:19
>>488=うじ虫
489仕様書無しさん:02/09/10 15:23
>>489
正解!
490仕様書無しさん:02/09/10 16:22
>>488-490=DQN
491仕様書無しさん:02/09/10 16:22
地味に490GET
492仕様書無しさん:02/09/10 18:40
遅レスですいませんが、>>172 の「問い合わせ関数」ってどういう風にするのですか?
493仕様書無しさん:02/09/10 20:58
>>467
Call Msgbox を使わずに、ソース中にステートメントや関数やらを
ごちゃ混ぜにしているのが問題?

とか違う面で考えてみる。
494仕様書無しさん:02/09/10 21:19
>>487
>入力コントロールの横に、入力チェックの結果を伝える
>信号をつければ解決するような。
そんなダイアログ見たこと無いけどな〜。ますます保守性悪くなってる
ような気がするし・・・。巷のソフトを見てみても確定ボタン押下時に
エラーチェック&エラーメッセージ出力というのが多いように思います。

>2段落目に対しては、(ツールバー等の)更新ハンドラに
>対する異議申し立てにしか見えないなぁ。
そんなつもりは毛頭ありませんが?基本的にモーダルのダイアログの
話をしているつもりですが?
495仕様書無しさん:02/09/10 22:15
>494
その「保守性」ってなんやねん。

486の2段落目で述べられていることは、
ツールバー等の更新ハンドラを否定する
根拠としても使えるが、実際問題として
「ツールバーのボタンを押したら無効か調べて
 メッセージボックス出してその原因を教える」
という動作は行うアプリは無い。どう思うか。
496仕様書無しさん:02/09/10 23:35
>>495
コントロールの数(「信号」とやらを含む)、コードの量(入力項目毎の
イベントハンドラを含む)が増えればその分保守性は落ちますが?
さらに「信号」やらは一般的でないだけに作者以外が保守する場合は
理解に苦しみそうだし・・・。


>486の2段落目で述べられていることは、
(略)
>という動作は行うアプリは無い。どう思うか。
だ〜か〜ら〜「根拠としても使えるが」って勝手に使うなっつーの・・・。
誰もツールバー云々のことは語っていないと書いたと思いますが?

第一そういうアプリはあるって!例えば状態更新の判定処理の一部に
ある程度以上の処理時間を要する判定処理があった場合その部分の
判定処理だけは更新ハンドラに記述せずにボタンを押下してから判定
するようにしたりとか。じゃないとツールバーの状態更新ハンドラなんて
結構な頻度で自動的に呼び出されるたりするんだから、そこに時間の
かかる処理を書いたらレスポンス落ちちゃうでしょ?
497仕様書無しさん:02/09/10 23:54
仕組みとして同じものなら、同じ条件で使うべき、と言っているだけ。
>ある程度以上の処理時間を要する判定処理があった場合
だったらなぜ、ツールバーだけこういう配慮をするのかと聞いている。
498仕様書無しさん:02/09/11 00:41
>>497
>仕組みとして同じものなら、同じ条件で使うべき、と言っているだけ。
????

>だったらなぜ、ツールバーだけこういう配慮をするのかと聞いている。
だ〜か〜ら〜「だけ」とはどこにも書いてねーんだけど・・・。第一こんなものは
ケースバイケースだと思います。>>496であげた例のようなケースでは一部判定
処理を分ける必要があるし。まぁ判断基準の一つとして処理頻度が高い部分に
時間を必要とする判定処理を入れたら駄目でしょってこと(すごくあたりまえ)。

正直俺には全体的に>>497が何を言いたいのかよくわからん。一つだけ確認したい
んだけど>>497
 「モーダルダイアログでは入力内容確定の意味を持つボタンは<必ず>ツールバー
 のように更新ハンドラで入力項目をチェックしてボタン押下可否の状態を更新すべし。
 そしてボタン押下可能ならその時点で全てのチェックが終了しているから、その時点
 でエラーメッセージが出るということはあり得ない。」
と言いたいの?仮にそうだとしたらもう何もいうまい。

正直DQN臭漂う>>497にはこれ以上レスする気力がありません・・・。それから
このスレの住民さん、スレとあまり関係のない話題を続けてしまって御免なさい。
499仕様書無しさん:02/09/11 01:25
ふむ。自分で書いた内容を思い出した方がいいと思うな。

>さらにボタンの押下可否をコントロールするためには入力項目からフォーカスアウト
>(又は変更イベント)が発生する度にイベントハンドラで入力項目の正当性チェックを
>しなければならないので保守性も
これに関して、ツールバーの更新ハンドラは、OnIdleのとき(または明示呼び出しの際)に
まとめて実行されるわけで、それを見習えば、保守性は低下しないと考える。

>処理効率もあまり良くない。一方「登録ボタン押下時
>にチェック」の場合だと正当性チェックも一度で済む。
については、たいがいのアプリケーションがたいがいの場合で
更新ハンドラの仕組みを用いている以上、そのほとんどの場合で、
「CPUの処理効率」は問題にならないと見る。
 また、その文では、「ケースバイケース」も明示されて
いなかったので、そう述べたまでである。
500仕様書無しさん:02/09/11 01:45
>>478
そうか?
501仕様書無しさん:02/09/11 02:46
アプリケーションがオンラインプログラムだと、
確定時に一括チェックするのが効率良いしね。
アプリケーションサーバーで動作するような
ものも然り。
チェックに関してはホントにケースバイケースだ。
項目数やDBを参照する必要ありなしでも変わる。
入力形態でも変わるしね伝票打ちだとオペレータ
は画面なんて見ないし。

ま、今更ながら当たり前の話を書いてスマソ。

>>486
要は画面設計がスカだった、ということか?

新規入力画面と、編集画面を分けときゃ済む話だろ。
503仕様書無しさん:02/09/11 18:18
今度こそ500Get
504仕様書無しさん:02/09/11 19:33
だいぶんずれてるけど、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 'オフィスで使われるコモンダイアログを開く

506仕様書無しさん:02/09/12 19:44
> 「ツールバーのボタンを押したら無効か調べて
>  メッセージボックス出してその原因を教える」
> という動作は行うアプリは無い。どう思うか。
アプリはどうだか知らないが、Web系の画面の場合は
ボタンを押したら入力チェックというシステムが殆どだな。
# 2chの書き込みボタンもそうだよね。
507仕様書無しさん:02/09/12 20:45
> 「ツールバーのボタンを押したら無効か調べて
無効ボタンのデザイン予算が取れなかったと思われ。
508仕様書無しさん:02/09/12 21:55
>>505

ガイシュツでは?
509仕様書無しさん:02/09/12 22:25
関数は略式にしてまふ。


int main(void) {
  print_err("なんとかエラー", NULL);
}

void print_err(char *title, char *msg1) {
printf("%s : %s %s\n", title, msg1);
}
510仕様書無しさん:02/09/12 22:30
>>509

printfの書式指定に対して引数が足りないのは誤記?
それともまさかそこがツッコミどころ?違うと言ってくれー(つ´д`;)
511関数に戻り値の...:02/09/13 19:48
>>509
何とかエラー : (null) ダケケケfm
512仕様書無しさん:02/09/13 22:47
ソース内に唐突に
//うんこ
513仕様書無しさん:02/09/13 23:09
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 見たら一気に脱力しそうだ。
辞めた奴の嫌がらせじゃねーの?
516仕様書無しさん:02/09/13 23:41
>>513
それも某携帯電話メーカーで見たことあるな
517仕様書無しさん:02/09/13 23:44
//キーワードでGrepでもかけるんじゃねえか?

今時Java開発でIDE使わないやつはアホだと思うね。
フリーの奴でも十分使えるぞ…
518仕様書無しさん:02/09/13 23:45
エラーをcatchした後でエラー処理を何もしないのは止めてくれ。
バグを見つけづらくしているだけだ。
そんなことする位だったらcatchするな!!
519仕様書無しさん:02/09/14 00:33
>>518
catch しないとコンパイラが怒るからでは?
…書き方が悪いな「怒られている」とそいつが感じているかでは? か

どんな言語でもそうだけど、「なぜそう設計しているのか」が理解できていないと、
多くの人に理解してもらえるコードを書くのは難しいね。

#ちなみに明日出勤の人、どのくらいいます?
520せつね〜:02/09/14 00:37
パワービルダーって(−〜−)
521≠513:02/09/14 01:04
>>514
うちの新人に
「ソースにはわかりやすいコメントを…」
と言ったら、そんなコメントを付けたヤシがいたよ(´・ω・`)
522仕様書無しさん:02/09/14 01:20
携帯で見たって書き込みがやたらに多いけど
携帯の開発ってそれほどまでに糞なの?
523仕様書無しさん:02/09/14 01:31
>>513
 6行目のコメントだけは少し評価できる罠。
524仕様書無しさん:02/09/14 01:31
>>522
知らない方が幸せな事ってあるよな?
ほんとにヒデェのが多いんだぜ。
sourceforge.jp なんかで一本、
オープンのリファレンス実装でも
できねぇかな。




525仕様書無しさん:02/09/14 01:32
>>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にも詳しくなってきた(涙。
530仕様書無しさん:02/09/14 09:34
>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ポインタ */

大規模システムの共通関数は、まともな奴に作らせてください。
おながいです、不治痛さん。
534_:02/09/14 15:11
大事件!!DJクラブ板にて、

麻薬常習者がfusianasanに引っかかる!!

これは逮捕に発展するかも!

祭りの予感!!

DJクラブ板(xxxxバキバキな奴集まれxxxx)より


http://music.2ch.net/test/read.cgi/dj/1031033092/
535ななし:02/09/14 16:46
>>533
まともな香具師がひとりもいなかったら、どうしますか?
536仕様書無しさん:02/09/14 17:11
>>535
スレタイどおりの行動を取る
537仕様書無しさん:02/09/14 17:18
次スレは実情を反映して、
「この会社もうだめぽ、と思ったソースコード」
あたりにするのはどうか。
538仕様書無しさん:02/09/14 18:24
いや、どうせなら現状を反映して

この会社もう不治痛と思ったソースコード

なんてのはどうかと。
539仕様書無しさん:02/09/14 18:52
#define CALL goto



















いまやっているしごと。
source は CALL だらけ。
関数がねーよ。機能ごとにラベルをつけて処理を書く。
どうなってんだって感じ。
540学生:02/09/14 18:59
え?これってネタじゃなかったの?
だとしたら大変だあね、あはは。
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
ノアを八百長と言う人たちへ。あなたたちは人間を信じられない可哀想な人たちです。
どうしてそんな悲しいことを言うのか理解出来ません。
三沢は自著ではっきりと「八百長ではない」と言ってます。なのに、あなたたちは三沢が嘘
をついてるとでも言いたいのですか?
小橋も秋山も大森も、はたまた新日の選手たちも、みんな実はインチキをやっていて、仕事が
終わるとロッカールームでぺロリと舌を出してるとでも言いたいのですか?熱狂して応援
してる客に対して、内心「この単純馬鹿が」と思ってるとでも?
私はそんなことは絶対に信じられません。あり得ない事だと思います。
プロレスラーはみんな一生懸命で、真面目で、誠実な人たちだと思います。私は彼らを信用
します。誰が何と言おうと。
妙な噂に惑わされないで、もっと純粋な心でプロレスを見て欲しいです。お願いします。
546仕様書無しさん:02/09/14 20:59
>>545
わかったよ。ごめん。
547仕様書無しさん:02/09/14 21:07
>>545
たしかにこんなコードが書かれてた日には、会社を辞めたくもなるわな。
548仕様書無しさん:02/09/14 22:01
>>547
ワラタ
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がこれかよ!
552sage:02/09/15 09:12
ブラクラを防止する方法
結構役に立つ
http://kobe.cool.ne.jp/sowin/
553仕様書無しさん:02/09/15 09:19
>>552
ブラクラ
554仕様書無しさん:02/09/16 07:45
555get前夜祭
555仕様書無しさん:02/09/16 11:06
124げt
556仕様書無しさん:02/09/16 12:46
一応プログラマなんだから、
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使うしか方法ないと思うぞ?
どこの職場でもそうだった
561仕様書無しさん:02/09/16 16:52
>>560
strconv使うだろ、普通?
562仕様書無しさん:02/09/16 16:54
>>560
ネタか本気かDOCHIだ
563:02/09/16 18:11
int cnt; //半島のカウンタ
564仕様書無しさん:02/09/16 18:12
>>557
どこがおかしいの?
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を使って開発する人がいる。

以上、我らのチームリーダー(反面教師?)のソースコードです。
チームメンバーたちはそろそろ会社を辞めようと裏で相談しております。
566560:02/09/16 20:37
>>561
はあ?
strconv使ってからどうチェックするんだ
全角文字を半角文字にして、その長さが前と違ったら全角か、とか見るのか?
そんな面倒なことやるよりファイルにするほうが一般的だと思うんだが。
567仕様書無しさん:02/09/16 20:38
>>566=素人
568仕様書無しさん:02/09/16 20:45
>>562
どうやら本気らしいぞ。
569仕様書無しさん:02/09/16 20:45
>>566
ネタ
570ネタニマジレス:02/09/16 22:04
>566
vbFromUnicodeでシステム既定(Sjis等)にすれば一発やん・・・
ファイルにするなんてぜんぜん一般的じゃないと思うけど(w
571仕様書無しさん:02/09/16 22:40
>>566
なんで『LenB』をしらんのだ。ヽ(´ー`)ノ
572仕様書無しさん:02/09/16 22:44
>>571
32ビット化されたVBを知らないの? っていうか、ネタか。
573仕様書無しさん:02/09/16 22:56
>>570
詳細キボンsage
574560:02/09/16 23:16
>>571
アホ発見!
LenBしてもVBでは半角文字は2バイト扱い、全角文字も2バイト扱いになるの知らないのか!
中途半端な知識だけで煽ってんじゃねーよ!
プログラム組んだことあるのか?ないだろ?
あ、コボラーかごめんごめん(w
575558:02/09/16 23:29
>>560及び一連のカキコ

・・・あの先輩かな? 
からかった時も >>574 のようなこと言ってたな。。。

先輩なら、「お前ほんっとダメ」と言われて
会社クビになった時の心境を教えてくだちい。
576業 ◆kaRMAJ7. :02/09/16 23:35
LenB(StrConv("a", vbFromUnicode)) = 1
LenB(StrConv("あ", vbFromUnicode)) = 2

・・・えっ?こうじゃないの?>560
577仕様書無しさん:02/09/16 23:42
>576
(゜ー゜)(。_。)(゜-゜)(。_。)ウンウンそうですよねぇ
578仕様書無しさん:02/09/16 23:46
>>576
もういいよおまえ、氏ねよ
579仕様書無しさん:02/09/16 23:47
L=LenB( StrConv( S, vbFromUnicode, &h0411))
あたりかな?
580579:02/09/16 23:48
激しく乗り遅れた...
581仕様書無しさん:02/09/16 23:50
>>579
&h0411ってなに?そんなのいるの?
582仕様書無しさん:02/09/16 23:52
なんだ、本当に中学生の集いなんだな。LenBが最初から2を返す仕様だと頭から
信じこんでるのか。571.572参照 もっとも571は10年前で化石化しているワナ
583仕様書無しさん:02/09/16 23:56
VB知らんのやけど、
> if filelen("MOJICHECK.DAT") = 4 then
なんでここは4なん?
584仕様書無しさん:02/09/16 23:56
>>582
つーか、VBなんてまともな奴は使わなねーよ(w
585すぷーん ◆spoonCC. :02/09/16 23:59
>>584
> 使わなねーよ(w

ほう、VBユーザですか?(w
586仕様書無しさん:02/09/17 00:00
>>585
ムキになるなよ、なんちゃってPG(w
587仕様書無しさん:02/09/17 00:01
Label低いなVBやってる奴等は
588仕様書無しさん:02/09/17 00:01
>581
明示的に国別指定を書いているだけだろ。
日本語環境でしか使用しないならきにせんでいいよ。
589仕様書無しさん:02/09/17 00:03
>>583
多分改行(CR/LF)分じゃないかな。

ところで、
> function check_moji_1byte_2byte = 1 '漢字
ここって 'function' いるんだっけ?
590仕様書無しさん:02/09/17 00:03
>>588
アルカイーダの方ですか?
591仕様書無しさん:02/09/17 00:04
560って馬鹿だな。
592仕様書無しさん:02/09/17 00:09
>>591
あっはっはっはっは
爆笑してしまった。
VB5年もやってんだ(VBなんて5年もやるのかよ)
どこの職場でもなんだ(どんな職場なんだよ)
優良なソースなんだってさ(たまげた)
よくこんなバカが雇ってもらえるよな。
593すぷーん ◆spoonCC. :02/09/17 00:10
>>592
おや?
ツボにはまった人がいるようです。
594仕様書無しさん:02/09/17 00:12
>>592
VBを5年もやるのは仕事なら珍しくないけど。
まぁ560は5年もやってあの程度なら氏んだほうがいいね。
595仕様書無しさん:02/09/17 00:12
ドツボにはまった人ならこの板にたくさんいるぞ。
596仕様書無しさん:02/09/17 00:12
>>592
タイムシェアリングってやつだな
597仕様書無しさん:02/09/17 00:17
おいおい、おまえらあんまりいじめるなよ
560自殺しちゃうよ
598仕様書無しさん:02/09/17 00:45
>>597
自殺はともかく、職業を変えてくれた方が世界平和に貢献しそうな気が。
599仕様書無しさん:02/09/17 00:56
catch(Exception err){
System.exit(1);
} //異常終了

問題はこれがEJBの中に書いてあったってことだな。
600仕様書無しさん:02/09/17 01:18
>>599
catch文それだけ?

(Exception errってのもやばいな、そいつの理解度)
601561:02/09/17 01:20
>>566
560なんかに「はぁ?」って言われた・・・鬱だ。
602仕様書無しさん:02/09/17 01:27
>>561
おまえエタ・非人だ
603仕様書無しさん:02/09/17 01:35
>>602
士 農 工 商 エタ 非人 犬 猫 プログラマ アニメーター

…プログラマより上じゃん
604558:02/09/17 02:13
イパーイ釣れた

満足満足




さあ寝よう
605仕様書無しさん:02/09/17 02:36
>>604
560に感謝しとけよ。
606仕様書無しさん:02/09/17 04:09
>>604
君が560でもあるのなら、その「イパーイ釣れた」は正解かもしれんが、
558を書いただけなんだったら間違い。君が釣ったのは560だた一人。
560がこの盛り上がりの根だから。
607仕様書無しさん:02/09/17 08:15

あ〜ん、VBなんて使ったこと無いから、せっかくの馬鹿スレなのに乗れないよ〜。


608558(本物):02/09/17 08:16
釣ってなんかいないよ!!
609仕様書無しさん:02/09/17 08:39
>>558以下たくさん

ひっでぇなあ・・・。
(唖然)
610仕様書無しさん:02/09/17 08:50
>>608
ワラカシテもらた
先輩クビになってよかったですね
611.:02/09/17 10:03
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
>>611
何に使うの?
614仕様書無しさん:02/09/17 12:29
sage忘れた
615仕様書無しさん:02/09/17 20:06
>>603
なるほど…
アニメーターよりは上なのか…つД`)
616仕様書無しさん:02/09/17 20:14
558 の処理は、ディスクに書きこめなかった時の
例外処理がなかったり、他プロセスで同処理が動
いていた時に判定をミスるところが突っ込みドコロ
と言うことで良いのでしょうか?
617仕様書無しさん:02/09/17 23:00
#if 1
処理
#else
//
//#if 1
//旧処理
//#else
////旧々処理
//#endif
#endif

もうね………

ちなみに、旧々処理が汚い元ソース
旧処理がそれをデバッグしたやつ
で、処理が「旧処理が汚いから書き直したもの」らしい

暇つぶしに消してみたら、3000行あったmainが900行近くまで減りますた
618561:02/09/17 23:07
>>616
ヽ(`д´)ノ もう釣られねーよ!。
619仕様書無しさん:02/09/17 23:17
>618
と反応してる時点で釣られてまつ(藁
620仕様書無しさん:02/09/18 00:38
VBで作られていたActiveX、プロパティが700ほどあった。
こんなにもプロパティが増えると事前バインディングができなくなるなんて知らなかったよ。
621仕様書無しさん:02/09/18 20:25
>>617
いっそのこと書き直せば?
622仕様書無しさん:02/09/18 21:22
>>617

すまそ
900行でも( ゚д゚)ポカーンなのだが。
main()一個の話じゃないのかな?だったらダブルスマソ。
623仕様書無しさん:02/09/19 00:35
俺が今見てるソースも

#ifdef A社向けオプション
#else
#ifdef ××機能あり
#ifndef デモ用バージョン
#else
#ifdef バグ票○○対策
#endif
#endif
#else
#ifndef ××年以前の版
#endif
#endif
#endif

みたいな感じで、もう何が何だかわからん。
624仕様書無しさん:02/09/19 02:09
>>622
このスレではmain()900行なんて驚くに値しません。
うちの職場モナー
625仕様書無しさん:02/09/19 09:29
a * a + b * b = c * c

626仕様書無しさん:02/09/19 09:37
>>625
何語?
627仕様書無しさん:02/09/19 10:01
clc
iret

628仕様書無しさん:02/09/19 10:57
>>625
これは何を意味してるの?
629仕様書無しさん:02/09/19 11:03
ピタゴラスの低利?
630仕様書無しさん:02/09/19 11:06
ブタゴリラの経理
631仕様書無しさん:02/09/19 11:31
>>627見て昔のこと思い出した。

cmp al,02h
cmp al,0Eh
cmp al,0Ah
je …

リリース直前に退職した馬鹿が残したコード。
あとはテストして出すだけだから、という上司の言葉にだまされた。
見たら中身こんなんばっか。

ビット1がONの時飛ぶべき処理なんだけど、
デバッガで見るたびALの値が違うからそのたびcmp入れたらしい。
意味ない命令はコメントアウトくらいしろ←そういう問題じゃないって。
632 :02/09/19 12:45
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
635仕様書無しさん:02/09/19 15:20
>>634
最初から小数点はいらないジャン(w
636仕様書無しさん:02/09/19 15:44
>>634
integerって小数点が入らないような気がするのですが。。。
637仕様書無しさん:02/09/19 15:46
>>634
業務に支障ないのかよ(w
638VB-Slime:02/09/19 15:47
>634
VBのint関数は変な丸め方をするけど、それを考慮してのコードなのか
単に何も考えていないだけなのか・・・・・
後者だな。きっと。
639業 ◆kaRMAJ7. :02/09/19 16:01
Intを使用すると小数点以下切り捨てです。
なので、0.5をたしてIntをすると四捨五入になるという考えではないでしょうか?

・・・Integer型には小数点以下が含まれることはないですが。
640_:02/09/19 16:52
今までオラクルとVBと専門にやってきたのですが、
JAVAサーブレットをやることになりました。
しかもいきなり実務です。
こんなんでできるほど、JAVAって簡単なんですか?
641仕様書無しさん:02/09/19 16:57
俺もC知っているだけでいきなりJAVAで8画面を2週間でやれって言われたことあるよ
しかも不治某用にカスタマイズされたJAVA環境でね

できるできる



頑張れ





そして氏(略
642640:02/09/19 17:10
JAVAわからん。
もうやめようかな・・・。嫌になってきた・・・。
はげそうやし。この仕事。
643仕様書無しさん:02/09/19 17:59
その1(Java)
 a = b +-+-+ c;

その2(JavaScript)
 a = b - - c;
644仕様書無しさん:02/09/19 18:17
>640
開発環境の整備等は他の人がやってくれるて、仕様も固まっていて、
単純にコーディングするだけ、ってならなんとかなる。
VBをちゃんと使えている人なら、スンナリとはいかないまでも移行は可能。

逆に、Javaが難しすぎると感じるなら・・・
それはVB房の証。逝ってヨシ。
645仕様書無しさん:02/09/19 18:18
640 名前:_ 投稿日:02/09/19 16:52
今までオラクルとVBと専門にやってきたのですが、
JAVAサーブレットをやることになりました。
しかもいきなり実務です。
こんなんでできるほど、JAVAって簡単なんですか?

642 名前:640 投稿日:02/09/19 17:10
JAVAわからん。
もうやめようかな・・・。嫌になってきた・・・。
はげそうやし。この仕事。


まさに即死(w
646仕様書無しさん:02/09/19 20:02
>>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
>開発環境の整備等は他の人がやってくれるて、仕様も固まっていて、
>単純にコーディングするだけ、ってなら

突然やってくれ言うて、そんな恵まれた環境になっているプロジェクトが
一体日本のどこにあるというのだ。
648仕様書無しさん:02/09/19 22:14
>>634
VBよく知らないんですが、関数と同じ名前の変数ってOKなんですか?
649仕様書無しさん:02/09/19 22:32
>>647
汎用機の世界ならありありです。
650仕様書無しさん:02/09/19 22:38
>>648
ひょっとしてネタですか?

ともかく・・・これはただの返り値です。
Cで言うreturn
pascalで言うresult

VBなんて、そんな難しいものではないです。
これくらい調べて(勉強して)下さい。
651仕様書無しさん:02/09/19 22:41
>>648は int as Integer について言っているのかも。
652仕様書無しさん:02/09/19 22:41
たしかにこんな(>>648)質問する奴とは仕事したくないな。
653仕様書無しさん:02/09/19 22:43
>>651
たった1行の文で「関数と」を見落とすような奴とも仕事したくないな
654仕様書無しさん:02/09/19 22:57
Int(関数)とint(変数)のことじゃあないのか?
655仕様書無しさん:02/09/19 23:04
int main () {

 // 延々と続く処理

 if ( k ) {
   main ();
 }
 else {

 // 延々と続く処理
}
656仕様書無しさん:02/09/19 23:10
>>655
main()の再帰呼び出しは禁止されてなかったか?
657仕様書無しさん:02/09/19 23:26
Turbo C++ では出来たが (何時の話や)
658655:02/09/19 23:29
>>656
たまたま動く処理系だったんでしょう…。
今ちょっと階乗を求めるプログラム書いたら-W -Wallで警告もなしにしっかり動きました。
659仕様書無しさん:02/09/19 23:34
mainといえども、スタートアップルーチンから呼ばれるという以外に
自分で作る関数と何の違いもないので再帰で呼び出せるのは当然だと思う。
660仕様書無しさん:02/09/19 23:50
>>659
・・・・・・・・・・・・・・・読解力ないね。。
読解・・・・・・それはロマン・・・・・。
662仕様書無しさん:02/09/20 00:29
>>654
正解。
663仕様書無しさん:02/09/20 00:30
>>659
main がコンパイル後に「ふつうの関数」としてオブジェクトファイルに格納
されているかは、何とも言えない。

オブジェクトファイルでは、シンボル名が変わってたり、スタートアップルー
チン込みのオブジェクトコードを吐いたり、main を再配置不可能なシンボル
としてマークするく処理系があるかもしれんぞ。
664仕様書無しさん:02/09/20 01:23
>>648
Int(関数)と同じ名前のint(変数)はNGです。
665仕様書無しさん:02/09/20 01:43
変数名がunko、chinko、mankoにはまいったな。
666仕様書無しさん:02/09/20 08:37
>>665
そういう業務じゃないの?
667仕様書無しさん:02/09/20 13:12
For intFor_Cnt = 0 To 10000
 intDoEvents = DoEvents
 If gintCancelFlag = 1 Then
  End
 End If
Next intFor_Cnt
668仕様書無しさん:02/09/20 13:15
>>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
670仕様書無しさん:02/09/20 13:25
FORTRAN 分かんねえよ。
解説してくれ。
671仕様書無しさん:02/09/20 13:58
>>667
DoEventsの管理?
672648:02/09/20 14:15
>>664
ありがと。

>>650
なんか書き方が悪かったせいか誤解を招いたみたいでスマソ
何について言われてるかよくわかってないのだが、Functionと勘違いしたの?
673仕様書無しさん:02/09/20 16:01
今M$にうpされてるのはbeta版らしいぞ!
674仕様書無しさん:02/09/20 20:09
>>653は阿呆ですな。
675仕様書無しさん:02/09/20 22:51
VBネタが多いようだが、VBの仕事をやってるということ自体、会社
辞めるのに十分な理由じゃないのか?
676仕様書無しさん:02/09/20 23:16
>>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桁まで出すように改鼠 */
}

「変更を改竄ってゆーなヽ(`Д´)ノ 」
「いや、よく見ろ! 『かいざん』ですらないぞ」
678仕様書無しさん:02/09/20 23:37
>>676
なんでVBだと辞めないといけないんだ???
意味不明。
679仕様書無しさん:02/09/20 23:51
>>677
ワラタ
わざわざ単語登録したのかね…
680仕様書無しさん:02/09/20 23:56
#define offsetof(a , b) (&(((a*)0)->b))

こんなマクロ作っているやつがいたぞ。どーにかしてほしーよ。
何がしたいの?
681仕様書無しさん:02/09/21 00:02
>680
作ったほうも読めないほうもワラタ
682仕様書無しさん:02/09/21 00:02
>>680
まじっすか? #include <stddef.h> すればいいだけなのにね。
stddef.hを知らんのかな?
683仕様書無しさん:02/09/21 00:08
>>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
684業 ◆kaRMAJ7. :02/09/21 00:27
>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
685仕様書無しさん:02/09/21 00:36
>>683
SysyaGonyu()に入った直後、Int( i + 0.5)の前で、iの値はどうなってるの? VB使ったことないんだけど。
暗黙の型変換?
686仕様書無しさん:02/09/21 00:38
>>683
>>684
うひゃ、カキコの前にリロードしとくんだった。スマソ。
687683:02/09/21 01:06
>684
知らんかった。便利だけど使うに使えない。
i = d '自動的に四捨五入される
とかコメントにかいときゃいいかな。
負数でも問題無しでした。
688仕様書無しさん:02/09/21 01:37
int aa[] = { 2, 3, 88, 4, 10 }; /* []の後に数値を入れなくても登録できるバグがある模様 */


このコメント見た瞬間、叫びたくなった。
689仕様書無しさん:02/09/21 01:46
>>677
そのソース書いた奴は「かいそ」とか読んでいるかも知れんな。
690仕様書無しさん:02/09/21 04:09
かいねずみってなに?
691仕様書無しさん:02/09/21 04:16
>>688
叫んどけ(w
692仕様書無しさん:02/09/21 04:18
>>690
○改鼠
×改竄

わざわざねずみで変換したぽいからネタかも・・・
693仕様書無しさん:02/09/21 07:37
「かいちゅう」と読んでいた、に一票。
694仕様書無しさん:02/09/21 13:14
かいきゅうと読み間違った人は見たことあるが変換すると改窮
多分読めなくて似てる漢字を探しただけだと思ふ
695仕様書無しさん:02/09/21 15:49
新たな2ちゃん語が誕生したスレはここですか?
696仕様書無しさん:02/09/21 16:58
ある先輩から受け継いだjavaのコード:
関係ない所も全て一括でtryで囲み、何かの例外発生→即プログラム終了。エラーと表示するだけで、
どこで何の例外が起こったのかわからない。
メンバは全部public。
引数のチェックをしてない為、ちょっとでも間違っていると例外発生。
IOエラーもnull例外も全て同じ例外を発生。
697仕様書無しさん:02/09/21 17:13
>>678
プライドのあるエンジニアならVBなんかやらないってことだら
実際「VBやるくらいだったら会社辞めます」っていう奴はよくいる
698仕様書無しさん:02/09/21 17:22
VBやるくらいだったらCOBOLやってやる。
50歩100歩。50歩も違うやんけ!!

むしろ、めくそはなくそ。
700仕様書無しさん:02/09/21 17:28
>>697
それは仕事に対するプライドが無いわがままなプログラマだよな
社会人じゃなくて趣味で仕事しているようなヤツ
もしくはVBは4ぐらいの頃に少し触っただけで、もう5も6も理解したと思い込んでいるやつ
701仕様書無しさん:02/09/21 17:39
>>697
適材適所なんでVBだからダメ、とはおれは思わないがな。
実際ささっとコントロール貼り付けて、複雑なロジックとか
複雑なデータ構造のないプログラムだったら
VBを使うべき分野じゃないかな。

もっともおれはVBが嫌いだから、
「VBやるくらいだったら会社辞めます」というやつの気持ちはよくわかる(w
702仕様書無しさん:02/09/21 17:48
>>697
本当にプライドのあるエンジニアなら道具が悪くてもどうにかしようと思う
703仕様書無しさん:02/09/21 18:02
「意志の堅い本物のプログラマなら、どんな言語の上でも FORTRAN を書ける」
704仕様書無しさん:02/09/21 18:03
>>700
そうそう 社会人なんだから「VBでもお茶組みでもコピーでもなんでもやります!」
ぐらいの意気込みがほしいよな
705仕様書無しさん:02/09/21 18:08
>実際ささっとコントロール貼り付けて、複雑なロジックとか
複雑なデータ構造のないプログラムだったら
VBを使うべき分野じゃないかな。

まさに正論。さらにそういう分野の仕事なんかやりたくないのも事実。
706仕様書無しさん:02/09/21 18:51
>>697
俺別にそういうプライドないからいい道具を使いたい

数年前、ソープの待合室で業界の人間と思しき二人組みの
「だからVBなんて誰でもできるんだからそんなやつ採用するなっていっただろ!」
「すみません、部長」

という会話を聞いて悔しくて悔しくて個室でも立たなかった。。。。

その後俺は必死でC++を勉強して、今じゃそれなりに周りからも認められそれなり
の仕事をある程度自分で選べるようになった。
VBで業務アプリ作ってた頃に比べると毎日の技術的な充実感はほんと天と地
ほどの差があるよ。
あの日ソープで無駄にした数万円はむだじゃなかった。(W









707仕様書無しさん:02/09/21 18:59
VBの適所つったら、「プログラムが本職じゃない人間が外注に出すほどじゃない
自分の仕事の一部のコンピュータ化のために使う」って所じゃないの?
708仕様書無しさん:02/09/21 19:04
「プログラムが本職じゃない人間」向けにいろいろ言語が
つくられてきたけど、死屍累々、って感じだね。
結局、「本職じゃないけど、本職並みにデキル」ヤツでないと
使えない、つーか。
709仕様書無しさん:02/09/21 19:07
>>708
そういや、「ハイパーカード」ってまだアップルは売ってるの?
710仕様書無しさん:02/09/21 19:17
>>702
仕事を選べる立場にあるなら「VB 嫌だ」っつーのもアリだとは思うけどね。
ただ、それが偉いかどうかは別問題。
711仕様書無しさん:02/09/21 19:31
VBは誰でもできる超高級言語
712仕様書無しさん:02/09/21 19:45
>>711
でも本格的なアプリを組もうとすると、やっぱり本格的なプログラマが必要に
なる。(っつか C++ の方が楽)

簡単なプログラムは簡単に、難しいプログラムはメンテナンス不可能にする
言語。それが VB
713仕様書無しさん:02/09/21 19:55
がーーーーーーーーーーーーーーーーーーーーーー
          もーーーーーーーーーーーーーーーーーーーーーー
     馬鹿ばっかーーーーーーーーーーーーーー
こんな会社辞めてやる!!!!!!!!!!!!!!!!!!!!!!!

ttp://tool-ya.ddo.jp/2ch/trash-box/file/20020921013557042.jpg
714仕様書無しさん:02/09/21 19:58
>>713 でも尻尾が喜んでるぞ。
715仕様書無しさん:02/09/21 20:18
>>713
全力で笑いますた
716仕様書無しさん:02/09/21 22:22
>>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;
 }
}

なんじゃそりゃ。
ホントになんじゃそりゃ。
720仕様書無しさん:02/09/22 05:01
>718
たたいをつかえ
721仕様書無しさん:02/09/22 07:26
>>718
そんなソース書く奴いるんだ…。素直に3つ呼べばいいのに…。
722仕様書無しさん:02/09/22 11:16
>>699
50バイト 100バイト、
50ステップ、100ステップ、
50人月、100人月

723D:02/09/22 11:25
この間外注で作成した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がろくな言語ではないとは確かに俺も思うけどね。
725仕様書無しさん:02/09/22 12:04
>VBを批判するやつは、大抵VBを知らない。VBがろくな言語ではないとは確かに俺も思うけどね。

見事な自己批判だ
726仕様書無しさん:02/09/22 12:26
全然知らないか、初心者でもできる標準的な機能しか知らないんだろう。
でも2ちゃんとかで叩かれてたり、会社の先輩が「糞」というのを聞いて理由もわからず「禿同!」とか言っているのが殆どだと思う
727仕様書無しさん:02/09/22 12:54
>>726
いろんな言語を極めた上で俺はVBを選択する、ってならいいが
そんな奴はいるのか?
728仕様書無しさん:02/09/22 12:56
>>727
>>724の上から3行嫁
729仕様書無しさん:02/09/22 13:11
エンジニアのプライドが許さないんなら、
OS作るところから始めれば良いじゃん。

既存のOSの上で言語がどーのとか言うのは
エンジニアのプライドは許してくれるんですか?プ
730仕様書無しさん:02/09/22 13:12
エンジニアのプライドが許さないんなら、
言語作るところから始めれば良いじゃん。

人が作った言語や環境を極めただの、どーのと
言うのはエンジニアのプライドは許してくれるんですか?ププ
731仕様書無しさん:02/09/22 13:13
エンジニアのプライドが許さないんなら、
会社つくるところから始めれば良いじゃん。

人の作った会社でVBだったら嫌だとか
言うのはエンジニアのプライドは許してくれるんですか?プププ
732仕様書無しさん:02/09/22 13:14
エンジニアのプライドが許さないんなら・・・

あぁ、飽きた。
733仕様書無しさん:02/09/22 13:27
VBでも作れるような簡単なプログラムならVBで作ればいい。
そういう意味での適材適所はみんなわかっていること。

ただしVBでも作れるような簡単な仕事はやりたくない っていうのが
みんなの本音
734仕様書無しさん:02/09/22 13:35
>>723

細かい知識はともかく、処理に掛かるコストの目安ぐらいは感覚的に
把握していないと寒いですね。

そもそも、その程度の常識は、VBマガジンなり日経ソフトウェアなり
を少しでもかじっていればわかりそうなものだ。

ちなみに、それを書いた椰子って、田舎の害虫さんですよね。
(首都圏や近畿だったら、そんなDQNを飼ってる会社がいるとはちょっと
信じられない話ですが・・・)
735仕様書無しさん:02/09/22 13:40
>>734
たくさん居るよ。ろくすっぽ研修もやってない新人、他社のプロジェクトに
突っ込む会社とか。
736仕様書無しさん:02/09/22 13:42
>>735

ある意味、そんなDQN害社に仕事を発注する会社も同罪。
737仕様書無しさん:02/09/22 14:07
隣の国に行くには飛行機を利用するが、隣の町に行くにはバスで十分。
それが適材適所。

バスも飛行機も両方必要なのだから、飛行機のパイロットに対して
バスの運転手は引け目をかんじることは何もない。

VBプログラマの皆さんも誇りを持ってがんばってください

自己批判しる!!
739仕様書無しさん:02/09/22 14:30
>>734
いるよ。実行してほったらかしにしてると、OSの仮想メモリまで限界超えました(w
ソースみたら数十万件のレコード全部読み込んでる。

さらにウィンドウをリサイズしたら使われてないボタンが出てきたり。
そのシステムをチューニングして機能拡張してくれって仕事だったけど断りますた。
740仕様書無しさん:02/09/22 14:42
>>729-731 は、もうちょっと最適化について勉強すべきだな。
この程度の最適化ができずに毎回毎回同じこと書いているバカな先輩とか729とか731とかが多いんだよねえ、全く。
プライドよりも文章整理の技術を学ぼうね。
741仕様書無しさん:02/09/22 14:45
ネタニマジレス(・∀・)カコイイ!
742仕様書無しさん:02/09/22 14:52
>736
というよりは、自社のプログラマで賄えないから害虫雇ってるのに、
それに文句を垂れるバカがいるのが問題。
743仕様書無しさん:02/09/22 15:25
>>740
最適化と文章表現を混同しているバカがいるな。
こういうヤツは、仕様書とかで
・ボタンAを押す
・ボタンBを押す
・ボタンCを押す

ってのを、「ボタンABCを押す」とか書いちゃうんだろうねぇ。
744仕様書無しさん:02/09/22 15:56
     ∧_∧  >>743って例えが下手だね~
   ∩´∀`∩)
    \    )
     ( ( /
     ((_)

745736:02/09/22 15:56
>>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
仕様変更頻発はよくあること。別に珍しくともなんともない。
気に入らない害虫にはわざと仕様変更をするぜ。
それで文句いうような害虫は切るけどな。
このご時世だからな、害虫は切られないように、何でもするぜ。これが現実。
750仕様書無しさん:02/09/22 17:55
>>749
それ、背任罪モノだろ。
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
>>749
>>751
>>755

つうか、仕事に厳しいのと、陰険なのとは全然別だろ?
760仕様書無しさん:02/09/22 18:55
なんか1名、暇なやつが一人で頑張っている模様
761仕様書無しさん:02/09/22 18:56
>>759
そんなんだから君はダメなんだ。
実社会は矛盾だらけ。きみはそんなこともまだ判らないのか。
762仕様書無しさん:02/09/22 18:57
>>760
キミほどでは無い
763仕様書無しさん:02/09/22 18:58
>>758
アジャイルを嫁!
こまえのやっていることは「管理ごっこ」だ!
764仕様書無しさん:02/09/22 19:02
>>763
何も知らない子供は引っ込んでいなさい。
キミは大規模なプロジェクトをコントロールし、無事に出荷まで持っていった経験があるとでも言うのか。
キミは批判家気取りの無能の典型。口先ばかり、文句ばかりで実行力がまったく伴わない典型。
765仕様書無しさん:02/09/22 19:02
自己批判しる!
766仕様書無しさん:02/09/22 19:04
マ板もWebProg板に近づきつつあるな。
767仕様書無しさん:02/09/22 19:05
管理ごっこ>>764
768仕様書無しさん:02/09/22 19:07
>>764
おまえがプロジェクトを成功させてるなんて思い上がるなよ。ボケ。
周りが頑張ってるんだよ。おまえみたいな無能管理者のせいでな。
769仕様書無しさん:02/09/22 19:08
(´-`)oO(なにが楽しいんだろ...)
770仕様書無しさん:02/09/22 19:10
>> 764
ちなみに、ちみの言う「大規模」とは
何人月のプロジェクトなんだ?
そして、ファンクションポイントはいくつだ?
771仕様書無しさん:02/09/22 19:46
そもそも、規模がでかいほうが偉いと思ってる時点で無能。逝ってよし。
ソフトは人が作るんだよ。人を大切にしない管理なんてあるものか。ボケが。
給料泥棒。
そいつを雇った会社も、その下に着いちまったヤツも不幸だな。あーやだやだ。
772764:02/09/22 20:02
ステップ数でなら答えられるぜ。
ファンクションポイントなんだそりゃ?
773仕様書無しさん:02/09/22 20:05
害虫は使い捨て
これ資本主義社会の常識
774仕様書無しさん:02/09/22 20:07
なんだ、もう燃料切れか。
775仕様書無しさん:02/09/22 20:09
未熟さまるだしだな。
776仕様書無しさん:02/09/22 20:17
世の中には二種類の人間しかいない。
害虫を管理する側と害虫として管理される側
おまえは今どっち側にいるんだ。そしてどっち側になりたいんだ。
777仕様書無しさん:02/09/22 20:21
君はどこにも属さず管理もされていない自由人?
778仕様書無しさん:02/09/22 20:23
スナフキン萌え〜
779仕様書無しさん:02/09/22 20:25
>>776
ものごとを二極でしか考えられない人ですか?
あいにく世間はもうちょっと複雑にできています。
780仕様書無しさん:02/09/22 20:27
嗚呼人生スレ違い
781仕様書無しさん:02/09/22 20:58
陰険な仕様変更をかけて開発費を無駄にしてる管理者がいるスレはここですか?
782仕様書無しさん:02/09/22 21:38
s/外注/PG/ ならたまにみかけるな、そういう意見。笑い
783仕様書無しさん:02/09/22 21:43
ファンクションポイントも、アジャイルも知らずに
自分を管理者だと思っている給料泥棒がいるスレはここです。
784仕様書無しさん:02/09/22 21:55
>>783
そんな言葉を知っていたって大規模なプロジェクトをコントロールして出荷まで
持っていくことはできないんだよ。
口先だけの実行力が伴わないおこちゃまは引っ込んでいなさい。
785仕様書無しさん:02/09/22 22:04
>>784
十分条件ではないが、必要条件だろう。
786仕様書無しさん:02/09/22 22:06
>>784
おまいのような管理者が出荷した製品なんてバグだらけに決まってる。
そんなひどい品質の製品を出荷したくらいで威張るな。
どうせ顧客からのクレーム処理も外注にやらせるんだろ。おめでてーな。
たまには自分でクレーム処理してみろ。
787仕様書無しさん:02/09/22 22:17
まだやってる......
788仕様書無しさん:02/09/22 22:20
連休の中日にこんなところで罵りあってるのが
まともな社会人のわけないだろ。ふつーに考えれ。
789仕様書無しさん:02/09/22 22:46
>>788
両方とも騙り厨だなんて水差すようなこと言うなよ
連中は楽しんでんだからさ
790仕様書無しさん:02/09/22 22:54
>>788
平日にやりあってるよりは、幾分マシと思われ。
791仕様書無しさん:02/09/22 22:56
>784
あはは。その言葉をプログラマに当てはめたら凄いプログラムになるね。
必要な知識を身に付けなきゃいけないのは管理職だって一緒でしょ?

>788
まともなプログラマならここで遊べるのは休日なのが普通かと。
しかも今日は雨で外出るのも億劫だったしね。
792仕様書無しさん:02/09/22 23:15
この会社辞めようと思ったソースコード
この会社辞めようと思ったソースコード
この会社辞めようと思ったソースコード
この会社辞めようと思ったソースコード
793D:02/09/23 00:51
このスレ熱い!!

>>737
同感
再帰処理などVBが苦手な部分はC++でDLL化してユーザインターフェースはVB6でよくやってます。
やっぱり開発効率とOSまで絡むような深刻なBUGの出にくさはVBの方が強いですね。
あとVBは覚えやすいから開発経験のあまり無い奴でもそこそこ使える。
でも最近のVB.netってどう?ちょっとC/Java/C#を意識しすぎて扱いづらくなったような気がします。
これならCでやってもあんま変わらないような...
ま、そうなっても元々コードを分化してるから一からやり直しにはならないけどね。
794仕様書無しさん:02/09/23 01:00
いちいちローカル変数の前にwk_って付けるバカ
超うぜー、意味ねーよ
795仕様書無しさん:02/09/23 02:01
本人に言え!!(・∀・)
796仕様書無しさん:02/09/23 02:08
>>794
この業界入る時にそれぐらい覚悟しとけよ、脳なしがよ。
全員が自分と同じ組み方だとでも思ってんのかカス。
797仕様書無しさん:02/09/23 02:17
                    , - 、
               __ _/∠二、
             , -<ヾ.{ .∠二_ ̄_`マ__
           ,ィ'´   ,、` ´, - 、  ` ー- 、 `≧、
        /′  / , , .    、\  ヽ _    ̄`マ__
       ∠, '/  / , ' ,   ! . 、、ヽ ヽ、 、 ` ー- .∠   ̄ ` ' ー- 、
        //,'  / /ー--  ト、` 、-‐‐ヽ._ヽ ` 、 、 ___>    _ _ ..ヽ
       /! 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
害虫って要するにメーカーの奴隷のことだろ。
なんか勘違いしているヤシがいるな。
取り扱いは当然ながら、使い捨て。
メーカーの正社員でさえ厳しい状況なのに、害虫なんてただの道具さ。
799仕様書無しさん:02/09/23 05:48
>>796
自分のことを言われてカチンと来ましたか(^^)
800仕様書無しさん:02/09/23 06:25
>>794

スコープを使い分けできないヤシの免罪符ですな
801仕様書無しさん:02/09/23 06:27
>>797
よくない、というか、問題外
802仕様書無しさん:02/09/23 07:03
同僚が上司に「なんでわかんねーんだよ!給料泥棒が!」って言われ
会社を次の日から来なくなった時、いい機会だから俺も一緒に逃げよかなとおもた。
803仕様書無しさん:02/09/23 08:58
>>798
仕事を出す側からすれば、大手企業のバックがあるため単価が高いにも
関わらず、仕事の質が低いところに頼んでる余裕はない。企業名だけで
食っていける時代は終わった。
804仕様書無しさん:02/09/23 09:17
正社員って要するにメーカーの奴隷のことだろ。
なんか勘違いしているヤシがいるな。
805仕様書無しさん:02/09/23 09:26
害虫は簡単に言えば、江戸時代の小作農、貧農ってヤシよ。
まさに生かさず殺さずだね。人を大切にしないととか寝ぼけたこと言ってるヤシは人生の負け犬。

806仕様書無しさん:02/09/23 09:27
まだやってる・・・
よほど日頃の鬱憤が溜まってるんね。

プログラマーってカワイソ
807仕様書無しさん:02/09/23 09:32
>>806
それを楽しみにしているキミってお茶目
808仕様書無しさん:02/09/23 10:21
この会社辞めようと思ったソースコード
809仕様書無しさん:02/09/23 10:53
管理職は簡単に言えば、江戸時代の小作農、貧農ってヤシよ。
まさに生かさず殺さずだね。人を大切にしないととか寝ぼけたこと言ってるヤシは人生の負け犬。
810仕様書無しさん:02/09/23 10:55
ミントたんらぶ
811仕様書無しさん:02/09/23 10:56
↓ウンコ関係の仕事に就いてる奴
812仕様書無しさん:02/09/23 11:00
うんこまん○参上

ま○こ関係の仕事に就いてる奴

813コピペぽ〜:02/09/23 11:05
49 名前:仕様書無しさん :02/09/23 00:35
上司   「ハッキリしろ、結局納期には間に合うのか? trueかfalse、booleanで答えろ!」
プログラマ「 NullPointerException ... 」






} finally {
「とにかくやれ!」
}
814い、いってよし!1/2:02/09/23 11:08
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本連続しているかもしれないので...
815い、いってよし!2/2:02/09/23 11:09
j--;
if(j != 0){
STAT = MenuPoint[i]->GetMenuState(j-1 ,MF_BYPOSITION);
if(STAT & MF_SEPARATOR){
// もしかしたら5本連続しているかもしれないので...
MenuPoint[i]->DeleteMenu(j, MF_BYPOSITION);
i--;
}
// これ以上はループにしてください。
}
}
}
}
}
}
}
}
}
  ,,ノ'⌒ヽ、,
  (;;;:..○.,..:(;;)<ちょっとまてやゴルア
   ̄ノ ( ̄     アッヒャッヒャーー
 ∩(゚∀゚*)
  \    つ
   (,   (
     "''ヽ)
816仕様書無しさん:02/09/23 11:09
ウザイヤシがいるなぁー。
街中を大音量で薀蓄垂れ流す房と一緒だな。逝ってよし。

>>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年以上前のリリースなのも、

全部このスレじゃネタにもできない日常の範疇なんだな、と。

この程度で嫌気が差すようじゃ職業プログラマなんて出来ない気がしたので、
別の道にしますやっぱり。
820仕様書無しさん:02/09/23 20:12
>>819

タイヘンだね。

>この程度で嫌気が差すようじゃ職業プログラマなんて出来ない気がしたので、
>別の道にしますやっぱり。

プロでも人のプログラム触るの嫌な人多いと思うけどね。
まあ、嫌でもやるんだけど。。。
821仕様書無しさん:02/09/23 22:32
>>819

> 2スペースと4スペースとタブでのインデントが1ファイル中に混在しまくってたのも、

わずか30行程度の関数の中で、1スペ、2スペ、3スペ、4スペの全種インデントが混在
してるを見た経験あり。(w

品質は推して汁べし。
822名無しさん@おひさまのよう。:02/09/23 22:49
>>821
普通、フィルタプログラム通して直すだろ?
823仕様書無しさん:02/09/23 23:22
>>819
まぁ、畑違ったらド素人って人は居るからね。
特に PostgreSQL+WEB なんて、会社なんかにはノウハウ蓄積
されてないだろうから。その様子じゃ Database も初めてッポイ
けど、その前任者。
なんか新人が構築した臭いなぁ。
824仕様書無しさん:02/09/23 23:30
>>819
そりゃ特徴からして前任は新人ではなく明らかにCOBOLerと思われ。
こんなとこにも害毒を撒き散らすのか。
825仕様書無しさん:02/09/23 23:36
>>819
作成者は、汎用機のSEだと思う。
826仕様書無しさん:02/09/23 23:36
ソースに歴史あり
異なるタブが混在するのは、最初にソースを書いた人が8タブで、次の担当者が4タブで機能追加、
前任者は2タブが趣味、・・・
こうしていろんなタブ数が混在する。
おれも、クソみたいなやっつけ仕事ならソースをきれいにしたりはしない。
827仕様書無しさん:02/09/23 23:49
俺は人の書いた汚いコードをリファクタリングするの嫌いじゃない。
俺にやらせるとまったく別物になるけどナー
828仕様書無しさん:02/09/23 23:54
>> 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_関数を使うことになっている。
このライブラリの作者の気が知れない。
どの異言語からやってきたのだろうか?
830仕様書無しさん:02/09/24 00:09
返り値を異常に憎むのもCOBOLerの特徴だな。
831仕様書無しさん:02/09/24 00:10
>829
最近なんとなくオブジェクト指向が分かりかけて、てな奴なんじゃないの。
832仕様書無しさん:02/09/24 00:33
自分の書いたコード観ると、会社辞めたくなる。
きっと、ソフトウェア開発向いてないんだろうね。
かといって、ほかに向いてる仕事がありそうな気もしないし。
コンビニの店員って簡単なんかな。
簡単だったらいいな。
あー、もう、日曜プログラマでいいや。


って、思う。いつも。
833仕様書無しさん:02/09/24 00:38
>>829
それ、エラー処理どうするの?
834仕様書無しさん:02/09/24 00:38
コンビニの店員のほうが遙かに難しいという罠。その性格では。
835仕様書無しさん:02/09/24 00:59
>>826
俺は人の書いたソースに手を入れるときには、そのコーディングスタイルに
従うけどな。
>>835
そのソースコードが既に複数のコーディングスタイルで書かれていたら、
結局自分のコーディングスタイルで書くだろ?
そうやって歴史は作られてくんだよ。
837仕様書無しさん:02/09/24 01:24
>>836
時間がありゃ全部自分のスタイルに直しちまうんだが。

# インデント変えただけでレビューしなきゃいけないところもあったな。
838仕様書無しさん:02/09/24 01:27
>>823
いやいや、結構複数人数ではやってたみたい。
タブ数なんてファイル開けるたびに違うし。
ていうか同じファイルを次の日開けるとインデントが荒れてたりしたw

設計者がDB初めてだったのかどうかは分かんないですが、
「TEXT型なら何でも入るじゃん」という確固たる信念でTEXT型にしてたよ、
と、3代目くらいの引継ぎ者から聞いた。
…その人も聞いてたんなら止めてよ、と。
案の定数値としてそのフィールドソートしないといけない処理が一杯来たし。

ちなみに、できて何十年てな会社でもなく、やってる仕事のほとんどが
こういったPostgres+Webの開発だと思われる会社………。
839仕様書無しさん:02/09/24 02:11
>>836
> そのソースコードが既に複数のコーディングスタイルで書かれていたら、
次から、そこの仕事を断ることを決意する。
840仕様書無しさん:02/09/24 03:17
フリー配布されてるCGIのソースは結構ムゴいと思った秋の空。
841仕様書無しさん:02/09/24 03:45
>>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

843仕様書無しさん:02/09/24 11:41
ちょっと簡略化するけどこんな感じ。

'//月ごとの配列に結果をセット
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仕様書無しさん:02/09/24 12:23
>>843
4月始まりの会社か?
845843:02/09/24 12:31
>844
んだ。
その通りだす。

ちなみに↑のプログラム書いた人は弊社で
すんごいプログラムが出来るベテランとあがめられていて、
自分でもそう思っているらしい。
だから、その人の書いたコードに意見すると
すっごい勢いでムッとしやがる…。
Array1(Int_Month)=Array(Int_Month)
の1行ですむんじゃないですかって言ったときは、
それはもう………。
846仕様書無しさん:02/09/24 12:36
旧暦閏月を処理できるように準備していたに違いない。
847仕様書無しさん:02/09/24 13:05
>>843
激しく尿意!!
848仕様書無しさん:02/09/24 13:56
>>513
N*(N+1)*(2*N+1)/6
で一撃
というのはつっこみどころが違う?
849仕様書無しさん:02/09/24 14:10
なんでその式で答えが出るのかをできれば教えて欲しい…。三角数とか四角数みたいに。
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
851848:02/09/24 14:50
>849
ワシのレスに対するレスですか?マジレスをご希望?
当該プログラムの機能は
1+4+9+16+25+...+N^2という級数の和を求めることですよね。
あってる?

んで(もしわしがソースを読み違えてなければ)

http://www.nikonet.or.jp/spring/heihou/heihou.htm

でも見てくだされ。工房の数学の参考書でもいいです。
ちょっとスレの趣旨と外れたのでsage.
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 メソッドを実装しただけ。
おまえ何のために継承してんだと小一時間 (略
ここにあるようなソースコードは心臓の弱いわしには
つらいです。
854仕様書無しさん:02/09/24 23:48
>>853
君はどうせ括弧ばかり使ってるんだろ?
855仕様書無しさん:02/09/25 00:01
>>852
継承の意味もわからず extends 使ったらコンパイルエラーが
出たのでとりあえずメソッドを並べたに1000カノッサ
856仕様書無しさん:02/09/25 00:07
>>852 多態性がからむソースコードだと、まともに動作すらしないな、これ
privateメンバ変数をオーバーライドしてんな、、、
857仕様書無しさん:02/09/25 00:54
ある数値解析プログラムより(言語は Fortran)

VAR = SQRT(1.0 / (1.0 + TAN(T)**2))

何で素直に COS を使わなかったんだろう…
858仕様書無しさん:02/09/25 01:19
#define FAR far
#define INT int
#define CHAR char
#define LONG long
#define VOID void



何がしたいのやら
859仕様書無しさん:02/09/25 03:07
>>858
昔のBASICみたいに全部大文字で打ちたいんだろう。
860仕様書無しさん:02/09/25 13:15
後で#define FARとか#define INT shortとかやるつもり、に1票。
861ネタです:02/09/25 13:21
#define begin {
#define end }

藤原さんの本に出てたような気もする。
862仕様書無しさん:02/09/25 13:57
#define int short
863仕様書無しさん:02/09/25 14:14
>>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( ;; )
869仕様書無しさん:02/09/25 18:23
>>866
この会社やめとこうと思った宣伝文句
870仕様書無しさん:02/09/25 18:32
>864
きっと英文字列でもカンマ処理したんだろ(藁
871仕様書無しさん:02/09/25 21:57
>>866
u r flsh.
872仕様書無しさん:02/09/25 22:43
>>866
もしかして2ちゃんねらーを募集しているのか?
873仕様書無しさん:02/09/25 22:47
>>863
それにしても

1 typedef にする
2 int32_t のように別名で定義する

だろ。ふつー。
874仕様書無しさん:02/09/25 22:55
#define _

そのシステムではエディタで空行を打つと挿入モードから抜けるので、
空行が事実上使えなかった。
875仕様書無しさん:02/09/25 23:15
>>874
edlinとかか?
>>874
「この会社辞めようと思ったソースコード」 と言うより
むしろ 「この会社辞めようと思った開発環境」・・・。
でも、別スレ立てる程にはネタ揃わないかな??

・・・こんなの ↓ はイヤだけど。
http://pc.2ch.net/test/read.cgi/prog/1032745187/
877仕様書無しさん:02/09/26 16:22
Public Function 僕本店なの() As Boolean

End Function

頃してやろうかとオモタ
878仕様書無しさん:02/09/26 17:54
>>877
本店に行くたびに返す値をtrueにして、家に帰るときにfalseにしていたんだろうか…
879仕様書無しさん:02/09/26 21:29
やたらと空行が連続して入っているソースコード。
3行5行は当たり前、時には50行くらいずーっと空行が続いていたり。
どうやら、プリンタで印刷した時に、ちょうどいい所で切れるように
してあるらしいです……。
880仕様書無しさん:02/09/27 00:46
プリンタドライバが変わると意味無しですか?
881仕様書無しさん:02/09/27 02:52
>>879
せめて ^L にしとけと。
882仕様書無しさん:02/09/27 20:17
^Lが山ほど入ってるの、紙が無駄なんですけど…
883仕様書無しさん:02/09/27 22:26
>>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個にも満たない。
885仕様書無しさん:02/09/28 02:31
wk_data = data;

とワークに移しておきながら、実際に計算ワークにしているのはオリジナル(data変数)の値。
で、かなり先のほうにて

data = wk_data;

もうね。だめぽ。
886仕様書無しさん:02/09/28 15:25
そういえばソースコードを紙で読むってこと少なく
なったなぁ。
昔は、ストックホームに印刷されたソースコードを
眺めて悦にひたってたが・・・レーザプリンタって
趣がなくって嫌。
887仕様書無しさん:02/09/28 15:57
おれは出張の新幹線でA4に印刷したソースを読んでは赤ペンで修正してるよ。
なぜか車中だと集中できて、バグを見つけやすい。
ノートパソコンの画面を見るよりイイ
888仕様書無しさん:02/09/28 16:06
俺も印刷してタバコ吸いながらボーっと眺めてる時のほうがバグみつけやすい。
889仕様書無しさん:02/09/28 16:09
>>886
微妙にしかつながりがないが、
今の職場はお客さんからのメール、関係者には全て転送・・・
ではなくて、プリントアウトして配布です。

ソースの説明をするときもプリントアウトして説明。


なんか変。
890仕様書無しさん:02/09/28 18:19
2ちゃんでしばらく厨を煽った後でデバッグすると効率良いとか…(藁。

俺はちょっとぶらついてくるとか気分転換してからバグ取りするようにしてる。印刷はしないなぁ。
結構みんなソース印刷してデバッグしてるんやね。
891仕様書無しさん:02/09/28 21:03
以前某ケータイメーカでの話。
Cだったんだけど型が全部unsigned。キモチ悪かった...

メモリ効率重視なのかな、と認識したけど、組み込み系じゃ常識なの!?
892仕様書無しさん:02/09/28 21:10
>>891
 別に負の数にならない事が保証される変数ではunsignedになるのはいい事では?
for( short i=0 ; i<60000 ; ++i ){
}
 で無限ループに入るとかあるし。
893仕様書無しさん:02/09/28 21:26
>>891

なぜunsignedならメモリ効率重視なのかと小一時間(以下略

894仕様書無しさん:02/09/28 21:31
>>893
メモリを節約できるって意味じゃないの
ぺっ、ぺっ、ぺっ、ぺっって感じだけど
895仕様書無しさん:02/09/28 21:44
if xxxx = 1
continue
end-if.
896仕様書無しさん:02/09/28 22:04
こぼらーはDQN
897仕様書無しさん:02/09/28 22:20
うるせー!
898仕様書無しさん:02/09/28 22:44
>>891はunsignedの意味を理解してないに65535票
899仕様書無しさん:02/09/29 00:09
>>894
なぜ unsigned ならメモリを節約できるのか、
いくら考えてもわからないんですけど・・・。
900仕様書無しさん:02/09/29 00:09
>898 は >891 >892 (>893) >894 の流れを理解してないに 32767票。
901仕様書無しさん:02/09/29 00:13
>>892
unsigned int でも unsigned char でも unsigned short でも unsigned long でもなく
型宣言でただ unsigned ってだけ書かれてるって事??
しかし、ワード単位で変数確保するにしても、必要があれば signed 使うでしょう。
902仕様書無しさん:02/09/29 00:50
unsigned にすればメモリ節約できると思い込んでいる>>891は馬鹿
ってことでしょ。
負の数を使わないプログラムって珍しくもないしな。
それに明示的にunsignedするのは、悪いことではないぞ。むしろ正しいやり方。
903902:02/09/29 00:52
補足
明示的にsignedとunsignedするのは・・・って意味ね。
904仕様書無しさん:02/09/29 01:08
お前らコボラーに分かるように説明してあげてください
905仕様書無しさん:02/09/29 01:09
>891は unsignedを付けずに宣言すると、マイナスを扱える分だけ余計にメモりを使用すると思い込んでいるに、
1000000000MS$
ゲイツもびっくリだね。
906仕様書無しさん:02/09/29 01:14
>>905
signed int(32bit) 使うより、使えるならunsigned short(16bit)使った方が
省メモリになるということだと漏れは認識したけど。
907仕様書無しさん:02/09/29 01:17
>906
>891をどう読んだらそういう解釈になるのかと小一時間(略
908仕様書無しさん:02/09/29 01:18
>>906
単に unsigned と書いたらコンパイラは unsigned int と認識するはずですが何か?
909仕様書無しさん:02/09/29 01:19
>>891の文脈は、unsignedばかりで、unsignedしていない変数が無かったからキモイってことだろ。
どう考えたら、>>906の結論に達するのか、小一時間・・・
910仕様書無しさん:02/09/29 01:20
>>906
signed int == 32 bit ??
911仕様書無しさん:02/09/29 01:22
要するに、>>891はタコってことじゃん。
912906:02/09/29 01:28
色々解釈を考えた末に袋小路に迷い込んでしまったみたいだ。
891の書いてる事と全然整合性がないな。俺逝ってよし。

>>908 いや、ただの例なので・・・
>>910 sizeof(short)==sizeof(int)な環境の人もいるだろうと思って適当な数字を例示しただけ。
913仕様書無しさん:02/09/29 01:29
>>906
ぜんぜんちげーよ!!
君のコードを読んで会社を辞めたくなった人が居るに 200 ガッツ
914仕様書無しさん:02/09/29 01:30
うーん僕は以下のソースいつも殺したくなるんだけど。
某企業のソースには山ほどある、ばっかじゃねえかとおもう。

char buf[50];
for(i=0;i<50;i++)buf[i]=0;

きっとmemsetとsizeofをしらんやつばっかで作ったんだろうねぇ。

915仕様書無しさん:02/09/29 02:17
(負数を使わないときは)unsigned 付けないと1bit 無駄になる(short でも int でも)。
>892 が挙げている60000回のループのループカウンタは 16bit signed 整数では無理で、
(同じく16bit の)unsigned 整数なら可能、という例。
もちろん、32bit 整数ならば(signed でも unsigned でも)可能だが、16bit の無駄。
>906 はそう言いたかったのでは?

ただ、ループさせるだけなら、初期値を -32768 にして signed 16bit 整数で回す手がある。
ソースを読んだ者が会社を辞めると思うけど。
916仕様書無しさん:02/09/29 02:22
まだ判ってない奴がいるよ。おい。。。
917仕様書無しさん:02/09/29 02:23
>>915==891?
その1bitの無駄があるからなんだというのだ?
無駄があるsigned intを32個集めればもう1個intが使えるとでも???
918仕様書無しさん:02/09/29 02:30
で、結局 >>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の時代とちがってステップ数やソースサイズで発注する時代じゃないか
922仕様書無しさん:02/09/29 02:47
>917
「無駄がある」signed int を32個集めて全部 short にすれば、signed int を余分に16個使える。速度も上昇。
923仕様書無しさん:02/09/29 02:49
>>922
> 速度も上昇。
プロセッサによっては、アライメント絡みでペナルティが課される可能性ある
けどな。
924携帯デジタル土方:02/09/29 02:49
>>891
ただ単に負の数を使う必要のないとこだったんじゃねーの?
925携帯デジタル土方:02/09/29 02:51
いけね。書き込み前にリロードせんかった。
>>919に同意、てことで。
926仕様書無しさん:02/09/29 02:53
922 え? よのなかって int は32ビットってきまっているんだ???

で、誰が決めたの??
927922:02/09/29 03:01
>926
決まってないよ。>917 の脳内仕様に従っただけ。
928仕様書無しさん:02/09/29 03:03
intが32bitのプロセッサの場合、16bitアクセスは大抵遅くなるぞ。
929仕様書無しさん:02/09/29 03:06
>>914
そーゆうおまえは、memsetもsizeofもいらねーってのをしらんやつなわけだが。
930仕様書無しさん:02/09/29 03:29
>917
ワラタ
931仕様書無しさん:02/09/29 03:41
>>858
Microsoftの方ですか?
932917:02/09/29 04:13
>>922は915ではないと思うが、どちらにせよ言っていることはトンデモだな。
確かにこういうこというヤシとは一緒に仕事したくない、という意味ではこのスレに合っているわけだが(藁
933仕様書無しさん:02/09/29 04:45
携帯電話だと16bitか32bitかはシビアになりそうな気がせんでもない
よく知らないけど
934仕様書無しさん:02/09/29 04:50
>>933
っつか、組み込みの世界は 32bit プロセッサを使うと

 オブジェクトファイルのサイズが大きくなるから不許可

みたいなケースもあるから。ただ signed / unsigned で悩むって話は聞いた
ことがない。
935仕様書無しさん:02/09/29 05:53
>>934
なんかキミの文章意味不明。
936仕様書無しさん:02/09/29 06:57
sizeof(char) = sizeof(short) = sizeof(int) = sizeof(long) = 1

なんてのは今でもあるの?
937仕様書無しさん:02/09/29 08:06
>32bit プロセッサを使うと
>オブジェクトファイルのサイズが大きくなるから不許可

こんなの大昔の話だろ(W
938兼 ◆kAnejKP2 :02/09/29 08:59
>>937
まだまだゼッパチ互換チップも現役だと…。
939999:02/09/29 20:47
外注は外注
外注は寄生虫
940仕様書無しさん:02/09/29 20:54
>>938
Z80選ぶのはOBJファイルのサイズよりもカネの話だけどな。
941仕様書無しさん:02/09/29 21:34
>>936
int 型って最低でも 16bit が保証されてなかったっけ?
1 byte が 16bit な処理系でもあるのか?
942仕様書無しさん:02/09/29 21:59
>>941 たしか INT_MIN <= -32767 && INT_MAX >= 32767 だったと思う。
943942:02/09/29 22:03
途中で送ってしまった。ごめん。 CHAR_BIT >= 8 だから16でいけないという法はなさそうな
気がするけど現実にそんなもんあるのかなぁということなのでしたね。
944941:02/09/29 22:07
>>943
char は 1byte でさえあれば何 bit でもいいんじゃなかったっけ?
945すぷーん ◆spoonCC. :02/09/29 22:22
>>942
マイナスは-32768だね。

>>944
1Byteが8Bitじゃない場合もあるのか?

>>936
byte = 8Bit
short = 16Bit
long = 32Bit
は決められてたはず。
946仕様書無しさん:02/09/29 22:25
Pentiumなんかは16bit演算より32bit演算のほうが速いんじゃなかったっけ
947仕様書無しさん:02/09/29 22:26
歴史的に 1byte の定義はさまざま。確か 7bit, 12bit, 16bit とか使ってたマシンも存在したはず。
だからよく RFC では 8 ビットバイト (OCTET) という表現を使う。

ANSI 的に C の整数長の定義はこんなだったはず
sizeof(short) <= sizeof(int) <= sizeof(long)

手元に資料が無いので詳しくは分からん。MSDN のどこかに書いてあると思う。
948仕様書無しさん:02/09/29 22:30
第1オクテットがマスクなアィピーアドレスがウォンチュゥです!
949941:02/09/29 22:40
>>947
short と int は最低 16bit、long は最低で 32bit が保証されているようだ。
不等号は >>947 の通り。

1byte = 16bit のマシンもあるんだね。9bit というのは聞いたことがあったが。
950すぷーん ◆spoonCC. :02/09/29 22:54
>>947 >>949
そんな半端なbyteがあったのか。
7bitはなんとなく想像できるんだが。

勉強になったよ、サンクス ヾヾ(^−^)
951仕様書無しさん:02/09/29 23:13
>>936
> sizeof(char) = sizeof(short) = sizeof(int) = sizeof(long) = 1

オレはいじったことないけど、Crayのいわゆるスパコンが
そうだったらしい。charもlongもぜーんぶ64bit。
詳しい人のフォローきぼん。
952仕様書無しさん:02/09/30 00:05
>>951
それって、コンパイラの実装が手抜きなだけじゃないのか。
953仕様書無しさん:02/09/30 01:01
誰か次スレ立ててくれませんか?
スレを立てようと思いましたが立てられない。。。
テンプレは作りましたのでお願いします。

【タイトル】
この会社辞めようと思ったソースコード#6

【内容】
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
COBOLライクなソースコード。(゚д゚)マズー
をつらつらと綴っていって頂戴。

■過去スレ
この会社辞めようと思ったソースコード
#1http://mentai.2ch.net/prog/kako/997/997104873.html
#2http://pc.2ch.net/prog/kako/1001/10010/1001076034.html
#3http://pc.2ch.net/prog/kako/1015/10158/1015861447.html
#4http://pc.2ch.net/test/read.cgi/prog/1021560641/
#5http://pc.2ch.net/test/read.cgi/prog/1029120005/

■関連スレ
この会社辞めようと思った上司の一言
#1http://mentai.2ch.net/prog/kako/992/992259973.html
#2http://pc.2ch.net/prog/kako/1003/10034/1003497181.html
#3http://pc.2ch.net/test/read.cgi/prog/1024763650/
954仕様書無しさん:02/09/30 01:39
建てます
955仕様書無しさん:02/09/30 01:42
建てました
956仕様書無しさん:02/09/30 02:08
>>955
凡カレー
でも一応次スレURL書いてよ

この会社辞めようと思ったソースコード #6
http://pc.2ch.net/test/read.cgi/prog/1033317733/
957仕様書無しさん:02/09/30 02:10
>>941-951
うわ、もしかしてみんな若い?
または厨くさいかも…。
958仕様書無しさん:02/09/30 02:15
>>957
最近は 16bit 環境と 32bit 環境の両方扱うなんてのは少なくなったからねぇ。
初めて VC4.0 で 32bit int を使ったときは感動したよ、ケンちゃん。
959仕様書無しさん:02/09/30 03:03
>>958
>16bit 環境と 32bit 環境の両方扱うなんてのは少なくなったからねぇ。
そんな皆は 組み込みで ARM を!!
960942,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まででしょ。
961仕様書無しさん:02/09/30 16:18
962仕様書無しさん:02/09/30 22:03
>>952
コンパイラの手抜きというか、そもそもプロセッサのアーキテクチャが
8bit アクセスなんて考えてない代物なんだろう。
963仕様書無しさん:02/09/30 22:17
>>951
K&R読め
964仕様書無しさん:02/10/01 00:27
初のByteマシンIBM SYSTEM/360以前のマシンにByteの概念を当てはめようとすると、 1 Byte=1Wordだよな。で、1 wordが36bitだったりするわな。
965仕様書無しさん:02/10/01 03:09
>>949>>964
char, short, int, long がそれぞれ
9, 36, 36, 36 (ビット)な処理系は聞いたことがある。
966仕様書無しさん:02/10/01 06:32
>>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にどう書いてあるとかじゃなくて
自分の頭で考えて判断できねーのかよ。
書いてあること丸暗記して
あそこににこう書いてあるとか言ったって意味ねーんだよ。
ボケカス糞はさっさと引退しろ。
968仕様書無しさん:02/10/01 13:57
私の名前は中野でつ。
969仕様書無しさん:02/10/01 14:26
言語仕様がどうなってるかを自分で考えて判断したらまずいと思うんだが。
970仕様書無しさん:02/10/01 14:42
>>967が引退第一号となりますた。
971CORBA:02/10/01 14:46
あー、昔あったなぁ。
先輩の書いたコード見て、これは無いだろってのが!
最初は自慢してたけど、まわりにも言われちゃってた。
972仕様書無しさん:02/10/01 15:19
ハァ?
973966:02/10/01 16:02
>>967 が仕様書を書いたら
「仕様書にどう書いてあるとかじゃなくて(以下略)」
とか言いそうだ。ま、リアルな世界で陰口叩かれないように
せいぜい精進してくだされ。

>>960 (=942,943)、>>964
"byte"の概念のおさらいをする機会ができた。感謝。
特にJISからの引用は興味深かったよ。
974仕様書無しさん:02/10/01 22:04
>964
12年位前に悪友から聞いたんだけど、UNISYSの旧バロース系のコンピューターって1ワードが五十数ビットとか言ってた。そんなマシンでCOBOLやらされているって言ってたな。今はどうしているんだか、その後何年かして音信不通になったままだ。
975仕様書無しさん:02/10/02 03:01
この会社辞めようと思ったソースコード
976仕様書無しさん:02/10/02 18:52
>>975
君はもう次スレ行きなさい

この会社辞めようと思ったソースコード #6
http://pc.2ch.net/test/read.cgi/prog/1033317733/
977仕様書無しさん:02/10/02 23:52
1000!
1001!
979仕様書無しさん:02/10/03 12:40
>>977-978 早漏
980仕様書無しさん:02/10/03 16:11
1024!
981仕様書無しさん:02/10/03 17:12
         /ミヽ    /ミヽ ミミミ /川川川\ミミミ
         |||@ノハヽヽ@||| ミミ〇川||/ ヽ|||||〇ミミ
         ミ/川  \l||||彡   |川/  ヽ卅川 
         |||||/   ヽ卅|||    (|| ・ , ・ ||)
       |⌒|(|| ‘  , ‘ l|)   |⌒|ヽ"▽ "ノ(⌒ヽ
       ヽ ⊃ゝ" ▽"ノ|    ヽ ⊃入ノ| ⌒ ⊂ 丿
      /_/入ノヽ ( ノ    / / ★ ( ヽ─゛ ☆1000はあたしたちのものよ
    /● ● ●丿/=/     ヽ゛ヽ★ ★\|  
    |● ● 入ノ ヽノ        , _)★ ★ ヽ
   ヽ__ヽ/ ̄ ̄ヽ       / ̄| __ヽ/___|
     \  ヽ─  /       ,\ /   /
       ヽ  )/ ̄/          (__(  ヽ゛ 
      /─-/‖ ̄ヾ).         \─ヽ
     《ヽ=ヾ  ̄ ̄            =ミ 》
      \___)              (___/
982仕様書無しさん:02/10/03 18:44
Dim aanzyoousama
983仕様書無しさん:02/10/04 15:35
>968
Wnnかよ!(w
/* 関係無いのでsage */
984仕様書無しさん:02/10/04 20:05
>979
チッチッチ 解ってないな。
先に(新スレへ)イッちゃったヤシが早漏。
985仕様書無しさん:02/10/05 01:04
>>981
モ板に(・∀・)カエレ!
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
    /● ● ●丿/=/     ヽ゛ヽ★ ★\| 
    |● ● 入ノ ヽノ        , _)★ ★ ヽ
   ヽ__ヽ/ ̄ ̄ヽ       / ̄| __ヽ/___|
     \  ヽ─  /       ,\ /   /
       ヽ  )/ ̄/          (__(  ヽ゛ 
      /─-/‖ ̄ヾ).         \─ヽ
     《ヽ=ヾ  ̄ ̄            =ミ 》
      \___)              (___/
989仕様書無しさん:02/10/05 22:52
がきのけんかだな・・・
990仕様書無しさん:02/10/05 23:01
〈 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
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。