5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

あらあら、宿題なのね?

1 :お母さん:02/05/08 00:38
麻衣の母、美砂子です。
宿題、判らないところがあったら、遠慮しないで聞いてくださいね。

えれなちゃんの前スレはこちら、
宿題、手伝おっか?
http://pc.2ch.net/test/read.cgi/tech/1011722640/
キーワードがわかっていれば、googleで探しましょうね。
http://www.google.co.jp/

2 :デフォルトの名無しさん:02/05/08 00:39
>>3-1000
落第。

3 :デフォルトの名無しさん:02/05/08 00:40
       ∧_∧
      ( ´Д`) 
     /    \
  __| | 落第 | |__
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

4 :デフォルトの名無しさん:02/05/08 00:42
落第・・・(´・ω・`)ショボーン

5 :デフォルトの名無しさん:02/05/08 00:44

 ママ〜 プログラム教えて〜
 \__  ______
      ∨    ∧_∧
           " ,  、 ミ   / ̄ ̄ ̄ ̄ ̄
            ゝ∀ く  < あらあら、宿題なのね?
           ∧_∧  |   \_____
        三  (    とノ
      三   /   つ |
     三  _ ( _  /|  |
        (_ソ(_ソ(_ )

6 :デフォルトの名無しさん:02/05/08 00:44
Σ(゚д゚lll)ガーン

・・・・ラクダイ

7 :デフォルトの名無しさん:02/05/08 00:47
>>5
(・∀・)イイ!

8 :かおりん祭り ◆KAORinK6 :02/05/08 00:57
〜oノハヽo〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ^▽^) < 新スレおめでとうございまーす♪ 
= ⊂   )   \_______
= (__/"(__) トテテテ...



9 :デフォルトの名無しさん:02/05/08 00:59
Σ(゚Д゚)

10 :デフォルトの名無しさん:02/05/08 01:03
明日の朝までにCの初心者向けの宿題を作らなきゃならないんで
よろしくお願いします。何か無い?

11 :デフォルトの名無しさん:02/05/08 01:04
「スタックオーバーフローを起こすプログラムを作りなさい」

12 :デフォルトの名無しさん:02/05/08 01:05
>>11
int main()
{
main();

return 0;
}

13 :デフォルトの名無しさん:02/05/08 01:06
main()
{main();}

14 :デフォルトの名無しさん:02/05/08 01:07
>>11>>10あて

15 :デフォルトの名無しさん:02/05/08 01:07
「スタックオーバーフローを引き起こすプログラムを鯖で実行したらどうなるか説明しなさい」

16 :デフォルトの名無しさん:02/05/08 01:08
>>15
スタックがオーバーフローする。

17 :デフォルトの名無しさん:02/05/08 01:09
たしかに

18 :デフォルトの名無しさん:02/05/08 01:13
セグメント違反で落ちる。かも。

19 :デフォルトの名無しさん:02/05/08 01:14
つぅかサーバに依存。

20 :デフォルトの名無しさん:02/05/08 01:20
>>10 生徒にかわぃぃ子はいますか

21 :デフォルトの名無しさん:02/05/08 01:21
>>10
自分自身を表示するプログラムというのは?

22 :デフォルトの名無しさん:02/05/08 01:21
>>20
それ。それ重要。

23 :デフォルトの名無しさん:02/05/08 01:23
       ∧_∧
       ( ´Д` ) < >>10>>20の質問に答へろ!
      /,  /
     (ぃ9  |

24 :10:02/05/08 01:50
ぁゃιぃ子ならいます。

25 :デフォルトの名無しさん:02/05/08 01:55
        ∧_∧
       /⌒ヽ )
      i三 ∪ ソウカ・・・
       |三 |
      (/~∪
     三三

26 :デフォルトの名無しさん:02/05/08 02:05
ワラタ

27 :デフォルトの名無しさん:02/05/08 07:48
>>21
それはいわゆる自己印刷プログラムではなくて、
生徒の自画像を表示させるのですか?

28 :デフォルトの名無しさん:02/05/08 08:14
>>8
新スレ荒らしがこの板にもΣ(゚Д゚)

29 :デフォルトの名無しさん:02/05/08 08:32
かおりんがプログラム板−>monazillaプロジェクト−>ツール開発−>新スレ発見率70%アップ−>しかし自動化された作業にむなしさを覚える−>マズー

30 :デフォルトの名無しさん:02/05/08 11:25
宿題作りか・・・、そういや大学時代、作成と採点やらされたなぁ・・・

31 ::02/05/08 23:23
私も採点やらされてるわ・・・・

32 :デフォルトの名無しさん:02/05/09 06:31
怜たんはいつぞやのスレのお兄ちゃんのようなのが好みなのかい?

33 ::02/05/09 09:06
今、喧嘩中でね・・・・・

34 :デフォルトの名無しさん:02/05/09 15:53
Lispの宿題です。次のような問題です。
1。リストpと自然数nを引数として、pのうち最初のn個の要素を除いた
リストを返す関数lowerを定義せよ。
2。リストpと自然数nを引数として、pのうち最初のn個の要素をもった
リストを返す関数upperを定義せよ。
Cではないですが、よろしくおねがいいたします。

35 :デフォルトの名無しさん:02/05/09 15:55
>>33
ソウナノカ・・・

36 :デフォルトの名無しさん:02/05/09 15:58
(defun lower (p n) (subseq p n))
(defun upper (p n) (subseq p 0 (1- n)))

37 :お母さん:02/05/09 18:16
>>34
あらあら、lispね。
まず、lispの再帰関数の基本形はわかるかしら?
課題1を例に説明すると、
(defun lower (p n)
  (cond
    ((= n 0) p)
    (t (lower (cdr p) (- n 1)))
    )
)
これが基本形ね。ポイントは、cond の中で n が 0 の時は関数を抜けて、
n が 0 以外の時は、n を 1 引いて自分自身(lower)を呼ぶっていう形に
なってることね。
流れを自分で追ってみると、うまく再帰してることが分かるかしらね。

課題2のほうも、基本は同じ。ただし、今度は cond の (t の部分
(シャレじゃないのよ)が、ちょっとだけ複雑になるかしら。

わからなかったら、またいらっしゃいね。

38 :34:02/05/09 18:43
>>36
>>37お母様
ありがとうございます。もう少し考えてみます。

39 :デフォルトの名無しさん:02/05/11 23:18
学校の宿題で、
入力として文字列が与えられ
それをもとに木をつくれとの事なのですが
どのようにすればいいのでしょうか?
文字列の解析の仕方は既に友人に教えてもらいました。
それと、当方プログラム歴3日です。
ソースコードを提出するので、動きそうであればいいのですが。


文章には
主部と述部があります。
主部が、名詞と形容詞みないになります。
例えば、「親切な名無しさんが宿題を教えてくれた」
とあった場合、
各単語がどういう品詞か分類する事ができます。
「親切な名無しさんが宿題を教えてくれた」は
「親切な名無しさん」「が」「宿題を教えてくれた」
に分けられます。
「親切な名無しさん」は
「親切」「な」「名無しさん」
にわけられます。
これらを木として保存しろと言う事だと思います。

言語はVBでお願いします


40 :デフォルトの名無しさん:02/05/11 23:19
すげぇお母ちゃんだな!
こんなお母ちゃんいたらいいのにな・・・

41 :デフォルトの名無しさん:02/05/11 23:22
 ママン〜 抱っこ〜
 \__  ______
      ∨    ∧_∧
           " ,  、 ミ   / ̄ ̄ ̄ ̄ ̄
            ゝ∀ く  < あらあら、宿題を教えて欲しいのね
           ∧_∧  |   \_____
        三  (    とノ
      三   /   つ |
     三  _ ( _  /|  |
        (_ソ(_ソ(_ )

42 :デフォルトの名無しさん:02/05/11 23:49
宿題おねがいします。

エンロンの破綻について、
「コーポレートガバナンス」「マネーゲーム」の語句を使い
A4用紙2枚程度にまとめよ。

43 :42:02/05/11 23:52
>>39
VBで木?Cならできるけど・・・
とりあえず、ノードの構造体を作る。ノードは右と左の子へのポインタを持っていて、
その子もさらに子へのポインタを持っている。
NULLなら子はない。
キミの宿題なら、「ポーランド記法」なんかを検索してみるといいかもよ。

それとも俺の宿題と交換するかい?

44 :デフォルトの名無しさん:02/05/11 23:54
>>43
親へのポインタももっておいた方がよくない?
二分木検索とかならいらないけど。

45 :デフォルトの名無しさん:02/05/11 23:54
なんか簡単なコードは無いでしょうか?


46 :デフォルトの名無しさん:02/05/11 23:55
>>39
プログラミング歴3日でいきなり言語のパーサーをつくれとか、そういうことなのかな(-_-;)

47 :デフォルトの名無しさん:02/05/11 23:56
VBって、メモリの動的割り当てできるの?


48 :デフォルトの名無しさん:02/05/11 23:57
>>47

b=30

dim a(b) as integer

49 :デフォルトの名無しさん:02/05/11 23:59
struct node
{
  node* left,right,parent;
  char* str;
};


50 :デフォルトの名無しさん:02/05/11 23:59
レポート作成のぱたーんらんげーじ
42<<
yhaooかgoogleで下の2つを検索。いくつかの文書をコピペ。
エンロン コーポレートガバナンス
エンロン マネーゲーム

51 :49:02/05/11 23:59
まちがえた。
node *left,*right,*parent;
だな。

52 :デフォルトの名無しさん:02/05/12 00:01
>>49
エラー

53 :52:02/05/12 00:01
>>51
それもエラー

54 :49:02/05/12 00:02
struct node *left,*right,*parent;

これでいい?ベターCなのね・・

55 :デフォルトの名無しさん:02/05/12 00:03
>>12-13
C++ではmain関数を再帰呼び出しすることが出来ませんって言われました。

56 :デフォルトの名無しさん:02/05/12 00:04
>>55
C++なんて使うな。

57 :デフォルトの名無しさん:02/05/12 00:06
>>55
じゃあ速攻で違う関数よびなされ。

58 :デフォルトの名無しさん:02/05/12 14:15
n個の値 a[0]、a[1]、a[2]、a[n-1]が与えられている時、
a[i]の順位rを求める。
順位は自分より大きいものの個数+1

どういうことですか?


59 :デフォルトの名無しさん:02/05/12 14:22
58 書いてあるとおりです。

60 :デフォルトの名無しさん:02/05/12 14:35
>>58
a[0] 〜 a[i - 1]とa[i + 1] 〜 a[n - 1]までのうちa[i]より大きいものの個数を
数え、それに+1する。それで終わり。

61 :デフォルトの名無しさん:02/05/13 11:53
>>60
a[0] 〜 a[i - 1]とa[i + 1] 〜 a[n - 1]なんてややこしいことしなくても、
a[0] 〜 a[n - 1] でOK。
a[i] > a[i] は成り立たないに決まってる。


62 :デフォルトの名無しさん:02/05/14 11:29
バイオリズムで、身体・感情・知性が誕生日からそれぞれ周期23日・28にち・33日の正弦波に従うとき、今日の日付け(たとえば2002/5/10)と生年月日を入力したら、身体・感情・知性のそれぞれの要注意日を出力するプログラムを作りなさい。

C言語でおねがいします。宿題っていうか、講義の課題なんですが、いまいち閏年の処理はどうしたらいいのかわかりません。

おながいします。


63 :デフォルトの名無しさん:02/05/14 11:34
http://pc.2ch.net/test/read.cgi/tech/1021034822/236-239

64 :棄教者 ◆witdLTi2 :02/05/14 12:05
>>39
Bison/Flexを使え

%%
s: /* empty */
| sentence
;

sentence
: shubu jutsubu PERIOD
;

shubu
: keiyoushi meishi
;

...
%%
って構文規則を記述すれば簡単に構文木を生成してくれるYO!

65 :デフォルトの名無しさん:02/05/16 20:19
Pascalの質問です。
program jyou(input, output);
var a: integer;
begin
read(a);
a:=a*a*a*a*a;
writeLn(a)
end.
これでaの5乗が求められるはずなんですが…
aには整数が入ります。

66 :デフォルトの名無しさん:02/05/16 20:20
>>65
で、答えはなんて出るのさ?

67 :65:02/05/16 20:31
これはサンプルでこれでちゃんと答えはちゃんと正しい答えがでます。
しかしスマートでないような…
とにかく入力されたaの17乗を求められるスマートな方法はありませんか?

68 :デフォルトの名無しさん:02/05/16 20:35
>>67
ループじゃだめなのか?

69 :デフォルトの名無しさん:02/05/16 20:35
>>65
再帰関数でも書け。

70 :65:02/05/16 20:41
すみません。たとえばどうのように書くのですか?

71 :デフォルトの名無しさん:02/05/16 21:06
( ´3`)ムーン

72 :デフォルトの名無しさん:02/05/16 23:11
>>67
>>65のどこから17って数字が出てくるんだよ。まあいいや。
b := a*a*a*a;
a := b*b*b*b*a;
WriteLn(a);
これでいいだろ。

73 :デフォルトの名無しさん:02/05/17 00:14
( ´3`)怜たんキスしよう・・・

74 :65:02/05/17 00:50
どうもお騒がせしました。
program pow(input,output);
var
a:real ;
b:real ;
function pow(x,y:real):real;
begin
pow := exp(y*ln(abs(x)));
end;

begin
writeln('変数 a に入れる値を入力して下さい');
readln(a);
b := pow(a,17);
writeln(b:10:0);
end.
これで問題解決です。

> >>65のどこから17って数字が出てくるんだよ。まあいいや。
それは…宿題だからです。(爆)

75 ::02/05/17 01:55
>>73に反応して登場)
....さて、次の問題はないかな?

76 :デフォルトの名無しさん:02/05/18 00:12
0以上9以下の整数をランダムにキーボードから入力するとき、全ての整数が少なくとも1回入力された時点でアラートを鳴らし、総入力回数を出力するプログラムを作成せよ

77 :デフォルトの名無しさん:02/05/18 00:23
>>76
10個のBYTE配列用意。

文字は打ち込まれるたびに対応する配列要素をインクリメント。
配列を走査してすべてのフラグが立っていたらアラートならして
配列のΣ取って表示。

78 :デフォルトの名無しさん:02/05/18 00:32
>>77
何故に BYTE 配列 ? 全ての正数が入力される前に特定の数字が 256 回
以上入力されたらダメじゃん。メモリも安くなったんだから、long に
しとけ。

79 :デフォルトの名無しさん:02/05/18 00:33
>>78
ごめん、BYTEは忘れて。血迷った。
いや、配列は純粋にフラグにして別の変数で合計数えようかな〜って迷いながら書いてたから・・・。

80 :デフォルトの名無しさん:02/05/18 00:38
size_t check ( int i ) {
 static int flag ;
 static size_t n ;
 n++ ;
 return ( ( flag |= ( 1 << i ) ) < 0x03ff ) ? 0 : n ;
}
後は自分で頑張ってね

81 :デフォルトの名無しさん:02/05/18 01:02
C言語でおねがいします・・・
配列は頭ではわかるんですが、プログラムの組み方がわかりません(泣)

82 :デフォルトの名無しさん:02/05/18 01:11
あげ

83 ::02/05/18 01:14
>>81
>>80はC言語だけどね。ビット演算はなじみないよね?
ところどころ抜いて書いておくから、□□□に何が入るか考えてみてね。

main(){
 int total = 0; /* 今までの総入力回数 */
 int num = 0; /* 10種類の整数のうち、何種類が既に入力されたか? */
 int check[10]: /* nが既に入力されていれば、check[n] = 1、でなければ0 */
 int i;
 int k;

 /* checkの配列の中身を初期化 */
 for(i = 0; i < 10; i++) □□□;

 while( □□□ ){
  /* kにキーボードから入力した文字を入れる */
  □□□

  if( □□□ ){ /* 現在入力した数がまだ、入力されていなければ */
   num++;
   □□□
  }

  total++;
 }

 /* アラートを鳴らし、総入力回数を出力する */
 (略)
}

84 :デフォルトの名無しさん:02/05/18 01:17
なるほど・・・ありがとうございます。
考えてみます。
できたら報告します。

85 :なんで無理?:02/05/18 02:03
#include<stdio.h>
main()
{

int total, n,che[10],i,k;

total=0;
n=0;

for (i=0;i<=9;i++){
che[i]=0;
}
do{
printf("0から9を入力して下さい\n");
scanf("%d",&k);

if(che[k]=0){
n++;
che[k]=1;
total++;
}
else (che[k]=1);{
total++;
n=n;
che[k]=1;
}
} while (n=9);

printf("\a");
printf("総入力数%d\n",total);
}

86 :デフォルトの名無しさん:02/05/18 02:07
n=9

87 :デフォルトの名無しさん:02/05/18 02:07
n=n;

無駄なコードハケーン。

88 :なんで無理?:02/05/18 02:09
10にしても無理でした・・・
なんか何回入力してもつづくのですが・・・

89 :デフォルトの名無しさん:02/05/18 02:11
あのね。。。。
代入してるよ。。。

90 :デフォルトの名無しさん:02/05/18 02:11
n = 9

( n = 9 ) != 0

91 :デフォルトの名無しさん:02/05/18 02:13
永遠ループハケーン!!!

92 :デフォルトの名無しさん:02/05/18 02:14
while((n=9)!=0)
にしても無理でしたって言いそうだな…

93 :なんで無理?:02/05/18 02:15
わからん。
おれってあほすぎ・・・鬱

94 :デフォルトの名無しさん:02/05/18 02:16
ぜひ言ってほしい

95 :デフォルトの名無しさん:02/05/18 02:17
代入文と比較は違うものだと思ってください。
そうすれば答えは出てきます。

96 :なんで無理?:02/05/18 02:17
くそう・・・上手い具合にヒントをくれるぜ。
しかし、わからんおれには意味不明(泣)

97 :デフォルトの名無しさん:02/05/18 02:19
今度は、1回で終わってしまいますってか?

98 :なんで無理?:02/05/18 02:19
何が無限ループなんだ?いみわかんねぇ・・・
あと(n=9)!=0も??

99 :デフォルトの名無しさん:02/05/18 02:21
>>96
この面白さを共有できないのは残念

100 :デフォルトの名無しさん:02/05/18 02:23
永遠ループあげ

101 :デフォルトの名無しさん:02/05/18 02:24
永遠ループ・・・TTSを思い出すぜ・・・

102 :デフォルトの名無しさん:02/05/18 02:26
http://ime.nu/pc.2ch.net/test/read.cgi/tech/1020785918/102

103 :デフォルトの名無しさん:02/05/18 02:26
elseの書き方もちょっと素敵。
こんどマネして周りを混乱させてみよう。

104 :デフォルトの名無しさん:02/05/18 02:28
つーか、マジで分からんのか?

105 :デフォルトの名無しさん:02/05/18 02:29
elseすげぇ!
思わず超え出して笑った!

106 :デフォルトの名無しさん:02/05/18 02:31
本読みゃ終わるような単純知識で調子に乗って煽るなって。
なんか激しく馬鹿みたいだぞ。

107 :デフォルトの名無しさん:02/05/18 02:36
永遠ループをいつまでも引っ張るのは確かに馬鹿っぽいが、
このelseを見て感動しないやつはプログラマじゃない

108 :デフォルトの名無しさん:02/05/18 02:38
神のコードを書く男出現。

109 :デフォルトの名無しさん:02/05/18 02:40
まあ、能力の低い奴はそれよりもさらに低い奴を馬鹿にすることでバランスを
取ってるのはワカルケドサ(藁

110 :デフォルトの名無しさん:02/05/18 02:40
どうでもいいが、>>85はなぜcheckをcheにしたんだろう……。

111 :なんで無理?:02/05/18 02:48
ネタにここまでくらいついてくるとは・・・バカはバカだなw


112 :デフォルトの名無しさん:02/05/18 02:49
>>110
区分をkbnにする癖が抜けていなかった。

113 :デフォルトの名無しさん:02/05/18 02:57
ネタにしちゃやけにバグだらけだな。

114 :デフォルトの名無しさん:02/05/18 03:08
ネタであのelseが書けるやつにならつられても後悔しないぜ

115 :デフォルトの名無しさん:02/05/18 04:11
コンパイラのエラーが出なくなった時の「やったぜ」って顔が見たい>else()の後の;

116 :デフォルトの名無しさん:02/05/18 04:44
あり?コンパイルは通るかと思ったけど?

117 :デフォルトの名無しさん:02/05/18 05:11
>>115はC初心者

118 :デフォルトの名無しさん:02/05/18 05:26
>>85 >>115 晒しage(w

119 :115:02/05/18 05:37
else(exper){ は { の前でparse errorになるだろ、で、悩んだあげく ; つけたら
コンパイル通っておおよろこび、ってこった。
そのぐらい想像できないやつは(以下略)

120 :116:02/05/18 05:55
>>119
あ、確かに・・・
すみませんでした(TдT)

コンパイラに「;が必要です」とか言われたんで
指示どおり;付けたんだね。きっと。

121 :デフォルトの名無しさん:02/05/18 09:38
>>117-118を晒しsage

122 :デフォルトの名無しさん:02/05/18 18:57
まとめて晒しage

123 :デフォルトの名無しさん:02/05/18 21:37
コンパイラはプログラマよりアホである。
なぜならプログラマより賢いとプログラマがいらなくなってしまうからである。

124 :デフォルトの名無しさん:02/05/18 22:49
1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください.
こまってます


125 :デフォルトの名無しさん:02/05/18 22:51
本気で回線切って首吊れ

126 :デフォルトの名無しさん:02/05/18 22:52
こぴぺもうざい。

127 :デフォルトの名無しさん:02/05/18 22:52
粘着質

128 :デフォルトの名無しさん:02/05/18 22:53
>>124
まず自分がどう思っているかを挙げよ。
そして宿題ができないとどうなるか述べよ。
話はそれからだ。

129 :デフォルトの名無しさん:02/05/18 22:54
>>123
そうか?レジスタ配置なんぞ芸術だぞ。
よく言われるコンピュータとユーザの違いじゃないの?


130 :デフォルトの名無しさん:02/05/18 22:55
てごわいと思ってる。宿題忘れになる

131 :デフォルトの名無しさん:02/05/18 22:56
はやくおしえろ

132 :デフォルトの名無しさん:02/05/18 22:57
この世界でしか相手にされないんだから、たのむよ。これが終わったらもうこねーからよ

133 :デフォルトの名無しさん:02/05/18 22:58
>129
じゃ、キミはコンパイラより仕事してないって事でいいか?

文字列閉じ忘れ時のエラーメッセージは「アホやなー」とか思うな。

134 :デフォルトの名無しさん:02/05/18 22:58
彼女がこまってんだよー


135 :デフォルトの名無しさん:02/05/18 22:59
まったく粘着質だなー

136 :デフォルトの名無しさん:02/05/18 22:59
まだかよー

137 :デフォルトの名無しさん:02/05/18 23:01
>>133
コンパイラにソースいじられるくらいなら自分で直した方がまし。

あなたのコードには8つのエラーがありましたが復旧しました。

とかがお好み?

138 :デフォルトの名無しさん:02/05/18 23:03
おまえらいいかげんにしろ!はやくおしえろ!

139 :デフォルトの名無しさん:02/05/18 23:07
まあ俺はVCを勧めるがな

140 :デフォルトの名無しさん:02/05/18 23:08
shukudaihayakuosiero

141 :デフォルトの名無しさん:02/05/18 23:09
俺が相手してやるからよー、ひきこもりなんだろ?

142 :マルチ死すべし:02/05/18 23:10
ここまでやったら絶対にここの住人は答えません。
おまえ歳はいくつだ。と。
常識をわきまえろ。と。

たとえて言うなら、
彼女が10人いて、内 3人が隣の部屋の 3姉妹、
残りのうち 5人は同じ階の住人。
1人は 3姉妹の母親。
母親以外同じ学校で、6人は同じクラス。
最後の一人は担任。

というのと同じような行為。
これでもオッケーならおまえは精神異常者。
とにかく回線切って首吊れ。


143 :デフォルトの名無しさん:02/05/18 23:13
>>142
夢みたいだな

144 :これでスレ立てたら祭りケテーイなんだが:02/05/18 23:13
彼女に聞かれて分からないといえない立場におまえはない。
その程度の頭脳のやつなら彼女も期待してないよ。

もし期待してたら彼女もパープリン(w
ってことだ。


145 :デフォルトの名無しさん:02/05/18 23:13
実際にあったら、142はこんなこと人に言えない奴なんだろーなー。
実際にあってみて−よ、どうせもやしっこなんだろーな

146 :デフォルトの名無しさん:02/05/19 00:05
>>124
利用されていることに気付け


===========================ゴミが涌くので終了===============================

147 :デフォルトの名無しさん:02/05/19 00:09
>>124
>1変数のマイナス演算子と1変数のマイナス演算子との異なる点を挙げよ。
>っていう問題を教えてください.
>こまってます

教えるからさっさと消えろ
今後は聞き方に注意するように
マルチポストは厳禁

1変数のマイナス演算子は浮動小数点がからむので、画像処理などの処理が速い。
1変数のマイナス演算子ではバイオスレベルでのアクセスが必要なので、速度的にはかなり不利。

#もう来るな



148 :147:02/05/19 00:14
1変数のマイナス演算子は浮動小数点がからむので、画像処理などの処理が速い。
2変数の減法演算子ではバイオスレベルでのアクセスが必要なので、速度的にはかなり不利。

間違った訂正

149 :デフォルトの名無しさん:02/05/19 00:19
>>148
マジレスすんな氏ね
放置でいいんだよこういう厨房は

150 :デフォルトの名無しさん:02/05/19 00:39
プログラマはいつでもコンパイラに勝てる。
なぜならプログラマはコンパイラの出すコードを見て
改良すれば良いから。

151 :デフォルトの名無しさん:02/05/19 00:40
>>150
それが面倒だからみんなコンパイラに頼るのさ。

152 :デフォルトの名無しさん:02/05/19 01:12
>>151
ニヒルだね。

153 :デフォルトの名無しさん:02/05/19 01:20
ニヒルって、意訳すると「不気味カッコイイ」だよね?

154 :デフォルトの名無しさん:02/05/19 01:27
>>151
ダンディだね。

155 :デフォルトの名無しさん:02/05/19 01:31
>>154
俺も思った。
もっとも、俺は再放送世代だがね。

156 :デフォルトの名無しさん:02/05/19 04:19
>85
代入する時は
 n = 3;
比較する時は
 n == 3;

if文は
 if(〜){
  ;
 }else if(〜){
  ;
 }

157 :デフォルトの名無しさん:02/05/19 04:19
Consider the grammar G= ({S,D},{0,1},S,P)
where P consist semantic rules,

S->S1D
S->D
D->0
D->1

S.v=2*S1.v + D.v
S.v=3*D.v
D.v=2
D.v=1
LR(K)

1.Write program, any language you want, VALUE of an input binary string
is returned. Your program must be based on the LR(k) method.

2.Write program, any language you want, PARSE TREE of an input binary string
is returned. Your program must be based on the LR(k) method.

この2つのプログラムをどうやって書けばいいのかわかりません。
どなたかヒントでもいいので教えてください。コンパイラの
問題でLR(K)のプログラムを、CかC++で書かないといけません。
2進数を10進数に直す問題なんですが・・・
お願いします・・・




158 :デフォルトの名無しさん:02/05/19 04:25
>>157
S1.vってなんだよコ゛ラァ
nonterminalにもterminalにもS1ってねーじゃねえか。

159 :デフォルトの名無しさん:02/05/19 04:48
>>158
すいません、説明がなっていませんでした。
    s
/ \
/ D
s1 D |
/\ \ 0
s2 D 0
/\
s3 D
| |
D |
| |
1 0

上のように、S1は木が下にくるごとに、s2,s3と大きくなっていくんです。
ですから、
S->SD or D
D->0 or 1
と同じことなんです。まぎらわしくかいてすいませんでした。
お願いします・・・



160 :デフォルトの名無しさん:02/05/19 04:53
ずれてる・・・
s
/ \
/ D
s1 D |
/\ \ 0
s2 D 0
/\
s3 D
| |
D |
| |
1 0

S->SD or D
D->0 or 1

はわかるのですが、

S.v = 2 * S.v + D.v の部分は二進数から10進数に直すというのは
わかるのですが、

S.v= 3 * D.vのところが何を意味してるのかわかりません。
ご教授おねがいします。


161 :デフォルトの名無しさん:02/05/19 05:44
>>159

162 :デフォルトの名無しさん:02/05/19 06:00
>>160

163 :デフォルトの名無しさん:02/05/19 06:10
>>161-162
おまえらこれくらい脳内で補完して読めよな

164 :デフォルトの名無しさん:02/05/19 06:40
>137
いいねーそれ。詳細表示ができたりするともっといいねぇ。

てめーのコードが気にくわねー!
こっちの方が10倍早くてエレガントだ!

とかやってくれるコンパイラ希望。



165 :デフォルトの名無しさん:02/05/19 06:51
>>160
オレにもよくわからん。
http://watalab.cs.uec.ac.jp/OBandG/fukuda/semi/attr.htm
このへん、参考になるかね。

166 :デフォルトの名無しさん:02/05/19 07:03
構文木?
なんにしても難しい質問が来たもんだ・・・

167 :デフォルトの名無しさん:02/05/19 09:30
ドラゴン・ブックとかかなぁ。そういうのは。

168 :デフォルトの名無しさん:02/05/19 10:00
ドラゴンブックねあったねー
友達の少しみたことあるけど
まったくわからんかった。
コンパイラの勉強とはむずかしいのう


169 :デフォルトの名無しさん:02/05/19 14:07
あるクラスオブジェクトへのポインタ
CClass* pClassObj1;
CClass* pClassObj2;
を参照でなく値渡し(メモリの別の場所に)コピーしたいのですが、
*pClassObj1 = *pClassObj2;
でコピーできるのでしょうか?

また、あるクラスオブジェクト
CClass ClassObj1;
CClass ClassObj2;
も同様に参照でなく値渡し(メモリの別の場所に)コピーしたいのですが、
ClassObj1 = ClassObj2;
とすると参照(ClassObj1とClassObj2が同じのもを指し示してしまう)と
聞いたのですが、ではどうすれば別々にコピーできるのでしょうか?

よろしくお願いします

170 :デフォルトの名無しさん:02/05/19 14:31
> ClassObj1とClassObj2が同じのもを指し示してしまうと聞いたのですが

C++ならがせネタ。
ってか宿題なのか?

171 ::02/05/19 14:35
>>157
私も詳しくないんだけど、一応答えようとしてみる。

S->S1D
って、S1っていう文字ってこと?
S+"1"+Dって意味でなくてでいいんだよね?

んん・・、2進法から10進法とか、そういう意味あるのかな。
深く考えないでとにかく実装してみればいいんじゃないかな?
最後の一文字をDとしてのけて、残りを再帰的評価という感じで。

もし意味を考えるとすると・・、というか今考えてみたんだけどよくわらかない。
1 = 3
0 = 6
11 = 7
10 = 8
01 = 13
00 = 14
111 = 15
。。何か意味があるのかな? それとも私の解釈間違ってるのかな。

>>169
コピーコンストラクタとか、その周りは理解してる?

172 ::02/05/19 14:50
 んー、よく見たらLR(K) Methodとか書いてあるね・・。これ解釈一通りし
かなさげだけど、適当な事いってそう。あとで調べてみるから、ちょっと無
視してくれると嬉しいな。

173 :デフォルトの名無しさん:02/05/19 15:06
ハァハァ・・・レイたん(;´Д`)

174 :阿呆:02/05/19 15:14
マージソートの併合部分、つまりあらかじめ昇順にソートされた2つの
実数系列を併合して全てを昇順にソートするプログラムを作る宿題を
出されました。
とりあえず↓のようなプログラムを打ってみたんですが動きません…
っていうかコンパイルしても何処がエラーなのか表示されないんですよ。

#include<stdio.h>
void Marge(int i, int j, int A[]);
main()
{
int i=0,j=9;
int A[]={1,3,6,7,8,2,4,5,9,10};
Marge(i,j,A);
for(i=0;i<10;i++)
printf("%d ",A[i]);
}
void Marge(int i, int j, int A[])
{
int h,k,l,m,mdl=(i+j)/2;
int B[10];
for(k=0;k<10;k++)
B[k]=A[k];
for(k=i,h=mdl+1,l=0;(k<=mdl)&&(h<=j);l++){
if(B[k]<B[h]){
A[l]=B[k];
k++;
}
else{
A[l]=B[h];
h++;
}
}
for(m=(h=j)?k:h;m<=(h=j)?mdl:j;l++,m++)
A[l]=B[m];
}

ちなみに配列Bの10という大きさは仮です。
それ以外に方法が思いつかなかったので…
夜にまた来ますのでよろしければ誰か教えてください…


175 :デフォルトの名無しさん:02/05/19 15:26
>>171
怜たんの解釈であってるんじゃないかと思う。
「2進数を10進数になおすプログラム」じゃなくて、
「binary stringから(ある決められた規則で求まる)値を計算するプログラム」
だと思う。

あとは、LR(k)にするやり方だが、yacc使う、というのは無しなのかな。

手で書くなら、状態遷移表を作るより、状態をラベルにしてgotoか
switchでやる方が人間には分かりやすいと思う。

state = S0;
while (token() != NOTOKEN) {
 switch (state) {
 case S0:
  ...
  state = S1;
  break;
 case S1:
  ...
 }
}
みたいな感じで。
先読み字句の数kが1より大きく必要なら、
ずっとk個持っとくよりも、必要に応じてpushbackで戻すように
した方が楽だと思う。

176 :デフォルトの名無しさん:02/05/19 15:29
>>172
Margeをmergeに変えれば動くかも。

あと、配列は2つ引数で与えて1つ返すようにしろ。
それから、実数を扱うのに整数配列使うな。

177 :176:02/05/19 15:29
>>172じゃなくて>>174


178 :デフォルトの名無しさん:02/05/19 15:55
>>174はクイックソートとマージソートをごっちゃにしてると思われる。


179 :デフォルトの名無しさん:02/05/19 17:13
その文法は2真数から10進数変換っていうのはなんとなくわかる。
1010 = 10 = (2^3 * 1) + (2^2 * 0) + (2^1 *1) + (2^0 *0)
で10になる、これはS.v=2*S1.v + D.v
のルールを満たしてるから10進数への変換とわかる。
けどS.v=3*D.v
ってなに?これは何を意味してるの?16進数変換でも8進数変換でも
ないみたいだし。
なぞじゃ。
S1ってのは
上でも言ってるけど
S->SD or D
D->0 or 1
と同じことなんでしょ?




180 :デフォルトの名無しさん:02/05/19 21:21
うん


181 :阿呆:02/05/19 22:42
>>176
マージのスペルミスは皮肉と受け取っておきます…
すいません、でも
>あと、配列は2つ引数で与えて1つ返すようにしろ。
ここの意味がよくわかりません。
とりあえず配列はdoubleで宣言したほうがいいんですね?

182 :阿呆:02/05/19 22:43
>>>178
クイックソートって基準値より上か下かでソートするやつですよね?
いちおうそれとは区別してプログラムしたんですけど…

183 :デフォルトの名無しさん:02/05/19 22:46
>>182
>クイックソートって基準値より上か下かでソートするやつですよね?
50点。

184 :デフォルトの名無しさん:02/05/19 22:53
>>181
マージソートとはどういうことか説明してみ

185 :阿呆:02/05/19 22:57
>>184
うーん、データ列を分割してそれぞれソートしてから
併合してソートする方法?
なんか日本語おかしいような…

186 :デフォルトの名無しさん:02/05/19 22:58
>>185
まず教科書読み直せ(笑)

187 :デフォルトの名無しさん:02/05/19 22:58
別名勝ち抜き選手権ソート。

188 :デフォルトの名無しさん:02/05/19 23:01
>>185
仕様もわからんと作り出してはいかん。

189 :阿呆:02/05/19 23:03
>>186
えぇ!?そんなに的はずれなこと言ってますかね?(;´Д`)
そういえば授業でも”トーナメント法”とか言ってましたね。
ちなみに>>174はマージソート全部じゃないですよ。
併合部分だけプログラムしてくる宿題なんです。

190 :デフォルトの名無しさん:02/05/19 23:04
>>189
なんだかなあ(´д`;)
その併合部分だけをマージソートっていうんだよ。

191 :阿呆:02/05/19 23:06
>>190
??
教科書によると
「データ列を複数のデータ列に分割し、個々のデータ列を整列し、併合する物」
とありますが…

192 :デフォルトの名無しさん:02/05/19 23:10
>>191
それであってるよ
阿呆は>>190

193 :デフォルトの名無しさん:02/05/19 23:12
そだね、ソートしてない物をマージしても良い結果は出ない。

194 :デフォルトの名無しさん:02/05/19 23:13
しまった、墓穴

195 :デフォルトの名無しさん:02/05/19 23:15
要素長1の列は常に整列済みとみなせる。
あとは倍々ゲームで元のデータ全体に達するまで併合すりゃできあがりっしょ

196 :デフォルトの名無しさん:02/05/19 23:15
typedef struct {
    int year;
    int month;
    int day;
} BirthDay;

static BirthDay birthDay[] = {
    { 1990, 1, 28 },
    { 1986, 4, 1 },
    { 1995, 3, 3 },
    { 1945, 7, 4 }
};

// ↑こんなデータを併合してソートするんじゃないの?

197 :阿呆:02/05/19 23:15
今、とりあえず配列宣言をdoubleにしてみたらいちおう動きました。
ただ、結果が
「1 2 3 4 5 6 7 8 2 4」
になってしまいました。
for文を抜けるとこのhの値は初期化されてしまうんですかね?

あと配列Bの大きさのよい宣言の仕方を教えてください…

198 :デフォルトの名無しさん:02/05/19 23:15
>>195
バブルソートのようなにおいがするソート。

199 :デフォルトの名無しさん:02/05/19 23:18
>>195
要素長1まで分割しちゃったらバブルソートのオーダと同じになってしまわないか?
間違ってたらスマソ

200 :デフォルトの名無しさん:02/05/19 23:23
わかってるつもりの事って意外とわかってないもんだな…
この程度の宿題に少しとまどってしまった俺…

201 :デフォルトの名無しさん:02/05/19 23:23
>>199
倍々ゲーム( 1+1 → 2+2 → 4+4 と処理 )なので O(n log n) でしょ

202 :デフォルトの名無しさん:02/05/19 23:24
>>201
クイックソート並みに効率が良いことに・・・。

203 :199:02/05/19 23:24
>>201
その通りですね。
やっぱ間違いでした。スマソ

204 :デフォルトの名無しさん:02/05/19 23:26
>>200
全くだ…

205 :デフォルトの名無しさん:02/05/19 23:27
みんな>>174を考え中?

206 :デフォルトの名無しさん:02/05/19 23:28
>>205
面倒だからやらないだけです

207 :デフォルトの名無しさん:02/05/19 23:28
>>205
違う。TOTOで一等とる方法。

208 :阿呆:02/05/19 23:29
>>206
そこをなんとか

209 :デフォルトの名無しさん:02/05/19 23:31
>>207
3^13

210 :デフォルトの名無しさん:02/05/19 23:31
>>199
マージ1段階がO(n)で、log{2}n 段だから、全部でO(n*log n)だよー
クイックソートやヒープソートと同じオーダーだよー


211 :デフォルトの名無しさん:02/05/19 23:31
>>174 のコードは面倒だから追ってないが、
倍々ゲームにするなら、再起または2重ループが必要だが
どっちにもなってないから駄目なんじゃないか、と適当に言ってみる。

212 :210:02/05/19 23:32
思いっきり出遅れた…鬱出汁脳

213 :デフォルトの名無しさん:02/05/19 23:33
>>211
>>174は併合部分だけらしいから再帰は必要ないでしょ

214 :デフォルトの名無しさん:02/05/19 23:47
併合部分だけなら、テスト入力データは整列済みの2列になってないといかんのでは。

215 :デフォルトの名無しさん:02/05/19 23:52
配列aにn1個, bにn2個のソートされた要素が
入っているとする。それをマージしてcにn1+n2個のソートされた
配列を入れる関数
void merge(double a[], int n1, double b[], int n2, double c[])
があるとする。

それを使うと関数void merge_sort(double a[], int n)は

void merge_sort(double a[], int n)
{
 if (n > 1) {
  int n1 = n / 2;
  int n2 = n - n1;
  int i;
  double c[n];

  for (i = 0; i < n; i++) {
   c[i] = a[i];
  }
  merge_sort(c, n1);
  merge_sort(c + n1, n2);
  merge(c, n1, c + n1, n2, a);
 }
}
と書ける。(コピーしないですむ方法あるのかな。)

216 :デフォルトの名無しさん:02/05/19 23:52
おいおい。クイックソートのオーダーはO(n^2)だぞ。
O(・)は最悪時の場合をいうことに注意.

217 :阿呆:02/05/19 23:55
>>214
配列A[i〜j]の整列済みのデータは
一次元配列Aのi〜mdlまでとmdl+1〜jまでに
分けて入れられていることになってるんです

218 :阿呆:02/05/19 23:57
>>215
>配列aにn1個, bにn2個のソートされた要素が
>入っているとする。それをマージしてcにn1+n2個のソートされた
>配列を入れる関数
>void merge(double a[], int n1, double b[], int n2, double c[])
>があるとする

「あるとする」で良ければ俺の宿題もすぐ終わるんですけどね…

219 :デフォルトの名無しさん:02/05/19 23:57
>>215
>  double c[n];
これってC99?

220 :デフォルトの名無しさん:02/05/19 23:59
>>215
>>174はそのmergeを作る宿題なんじゃないのか?

221 :阿呆:02/05/20 00:02
若干手直ししてみました。

#include<stdio.h>
void merge(int i, int j, double A[]);
main()
{
int i=0,j=9;
double A[]={1,3,6,7,8,2,4,5,9,10};
merge(i,j,A);
for(i=0;i<10;i++)
printf("%lf ",A[i]);
}
void merge(int i, int j, double A[])
{
int h,k,l,m,mdl=(i+j)/2;
double B[255];
for(k=0;k<(j-i+1);k++)
B[k]=A[k];
for(k=i,h=mdl+1,l=0;(k<=mdl)&&(h<=j);l++){
if(B[k]<B[h]){
A[l]=B[k];
k++;
}
else{
A[l]=B[h];
h++;
}
}
for(m=(h=j)?k:h;m<=(h=j)?mdl:j;l++,m++)
A[l]=B[m];
}

でもこれだと
結果が
「1 2 3 4 5 6 7 8 2 4」
になっちゃうんですよね。
for文中でインクリメントした値は
ループを抜けるとその初期化されてしまうんでしょうか?

222 :デフォルトの名無しさん:02/05/20 00:03
>>阿呆
じゃあ仕様をもう少し考えろや
引数が配列1個じゃどうしようもないことを
説明してやってるってのによ。

mdlの意味なんざ先にいえ。知るか。もう勝手にやれ。

>>220
merge自体を作ったら答教えてるのとおんなじじゃん。

>>219
21世紀になってC99でないC使ってる原人は氏ね。
バカ。もう知らないから!

223 :デフォルトの名無しさん:02/05/20 00:04
>>阿呆

質問したのなら人の話を少しは聞け…(泣

224 :阿呆:02/05/20 00:06
>>222
すいません、引数に使う配列は1コという指定なんですよ…
mdlはデータ列の真ん中の値のことです。
プログラムを見ればわかっていただけたかもしれませんが
最初に説明するべきでした。
いろいろ説明不足で大変申し訳ありません。

225 :阿呆:02/05/20 00:08
>>223
すいません、
どれかレスが漏れてしまったでしょうか?
僕なりに反芻して取り入れているつもりです。
質問者の立場でありながら度重なる失礼、まことに恐れ入ります…

226 :デフォルトの名無しさん:02/05/20 00:09
>>222
どうどう

>>225
まぁこういう業種の人たちは気むずかしい人が多いから…
>オレモナー

227 :デフォルトの名無しさん:02/05/20 00:10
本当に阿呆だな

228 :219:02/05/20 00:09
>>222
(´・ω・`)ショボーン

229 :デフォルトの名無しさん:02/05/20 00:12
>>222
別に引数に使う配列は1コでも大丈夫でしょ。
コピーする配列は関数内で定義すればいいんだし。
事実、>>221でほとんど出来てる

230 :デフォルトの名無しさん:02/05/20 00:13
まぁプログラムに「これが絶対の正解」というのはないからな。
より最適なものを作り出すのが俺たちの仕事なわけだから。


231 :219:02/05/20 00:13
>>221
hにjを代入してるねー

232 :デフォルトの名無しさん:02/05/20 00:17
>>231
!!
そうでした!
比較の場合は”==”ですよね!
あーこれでようやく完成です。
こんなくだらない宿題につき合ってくださったみなさん、
本当にありがとうございました!

233 :阿呆:02/05/20 00:20
>>232=僕です。
本当にどうもです!>ALL

234 :デフォルトの名無しさん:02/05/20 00:21
>>232
がんばれよ、プログラマの卵

235 :デフォルトの名無しさん:02/05/20 00:21
        /⌒彡
        /冫、 )
        / `  ∩ ))
    (( (つ  丿
      ( ヽノ
      し(_)

236 :豆。:02/05/20 14:04
C言語なんですけど、1〜10までの数字の総和、平均、最大値、最小値を
求めるプログラムが宿題で出てるんですけど、教えてくれませんか?

237 :デフォルトの名無しさん:02/05/20 15:35
>>236
大学生だろ?それくらい自分で書いてくれ。

238 :デフォルトの名無しさん:02/05/20 15:36
>>236
void main()
{
printf("1から10間での総和は 55 です。\n");
printf("1から10間での平均は 5.5 です。\n");
printf("1から10間での最大値はは 10 です。\n");
printf("1から10間での最小値は 1 です。\n");

}

239 :デフォルトの名無しさん:02/05/20 20:12
肝心な関数のところが書かれてないなんて素敵

240 :デフォルトの名無しさん:02/05/20 20:13
>>239
コンパイルしちゃえば取りあえずはばれない。


241 :デフォルトの名無しさん:02/05/20 20:23
バイナリを見ると大抵テキストはそのまま見える

242 :デフォルトの名無しさん:02/05/20 20:24
int i;
float tmp;
for(tmp = 0.0f,i = 1;i <= 10;i++)
tmp += i;
printf("総和 %.0f\n", tmp);
printf("平均 %.1f\n", tmp/10.0f);
printf("最大 10\n最小 1\n");

243 :デフォルトの名無しさん:02/05/20 21:04
>>236
全部定数やん

244 :デフォルトの名無しさん:02/05/20 21:07
>>243
>>238見てから反省して下さい。

245 :こんなかんじでどうよ?:02/05/20 21:13
#include <stdio.h>
#include <stdlib.h>

/* tree node */
typedef struct tnode_type
{
struct tnode_type* left;
int prod;
int digit;
int value;
struct tnode_type* right;
}TNode;

/* tree function prototypes */
void print_tree(TNode* tnode, int level);
TNode * make_node(int prod,int value, TNode* left, TNode* right);


/* ll parser function prototypes */
void S();
void D();
void next();
void error(int ch);


/* shared variables */
int ch;
int sv=0,dv=0;
TNode* tree=NULL;
TNode* dnode=NULL;

// driver
int main()
{
ch = getchar(); /* get first digit */

S(); /* parse statement */

printf(" value = %d\n",sv); /* print out result */

printf("look!!\n");
print_tree(tree,0); /* print tree (look side ways) */
putchar('\n');
return 0;
}




246 :こんなかんじでどうよ?:02/05/20 21:13
// statement
void S()
{
while(ch!=-1)
{
D(); /* check for digit */
sv = 2 * sv + dv; /* calculate sv */
tree=make_node('S',sv,tree,dnode);
}

}


// digit
void D()
{
if(ch == '0' || ch == '1')
{
dv=ch-'0';
dnode=make_node('D',dv,NULL,NULL);
putchar(ch);
next(ch);
}
else error(ch);
}

/* get next character */
void next()
{
ch = getchar();
while(ch=='\n'||ch=='\r')
if(ch!=-1)ch=getchar();
}

/* error handler */
void error(int ch)
{
printf("character %c not expected: ",ch);
exit(1);
}


247 :こんなかんじでどうよ?:02/05/20 21:14

/* tree functions */
TNode * make_node(int prod, int value, TNode* left, TNode* right)
{
TNode* tnode = malloc(sizeof(struct tnode_type));
tnode->prod=prod;
tnode->value=value;
tnode->left=left;
tnode->right=right;
return tnode;
}


/* print tree */
void print_tree(TNode* tnode, int level)
{
int i;
level++; /* increment level */
if(tnode != NULL)
{
print_tree(tnode->left,level);
for(i=0;i<15-level;i++)
printf(" ");
printf("%c %d\n",tnode->prod,tnode->value);
print_tree(tnode->right,level);
}
level--; /* decrement level */
}



248 :219:02/05/20 21:20
template<int T> inline int sum_to() {
 return sum_to<T-1>() + T;
}
template<> inline int sum_to<1>() {
 return 1;
}

1から10までの和は、sum_to<10>() で GCC -O2 -S で見たら定数55に展開された。

249 :デフォルトの名無しさん:02/05/20 21:27
>>248
ぜひ
T*(1+T)/2
を使用してください

250 :219:02/05/20 21:32
>>249
いや、あえてアホなことを面倒な方法でやってみただけ(w

251 :デフォルトの名無しさん:02/05/20 22:28
<>

252 :質問:02/05/21 00:33
Buttonクラスを使用したプログラムを作成しなさい。題材は各自で自由に決めてよい。また、Button以外のコンポーネントを自由に組み合わせてもよい。クラス図とシーケンス図を作成することが望ましい。

253 :デフォルトの名無しさん:02/05/21 00:34
Javaはワカラソ

254 :デフォルトの名無しさん:02/05/21 00:35
>>252
なんかその宿題見たことあるような・・・

255 :デフォルトの名無しさん:02/05/21 00:36
>>252
お前、自由研究くらい自分でやれって。

256 :252:02/05/21 00:59
>>254
同じ大学だたーりw
>>255
全くわからないのですまんかった。

257 :デフォルトの名無しさん:02/05/21 03:40
( ´3`)怜たんキスしよう・・・(´д`)えっ…

258 :デフォルトの名無しさん:02/05/21 03:42
ムーン( ´=======3  (´д` )イ、イヤ…

259 :デフォルトの名無しさん:02/05/21 03:44
ブチュゥ( ´=============3´д` )アン… 

260 :デフォルトの名無しさん:02/05/21 15:27
宿題じゃないけど教えてくれさい。
1(2)の補数がどういうものかはわかるんだけどなぜ1(2)の補数と
呼ばれるかおしえてくれさい。


261 :デフォルトの名無しさん:02/05/21 15:38
>>260
一般にn進法には「n-1の補数」と「nの補数」が存在する。
「n-1の補数」は、「各桁の数字をn-1から引いたもの」だ。
例えば、10進数3758の9の補数は6241。ここまでは別に
無理なかろう。

「nの補数」ってのは「n-1の補数に1を足したもの」と定義
される。例えば、10進数3758の10の補数は6242だ。(足して
みると1万になる)。

で、これがなんで「nの補数」と呼ばれるかというと、「n-1
の補数」との語呂合わせとしか言いようがない。

ちなみに、英語では、2の補数を"two's complement"と書くのに
対して、1の補数は(各桁ごとに1の補数をたくさん取るから複
数形で)"ones' complement"と書くのが正しい。



262 :デフォルトの名無しさん:02/05/21 15:42
うおー完全に理解しました。ありがたふ

263 :デフォルトの名無しさん:02/05/21 16:48
誰か折れの補数を取りたいやつはいないか?

264 :デフォルトの名無しさん:02/05/21 16:54
勉強になるでごわす

265 :デフォルトの名無しさん:02/05/21 17:08
補数は歩数からきたの?

266 :デフォルトの名無しさん:02/05/21 18:12
for文を使ってa〜zまでを出力するプログラムを
教えて下さい。

267 :デフォルトの名無しさん:02/05/21 18:29
for (i=0; i<1; ++i) {
printf("abcdefghijklmnopqrstuvwxyz");
}

268 :デフォルトの名無しさん:02/05/21 18:33
for (i=0; i<26; ++i) {
putchar("abcdefghijklmnopqrstuvwxyz"[i]);
}


269 :デフォルトの名無しさん:02/05/21 18:41
for (i = 0; i < 26; i++) {
putchar(i["abcdefghijklmnopqrstuvwxyz"]);
}

270 :デフォルトの名無しさん:02/05/21 19:09
int i;
for(i = 0;i < 26;i++) cout.put('a'+i);

271 :デフォルトの名無しさん:02/05/21 19:13
for (puts("abcdefghijklmnopqrstuvwxyz");0;)

272 :デフォルトの名無しさん:02/05/21 19:16
全員鬼(w

273 :デフォルトの名無しさん:02/05/21 20:35
char buf[]="a";
for(int i=0; i<26; i++ )
{
 buf[1]++;printf("%s", buf);  
}

274 :デフォルトの名無しさん:02/05/21 20:36
あ、失敗。
buf[1]++;printf("%s", buf);

printf("%s", buf); buf[1]++;
ダネ

275 :デフォルトの名無しさん:02/05/21 21:46
>>274
それを書くなら buf[0]++; だろ。
segmentation fault起きるぞ。どっちにしても。

276 : :02/05/21 21:53
レジスタ GR0 の内容を 10進数で表示するサブルーチン OUTDEC を作成しなさい。

メインプログラムでレジスタ GR0 に値を格納して,作成した表示ルーチンを呼び出して下さい。なお、OUTDEC とメインプログラムは、別々のファイル (outdec.cas, main.cas) に作成すること。

277 :デフォルトの名無しさん:02/05/21 23:31
>>275
buf[0]++なら起きないんじゃない?
char *bufじゃなくてchar buf[]と宣言してるから。

いずれにせよ>>270>>274は文字コード依存という罠。


278 :273:02/05/21 23:34
なんで、277はbuf[1]++だとSegFaultになると思いますカ?

279 :デフォルトの名無しさん:02/05/21 23:48
>>278
buf[1]は定義されてないだろ。厳密には'\0'だろうが。
printf("%s", buf); とやった時点で、何が起きるかわからない。
>>270>>274はEBCDICでは動作が不定となる。

280 :デフォルトの名無しさん:02/05/21 23:50
ん?ああ、マルチバイト文字(2バイトのつもりなんだろな)を
char配列にいきなり書いちゃうってことか。

うー、今までは「文字コード依存だけど実はたいてい動く」
と思ってたんだが、それだといきなり未定義動作...


281 :デフォルトの名無しさん:02/05/21 23:57
今時EBCDICとか、
未定義動作とか
ぐちゃぐちゃいう香具師は、
正直、fj逝ってくれよ、と思う……

282 :デフォルトの名無しさん:02/05/22 00:00
ルールなしのパズルは面白くないよ。

283 :デフォルトの名無しさん:02/05/22 14:49
JAVAですが、以下のような課題です。

50個のデータを保持できるスタッククラスを作成せよ。
ただし、Javaの配列宣言は以下の通りである。
int buf[] = new int[50];

また、このスタックを利用して、与えられた50個以下の
整数列を逆順にするプログラムを作成せよ。

Javaは初めて触ったので皆目見当がつきません。
よろしくお願い致します。

284 :デフォルトの名無しさん:02/05/22 15:24

class StackClass{
private int buf[] = new int[50];
private int index = 0;
public void push(int n)
{
if(index < 0 || index >= 50)
index = 0;
buf[index++] = n;
}

public int pop()
{
if(index < 1 || index >= 50)
index = 1;
return buf[--index];
}
}
こうか?
スマン俺もjavaなんてやったことないからわからない
しーらないっと(;゚3゚)〜♪

285 :ちーん:02/05/22 15:32
-|z|<(x-a)^2+(y-b)^2<|z| を満たす整数(x,y)の組の総数を返す関数を作成しなさい。

c言語でおながします。

やりかたがサパーリわかりません。

286 :ちーん:02/05/22 15:35
#include <stdio.h>
main()
{
int x,y;
float z,a,b ;

printf("z=?\n");
scanf("%f",&z);
printf("a=?\n");
scanf("%f",&a);
printf("b=?\n");
scanf("%f",&b);

((x-a)*(x-a)+(y-b)*(y-b))*((x-a)*(x-a)+(y-b)*(y-b))<z*z

ここまでは書いたんですけどね。

287 :デフォルトの名無しさん:02/05/22 15:45
285
一つ聞こう?
aとbは複素数なのか
その式変と思わんカッタか?

288 :デフォルトの名無しさん:02/05/22 15:47
>>285-286
-sqrt(fabs(z)) + a < x < sqrt(fabs(z)) + a
-sqrt(fabs(z)) + b < y < sqrt(fabs(z)) + b
の範囲でxとyを動かし、
(x-a)^2+(y-b)^2 < fabs(z) となる(x,y)の組を見つけるだけだよ。

289 :ちーん:02/05/22 15:48
>>287
もともと3乗の問題で、それを2乗にかえて出題したためこういうことがおこったそうです(^^


290 :ちーん:02/05/22 15:50
sqrtは平方根ですよね?
??

291 :デフォルトの名無しさん:02/05/22 15:58
>>290
これは、図形的に解釈すると、(x-a)^2+(y-b)^2=|z|という円の方程式の中に
当てはまる(x,y)の組を見つける問題だからだよ。
この円の半径は、sqrt(abs(z))となるよ。

292 :do?f?l:02/05/22 16:03
コマンドラインに指定したプログラムファイルの中身を
表示するにはどうしたらいいでしょうか。

例えば
% 実行形式ファイル名 表示したいファイル名

みたいな。

293 :ちーん:02/05/22 16:15
わかりました・・・ありがとうございました>291さん

294 :292:02/05/22 16:25
ちなみにC言語です。

295 :デフォルトの名無しさん:02/05/22 16:28
#include <stdio.h>
#include <ctype.h>
int main(int argc,const char **argv)
{if(argc == 2){FILE *fp = fopen(argv[1], "rb"); int c;
if(fp == NULL) return 1;
while((c = fgetc(fp)) != EOF)
putchar(isprint(c)?c:'.'); fclose(fp);}return 0;}

296 :デフォルトの名無しさん:02/05/22 16:29
>>292
1バイトずつ読んで出力せよ

297 :276:02/05/22 16:41
caslIIれす。。。

298 :292:02/05/22 17:13
うっ…

れ、レスありがとうございます。
Cの勉強を始めたばかりの自分には
少し難しかったですが、なんとか理解出来ました。

ところで
putchar(isprint(c)?c:'.');
って所は

putchar(c);
ではいけないのでしょうか?

299 :デフォルトの名無しさん:02/05/22 17:16
>>298
バイナリエディタでは不可視の文字は . に置き換えられるでしょ?


300 :デフォルトの名無しさん:02/05/22 17:19
>>292
問題ないと思う。
ただputchar(isprint(c)?c:'.')のほうがプリント可能キャラクタかチェックして出力しているので、>>295はより実践的。

301 :デフォルトの名無しさん:02/05/22 17:27
>>298
もしバイナリ開いて0x07がきたらやかましくなるぞ。

302 :298:02/05/22 17:41
なるほど。
fopenのモード指定を"r"にして
テキストエディタのみで使うのなら問題無いってことなのでしょうか?

303 :デフォルトの名無しさん:02/05/22 17:47
>>301
Alarm('\a')?

304 :デフォルトの名無しさん:02/05/22 18:21
>>302
フールプルーフ(fool proof)って知ってるか?
マーフィーの法則なら知ってるか?


305 :さくら:02/05/22 18:30

64*64の2次元配列に1/0の2値を持ったものを画像とし、
この画像を拡大する関数ExpandImage()を作ってみました。
しかし微妙にバグってるところが幾つかあるようなのです。
かなり考えたんですけど、もう限界です。
どなたか、誤りを訂正していただけないでしょうか。


int ExpandImage(int image[][64])
{
int x1, x2, y1, y2, n, i, i1, i2;
double mgnH, mgnV, dH, dV;
int tmpImage[64][64];

// 画像の4隅の座標を得る関数
zahyou(&x1, &x2, &y1, &y2, image);
x1 = 32-x1; x2 = x2-32;
y1 = 32-y1; y2 = y2-32;
dH = (x1+x2)/2; dV = (y1+y2)/2;

// 拡大倍率計算
mgnH = 32.0/dH; mgnV = 32.0/dV;

// 横拡大
i1 = 1;
for(i=0; i<dH; i++){
i2 = (i+1)*mgnH;
while(i2 >= i1){
for(n=0; n<64; n++){
tmpImage[n][33-i1] = image[n][33-i];
tmpImage[n][32+i1] = image[n][32+i];
}
i1++;
}
}
// 縦拡大
i1 = 1;
for(i=0; i<dV; i++){
i2 = (i+1)*mgnV;
while(i2 >= i1){
for(n=0; n<64; n++){
image[33-i1][n] = tmpImage[33-i][n];
image[32+i1][n] = tmpImage[32+i][n];
}
i1++;
}
}
}

306 :デフォルトの名無しさん:02/05/22 18:47
線がランダム入るのか、ドットが四角く等間隔ではいるのか
まったく動かんのか?

307 :デフォルトの名無しさん:02/05/22 21:08
>>288
それはあんまり頭イイ方法とはいえないんじゃないかな。

308 :デフォルトの名無しさん:02/05/22 21:10
ブレゼンハムでがんばれ

309 :デフォルトの名無しさん:02/05/22 21:15
C言語で
abc def ghi jkl mno
のようにスペースで区切られた単語を前から読んでいく時
終わりはどうやって指定すればいいんですか?

例えば上の単語列のファイルがあるとして
(今やってる問題は構造体なので)

for(i=0;???;i++)
fscanf(fp,"%s",data[i].name)

なんて感じにしたいのですが、ループの終了をどうやって
指定すればいいのかわかりません・・・
おねがいしまーす

310 :デフォルトの名無しさん:02/05/22 21:18
>>309
\nまたはEOF

311 :309:02/05/22 21:20
この場合何が \n または EOF になれば終了とすればいいんでしょうか?

for(i=0;i<100;i++){
fscanf(fp,"%s",data[i].name);
if(data[i].name == EOF)
break;
}

とやっても上手くいかなかったんですが・・・


312 :さくら:02/05/22 21:27
>>305
1.一番上の行にドットがあるべきなのに、全くない。
2.一番左の列がずれているように見える。
3.1,2行(列)分余計に拡大している。

このような問題があります。

313 :デフォルトの名無しさん:02/05/22 21:32
>>311
Cの本とか読んでる?初歩の初歩だよ。

314 :ハァハァ:02/05/22 21:34
(;´Д`)さくらタン

315 :C始めて一週間の小坊主:02/05/22 21:36
C言語はじめて一週間なのに下記の宿題をいただきました。
教えていただけないでしょうか。
よろしくお願いします。

May 20 17:43:19 mail sendmail[59250]: to=<test@test.com>, delay=00:00:41,
xdelay=00:00:40, mailer=esmtp, pri=30301, relay=ww.test.net. [192.168.111.130],
dsn=2.0.0, stat=Sent (ok 1021884198 qp 8845)
上のようなログがたくさんファイルAの中に入っていて
それを必要な個所だけ抜き出してファイルBに出力するという宿題です。
例)
May 20 17:43:19 host=ww.test.net, address=192.168.111.130
          ・
          ・
          ・
          ・


316 :デフォルトの名無しさん:02/05/22 21:37
宿題なんですが、よろしくお願いします。
unixのコマンドにcatとかmore less ってありますよね。
その、lessコマンドのソースを作ってもらえませんか。
catはできたんですが・・・
コレ改良してつくれませんかねぇ・・・

#include < stdio.h >

main (int argc, char *argv[])
{
FILE *fpr;
cahr buf[BUFSIZ]

if(argc<2){
fpr=stdin;
}else if((fpr=fopen(argv[argc-1],"r"))==NULL){
fprintf(stderr,"%sというファイルが見つかりません\n", argv[argc-1]);
return(-1);
}else{
}

while(fgets(buf,sizeof(buf),fpr)!=NULL){
fprintf(stdout,"%s",buf);
}
}

317 :デフォルトの名無しさん:02/05/22 21:40
lessが何をするもんなのか言ってくれたら考える

318 :デフォルトの名無しさん:02/05/22 21:57
>>316
それ以前に #include < stdio.h > のスペースは何だ?
              ^    ^

319 :デフォルトの名無しさん:02/05/22 21:58
>>315
そんなら一行ごと読み出して正規表現使おうYO

320 :デフォルトの名無しさん:02/05/22 22:10
>コレ改良してつくれませんかねぇ・・・

lessって、catの改良とかそういうレベルじゃないような。

321 :デフォルトの名無しさん:02/05/22 22:22
312
小さい方の画像の解像度が2のべき数でもずれるか?(8x8とか32X32とか)

322 :309:02/05/22 22:25
すんません、ちょっと考えたらできました。
久しぶりにやったもんで忘れてしまってて・・・

323 :デフォルトの名無しさん:02/05/23 00:29
>>316
悪いことは言わんからmoreにしとけ。

324 :デフォルトの名無しさん:02/05/23 01:13
lessって、ページャーだよな。MSDOSで言うと、miel(な、懐かしい・・・・)のような
ものでアール。

325 :デフォルトの名無しさん:02/05/23 01:42
C言語始めたばかり何ですが、0〜200の間で2と3と6の倍数の和を一度に3つとも
求める。繰り返し関数の使用は1回しか使えない。
ヒントだけでも教えてもらえないでしょうか?

326 :デフォルトの名無しさん:02/05/23 01:45
>>325
3つの変数を用意し、それぞれ2、3、6を代入。次にそれぞれに2、3、6を
足して行き、その結果を別の3つの変数に足して行く。足した結果が200を
超えた時点で足すのをやめる。これだけ。

327 :デフォルトの名無しさん:02/05/23 01:49
>>326
2x3=6を利用すれば
変数一つ減らせていいと思った一人ぼっちの放課後

328 :325:02/05/23 01:54
>>326,327
ありがとうございます。
何となくわかったので自分でがんばってやってみます。

329 :デフォルトの名無しさん:02/05/23 03:23
>>326は問題を取り違えているような気がしないでもない。
0-200の間って、0から200の間の2の倍数の全ての和、ってことだよね?

だったら、繰り返し文でnを0から200まで変化させる。
その中で、nが2の倍数だったら、2の倍数の和を表す関数に足す・・
nが3の倍数だったら・・・
とかやればいいと思う。それだけ。

330 :デフォルトの名無しさん:02/05/23 03:31
>>329
結果は同じだと思うが。
(関数に足すってのは変数のまちがいだよな…)

しかし、質問者も「繰り返し関数」って…まさかLisperか?

331 :330:02/05/23 03:34
違った。スマソ
326は終了条件をまちがえてるね。

332 :デフォルトの名無しさん:02/05/23 03:34
>>329
まあ%演算子を使えば簡単になるだろうね。
>>326は足した結果が200を超えた時点と言っているが、これは確かに
間違っているな。

333 :330:02/05/23 03:35
いや、また違った(ウツ
やっぱ326は正しい。

334 :デフォルトの名無しさん:02/05/23 03:44
「繰り返し関数」って、forやwhileのことを関数だとでも思ってるってパターンか。

335 :デフォルトの名無しさん:02/05/23 03:46
>>333
>>325の質問の意味があいまいだよな。倍数の和が0〜200の間なのか、
倍数が0〜200の間なのかはっきりしない。>>326は前者だとしてヒントを
与えている。

336 :デフォルトの名無しさん:02/05/23 03:47
繰り返し関数って・・・・・・繰り返し文の間違いだよな。そうと言ってくれ。

337 :325:02/05/23 05:38
みなさんすみません。日本語の説明の時点で色々間違えていたみたいで、
倍数が0〜200の間と言うことと繰り返し関数じゃなくて繰り返し文でした。
すみませんでした。

338 :デフォルトの名無しさん:02/05/23 05:49
>>326
>3つの変数を用意し、それぞれ2、3、6を代入。
その手順なら、全てに0を代入の間違いだと思われ
>>334&>>336
式と関数しか習ってないと思われ
つー訳で>>325がやりたい事は、こんな所だろう

void forever ( signed int i, int *p2, int *p3, int *p6 ) {
 *p2 += ( i % 2 ) ? 0 : i ;
 *p3 += ( i % 3 ) ? 0 : i ;
 *p6 += ( i % 6 ) ? 0 : i ;
 ( i >= 0 ) ? forever ( i - 1, p2, p3, p6 ), 0 : 0 ;
}

339 :338:02/05/23 05:51
(T_T)

340 :デフォルトの名無しさん:02/05/23 06:29
>>329-
考えがまとまってから書き込め

341 :デフォルトの名無しさん:02/05/23 09:10
何でも良いが公倍数は無視か?

342 :デフォルトの名無しさん:02/05/23 09:48
>>326 が意味するのはこんなとこでしょう。

int i2, i3, i6;
int sum2 = 0, sum3 = 0, sum6 = 0;
for (i2 = 2, i3 = 3, i6 = 6; i2 <= 200; i2 += 2, i3 += 3, i6 += 6) {
 if (i2 <= 200)
  sum2 += i2;
 if (i3 <= 200)
  sum3 += i3;
 if (i6 <= 200)
  sum6 += i6;
}

>>338
i2, i3, i6の初期値に0を入れても結果は同じ。


343 :329:02/05/23 10:39
>>325
プログラマができなければいけない言語は母国語です。
言いたい事を上手く言葉にして伝える練習をしましょう。
何かここ見ただけだと余計混乱してそうなので、わかりやすく正解書いとく。
int sum2 = 0;
int sum3 = 0;
int sum6 = 0;
int n;
for(n = 0; n <= 200; n++){
 if(n % 2 == 0) sum2 += n;
 if(n % 3 == 0) sum3 += n;
 if(n % 6 == 0) sum6 += n;
}

344 :デフォルトの名無しさん:02/05/23 10:54
ダレがなんと言おうと唯一絶対の階はこれです

#include <stdio.h>

template<int N>
struct F
{
 enum {
  _2 = F<N-1>::_2 + (N % 2 ? 0 : N),
  _3 = F<N-1>::_3 + (N % 3 ? 0 : N),
  _6 = F<N-1>::_6 + (N % 6 ? 0 : N),
 };
};

template<> struct F<1>
{ enum {_2 = 0, _3 = 0, _6 = 0}; };

main()
{
 const int N = 200;
 printf("%d, %d, %d\n", F<N>::_2, F<N>::_3, F<N>::_6);
}


345 :デフォルトの名無しさん:02/05/23 11:30
int calc_sum(const int min, const int max, const unsigned mul){

  int first, last;

  if (!mul || min > max)
    return 0;

  first = min + ((first = min % mul) ? (mul - first) : 0);
  last = max - max % mul;

  if (first > last)
    return 0;

  return (first + last) * ((last - first) / mul + 1) / 2;

}

int main(){
  const int MIN = 0;
  const int MAX = 200;
  printf("s2 = %d s3 = %d s6 = %d\n", calc_sum(MIN, MAX, 2) , calc_sum(MIN, MAX, 3), calc_sum(MIN, MAX, 6));
  return 0;
}

346 :デフォルトの名無しさん:02/05/23 12:33
ファイル名を指定して、そのファイルがC言語ファイルか
Pascal言語ファイルだった場合、
そのファイル中の「自分で定義した関数、もしくは手続き名」を
型情報とともに表示するCプログラムを作成せよ。
なお指定されるファイルは文法的に正しいものだけと仮定する。

お願いします。


347 :デフォルトの名無しさん:02/05/23 12:40
>>346
あらあらしゅくだいなのね?
がんばってくださいねー

348 :デフォルトの名無しさん:02/05/23 13:00
手続き名ってなんだ?Pascalの?
関数はプロトタイプだけでいいのか?

349 :デフォルトの名無しさん:02/05/23 13:18
>>346 Pascalなら楽だが(コメントを削って、カッコの中にないprocedure
またはfunctionの次の名前だけ表示すれば良い)、Cだと難しすぎる。パーザ
書かなきゃ。


350 :346:02/05/23 13:21
すいません。
Pascal言語の場合は関数名及び手続き名。
C言語の場合は関数名です。
関数はプロトタイプだけで良いものと思われます。

351 :デフォルトの名無しさん:02/05/23 13:27
>>350
それでもC言語の場合は難しすぎる。

型定義をちゃんと解釈できないとどこが関数名か分からない。
型定義を解釈するためにはstructやunionやenumやtypedefも
解釈できないと…

352 :デフォルトの名無しさん:02/05/23 13:35
>>350
grepしたれ

353 :350:02/05/23 13:40
truct,union,enum,typedefと
関数の区別については今回は目をつぶるようです…

Pascalの場合は簡単だという事ですが
どうなるのでしょうか?


354 :デフォルトの名無しさん:02/05/23 13:42
>>349

355 :デフォルトの名無しさん:02/05/23 13:58
昨日はご回答ありがとうございました。
今日もお願い致します。
Javaでエラトステネスのふるいを作成せよ、という問題です。
クラスはMainとSieveを使用するのが原則となっています。
よろしくお願い致します。

356 :デフォルトの名無しさん:02/05/23 13:59
>>355
で、どこがわからんの?

357 :デフォルトの名無しさん:02/05/23 13:59
それは宿題をやってほしいのかな?
それとも現在分からないことがあるのかな?

358 :355:02/05/23 14:08
できれば、課題自体をお願いしたいのですが。。。
演習書の説明が理解できないので。。。
エラトステネスのふるい自体わかりませんので。。。
今回、はじめて聞きました。

359 :353:02/05/23 14:11
>>354
文字列が procedure または function かどうか
判定するにはやはり一文字ずつ読み込んで
比較するのでしょうか?

360 :デフォルトの名無しさん:02/05/23 14:12
>>358
http://www.sra.co.jp/public/doc/GSletter/vol.27/java/java.html
したから1/4位。
エラトステネスのふるいは素数の倍数を除去しながら計算していく方法

361 :デフォルトの名無しさん:02/05/23 14:14
text fileで質問ですが、簡単な20KBにもみたないファイルを
友達から送ってもらったのですが、なぜかそれを受け取った
時、ファイルの容量が980KBになっていました。
それをハードディスクに落として、見てみるともとの20KBに
戻っていました。それでそのファイルを今度は他の人に
送ったとき、またファイルの容量が980KBになっていました。
これはなぜこうなるんでしょうか?目に見えないヘッダファイル
かなにかが添付されてるのでしょうか?もしそうだったら
どのようにそのヘッダファイルを見ることができますか?
別に宿題じゃないんですが、疑問に思って

362 :デフォルトの名無しさん:02/05/23 14:15
>>361 マルチたん・・・ハァハァ

363 :デフォルトの名無しさん:02/05/23 14:29
すいません・・・むこうじゃ誰も答えてくれないので
こっちのほうが詳しい人いそうと思って・・・

364 :デフォルトの名無しさん:02/05/23 14:31
>>363
安心しろ。俺も5KBのファイルが1GBになったのを見たことがある。
気にすることはない。

365 :デフォルトの名無しさん:02/05/23 14:33
ええマルチたん!?!

>>361
あ、ほんとだ

(;´Д`)イイ!

366 :デフォルトの名無しさん:02/05/23 14:36
>>361
怜たんより萌えるな・・・ハァハァ

367 :デフォルトの名無しさん:02/05/23 14:50
20KBが980KBですから、残りの960KBは
何がふくまれてるのかなーって思って。
不思議なんです。どんな情報がはいってるのやら。
その残りを見ようとしても見る方法がわからないので。
誰かファイルのエキスパートいませんか?
ファイルファイル

368 :デフォルトの名無しさん:02/05/23 14:52
ファイル ファイリフレ ファイリホー

369 :デフォルトの名無しさん:02/05/23 14:55
>なぜかそれを受け取った 時、ファイルの容量が980KBになっていました。
>それをハードディスクに落として、見てみるともとの20KBに 戻っていました。

どういうことよ?受け取ったときはディスクにないの?

370 :デフォルトの名無しさん:02/05/23 14:57
メーラーで添付ファイル見たときの表示が980KBってことでは。

371 :デフォルトの名無しさん:02/05/23 15:19
370
そうです、ファイルをいったんハードディスク上に落とすと
20KBのファイルなんですが、メーラーの上でみると
なぜか980KBになってるんです。

それで実験で、新しいファイルをオープンして、これをaa.txtとして
このファイルにさっきHDDに落としたファイルをコピーアンドペーストで
貼り付けます。それでaa.txtというファイルを保存します。この時点で
このファイルは20KBバイトです。しかし、このファイルをメーラーで
送ると、受け取ったさきは980KBになっているのです。
この、のこりの960KBを、
じっちゃんの名にかけて解いてくれ

372 :デフォルトの名無しさん:02/05/23 15:25
漏れのじっちゃんは、名にかけてっていうほど有名じゃないしなぁ

373 :デフォルトの名無しさん:02/05/23 15:29
そのメーラが腐ってた!

ただ980KBと表示されてるだけならどうだっていいじゃん
実際にスペース食ってなければ

374 :デフォルトの名無しさん:02/05/23 15:31
メーラーは今を時めくスーパーグレートアウトルックエクスプレッサー
なずけて、SGOE

375 :無責任だが:02/05/23 15:49
>>346
きちんとしたパーサーを作るのが結局一番簡単でしょう

C言語の文法は規格書を基準に、他には
http://www.lysator.liu.se/c/ANSI-C-grammar-y.html

pascalなら tplyで検索してその中の pas.Y を参考に

376 :無責任だが:02/05/23 16:46
pascalはこっちがいいかも
http://www.moorecad.com/standardpascal/yacclex.html


377 :デフォルトの名無しさん:02/05/23 16:51
んで、入力されたソースがcであるかpascalであるかはんていせにゃならんから、
かなり大変でない?

378 :デフォルトの名無しさん:02/05/23 16:55
そこはほら、拡張子で(w

379 :デフォルトの名無しさん:02/05/23 16:57
>>374 それはやはりドイツ語風にスギョェとよむんでしょうか?

380 :デフォルトの名無しさん:02/05/23 17:36
>>346
プリプロセスはどうするんだ?

381 :デフォルトの名無しさん:02/05/23 17:48
どう考えても無茶な課題だよな・・・

382 :デフォルトの名無しさん:02/05/23 17:59
中括弧だけ見て、中括弧の外に出てるものだけを見るというのでは駄目?
””とコメントだけは注意して。課題レベルならそれくらいでいいかなと・・

383 :デフォルトの名無しさん:02/05/23 18:00
>>346
その課題って、ちゃんと字句解析、構文解析について習った上で出されたんだよな?

384 :デフォルトの名無しさん:02/05/23 18:22
>>346

#define a( ignored_param ) a[] =

int a( int ignored ){ 0, 1 };

がんばってください

385 :あぼん:02/05/23 21:00
逆行列求めるプログラムなんですが、
#include<stdio.h>

intv1(a,n,nn)
double *a;
int n,nn;
{
int i,j,k;
double p,q;
double *ak,*ai;
for(k=0,ak=a;k<n;++k,ak+=nn){
p=ak[k];
ak[k]=1.0;
for(j=0;j<n;++j)
ak[j]/=p;
for(i=0,ai=a;i<n;++i,ai+=nn){
if(i!=k){
q=ai[k];
ai[k]=0.0;
for(j=0;j<n;++j){
ai[j]-=q*ak[j];
}
}}}


int main(void){

double a[2][2]={ {1.0,2.0},{3.0,4.0}},x[2][2],ad[2][2];
intv1(a,2,2);
return 0;

}
こうやると、どうしても int mainのあたりでシンタックスエラーがでます。
どこがまちがってるかオシエテクダサイ。

386 :デフォルトの名無しさん:02/05/23 21:06
>>385
ネタニマジレス
カコワルイ

387 :デフォルトの名無しさん:02/05/23 21:06
>>385
{ } の対応がおかしいけどさ、それ以前に文法古すぎ(w
}}}ってまとめて閉じてるのもすごいな。
先史時代にタイムスリップしたかのようだ

388 :デフォルトの名無しさん:02/05/23 21:12
>>387
あがる一方のソースって初めて見た・・・。
普通正規分布型になるのに。

389 :デフォルトの名無しさん:02/05/23 21:28
>>385
配列へのポインタの使い方が無駄すぎだけどこんな感じ。

#include<stdio.h>

void intv1(double (*a)[2], int n, int nn)
{
int i,j,k;
double p,q;
double (*ak)[2], (*ai)[2];
for(k=0,ak=a;k<n;++k,ak++){
p=ak[0][k];
ak[0][k]=1.0;
for(j=0;j<n;++j)
a[0][j]/=p;
for(i=0,ai=a;i<n;++i,ai++){
if(i!=k){
q=ai[0][k];
ai[0][k]=0.0;
for(j=0;j<n;++j){
ai[0][j]-=q*ak[0][j];
}
}
}
}
}

int main(void){
double a[2][2]={ {1.0,2.0},{3.0,4.0}},x[2][2],ad[2][2];
intv1(a,2,2);
return 0;
}

390 :デフォルトの名無しさん:02/05/23 21:54
>>385
>>389の間違いを訂正しました。

#include<stdio.h>

void intv1(double (*a)[2], int n, int nn)
{
int i,j,k;
double p,q;
double (*ak)[2], (*ai)[2];
for(k=0,ak=a;k<n;++k,ak++){
p=ak[0][k];
(*ak)[k]=1.0;
for(j=0;j<n;++j)
(*ak)[j]/=p;
for(i=0,ai=a;i<n;++i,ai++){
if(i!=k){
q=(*ai)[k];
(*ai)[k]=0.0;
for(j=0;j<n;++j){
(*ai)[j]-=q*(*ak)[j];
}
}
}
}
}

int main(void){
double a[2][2]={ {1.0,2.0},{3.0,4.0}},x[2][2],ad[2][2];
intv1(a,2,2);
return 0;
}

391 :デフォルトの名無しさん:02/05/23 22:26
headは構造体、code,tempは配列だとして
tempに読みこんだ文字列を構造体headの中の配列codeに
いれたいのですが

head->code = temp;

とやるとエラーが出てしまうのですが
このやりかたはまずいのでしょうか?
l-value required (=) と言うエラーが出てきてしまいます。


392 :デフォルトの名無しさん:02/05/23 22:28
>>391
もしC言語なら、=では文字列のコピーはできない。
#include <string.h>
strcpy(head->code,temp);

393 :デフォルトの名無しさん:02/05/23 22:33
>>392
当然ながらバッファオーバーフローに注意

394 :391:02/05/23 22:33
あ、書き忘れてました、C言語です。
ありがとうございます! やってみます!

395 :392:02/05/23 22:35
そういえば文字列だときめかかっているな。
文字列でないならmemcpyで。

396 :あぼん:02/05/23 22:52
>>389 390
ありがと。解決しました。

397 :391:02/05/23 22:57
今やってる問題はこれなんですが
http://www2.nasicnet.com/~hila/C/kadai5-1.c
コンパイルの時に最初のmallocのところに
Warning:function 'malloc' undefined -- assumed to be int
と出てしまいます。
コンパイルしたものを実行したら結果は上手く行くのですがこれが
気になってしまいます、これはなんなんでしょう?

398 :デフォルトの名無しさん:02/05/23 22:58
C++で次の問題ができません

コンソールから整数を入力するとその入力した数の段の三角形を表示する
プログラムを書きなさい

例えば5と入力すると
  . ●
 . ●●
 .●●●
. ●●●●
●●●●●

こんな感じだそうです、どうにかお願いします!

399 :デフォルトの名無しさん:02/05/23 23:01
>>397
#include <stdlib.h>

>>398
パスカルの三角形
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=utf8&oe=utf8&q=%E3%83%91%E3%82%B9%E3%82%AB%E3%83%AB%E3%81%AE%E4%B8%89%E8%A7%92%E5%BD%A2

400 :デフォルトの名無しさん:02/05/23 23:01
>>397
そのソース、malloc使っているのに<stdlib.h>をインクルードしていないね。

関数のプロトタイプがないために、mallocの戻り値がint型だと見なされている。
で、int型をstruct Data *型にキャストすることはできないので、そういうウォーニングが出たというわけ。
<stdlib.h>にmallocのプロトタイプ宣言があるから、それをインクルードすればOK

401 :デフォルトの名無しさん:02/05/23 23:03
団子だ

402 :391:02/05/23 23:05
ああ、なるほど!
上手く行きました、ありがとうございました!

宿題は続くのでまた質問すると思いますが(^^;

403 :デフォルトの名無しさん:02/05/23 23:09
>>398
わり、パスカルの三角形じゃねえや。
#include <iostream>
using namespace std;

int main()
{
int n;

cout << "N = ";
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = n - i; j >= 0; j--) cout << " ";
for (int j = 1; j <= i; j++) cout << "●";
cout << endl;
}
}

404 :デフォルトの名無しさん:02/05/23 23:10
>>397
お、stdlib.hが追加されている(笑)

405 :399:02/05/23 23:11
>>399
どうもです!
おかげさまでできました!

406 :391:02/05/23 23:15
>>404
いやぁ、家でやって鯖にあげて、学校から落として使おうとしてるので
完成したのをアップしてるのです(笑)

407 :346:02/05/24 18:30
こんな原始的な方法しか思い浮かばん。

printpas()
{
int c;

while((c = fgetc(fp)) != EOF) {
if(c == 'f') {
if((c = fgetc(fp)) == 'u')
if((c = fgetc(fp)) == 'n')
if((c = fgetc(fp)) == 'c')
if((c = fgetc(fp)) == 't')
if((c = fgetc(fp)) == 'i')
if((c = fgetc(fp)) == 'o')
if((c = fgetc(fp)) == 'n') {
printf("function");
while((c = fgetc(fp)) != ';')
putchar(c);
printf("\n");
}
}
else
if(c == 'p')
if((c = fgetc(fp)) == 'r')
if((c = fgetc(fp)) == 'o')
if((c = fgetc(fp)) == 'c')
if((c = fgetc(fp)) == 'e')
if((c = fgetc(fp)) == 'd')
if((c = fgetc(fp)) == 'u')
if((c = fgetc(fp)) == 'r')
if((c = fgetc(fp)) == 'e') {
printf("procedure");
while((c = fgetc(fp)) != ';')
putchar(c);
printf("\n");
}
}
}



408 :無責任だが:02/05/24 19:03
>>407
 その方法を自動的に展開してくれるコードを書いてくれるのが >>375-376

後は lex/yacc を手に入れて

409 :デフォルトの名無しさん:02/05/24 21:06
#include <stdio.h>
#include <string.h>
#define TOKEN_MAX 100

int c;         // 1文字先読み
int next_char()
{
 if ((c = getchar()) == EOF) {
  exit(0);
 }
 return c;
}

char token[TOKEN_MAX]; // つねに1トークン先読み
char *next_token()
{
 char *p = token;

 // 空白、コメントを読み飛ばす(略)
 *p++ = c;
 if (isalnum(c)) {
  while (isalnum(next_char())) {
   *p++ = c;
  }
 } else if (c == '\'') {
  // 文字列を読み飛ばす(略)
 } else {
  next_char();
 }
 *p = '\0';
 return p;
}

void paren(int level)
{
 while (strcmp(token, ")") != 0) {
  if (strcmp(token, "procedure") == 0 && level == 0) {
   next_token();
   printf("procedure: %s\n", token);
  } else if (strcmp(token, "function") == 0 && level == 0) {
   next_token();
   printf("function: %s\n", token);
  } else if (strcmp(token, "(") == 0) {
   next_token();
   paren(level + 1);
  } else {
   next_token();
  }
 }
 next_token();
} 

int main()
{
 next_char();
 next_token();
 paren(0);
 return 0;
}


410 :デフォルトの名無しさん:02/05/24 22:11
C言語で相乗平均を求めているのですが、n乗根の求め方がどうしてもわかりません。
どなたか教えていただけないでしょうか?

pow(x,y);は実数値をとらないとエラーになりますし…もうお手上げです


411 :デフォルトの名無しさん:02/05/24 22:15
>>410
#include <math.h>

412 :デフォルトの名無しさん:02/05/24 22:17
n乗根? pow(x, 1.0/n); で何が困る?実数値をとらないとエラーって何?

413 :デフォルトの名無しさん:02/05/24 22:17
(int)pow(x,y);

414 :デフォルトの名無しさん:02/05/24 22:22
>>411-413
型宣言の間違いのようでした。
pow(x,1/n);ではうまくいきませんでしたが、
pow(x,1.0/n);で成功しました!ありがとうございました(TT)

415 :デフォルトの名無しさん:02/05/25 02:05
よしlessもどきができたぞ>>いつかの学生
メモリばりばり壊してすぐdじゃってもいいなら晒すぞ。

416 :デフォルトの名無しさん:02/05/25 02:13
っていうかここのお母さん、全然登場せえへんやん。

417 :デフォルトの名無しさん:02/05/25 02:21
>>416
そう思うなら、玲たんが早くお母さんになってね♪

418 :デフォルトの名無しさん:02/05/25 02:29
>>417
は?何言ってんだ?

419 ::02/05/25 02:41
字、違うし・・・・

420 :417:02/05/25 02:47
ギャフン

421 :デフォルトの名無しさん:02/05/25 03:44
>>417
お母さんになるにはまず・・・(以下略

422 :デフォルトの名無しさん :02/05/25 21:41
C++の宿題でました。
サンプルプログラムがあって、リストの中に入れたアルファベットをabc・・・の順番で出力するやつです。
で、サンプルのなかで、malloc(sizeof(LIST)っていうのが使われているんですが、これってどういう効果がありますか?

リストが、こう定義されてます。
struct list{
char key[LEN+1];
struct list *next;
};


423 :デフォルトの名無しさん:02/05/25 21:44
>>422
sizeof(LIST) がわからんのか ?
malloc() の効果がわからんのか ?

424 :デフォルトの名無しさん:02/05/25 21:44
malloc(〜) は、指定したバイト数のメモリ領域を確保します。
sizeof(LIST) は、構造体 LIST のバイト数を表します。

425 :デフォルトの名無しさん:02/05/25 21:47
>>423

えと・・・両方です。

>>424

凄くよくわかりました。
ありがとうございます。

426 :422:02/05/25 23:21
422ですが、宿題がわかりません。
リストの中に入れたアルファベットをabc・・・の順番で出力するようにする、宿題です。
アドバイスください。
while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
からが、理解できません。
↑のwhile内ではheadが出てこないのに、show_list(&head);にどう関わってくるのかわかりません。
サンプルプログラムは↓です。



#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define LEN 10

struct list{
char key[LEN+1];
struct list *next;
};

typedef struct list LIST;

void show_list( LIST *a){
printf("%10s %10s %10s\n","address","key","next");
while(a!=NULL){
printf("%10p %10s %10p\n",a,a->key,a->next);
a=a->next;
}
}


int main(void){
LIST head;
LIST *ptr,*p;
char data[LEN+1];


strcpy(head.key,"head");
head.next=NULL;


printf("リスト入力(終了はendで入力)\n");
while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
ptr=(LIST *)malloc(sizeof(LIST));
strcpy(ptr->key,data);
ptr->next=NULL;

p=&head;
while(p->next!=NULL)
p=p->next;
p->next=ptr;
}

show_list(&head);

return 0;
}

427 :デフォルトの名無しさん:02/05/25 23:26
>>426
>while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
・・・・・。
そんな書き方するサンプルは見限れと言いたい。
でも宿題じゃ仕方ないんだろぉなぁ。なんか言ってやれ、こんな宿題出す教師に。
んで、これは

printf("string->");
scanf("%s", data);
while(strcmp(data, "end") != 0){

などと分解して読むと読みやすいかも。要するにそういう意味です。
で、そもそも、リストについては御存知?

428 :422:02/05/25 23:35
>>427

はい、リストについては昨日勉強しました。
while(strcmp(data, "end") != 0){

これは、endを入力したらwhileが終わるってことですよね?
このwhile内で、何もheadに代入されてないのに、最後に
show_list(&head);とあるので、while内で何が起こっているのかわからなくなりました。


429 :デフォルトの名無しさん:02/05/25 23:38
>>427
>>while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
何も入力しなかったとき自動的に終わらないか?

430 :422:02/05/25 23:40
>>429

いいえ、endを押さないと終わりません。

431 :デフォルトの名無しさん:02/05/25 23:41
>>427
その分解は動作を変更してしまってるよ。
こうしないと。
for (;;) {
 printf("string->");
 scanf("%s", data);
 if (strcmp(data, "end") == 0) break;

432 :427ではない:02/05/25 23:44
>>431
ループの本体で同じことを重複して書けばよいじゃん。
超初心者相手なんだから分かりやすさが重要では。

433 :デフォルトの名無しさん:02/05/25 23:46
↑のように分解したらwhile文の一番下にも付けとけば同じ動作ね。

434 :デフォルトの名無しさん:02/05/25 23:51
同じコードを二カ所(以上)に書く癖はつけないように指導したいところ。

435 :デフォルトの名無しさん:02/05/26 01:01
>>431
ええい五月蠅い。承知の上だ。意味が通じればいいの。
>>432
まったく。
>>434
ええ、たまにやります。もう癖ついてしまってます。どうしたらいいでしょう。自分的には、まぁいいやと思ってるんですが。

>>428
まず最初の状態があるだろ。
head.next→NULL
んで、なんか入力する。仮に "A" とすると、mallocでLIST構造体を確保して、これを仮に listA とすると、
listA.next→NULL
listA.data→"A"
head.next→listA
んで次に仮に "B" と入力して、新たに malloc で確保したのを仮に listB とすると、
listB.next→NULL
listB.data→"B"
listA.next→listB
listA.data→"A"
head.next→listA
おっけー?以下 "end" を入力するまで同様に。図に書きながら動作を追ってみるといい。

436 :デフォルトの名無しさん:02/05/26 01:06
>>426
なぜ一回毎にリストの終端を検索する?前に入れた場所を覚えてれば済むことだろうに。
わざと遅くしてまで読みにくいプログラムにしてるとしか思えん(w

printf("リスト入力(終了はendで入力)\n");
p=&head;   /*ループ前にポインタを初期化*/
while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
 ptr=(LIST *)malloc(sizeof(LIST));
 strcpy(ptr->key,data);
 ptr->next=NULL;

 p->next=ptr;
 p=ptr;    /*p=p->next=ptr;でも行けるか?*/
}

それとも、この方がいいかな(変数が1ついらなくなる)。
 p->next=(LIST *)malloc(sizeof(LIST));
 p=p->next;  /*上と同じく、p=p->next=(・・とできるかも?*/
 strcpy(p->key,data);
 p->next=NULL;

437 :デフォルトの名無しさん:02/05/26 02:35
>>436
宿題のサンプルなんだから>>426が悪い訳じゃないかと
p = p->next = ptr ;
は文法的には大丈夫だと思うけど自信がないので他の奴にパス
p->next = NULL ;
はブロックの外に出してやると良さげ
分かってて書いたならブロックは閉じなくても
インデントは、揃えない方が良かったと思う

438 :お母さん:02/05/27 00:50
>>436
お母さんの予想だと、入力時にリストの適切な位置に挿入させたいんじゃないかしら。

>>426
サンプルプログラムでは、
while(p->next!=NULL)
  p=p->next;
p->next=ptr;
となってるわね。これは、毎回リストの終端に新しい要素(prt)を追加してるというのは
分かるかしら?
そこで、while()の条件を追加して「新しく入力した文字列(prt->key)より
今調べている文字列(p->next->key)のほうがabc順で前
(strcmp(p->next->key,ptr->key)<0)の間だけループする」ようにして、
ループを抜けたら、pとpの次(p-next)の間にptrを挿入するようにすると、
abc順で挿入できるわね。

あと、全く別の解として、入力する時は終端に追加していって(>>436)、後で
まとめてソートする方法もありですよ。(こっちのほうが早いんですけど、
1.リスト構造になっている。2.頭にダミー要素がわざわざつけてある。
ことを考えると、出題者の意図するところではないかもしれないわね。)

分からなかったら、また聞いてちょうだいね。

439 :346:02/05/27 13:47
完成

440 :デフォルトの名無しさん:02/05/27 20:59
JAVAで書いたプログラムをJARファイルで圧縮して
提出しなければいけないのですが、圧縮したら
画像ファイルが取り出せなくなってしまいました。

例えばJARファイルの中のhomework/resource/image.gifを取り出す時
java.awt.Toolkit.getDefaultToolkit().getImageはどのような引数を取ればいいのでしょうか?

homework/resource/image.gif
homework.resource.image.gif
image.gif
../resource/image.gif
などを試してみたのですが、うまくこの画像を読み込んでくれません。

[ homework.awt.ImageFrame.class ]
private Image image = java.awt.Toolkit.getDefaultToolkit().getImage("image.gif");

441 :デフォルトの名無しさん:02/05/27 21:08
試してませんが、こんなのはどう。
image = Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("homework/resource/image.gif"))

442 :デフォルトの名無しさん:02/05/27 21:33
>>441
ありがとうございます。うまく読み込むことができました。
JARファイルだとずいぶん要領が違いますね。

443 :デフォルトの名無しさん:02/05/27 21:35
javaで
swap( a , b )
てのはどう書けばいいの?
aとbの入れ替えをしたいんだけど。

444 :デフォルトの名無しさん:02/05/27 21:39
>>443
他の言語ではお前はどうやってるんだ?

445 :デフォルトの名無しさん:02/05/27 21:41
>>443
プログラマとして問題だと思う。それ。

446 :デフォルトの名無しさん:02/05/27 21:48
>>444
まだJavaしか使ったこと無い…Cも本で読んだことはあるけど。

>>445
なんで?メソッドでやるほどの事じゃないってこと?
んじゃいちいち
○○ c =a ;
a = b;
b = c;
って書くのが正解?

447 :デフォルトの名無しさん:02/05/27 21:48
>>442
たぶんそのコードは jar にアーカイブしてない状態でも使えると思う。便利でし。
>>443
出来ません。残念ながら。不可能です。
でも「入れ替えをしたい」っていう状況は実はあんまし無いような気もするし、直に書いても大して面倒でもないからいいんでわ?
>>444
C++だったら余裕で書けるんだな。

448 :デフォルトの名無しさん:02/05/27 21:51
>>446
正解。

449 :446:02/05/27 22:09
何だ
あ前ら使えねーな。

450 :デフォルトの名無しさん:02/05/27 22:10
照れる

451 :デフォルトの名無しさん:02/05/27 22:11
確かに、褒め言葉と取っておいた方が良いな。

452 :デフォルトの名無しさん:02/05/27 22:45
だね。
http://www.google.com/search?q=java%20swap&hl=ja&lr=lang_ja

453 :デフォルトの名無しさん:02/05/28 01:29
ここでよいのか迷ったのですが、他に適切な板が
見つからなかったので、お願いしたします。

GLP(www.gnu.org/copyleft/gpl.html)についての
レポートを書かなくてはいけないのですが、
簡単な概要を読んで、大体は理解できました。
しかし、実際の例で考えてみると以下のような例に
これが当てはまるのかがうまく読み取れません。

1、JAVAのようにクラスで分割されている場合、(ソースに組み込む形でなく)それを外部から使うとGLPは適用されるのか?
2、GLPのアプリケーション(www.retrologic.comなど)をアプリケーションに使用する場合、GLPは適用されるのか?

どうかよろしくお願いします。

454 :デフォルトの名無しさん:02/05/28 01:33
GPL

455 :デフォルトの名無しさん:02/05/28 01:34
>>453
1 yes
2 yes
関係するプログラムにひたすら感染していきます

456 :デフォルトの名無しさん:02/05/28 01:36
GPLはソフトウェア会のガンです

457 :デフォルトの名無しさん:02/05/28 01:52
>>454-456
とても恥ずかしいミスをしてしまい、ご指摘ありがとうございます。
1、は直感的にYESかなとは思っていたんですが、2までYESということで驚きました。
どうもありがとうございました。

458 :デフォルトの名無しさん:02/05/28 01:55
リンク先を見たけど、RetroGuardはLGPLだね。
これならプログラム本体がソースを公開する必要はない(GPLとして配布する必要はない)

459 :デフォルトの名無しさん:02/05/28 02:02
1.2.とも、「外部から使う」「アプリケーションに使用する」
の詳細がわからないとなんとも……
たとえば、pipeみたいなIPC機構を用いればOKという話もある。

460 :デフォルトの名無しさん:02/05/28 02:10
フロントエンドだったり、そのGPLアプリケーションが完全にソフトの一部の場合はNG

461 :質問名無し。:02/05/28 02:20
CASLです。

【プログラム名をXX01とし、数値88を16進数で定義する。】

このような問題で
ラベル:XX01 命令コード:DC
まではわかるのですが、オペランドが判りません。
御教授お願い致します。

462 :デフォルトの名無しさん:02/05/28 02:27
>>461
オペランド:#0058

463 :デフォルトの名無しさん:02/05/28 02:29
>460
え?GPLなソフトのフロントエンドは、GPLに縛られるの?
なして?

464 :デフォルトの名無しさん:02/05/28 02:33
リンクしてなきゃ縛られないと思われ


465 :デフォルトの名無しさん:02/05/28 07:00
宿題でコンピューターウィルスをつくる宿題がでました。
だれか僕のためにつくってください


466 :デフォルトの名無しさん:02/05/28 07:09
>>465
宿題は自分で野郎な。

467 :仕様書無しさん:02/05/28 07:19
なんかアタック受けたぞ。お前だろ。

The firewall has blocked Internet access to your computer (TCP Port 1433) from 80.65.196.179 (TCP Port 1777) [TCP Flags: S].

Time: 2002/05/28 7:04:26

16 234 ms 235 ms 234 ms chi-bb1-pos1-0-0.telia.net [213.248.80.33]
17 250 ms 250 ms 265 ms nyk-bb1-pos0-1-0.telia.net [213.248.80.5]
18 328 ms 359 ms 344 ms kbn-bb1-pos0-2-0.telia.net [213.248.64.9]
19 359 ms 360 ms 375 ms s-bb1-pos3-0-0.telia.net [213.248.64.130]
20 344 ms 375 ms 375 ms s-b3-pos5-0.telia.net [213.248.66.2]
21 344 ms 359 ms 360 ms song-s-b3.c.telia.net [213.248.67.90]
22 359 ms 375 ms 360 ms pos1-0.cty-pe1.sdl.se.sn.net [213.88.255.70]
23 360 ms 375 ms 375 ms fe0-0.cty-pe1.huv.se.sn.net [62.95.54.86]
24 360 ms 375 ms 375 ms cbq1_out.ljusnet.se [80.65.193.252]
25 343 ms 360 ms 375 ms 80.65.193.242
26 360 ms 375 ms 390 ms 80.65.196.179


468 :caslです:02/05/28 19:10
レジスタ GR0 の内容を 10進数で表示するサブルーチン OUTDEC を作成しなさい。

メインプログラムでレジスタ GR0 に値を格納して,作成した表示ルーチンを呼び出して下さい。なお、OUTDEC とメインプログラムは、別々のファイル (outdec.cas, main.cas) に作成すること。


469 :ちーん:02/05/29 00:12
シフト演算子を使って、被除数を2^nで割ったときの商と余りをだすプログラムをつくりなさい。

シフト演算子の使い方がわかりません・・・教えてください・・・

470 :デフォルトの名無しさん:02/05/29 00:13
ずらす値 << 何桁ずらすか
ずらす値 >> 何桁ずらすか

471 :ちーん:02/05/29 00:16
よくわかりません・・・w

472 :デフォルトの名無しさん:02/05/29 00:22
printf("%d\n",50 << 4);

0000 0000 0000 0000 0000 0000 0011 0010 ←10進整数 50のビット
2進数で4桁左へ
0000 0000 0000 0000 0000 0011 0010 0000

つまり整数800出てくる

473 :デフォルトの名無しさん:02/05/29 00:23
ずらしてできたとこはゼロで埋められる

474 :デフォルトの名無しさん:02/05/29 00:30
>>468
CASLのCコンパイラ作れ。

475 :469:02/05/29 00:33
実際にプログラムしてみるとどんなふつうになるのでしょうか??

476 :デフォルトの名無しさん:02/05/29 00:37
>被除数を2^nで割ったときの商と余りをだすプログラムをつくりなさい。

ここがわからん詳しくキボーン

477 :469:02/05/29 00:38
被除数とnをキーボートから入力したとき、被除数を2^nで割ったときの商と余りをだすプログラムをつくりなさい

です。

478 :デフォルトの名無しさん:02/05/29 00:41
被除数を右にn回シフトしてから左にn回シフトをしたものを、
被除数から引いたら余りがでるのでは?

479 :デフォルトの名無しさん:02/05/29 00:43
・・・・・

( つД`)さっぱりわかんない

480 :469:02/05/29 00:49
オレモサパーリ(・∀・)

481 :デフォルトの名無しさん:02/05/29 00:53
Quo = Value >> n;
Rem = Value - (Quo << n);

482 :デフォルトの名無しさん:02/05/29 00:55
解決したようだ。
よかたよかた(-_-)

483 :メキシカンハードゲイ:02/05/29 01:24
>>469は寝たか、>>481を見ても分からないか・・・
後者なら、おじさん何するかわからないよ?

484 :デフォルトの名無しさん:02/05/29 01:54
>>483
ヲヂサン、おまんこクチュクチュするとか?

485 :デフォルトの名無しさん:02/05/29 02:03
ゲイなのに?

486 ::02/05/29 15:35
余りもシフト演算だけでできないかな?
処理系依存になってしまうけど、32ビットなら、
(Value << (32 - n)) >> (32 - n)
とかすればいくのかな。どうでしょうか。

487 :デフォルトの名無しさん:02/05/29 19:20
sizeof(int)使えば?

488 :デフォルトの名無しさん:02/05/29 21:38
Valueが負の値だと途端に未定義動作になる罠

489 :デフォルトの名無しさん:02/05/30 06:05
それ以前に減算演算子は使っちゃダメです。
使っていいのはシフトだけ。

490 :デフォルトの名無しさん:02/05/30 06:13
なら、481のRemもだめじゃん。

491 :デフォルトの名無しさん:02/05/30 08:00
さぁ困った

492 :デフォルトの名無しさん:02/05/30 17:33
一つの非公開関数を含むdiceという名前のクラス
を作成しなさい。また、標準乱数であるrand()関数を
使用して1〜6までの範囲の整数を生成するroll()
という関数を作成しなさい。
非公開整数変数を参照する、look()という関数を
作成しなさい。
クラスが正しく動作することを確認するための
main関数を作成しなさい。

この問題がまったくわからないので誰か教えて下さい
ちなみにiostream使わないでお願いします

493 :デフォルトの名無しさん:02/05/30 17:33
http://pc.2ch.net/test/read.cgi/tech/1022402165/634-653
までは出来てるので、iostreamを使わないように修正してあげてください。

494 :デフォルトの名無しさん:02/05/30 17:41
向こうでこっちにいけって言われました


495 :デフォルトの名無しさん:02/05/30 18:22
元のせりふは、
>ほんとに申し訳ないんですけどiostream.h
>使わないでできませんか?
なんだから、当然
#include <iostream>
using namespace std;
ダロ

496 :デフォルトの名無しさん:02/05/30 19:56
とこりょでさ。
丸投げするやつらは課題って何のためにあるか分かってんのかな?
答えを提出することだけが目的じゃないんじゃないかな?
たとえ間違ったって自分でやらなきゃ何の意味もないんじゃないかな?

497 :デフォルトの名無しさん:02/05/30 19:58
学生時分は普通、んなこと考えない。

498 :デフォルトの名無しさん:02/05/30 20:31
将来プログラミングと縁がない職業に就くつもりなら丸投げでもいいんじゃない。

499 :デフォルトの名無しさん:02/05/30 20:33
>>497
そうだ罠。俺も学生時代はとにかく単位をもらうことだけを考えていたから
なあ。手段を選ばず。
その頃にはまだネットなんてものがなかったから、友達づきあいだけは
大切にしたよ。

やがて俺の後輩が課題を下宿に持ち帰ってくるようになり、必死に教えて
くれと頼み込まれるようになり、教えてやっているうちに俺にも自然と力が
付き、いまじゃいっぱしのPGやってるよ。

でも仕事内容はSEのような仕事やバグ取りがメインで、自分ではあまり
組んだりしない。会社曰く、「組む奴は掃いて捨てるほどいるが、バグ取り
できる奴はそんなにいない」とか。

500 :デフォルトの名無しさん:02/05/30 20:34
> 単位をもらうことだけを考えていたから
 なあ。手段を選ばず。

ハゲドウじゃ

501 :デフォルトの名無しさん:02/05/30 20:35
>>499
おだてられてデバッグ押しつけられてるのか。悲しいな。

502 :デフォルトの名無しさん:02/05/30 20:36
悲しいときー

503 :デフォルトの名無しさん:02/05/30 21:08
ある数値(例えば999など)が入力されるまで、繰り返しキーボードから数値を入力し、
結果として入力された数値の平均値を出力するプログラムを作りなさい。
ヒント:
繰り返しには「無限ループ」を使用。
「偽」にならない条件をwhile文の条件として与える。
ある数値が入力されるまで繰り返すという処理は、
「ある数値が入力されたらbreakする」という処理を使う。


という問題なんですが、、、ちなみにC言語です。
よろしくおながいします、、、

504 :デフォルトの名無しさん:02/05/30 21:14
#include <stdio.h>

int main(void)
{
double avg = 0, d;
int count = 0;

while (1) {
scanf("%f", &d);
if (d == 999.) break;
avg += d;
count++;
}

printf("avarage = %f\n", avg / count);
return 0;
}

505 :デフォルトの名無しさん:02/05/30 21:16
>>504
×scanf("%f", &d);
○scanf("%lf", &d);

506 :デフォルトの名無しさん:02/05/30 21:19
例えば999はデータとしては扱えなくていいのね。
この問題を出した先生(?)に「プログラム書法」って本を
勧めといて。

while (1) {
scanf("%d", &a); /* fgets + sscanf がおすすめだけどね。*/
if (a==999) break;
s+=a;
n++;
}
printf("%f\n", s/n);

a, s, n は適切に宣言、初期化してね。
%d でいいのか? これを%fにしたら、a==999 が危険かも。
どうしよう。
いきなり999をいれたらどうなるかもかんがえといて。


507 :デフォルトの名無しさん:02/05/30 21:24
>>504
>>506
お二人ともありがとうございました!どうにかなりそうです。
神と呼ばせてください。。。

508 :デフォルトの名無しさん:02/05/30 21:31
>>506
浮動小数点数を==で比較した場合にヤバイのは、小数点以下がある
場合に限られるものが多い。整数部は循環小数とはならないものが
ほとんど。

でも、処理系依存ということもあるので、intで読んでおいてキャスト
する方が安全ですね。

509 :デフォルトの名無しさん:02/05/30 22:33
>>489
Rem = Value & (~0 << n);
っつーか & もNGですか?

510 :509:02/05/30 22:35
おっと間違えた。
Rem = Value & ~(~0 << n);

511 :C初心者:02/05/31 01:22
HTTPサーバーを作って来い言われて困惑してます…
とりあえずGETとHEADをサーバープログラムで実現したいのですが
どう書いたら良いのかサッパリわからずです。
ヘルプお願いします…。

512 :デフォルトの名無しさん:02/05/31 01:25
djbのpublicfileなんかわかりやすぞ。

513 :デフォルトの名無しさん:02/05/31 01:41
検索すれば適当なサバがあるよ

514 :C初心者:02/05/31 01:51
それが「既存のプログラムを用いてサーバを構築しろ」ではなくて
「サーバープログラムを書いてこい」という課題なので…。

その辺をCで書くとこんな感じになるとか解説してるページとか
ありませんでしょうか。

515 :デフォルトの名無しさん:02/05/31 01:56
オープンソースの鯖プログラムのコードパクれ。

516 :デフォルトの名無しさん:02/05/31 01:59
>>514
ピッタリなの見つけてやった。
ぐぐるうまく使う方法身につけないと損だぞ。
Fetch the software. クリックして落とせ。
http://www.acme.com/software/micro_httpd/

517 :デフォルトの名無しさん:02/05/31 02:05
(;´д`).。oO(これがいわゆるデッドロックってやつか・・・?)

518 :C初心者:02/05/31 02:28
>>515
まんまパクるのはさすがにヤバいかと思うのでちょとアレです。
なんせ作ったプログラムを元にプレゼンまでやらないとアカンので
構造をある程度理解できてないと…。

>>516
おお、これは今まで見たサーバープログラムの中でもそうとう小さい!
これならなんとか中身も読み進められるかな…
C初心者ゆえ、C言語辞典片手にだけど。
とりあえずこれで進めてみます。ありがとうございましたー

519 :デフォルトの名無しさん:02/05/31 03:07
while文を使って5つの値を入力して真の値の誤差を出すプログラムを
作る宿題何ですが、いまいち理解できません(;´д⊂)
ちなみに↓は本を読みながら作ってみたのですが16行目でエラーが
でてコンパイルができませんでした。

#include <stdio.h>

main()
{
double sokutei[5];
double sin[5][4] = {1.0,2.0,3.0,4.0,5.0};
double gosa[5];
int i = 0;

while(i<5)
{
printf("値%d\n",i+1);
scanf("%lf",&sokutei);
i++;
}

gosa[i]=(sokuteiti[i] - sin[i]) / sin[i] * 100;


printf("-----------------------------------");
printf("真の値[V]     値[V]   誤差[%]");
printf("-----------------------------------");

i = 0;
while(i<5){
printf("%.1lf\n%.1lf\n%.1lf\n",sin[i],sokutei[i],gosa[i]);
i++;
}
printf("-----------------------------------");
}



520 :デフォルトの名無しさん:02/05/31 03:10
誤差[%]");
?

521 :デフォルトの名無しさん:02/05/31 03:19
>真の値の誤差

って何さ

522 :デフォルトの名無しさん:02/05/31 03:23
>double sin[5][4] = {1.0,2.0,3.0,4.0,5.0};
ここは二元配列ではない

>gosa[i]=(sokuteiti[i] - sin[i]) / sin[i] * 100;
ここもループでかこむ

>printf("真の値[V]     値[V]   誤差[%]");
%を文字として出力したいときは%%とする


523 :デフォルトの名無しさん:02/05/31 15:50
JAVAのことさっぱりわかりませんが、課題で
人工無能の対話するものを作らなくてはなりません。
どなたかソース(?)教えてください。(もしくは公開しているHP)
言葉をかえるだけでいい!みたいなのありますか?

別スレでも聞いたんですけど、本当に困ってて…。


524 :デフォルトの名無しさん:02/05/31 18:16
>>523
これいじってなんとかしれ。

import java.io.*;
class Brain
{
 public static void main(String args[]) throws IOException
 {
  InputStreamReader ir = new InputStreamReader(System.in);
  BufferedReader br = new BufferedReader(ir);
  while(true)
  {
   String line = br.readLine();
   System.out.println("( ´_ゝ`)ふーん ");
  }
 }
}

525 :切羽詰まって:02/05/31 18:48
できればつっこみをつけて教えてください。

(1)
#include<stdio.h>
void main()
{
double p=0;
for(i=1;i<20;i++)
{
p+=1.0/i;
if(p>2)break;
}
printf("%f\n",p);
}

(2)
void main()
{
int a[]={12,11,10,9,8,7,6,5,4,3,2,1,0};
int *p,*q r;
r=a[3]; ・・・(a)
p=a; q=a+1;
r=*(p+2); ・・・(b)
q-- ;
r=q[2]; ・・・(c)
上の(a)〜(c)の代入で、rに代入される数値は?

超素人なので、よろしくお願いします。


526 :切羽詰まって:02/05/31 18:49
(1)は実行すると、なにがでるか?という問題で、
(2)はrがなにかという問題です。

527 :デフォルトの名無しさん:02/05/31 18:52
>>525
(1)コンパイルして実行すれば?
(2)トレースすれば?

528 :デフォルトの名無しさん:02/05/31 18:55
>525

(1)
iが宣言されていないのでコンパイル通らねぇぞ。
宣言してからコンパイルしたら、2.083333って出た。
つーか、実行結果聞く問題なら動かしてみれ。
(2)は待て。


529 :デフォルトの名無しさん:02/05/31 18:59
>>525
(a)9
(b)10
(c)9

530 :デフォルトの名無しさん:02/05/31 19:00
修正
(c)10

531 :528:02/05/31 19:00
うーん、(2)は本がないと分からん。ごめんね。
いま授業中なんで。
a 9
b 10
だと思うけど、cはわからん。落ちそうだけど。


532 :デフォルトの名無しさん:02/05/31 19:01
いくら宿題だからって基本中の基本を丸投げされても…

533 :デフォルトの名無しさん:02/05/31 19:03
>>528
授業に集中しなさい。

534 :デフォルトの名無しさん:02/05/31 19:03
こんな時間に授業って二部?

535 :デフォルトの名無しさん:02/05/31 19:05
実行もしてみないでせっぱ詰まってるとか言われても・・

536 :528:02/05/31 19:05
実行してみたyo!
9
10
10
だった。
つーかこれも宣言するところでカンマ抜けてる。


537 :デフォルトの名無しさん:02/05/31 19:07
>536

>>529-530に書いてあんじゃん。
つーか実行しないと分からないのか?

538 :528:02/05/31 19:07
>534
そうだyo!


539 :デフォルトの名無しさん:02/05/31 19:07
>>537
ポインタさえも理解せずにCを教える奴もいたりする世の中だ。
気にするな。

540 :デフォルトの名無しさん:02/05/31 19:08
>>538
授業聞けよ。

541 :528:02/05/31 19:08
>537
ごめんね。Cは素人でさ。


542 :切羽詰まって:02/05/31 19:14
解説どうもでした。
実行したいのは山々でしたが、ソフトがないのでできませんでした。

543 :デフォルトの名無しさん:02/05/31 19:32
>>542
このくらいなら頭の中で実行しろ。
紙の上で計算してもいい。

>ソフトがないのでできませんでした。
知るか。切羽詰るまで放置するのが悪い。

544 :切羽詰まって:02/05/31 19:34
正直、答えを教えてもらっても細部はよくわからないです。
故に、頭の中で計算できない。
まだ初心者のへっぽこです。

545 :デフォルトの名無しさん:02/05/31 20:12
>>544
教えてくらはい。
ちゃんと講義を聴いてても解けないような進度無視した宿題を出す教官が馬鹿なのですか?
それとも講義を聴いてないあなたが馬鹿なのですか?

546 :デフォルトの名無しさん:02/05/31 20:15
           从/

        __∧_∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      /(  ´Д`)V  < はッ!先生、ちがっ・・・!、寝てません!
  __ / /|  u゚_/ )   \_______________
  \  ( ( ̄ ̄⊆_ノ ̄\
  ||\ `ー⊃         \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

547 :切羽詰まって:02/05/31 20:16
半々くらいだと思います。

548 :デフォルトの名無しさん:02/05/31 21:57
>>546
ヨダレふけYO!

549 :名無しさん@お腹いっぱい。:02/05/31 21:59
UNIXです。

4文字からなる単語で2文字目と3文字目とが同じである、というパターンをあらわす正規表現を記述せよ。

教えてください。

550 :デフォルトの名無しさん:02/05/31 22:07
>>549
とりあえず、お前の考えは?

551 :デフォルトの名無しさん:02/05/31 22:08
>>549
\b\w(\w)\1\w\b

552 :名無しさん@お腹いっぱい。:02/05/31 22:11
549です。

1文字目と4文字目は「.」でいいとして、2文字めを「.」にして3文字めを*にすると、3文字目はどの文字でもいいってことになるし、、、って考えてストップしました。

553 :名無しさん@お腹いっぱい。:02/05/31 22:13
>>551

ありがとうございました。
できました。
でも理由がよくわからないので、これから考えてみます。


554 :Cで:02/05/31 22:23
1,2,3,4,5と書かれたカードがそれぞれ、2,3,5,5,5枚ある。
その全部のカードを使って5桁の数を4つつくる。
その4つの和が123456になる時、4つの数を大きい順にa,b,c,dとおく。
そのabcdのすべての組を表示するプログラムを組め

ってやつなんだけど誰かわかる?

555 :デフォルトの名無しさん:02/05/31 22:24
>>554
それ必修の(自由提出でない)宿題?

556 :554:02/05/31 22:25
>>555
うん。必修の宿題。

557 :554:02/05/31 22:28
5桁の数を4つすべて総当りで調べるプログラム作ったんだけど
ループ回数多すぎて失敗。

558 :デフォルトの名無しさん:02/05/31 22:38
>>554
面白そうだ・・・

559 :名無しさん@お腹いっぱい。:02/05/31 22:49
う〜ん。。。553なんですが、まだ551さんの書いてあるようなのは習ってなくて、意味がよくわからないのですが・・・。
一応、どういう理由でそれでできるか、も書かなければならないんで・・・
誰か答えじゃなくてもいいので、考え方だけでも教えてください。

560 :デフォルトの名無しさん:02/05/31 22:58
>>554
とりあえずこれでいけると思うけど。
各桁最大5なので、四つ足しても高々20にしかならない。
ということは、最下位桁の合計が6になる組み合わせは
1+1+2+2 = 6 か
1+5+5+5
2+4+5+5
3+4+4+5
4+4+4+4 = 16の
5パターンしかない
で最下位桁を削って
合計が12345(または12344)になるパターンを探す問題に落とすことが出来る。
ここでまた、最下位桁の合計5(または4)の組み合わせは・・・と考えていくと、ループ回数はかなり減らせる・・・とおもふ。

561 :554:02/05/31 23:39
>>560
それも考えてみたんですけど
アルゴリズムが複雑になりすぎて、
初心者のおれにはできませんでした。

562 :デフォルトの名無しさん:02/05/31 23:40
>>554
再帰の基本問題だと思うよ。

563 :554:02/05/31 23:42
>>562
始めのほうだけでもちょっとコード書いてみてくれませんか??

564 :デフォルトの名無しさん :02/05/31 23:43
Cのソースコードから整数型配列を定義した行を検索する正規表現を教えてください。



565 :562:02/05/31 23:46
じゃあとりあえず初めだけ。
int a[4][5];
main()
{
 check(0, 0, 6);
}

566 :554:02/05/31 23:49
>>565
とりあえずもう少し自分で考えてみます。
ってことでまた来ます!

567 :560:02/06/01 00:26
ダメだ・・・1つもヒットしねぇ・・・
マジで該当する組み合わせあんの?

568 :デフォルトの名無しさん:02/06/01 00:46
組み合わせ無視で行きます
使えるカードの数字の合計は
1*2+2*3+3*5+4*5+5*5 = 2+6+15+20+25 = 68

総和が123456になるので、最下位の合計を16にすると、
残ったカードの数字の合計は68-16 = 52
これを
123456- 16 = 123440 : 68-16 = 52 と書く、次の桁は
123440- 140 = 123300 : 52-14 = 38
123300- 1300 = 122000 : 48-13 = 25
122000-12000 = 110000 : 25-12 = 13
110000-不可能

最下位桁を6とすると
123456- 6 = 123450 : 68-6 = 62
123450- 150 = 123300 : 62-14 = 48
123300- 1300 = 122000 : 58-13 = 35
122000-12000 = 110000 : 35-12 = 23
110000-不可能


漏れの頭では不可能でつ・・・

569 :568訂正:02/06/01 00:51
最下位桁を6とすると
123456- 6 = 123450 : 68-6 = 62
123450- 150 = 123300 : 62-15 = 47
123300- 1300 = 122000 : 57-13 = 34
122000-12000 = 110000 : 34-12 = 22;//漏れのプログラムはすでにこれが出来ないと言ってる
110000-不可能

570 : :02/06/01 03:24
総当たりでやってもヒットするのなかった。
4つの数字の下の桁から埋めていって
4個数字を拾うごとに逐次チェック。
見込みのない組み合わせはすぐ放棄。
実行はすぐ終わるけど該当の組み合わせ無し。

571 :570:02/06/01 03:42
途中までいった一例

  3 4455
  4 3245
  3 3555
+ 3 2211
−−−−−−−−
 14 3456
  =

全体で2多いのでカードの数を 3, 4, 4, 5, 5枚ずつにかえるとヒットする組み合わせが出てくる。

23345
43445
24555
32111

とか。重複消すと45通りかな?

572 :デフォルトの名無しさん:02/06/01 04:16
STLのnext_permutationでGo!

573 :570:02/06/01 04:16
3, 4, 4, 5, 5枚でなくて3, 3, 4, 5, 5枚でした。

574 :デフォルトの名無しさん:02/06/01 09:31
問題が3, 3, 4, 5, 5の間違いだと仮定した場合、
2599375通りと予想

575 :574:02/06/01 11:14
2599374通りに訂正かも

576 :デフォルトの名無しさん:02/06/01 15:34
goal

1011111111111111111111
1000100100001000000101
1110101110111101110001
1000000010100101011101
1011111010110001000001
1000100000010101011101
1010111110110111010111
1010001000000100000001
1111111111111111111101
               ↑
              start

1が壁で0が通れます。
この迷路を抜け出すプログラムがわかりません。
おしえてください。

577 :デフォルトの名無しさん:02/06/01 15:35
>>576
どういうふうに経過・結果を出せって指定?

578 :576:02/06/01 15:41
>>577
抜け出すまでの道のりを座標で表示せよって問題です。

あとstartの位置が少しずれてます。(9,21)から出発です。

579 :デフォルトの名無しさん:02/06/01 15:50
自分でどれぐらいできて、どこで詰まってるの?

580 :576:02/06/01 17:58
一応再帰的に解くことはできたんですが、寄り道した結果を表示させない方法がわかりません。

実行結果。
(8,20)→(7,20)→(7,19)→(7,18)→(6,18)→(7,17)→(7,16)→(6,16)→(5,16)→(4,16)→(4,17)→(4,18)→(4,19)→(4,20)→
(5,20)→(3,20)→(2,20)→(1,20)→(2,19)→(2,18)→(1,18)→(1,17)→(1,16)→(1,15)→(1,14)→(1,13)→(2,14)→(3,14)→
(4,14)→(4,13)→(4,12)→(3,12)→(3,11)→(5,12)→(6,12)→(7,12)→(7,11)→(7,10)→(7,9)→(6,9)→(5,9)→(5,10)→(4,9)
→(3,9)→(2,9)→(1,9)→(1,10)→(1,11)→(1,8)→(5,8)→(5,7)→(4,7)→(3,7)→(3,6)→(3,5)→(2,5)→(1,5)→(1,6)→(3,4)
→(3,3)→(2,3)→(1,3)→(1,2)→(1,1)→(0,1)→

1011111111111111111111
1222122122221222222121
1112121112111121112221
1002222212122121011121
1011111212112221222221
1000100222212101211121
1010111112112111212111
1010001002222100222221
1111111111111111111121

2は一度通った道です。

581 :デフォルトの名無しさん:02/06/01 18:05
>>580
子がゴールにたどり着いたと返した経路を(こうするとゴールからスタートにむかって確定するから)
溜め込んで最後に逆順に出力するとか。

582 :576:02/06/01 18:22
>>581
やっぱ木構造使わなきゃ解けないですか。。
ポインタとかよくわからないから、今勉強中です。

583 :デフォルトの名無しさん:02/06/01 18:33
>>582
木でもいいけど、再起を想定してたよ。

大雑把にいってこんな疑似コードで逆順、みたいな。

bool go( x, y ) {
 static struct xy { int x,y; } dirs[4] = { {1,0}, {0,-1}, {-1,0}, {0,1} };

 if ( x == GOAL_X && y == GOAL_Y )
  return true;

 for ( i = 0 ; i < 4 ; ++i ) {
  wx = x + dirs[i].x;
  wy = y + dirs[i].y;
  if ( map[wx][wy] == 0 ) {
   if ( go(wx,wy) ) {
    printf("(%d,%d)",wx,wy);
    return true;
   }
  }
 }

 return false;
}


584 :576:02/06/01 19:12
>>583
こんなにスマートなコードで書けたのか。。
逆順って考えは頭になかった。ありがとうございます。

585 :デフォルトの名無しさん:02/06/02 15:16
双方向リストの宿題がでました。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LEN 10

typedef struct strdlist{
char key[LEN+1];
struct strdlist *prev;
struct strdlist *next;
}DLSTR;

void show_list( DLSTR *p){
printf("%10s %10s %10s %10s\n","address","key","prev","next");
while(p!=NULL){
printf("%10p %10s %10p %10p\n",p,p->key,p->prev,p->next);
p=p->next;
}
}
DLSTR *possearch(DLSTR *p,char str[]){
while(p->next != NULL){
if(strcmp(p->key,str)<=0 && strcmp(str,p->next->key) <=0)
return p;
p=p->next;
}
return p;
}
int main(void){
DLSTR head;
DLSTR *ptr,*p;
char data[LEN+1];
int com;

strcpy(head.key,"\0");
head.prev=NULL;
head.next=NULL;
分けて書きます

586 :デフォルトの名無しさん:02/06/02 15:17
do{
printf("command(挿入:1,削除:2,終了:3) ->");
scanf("%d",&com);

switch(com){
case 1:
printf("挿入する文字列 ->");
scanf("%s",data);
if( (ptr=(DLSTR *)malloc(sizeof(DLSTR)) )==NULL){
printf("mallocに失敗しました\n");
return 1;
}
p=possearch(&head,data);
ptr->prev=p;
ptr->next=p->next;
strcpy(ptr->key,data);

show_list(&head);
break;
case 2 :

break;
case 3:
break;

}
}while(com!=3);
return 0;
}

587 :デフォルトの名無しさん:02/06/02 15:17
case1の、strcpy(ptr->key,data);の下と、case2の空いてるとこにプログラムを書くものです。
これは、アルファベット順に出力されるプログラムです。
例えば最初にbと入力して、次にaと入力したら、
a
b
と出力されます。
で、case1の方をやっていたのですが、
p->next->prev=ptr;
p->next=ptr;
こう入力しました。
でも、これでは、何故かエラーが出てしまいます。
答えはcase1の方は3行らしいのですが、わかりません。
教えてください。


588 :デフォルトの名無しさん:02/06/02 15:59
case1の方は
ptr->prev != NULL && (ptr->prev->next = ptr);
ptr->next != NULL && (ptr->next->prev = ptr);
別に
p->next != NULL && (p->next->prev = ptr);
p != NULL && (p->next = ptr);
でもいいけど。

589 :デフォルトの名無しさん:02/06/02 16:13
>>588

どうもです。
確かにそれでcase1はできるのですが、その書き方は習ってないので意味がよくわからないのですが・・・


590 :デフォルトの名無しさん:02/06/02 16:23
>>588

下の方で考えたらよくわかりました。
ありがとうございました。


591 :デフォルトの名無しさん:02/06/02 16:42
続いてcase2の方を考えたのですが、またわかりません。
前にただのリスト(双方向リストじゃないやつ)でやったときは、削除する場所pを見つけるために、関数を使ってました。
そして、その関数でpがわかります
その後は次のような感じになります。

case 2:
if(p==NULL){
printf("そのような文字列はありません");
}

ptr=p->next;
p->next=ptr->next;
free(ptr);
show_list(&head)
}
break

こんかいは >>585->>586の状態で、case 2のあとに削除のプログラムを書くのですが・・・助けてください。

592 :デフォルトの名無しさん:02/06/02 16:46
双方向リストなんて単方向リストにprevを付けただけでしょ。
何故分からんのかが不思議だ。

593 :デフォルトの名無しさん:02/06/02 16:54
どこが分からないの?
全く分からないなら聞いてもこれからついてけなくなるだけだから
自分でやった方がいいと思うが。

594 :デフォルトの名無しさん:02/06/02 16:56
紙に箱と矢印を書いてどうしたいのかを整理すればすぐに理解できると思う

595 :デフォルトの名無しさん:02/06/02 16:59
答え書いちゃってみるテスト

DLSTR *possearch2(DLSTR *p,char str[])
{
 while(p != NULL)
 {
  if(!strcmp(p->key,str))
   return p;
  p=p->next;
 }
 return NULL;
} 


case 2 :
   printf("削除する文字列 ->");
   scanf("%s",data);
   p = possearch2(&head, data);
   if(p != NULL)
   {
    p->prev != NULL && (p->prev->next = p->next);
    p->next != NULL && (p->next->prev = p->prev);
    free(p);
   }
   show_list(&head);
   break;

596 :デフォルトの名無しさん:02/06/02 17:02
わからないのは、削除する場所、pを見つける方法です。
前に今回とほとんど同じようなリストのプログラムの勉強をしました。
そのときは、削除する場所を見つける関数が最初から書かれていたので、それを使ったのです。
でも、今回(双方向リスト)のプログラムはその関数がなくて、case 2の中で削除する場所を見つけるにはどうすればいいのか迷いました。

597 :デフォルトの名無しさん:02/06/02 17:05
>>596
分からないときはいつまでソースを眺めてても時間の無駄だから、
紙に図を書いて、脳内シミュレートしてみるのが理解への近道。
答えを聞いてばかりじゃなくてやってみろ。

598 :デフォルトの名無しさん:02/06/02 17:11
>>595
関係無いけどdetach部分を関数に分けたいな(笑)

599 :デフォルトの名無しさん:02/06/02 17:44
そもそもscanfは使いたくないな。
最後に全部freeしときたいな。

600 ::02/06/02 21:50
%fは何桁まで表示ですか?

601 :デフォルトの名無しさん:02/06/02 22:14
floatで表現しうる精度

602 :デフォルトの名無しさん:02/06/02 22:40
VC++の場合LDBL_MAX が 1.7976931348623158e+308 で
LDBL_MIN が 2.2250738585072014e-308 だから、
308桁+デフォルトの少数以下の桁(6桁)

603 :デフォルトの名無しさん:02/06/03 00:06
>>602
FLT_*をみないとダメだろ。%lfじゃないんだから

604 :デフォルトの名無しさん:02/06/03 00:21
>>603
”表示”だから%lfも%fも同じでないの?

605 :デフォルトの名無しさん:02/06/03 00:48
%fだと切りつめられても文句は言えないと思うが。

606 :caslです:02/06/03 13:29
レジスタ GR0 の内容を 10進数で表示するサブルーチンを作成てください

メインプログラムでレジスタ GR0 に値を格納して,作成した表示ルーチンを呼び出して下さい。

607 :助けて・・・・:02/06/03 15:21
子供プロセスを二人のみつくるプログラムを作成せよ。各プロセスは何か画面に
メッセージを表示してから終了すること。If文をつかうこと。ただし
1:親と子はそれぞれ違うメッセージを出力すること。
2:兄弟は全く同じメッセージを出力すること。
3:それ以外のプロセスは生成されないこと。
誰か助けてください・・・C言語でforkを使うらしいのですが。

608 :デフォルトの名無しさん:02/06/03 15:31
>>607
googleで「fork プロセス」を検索せよ


609 :助けて・・・・:02/06/03 15:41
>>608さん
ありがとうございます!googleでforkを検索するところまではやったのですが
プロセスを付け加えることは知らなかったので助かりました。

610 :デフォルトの名無しさん:02/06/03 15:48
>>606
CASLぜんぜん知らんので、でっち上げアセンブリで。
# CASLの命令セットってどこ見ればいい?

.PRINT_AS_DEC
  push r0 ;GR0
  push r1 ;work
  push r2 ;work
  clr r1
  clr r2
  test r0
.LOOP
  jz NEXT ;jump on zero
  mod r0,10,r1 ;10==0xA
  mul r2,0x10,r2 ;or lsl r2,4,r2
  add r1,r2,r2
  div r0,10,r0
  jp LOOP
.NEXT
  out r2 ;print
  pop r2
  pop r1
  pop r0
ret

r0〜r2がこわれていいなら最初と最後のpushとpopはいらんけど。

611 :デフォルトの名無しさん:02/06/03 20:02
http://www.jitec.jipdec.or.jp/1_13download/hani01.pdf


612 :宿題ではありませんが、:02/06/03 20:09
当方プログラム自体まったくの初心者なのですが。
pythonとやらで、とりあえず、繰り返し文と判断文等を知った所で、
5から200までの素数を列挙するように書いてみた、
つもりだったのですが、動きません。
どこが拙いのでしょうか?教えて下さい。

>>>a=0
>>>n=2
>>>list[2]
>>>while n<100:
     if (2*n+1)%list[a]!=0:
         a=a+1
         if (+a)>len(list):
                list[:0]=[n]
                print 2*n+1
                a=0
                n=n+1
     if (2*n+1)%list[a]==0:
         a=0
         n=n+1

Traceback (most recent call last):
File "<pyshell#9>", line 9, in ?
if (2*n+1)%list[a]==0:
IndexError: list index out of range



613 :デフォルトの名無しさん:02/06/03 20:31
list[2] ?

614 :デフォルトの名無しさん:02/06/03 20:47
a=a+1の次の行でa==len(list) のとき、 list[a] は、エラー、ってことか?

615 :デフォルトの名無しさん:02/06/03 21:17
>>613
list=[2]
でした済みません。
そこを間違えてるわけでは、ありません。

616 :612,615,616:02/06/03 21:22
>>614
あっ、わかりました。
listがlist[a-1]までしか、ないんですね。

617 :612:02/06/03 21:29
>>> a=0
>>> n=2
>>> list=[2]
>>> while n<100:
if (2*n+1)%list[a]!=0:
a=a+1
if (a+1)>len(list):
list[:0]=[n]
print 2*n+1
a=0
n=n+1
if (2*n+1)%list[a]==0:
a=0
n=n+1

で大丈夫でした。お騒がせしました。

618 :デフォルトの名無しさん:02/06/03 21:58
よろしくおながいします。

「カタログする」「カタログされた」と、動詞で使われる「カタログ」はどういう意味なのでしょうか?
ファイルの操作だという事はなんとなくわかるのですが・・・・・
ググるにも「カタログ」という語が一般的過ぎて難しいのです。

619 :デフォルトの名無しさん:02/06/03 22:01
>>618
英和辞典でcatalog引け

620 :デフォルトの名無しさん:02/06/03 22:21
=card catalog; 【コンピユータ】 カタログ, (プログラムや命令の)一覧目録. 
− vt. カタログに作る[載せる]; 【コンピユータ】 (プログラムや命令を)カタログに載せる. 

辞書に載ってますた。驚きです。

「カタログされてないファイル」ってのはどういうことでしょうか。
作業領域内で一時的に作成されるファイルなどの事ですか?

621 :デフォルトの名無しさん:02/06/03 23:44
>>620
汎用機?

622 :606:02/06/04 00:39
>>610
?わからない...

623 :610:02/06/04 02:50
CASLってけっこう汚いのね。。シンプルだけど。ていうかRISCだと思ってた。
乗除算がないのはいい課題がなくなるからと深読みしたりして。
まあ、フィールド長の問題なんでしょうけど。

CONSTS DC 10000, 1000, 100, 10, 1, 0
OBUF DS 5
OBUFLEN DC 5

PRINT10 PUSH 0,GR0
PUSH 0,GR1
PUSH 0,GR2
PUSH 0,GR3
XOR GR1,GR1
LOOP1 LD GR2,CONSTS,GR1
JZE NEXT1
XOR GR3,GR3
LOOP2 CPA GR2,GR0
JPL NEXT2
SUBA GR0,GR2
LAD GR3,1,GR3
JUMP LOOP2
NEXT2 LAD GR3,48,GR3
ST GR3,OBUF,GR1
LAD GR1,1,GR1
JUMP LOOP1
NEXT1 OUT OBUF,OBUFLEN
POP GR3
POP GR2
POP GR1
POP GR0
RET

実行してないので無責任モード。
5桁ないとき頭に0がつくけど気になるなら勝手にどーぞ。


どうしようもなくなったら、まずCでライブラリ関数を使わずに書いて
人間コンパイルすればOKよ(本当か!?)。

624 :デフォルトの名無しさん:02/06/04 06:19
>>621
そうです。
汎用機・・・・・・・・
言葉は知ってたけど現物は初めて見ました(w

625 :デフォルトの名無しさん:02/06/04 08:31
よく覚えてないけど、カタログドプロシージャってのがあったなぁ。

626 :ハッシュ:02/06/04 16:56
ハッシュ表の大きさを10個として(領域を確保して)
ハッシュ検索プログラムを作成してください。
W杯が見たいのに帰れません。おねがいします。




627 :デフォルトの名無しさん:02/06/04 17:06
keyは何だ?
文字列か?

628 :ハッシュ:02/06/04 17:14
文字列です


629 :デフォルトの名無しさん:02/06/04 17:18
データは?

630 :デフォルトの名無しさん:02/06/04 17:19
言語は?

631 :ハッシュ:02/06/04 17:25
言語はC言語です。
データはa,ab,abc,d,de,def,g,gh,ghiです。


632 :デフォルトの名無しさん:02/06/04 17:27
なんだソリャ


633 :キャノン:02/06/04 18:58
     ▼問題▼
◆◆反復型の成績判定◆◆
 10人分のプログラムについて、一人ずつ成績判定を行うプログラムを
作る。途中までコードを記述してあるので、残りのプログラムリストを
完成させなさい。

ヒント:成績判定の部分は多分岐構造になるので、Select〜Caseステート
メントを使うといいでしょう。以下 プログラム リスト

Sub 反復型の成績判定()

' 10人分の得点を設定
Dim X As Variant
X = Array(60, 82, 87, 50, 86, 89, 76, 58, 68)

' 判定文字列の設定
Dim hantei As Variant
hantei = Array("不可", "可", "良", "優", "対象外")
Dim h As Integer

Const N As Integer = 10
Dim i As Integer
Dim tokuten As Integer

For i = 1 To N
tokuten = X(i - 1)


634 :デフォルトの名無しさん:02/06/04 19:38
/* >>631 */
/* C code produced by gperf version 2.7.2 */
/* Command-line: gperf */

#define TOTAL_KEYWORDS 9
#define MIN_WORD_LENGTH 1
#define MAX_WORD_LENGTH 3
#define MIN_HASH_VALUE 1
#define MAX_HASH_VALUE 21
/* maximum key range = 21, duplicates = 0 */

#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static unsigned int
hash (str, len)
register const char *str;
register unsigned int len;
{
static unsigned char asso_values[] =
{
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 5, 0, 0,
10, 0, 0, 0, 0, 0, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22
};
return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
}


635 :634の続き:02/06/04 19:38

#ifdef __GNUC__
__inline
#endif
const char *
in_word_set (str, len)
register const char *str;
register unsigned int len;
{
static const char * wordlist[] =
{
"",
"g",
"gh",
"ghi",
"", "", "",
"ab",
"abc",
"", "",
"a",
"de",
"def",
"", "", "", "", "", "", "",
"d"
};

if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash (str, len);

if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key];

if (*str == *s && !strcmp (str + 1, s + 1))
return s;
}
}
return 0;
}


636 :デフォルトの名無しさん:02/06/04 19:39
HASHのサイズは10でお願いします

637 :デフォルトの名無しさん:02/06/04 19:59
せっかくgperfで完全ハッシュにしてるのに何が不満なんだッ

638 :デフォルトの名無しさん:02/06/04 20:02
要求仕様を満たしていないのが不満です

639 :::02/06/04 20:09
自分で考えなさい

640 :デフォルトの名無しさん:02/06/04 20:10
(define x '(60 82 87 -5 86 140 58 68))
(define (hantei tokuten)
(cond ((< tokuten 0) '対象外)
((<= tokuten 40) '不可)
((<= tokuten 60) '可)
((<= tokuten 80) '良)
((<= tokuten 100) '優)
(else '対象外)))
(display (map hantei x))

641 :デフォルトの名無しさん:02/06/04 20:23
あれか、フィフティーキャニバってゆうやつ

642 :デフォルトの名無しさん:02/06/04 20:24
int
sxhash(key)
const char *key;
{
static char *s[] = {"a", "ab", "abc", "d", "de", "def", "g", "gh", "ghi"
};
int l=0, m, r=8;

while (l < r) {
m = (l + r) / 2;
if (strcmp(s[m], key)<0) l = m + 1; else r = m;
}
if (!strcmp(s[l], key)) return l;
return 9;
}


643 :デフォルトの名無しさん:02/06/04 20:29
ちゃんとコメントを書いてください。
コードと同程度の量のコメントが書けないのは問題外ですよ?

644 :デフォルトの名無しさん:02/06/04 20:33
>>643
年寄りはされ。

645 :デフォルトの名無しさん:02/06/04 20:36
>コードと同程度の量のコメントが書けないのは問題外ですよ?

コメントジェネレータでもつくるか(ワラ
$str =~ s/int/\/*int型変数の宣言*\//g

646 :デフォルトの名無しさん:02/06/04 21:02
645通すとコードが動かなくなります。

647 :デフォルトの名無しさん:02/06/04 21:04
int i=0;
printf("%d", i);



/*int型変数の宣言*/ i=0;
printf("%d", i);


error C2065: 'i' : 定義されていない識別子です。

648 :デフォルトの名無しさん:02/06/04 21:17
auto int i=0;

649 :デフォルトの名無しさん:02/06/04 23:16
すべての行に40カラム目からコメントが書かれていて、
印刷すると紙の左半分がコード、右半分がコメントと
きれいに分かれるソースを昔見たことがあります。

>>643 ひょっとして、あのソースの作者様ですか?

650 :デフォルトの名無しさん:02/06/05 00:05
>>643
マ板へ逝ってくれ(w
http://pc.2ch.net/test/read.cgi/prog/1020814131/l50

651 :デフォルトの名無しさん:02/06/05 11:11
>>642
そりゃバイナリサーチ。

652 :デフォルトの名無しさん:02/06/05 12:11
>>643
i++; //iに1を足す

653 :デフォルトの名無しさん:02/06/05 12:12
>>652
それはコメントの量が多すぎます

654 :デフォルトの名無しさん:02/06/05 19:22
>>651
わかってないね。バイナリサーチは実装がたまたまそうなっているだけ。
ハッシュ関数ってのは、入力からハッシュ値を計算して返す関数であって、
それがどう実装されていようと、この関数は、文字列を受け取って0-9 を
返すかんすうなの。わかる?

655 :デフォルトの名無しさん:02/06/05 19:27
特定の文字列しか扱えないハッシュ関数か。しかもO(log n)。
つーか、>>626はハッシュ*検索*プログラムといってるが。

656 :C初心者です:02/06/05 19:28
テキストファイルのある特定の文字列を含んだ行を
異なるファイルとして抽出するプログラムをCで2〜3種類作る、
という課題が出たのですが、1つも思い浮かびません。
ご教授頂けませんでしょうか?よろしくお願いします。

657 :デフォルトの名無しさん:02/06/05 19:35
>>656
main(int argc, char * argv[])
{
 char cmd[4096];
 sprintf(cmd, "fgrep %s > %s", argv[1], argv[2]);
 system(cmd);
}

main(int argc, char * argv[])
{
 char cmd[4096];
 sprintf(cmd, "grep -F %s > %s", argv[1], argv[2]);
 system(cmd);
}

658 :デフォルトの名無しさん:02/06/05 19:40
>>657
main(int argc, char * argv[])
{
 char cmd[4096];
 sprintf(cmd, "fgrep %s %s > %s", argv[1], argv[2], argv[3]);
 system(cmd);
}

main(int argc, char * argv[])
{
 char cmd[4096];
 sprintf(cmd, "grep %s %s > %s", argv[1], argv[2], argv[3]);
 system(cmd);
}
じゃないのか?

659 :656:02/06/05 19:40
>>657
ありがとうございます。
しかしチンプンカンプン・・・^^;
これから各関数の勉強をして参ります。

こんなにすぐ作れてしまうとは・・・凄い。

660 :656:02/06/05 19:41
>>658
ありがとうございます。

・・・・・・・(^^;;

いろいろやってみます。

661 :デフォルトの名無しさん:02/06/05 19:51
>>660
騙されるな
外部プログラムに渡しているだけで、Cで処理をしているわけじゃないから合格もらえないぞ

662 :デフォルトの名無しさん:02/06/05 19:53
合格もらえないか要領がいいとして優がくるかのどっちかだな。

663 :デフォルトの名無しさん:02/06/05 20:40
自分が採点するなら、要求は満たしてるから仕方なく合格はやるが、優はやりたくないな、という感じ

664 :デフォルトの名無しさん:02/06/05 20:48
windowsだから、デフォルトで*grepが無いという罠

665 :デフォルトの名無しさん:02/06/05 21:26
>>664
BCC5.5.1を入れておけば、Turbo grepが起動する罠。

666 :デフォルトの名無しさん:02/06/06 00:37
>>664
find とかいうパチもんがあったっけ。


667 :デフォルトの名無しさん:02/06/06 12:30
strtok()とか。

BM法と言う手もあるが。

668 :デフォルトの名無しさん:02/06/06 13:28
strtok()は違うだろ。

669 :デフォルトの名無しさん:02/06/06 13:34
strstr

670 :デフォルトの名無しさん:02/06/06 17:44
VBで3角形を表示する宿題がでました。
適当にネットでソースを発見し、宿題を終えたのですが、ちょっと理解できません。

Option Explicit
Dim i, n As Integer

Private Sub Command1_Click()
n = Text1.Text
Dim x1, x2, y1, y2, p1 As Double

Picture1.Scale (-1, 1)-(1, -1)
Picture1.DrawWidth = 2

p1 = 4# * Atn(1#)
n = Val(Text1.Text)
For i = 1 To n
x1 = Cos(2 * p1 * (i - 1) / n)
y1 = Sin(2 * p1 * (i - 1) / n)
x2 = Cos(2 * p1 * i / n)
y2 = Sin(2 * p1 * i / n)

Picture1.Line (x1, y1)-(x2, y2)
Next i

End Sub


わからないところは、
Picture1.Scale (-1, 1)-(1, -1)
Picture1.DrawWidth = 2

x1 = Cos(2 * p1 * (i - 1) / n)
y1 = Sin(2 * p1 * (i - 1) / n)
x2 = Cos(2 * p1 * i / n)
y2 = Sin(2 * p1 * i / n)

この6行です。
誰か教えてください。


671 :670:02/06/06 17:59
ちょっと訂正。
3角形→n角形です。

672 :デフォルトの名無しさん:02/06/06 18:00
VisualBasic使い始めた初心者なんですけど、
宿題の中で、時間をmsecまで出せというのがありまして。。。
どうやったらいいのでしょうか?


673 :デフォルトの名無しさん:02/06/06 18:12
学校の授業でVBなんかやるんだ。楽しそうだな、色々と。

674 :デフォルトの名無しさん:02/06/06 21:39
>>656
この処理は、
1、ファイルの1行リード
2、特定の文字列を含むか否かの判定
3、ファイルの1行ライト
となるわけだが、1や3は当然わかってるものとして進めていいよね?

で、2のヒントだが、strで始まる関数の説明を片っ端から読むべし。
ただ題意からして、解答のうち1つはstr関数を使わず自力で判定するのを求められてる
ように思う。その場合は単純に1文字ずつ比較していくのでいいのではないかな。

675 :デフォルトの名無しさん:02/06/06 21:41
>>672
Googleで検索してみそ、使える関数がわかるから。

676 :無責任な回答者:02/06/07 00:28
>>670
VBはよく知らんのだが、それなりに答えてみる。
>Picture1.Scale (-1, 1)-(1, -1)
たぶん、座標系の設定

>Picture1.DrawWidth = 2
たぶん、描く線の太さの設定。
この2つはPicture1のメソッドとかプロパティとかを調べてみよう。
VBのヘルプシステムがどうなってるか知らんけど。

x1 = Cos(2 * p1 * (i - 1) / n)
y1 = Sin(2 * p1 * (i - 1) / n)
x2 = Cos(2 * p1 * i / n)
y2 = Sin(2 * p1 * i / n)
これは円周をn等分したi-1番目とi番目の点の座標を計算している。
文字で解説するのは面倒なので、詳しくは身近で数学が得意な奴に聞け。


677 :専門生:02/06/07 03:39
-655536と65536を正規化した場合、同じ結果になりますか?
どちらも0.1×2の17乗になってしまいます

678 :デフォルトの名無しさん:02/06/07 09:54
正規化ってどういう正規化よ?

679 :デフォルトの名無しさん:02/06/07 10:10
>>677
実はintが2バイトですか?

680 :デフォルトの名無しさん:02/06/07 10:16
> どちらも0.1×2の17乗になってしまいます
ってんだからintじゃなくてfloat?

681 :デフォルトの名無しさん:02/06/07 10:17
>>677
-655536は-65536の間違いとすると
結果の符号ビットを見てないだけとか。

682 :デフォルトの名無しさん:02/06/07 10:46
単に5が一個余計なだけなら2の補数表現で下16bitだけとれば0だが、
0.1×2の17乗ってのがわからん。

683 :351:02/06/07 13:57
little
2 little
3 little indians,
4 little
5 little
6 little indians,
7 little
8 little
9 little indians,
10 little indian boys.

この歌詞を画面に表示するプログラムを作成せよ
ループを用いることによって、プログラム中に「little」「indian」は一回しか出ないとし
数字「2」と「4から10」は一回も出てこない。
while文とfor文の2通りをおながいします

684 :683:02/06/07 14:00
一行目のlittleのまえの1が抜けてしまいました

685 :デフォルトの名無しさん:02/06/07 14:07
"indians"は"indian"1回分になるのか?
例えば

while (
{


686 :デフォルトの名無しさん:02/06/07 14:08
途中で書いてしまった・・・
ようはコード中に"indians"と"indian"は両方出現してもいい?だめ?

687 :683:02/06/07 14:10
>>685
多分なると思います。

 

688 :デフォルトの名無しさん:02/06/07 14:11
#! /usr/bin/ruby

LITTLE = 'little'
INDIAN = 'indian'
i = 0
1.upto(3) do
1.upto(3) do |j|
puts "#{i+=1} #{LITTLE}#{" #{INDIAN}s," if j==3}"
end
end
puts "#{i+=1} #{LITTLE} #{INDIAN} boys."


689 :デフォルトの名無しさん:02/06/07 14:12
#include <stdio.h>

main()
{
 char* l = "little";
 char* i = "indian";
 for(;;) break;
 while("永遠ループ") break;
 printf("1 %s", l);
 printf("2 %s", l);
 printf("3 %s %ss,", l, i);
 printf("4 %s", l);
 printf("5 %s", l);
 printf("6 %s %ss,", l, i);
 printf("7 %s", l);
 printf("8 %s", l);
 printf("9 %s %ss,", l, i);
 printf("10 %s %s boys.", l, i);
}


690 :デフォルトの名無しさん:02/06/07 14:17
>>689
ダメだ
#include <stdio.h>

main()
{
 char* l = "little";
 char* i = "indian";
 for(;;) break;
 while("永遠ループ") break;
 printf("%d %s", 1, l);
 printf("%d %s", 1 + 1, l);
 printf("%d %s %ss,", 1 + 1 + 1, l, i);
 printf("%d %s", 1 + 1 + 1 + 1, l);
 printf("%d %s", 1 + 1 + 1 + 1 + 1, l);
 printf("%d %s %ss,", 1 + 1 + 1 + 1 + 1 + 1, l, i);
 printf("%d %s", 1 + 1 + 1 + 1 + 1 + 1 + 1, l);
 printf("%d %s", 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1, l);
 printf("%d %s %ss,", 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1, l, i);
 printf("%d %s %s boys.", 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1, l, i);
}


691 :デフォルトの名無しさん:02/06/07 14:18
int i = 1;

do
{
printf("\r\n%d little", i);

if (i % 3 == 0 || i == 3*3+1)
printf(" indian");

if (i % 3 == 0)
printf("s");

} while (i++ < 3*3+1);

printf(" boys", i);

692 :デフォルトの名無しさん:02/06/07 14:19
>>690
3は書いてもいいらしいから有効利用しようぜ

693 :デフォルトの名無しさん:02/06/07 14:23
>>692
#include <stdio.h>

main()
{
 char* l = "little";
 char* i = "indian";
 for(;;) break;
 while("永遠ループ") break;
 printf("%d %s\n", 1, l);
 printf("%d %s\n", 1 + 1, l);
 printf("3 %s %ss,\n", l, i);
 printf("%d %s\n", 3+1, l);
 printf("%d %s\n", 3+3-1, l);
 printf("%d %s %ss,\n", 3+3, l, i);
 printf("%d %s\n", 3+3+1, l);
 printf("%d %s\n", 3*3-1, l);
 printf("%d %s %ss,\n", 3*3, l, i);
 printf("%d %s %s boys.\n", 3*3+1, l, i);
}

694 :デフォルトの名無しさん:02/06/07 14:27
#include <stdio.h>

#define a little_indians

static const char a[] = {
0x31, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x0a,
0x32, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x0a,
0x33, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20,
0x69, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x2c, 0x0a,
0x34, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x0a,
0x35, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x0a,
0x36, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20,
0x69, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x2c, 0x0a,
0x37, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x0a,
0x38, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x0a,
0x39, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20,
0x69, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x2c, 0x0a,
0x31, 0x30, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65,
0x20, 0x69, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x62,
0x6f, 0x79, 0x73, 0x2e, 0x0a,
};

int main()
{
int i;
for (i = 0; i < sizeof(a); ++i) {
putchar(a[i]);
}
return 0;
}


695 :683:02/06/07 14:45
ありがとうございます!

696 :デフォルトの名無しさん:02/06/07 14:58
691さんみたいな感じで、for文はできませんか?


697 :デフォルトの名無しさん:02/06/07 15:03
>>691
なんで最初に改行して最後にしないの?
というかなんで\rを?

698 :デフォルトの名無しさん:02/06/07 15:08
確かめてないけどこんなもんじゃないの

for (i = 1; i < 3*3+1; i++) {
printf("\r\n%d little", i);

if (i % 3 == 0 || i == 3*3+1)
printf(" indian");

if (i % 3 == 0)
printf("s");
}

printf(" boys\n", i);


699 :683:02/06/07 15:12
for文とdo while文を同一画面を得るようにしたいんですが、わかりますか?

700 :デフォルトの名無しさん:02/06/07 15:15
>>699
お前の日本語がわからん

701 :デフォルトの名無しさん:02/06/07 15:21
>>699
お前、一から十まで全部聞いて済まそうとするなよ。
自分でやらんと何も身につかんぞ。俺の知ったことじゃないが。

702 :683:02/06/07 15:21
>>698
エラー

703 :683:02/06/07 15:31
>>701
鋭い視点から物事を突きますね!わかりますた。
for文は自力でやります!

704 :デフォルトの名無しさん:02/06/07 15:45
あの、もし答えていただけたらうれしいのですが
「オブジェクトインスタンスクローン」って何ですか。
オブジェクトインスタンスのクローンのことですか。
そして、1つのオブジェクトインスタンスに
別のオブジェクトインスタンスが含まれるということはあるのですか。

705 :デフォルトの名無しさん:02/06/07 15:51
>>704
シルベスタ・スタローンの親戚。

706 :デフォルトの名無しさん:02/06/07 15:53
3点。

707 :デフォルトの名無しさん:02/06/07 15:58
>>704
インスタンスのクローン(複製)です。

あるインスタンスAに別のインスタンスBが含まれることはもちろんありえます。
この場合のAを複製するには、シャローコピーとディープコピーの
二つの方法がありますが、単に「クローン」と言った場合、
どちらになるかは決まっていません。

708 :デフォルトの名無しさん:02/06/07 16:07
707様
ありがとうございます。
プログラミングはド素人の翻訳者なのですが、以下の文がわからなくて
お尋ねしますた(翻訳板で、わからないことは2chのどこかの板で聞く
と書いてあったので真似してみました)。
目茶苦茶書き込んで、本当にすみませんでした。

もし、以下の文に間違いがあったら、指摘していただけたらさらに
ありがたいのですが、厚かましすぎるので、無視していただいても
いいです。

State changes in an object instance clone trigger transmission
of a state change message to other object instance clones
of the same object instance.
あるオブジェクトインスタンスのクローン内でステートの変更を行うと、
元のオブジェクトインスタンスに含まれる別のオブジェクト
インスタンスのクローンに対し、ステート変更メッセージが転送される。

709 :デフォルトの名無しさん:02/06/07 16:09
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

ホクトナンバー1PK、あの「つじのぞみ」ちゃんのアカウントがなんとオークション中!!!
今なら○○○○もついてくるかも!!きゃーエッチ〜。もしかして女子高生の・・・ひ・み・つ♪
http://www.muhoho.com/~tsuji/
http://www.kinsan.ne.jp/uo/bbs2-4/petit.cgi

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

710 :707:02/06/07 16:27
>>708
そういうことは先に言え(w

その訳は違うと思う。

元のインスタンス(A)があって、
それのクローンがいっぱいあるわけだ(B,C,D)。
で、そのうちの一つ、たとえばBのステートが変更されると、
ほかのクローン(C、D)に、メッセージが転送される

って意味じゃないのか?


711 :デフォルトの名無しさん:02/06/07 16:29
>>708
なんかクローンが沢山あるみたいだけど、どういう話なのか見えないなあ。

〜ステートの変更を行うと、同じオブジェクトインスタンスに対する他のクローンにも
ステート変更メッセージが送信される?

712 :708:02/06/07 16:32
考えてみれば、そういうことなのですね。
わかったような気がします。
ありがとうございました。
707様のことは忘れません。
また、どこかでお会いしたら、教えてください。

皆様、どうもお邪魔しました。


713 :デフォルトの名無しさん:02/06/07 16:32
>>708
頼む、訳した文章を出版物にしないでくれ

714 :708:02/06/07 16:39
しません、しません(w


715 :デフォルトの名無しさん:02/06/07 23:25
State changes       状態の変化
in             〜内の
an object instance clone  オブジェクトインスタンスの複製
trigger          発端となる

以上で、
「オブジェクトインスタンスの複製内の状態の変化が発端となり」

transmission of 〜の送信
a state change message 状態変更のメッセージ
to other object instance clones 他のオブジェクトインスタンスの複製へ
of the same object instance. 同一種類のオブジェクトインスタンスの

「同一種類のオブジェクトインスタンスの他のオブジェクトインスタンスの複製へ、
状態変更のメッセージが送信される」

こんな感じ?


716 :693:02/06/07 23:57
>>683

エラーにならんぞ。条件判定で=入れとかないとだめとか 1 littleになるとか
そのぐらいは自分でやれ。

まさかint main(void)書いていないということは無いよな。
少なくともエラーにはならんはずだけど。

、、、あり得る。

717 :デフォルトの名無しさん:02/06/08 01:52
>>716
あんた誰よ?
693は俺だぞ

718 :デフォルトの名無しさん:02/06/08 10:39
>>683

/* 数字は3のみ */
int i, j;
for( i = j = 3; (i ^ 3) >= - 3; i--, j = 3 )
do {
j--;
printf("%d little%s%s\n",
(j ^ 3) + (i ^ 3) * 3,
j * i ? "" : " indian",
j ? i ? "" : " boys." : "s,");
} while ( j * i );

719 :683:02/06/08 11:21
for文が出来ない・・・

720 :683:02/06/08 11:50
for(式1;式2;式3)文 らしい

721 :デフォルトの名無しさん:02/06/08 11:52
ぃっτょι

722 :683:02/06/08 12:02
in function `main`って言われるのは何故??

723 :683:02/06/08 12:09
出来た!と思ったら、10番目のlittleが出てきてなかった・・・

724 :デフォルトの名無しさん:02/06/08 13:18
>>683
お前まだやってたのか。

725 :デフォルトの名無しさん:02/06/08 17:02
今、DIME誌(小学館)を読んでいたが
高校生の「情報」教科書では
携帯電話やポケベルのサービス開始年を覚えなきゃダメなのか?
ファイルを管理するツリー構造の節の部分(ディレクトリ)を
「フォルダ」として覚えなきゃダメなのか?

俺も年取ったのか?(享年28)

726 :デフォルトの名無しさん:02/06/08 22:12
>>725
死むな。生きる。

727 :デフォルトの名無しさん:02/06/09 00:01
>>725
調べればわかるし、知ってても意味の無いものを丸暗記させるのが、日本の教育だしょ。


728 :デフォルトの名無しさん:02/06/09 07:55
その検索の方法でも教えたほうがどれほど役に立つことか

729 :デフォルトの名無しさん:02/06/09 13:32
このプログラムを実行するとエラーがでます。
なぜでしょうか。

#include<stdio.h>
#include<math.h>
void main(void){

double x1,x2,cc;

x1=1.50;                                                                                   
cc=1.0;
while(c>=pow(10,-5)){
x2=(x1*x1+1.0)/3.0;
cc=fabs((x2-x1)/x1);

x1=x2;
}
printf("x=%f",x1);
}


730 :デフォルトの名無しさん:02/06/09 13:33
確か、x^2-3 x+1=0を解くプログラムです。。

731 :デフォルトの名無しさん:02/06/09 13:38
>>729
実行する以前にコンパイルできません。
それとエラーならエラーメッセージも貼りましょう。

732 :デフォルトの名無しさん:02/06/09 13:40
x1=1.50;の所が、文字エラーとかで、
エラーが102でました。                     

733 :デフォルトの名無しさん:02/06/09 13:41
>>731
エラーが出たなら貼りましょう。

734 :デフォルトの名無しさん:02/06/09 13:44
>>732
エラー番号ではなく、エラーメッセージ全部じゃないと意味がありません。

735 :デフォルトの名無しさん:02/06/09 13:45
>>729をトリプルクリックすると
x1=1.50;の後ろに大量の全角空白があってビビる

736 :デフォルトの名無しさん:02/06/09 13:46
>>735
わかりました。
多分、空白のせいで、エラーが出てました。
ありがとうございます。

737 :デフォルトの名無しさん:02/06/09 13:47
あと、c→cc

738 :デフォルトの名無しさん:02/06/09 13:48
すいません、よかったら、このプログラムよくわからないので、
教えてくれますか?


739 :デフォルトの名無しさん:02/06/09 13:49
#include<stdio.h>って何ですか、、って感じです。。

740 :デフォルトの名無しさん:02/06/09 13:49
>>738
さすがに付き合いきれん。
先生に聞け(笑)

741 :デフォルトの名無しさん:02/06/09 13:52
>>739
プレイの項目に「スタジオ内でのエッチも含む」という事です。

742 :デフォルトの名無しさん:02/06/09 13:52
教えかけようとして、739見てやめた。

743 :デフォルトの名無しさん:02/06/09 13:54
           从/

        __∧_∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      /(  ´Д`)V  < はッ!先生、ちがっ・・・!、寝てません!
  __ / /|  u゚_/ )   \_______________
  \  ( ( ̄ ̄⊆_ノ ̄\
  ||\ `ー⊃         \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

744 :デフォルトの名無しさん:02/06/09 13:57

問題2.
10個の非実数値を読み込み、それを小→大の順に並べ、
一番大きい数の平方根を求めよ。
条件 √xは言語Cでは、sqrt(x)と書く。
   このsqrt(x)を使ってはいけない。

この問題を教えてください。

745 :デフォルトの名無しさん:02/06/09 13:59
>>744
非実数値ってなんですか?

746 :デフォルトの名無しさん:02/06/09 14:00
整数のことだろ

747 :デフォルトの名無しさん:02/06/09 14:01
虚数?

748 :デフォルトの名無しさん:02/06/09 14:03
多分、整数だと思います。

749 :デフォルトの名無しさん:02/06/09 14:08
(-_-).。oO(ヘイホーコソ・・・・)

750 :デフォルトの名無しさん:02/06/09 14:09
問題の表現に問題があるな。
非実数値って言葉もそうだが、「それを小→大の順に並べ」は表示しろってことか? も明確でない。
さすがに最後の求めた結果は表示しないとおかしいと推測できるが。

751 :デフォルトの名無しさん:02/06/09 14:10
平方根は実数値でいいのかな?

752 :デフォルトの名無しさん:02/06/09 14:12
平方根は実数値でいいと思います。。

753 :デフォルトの名無しさん:02/06/09 14:14
なにかこの問題の新しいスレがたっとりますが本人の仕業なのですか?

754 :デフォルトの名無しさん:02/06/09 14:15
言語Cっていう言い方がカコイイ

755 :デフォルトの名無しさん:02/06/09 14:17
本人の仕業です。

756 :デフォルトの名無しさん:02/06/09 17:12
>>750
printf("求めました");

757 :デフォルトの名無しさん:02/06/11 01:11
>>744
非負値の間違いと思われ。

758 :るーぷ:02/06/11 15:29
ループ関数ってなんですか?


759 :デフォルトの名無しさん:02/06/11 15:32
文字列を扱うクラスstrを作りなさい
仕様は以下のとおりです、
1、コンストラクタで文字列を指定して
  初期化できるようにする
2、Setメンバ関数で文字列を設定するようにする
3、Lookメンバ関数で文字列を参照するようにする
4、Chainメンバ関数ですでに保持している文字列に
 指定された文字列を連結できるようにする。

main関数を用いてこのクラスが正しく動作することを確認する

760 :るーぷ:02/06/11 15:37
ループ関数ってなんですか??



761 :デフォルトの名無しさん:02/06/11 16:05
google検索してみましたか?


762 :るーぷ:02/06/11 16:08
googleで検索したんですけど
いまいちいいサイトがないので、
わかりません。


763 :デフォルトの名無しさん:02/06/11 16:10
>>759

#include <string>
#include <iostream>

class str
{
 std::string str_;
public:
 str(const char* s) : str_(s) {}
 void Set(const char* s) { str_ = s; }
 const char* Lock() { return str_.c_str(); }
 void Chain(const char* s) { str_ += s; }
};

main()
{
 str s("string");
 std::cout << s.Lock() << std::endl;
 s.Set("s::Set");
 std::cout << s.Lock() << std::endl;
 s.Chain(" + s::Chain");
 std::cout << s.Lock() << std::endl;
}



764 :デフォルトの名無しさん:02/06/11 16:26
(゚д゚;)・・・・・

765 :デフォルトの名無しさん:02/06/11 16:46
>>763
s/Lock/Look/g

766 :デフォルトの名無しさん:02/06/11 16:48
>>765
どうでもいい。

767 :デフォルトの名無しさん:02/06/11 16:49
>>764-765
ゴメソ

768 :C初心者:02/06/11 20:04
ある特定の文字列を含んだ行を異なるファイルとして抽出するプログラム。

1)インプット用、アウトプット用ファイル名の入力。
2)検索キーワードの入力
3)検索キーワードの文字数を数える→strlen()で
4)インプット用ファイルをオープン
5)インプット用ファイルからfgets()で1段落をゲット
6)キーワードの一文字目とゲットした1段落の一文字目を比較
6−1)合致していなければゲットした二文字目を比較。
6−2)合致していればキーワードの二文字目とゲットした二文字目を比較。
7)上記の操作のパターンを用いてキーワードが含まれているかどうかを確認。
8)キーワードが含まれていればゲットした1段落を新ファイルにアウトプット

このような課題が出たのですが、1段落ずつGetする方法、
文字列が含まれていたらその段落全てをputする方法等、
分からない点が多いです。
ご教授頂けませんでしょうか?

769 :デフォルトの名無しさん:02/06/11 20:14
1行(\nマデ)=1段落とすればいいのでは。

770 :デフォルトの名無しさん:02/06/11 20:20
>>1768
1行目で行を出力といいながら
後半は段落全てを出力か・・・

771 :デフォルトの名無しさん:02/06/11 20:24
実はhtmlファイルで、<p> ~ </p>を認識しなければいけないとか(マテ

772 :デフォルトの名無しさん:02/06/11 20:28
>>768
行頭から改行までを1段落ということでいいかな。

>1段落ずつGetする方法
char型の十分大きい配列を用意してfgetsを使って読み込む。

>文字列が含まれていたらその段落全てをputする方法等
これは「文字列中にキーワードが含まれているか判定する関数」(A)と
「段落をputする処理」に分ける。
(A)はさらに「文字列とキーワードを1文字ずつずらしながら
(一致するか行末まで)ループする処理」と、
「文字列の先頭と、キーワードが一致するか判定する関数」(B)に分ける。
(B)の実装は「比較しながらキーワード末or不一致になるまでループまわす」ね。

773 :スレ間違えた厨房:02/06/11 20:57
10 rem
20 dim a(20),b(20)
30 for i=i to 20
以下略

で数値をいくつか入力するとその数字と順位が表示
されるようにしたのですが平均値も表示するには
どうしたら良いのですか?

774 :デフォルトの名無しさん:02/06/11 21:05
forループ中で点数を足してって合計求めて、
総人数で割ったものを表示するようにすればいい。
べつにオーバーフローとか気にする問題でもないんだろ。

775 :スレ間違えた厨房:02/06/11 21:09
>>774
BASIC初めて4時間でまだ何も・・・

776 :768:02/06/11 21:23
皆さんありがとうございました。
大変参考になりました!

777 :スレ間違えた厨房:02/06/11 22:06
10 rem
20 dim a(20),b(20)
30 for i=i to 20
40 print i;
50 input a(i)
60 next i
70 for I=1 to 20
80 b(i)=1
90 next i
100 for i=1 to 20
110 for j=1 to 20
120 if a(i)<a(J) then b(I)B(I)+1
130 next j
140 next i
145 print ";""
150 for i=1 to 20
160 print A(I);B(I)
170 next i
180 end

で平均値を割り出すには何を加えたらよいのですか?

778 :デフォルトの名無しさん:02/06/11 22:13
>>777
とりあえず120に=が抜けていると思いまーす。

779 :スレ間違えた厨房:02/06/11 22:15
>>778
単なるミスですので気にしないで・・・

780 :デフォルトの名無しさん:02/06/12 02:27
import java.net.*;
import java.io.*;

class MultiClient extends Thread
{
MultiClient(Socket ソケット)
{
クライアントのソケット = ソケット;
}

Socket クライアントのソケット;

public void run()
{
try
{
ObjectOutputStream 出力ストリーム;
ObjectInputStream 入力ストリーム;
String 入力ファイル名 = null;
出力ストリーム = new ObjectOutputStream(クライアントのソケット.getOutputStream());
入力ストリーム = new ObjectInputStream(クライアントのソケット.getInputStream());
入力ファイル名 = (String) 入力ストリーム.readObject();
File ファイル = new File(入力ファイル名);
long ファイルの大きさ;
ファイルの大きさ = ファイル.length();
byte[] バッファ = new byte[(int) ファイルの大きさ];
FileInputStream バイトストリーム = new FileInputStream(ファイル);
バイトストリーム.read(バッファ);
バイトストリーム.close();
String 文字列 = new String(バッファ);
出力ストリーム.writeObject(文字列);
}
catch (IOException error_report)
{
System.out.println(error_report);
System.exit(1);
}
catch (ClassNotFoundException error_report)
{
System.out.println(error_report);
System.exit(1);
}
}
}

これを複数のファイルが読み込めるように変更しなきゃならんのです。
どうしたらよいですか?

781 :デフォルトの名無しさん:02/06/12 02:46
宿題がでました
javaチャットを作ってこいとの事です。
どなたか簡単なjavaチャット作っていただけませんか?

782 :デフォルトの名無しさん:02/06/12 02:53
http://freshmeat.net/search/?q=java+chat
好きなのをもってけ。

783 :デフォルトの名無しさん:02/06/12 02:59

-------Yahooオークション悪質者 報告書------------------

Yahoo! JAPAN ID : shigechin001(35)
オークションページ http://rating.auctions.yahoo.co.jp/jp/show/rating?userID=shigechin001&

××××過去評価抜粋 ××××
評価: 非常に悪い 出品者です。評価者は takebon621 (173)
必見!!Norton InternetSecurity2002クロスアップグレード(登録可能・送料無料)  (12月 14日 23時 45分)
落札者は「 非常に悪い 」と出品者を評価しました。
コメント:都合の悪い事は、一切載せておらずおまけに、綺麗なものと判断させるようなコメントでした。CD−ROMには、
大きなキズ、欠けている所があり、梱包も雑で非常に状態の悪い物でした。おまけに、落札時にあった、キャンペーン用の
ステッカーがはがされていました。この方の・(1月 7日 23時 54分) (最新)
返答:これで気は済みましたか?メールでのやり取りをさせていただきましたが、そちらの言われる事はむちゃくちゃです。
もう少し、筋の通る話をしてください。 (1月 8日 0時 8分)

評価: 非常に悪い 出品者です。評価者は cilver90 (-1)
激安!!デジカメNinja 新品・未開封 (11月 2日 23時 39分)
落札者は「 悪い 」と出品者を評価しました。
コメント:説明は、もっと、解りやすく丁寧に応対してください。 (11月 11日 13時 59分)
返答:誤解を招くような説明文にはしておりません。きちんと、ソフトであること、商品名もはっきり明記していること、写真もきちんと載せていること、
常識で分かる価格。それでどうしてデジカメ本体と間違われるのですか?他にどういう説明を求められられるのですか?それで間違っ・
(11月 11日 23時 47分)
返答:間違って落札されて逆恨みするとは非常に人間性を疑います。今までの取引の中で一番最低でした。今後他の方に迷惑をかけないよう
お願いしたいところです。 (11月 11日 23時 50分)

落札者は「 非常に悪い 」と出品者を評価しました。
コメント:逆恨みした覚えもありませんし、電話では、確認後、謝ったはずですが、まして、今後の事をそちらに言われる
筋合いは無いと思います。 (11月 12日 5時 7分) (最新)
返答:では、最初の悪いという評価はどういう意味ですか?私はきちんと対応しましたし、こちらの何に非があったといわれるのですか?
それが逆恨みというものではないでしょうか?もう少し筋が通る話をして下さい。 (11月 12日 12時 28分)
返答:それと、あなたからの謝罪はありませんでしたよ。あなたはただ、こちらの確認ミスです。と言われただけ。
実際謝罪されたのはあなたのご主人さんです。これ以上私を怒らせないで下さい。 (11月 12日 12時 31分)

『解説』
 この人物 shigechin001(35)は複数YahooIDを作成して、入札価格の吊り上げ自作自演行為や他人の出品を意図的に妨害している
悪質な人物である。 Yahooオークションを利用する際は十分に注意が必要な人物である。
Yahoo! JAPAN ID : shigechin001(35)もコイツが所有している複数のYahoo! JAPAN IDの1つであると思われる。
コイツの過去オークション評価を見ても容易に悪質な人間性が分かる。 要注意。

784 :デフォルトの名無しさん:02/06/12 05:36
>>783
一つ目はともかく二つ目は落札者のほうが一方的に悪いな

785 :デフォルトの名無しさん:02/06/12 05:46

  ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (    ) < >>777 (a(1)+a(2)+a(3)+ … +a(20))/20
〜(___ノ   \_________



  ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,・∀・) < なんつったりして
〜(___ノ   \_________

786 :デフォルトの名無しさん:02/06/12 05:55
> sum = 0.0
> for I=1 to 20
> sim += a(i)
> next i
> sum /= 20.0
BASICの文法は解らんけど
sumは実数型でな。

787 :786:02/06/12 06:00
×sim → ○sum
×I → ○i

786が実行できたらいやだなぁ。


788 :デフォルトの名無しさん:02/06/12 06:00
>>784
このIDと評価はあくまでもコイツの悪行の一部に過ぎないからね。
まぁここに載せてるのは軽い方の部類やね。氷山の一角って事よ。
 それなら、試しにチミがコイツと取引してみなよ。この警告無視してさ。
きっと面白い結果になると思うけど。

789 :デフォルトの名無しさん:02/06/12 06:56
>>788
やめておく、欠けたCDなんかいらんぜよ

790 :デフォルトの名無しさん:02/06/12 12:39
Cで画像処理をするプログラムを作成中なんですが、
JPGを扱うためjpeglibを使おうとしています。

それで、画像のサイズ変更(拡大、縮小)を行うためには
どうすればいいでしょうか。jpeglibにリサイズするようなものが
準備されているのでしょうか。





791 :デフォルトの名無しさん:02/06/12 12:59
>>790
調べれば?

792 :デフォルトの名無しさん:02/06/12 14:15
VBScriptなどを使って、ログオンしているユーザーのディレクトリを
指定することできますか?
例えば
Win9x
c:\windws\profile\ユーザ名
Win2k
c:\DocumentAndSetting\ユーザ名
という風にOS毎の差違がありますが、実行時にどのOSでも
動作できるようにできるでしょうか?
言語はWindowsにRuntimeなどを入れなくても使えるものであれば、
バッチファイルでもVBScriptでもexeでもOKです

793 :屋根裏男 ◆ZMVdytmo :02/06/12 15:04
明後日までにC++言語でdumpプログラムを作らなければならなくなりました。
C++言語らしく中身を書けだそうです。
お願いします

794 :デフォルトの名無しさん:02/06/12 15:13
何か板違いかもしれませんが、聞ける場所がないのでここで聞きます。

任意の文字列を検索するcgiスクリプトをbashで作成せよ。
対象は、http://・・・・1・・・・/htm
ここでは、アドレスをいうことはできません。
で、1のところは、1,2,3,4,・・・255まで検索します。
つまり、255個のページを調べ、任意の文字列があれば、その行を抜き出せということです。

実行結果は、例えば、linkを検索した場合。
http://・・・・1・・・・/htm
linkという文字があれば、その行を出力。

・・・・・・・・・・・
・・・・・・・・・・・
http://・・・・255・・・・/htm
linkという文字があれば、その行を出力。

と、なります。
perlとawkは使わないこと。

HTMLでフォームを作って、そこに入れた文字が検索されるようにすること。
という課題です。

とりあえず、フォームを作り、そこに入れた文字がCGIの方にいくようにしました。
method="post"でやってます。

シェルスクリプトは、こんな感じにしなければならない。
#!/bin/bash
arg='tr"&+" "\012" | sed-e "s/^.*=//"'

echo "Content-type:text/html"
echo ""
echo "<HTML><HEAD>"
echo "<TITLE>index.html search</TITLE>"
echo "</HEAD><BODY>"

ここにプログラムを書く

echo "</BODY></HTML>"

まだシェルスクリプトについて習ったばかりフォームから送られてきた文字をどうやって処理するかもわかりません。
というか、最初はフォームの作り方すら知りませんでした。
というわけで、だれか、おしえてください。ヒントでもいいです。

795 :デフォルトの名無しさん:02/06/12 15:27
>>794
おまえそれ宿題じゃなくて、アタックをかけたり、
エロサイトを巡回保存したいだけだろ?

796 :デフォルトの名無しさん:02/06/12 15:28
>792
できます。
>793
正直、dumpをC++らしく作る、って言われても、
iostream使うくらいしか、C++らしくないような……
>794
Ruby!(笑

797 :デフォルトの名無しさん:02/06/12 15:37
>>795

アタックとかよくわからないんですが・・・

>>796
Rubyとは?

798 :794:02/06/12 15:47
期間は2週間なんですが、ここで教えてもらえそうもないところを見ると、すごい長いプログラムになるんですか?
それとも、板違いなんでしょうか?

799 :デフォルトの名無しさん:02/06/12 15:57
webprog板へいけ

800 :794:02/06/12 16:03
>>799

なるほど。こういう板があったのですね。
そちらで聞いてきます。
ありがとうございました。

801 :792:02/06/12 21:41
>796
ありがとうございます!なにかヒントになる情報でも教えて頂けないでしょうか?

802 :デフォルトの名無しさん:02/06/12 23:09
>794
なぜにbashなのか知りたい。
それと、sedはOKなのにperlやawkがダメな理由も知りたい。

perlとawkは使わないこと、という事はRubyやCやC++やJavaはOKなんだな?



803 :デフォルトの名無しさん:02/06/12 23:13
/*x^2-3 x+1=0の解*/

#include<stdio.h>
#include<math.h>
void main(void){

double x1,x2,cc;

x1=1.50;
cc=1.0;
while(c>=pow(10,-5)){
x2=(x1*x1+1.0)/3.0;
cc=fabs((x2-x1)/x1);

x1=x2;
}
printf("x=%f",x1);
}

で、x1=1.50の辺りから、どうしてそうなるのかわからないので、
教えていただける方、教えてください。


804 :デフォルトの名無しさん:02/06/12 23:14
-=・=-  -=・=- その式どこかで見た

805 :デフォルトの名無しさん:02/06/12 23:15
よく覚えてますね

806 :デフォルトの名無しさん:02/06/12 23:16
-=・=-  -=・=- ここの729で見た

807 :デフォルトの名無しさん:02/06/12 23:17
少しは分かった気がするので、再チャレンジ

808 :デフォルトの名無しさん:02/06/12 23:22
x1=1.50の辺りからって・・・

     ほとんど全部じゃねぇか!
ヽ(`Д´)ノ
  (  )
  < ヽミ3


















-=・=-  -=・=-  って言って欲しかったか?

809 :デフォルトの名無しさん:02/06/12 23:23
どうしていきなり、1.5が出てくるのか、よくわかんないです。。

810 :デフォルトの名無しさん:02/06/12 23:36
1.5
解のひとつに収束する適当な初期値

811 :デフォルトの名無しさん:02/06/12 23:36
>>803
反復法は挙動が怪しいので、ニュートン法を使え。

812 :デフォルトの名無しさん:02/06/12 23:37
>>803
そのプログラムがANSI準拠のC言語でかかれているならコンパイルできない
よってそのプログラムは/*x^2-3 x+1=0の解*/を求めるプログラムではない


813 :デフォルトの名無しさん:02/06/12 23:43
>>810
ありがとうございます。

cc=1.0って何ですか?
ニュートン法知らないです。

814 :デフォルトの名無しさん:02/06/12 23:47
>>813
812の言うようにプログラムが間違っているが、
反復法知ってるなら分かるだろ?

815 :デフォルトの名無しさん:02/06/12 23:51
>>813
ニュートン法とは、x[k+1] = x[k] - f[xk] / f'[xk] を繰り返し求めて
収束させる方法。

f(x) = x^2 -3x + 1 なら、
f'(x) = 2x - 3 だから、

x = x - (x^2 - 3x + 1) / (2x - 3) を、xに適当な初期値を入れて
繰り返す。

816 :デフォルトの名無しさん:02/06/13 00:06
>>813
つーか、f(x) = xと、f(x) = (x^2+1)/3 の交点を強引に求めているが、
これって学校の宿題なのか?

817 :デフォルトの名無しさん:02/06/13 00:14
>f'(x) = 2x - 3 だから、

何でこうなるんだ?

818 :デフォルトの名無しさん:02/06/13 00:15
学校の宿題です。

819 :デフォルトの名無しさん:02/06/13 00:18
>817
リア厨?

820 :デフォルトの名無しさん:02/06/13 00:30
>>818
どんな問題か書けよ
何をどう説明すればいいのかわからんだろ
本当に反復法は分かってるのか?


821 :デフォルトの名無しさん:02/06/13 01:48
>>817
微分の事知らないの?

822 :デフォルトの名無しさん:02/06/13 15:02
反復法よくわかっていません。
問題は、「x^2-3 x+1=0の根を少なくとも1つ求めよ。」
です。

823 :木村 キタキタマシーン:02/06/13 16:21
まず、左辺と右辺を入れ替えて考えろ

824 :デフォルトの名無しさん:02/06/13 18:09
.......,,,,.  ,,,,,,.....
-=・=-  -=・=-
   く。
  -=ニ=-    < 解の公式使えばぁ

825 :デフォルトの名無しさん:02/06/13 18:09
マイナスの数が入力されるまでの入力データを使って平均値を求め、個々のデータと平均値の差の2乗和を
表示するプログラムを書きなさい。
//program1
#include <stdio.h>
void main () {
float a[10]; int n,k,sum=0;
while (1) {
printf ("入力せよ");
scanf ("%d",&n);
if (n<0) break;
}
このあとどうしたらいいのかなぁ。平均の求め方がわからないよ。
助けて。

826 :デフォルトの名無しさん:02/06/13 18:35
まず算数の教科書を捜し出せ

827 :デフォルトの名無しさん:02/06/13 19:01
解の公式を使って、プログラムングするのですか?

828 :デフォルトの名無しさん:02/06/13 19:02
プログラミングですね。。

829 :デフォルトの名無しさん:02/06/13 19:09
まず手計算しろ。
そのとき考えたことを全部声に出してそれを録音しておけ。
雑念は捨てろ。ノイズはバグのもとだ。
録音したのをもとにプログラムをつくれ。


830 :デフォルトの名無しさん:02/06/13 23:20
>>825
入力された値を全部足して割ればいいじゃん。(プログラム技術か?)
どうでもいいが、問題で与えられた雛型プログラムのnは、おそらく入力された
データの個数を保持するための変数だと思われ。だからscanfで読んだ値をnに
いれないほうが先生もにっこりすると思うよ。

831 :デフォルトの名無しさん:02/06/13 23:26
つーか、平均と標準偏差だけなら配列はいらん。

832 :デフォルトの名無しさん:02/06/13 23:31
分散は二乗の平均から平均の二乗をひくんでしたっけ?

833 :デフォルトの名無しさん:02/06/13 23:36
そう。だけど>>825は差の二乗和であって分散ではない罠。

834 :デフォルトの名無しさん:02/06/13 23:52
分散って、個々の値から平均を引いたものの二乗和じゃないの?つまり>825

835 :デフォルトの名無しさん:02/06/14 00:00
文字列として読み込まれた16進数字を整数値に変換する関数を作成しなさい。

C言語でプリーズ

836 :デフォルトの名無しさん:02/06/14 00:07
>>832,833
まず分散の定義から。
http://www.geocities.co.jp/Technopolis-Mars/5427/mathtrtop.html

837 :デフォルトの名無しさん:02/06/14 00:08
sscanf(buf, "%x", &hex);

838 :デフォルトの名無しさん:02/06/14 00:08
>>835

char str[128];
int i;

gets(buf);
i = strtol(buf, NULL, 16);

839 :デフォルトの名無しさん:02/06/14 00:10
ウホ?それだけでできてしまうのか????
>>838

840 :デフォルトの名無しさん:02/06/14 00:10
>>838
buf->strの間違いですた

841 :デフォルトの名無しさん:02/06/14 00:11
>>838
問題の要求満たしてないような木がするぞ。

842 :837:02/06/14 00:11
わしのはだめですか?

843 :デフォルトの名無しさん:02/06/14 00:11
>>838
できればint->longにすてくれ。

844 :デフォルトの名無しさん:02/06/14 00:14
合ってるかどうか知らないけど、
質問者にスルーされてる>>837がかわいそうです。

845 :デフォルトの名無しさん:02/06/14 00:18
BASICです。
下のプログラムは、10個の数を順に入力し、
それらの最小値を表示するプログラムである。
(1) 空欄(ア),(イ),(ウ)を埋めよ。
(2) 途中経過を観察するため「165 PRINT M; 」を挿入した。
  順に、「40,30,50,80,20,10,70,90,100,60」を入力したとき、
  行165の出力をすべて答えよ。

100 DIM D(10)
110 FOR I=1 TO 10
120 INPUT D(I)
130 NEXT I
140 M =(ア)
150 FOR I=2 TO 10
160 IF M.>D(I) THEN (イ)
170 NEXT I
180 PRINT ”サイショウチ=”;(ウ)
190 END

さっぱりわかりません。お願いします。

846 :デフォルトの名無しさん:02/06/14 00:20
行番号BASICで仮名は片仮名のみか…
なんでこんな時代錯誤な物が。

847 :デフォルトの名無しさん:02/06/14 00:23
a D(1)
i M = D(I)
u PRINT M

30 30 30 20 10 10 10 10 10

848 :デフォルトの名無しさん:02/06/14 00:24
さっぱりわからんとかこのスレに丸投げしに来るやつら
2chばっかやってっからそうなるんだよ、
自分が落ちこぼれてることを自覚しろよ

849 :デフォルトの名無しさん:02/06/14 00:24
uってPRINTいるの?

850 :デフォルトの名無しさん:02/06/14 00:25
>>835
小文字の'a'〜'f'は自分で作ってちょ。

int mystrtol(const char *str)
{
int tmp = 0;
const char *p;

for (p = str; *p; p++);

do {
p--;
tmp *= 16;
tmp += *p - ((*p <= '9') ? '0' : 'A' - 10);
} while (p != str);

return tmp;
}

851 :845:02/06/14 00:25
有り難うございます。
なぜそうなるのか簡単で結構ですので教えてください。

852 :デフォルトの名無しさん:02/06/14 00:29
>>851
教科書でも読んでおけ

853 :デフォルトの名無しさん:02/06/14 00:31
long xtoi(const char *src)
{
long buf, c;
while (isspace(*src)) src++;
for (buf = 0;isxdigit(*src);src++)
buf = buf * 16 + ((isalpha(c = toupper(*src))?c+10:c) - (isalpha(*src)?'A':'0'));
return buf;
}

854 :853:02/06/14 00:32
ガーン先越されてた

855 :デフォルトの名無しさん:02/06/14 00:36
>>853
わたしゃ貴殿のコードのほうが好きですよ。気を落とされますな。

856 :デフォルトの名無しさん:02/06/14 00:37
>>853
>>850はバグってるから気を落としなさんな。上位と下位が逆になっとる。

857 :デフォルトの名無しさん:02/06/14 00:41
これでどうだ!ってもう遅いか・・・

int mystrtol(const char *str)
{
int tmp = 0;

do {
tmp *= 16;
tmp += toupper(*str) - ((*str <= '9') ? '0' : 'A' - 10);
} while (*++str);

return tmp;
}

858 :デフォルトの名無しさん:02/06/14 00:48
16進数文字以外があったらそこで辞める

long mystrtol(const char *str)
{
static const char * hextable = "0123456789ABCDEF";
long tmp = 0;
const char * p;

while ( (p = strchr(hextable, toupper(*str)) != 0 ) {
tmp = tmp * 16 + (p - hextable);
}

return tmp;
}

859 :デフォルトの名無しさん:02/06/14 00:49
>>858
while内に str++; を書き忘れた

860 :デフォルトの名無しさん:02/06/14 02:32
1から5の総和を求めるやつをつくりたいんですが、どこがまちがってますか?

#include<stdio.h>
int add(int);

void main()
{
add(1);
add(2);
add(3);
add(4);
printf("%d\n",add(5));
}

int add(int n)
{
int sum ;
sum += n;
return (sum);
}

861 :デフォルトの名無しさん:02/06/14 02:35
>860
手っ取り早いのは、int sum;をstatic int sum;にする。

862 :835:02/06/14 02:35
ありがとうございました。。。。
本よんでもなかなかわからんっす(;´д`)

レスおくてれすまそ

863 :860:02/06/14 02:37
ほんとだ・・・すげぇ

なんでこうなるんだろー?
本で調べてみます

864 :デフォルトの名無しさん:02/06/14 03:00
>>834
分散は差の自乗の平均。


865 :デフォルトの名無しさん:02/06/14 03:41
>>851
言語なんてどうでもいいから、最小値を求めるアルゴリズムを
フローチャートで考えてみる(もちろんノートとかに書く)ことから始めろ

>>863
それ以前に、
int sum ;
sum += n;
は激しく間違っている。int sum;の時点でsumにどんな値が入っているかわからない。
よって、返される値もどうなるか分からない。

静的変数でも、static int sum = 0;として初期化しておかなくていいんだっけ?
ANSIは初期化無し静的変数には0を入れるんだっけ?
グローバル変数には0が入るけど・・・

866 :デフォルトの名無しさん:02/06/14 07:53
>>865
static int sum;とした時は、sumは静的領域に取られるので、プログラム開始
の初期化時に0で初期化される。

867 :デフォルトの名無しさん:02/06/14 10:56
>>863
staticじゃない場合、add()に入るたびに新しくsumが作られ
add()から出るさいに解放されるから。


868 :デフォルトの名無しさん:02/06/14 18:44
>>866
フォローさんくす
グローバルだけじゃなく、staticもそうだったか
まあ、初期化した方がわかりやすくていいと思う

869 :683:02/06/15 15:00
int a=1,b;
int *p;
p=&a;
b=*p;

これが意味がよくわかりません!

870 :デフォルトの名無しさん:02/06/15 15:10
int a;
int b;
int* p;
a = 1;
p = &a;
b = *p;
こんな感じで書き直してもわかんないか?
わからなきゃ、ポインタ専門の解説書があるのでそれでも読め。



871 :デフォルトの名無しさん:02/06/15 15:22
aと&aは何が違うんですか?

872 :デフォルトの名無しさん:02/06/15 15:27
>>871
変数と変数のアドレス

873 :デフォルトの名無しさん:02/06/15 15:27
C言語だったら、多分&aはaの格納されているメモリのアドレス。

874 :871:02/06/15 15:29
p=&aとp=aは??

875 :堀越:02/06/15 15:30
yossyan1204@hotmail.com
notori@hotmail.com
↑これで全て解決。

876 :デフォルトの名無しさん:02/06/15 15:30
>>874
pにaのアドレスを代入。
pにaの中身を代入。

宿題か?

877 :871:02/06/15 15:31
なるほど!!
つまり、*pがp=&aなんですね!?

878 :デフォルトの名無しさん:02/06/15 15:31
int a=1, b;
//int型のaとbという名前の変数を宣言(おそらく関数内なので+定義)、aは1で初期化

int *p;
//int型の変数を指すポインタ変数を宣言(同上)

p = &a;
//単項&演算子は右オペランド(要左辺値)のアドレスを与える
//ここでは変数aのアドレス。そしてそれをpに代入

b = *p;
//単項*演算子は右オペランドにあるアドレスに逆参照して値を取り出す
//そしてそれを上で宣言した変数bに代入
//この演算子を使うにはオペランドに任意のポインタ型が必要(ただしvoid*には使えない)

/*逆参照するつうのはそのアドレスを割り振られているメモリの中の値を取り出すこと
bにaの値をコピーしたいとき
p = &a;
b = *p;

b = a;
と実質まったく同じ効果。
変数は甘い文法以外、通常宣言通りに使わなければイクナイ
*/

879 :デフォルトの名無しさん:02/06/15 15:32
おい(w

880 :871:02/06/15 15:32
>>876
宿題の一部を質問してます。
宿題をまるまる書いたら怒られた経験があるので・・・

881 :デフォルトの名無しさん:02/06/15 15:33
>>880
こんなスレに頼ってたら就職できないぞ。

882 :デフォルトの名無しさん:02/06/15 15:34
>874
p = a;
はエラーになる。
pはアドレスを入れる変数。
だから、必ず正の値。
&aもaのアドレスだから必ず正の値。
だから、
p = &a;
はOK
でも、aはint型で負の値を取ることもあるから
p = a;
は不正。
例しにコンパイルしてみろ。


883 :デフォルトの名無しさん:02/06/15 15:36
>>882 君が初心者なのはよーくわかった。

884 :デフォルトの名無しさん:02/06/15 15:37
>>882
>例しにコンパイルしてみろ。

お前もな。


885 :デフォルトの名無しさん:02/06/15 15:40
ネタだとおも痛い

886 :デフォルトの名無しさん:02/06/15 15:40
型が違(省略)

887 :871:02/06/15 15:42
何故、b=aとしないのか・・・

888 :デフォルトの名無しさん:02/06/15 15:47
ポインタを説明するためのコードだから。


889 :882:02/06/15 15:48
>883,884
おれのLSICだとちゃんとWarningがでるけど。
アドレスを入れるべきポインタ変数に、int型のような値を入れても無意味ってことを説明したつもりなんだが。


890 :デフォルトの名無しさん:02/06/15 15:48
>>878
ポインタのメリットがびっくりするくらい伝わらないな。
俺もそう言うサンプルで勉強したから激しく悩んだ。

891 :デフォルトの名無しさん:02/06/15 15:52
>>890
小さなサンプルでポインタのありがたさを伝えるのはムズイね。
せめて関数とか作らないと。

892 :デフォルトの名無しさん:02/06/15 15:52
>>889 根本的にポインタを理解して無いだろ。

> でも、aはint型で負の値を取ることもあるから
> p = a;
> は不正。

なんだこりゃ。正負云々の問題じゃない。

893 :デフォルトの名無しさん:02/06/15 15:54
int *p = &aって

unsigned int p = &aと一緒ってことで良いんですね?

894 :878:02/06/15 15:57
>>890
俺の解説が悪かった?

895 :デフォルトの名無しさん:02/06/15 15:59
>>894
いや、言いがかり。

言ってることは全部正解。

でも、このサンプルには嫌な思い出があるんで。

同じ関数内で変数のエイリアス(語弊あり)を作っても意味無いじゃん。
元の変数そのまま使えば済む話・・・じゃあポインタって何に使うの?
難しいって言うか必要ないじゃん。

的な。

896 :デフォルトの名無しさん:02/06/15 16:00
>>894
君の解説は問題ないかと、元のサンプルが糞かと

897 :882:02/06/15 16:02
初心者はint型 と int *型の違いすら理解してないんだから。
まず正負でポインタの感覚をつかんだ方がわかりやすいと思ったから、ああいう説明にしたんだよ。


898 :871:02/06/15 16:03
結局、よくわからないので、宿題を全部書きます。
一行一行、何をやってるのか解説しないといけないんです・・・

int a=5, b=3, c=2, d=2;
int *p=&a, *q=&b, *r=&c, *s=&d;
d=b;
p=&d;
r=p;
*s=a;
*s=*p;
a=*p;
*p*=*s;


899 :871:02/06/15 16:05
3行目は「dにbを代入する」で、
4行目が「pにdのアドレスを代入」です。
ここで力尽きました・・・


900 :878:02/06/15 16:05
失礼、最後の行
変数は → 識別子は

901 :デフォルトの名無しさん:02/06/15 16:06
>>897
ホントかよ?
あんなむちゃくちゃな説明されたらわかるもんもわからんくなるかと

902 :デフォルトの名無しさん:02/06/15 16:08
初心者の理解を「助ける」ための嘘は比較的発生しがちだけど、わりと
危険なかほりがします

903 :デフォルトの名無しさん:02/06/15 16:10
>>882
アドレスは正だからとか、intが負になることがあるからダメとか
それで何が理解できるんだって感じれす

904 :デフォルトの名無しさん:02/06/15 16:10
>>898
int a=5, b=3, c=2, d=2;
int *p=&a, *q=&b, *r=&c, *s=&d;
d=b; //a=5 b=3 c=2 d=3
p=&d;
r=p;
*s=a;//a=5 b=3 c=2 d=5
*s=*p;//a=5 b=3 c=2 d=5
a=*p;//a=5 b=3 c=2 d=3
*p*=*s;//a=5 b=3 c=2 d=15

905 :882:02/06/15 16:12
>901
893読んでみろよ。
unsigned int とポインタは同じなんじゃないかって893は勘違いしてくれただろ。
ポインタとunsigned int が似ているってのは認めるよな?
sizeも一緒だし、取り得る値の範囲も一緒。
あとは、ポインタとunsigned intの違いを893が理解すればいいんじゃないのか。



906 :デフォルトの名無しさん:02/06/15 16:15
>>905
>ポインタとunsigned int が似ているってのは認めるよな?
unsigned君ですがw。

根本的に違うと思われ。
一緒なのはサイズと取り得る値の範囲だけ。

この部屋は四畳半で、一人でぎゅうぎゅうだ。だからここは便所だ!
と、他人の下宿で用を足すようなもの。

907 :デフォルトの名無しさん:02/06/15 16:17
> pはアドレスを入れる変数。
> だから、必ず正の値。

根拠は?

> でも、aはint型で負の値を取ることもあるから
> p = a;
> は不正。

じゃぁこれは?
signed int i = -10;
unsigned int j = i;


908 :882:02/06/15 16:17
>906
「似ている」って日本語の意味がわからないのか?
同じとは書いてないぞ。



909 :デフォルトの名無しさん:02/06/15 16:19
ポインタとunsignedは言語の実装としては近いかもしれないが、概念的には
非常に遠いと思う。

910 :デフォルトの名無しさん:02/06/15 16:20
悪い方向に勘違いさせといて、

> あとは、ポインタとunsigned intの違いを893が理解すればいいんじゃないのか。

もうダメぽ。

911 :デフォルトの名無しさん:02/06/15 16:20
>>908
「同じ」と「根本的に違う」は反義語。
「似ている」と「根本的に違う」も反義語。




912 :デフォルトの名無しさん:02/06/15 16:32
(´ー`)。o ○(そもそもポインタとunsigned intのどこをどうとって似ているって言うんだろう・・・共通点なんて皆無な気がする・・・)

913 :デフォルトの名無しさん:02/06/15 16:35
>>912
32ビット(語弊あり)で0〜2の32乗-1(語弊あり)の値を表現できるって所じゃないの?

914 :デフォルトの名無しさん:02/06/15 16:38
>>913
unsignedとポインタのサイズが同じって仕様で規定されてたっけ?

915 :デフォルトの名無しさん:02/06/15 16:39
>>914
far。

916 :デフォルトの名無しさん:02/06/15 16:40
>>914
初めからそう言えばこんなに盛り上がらなかったね。
IA-32エンハンスドモードな頭になってるよ〜。

917 :デフォルトの名無しさん:02/06/15 16:40
http://www2.airnet.ne.jp/pak04955/ramble-199912.htm

> ポインタ変数の大きさはintの大きさと同じではない。
> 現状sizeof(int) = 4, sizeof(void*) = 4の環境が多いが,
> 64bit環境ではsizeof(int) = 4, sizeof(void*) = 8となる場合がある。

らすぃ

918 :デフォルトの名無しさん:02/06/15 16:42
(´ー`)。o ○(で、結局ポインタとunsigned intのどこをどうとって似ているって言うんだろう・・・)

919 :デフォルトの名無しさん:02/06/15 16:43
>>918
メモリ上の1領域である。

920 :878:02/06/15 16:44
>>898
int a = 5, b = 3, c = 2, d = 2;
// int型変数 aを5で初期化(以下同じように)

int *p = &a, *q = &b, *r = &c, *s = &d;
// int*型変数 pをaのアドレスで初期化(以下同じように)

d = b;
// 2で初期化したはずの値は使わずにdにbをコピー 次の文からdとbの値は3

p = &d;
// pに&演算子が生み出したdのアドレス(一時オブジェクト)のコピーをコピー
// pはdを指していることになる(初期化に使ったaのアドレスは使われていない)

r = p;
// rにpをコピー rとpは同じのを指すようになる(変数dを)
// 初期化したcのアドレスは使っていない

*s = a;
// sは初期化以来ここまで変更されていない
// つまりsが指しているのはd
// そして逆参照をしてdを取り出しコピー つまり(d = a)と同義

*s = *p;
// 今p、sが各々指しているオブジェクトを取り出し、コピー
// つまり(d = d)

a = *p;
// aにpの指しているものの値をコピー(a = d)

*p *= *s;
// d *= d; こういうことで
// これは左辺式が一度だけ評価されるのを除いて d = d * d; と同じ
// 現在のdの値が5なのでd*dは25、そしてその25を再びdにコピー

921 :デフォルトの名無しさん:02/06/15 16:45
>>919
charとポインタもすごく似てるよね。

922 :デフォルトの名無しさん:02/06/15 16:46
>>921
俺に絡まれても困るんだけどねw


923 :デフォルトの名無しさん:02/06/15 16:49
「昔はアドレスを平気でintに突っ込んでたもんだ (゚Д゚ )y-~~ 」
って雑誌のコラムか何かで見ますた。 ( ´・∀・`) へー

924 :878:02/06/15 16:51
ラストの前2行目
左辺式が一度だけしか評価されないのを除いて

925 :デフォルトの名無しさん:02/06/15 16:57
>>923
Windows上では今でも平気で突っ込んでます
最近はINT_PTRだけど

926 :871:02/06/15 17:13
p=&dというのは、dを代入じゃなく、dのアドレスを代入でいいんですね!

927 :デフォルトの名無しさん:02/06/15 17:15
>>926
大正解。

928 :デフォルトの名無しさん:02/06/15 18:12
>>871
まるでパズルだな
混乱させる為の問題としか思えん

変数名を&で修飾する→ポインタになる
ポインタを*で修飾する→参照先になる
*(&a)はaと同じ
ポインタpに&aが代入されていれば、*p → *(&a) → a ってこと


929 :デフォルトの名無しさん:02/06/15 21:58
>*p *= *s;
間接参照演算子の*と乗算代入演算子の*=を両方出して、わざと紛らわしく書いてるのか。
つーか、その区別をちゃんとできるようにという意図で出題したんだろうと思うが。

930 :デフォルトの名無しさん:02/06/17 18:04
はじめまして。。

 変数 a は実数型であるとする。
 a の値がある特定の値と等しいかどうかの同値判定を行いたい。
 どのように行えばよいかを答えよ。

思いっきり厨房質問なんですが、
聞いてみていいでしょうか。

931 :デフォルトの名無しさん:02/06/17 18:08
abs(b-a)<e

932 :デフォルトの名無しさん:02/06/17 18:09
>>931
Cならfabsじゃないの?

933 :デフォルトの名無しさん:02/06/17 18:10
>>930
マルチ氏ね


934 :デフォルトの名無しさん:02/06/17 18:43
みなさんありがとうございます。
床そうじが回避できそうです。
氏にます。いつか氏にます。

935 :デフォルトの名無しさん:02/06/17 19:27
>>931
a==b
でダメなら、
fabs(a-b)<=e*fabs(a)
かな。これでもまだちょっと危険が残るけど。。。

936 :デフォルトの名無しさん:02/06/17 19:49
Cゲンガーっていまだにfloatメインで使ってるの?

937 :デフォルトの名無しさん:02/06/17 19:51
>>936
あんたは?

938 :デフォルトの名無しさん:02/06/20 00:10
2進16桁を10回連続でキーボードから入力して、入力した順番に16進数で出力するのにはどうしたらいいですか?
for(i = 0; i >= 9; i++ )
{

}
この{}の中が分からないのでお願いします。

939 :デフォルトの名無しさん:02/06/20 00:14
age

940 :デフォルトの名無しさん:02/06/20 00:17
>>938
条件式がいきなり成り立たないがいいのか。

941 :デフォルトの名無しさん:02/06/20 01:15
>>938>>940
ワラタ

942 :デフォルトの名無しさん:02/06/20 01:49
>>938
int BINtoDEC(char *data)
{
int i, result=0, value=1;

for(i=0;i<16;i++)
{
if(data[15-i] != '0')
result += value;
value *= 2;
}
return result;
}

int main(void)
{
char data[10][17];
int i;

for(i=0;i<10;i++)
{
scanf("%s", data[i]);
}


for(i=0;i<10;i++)
{
printf("%d : %s -> %x \n", i, data[i], BINtoDEC(data[i]));
}


return 0;
}


943 :初心者:02/06/20 14:57
得点を次々入力して、もし70以上なら合格、70未満なら不合格とし、
合格人数、不合格人数、受験者合計、最高得点、最低得点、平均点を出力する
プログラムを設計・開発せよ。なお、999が入力されたらループを抜け、
999はカウントしない。

これの最高・最低得点ができません。
お願いします。


944 :デフォルトの名無しさん:02/06/20 15:02
max min という変数を作る。
とりあえず最初の人の得点を入れる。

後は
if (max < 得点) max = 得点;
if (min > 得点) min = 得点;
の繰り返し。

945 :デフォルトの名無しさん:02/06/20 15:07
>>943
最初にいきなり999を入力した場合はどう出力すればいいのですか?

946 :デフォルトの名無しさん:02/06/20 15:08
4個のforループを使い次のように表示してみましょう("|"はShift+\で入力します)。横方向のサイズは20になっていますが、この数はプログラムの最初で変数に代入し後で自由に換えられるようにしてください。
--------------------
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
--------------------

教えてください。全然わかりません。

947 :デフォルトの名無しさん:02/06/20 15:09
--------------------
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
--------------------

946じゃなくてこれです

948 :デフォルトの名無しさん:02/06/20 15:36
>>946

どうぞ

#include <iostream>
#include <string>
#include <list>
#include <iterator>

int main(void)
{
int count = 20;
std::list< std::string > text( 2, std::string( count, '-' ) );
text.insert( ++text.begin(), 10, std::string( "| |" ) );
std::copy( text.begin(), text.end(), std::ostream_iterator<std::string>(std::cout, "\n" ) );

for(;false;)for(;false;)for(;false;)for(;false;);
}

949 :初心者:02/06/20 15:44
>944
サンクスです。できますた
elseとか使ってたので変な結果になってました。

950 :デフォルトの名無しさん:02/06/20 15:45
>>946
#define width 20
#define height 10

int main(void)
{
int i,j;
for(i=0;i<width;i++) printf("-");
printf("\n");
for(j=0;j<height;j++)
{
printf("|");
for(i=0;i<width-2;i++) printf(" ");
printf("|\n");
}
for(i=0;i<width;i++) printf("-");
printf("\n");

return 0;
}



951 :デフォルトの名無しさん:02/06/20 15:52
>>950
仕様を満たしていないので59点

952 :デフォルトの名無しさん:02/06/20 16:01
>>946-947
2chでは、連続した半角スペースは削除される。
行の先頭もまた然り。

953 :デフォルトの名無しさん:02/06/20 17:40
>>948
美しい・・。

954 :デフォルトの名無しさん:02/06/20 19:20
>>948
>for(;false;)for(;false;)for(;false;)for(;false;);
(・∀・)イイ!!
while (0); while (0); if (0);else;
とか書いてみたくなるNE!

955 :ほんまわからん:02/06/20 23:52
文字列として読み込まれた16進数字を整数値に変換する関数を作れ

Cでおながい。
なんか本とか読んでもわからなかったです。

956 :デフォルトの名無しさん:02/06/20 23:54
何回この質問に答えたらいいのよ?

957 :デフォルトの名無しさん:02/06/20 23:55
int hexstr_to_int(const char* hexstr)
{
 return (int)strtol(hexstr, NULL, 16);
}

958 :デフォルトの名無しさん:02/06/21 00:02
int hexstr_to_int(const char* hexstr)
{
int i;
sscanf(hexstr,"%x",&i);
return i;
}


959 :デフォルトの名無しさん:02/06/21 00:05
int hexstr_to_int(const char* hexstr)
{
 return rand();
}

960 :ほんまわからん:02/06/21 00:05
エラーでるんですが・・・w

961 :ほんまわからん:02/06/21 00:08
実行できないぞ、ゴルァ

962 :デフォルトの名無しさん:02/06/21 00:08
このすれの800番台半ばをみたら?

963 :デフォルトの名無しさん:02/06/21 00:10
>>955
同じネタは辞めて。

964 :ほんまわからん:02/06/21 00:28
できないんですが

965 :デフォルトの名無しさん:02/06/21 00:30
できます
両手を合わせて胸の前に置きイエス様の降臨を待ちつづけましょう

966 :デフォルトの名無しさん:02/06/21 00:31
エラーが出るときは、少なくともエラーメッセージを書いてや

967 :ほんまわからん:02/06/21 00:39
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/mondai64.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

です・・・すいません。

968 :デフォルトの名無しさん:02/06/21 00:42
>967
VCかしら?


969 :ほんまわからん:02/06/21 00:45
そうです>968さん

970 :デフォルトの名無しさん:02/06/21 00:45
>>967
main()関数書いてや。

971 :Delphiプロンプト受講者:02/06/21 00:47
Delphi6の宿題なのですが
{$apptype console}
uses sysutils; を最初に入れて

@「ローンを複利で増えると同時に、毎期一定額(最初の借入金の10%)の
返済をした場合、返済し終わるまで何期掛かるかを求めるプログラムを
作成せよ。Loan関数を使用し、利率は3.82%、借入金は10万円とする。」

A「返済条件は@のままで、loan関数をつかって、利率5.43%の場合と利率2.12%
の場合では返済期間に何期の差があるかをこたえなさい。」

の宿題を出されましたが手続きの宣言だの呼び出しだの
変数の設計をしろと既にパンクしています。今更ながらDelphiの壁の厚さに
ぶち当たった、ヘタレ物に指導をお願いいたします



972 :ほんまわからん:02/06/21 00:47
>>970
どこにかけばいいんでしょうか?

973 :デフォルトの名無しさん:02/06/21 00:47
プロジェクトの設定がどこか変なのでは?


974 :デフォルトの名無しさん:02/06/21 00:52
>972
もしかしてソースコード中にmain()書いてないノカ?

975 :ほんまわからん:02/06/21 00:52
もちろんです。
でもどこにかけばいいかわからんです

976 :デフォルトの名無しさん:02/06/21 00:54
とりあえず、コンパイルするソースコードの一番下に書いとき。

977 :デフォルトの名無しさん:02/06/21 00:54
>>975
そこにかけ

978 :ほんまわからん:02/06/21 00:57
わかんないっす・・・泣き

979 :デフォルトの名無しさん:02/06/21 00:57
C言語がまったくわからんということですか?

980 :ほんまわからん:02/06/21 00:59
まったくではなく、いまいち定義関数がわからないんで

981 :デフォルトの名無しさん:02/06/21 01:01
問題のソースコード全文をここに貼ってくだされ。
もう、話だけじゃわからん。

982 :ほんまわからん:02/06/21 01:02
#include<stdio.h>
#include<string.h>

int hexstr_to_int(const char* hexstr)


{
int i;
sscanf(hexstr,"%x",&i);
return i;
}


ども!

983 :デフォルトの名無しさん:02/06/21 01:05
http://www.nozomi.dr.ag/
このサイトを日本語訳してください

984 :デフォルトの名無しさん:02/06/21 01:06
>982
その下に、これを書いてみてよ。

int main(void)
{
  int x;
  
  x = hexstr_to_int("10");
  printf("%d\n", x);

  return 0;
}

985 :ほんまわからん:02/06/21 01:26
できたヽ( ´ー`)ノ
でもリクツがわからんw


986 :デフォルトの名無しさん:02/06/21 01:33
どのへんの理屈がわからんの?

987 :デフォルトの名無しさん:02/06/21 01:33
>>985
かなり落ちこぼれてますね・・・
先生によく教わって下さい

988 :デフォルトの名無しさん:02/06/21 01:34
>>985
とりあえず理屈はさておいて、C言語では一番最初に main() から実行が
始まると言う仕様になっているってことだよ。

989 :デフォルトの名無しさん:02/06/21 01:44
誰か新スレ立ててくれ

990 :デフォルトの名無しさん:02/06/21 01:47
よし、こんどこそ漏れが立てよう。

991 :デフォルトの名無しさん:02/06/21 02:00
新スレ立てました〜速やかな移行をおながいします(^▽^)

ほう、宿題とはな。
http://pc.2ch.net/test/read.cgi/tech/1024592344/

992 :デフォルトの名無しさん:02/06/21 02:05
>>991
スレ立てお疲れ

993 : ◆6obdUsOA :02/06/21 02:17
test

994 :デフォルトの名無しさん:02/06/21 02:28


995 :デフォルトの名無しさん:02/06/21 02:29


996 :デフォルトの名無しさん:02/06/21 02:30


997 :デフォルトの名無しさん:02/06/21 02:33


998 :デフォルトの名無しさん:02/06/21 02:34


999 :デフォルトの名無しさん:02/06/21 02:34
999?

1000 :1000:02/06/21 02:35
              ∧            ∧
              / ・           / ';,
             /  ';          /  ';  1000 ワショーイ…
             /   ;______/   ;
          /                  \
         /    /          \     \
        /´   (  ) |____|  (  )      |
       |  /////  (  |     :|    )  /////    |
       |    (   ) :|      |  (   (       |
        |    )  (  |     |   )   )      |
        |   (   ) ';    /   (   (     /
         \  )  (   \/    )   )  ../
           ヽ              ........:::



1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

236 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)