トップページ⇒tech
1001コメント289KB

あらあら、宿題なのね?

レス数が1000を超えています。これ以上書き込みはできません。
0001お母さんNGNG
麻衣の母、美砂子です。
宿題、判らないところがあったら、遠慮しないで聞いてくださいね。

えれなちゃんの前スレはこちら、
宿題、手伝おっか?
http://pc.2ch.net/test/read.cgi/tech/1011722640/
キーワードがわかっていれば、googleで探しましょうね。
http://www.google.co.jp/
0002デフォルトの名無しさんNGNG
>>3-1000
落第。
0003デフォルトの名無しさんNGNG
       ∧_∧
      ( ´Д`) 
     /    \
  __| | 落第 | |__
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0004デフォルトの名無しさんNGNG
落第・・・(´・ω・`)ショボーン
0005デフォルトの名無しさんNGNG

 ママ〜 プログラム教えて〜
 \__  ______
      ∨    ∧_∧
           " ,  、 ミ   / ̄ ̄ ̄ ̄ ̄
            ゝ∀ く  < あらあら、宿題なのね?
           ∧_∧  |   \_____
        三  (    とノ
      三   /   つ |
     三  _ ( _  /|  |
        (_ソ(_ソ(_ )
0006デフォルトの名無しさんNGNG
Σ(゚д゚lll)ガーン

・・・・ラクダイ
0007デフォルトの名無しさんNGNG
>>5
(・∀・)イイ!
0008かおりん祭り ◆KAORinK6 NGNG
〜oノハヽo〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ^▽^) < 新スレおめでとうございまーす♪ 
= ⊂   )   \_______
= (__/"(__) トテテテ...

0009デフォルトの名無しさんNGNG
Σ(゚Д゚)
0010デフォルトの名無しさんNGNG
明日の朝までにCの初心者向けの宿題を作らなきゃならないんで
よろしくお願いします。何か無い?
0011デフォルトの名無しさんNGNG
「スタックオーバーフローを起こすプログラムを作りなさい」
0012デフォルトの名無しさんNGNG
>>11
int main()
{
main();

return 0;
}
0013デフォルトの名無しさんNGNG
main()
{main();}
0014デフォルトの名無しさんNGNG
>>11は>>10あて
0015デフォルトの名無しさんNGNG
「スタックオーバーフローを引き起こすプログラムを鯖で実行したらどうなるか説明しなさい」
0016デフォルトの名無しさんNGNG
>>15
スタックがオーバーフローする。
0017デフォルトの名無しさんNGNG
たしかに
0018デフォルトの名無しさんNGNG
セグメント違反で落ちる。かも。
0019デフォルトの名無しさんNGNG
つぅかサーバに依存。
0020デフォルトの名無しさんNGNG
>>10 生徒にかわぃぃ子はいますか
0021デフォルトの名無しさんNGNG
>>10
自分自身を表示するプログラムというのは?
0022デフォルトの名無しさんNGNG
>>20
それ。それ重要。
0023デフォルトの名無しさんNGNG
       ∧_∧
       ( ´Д` ) < >>10!>>20の質問に答へろ!
      /,  /
     (ぃ9  |
002410NGNG
ぁゃιぃ子ならいます。
0025デフォルトの名無しさんNGNG
        ∧_∧
       /⌒ヽ )
      i三 ∪ ソウカ・・・
       |三 |
      (/~∪
     三三
0026デフォルトの名無しさんNGNG
ワラタ
0027デフォルトの名無しさんNGNG
>>21
それはいわゆる自己印刷プログラムではなくて、
生徒の自画像を表示させるのですか?
0028デフォルトの名無しさんNGNG
>>8
新スレ荒らしがこの板にもΣ(゚Д゚)
0029デフォルトの名無しさんNGNG
かおりんがプログラム板−>monazillaプロジェクト−>ツール開発−>新スレ発見率70%アップ−>しかし自動化された作業にむなしさを覚える−>マズー
0030デフォルトの名無しさんNGNG
宿題作りか・・・、そういや大学時代、作成と採点やらされたなぁ・・・
0031怜NGNG
私も採点やらされてるわ・・・・
0032デフォルトの名無しさんNGNG
怜たんはいつぞやのスレのお兄ちゃんのようなのが好みなのかい?
0033怜NGNG
今、喧嘩中でね・・・・・
0034デフォルトの名無しさんNGNG
Lispの宿題です。次のような問題です。
1。リストpと自然数nを引数として、pのうち最初のn個の要素を除いた
リストを返す関数lowerを定義せよ。
2。リストpと自然数nを引数として、pのうち最初のn個の要素をもった
リストを返す関数upperを定義せよ。
Cではないですが、よろしくおねがいいたします。
0035デフォルトの名無しさんNGNG
>>33
ソウナノカ・・・
0036デフォルトの名無しさんNGNG
(defun lower (p n) (subseq p n))
(defun upper (p n) (subseq p 0 (1- n)))
0037お母さんNGNG
>>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 の部分
(シャレじゃないのよ)が、ちょっとだけ複雑になるかしら。

わからなかったら、またいらっしゃいね。
003834NGNG
>>36様
>>37お母様
ありがとうございます。もう少し考えてみます。
0039デフォルトの名無しさんNGNG
学校の宿題で、
入力として文字列が与えられ
それをもとに木をつくれとの事なのですが
どのようにすればいいのでしょうか?
文字列の解析の仕方は既に友人に教えてもらいました。
それと、当方プログラム歴3日です。
ソースコードを提出するので、動きそうであればいいのですが。


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

言語はVBでお願いします
0040デフォルトの名無しさんNGNG
すげぇお母ちゃんだな!
こんなお母ちゃんいたらいいのにな・・・
0041デフォルトの名無しさんNGNG
 ママン〜 抱っこ〜
 \__  ______
      ∨    ∧_∧
           " ,  、 ミ   / ̄ ̄ ̄ ̄ ̄
            ゝ∀ く  < あらあら、宿題を教えて欲しいのね
           ∧_∧  |   \_____
        三  (    とノ
      三   /   つ |
     三  _ ( _  /|  |
        (_ソ(_ソ(_ )
0042デフォルトの名無しさんNGNG
宿題おねがいします。

エンロンの破綻について、
「コーポレートガバナンス」「マネーゲーム」の語句を使い
A4用紙2枚程度にまとめよ。
004342NGNG
>>39
VBで木?Cならできるけど・・・
とりあえず、ノードの構造体を作る。ノードは右と左の子へのポインタを持っていて、
その子もさらに子へのポインタを持っている。
NULLなら子はない。
キミの宿題なら、「ポーランド記法」なんかを検索してみるといいかもよ。

それとも俺の宿題と交換するかい?
0044デフォルトの名無しさんNGNG
>>43
親へのポインタももっておいた方がよくない?
二分木検索とかならいらないけど。
0045デフォルトの名無しさんNGNG
なんか簡単なコードは無いでしょうか?
0046デフォルトの名無しさんNGNG
>>39
プログラミング歴3日でいきなり言語のパーサーをつくれとか、そういうことなのかな(-_-;)
0047デフォルトの名無しさんNGNG
VBって、メモリの動的割り当てできるの?
0048デフォルトの名無しさんNGNG
>>47

b=30

dim a(b) as integer
0049デフォルトの名無しさんNGNG
struct node
{
  node* left,right,parent;
  char* str;
};
0050デフォルトの名無しさんNGNG
レポート作成のぱたーんらんげーじ
42<<
yhaooかgoogleで下の2つを検索。いくつかの文書をコピペ。
エンロン コーポレートガバナンス
エンロン マネーゲーム
005149NGNG
まちがえた。
node *left,*right,*parent;
だな。
0052デフォルトの名無しさんNGNG
>>49
エラー
005352NGNG
>>51
それもエラー
005449NGNG
struct node *left,*right,*parent;

これでいい?ベターCなのね・・
0055デフォルトの名無しさんNGNG
>>12-13
C++ではmain関数を再帰呼び出しすることが出来ませんって言われました。
0056デフォルトの名無しさんNGNG
>>55
C++なんて使うな。
0057デフォルトの名無しさんNGNG
>>55
じゃあ速攻で違う関数よびなされ。
0058デフォルトの名無しさんNGNG
n個の値 a[0]、a[1]、a[2]、a[n-1]が与えられている時、
a[i]の順位rを求める。
順位は自分より大きいものの個数+1

どういうことですか?
0059デフォルトの名無しさんNGNG
58 書いてあるとおりです。
0060デフォルトの名無しさんNGNG
>>58
a[0] 〜 a[i - 1]とa[i + 1] 〜 a[n - 1]までのうちa[i]より大きいものの個数を
数え、それに+1する。それで終わり。
0061デフォルトの名無しさんNGNG
>>60
a[0] 〜 a[i - 1]とa[i + 1] 〜 a[n - 1]なんてややこしいことしなくても、
a[0] 〜 a[n - 1] でOK。
a[i] > a[i] は成り立たないに決まってる。
0062デフォルトの名無しさんNGNG
バイオリズムで、身体・感情・知性が誕生日からそれぞれ周期23日・28にち・33日の正弦波に従うとき、今日の日付け(たとえば2002/5/10)と生年月日を入力したら、身体・感情・知性のそれぞれの要注意日を出力するプログラムを作りなさい。

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

おながいします。
0063デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1021034822/236-239
0064棄教者 ◆witdLTi2 NGNG
>>39
Bison/Flexを使え

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

sentence
: shubu jutsubu PERIOD
;

shubu
: keiyoushi meishi
;

...
%%
って構文規則を記述すれば簡単に構文木を生成してくれるYO!
0065デフォルトの名無しさんNGNG
Pascalの質問です。
program jyou(input, output);
var a: integer;
begin
read(a);
a:=a*a*a*a*a;
writeLn(a)
end.
これでaの5乗が求められるはずなんですが…
aには整数が入ります。
0066デフォルトの名無しさんNGNG
>>65
で、答えはなんて出るのさ?
006765NGNG
これはサンプルでこれでちゃんと答えはちゃんと正しい答えがでます。
しかしスマートでないような…
とにかく入力されたaの17乗を求められるスマートな方法はありませんか?
0068デフォルトの名無しさんNGNG
>>67
ループじゃだめなのか?
0069デフォルトの名無しさんNGNG
>>65
再帰関数でも書け。
007065NGNG
すみません。たとえばどうのように書くのですか?
0071デフォルトの名無しさんNGNG
( ´3`)ムーン
0072デフォルトの名無しさんNGNG
>>67
>>65のどこから17って数字が出てくるんだよ。まあいいや。
b := a*a*a*a;
a := b*b*b*b*a;
WriteLn(a);
これでいいだろ。
0073デフォルトの名無しさんNGNG
( ´3`)怜たんキスしよう・・・
007465NGNG
どうもお騒がせしました。
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って数字が出てくるんだよ。まあいいや。
それは…宿題だからです。(爆)
0075怜NGNG
(>>73に反応して登場)
....さて、次の問題はないかな?
0076デフォルトの名無しさんNGNG
0以上9以下の整数をランダムにキーボードから入力するとき、全ての整数が少なくとも1回入力された時点でアラートを鳴らし、総入力回数を出力するプログラムを作成せよ
0077デフォルトの名無しさんNGNG
>>76
10個のBYTE配列用意。

文字は打ち込まれるたびに対応する配列要素をインクリメント。
配列を走査してすべてのフラグが立っていたらアラートならして
配列のΣ取って表示。
0078デフォルトの名無しさんNGNG
>>77
何故に BYTE 配列 ? 全ての正数が入力される前に特定の数字が 256 回
以上入力されたらダメじゃん。メモリも安くなったんだから、long に
しとけ。
0079デフォルトの名無しさんNGNG
>>78
ごめん、BYTEは忘れて。血迷った。
いや、配列は純粋にフラグにして別の変数で合計数えようかな〜って迷いながら書いてたから・・・。
0080デフォルトの名無しさんNGNG
size_t check ( int i ) {
 static int flag ;
 static size_t n ;
 n++ ;
 return ( ( flag |= ( 1 << i ) ) < 0x03ff ) ? 0 : n ;
}
後は自分で頑張ってね
0081デフォルトの名無しさんNGNG
C言語でおねがいします・・・
配列は頭ではわかるんですが、プログラムの組み方がわかりません(泣)
0082デフォルトの名無しさんNGNG
あげ
0083怜NGNG
>>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++;
 }

 /* アラートを鳴らし、総入力回数を出力する */
 (略)
}
0084デフォルトの名無しさんNGNG
なるほど・・・ありがとうございます。
考えてみます。
できたら報告します。
0085なんで無理?NGNG
#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);
}
0086デフォルトの名無しさんNGNG
n=9
0087デフォルトの名無しさんNGNG
n=n;

無駄なコードハケーン。
0088なんで無理?NGNG
10にしても無理でした・・・
なんか何回入力してもつづくのですが・・・
0089デフォルトの名無しさんNGNG
あのね。。。。
代入してるよ。。。
0090デフォルトの名無しさんNGNG
n = 9
は
( n = 9 ) != 0
0091デフォルトの名無しさんNGNG
永遠ループハケーン!!!
0092デフォルトの名無しさんNGNG
while((n=9)!=0)
にしても無理でしたって言いそうだな…
0093なんで無理?NGNG
わからん。
おれってあほすぎ・・・鬱
0094デフォルトの名無しさんNGNG
ぜひ言ってほしい
0095デフォルトの名無しさんNGNG
代入文と比較は違うものだと思ってください。
そうすれば答えは出てきます。
0096なんで無理?NGNG
くそう・・・上手い具合にヒントをくれるぜ。
しかし、わからんおれには意味不明(泣)
0097デフォルトの名無しさんNGNG
今度は、1回で終わってしまいますってか?
0098なんで無理?NGNG
何が無限ループなんだ?いみわかんねぇ・・・
あと(n=9)!=0も??
0099デフォルトの名無しさんNGNG
>>96
この面白さを共有できないのは残念
0100デフォルトの名無しさんNGNG
永遠ループあげ
0101デフォルトの名無しさんNGNG
永遠ループ・・・TTSを思い出すぜ・・・
0102デフォルトの名無しさんNGNG
http://ime.nu/pc.2ch.net/test/read.cgi/tech/1020785918/102
0103デフォルトの名無しさんNGNG
elseの書き方もちょっと素敵。
こんどマネして周りを混乱させてみよう。
0104デフォルトの名無しさんNGNG
つーか、マジで分からんのか?
0105デフォルトの名無しさんNGNG
elseすげぇ!
思わず超え出して笑った!
0106デフォルトの名無しさんNGNG
本読みゃ終わるような単純知識で調子に乗って煽るなって。
なんか激しく馬鹿みたいだぞ。
0107デフォルトの名無しさんNGNG
永遠ループをいつまでも引っ張るのは確かに馬鹿っぽいが、
このelseを見て感動しないやつはプログラマじゃない
0108デフォルトの名無しさんNGNG
神のコードを書く男出現。
0109デフォルトの名無しさんNGNG
まあ、能力の低い奴はそれよりもさらに低い奴を馬鹿にすることでバランスを
取ってるのはワカルケドサ(藁
0110デフォルトの名無しさんNGNG
どうでもいいが、>>85はなぜcheckをcheにしたんだろう……。
0111なんで無理?NGNG
ネタにここまでくらいついてくるとは・・・バカはバカだなw
0112デフォルトの名無しさんNGNG
>>110
区分をkbnにする癖が抜けていなかった。
0113デフォルトの名無しさんNGNG
ネタにしちゃやけにバグだらけだな。
0114デフォルトの名無しさんNGNG
ネタであのelseが書けるやつにならつられても後悔しないぜ
0115デフォルトの名無しさんNGNG
コンパイラのエラーが出なくなった時の「やったぜ」って顔が見たい>else()の後の;
0116デフォルトの名無しさんNGNG
あり?コンパイルは通るかと思ったけど?
0117デフォルトの名無しさんNGNG
>>115はC初心者
0118デフォルトの名無しさんNGNG
>>85 >>115 晒しage(w
0119115NGNG
else(exper){ は { の前でparse errorになるだろ、で、悩んだあげく ; つけたら
コンパイル通っておおよろこび、ってこった。
そのぐらい想像できないやつは(以下略)
0120116NGNG
>>119
あ、確かに・・・
すみませんでした(TдT)

コンパイラに「;が必要です」とか言われたんで
指示どおり;付けたんだね。きっと。
0121デフォルトの名無しさんNGNG
>>117-118を晒しsage
0122デフォルトの名無しさんNGNG
まとめて晒しage
0123デフォルトの名無しさんNGNG
コンパイラはプログラマよりアホである。
なぜならプログラマより賢いとプログラマがいらなくなってしまうからである。
0124デフォルトの名無しさんNGNG
1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください.
こまってます
0125デフォルトの名無しさんNGNG
本気で回線切って首吊れ
0126デフォルトの名無しさんNGNG
こぴぺもうざい。
0127デフォルトの名無しさんNGNG
粘着質
0128デフォルトの名無しさんNGNG
>>124
まず自分がどう思っているかを挙げよ。
そして宿題ができないとどうなるか述べよ。
話はそれからだ。
0129デフォルトの名無しさんNGNG
>>123
そうか?レジスタ配置なんぞ芸術だぞ。
よく言われるコンピュータとユーザの違いじゃないの?
0130デフォルトの名無しさんNGNG
てごわいと思ってる。宿題忘れになる
0131デフォルトの名無しさんNGNG
はやくおしえろ
0132デフォルトの名無しさんNGNG
この世界でしか相手にされないんだから、たのむよ。これが終わったらもうこねーからよ
0133デフォルトの名無しさんNGNG
>129
じゃ、キミはコンパイラより仕事してないって事でいいか?

文字列閉じ忘れ時のエラーメッセージは「アホやなー」とか思うな。
0134デフォルトの名無しさんNGNG
彼女がこまってんだよー
0135デフォルトの名無しさんNGNG
まったく粘着質だなー
0136デフォルトの名無しさんNGNG
まだかよー
0137デフォルトの名無しさんNGNG
>>133
コンパイラにソースいじられるくらいなら自分で直した方がまし。

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

とかがお好み?
0138デフォルトの名無しさんNGNG
おまえらいいかげんにしろ!はやくおしえろ!
0139デフォルトの名無しさんNGNG
まあ俺はVCを勧めるがな
0140デフォルトの名無しさんNGNG
shukudaihayakuosiero
0141デフォルトの名無しさんNGNG
俺が相手してやるからよー、ひきこもりなんだろ?
0142マルチ死すべしNGNG
ここまでやったら絶対にここの住人は答えません。
おまえ歳はいくつだ。と。
常識をわきまえろ。と。

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

というのと同じような行為。
これでもオッケーならおまえは精神異常者。
とにかく回線切って首吊れ。
0143デフォルトの名無しさんNGNG
>>142
夢みたいだな
0144これでスレ立てたら祭りケテーイなんだがNGNG
彼女に聞かれて分からないといえない立場におまえはない。
その程度の頭脳のやつなら彼女も期待してないよ。

もし期待してたら彼女もパープリン(w
ってことだ。
0145デフォルトの名無しさんNGNG
実際にあったら、142はこんなこと人に言えない奴なんだろーなー。
実際にあってみて−よ、どうせもやしっこなんだろーな
0146デフォルトの名無しさんNGNG
>>124
利用されていることに気付け


===========================ゴミが涌くので終了===============================
0147デフォルトの名無しさんNGNG
>>124
>1変数のマイナス演算子と1変数のマイナス演算子との異なる点を挙げよ。
>っていう問題を教えてください.
>こまってます

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

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

#もう来るな

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

間違った訂正
0149デフォルトの名無しさんNGNG
>>148
マジレスすんな氏ね
放置でいいんだよこういう厨房は
0150デフォルトの名無しさんNGNG
プログラマはいつでもコンパイラに勝てる。
なぜならプログラマはコンパイラの出すコードを見て
改良すれば良いから。
0151デフォルトの名無しさんNGNG
>>150
それが面倒だからみんなコンパイラに頼るのさ。
0152デフォルトの名無しさんNGNG
>>151
ニヒルだね。
0153デフォルトの名無しさんNGNG
ニヒルって、意訳すると「不気味カッコイイ」だよね?
0154デフォルトの名無しさんNGNG
>>151
ダンディだね。
0155デフォルトの名無しさんNGNG
>>154
俺も思った。
もっとも、俺は再放送世代だがね。
0156デフォルトの名無しさんNGNG
>85
代入する時は
 n = 3;
比較する時は
 n == 3;

if文は
 if(〜){
  ;
 }else if(〜){
  ;
 }
0157デフォルトの名無しさんNGNG
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進数に直す問題なんですが・・・
お願いします・・・


0158デフォルトの名無しさんNGNG
>>157
S1.vってなんだよコ゛ラァ
nonterminalにもterminalにもS1ってねーじゃねえか。
0159デフォルトの名無しさんNGNG
>>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
と同じことなんです。まぎらわしくかいてすいませんでした。
お願いします・・・

0160デフォルトの名無しさんNGNG
ずれてる・・・
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のところが何を意味してるのかわかりません。
ご教授おねがいします。
0161デフォルトの名無しさんNGNG
>>159
0162デフォルトの名無しさんNGNG
>>160
0163デフォルトの名無しさんNGNG
>>161-162
おまえらこれくらい脳内で補完して読めよな
0164デフォルトの名無しさんNGNG
>137
いいねーそれ。詳細表示ができたりするともっといいねぇ。

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

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

0165デフォルトの名無しさんNGNG
>>160
オレにもよくわからん。
http://watalab.cs.uec.ac.jp/OBandG/fukuda/semi/attr.htm
このへん、参考になるかね。
0166デフォルトの名無しさんNGNG
構文木?
なんにしても難しい質問が来たもんだ・・・
0167デフォルトの名無しさんNGNG
ドラゴン・ブックとかかなぁ。そういうのは。
0168デフォルトの名無しさんNGNG
ドラゴンブックねあったねー
友達の少しみたことあるけど
まったくわからんかった。
コンパイラの勉強とはむずかしいのう
0169デフォルトの名無しさんNGNG
あるクラスオブジェクトへのポインタ
CClass* pClassObj1;
CClass* pClassObj2;
を参照でなく値渡し(メモリの別の場所に)コピーしたいのですが、
*pClassObj1 = *pClassObj2;
でコピーできるのでしょうか?

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

よろしくお願いします
0170デフォルトの名無しさんNGNG
> ClassObj1とClassObj2が同じのもを指し示してしまうと聞いたのですが

C++ならがせネタ。
ってか宿題なのか?
0171怜NGNG
>>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
コピーコンストラクタとか、その周りは理解してる?
0172怜NGNG
 んー、よく見たらLR(K) Methodとか書いてあるね・・。これ解釈一通りし
かなさげだけど、適当な事いってそう。あとで調べてみるから、ちょっと無
視してくれると嬉しいな。
0173デフォルトの名無しさんNGNG
ハァハァ・・・レイたん(;´Д`)
0174阿呆NGNG
マージソートの併合部分、つまりあらかじめ昇順にソートされた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という大きさは仮です。
それ以外に方法が思いつかなかったので…
夜にまた来ますのでよろしければ誰か教えてください…
0175デフォルトの名無しさんNGNG
>>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で戻すように
した方が楽だと思う。
0176デフォルトの名無しさんNGNG
>>172
Margeをmergeに変えれば動くかも。

あと、配列は2つ引数で与えて1つ返すようにしろ。
それから、実数を扱うのに整数配列使うな。
0177176NGNG
>>172じゃなくて>>174
0178デフォルトの名無しさんNGNG
>>174はクイックソートとマージソートをごっちゃにしてると思われる。
0179デフォルトの名無しさんNGNG
その文法は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
と同じことなんでしょ?


0180デフォルトの名無しさんNGNG
うん
0181阿呆NGNG
>>176
マージのスペルミスは皮肉と受け取っておきます…
すいません、でも
>あと、配列は2つ引数で与えて1つ返すようにしろ。
ここの意味がよくわかりません。
とりあえず配列はdoubleで宣言したほうがいいんですね?
0182阿呆NGNG
>>>178
クイックソートって基準値より上か下かでソートするやつですよね?
いちおうそれとは区別してプログラムしたんですけど…
0183デフォルトの名無しさんNGNG
>>182
>クイックソートって基準値より上か下かでソートするやつですよね?
50点。
0184デフォルトの名無しさんNGNG
>>181
マージソートとはどういうことか説明してみ
0185阿呆NGNG
>>184
うーん、データ列を分割してそれぞれソートしてから
併合してソートする方法?
なんか日本語おかしいような…
0186デフォルトの名無しさんNGNG
>>185
まず教科書読み直せ(笑)
0187デフォルトの名無しさんNGNG
別名勝ち抜き選手権ソート。
0188デフォルトの名無しさんNGNG
>>185
仕様もわからんと作り出してはいかん。
0189阿呆NGNG
>>186
えぇ!?そんなに的はずれなこと言ってますかね?(;´Д`)
そういえば授業でも”トーナメント法”とか言ってましたね。
ちなみに>>174はマージソート全部じゃないですよ。
併合部分だけプログラムしてくる宿題なんです。
0190デフォルトの名無しさんNGNG
>>189
なんだかなあ(´д`;)
その併合部分だけをマージソートっていうんだよ。
0191阿呆NGNG
>>190
??
教科書によると
「データ列を複数のデータ列に分割し、個々のデータ列を整列し、併合する物」
とありますが…
0192デフォルトの名無しさんNGNG
>>191
それであってるよ
阿呆は>>190
0193デフォルトの名無しさんNGNG
そだね、ソートしてない物をマージしても良い結果は出ない。
0194デフォルトの名無しさんNGNG
しまった、墓穴
0195デフォルトの名無しさんNGNG
要素長1の列は常に整列済みとみなせる。
あとは倍々ゲームで元のデータ全体に達するまで併合すりゃできあがりっしょ
0196デフォルトの名無しさんNGNG
typedef struct {
    int year;
    int month;
    int day;
} BirthDay;

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

// ↑こんなデータを併合してソートするんじゃないの?
0197阿呆NGNG
今、とりあえず配列宣言をdoubleにしてみたらいちおう動きました。
ただ、結果が
「1 2 3 4 5 6 7 8 2 4」
になってしまいました。
for文を抜けるとこのhの値は初期化されてしまうんですかね?

あと配列Bの大きさのよい宣言の仕方を教えてください…
0198デフォルトの名無しさんNGNG
>>195
バブルソートのようなにおいがするソート。
0199デフォルトの名無しさんNGNG
>>195
要素長1まで分割しちゃったらバブルソートのオーダと同じになってしまわないか?
間違ってたらスマソ
0200デフォルトの名無しさんNGNG
わかってるつもりの事って意外とわかってないもんだな…
この程度の宿題に少しとまどってしまった俺…
0201デフォルトの名無しさんNGNG
>>199
倍々ゲーム( 1+1 → 2+2 → 4+4 と処理 )なので O(n log n) でしょ
0202デフォルトの名無しさんNGNG
>>201
クイックソート並みに効率が良いことに・・・。
0203199NGNG
>>201
その通りですね。
やっぱ間違いでした。スマソ
0204デフォルトの名無しさんNGNG
>>200
全くだ…
0205デフォルトの名無しさんNGNG
みんな>>174を考え中?
0206デフォルトの名無しさんNGNG
>>205
面倒だからやらないだけです
0207デフォルトの名無しさんNGNG
>>205
違う。TOTOで一等とる方法。
0208阿呆NGNG
>>206
そこをなんとか
0209デフォルトの名無しさんNGNG
>>207
3^13
0210デフォルトの名無しさんNGNG
>>199
マージ1段階がO(n)で、log{2}n 段だから、全部でO(n*log n)だよー
クイックソートやヒープソートと同じオーダーだよー
0211デフォルトの名無しさんNGNG
>>174 のコードは面倒だから追ってないが、
倍々ゲームにするなら、再起または2重ループが必要だが
どっちにもなってないから駄目なんじゃないか、と適当に言ってみる。
0212210NGNG
思いっきり出遅れた…鬱出汁脳
0213デフォルトの名無しさんNGNG
>>211
>>174は併合部分だけらしいから再帰は必要ないでしょ
0214デフォルトの名無しさんNGNG
併合部分だけなら、テスト入力データは整列済みの2列になってないといかんのでは。
0215デフォルトの名無しさんNGNG
配列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);
 }
}
と書ける。(コピーしないですむ方法あるのかな。)
0216デフォルトの名無しさんNGNG
おいおい。クイックソートのオーダーはO(n^2)だぞ。
O(・)は最悪時の場合をいうことに注意.
0217阿呆NGNG
>>214
配列A[i〜j]の整列済みのデータは
一次元配列Aのi〜mdlまでとmdl+1〜jまでに
分けて入れられていることになってるんです
0218阿呆NGNG
>>215
>配列aにn1個, bにn2個のソートされた要素が
>入っているとする。それをマージしてcにn1+n2個のソートされた
>配列を入れる関数
>void merge(double a[], int n1, double b[], int n2, double c[])
>があるとする

「あるとする」で良ければ俺の宿題もすぐ終わるんですけどね…
0219デフォルトの名無しさんNGNG
>>215
>  double c[n];
これってC99?
0220デフォルトの名無しさんNGNG
>>215
>>174はそのmergeを作る宿題なんじゃないのか?
0221阿呆NGNG
若干手直ししてみました。

#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文中でインクリメントした値は
ループを抜けるとその初期化されてしまうんでしょうか?
0222デフォルトの名無しさんNGNG
>>阿呆
じゃあ仕様をもう少し考えろや
引数が配列1個じゃどうしようもないことを
説明してやってるってのによ。

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

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

>>219
21世紀になってC99でないC使ってる原人は氏ね。
バカ。もう知らないから!
0223デフォルトの名無しさんNGNG
>>阿呆

質問したのなら人の話を少しは聞け…(泣
0224阿呆NGNG
>>222
すいません、引数に使う配列は1コという指定なんですよ…
mdlはデータ列の真ん中の値のことです。
プログラムを見ればわかっていただけたかもしれませんが
最初に説明するべきでした。
いろいろ説明不足で大変申し訳ありません。
0225阿呆NGNG
>>223
すいません、
どれかレスが漏れてしまったでしょうか?
僕なりに反芻して取り入れているつもりです。
質問者の立場でありながら度重なる失礼、まことに恐れ入ります…
0226デフォルトの名無しさんNGNG
>>222
どうどう

>>225
まぁこういう業種の人たちは気むずかしい人が多いから…
>オレモナー
0227デフォルトの名無しさんNGNG
本当に阿呆だな
0228219NGNG
>>222
(´・ω・`)ショボーン
0229デフォルトの名無しさんNGNG
>>222
別に引数に使う配列は1コでも大丈夫でしょ。
コピーする配列は関数内で定義すればいいんだし。
事実、>>221でほとんど出来てる
0230デフォルトの名無しさんNGNG
まぁプログラムに「これが絶対の正解」というのはないからな。
より最適なものを作り出すのが俺たちの仕事なわけだから。
0231219NGNG
>>221
hにjを代入してるねー
0232デフォルトの名無しさんNGNG
>>231
!!
そうでした!
比較の場合は”==”ですよね!
あーこれでようやく完成です。
こんなくだらない宿題につき合ってくださったみなさん、
本当にありがとうございました!
0233阿呆NGNG
>>232=僕です。
本当にどうもです!>ALL
0234デフォルトの名無しさんNGNG
>>232
がんばれよ、プログラマの卵
0235デフォルトの名無しさんNGNG
        /⌒彡
        /冫、 )
        / `  ∩ ))
    (( (つ  丿
      ( ヽノ
      し(_)
0236豆。NGNG
C言語なんですけど、1〜10までの数字の総和、平均、最大値、最小値を
求めるプログラムが宿題で出てるんですけど、教えてくれませんか?
0237デフォルトの名無しさんNGNG
>>236
大学生だろ?それくらい自分で書いてくれ。
0238デフォルトの名無しさんNGNG
>>236
void main()
{
printf("1から10間での総和は 55 です。\n");
printf("1から10間での平均は 5.5 です。\n");
printf("1から10間での最大値はは 10 です。\n");
printf("1から10間での最小値は 1 です。\n");

}
0239デフォルトの名無しさんNGNG
肝心な関数のところが書かれてないなんて素敵
0240デフォルトの名無しさんNGNG
>>239
コンパイルしちゃえば取りあえずはばれない。
0241デフォルトの名無しさんNGNG
バイナリを見ると大抵テキストはそのまま見える
0242デフォルトの名無しさんNGNG
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");
0243デフォルトの名無しさんNGNG
>>236
全部定数やん
0244デフォルトの名無しさんNGNG
>>243
>>238見てから反省して下さい。
0245こんなかんじでどうよ?NGNG
#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;
}


0246こんなかんじでどうよ?NGNG
// 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);
}
0247こんなかんじでどうよ?NGNG

/* 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 */
}

0248219NGNG
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に展開された。
0249デフォルトの名無しさんNGNG
>>248
ぜひ
T*(1+T)/2
を使用してください
0250219NGNG
>>249
いや、あえてアホなことを面倒な方法でやってみただけ(w
0251デフォルトの名無しさんNGNG
<>
0252質問NGNG
Buttonクラスを使用したプログラムを作成しなさい。題材は各自で自由に決めてよい。また、Button以外のコンポーネントを自由に組み合わせてもよい。クラス図とシーケンス図を作成することが望ましい。
0253デフォルトの名無しさんNGNG
Javaはワカラソ
0254デフォルトの名無しさんNGNG
>>252
なんかその宿題見たことあるような・・・
0255デフォルトの名無しさんNGNG
>>252
お前、自由研究くらい自分でやれって。
0256252NGNG
>>254
同じ大学だたーりw
>>255
全くわからないのですまんかった。
0257デフォルトの名無しさんNGNG
( ´3`)怜たんキスしよう・・・(´д`)えっ…
0258デフォルトの名無しさんNGNG
ムーン( ´=======3  (´д` )イ、イヤ…
0259デフォルトの名無しさんNGNG
ブチュゥ( ´=============3´д` )アン… 
0260デフォルトの名無しさんNGNG
宿題じゃないけど教えてくれさい。
1(2)の補数がどういうものかはわかるんだけどなぜ1(2)の補数と
呼ばれるかおしえてくれさい。
0261デフォルトの名無しさんNGNG
>>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"と書くのが正しい。

0262デフォルトの名無しさんNGNG
うおー完全に理解しました。ありがたふ
0263デフォルトの名無しさんNGNG
誰か折れの補数を取りたいやつはいないか?
0264デフォルトの名無しさんNGNG
勉強になるでごわす
0265デフォルトの名無しさんNGNG
補数は歩数からきたの?
0266デフォルトの名無しさんNGNG
for文を使ってa〜zまでを出力するプログラムを
教えて下さい。
0267デフォルトの名無しさんNGNG
for (i=0; i<1; ++i) {
printf("abcdefghijklmnopqrstuvwxyz");
}
0268デフォルトの名無しさんNGNG
for (i=0; i<26; ++i) {
putchar("abcdefghijklmnopqrstuvwxyz"[i]);
}
0269デフォルトの名無しさんNGNG
for (i = 0; i < 26; i++) {
putchar(i["abcdefghijklmnopqrstuvwxyz"]);
}
0270デフォルトの名無しさんNGNG
int i;
for(i = 0;i < 26;i++) cout.put('a'+i);
0271デフォルトの名無しさんNGNG
for (puts("abcdefghijklmnopqrstuvwxyz");0;)
0272デフォルトの名無しさんNGNG
全員鬼(w
0273デフォルトの名無しさんNGNG
char buf[]="a";
for(int i=0; i<26; i++ )
{
 buf[1]++;printf("%s", buf);  
}
0274デフォルトの名無しさんNGNG
あ、失敗。
buf[1]++;printf("%s", buf);
↓
printf("%s", buf); buf[1]++;
ダネ
0275デフォルトの名無しさんNGNG
>>274
それを書くなら buf[0]++; だろ。
segmentation fault起きるぞ。どっちにしても。
0276 NGNG
レジスタ GR0 の内容を 10進数で表示するサブルーチン OUTDEC を作成しなさい。

メインプログラムでレジスタ GR0 に値を格納して,作成した表示ルーチンを呼び出して下さい。なお、OUTDEC とメインプログラムは、別々のファイル (outdec.cas, main.cas) に作成すること。
0277デフォルトの名無しさんNGNG
>>275
buf[0]++なら起きないんじゃない?
char *bufじゃなくてchar buf[]と宣言してるから。

いずれにせよ>>270と>>274は文字コード依存という罠。
0278273NGNG
なんで、277はbuf[1]++だとSegFaultになると思いますカ?
0279デフォルトの名無しさんNGNG
>>278
buf[1]は定義されてないだろ。厳密には'\0'だろうが。
printf("%s", buf); とやった時点で、何が起きるかわからない。
>>270と>>274はEBCDICでは動作が不定となる。
0280デフォルトの名無しさんNGNG
ん?ああ、マルチバイト文字(2バイトのつもりなんだろな)を
char配列にいきなり書いちゃうってことか。

うー、今までは「文字コード依存だけど実はたいてい動く」
と思ってたんだが、それだといきなり未定義動作...
0281デフォルトの名無しさんNGNG
今時EBCDICとか、
未定義動作とか
ぐちゃぐちゃいう香具師は、
正直、fj逝ってくれよ、と思う……
0282デフォルトの名無しさんNGNG
ルールなしのパズルは面白くないよ。
0283デフォルトの名無しさんNGNG
JAVAですが、以下のような課題です。

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

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

Javaは初めて触ったので皆目見当がつきません。
よろしくお願い致します。
0284デフォルトの名無しさんNGNG

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゚)〜♪
0285ちーんNGNG
-|z|<(x-a)^2+(y-b)^2<|z| を満たす整数(x,y)の組の総数を返す関数を作成しなさい。

c言語でおながします。

やりかたがサパーリわかりません。
0286ちーんNGNG
#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

ここまでは書いたんですけどね。
0287デフォルトの名無しさんNGNG
285
一つ聞こう?
aとbは複素数なのか
その式変と思わんカッタか?
0288デフォルトの名無しさんNGNG
>>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)の組を見つけるだけだよ。
0289ちーんNGNG
>>287
もともと3乗の問題で、それを2乗にかえて出題したためこういうことがおこったそうです(^^
0290ちーんNGNG
sqrtは平方根ですよね?
??
0291デフォルトの名無しさんNGNG
>>290
これは、図形的に解釈すると、(x-a)^2+(y-b)^2=|z|という円の方程式の中に
当てはまる(x,y)の組を見つける問題だからだよ。
この円の半径は、sqrt(abs(z))となるよ。
0292do?f?lNGNG
コマンドラインに指定したプログラムファイルの中身を
表示するにはどうしたらいいでしょうか。

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

みたいな。
0293ちーんNGNG
わかりました・・・ありがとうございました>291さん
0294292NGNG
ちなみにC言語です。
0295デフォルトの名無しさんNGNG
#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;}
0296デフォルトの名無しさんNGNG
>>292
1バイトずつ読んで出力せよ
0297276NGNG
caslIIれす。。。
0298292NGNG
うっ…

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

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

putchar(c);
ではいけないのでしょうか?
0299デフォルトの名無しさんNGNG
>>298
バイナリエディタでは不可視の文字は . に置き換えられるでしょ?
0300デフォルトの名無しさんNGNG
>>292
問題ないと思う。
ただputchar(isprint(c)?c:'.')のほうがプリント可能キャラクタかチェックして出力しているので、>>295はより実践的。
0301デフォルトの名無しさんNGNG
>>298
もしバイナリ開いて0x07がきたらやかましくなるぞ。
0302298NGNG
なるほど。
fopenのモード指定を"r"にして
テキストエディタのみで使うのなら問題無いってことなのでしょうか?
0303デフォルトの名無しさんNGNG
>>301
Alarm('\a')?
0304デフォルトの名無しさんNGNG
>>302
フールプルーフ(fool proof)って知ってるか?
マーフィーの法則なら知ってるか?
0305さくらNGNG

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++;
}
}
}
0306デフォルトの名無しさんNGNG
線がランダム入るのか、ドットが四角く等間隔ではいるのか
まったく動かんのか?
0307デフォルトの名無しさんNGNG
>>288
それはあんまり頭イイ方法とはいえないんじゃないかな。
0308デフォルトの名無しさんNGNG
ブレゼンハムでがんばれ
0309デフォルトの名無しさんNGNG
C言語で
abc def ghi jkl mno
のようにスペースで区切られた単語を前から読んでいく時
終わりはどうやって指定すればいいんですか?

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

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

なんて感じにしたいのですが、ループの終了をどうやって
指定すればいいのかわかりません・・・
おねがいしまーす
0310デフォルトの名無しさんNGNG
>>309
\nまたはEOF
0311309NGNG
この場合何が \n または EOF になれば終了とすればいいんでしょうか?

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

とやっても上手くいかなかったんですが・・・
0312さくらNGNG
>>305
1.一番上の行にドットがあるべきなのに、全くない。
2.一番左の列がずれているように見える。
3.1,2行(列)分余計に拡大している。

このような問題があります。
0313デフォルトの名無しさんNGNG
>>311
Cの本とか読んでる?初歩の初歩だよ。
0314ハァハァNGNG
(;´Д`)さくらタン
0315C始めて一週間の小坊主NGNG
C言語はじめて一週間なのに下記の宿題をいただきました。
教えていただけないでしょうか。
よろしくお願いします。

May 20 17:43:19 mail sendmail[59250]: to=<[email protected]>, 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
          ・
          ・
          ・
          ・
0316デフォルトの名無しさんNGNG
宿題なんですが、よろしくお願いします。
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);
}
}
0317デフォルトの名無しさんNGNG
lessが何をするもんなのか言ってくれたら考える
0318デフォルトの名無しさんNGNG
>>316
それ以前に #include < stdio.h > のスペースは何だ?
              ^    ^
0319デフォルトの名無しさんNGNG
>>315
そんなら一行ごと読み出して正規表現使おうYO
0320デフォルトの名無しさんNGNG
>コレ改良してつくれませんかねぇ・・・

lessって、catの改良とかそういうレベルじゃないような。
0321デフォルトの名無しさんNGNG
312
小さい方の画像の解像度が2のべき数でもずれるか?(8x8とか32X32とか)
0322309NGNG
すんません、ちょっと考えたらできました。
久しぶりにやったもんで忘れてしまってて・・・
0323デフォルトの名無しさんNGNG
>>316
悪いことは言わんからmoreにしとけ。
0324デフォルトの名無しさんNGNG
lessって、ページャーだよな。MSDOSで言うと、miel(な、懐かしい・・・・)のような
ものでアール。
0325デフォルトの名無しさんNGNG
C言語始めたばかり何ですが、0〜200の間で2と3と6の倍数の和を一度に3つとも
求める。繰り返し関数の使用は1回しか使えない。
ヒントだけでも教えてもらえないでしょうか?
0326デフォルトの名無しさんNGNG
>>325
3つの変数を用意し、それぞれ2、3、6を代入。次にそれぞれに2、3、6を
足して行き、その結果を別の3つの変数に足して行く。足した結果が200を
超えた時点で足すのをやめる。これだけ。
0327デフォルトの名無しさんNGNG
>>326
2x3=6を利用すれば
変数一つ減らせていいと思った一人ぼっちの放課後
0328325NGNG
>>326,327
ありがとうございます。
何となくわかったので自分でがんばってやってみます。
0329デフォルトの名無しさんNGNG
>>326は問題を取り違えているような気がしないでもない。
0-200の間って、0から200の間の2の倍数の全ての和、ってことだよね?

だったら、繰り返し文でnを0から200まで変化させる。
その中で、nが2の倍数だったら、2の倍数の和を表す関数に足す・・
nが3の倍数だったら・・・
とかやればいいと思う。それだけ。
0330デフォルトの名無しさんNGNG
>>329
結果は同じだと思うが。
(関数に足すってのは変数のまちがいだよな…)

しかし、質問者も「繰り返し関数」って…まさかLisperか?
0331330NGNG
違った。スマソ
326は終了条件をまちがえてるね。
0332デフォルトの名無しさんNGNG
>>329
まあ%演算子を使えば簡単になるだろうね。
>>326は足した結果が200を超えた時点と言っているが、これは確かに
間違っているな。
0333330NGNG
いや、また違った(ウツ
やっぱ326は正しい。
0334デフォルトの名無しさんNGNG
「繰り返し関数」って、forやwhileのことを関数だとでも思ってるってパターンか。
0335デフォルトの名無しさんNGNG
>>333
>>325の質問の意味があいまいだよな。倍数の和が0〜200の間なのか、
倍数が0〜200の間なのかはっきりしない。>>326は前者だとしてヒントを
与えている。
0336デフォルトの名無しさんNGNG
繰り返し関数って・・・・・・繰り返し文の間違いだよな。そうと言ってくれ。
0337325NGNG
みなさんすみません。日本語の説明の時点で色々間違えていたみたいで、
倍数が0〜200の間と言うことと繰り返し関数じゃなくて繰り返し文でした。
すみませんでした。
0338デフォルトの名無しさんNGNG
>>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 ;
}
0339338NGNG
(T_T)
0340デフォルトの名無しさんNGNG
>>329-
考えがまとまってから書き込め
0341デフォルトの名無しさんNGNG
何でも良いが公倍数は無視か?
0342デフォルトの名無しさんNGNG
>>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を入れても結果は同じ。
0343329NGNG
>>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;
}
0344デフォルトの名無しさんNGNG
ダレがなんと言おうと唯一絶対の階はこれです

#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);
}
0345デフォルトの名無しさんNGNG
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;
}
0346デフォルトの名無しさんNGNG
ファイル名を指定して、そのファイルがC言語ファイルか
Pascal言語ファイルだった場合、
そのファイル中の「自分で定義した関数、もしくは手続き名」を
型情報とともに表示するCプログラムを作成せよ。
なお指定されるファイルは文法的に正しいものだけと仮定する。

お願いします。
0347デフォルトの名無しさんNGNG
>>346
あらあらしゅくだいなのね?
がんばってくださいねー
0348デフォルトの名無しさんNGNG
手続き名ってなんだ?Pascalの?
関数はプロトタイプだけでいいのか?
0349デフォルトの名無しさんNGNG
>>346 Pascalなら楽だが(コメントを削って、カッコの中にないprocedure
またはfunctionの次の名前だけ表示すれば良い)、Cだと難しすぎる。パーザ
書かなきゃ。
0350346NGNG
すいません。
Pascal言語の場合は関数名及び手続き名。
C言語の場合は関数名です。
関数はプロトタイプだけで良いものと思われます。
0351デフォルトの名無しさんNGNG
>>350
それでもC言語の場合は難しすぎる。

型定義をちゃんと解釈できないとどこが関数名か分からない。
型定義を解釈するためにはstructやunionやenumやtypedefも
解釈できないと…
0352デフォルトの名無しさんNGNG
>>350
grepしたれ
0353350NGNG
truct,union,enum,typedefと
関数の区別については今回は目をつぶるようです…

Pascalの場合は簡単だという事ですが
どうなるのでしょうか?
0354デフォルトの名無しさんNGNG
>>349嫁
0355デフォルトの名無しさんNGNG
昨日はご回答ありがとうございました。
今日もお願い致します。
Javaでエラトステネスのふるいを作成せよ、という問題です。
クラスはMainとSieveを使用するのが原則となっています。
よろしくお願い致します。
0356デフォルトの名無しさんNGNG
>>355
で、どこがわからんの?
0357デフォルトの名無しさんNGNG
それは宿題をやってほしいのかな?
それとも現在分からないことがあるのかな?
0358355NGNG
できれば、課題自体をお願いしたいのですが。。。
演習書の説明が理解できないので。。。
エラトステネスのふるい自体わかりませんので。。。
今回、はじめて聞きました。
0359353NGNG
>>354
文字列が procedure または function かどうか
判定するにはやはり一文字ずつ読み込んで
比較するのでしょうか?
0360デフォルトの名無しさんNGNG
>>358
http://www.sra.co.jp/public/doc/GSletter/vol.27/java/java.html
したから1/4位。
エラトステネスのふるいは素数の倍数を除去しながら計算していく方法
0361デフォルトの名無しさんNGNG
text fileで質問ですが、簡単な20KBにもみたないファイルを
友達から送ってもらったのですが、なぜかそれを受け取った
時、ファイルの容量が980KBになっていました。
それをハードディスクに落として、見てみるともとの20KBに
戻っていました。それでそのファイルを今度は他の人に
送ったとき、またファイルの容量が980KBになっていました。
これはなぜこうなるんでしょうか?目に見えないヘッダファイル
かなにかが添付されてるのでしょうか?もしそうだったら
どのようにそのヘッダファイルを見ることができますか?
別に宿題じゃないんですが、疑問に思って
0362デフォルトの名無しさんNGNG
>>361 マルチたん・・・ハァハァ
0363デフォルトの名無しさんNGNG
すいません・・・むこうじゃ誰も答えてくれないので
こっちのほうが詳しい人いそうと思って・・・
0364デフォルトの名無しさんNGNG
>>363
安心しろ。俺も5KBのファイルが1GBになったのを見たことがある。
気にすることはない。
0365デフォルトの名無しさんNGNG
ええマルチたん!?!

>>361
あ、ほんとだ

(;´Д`)イイ!
0366デフォルトの名無しさんNGNG
>>361
怜たんより萌えるな・・・ハァハァ
0367デフォルトの名無しさんNGNG
20KBが980KBですから、残りの960KBは
何がふくまれてるのかなーって思って。
不思議なんです。どんな情報がはいってるのやら。
その残りを見ようとしても見る方法がわからないので。
誰かファイルのエキスパートいませんか?
ファイルファイル
0368デフォルトの名無しさんNGNG
ファイル ファイリフレ ファイリホー
0369デフォルトの名無しさんNGNG
>なぜかそれを受け取った 時、ファイルの容量が980KBになっていました。
>それをハードディスクに落として、見てみるともとの20KBに 戻っていました。

どういうことよ?受け取ったときはディスクにないの?
0370デフォルトの名無しさんNGNG
メーラーで添付ファイル見たときの表示が980KBってことでは。
0371デフォルトの名無しさんNGNG
370
そうです、ファイルをいったんハードディスク上に落とすと
20KBのファイルなんですが、メーラーの上でみると
なぜか980KBになってるんです。

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

ただ980KBと表示されてるだけならどうだっていいじゃん
実際にスペース食ってなければ
0374デフォルトの名無しさんNGNG
メーラーは今を時めくスーパーグレートアウトルックエクスプレッサー
なずけて、SGOE
0375無責任だがNGNG
>>346
きちんとしたパーサーを作るのが結局一番簡単でしょう

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

pascalなら tplyで検索してその中の pas.Y を参考に
0376無責任だがNGNG
pascalはこっちがいいかも
http://www.moorecad.com/standardpascal/yacclex.html
0377デフォルトの名無しさんNGNG
んで、入力されたソースがcであるかpascalであるかはんていせにゃならんから、
かなり大変でない?
0378デフォルトの名無しさんNGNG
そこはほら、拡張子で(w
0379デフォルトの名無しさんNGNG
>>374 それはやはりドイツ語風にスギョェとよむんでしょうか?
0380デフォルトの名無しさんNGNG
>>346
プリプロセスはどうするんだ?
0381デフォルトの名無しさんNGNG
どう考えても無茶な課題だよな・・・
0382デフォルトの名無しさんNGNG
中括弧だけ見て、中括弧の外に出てるものだけを見るというのでは駄目?
””とコメントだけは注意して。課題レベルならそれくらいでいいかなと・・
0383デフォルトの名無しさんNGNG
>>346
その課題って、ちゃんと字句解析、構文解析について習った上で出されたんだよな?
0384デフォルトの名無しさんNGNG
>>346

#define a( ignored_param ) a[] =

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

がんばってください
0385あぼんNGNG
逆行列求めるプログラムなんですが、
#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のあたりでシンタックスエラーがでます。
どこがまちがってるかオシエテクダサイ。
0386デフォルトの名無しさんNGNG
>>385
ネタニマジレス
カコワルイ
0387デフォルトの名無しさんNGNG
>>385
{ } の対応がおかしいけどさ、それ以前に文法古すぎ(w
}}}ってまとめて閉じてるのもすごいな。
先史時代にタイムスリップしたかのようだ
0388デフォルトの名無しさんNGNG
>>387
あがる一方のソースって初めて見た・・・。
普通正規分布型になるのに。
0389デフォルトの名無しさんNGNG
>>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;
}
0390デフォルトの名無しさんNGNG
>>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;
}
0391デフォルトの名無しさんNGNG
headは構造体、code,tempは配列だとして
tempに読みこんだ文字列を構造体headの中の配列codeに
いれたいのですが

head->code = temp;

とやるとエラーが出てしまうのですが
このやりかたはまずいのでしょうか?
l-value required (=) と言うエラーが出てきてしまいます。
0392デフォルトの名無しさんNGNG
>>391
もしC言語なら、=では文字列のコピーはできない。
#include <string.h>
strcpy(head->code,temp);
0393デフォルトの名無しさんNGNG
>>392
当然ながらバッファオーバーフローに注意
0394391NGNG
あ、書き忘れてました、C言語です。
ありがとうございます! やってみます!
0395392NGNG
そういえば文字列だときめかかっているな。
文字列でないならmemcpyで。
0396あぼんNGNG
>>389 390
ありがと。解決しました。
0397391NGNG
今やってる問題はこれなんですが
http://www2.nasicnet.com/~hila/C/kadai5-1.c
コンパイルの時に最初のmallocのところに
Warning:function 'malloc' undefined -- assumed to be int
と出てしまいます。
コンパイルしたものを実行したら結果は上手く行くのですがこれが
気になってしまいます、これはなんなんでしょう?
0398デフォルトの名無しさんNGNG
C++で次の問題ができません

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

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

こんな感じだそうです、どうにかお願いします!
0399デフォルトの名無しさんNGNG
>>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
0400デフォルトの名無しさんNGNG
>>397
そのソース、malloc使っているのに<stdlib.h>をインクルードしていないね。

関数のプロトタイプがないために、mallocの戻り値がint型だと見なされている。
で、int型をstruct Data *型にキャストすることはできないので、そういうウォーニングが出たというわけ。
<stdlib.h>にmallocのプロトタイプ宣言があるから、それをインクルードすればOK
0401デフォルトの名無しさんNGNG
団子だ
0402391NGNG
ああ、なるほど!
上手く行きました、ありがとうございました!

宿題は続くのでまた質問すると思いますが(^^;
0403デフォルトの名無しさんNGNG
>>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;
}
}
0404デフォルトの名無しさんNGNG
>>397
お、stdlib.hが追加されている(笑)
0405399NGNG
>>399
どうもです!
おかげさまでできました!
0406391NGNG
>>404
いやぁ、家でやって鯖にあげて、学校から落として使おうとしてるので
完成したのをアップしてるのです(笑)
0407346NGNG
こんな原始的な方法しか思い浮かばん。

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");
}
}
}

0408無責任だがNGNG
>>407
 その方法を自動的に展開してくれるコードを書いてくれるのが >>375-376

後は lex/yacc を手に入れて
0409デフォルトの名無しさんNGNG
#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;
}
0410デフォルトの名無しさんNGNG
C言語で相乗平均を求めているのですが、n乗根の求め方がどうしてもわかりません。
どなたか教えていただけないでしょうか?

pow(x,y);は実数値をとらないとエラーになりますし…もうお手上げです
0411デフォルトの名無しさんNGNG
>>410
#include <math.h>
0412デフォルトの名無しさんNGNG
n乗根? pow(x, 1.0/n); で何が困る?実数値をとらないとエラーって何?
0413デフォルトの名無しさんNGNG
(int)pow(x,y);
0414デフォルトの名無しさんNGNG
>>411-413
型宣言の間違いのようでした。
pow(x,1/n);ではうまくいきませんでしたが、
pow(x,1.0/n);で成功しました!ありがとうございました(TT)
0415デフォルトの名無しさんNGNG
よしlessもどきができたぞ>>いつかの学生
メモリばりばり壊してすぐ�dじゃってもいいなら晒すぞ。
0416デフォルトの名無しさんNGNG
っていうかここのお母さん、全然登場せえへんやん。
0417デフォルトの名無しさんNGNG
>>416
そう思うなら、玲たんが早くお母さんになってね♪
0418デフォルトの名無しさんNGNG
>>417
は?何言ってんだ?
0419怜NGNG
字、違うし・・・・
0420417NGNG
ギャフン
0421デフォルトの名無しさんNGNG
>>417
お母さんになるにはまず・・・(以下略
0422デフォルトの名無しさん NGNG
C++の宿題でました。
サンプルプログラムがあって、リストの中に入れたアルファベットをabc・・・の順番で出力するやつです。
で、サンプルのなかで、malloc(sizeof(LIST)っていうのが使われているんですが、これってどういう効果がありますか?

リストが、こう定義されてます。
struct list{
char key[LEN+1];
struct list *next;
};
0423デフォルトの名無しさんNGNG
>>422
sizeof(LIST) がわからんのか ?
malloc() の効果がわからんのか ?
0424デフォルトの名無しさんNGNG
malloc(〜) は、指定したバイト数のメモリ領域を確保します。
sizeof(LIST) は、構造体 LIST のバイト数を表します。
0425デフォルトの名無しさんNGNG
>>423

えと・・・両方です。

>>424

凄くよくわかりました。
ありがとうございます。
0426422NGNG
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;
}
0427デフォルトの名無しさんNGNG
>>426
>while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
・・・・・。
そんな書き方するサンプルは見限れと言いたい。
でも宿題じゃ仕方ないんだろぉなぁ。なんか言ってやれ、こんな宿題出す教師に。
んで、これは

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

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

はい、リストについては昨日勉強しました。
while(strcmp(data, "end") != 0){
↑
これは、endを入力したらwhileが終わるってことですよね?
このwhile内で、何もheadに代入されてないのに、最後に
show_list(&head);とあるので、while内で何が起こっているのかわからなくなりました。
0429デフォルトの名無しさんNGNG
>>427
>>while(printf("string->"),scanf("%s",data),strcmp(data,"end")!=0){
何も入力しなかったとき自動的に終わらないか?
0430422NGNG
>>429

いいえ、endを押さないと終わりません。
0431デフォルトの名無しさんNGNG
>>427
その分解は動作を変更してしまってるよ。
こうしないと。
for (;;) {
 printf("string->");
 scanf("%s", data);
 if (strcmp(data, "end") == 0) break;
0432427ではないNGNG
>>431
ループの本体で同じことを重複して書けばよいじゃん。
超初心者相手なんだから分かりやすさが重要では。
0433デフォルトの名無しさんNGNG
↑のように分解したらwhile文の一番下にも付けとけば同じ動作ね。
0434デフォルトの名無しさんNGNG
同じコードを二カ所(以上)に書く癖はつけないように指導したいところ。
0435デフォルトの名無しさんNGNG
>>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" を入力するまで同様に。図に書きながら動作を追ってみるといい。
0436デフォルトの名無しさんNGNG
>>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;
0437デフォルトの名無しさんNGNG
>>436
宿題のサンプルなんだから>>426が悪い訳じゃないかと
p = p->next = ptr ;
は文法的には大丈夫だと思うけど自信がないので他の奴にパス
p->next = NULL ;
はブロックの外に出してやると良さげ
分かってて書いたならブロックは閉じなくても
インデントは、揃えない方が良かったと思う
0438お母さんNGNG
>>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.頭にダミー要素がわざわざつけてある。
ことを考えると、出題者の意図するところではないかもしれないわね。)

分からなかったら、また聞いてちょうだいね。
0439346NGNG
完成
0440デフォルトの名無しさんNGNG
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");
0441デフォルトの名無しさんNGNG
試してませんが、こんなのはどう。
image = Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("homework/resource/image.gif"))
0442デフォルトの名無しさんNGNG
>>441
ありがとうございます。うまく読み込むことができました。
JARファイルだとずいぶん要領が違いますね。
0443デフォルトの名無しさんNGNG
javaで
swap( a , b )
てのはどう書けばいいの?
aとbの入れ替えをしたいんだけど。
0444デフォルトの名無しさんNGNG
>>443
他の言語ではお前はどうやってるんだ?
0445デフォルトの名無しさんNGNG
>>443
プログラマとして問題だと思う。それ。
0446デフォルトの名無しさんNGNG
>>444
まだJavaしか使ったこと無い…Cも本で読んだことはあるけど。

>>445
なんで?メソッドでやるほどの事じゃないってこと?
んじゃいちいち
○○ c =a ;
a = b;
b = c;
って書くのが正解?
0447デフォルトの名無しさんNGNG
>>442
たぶんそのコードは jar にアーカイブしてない状態でも使えると思う。便利でし。
>>443
出来ません。残念ながら。不可能です。
でも「入れ替えをしたい」っていう状況は実はあんまし無いような気もするし、直に書いても大して面倒でもないからいいんでわ?
>>444
C++だったら余裕で書けるんだな。
0448デフォルトの名無しさんNGNG
>>446
正解。
0449446NGNG
何だ
あ前ら使えねーな。
0450デフォルトの名無しさんNGNG
照れる
0451デフォルトの名無しさんNGNG
確かに、褒め言葉と取っておいた方が良いな。
0452デフォルトの名無しさんNGNG
だね。
http://www.google.com/search?q=java%20swap&hl=ja&lr=lang_ja
0453デフォルトの名無しさんNGNG
ここでよいのか迷ったのですが、他に適切な板が
見つからなかったので、お願いしたします。

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

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

どうかよろしくお願いします。
0454デフォルトの名無しさんNGNG
GPL
0455デフォルトの名無しさんNGNG
>>453
1 yes
2 yes
関係するプログラムにひたすら感染していきます
0456デフォルトの名無しさんNGNG
GPLはソフトウェア会のガンです
0457デフォルトの名無しさんNGNG
>>454-456
とても恥ずかしいミスをしてしまい、ご指摘ありがとうございます。
1、は直感的にYESかなとは思っていたんですが、2までYESということで驚きました。
どうもありがとうございました。
0458デフォルトの名無しさんNGNG
リンク先を見たけど、RetroGuardはLGPLだね。
これならプログラム本体がソースを公開する必要はない(GPLとして配布する必要はない)
0459デフォルトの名無しさんNGNG
1.2.とも、「外部から使う」「アプリケーションに使用する」
の詳細がわからないとなんとも……
たとえば、pipeみたいなIPC機構を用いればOKという話もある。
0460デフォルトの名無しさんNGNG
フロントエンドだったり、そのGPLアプリケーションが完全にソフトの一部の場合はNG
0461質問名無し。NGNG
CASLです。

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

このような問題で
ラベル:XX01 命令コード:DC
まではわかるのですが、オペランドが判りません。
御教授お願い致します。
0462デフォルトの名無しさんNGNG
>>461
オペランド:#0058
0463デフォルトの名無しさんNGNG
>460
え?GPLなソフトのフロントエンドは、GPLに縛られるの?
なして?
0464デフォルトの名無しさんNGNG
リンクしてなきゃ縛られないと思われ
0465デフォルトの名無しさんNGNG
宿題でコンピューターウィルスをつくる宿題がでました。
だれか僕のためにつくってください
0466デフォルトの名無しさんNGNG
>>465
宿題は自分で野郎な。
0467仕様書無しさんNGNG
なんかアタック受けたぞ。お前だろ。

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
0468caslですNGNG
レジスタ GR0 の内容を 10進数で表示するサブルーチン OUTDEC を作成しなさい。

メインプログラムでレジスタ GR0 に値を格納して,作成した表示ルーチンを呼び出して下さい。なお、OUTDEC とメインプログラムは、別々のファイル (outdec.cas, main.cas) に作成すること。
0469ちーんNGNG
シフト演算子を使って、被除数を2^nで割ったときの商と余りをだすプログラムをつくりなさい。

シフト演算子の使い方がわかりません・・・教えてください・・・
0470デフォルトの名無しさんNGNG
ずらす値 << 何桁ずらすか
ずらす値 >> 何桁ずらすか
0471ちーんNGNG
よくわかりません・・・w
0472デフォルトの名無しさんNGNG
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出てくる
0473デフォルトの名無しさんNGNG
ずらしてできたとこはゼロで埋められる
0474デフォルトの名無しさんNGNG
>>468
CASLのCコンパイラ作れ。
0475469NGNG
実際にプログラムしてみるとどんなふつうになるのでしょうか??
0476デフォルトの名無しさんNGNG
>被除数を2^nで割ったときの商と余りをだすプログラムをつくりなさい。

ここがわからん詳しくキボーン
0477469NGNG
被除数とnをキーボートから入力したとき、被除数を2^nで割ったときの商と余りをだすプログラムをつくりなさい

です。
0478デフォルトの名無しさんNGNG
被除数を右にn回シフトしてから左にn回シフトをしたものを、
被除数から引いたら余りがでるのでは?
0479デフォルトの名無しさんNGNG
・・・・・

( つД`)さっぱりわかんない
0480469NGNG
オレモサパーリ(・∀・)
0481デフォルトの名無しさんNGNG
Quo = Value >> n;
Rem = Value - (Quo << n);
0482デフォルトの名無しさんNGNG
解決したようだ。
よかたよかた(-_-)
0483メキシカンハードゲイNGNG
>>469は寝たか、>>481を見ても分からないか・・・
後者なら、おじさん何するかわからないよ?
0484デフォルトの名無しさんNGNG
>>483
ヲヂサン、おまんこクチュクチュするとか?
0485デフォルトの名無しさんNGNG
ゲイなのに?
0486怜NGNG
余りもシフト演算だけでできないかな?
処理系依存になってしまうけど、32ビットなら、
(Value << (32 - n)) >> (32 - n)
とかすればいくのかな。どうでしょうか。
0487デフォルトの名無しさんNGNG
sizeof(int)使えば?
0488デフォルトの名無しさんNGNG
Valueが負の値だと途端に未定義動作になる罠
0489デフォルトの名無しさんNGNG
それ以前に減算演算子は使っちゃダメです。
使っていいのはシフトだけ。
0490デフォルトの名無しさんNGNG
なら、481のRemもだめじゃん。
0491デフォルトの名無しさんNGNG
さぁ困った
0492デフォルトの名無しさんNGNG
一つの非公開関数を含むdiceという名前のクラス
を作成しなさい。また、標準乱数であるrand()関数を
使用して1〜6までの範囲の整数を生成するroll()
という関数を作成しなさい。
非公開整数変数を参照する、look()という関数を
作成しなさい。
クラスが正しく動作することを確認するための
main関数を作成しなさい。

この問題がまったくわからないので誰か教えて下さい
ちなみにiostream使わないでお願いします
0493デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1022402165/634-653
までは出来てるので、iostreamを使わないように修正してあげてください。
0494デフォルトの名無しさんNGNG
向こうでこっちにいけって言われました
0495デフォルトの名無しさんNGNG
元のせりふは、
>ほんとに申し訳ないんですけどiostream.h
>使わないでできませんか?
なんだから、当然
#include <iostream>
using namespace std;
ダロ
0496デフォルトの名無しさんNGNG
とこりょでさ。
丸投げするやつらは課題って何のためにあるか分かってんのかな?
答えを提出することだけが目的じゃないんじゃないかな?
たとえ間違ったって自分でやらなきゃ何の意味もないんじゃないかな?
0497デフォルトの名無しさんNGNG
学生時分は普通、んなこと考えない。
0498デフォルトの名無しさんNGNG
将来プログラミングと縁がない職業に就くつもりなら丸投げでもいいんじゃない。
0499デフォルトの名無しさんNGNG
>>497
そうだ罠。俺も学生時代はとにかく単位をもらうことだけを考えていたから
なあ。手段を選ばず。
その頃にはまだネットなんてものがなかったから、友達づきあいだけは
大切にしたよ。

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

でも仕事内容はSEのような仕事やバグ取りがメインで、自分ではあまり
組んだりしない。会社曰く、「組む奴は掃いて捨てるほどいるが、バグ取り
できる奴はそんなにいない」とか。
0500デフォルトの名無しさんNGNG
> 単位をもらうことだけを考えていたから
 なあ。手段を選ばず。

ハゲドウじゃ
0501デフォルトの名無しさんNGNG
>>499
おだてられてデバッグ押しつけられてるのか。悲しいな。
0502デフォルトの名無しさんNGNG
悲しいときー
0503デフォルトの名無しさんNGNG
ある数値(例えば999など)が入力されるまで、繰り返しキーボードから数値を入力し、
結果として入力された数値の平均値を出力するプログラムを作りなさい。
ヒント:
繰り返しには「無限ループ」を使用。
「偽」にならない条件をwhile文の条件として与える。
ある数値が入力されるまで繰り返すという処理は、
「ある数値が入力されたらbreakする」という処理を使う。


という問題なんですが、、、ちなみにC言語です。
よろしくおながいします、、、
0504デフォルトの名無しさんNGNG
#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;
}
0505デフォルトの名無しさんNGNG
>>504
×scanf("%f", &d);
○scanf("%lf", &d);
0506デフォルトの名無しさんNGNG
例えば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をいれたらどうなるかもかんがえといて。
0507デフォルトの名無しさんNGNG
>>504
>>506
お二人ともありがとうございました!どうにかなりそうです。
神と呼ばせてください。。。
0508デフォルトの名無しさんNGNG
>>506
浮動小数点数を==で比較した場合にヤバイのは、小数点以下がある
場合に限られるものが多い。整数部は循環小数とはならないものが
ほとんど。

でも、処理系依存ということもあるので、intで読んでおいてキャスト
する方が安全ですね。
0509デフォルトの名無しさんNGNG
>>489
Rem = Value & (~0 << n);
っつーか & もNGですか?
0510509NGNG
おっと間違えた。
Rem = Value & ~(~0 << n);
0511C初心者NGNG
HTTPサーバーを作って来い言われて困惑してます…
とりあえずGETとHEADをサーバープログラムで実現したいのですが
どう書いたら良いのかサッパリわからずです。
ヘルプお願いします…。
0512デフォルトの名無しさんNGNG
djbのpublicfileなんかわかりやすぞ。
0513デフォルトの名無しさんNGNG
検索すれば適当なサバがあるよ
0514C初心者NGNG
それが「既存のプログラムを用いてサーバを構築しろ」ではなくて
「サーバープログラムを書いてこい」という課題なので…。

その辺をCで書くとこんな感じになるとか解説してるページとか
ありませんでしょうか。
0515デフォルトの名無しさんNGNG
オープンソースの鯖プログラムのコードパクれ。
0516デフォルトの名無しさんNGNG
>>514
ピッタリなの見つけてやった。
ぐぐるうまく使う方法身につけないと損だぞ。
Fetch the software. クリックして落とせ。
http://www.acme.com/software/micro_httpd/
0517デフォルトの名無しさんNGNG
(;´д`).。oO(これがいわゆるデッドロックってやつか・・・?)
0518C初心者NGNG
>>515
まんまパクるのはさすがにヤバいかと思うのでちょとアレです。
なんせ作ったプログラムを元にプレゼンまでやらないとアカンので
構造をある程度理解できてないと…。

>>516
おお、これは今まで見たサーバープログラムの中でもそうとう小さい!
これならなんとか中身も読み進められるかな…
C初心者ゆえ、C言語辞典片手にだけど。
とりあえずこれで進めてみます。ありがとうございましたー
0519デフォルトの名無しさんNGNG
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("-----------------------------------");
}

0520デフォルトの名無しさんNGNG
誤差[%]");
?
0521デフォルトの名無しさんNGNG
>真の値の誤差

って何さ
0522デフォルトの名無しさんNGNG
>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]   誤差[%]");
%を文字として出力したいときは%%とする
0523デフォルトの名無しさんNGNG
JAVAのことさっぱりわかりませんが、課題で
人工無能の対話するものを作らなくてはなりません。
どなたかソース(?)教えてください。(もしくは公開しているHP)
言葉をかえるだけでいい!みたいなのありますか?

別スレでも聞いたんですけど、本当に困ってて…。
0524デフォルトの名無しさんNGNG
>>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("( ´_ゝ`)ふーん ");
  }
 }
}
0525切羽詰まってNGNG
できればつっこみをつけて教えてください。

(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に代入される数値は?

超素人なので、よろしくお願いします。
0526切羽詰まってNGNG
(1)は実行すると、なにがでるか?という問題で、
(2)はrがなにかという問題です。
0527デフォルトの名無しさんNGNG
>>525
(1)コンパイルして実行すれば?
(2)トレースすれば?
0528デフォルトの名無しさんNGNG
>525

(1)
iが宣言されていないのでコンパイル通らねぇぞ。
宣言してからコンパイルしたら、2.083333って出た。
つーか、実行結果聞く問題なら動かしてみれ。
(2)は待て。
0529デフォルトの名無しさんNGNG
>>525
(a)9
(b)10
(c)9
0530デフォルトの名無しさんNGNG
修正
(c)10
0531528NGNG
うーん、(2)は本がないと分からん。ごめんね。
いま授業中なんで。
a 9
b 10
だと思うけど、cはわからん。落ちそうだけど。
0532デフォルトの名無しさんNGNG
いくら宿題だからって基本中の基本を丸投げされても…
0533デフォルトの名無しさんNGNG
>>528
授業に集中しなさい。
0534デフォルトの名無しさんNGNG
こんな時間に授業って二部?
0535デフォルトの名無しさんNGNG
実行もしてみないでせっぱ詰まってるとか言われても・・
0536528NGNG
実行してみたyo!
9
10
10
だった。
つーかこれも宣言するところでカンマ抜けてる。
0537デフォルトの名無しさんNGNG
>536

>>529-530に書いてあんじゃん。
つーか実行しないと分からないのか?
0538528NGNG
>534
そうだyo!
0539デフォルトの名無しさんNGNG
>>537
ポインタさえも理解せずにCを教える奴もいたりする世の中だ。
気にするな。
0540デフォルトの名無しさんNGNG
>>538
授業聞けよ。
0541528NGNG
>537
ごめんね。Cは素人でさ。
0542切羽詰まってNGNG
解説どうもでした。
実行したいのは山々でしたが、ソフトがないのでできませんでした。
0543デフォルトの名無しさんNGNG
>>542
このくらいなら頭の中で実行しろ。
紙の上で計算してもいい。

>ソフトがないのでできませんでした。
知るか。切羽詰るまで放置するのが悪い。
0544切羽詰まってNGNG
正直、答えを教えてもらっても細部はよくわからないです。
故に、頭の中で計算できない。
まだ初心者のへっぽこです。
0545デフォルトの名無しさんNGNG
>>544
教えてくらはい。
ちゃんと講義を聴いてても解けないような進度無視した宿題を出す教官が馬鹿なのですか?
それとも講義を聴いてないあなたが馬鹿なのですか?
0546デフォルトの名無しさんNGNG
           从/

        __∧_∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      /(  ´Д`)V  < はッ!先生、ちがっ・・・!、寝てません!
  __ / /|  u゚_/ )   \_______________
  \  ( ( ̄ ̄⊆_ノ ̄\
  ||\ `ー⊃         \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0547切羽詰まってNGNG
半々くらいだと思います。
0548デフォルトの名無しさんNGNG
>>546
ヨダレふけYO!
0549名無しさん@お腹いっぱい。NGNG
UNIXです。

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

教えてください。
0550デフォルトの名無しさんNGNG
>>549
とりあえず、お前の考えは?
0551デフォルトの名無しさんNGNG
>>549
\b\w(\w)\1\w\b
0552名無しさん@お腹いっぱい。NGNG
549です。

1文字目と4文字目は「.」でいいとして、2文字めを「.」にして3文字めを*にすると、3文字目はどの文字でもいいってことになるし、、、って考えてストップしました。
0553名無しさん@お腹いっぱい。NGNG
>>551

ありがとうございました。
できました。
でも理由がよくわからないので、これから考えてみます。
0554CでNGNG
1,2,3,4,5と書かれたカードがそれぞれ、2,3,5,5,5枚ある。
その全部のカードを使って5桁の数を4つつくる。
その4つの和が123456になる時、4つの数を大きい順にa,b,c,dとおく。
そのabcdのすべての組を表示するプログラムを組め

ってやつなんだけど誰かわかる?
0555デフォルトの名無しさんNGNG
>>554
それ必修の(自由提出でない)宿題?
0556554NGNG
>>555
うん。必修の宿題。
0557554NGNG
5桁の数を4つすべて総当りで調べるプログラム作ったんだけど
ループ回数多すぎて失敗。
0558デフォルトの名無しさんNGNG
>>554
面白そうだ・・・
0559名無しさん@お腹いっぱい。NGNG
う〜ん。。。553なんですが、まだ551さんの書いてあるようなのは習ってなくて、意味がよくわからないのですが・・・。
一応、どういう理由でそれでできるか、も書かなければならないんで・・・
誰か答えじゃなくてもいいので、考え方だけでも教えてください。
0560デフォルトの名無しさんNGNG
>>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)の組み合わせは・・・と考えていくと、ループ回数はかなり減らせる・・・とおもふ。
0561554NGNG
>>560
それも考えてみたんですけど
アルゴリズムが複雑になりすぎて、
初心者のおれにはできませんでした。
0562デフォルトの名無しさんNGNG
>>554
再帰の基本問題だと思うよ。
0563554NGNG
>>562
始めのほうだけでもちょっとコード書いてみてくれませんか??
0564デフォルトの名無しさん NGNG
Cのソースコードから整数型配列を定義した行を検索する正規表現を教えてください。

0565562NGNG
じゃあとりあえず初めだけ。
int a[4][5];
main()
{
 check(0, 0, 6);
}
0566554NGNG
>>565
とりあえずもう少し自分で考えてみます。
ってことでまた来ます!
0567560NGNG
ダメだ・・・1つもヒットしねぇ・・・
マジで該当する組み合わせあんの?
0568デフォルトの名無しさんNGNG
組み合わせ無視で行きます
使えるカードの数字の合計は
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-不可能


漏れの頭では不可能でつ・・・
0569568訂正NGNG
最下位桁を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-不可能
0570 NGNG
総当たりでやってもヒットするのなかった。
4つの数字の下の桁から埋めていって
4個数字を拾うごとに逐次チェック。
見込みのない組み合わせはすぐ放棄。
実行はすぐ終わるけど該当の組み合わせ無し。
0571570NGNG
途中までいった一例

  3 4455
  4 3245
  3 3555
+ 3 2211
−−−−−−−−
 14 3456
  =

全体で2多いのでカードの数を 3, 4, 4, 5, 5枚ずつにかえるとヒットする組み合わせが出てくる。

23345
43445
24555
32111

とか。重複消すと45通りかな?
0572デフォルトの名無しさんNGNG
STLのnext_permutationでGo!
0573570NGNG
3, 4, 4, 5, 5枚でなくて3, 3, 4, 5, 5枚でした。
0574デフォルトの名無しさんNGNG
問題が3, 3, 4, 5, 5の間違いだと仮定した場合、
2599375通りと予想
0575574NGNG
2599374通りに訂正かも
0576デフォルトの名無しさんNGNG
goal
↑
1011111111111111111111
1000100100001000000101
1110101110111101110001
1000000010100101011101
1011111010110001000001
1000100000010101011101
1010111110110111010111
1010001000000100000001
1111111111111111111101
               ↑
              start

1が壁で0が通れます。
この迷路を抜け出すプログラムがわかりません。
おしえてください。
0577デフォルトの名無しさんNGNG
>>576
どういうふうに経過・結果を出せって指定?
0578576NGNG
>>577
抜け出すまでの道のりを座標で表示せよって問題です。

あとstartの位置が少しずれてます。(9,21)から出発です。
0579デフォルトの名無しさんNGNG
自分でどれぐらいできて、どこで詰まってるの?
0580576NGNG
一応再帰的に解くことはできたんですが、寄り道した結果を表示させない方法がわかりません。

実行結果。
(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は一度通った道です。
0581デフォルトの名無しさんNGNG
>>580
子がゴールにたどり着いたと返した経路を(こうするとゴールからスタートにむかって確定するから)
溜め込んで最後に逆順に出力するとか。
0582576NGNG
>>581
やっぱ木構造使わなきゃ解けないですか。。
ポインタとかよくわからないから、今勉強中です。
0583デフォルトの名無しさんNGNG
>>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;
}
0584576NGNG
>>583
こんなにスマートなコードで書けたのか。。
逆順って考えは頭になかった。ありがとうございます。
0585デフォルトの名無しさんNGNG
双方向リストの宿題がでました。
#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;
分けて書きます
0586デフォルトの名無しさんNGNG
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;
}
0587デフォルトの名無しさんNGNG
case1の、strcpy(ptr->key,data);の下と、case2の空いてるとこにプログラムを書くものです。
これは、アルファベット順に出力されるプログラムです。
例えば最初にbと入力して、次にaと入力したら、
a
b
と出力されます。
で、case1の方をやっていたのですが、
p->next->prev=ptr;
p->next=ptr;
こう入力しました。
でも、これでは、何故かエラーが出てしまいます。
答えはcase1の方は3行らしいのですが、わかりません。
教えてください。
0588デフォルトの名無しさんNGNG
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);
でもいいけど。
0589デフォルトの名無しさんNGNG
>>588

どうもです。
確かにそれでcase1はできるのですが、その書き方は習ってないので意味がよくわからないのですが・・・
0590デフォルトの名無しさんNGNG
>>588

下の方で考えたらよくわかりました。
ありがとうございました。
0591デフォルトの名無しさんNGNG
続いて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のあとに削除のプログラムを書くのですが・・・助けてください。
0592デフォルトの名無しさんNGNG
双方向リストなんて単方向リストにprevを付けただけでしょ。
何故分からんのかが不思議だ。
0593デフォルトの名無しさんNGNG
どこが分からないの?
全く分からないなら聞いてもこれからついてけなくなるだけだから
自分でやった方がいいと思うが。
0594デフォルトの名無しさんNGNG
紙に箱と矢印を書いてどうしたいのかを整理すればすぐに理解できると思う
0595デフォルトの名無しさんNGNG
答え書いちゃってみるテスト

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;
0596デフォルトの名無しさんNGNG
わからないのは、削除する場所、pを見つける方法です。
前に今回とほとんど同じようなリストのプログラムの勉強をしました。
そのときは、削除する場所を見つける関数が最初から書かれていたので、それを使ったのです。
でも、今回(双方向リスト)のプログラムはその関数がなくて、case 2の中で削除する場所を見つけるにはどうすればいいのか迷いました。
0597デフォルトの名無しさんNGNG
>>596
分からないときはいつまでソースを眺めてても時間の無駄だから、
紙に図を書いて、脳内シミュレートしてみるのが理解への近道。
答えを聞いてばかりじゃなくてやってみろ。
0598デフォルトの名無しさんNGNG
>>595
関係無いけどdetach部分を関数に分けたいな(笑)
0599デフォルトの名無しさんNGNG
そもそもscanfは使いたくないな。
最後に全部freeしときたいな。
0600犬NGNG
%fは何桁まで表示ですか?
0601デフォルトの名無しさんNGNG
floatで表現しうる精度
0602デフォルトの名無しさんNGNG
VC++の場合LDBL_MAX が 1.7976931348623158e+308 で
LDBL_MIN が 2.2250738585072014e-308 だから、
308桁+デフォルトの少数以下の桁(6桁)
0603デフォルトの名無しさんNGNG
>>602
FLT_*をみないとダメだろ。%lfじゃないんだから
0604デフォルトの名無しさんNGNG
>>603
”表示”だから%lfも%fも同じでないの?
0605デフォルトの名無しさんNGNG
%fだと切りつめられても文句は言えないと思うが。
0606caslですNGNG
レジスタ GR0 の内容を 10進数で表示するサブルーチンを作成てください

メインプログラムでレジスタ GR0 に値を格納して,作成した表示ルーチンを呼び出して下さい。
0607助けて・・・・NGNG
子供プロセスを二人のみつくるプログラムを作成せよ。各プロセスは何か画面に
メッセージを表示してから終了すること。If文をつかうこと。ただし
1:親と子はそれぞれ違うメッセージを出力すること。
2:兄弟は全く同じメッセージを出力すること。
3:それ以外のプロセスは生成されないこと。
誰か助けてください・・・C言語でforkを使うらしいのですが。
0608デフォルトの名無しさんNGNG
>>607
googleで「fork プロセス」を検索せよ
0609助けて・・・・NGNG
>>608さん
ありがとうございます!googleでforkを検索するところまではやったのですが
プロセスを付け加えることは知らなかったので助かりました。
0610デフォルトの名無しさんNGNG
>>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はいらんけど。
0611デフォルトの名無しさんNGNG
http://www.jitec.jipdec.or.jp/1_13download/hani01.pdf
0612宿題ではありませんが、NGNG
当方プログラム自体まったくの初心者なのですが。
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

0613デフォルトの名無しさんNGNG
list[2] ?
0614デフォルトの名無しさんNGNG
a=a+1の次の行でa==len(list) のとき、 list[a] は、エラー、ってことか?
0615デフォルトの名無しさんNGNG
>>613
list=[2]
でした済みません。
そこを間違えてるわけでは、ありません。
0616612,615,616NGNG
>>614
あっ、わかりました。
listがlist[a-1]までしか、ないんですね。
0617612NGNG
>>> 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

で大丈夫でした。お騒がせしました。
0618デフォルトの名無しさんNGNG
よろしくおながいします。

「カタログする」「カタログされた」と、動詞で使われる「カタログ」はどういう意味なのでしょうか?
ファイルの操作だという事はなんとなくわかるのですが・・・・・
ググるにも「カタログ」という語が一般的過ぎて難しいのです。
0619デフォルトの名無しさんNGNG
>>618
英和辞典でcatalog引け
0620デフォルトの名無しさんNGNG
=card catalog; 【コンピユータ】 カタログ, (プログラムや命令の)一覧目録. 
− vt. カタログに作る[載せる]; 【コンピユータ】 (プログラムや命令を)カタログに載せる. 

辞書に載ってますた。驚きです。

「カタログされてないファイル」ってのはどういうことでしょうか。
作業領域内で一時的に作成されるファイルなどの事ですか?
0621デフォルトの名無しさんNGNG
>>620
汎用機?
0622606NGNG
>>610
?わからない...
0623610NGNG
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よ(本当か!?)。
0624デフォルトの名無しさんNGNG
>>621
そうです。
汎用機・・・・・・・・
言葉は知ってたけど現物は初めて見ました(w
0625デフォルトの名無しさんNGNG
よく覚えてないけど、カタログドプロシージャってのがあったなぁ。
0626ハッシュNGNG
ハッシュ表の大きさを10個として(領域を確保して)
ハッシュ検索プログラムを作成してください。
W杯が見たいのに帰れません。おねがいします。


0627デフォルトの名無しさんNGNG
keyは何だ?
文字列か?
0628ハッシュNGNG
文字列です
0629デフォルトの名無しさんNGNG
データは?
0630デフォルトの名無しさんNGNG
言語は?
0631ハッシュNGNG
言語はC言語です。
データはa,ab,abc,d,de,def,g,gh,ghiです。
0632デフォルトの名無しさんNGNG
なんだソリャ
0633キャノンNGNG
     ▼問題▼
◆◆反復型の成績判定◆◆
 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)
0634デフォルトの名無しさんNGNG
/* >>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]];
}
0635634の続きNGNG

#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;
}
0636デフォルトの名無しさんNGNG
HASHのサイズは10でお願いします
0637デフォルトの名無しさんNGNG
せっかくgperfで完全ハッシュにしてるのに何が不満なんだッ
0638デフォルトの名無しさんNGNG
要求仕様を満たしていないのが不満です
0639:NGNG
自分で考えなさい
0640デフォルトの名無しさんNGNG
(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))
0641デフォルトの名無しさんNGNG
あれか、フィフティーキャニバってゆうやつ
0642デフォルトの名無しさんNGNG
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;
}
0643デフォルトの名無しさんNGNG
ちゃんとコメントを書いてください。
コードと同程度の量のコメントが書けないのは問題外ですよ?
0644デフォルトの名無しさんNGNG
>>643
年寄りはされ。
0645デフォルトの名無しさんNGNG
>コードと同程度の量のコメントが書けないのは問題外ですよ?

コメントジェネレータでもつくるか(ワラ
$str =~ s/int/\/*int型変数の宣言*\//g
0646デフォルトの名無しさんNGNG
645通すとコードが動かなくなります。
0647デフォルトの名無しさんNGNG
int i=0;
printf("%d", i);

↓

/*int型変数の宣言*/ i=0;
printf("%d", i);


error C2065: 'i' : 定義されていない識別子です。
0648デフォルトの名無しさんNGNG
auto int i=0;
0649デフォルトの名無しさんNGNG
すべての行に40カラム目からコメントが書かれていて、
印刷すると紙の左半分がコード、右半分がコメントと
きれいに分かれるソースを昔見たことがあります。

>>643 ひょっとして、あのソースの作者様ですか?
0650デフォルトの名無しさんNGNG
>>643
マ板へ逝ってくれ(w
http://pc.2ch.net/test/read.cgi/prog/1020814131/l50
0651デフォルトの名無しさんNGNG
>>642
そりゃバイナリサーチ。
0652デフォルトの名無しさんNGNG
>>643
i++; //iに1を足す
0653デフォルトの名無しさんNGNG
>>652
それはコメントの量が多すぎます
0654デフォルトの名無しさんNGNG
>>651
わかってないね。バイナリサーチは実装がたまたまそうなっているだけ。
ハッシュ関数ってのは、入力からハッシュ値を計算して返す関数であって、
それがどう実装されていようと、この関数は、文字列を受け取って0-9 を
返すかんすうなの。わかる?
0655デフォルトの名無しさんNGNG
特定の文字列しか扱えないハッシュ関数か。しかもO(log n)。
つーか、>>626はハッシュ*検索*プログラムといってるが。
0656C初心者ですNGNG
テキストファイルのある特定の文字列を含んだ行を
異なるファイルとして抽出するプログラムをCで2〜3種類作る、
という課題が出たのですが、1つも思い浮かびません。
ご教授頂けませんでしょうか?よろしくお願いします。
0657デフォルトの名無しさんNGNG
>>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);
}
0658デフォルトの名無しさんNGNG
>>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);
}
じゃないのか?
0659656NGNG
>>657
ありがとうございます。
しかしチンプンカンプン・・・^^;
これから各関数の勉強をして参ります。

こんなにすぐ作れてしまうとは・・・凄い。
0660656NGNG
>>658
ありがとうございます。

・・・・・・・(^^;;

いろいろやってみます。
0661デフォルトの名無しさんNGNG
>>660
騙されるな
外部プログラムに渡しているだけで、Cで処理をしているわけじゃないから合格もらえないぞ
0662デフォルトの名無しさんNGNG
合格もらえないか要領がいいとして優がくるかのどっちかだな。
0663デフォルトの名無しさんNGNG
自分が採点するなら、要求は満たしてるから仕方なく合格はやるが、優はやりたくないな、という感じ
0664デフォルトの名無しさんNGNG
windowsだから、デフォルトで*grepが無いという罠
0665デフォルトの名無しさんNGNG
>>664
BCC5.5.1を入れておけば、Turbo grepが起動する罠。
0666デフォルトの名無しさんNGNG
>>664
find とかいうパチもんがあったっけ。
0667デフォルトの名無しさんNGNG
strtok()とか。

BM法と言う手もあるが。
0668デフォルトの名無しさんNGNG
strtok()は違うだろ。
0669デフォルトの名無しさんNGNG
strstr
0670デフォルトの名無しさんNGNG
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行です。
誰か教えてください。
0671670NGNG
ちょっと訂正。
3角形→n角形です。
0672デフォルトの名無しさんNGNG
VisualBasic使い始めた初心者なんですけど、
宿題の中で、時間をmsecまで出せというのがありまして。。。
どうやったらいいのでしょうか?
0673デフォルトの名無しさんNGNG
学校の授業でVBなんかやるんだ。楽しそうだな、色々と。
0674デフォルトの名無しさんNGNG
>>656
この処理は、
1、ファイルの1行リード
2、特定の文字列を含むか否かの判定
3、ファイルの1行ライト
となるわけだが、1や3は当然わかってるものとして進めていいよね?

で、2のヒントだが、strで始まる関数の説明を片っ端から読むべし。
ただ題意からして、解答のうち1つはstr関数を使わず自力で判定するのを求められてる
ように思う。その場合は単純に1文字ずつ比較していくのでいいのではないかな。
0675デフォルトの名無しさんNGNG
>>672
Googleで検索してみそ、使える関数がわかるから。
0676無責任な回答者NGNG
>>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番目の点の座標を計算している。
文字で解説するのは面倒なので、詳しくは身近で数学が得意な奴に聞け。
0677専門生NGNG
-655536と65536を正規化した場合、同じ結果になりますか?
どちらも0.1×2の17乗になってしまいます
0678デフォルトの名無しさんNGNG
正規化ってどういう正規化よ?
0679デフォルトの名無しさんNGNG
>>677
実はintが2バイトですか?
0680デフォルトの名無しさんNGNG
> どちらも0.1×2の17乗になってしまいます
ってんだからintじゃなくてfloat?
0681デフォルトの名無しさんNGNG
>>677
-655536は-65536の間違いとすると
結果の符号ビットを見てないだけとか。
0682デフォルトの名無しさんNGNG
単に5が一個余計なだけなら2の補数表現で下16bitだけとれば0だが、
0.1×2の17乗ってのがわからん。
0683351NGNG
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通りをおながいします
0684683NGNG
一行目のlittleのまえの1が抜けてしまいました
0685デフォルトの名無しさんNGNG
"indians"は"indian"1回分になるのか?
例えば

while (
{
0686デフォルトの名無しさんNGNG
途中で書いてしまった・・・
ようはコード中に"indians"と"indian"は両方出現してもいい?だめ?
0687683NGNG
>>685
多分なると思います。

 
0688デフォルトの名無しさんNGNG
#! /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."
0689デフォルトの名無しさんNGNG
#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);
}
0690デフォルトの名無しさんNGNG
>>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);
}
0691デフォルトの名無しさんNGNG
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);
0692デフォルトの名無しさんNGNG
>>690
3は書いてもいいらしいから有効利用しようぜ
0693デフォルトの名無しさんNGNG
>>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);
}
0694デフォルトの名無しさんNGNG
#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;
}
0695683NGNG
ありがとうございます!
0696デフォルトの名無しさんNGNG
691さんみたいな感じで、for文はできませんか?
0697デフォルトの名無しさんNGNG
>>691
なんで最初に改行して最後にしないの?
というかなんで\rを?
0698デフォルトの名無しさんNGNG
確かめてないけどこんなもんじゃないの

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);
0699683NGNG
for文とdo while文を同一画面を得るようにしたいんですが、わかりますか?
0700デフォルトの名無しさんNGNG
>>699
お前の日本語がわからん
0701デフォルトの名無しさんNGNG
>>699
お前、一から十まで全部聞いて済まそうとするなよ。
自分でやらんと何も身につかんぞ。俺の知ったことじゃないが。
0702683NGNG
>>698
エラー
0703683NGNG
>>701
鋭い視点から物事を突きますね!わかりますた。
for文は自力でやります!
0704デフォルトの名無しさんNGNG
あの、もし答えていただけたらうれしいのですが
「オブジェクトインスタンスクローン」って何ですか。
オブジェクトインスタンスのクローンのことですか。
そして、1つのオブジェクトインスタンスに
別のオブジェクトインスタンスが含まれるということはあるのですか。
0705デフォルトの名無しさんNGNG
>>704
シルベスタ・スタローンの親戚。
0706デフォルトの名無しさんNGNG
3点。
0707デフォルトの名無しさんNGNG
>>704
インスタンスのクローン(複製)です。

あるインスタンスAに別のインスタンスBが含まれることはもちろんありえます。
この場合のAを複製するには、シャローコピーとディープコピーの
二つの方法がありますが、単に「クローン」と言った場合、
どちらになるかは決まっていません。
0708デフォルトの名無しさんNGNG
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.
あるオブジェクトインスタンスのクローン内でステートの変更を行うと、
元のオブジェクトインスタンスに含まれる別のオブジェクト
インスタンスのクローンに対し、ステート変更メッセージが転送される。
0709デフォルトの名無しさんNGNG
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

ホクトナンバー1PK、あの「つじのぞみ」ちゃんのアカウントがなんとオークション中!!!
今なら○○○○もついてくるかも!!きゃーエッチ〜。もしかして女子高生の・・・ひ・み・つ♪
http://www.muhoho.com/~tsuji/
http://www.kinsan.ne.jp/uo/bbs2-4/petit.cgi

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
0710707NGNG
>>708
そういうことは先に言え(w

その訳は違うと思う。

元のインスタンス(A)があって、
それのクローンがいっぱいあるわけだ(B,C,D)。
で、そのうちの一つ、たとえばBのステートが変更されると、
ほかのクローン(C、D)に、メッセージが転送される

って意味じゃないのか?
0711デフォルトの名無しさんNGNG
>>708
なんかクローンが沢山あるみたいだけど、どういう話なのか見えないなあ。

〜ステートの変更を行うと、同じオブジェクトインスタンスに対する他のクローンにも
ステート変更メッセージが送信される?
0712708NGNG
考えてみれば、そういうことなのですね。
わかったような気がします。
ありがとうございました。
707様のことは忘れません。
また、どこかでお会いしたら、教えてください。

皆様、どうもお邪魔しました。
0713デフォルトの名無しさんNGNG
>>708
頼む、訳した文章を出版物にしないでくれ
0714708NGNG
しません、しません(w
0715デフォルトの名無しさんNGNG
State changes       状態の変化
in             〜内の
an object instance clone  オブジェクトインスタンスの複製
trigger          発端となる

以上で、
「オブジェクトインスタンスの複製内の状態の変化が発端となり」

transmission of 〜の送信
a state change message 状態変更のメッセージ
to other object instance clones 他のオブジェクトインスタンスの複製へ
of the same object instance. 同一種類のオブジェクトインスタンスの

「同一種類のオブジェクトインスタンスの他のオブジェクトインスタンスの複製へ、
状態変更のメッセージが送信される」

こんな感じ?
0716693NGNG
>>683

エラーにならんぞ。条件判定で=入れとかないとだめとか 1 littleになるとか
そのぐらいは自分でやれ。

まさかint main(void)書いていないということは無いよな。
少なくともエラーにはならんはずだけど。

、、、あり得る。
0717デフォルトの名無しさんNGNG
>>716
あんた誰よ?
693は俺だぞ
0718デフォルトの名無しさんNGNG
>>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 );
0719683NGNG
for文が出来ない・・・
0720683NGNG
for(式1;式2;式3)文 らしい
0721デフォルトの名無しさんNGNG
ぃっτょι
0722683NGNG
in function `main`って言われるのは何故??
0723683NGNG
出来た!と思ったら、10番目のlittleが出てきてなかった・・・
0724デフォルトの名無しさんNGNG
>>683
お前まだやってたのか。
0725デフォルトの名無しさんNGNG
今、DIME誌(小学館)を読んでいたが
高校生の「情報」教科書では
携帯電話やポケベルのサービス開始年を覚えなきゃダメなのか?
ファイルを管理するツリー構造の節の部分(ディレクトリ)を
「フォルダ」として覚えなきゃダメなのか?

俺も年取ったのか?(享年28)
0726デフォルトの名無しさんNGNG
>>725
死むな。生きる。
0727デフォルトの名無しさんNGNG
>>725
調べればわかるし、知ってても意味の無いものを丸暗記させるのが、日本の教育だしょ。
0728デフォルトの名無しさんNGNG
その検索の方法でも教えたほうがどれほど役に立つことか
0729デフォルトの名無しさんNGNG
このプログラムを実行するとエラーがでます。
なぜでしょうか。

#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);
}
0730デフォルトの名無しさんNGNG
確か、x^2-3 x+1=0を解くプログラムです。。
0731デフォルトの名無しさんNGNG
>>729
実行する以前にコンパイルできません。
それとエラーならエラーメッセージも貼りましょう。
0732デフォルトの名無しさんNGNG
x1=1.50;の所が、文字エラーとかで、
エラーが102でました。                     
0733デフォルトの名無しさんNGNG
>>731
エラーが出たなら貼りましょう。
0734デフォルトの名無しさんNGNG
>>732
エラー番号ではなく、エラーメッセージ全部じゃないと意味がありません。
0735デフォルトの名無しさんNGNG
>>729をトリプルクリックすると
x1=1.50;の後ろに大量の全角空白があってビビる
0736デフォルトの名無しさんNGNG
>>735
わかりました。
多分、空白のせいで、エラーが出てました。
ありがとうございます。
0737デフォルトの名無しさんNGNG
あと、c→cc
0738デフォルトの名無しさんNGNG
すいません、よかったら、このプログラムよくわからないので、
教えてくれますか?
0739デフォルトの名無しさんNGNG
#include<stdio.h>って何ですか、、って感じです。。
0740デフォルトの名無しさんNGNG
>>738
さすがに付き合いきれん。
先生に聞け(笑)
0741デフォルトの名無しさんNGNG
>>739
プレイの項目に「スタジオ内でのエッチも含む」という事です。
0742デフォルトの名無しさんNGNG
教えかけようとして、739見てやめた。
0743デフォルトの名無しさんNGNG
           从/

        __∧_∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      /(  ´Д`)V  < はッ!先生、ちがっ・・・!、寝てません!
  __ / /|  u゚_/ )   \_______________
  \  ( ( ̄ ̄⊆_ノ ̄\
  ||\ `ー⊃         \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0744デフォルトの名無しさんNGNG

問題2.
10個の非実数値を読み込み、それを小→大の順に並べ、
一番大きい数の平方根を求めよ。
条件 √xは言語Cでは、sqrt(x)と書く。
   このsqrt(x)を使ってはいけない。

この問題を教えてください。
0745デフォルトの名無しさんNGNG
>>744
非実数値ってなんですか?
0746デフォルトの名無しさんNGNG
整数のことだろ
0747デフォルトの名無しさんNGNG
虚数?
0748デフォルトの名無しさんNGNG
多分、整数だと思います。
0749デフォルトの名無しさんNGNG
(-_-).。oO(ヘイホーコソ・・・・)
0750デフォルトの名無しさんNGNG
問題の表現に問題があるな。
非実数値って言葉もそうだが、「それを小→大の順に並べ」は表示しろってことか? も明確でない。
さすがに最後の求めた結果は表示しないとおかしいと推測できるが。
0751デフォルトの名無しさんNGNG
平方根は実数値でいいのかな?
0752デフォルトの名無しさんNGNG
平方根は実数値でいいと思います。。
0753デフォルトの名無しさんNGNG
なにかこの問題の新しいスレがたっとりますが本人の仕業なのですか?
0754デフォルトの名無しさんNGNG
言語Cっていう言い方がカコイイ
0755デフォルトの名無しさんNGNG
本人の仕業です。
0756デフォルトの名無しさんNGNG
>>750
printf("求めました");
0757デフォルトの名無しさんNGNG
>>744
非負値の間違いと思われ。
0758るーぷNGNG
ループ関数ってなんですか?
0759デフォルトの名無しさんNGNG
文字列を扱うクラスstrを作りなさい
仕様は以下のとおりです、
1、コンストラクタで文字列を指定して
  初期化できるようにする
2、Setメンバ関数で文字列を設定するようにする
3、Lookメンバ関数で文字列を参照するようにする
4、Chainメンバ関数ですでに保持している文字列に
 指定された文字列を連結できるようにする。

main関数を用いてこのクラスが正しく動作することを確認する
0760るーぷNGNG
ループ関数ってなんですか??

0761デフォルトの名無しさんNGNG
google検索してみましたか?
0762るーぷNGNG
googleで検索したんですけど
いまいちいいサイトがないので、
わかりません。
0763デフォルトの名無しさんNGNG
>>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;
}

0764デフォルトの名無しさんNGNG
(゚д゚;)・・・・・
0765デフォルトの名無しさんNGNG
>>763
s/Lock/Look/g
0766デフォルトの名無しさんNGNG
>>765
どうでもいい。
0767デフォルトの名無しさんNGNG
>>764-765
ゴメソ
0768C初心者NGNG
ある特定の文字列を含んだ行を異なるファイルとして抽出するプログラム。

1)インプット用、アウトプット用ファイル名の入力。
2)検索キーワードの入力
3)検索キーワードの文字数を数える→strlen()で
4)インプット用ファイルをオープン
5)インプット用ファイルからfgets()で1段落をゲット
6)キーワードの一文字目とゲットした1段落の一文字目を比較
6−1)合致していなければゲットした二文字目を比較。
6−2)合致していればキーワードの二文字目とゲットした二文字目を比較。
7)上記の操作のパターンを用いてキーワードが含まれているかどうかを確認。
8)キーワードが含まれていればゲットした1段落を新ファイルにアウトプット

このような課題が出たのですが、1段落ずつGetする方法、
文字列が含まれていたらその段落全てをputする方法等、
分からない点が多いです。
ご教授頂けませんでしょうか?
0769デフォルトの名無しさんNGNG
1行(\nマデ)=1段落とすればいいのでは。
0770デフォルトの名無しさんNGNG
>>1768
1行目で行を出力といいながら
後半は段落全てを出力か・・・
0771デフォルトの名無しさんNGNG
実はhtmlファイルで、<p> ~ </p>を認識しなければいけないとか(マテ
0772デフォルトの名無しさんNGNG
>>768
行頭から改行までを1段落ということでいいかな。

>1段落ずつGetする方法
char型の十分大きい配列を用意してfgetsを使って読み込む。

>文字列が含まれていたらその段落全てをputする方法等
これは「文字列中にキーワードが含まれているか判定する関数」(A)と
「段落をputする処理」に分ける。
(A)はさらに「文字列とキーワードを1文字ずつずらしながら
(一致するか行末まで)ループする処理」と、
「文字列の先頭と、キーワードが一致するか判定する関数」(B)に分ける。
(B)の実装は「比較しながらキーワード末or不一致になるまでループまわす」ね。
0773スレ間違えた厨房NGNG
10 rem
20 dim a(20),b(20)
30 for i=i to 20
以下略

で数値をいくつか入力するとその数字と順位が表示
されるようにしたのですが平均値も表示するには
どうしたら良いのですか?
0774デフォルトの名無しさんNGNG
forループ中で点数を足してって合計求めて、
総人数で割ったものを表示するようにすればいい。
べつにオーバーフローとか気にする問題でもないんだろ。
0775スレ間違えた厨房NGNG
>>774
BASIC初めて4時間でまだ何も・・・
0776768NGNG
皆さんありがとうございました。
大変参考になりました!
0777スレ間違えた厨房NGNG
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

で平均値を割り出すには何を加えたらよいのですか?
0778デフォルトの名無しさんNGNG
>>777
とりあえず120に=が抜けていると思いまーす。
0779スレ間違えた厨房NGNG
>>778
単なるミスですので気にしないで・・・
0780デフォルトの名無しさんNGNG
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);
}
}
}

これを複数のファイルが読み込めるように変更しなきゃならんのです。
どうしたらよいですか?
0781デフォルトの名無しさんNGNG
宿題がでました
javaチャットを作ってこいとの事です。
どなたか簡単なjavaチャット作っていただけませんか?
0782デフォルトの名無しさんNGNG
http://freshmeat.net/search/?q=java+chat
好きなのをもってけ。
0783デフォルトの名無しさんNGNG

-------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つであると思われる。
コイツの過去オークション評価を見ても容易に悪質な人間性が分かる。 要注意。
0784デフォルトの名無しさんNGNG
>>783
一つ目はともかく二つ目は落札者のほうが一方的に悪いな
0785デフォルトの名無しさんNGNG

  ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (    ) < >>777 (a(1)+a(2)+a(3)+ … +a(20))/20
〜(___ノ   \_________



  ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,・∀・) < なんつったりして
〜(___ノ   \_________
0786デフォルトの名無しさんNGNG
> sum = 0.0
> for I=1 to 20
> sim += a(i)
> next i
> sum /= 20.0
BASICの文法は解らんけど
sumは実数型でな。
0787786NGNG
×sim → ○sum
×I → ○i

786が実行できたらいやだなぁ。
0788デフォルトの名無しさんNGNG
>>784
このIDと評価はあくまでもコイツの悪行の一部に過ぎないからね。
まぁここに載せてるのは軽い方の部類やね。氷山の一角って事よ。
 それなら、試しにチミがコイツと取引してみなよ。この警告無視してさ。
きっと面白い結果になると思うけど。
0789デフォルトの名無しさんNGNG
>>788
やめておく、欠けたCDなんかいらんぜよ
0790デフォルトの名無しさんNGNG
Cで画像処理をするプログラムを作成中なんですが、
JPGを扱うためjpeglibを使おうとしています。

それで、画像のサイズ変更(拡大、縮小)を行うためには
どうすればいいでしょうか。jpeglibにリサイズするようなものが
準備されているのでしょうか。



0791デフォルトの名無しさんNGNG
>>790
調べれば?
0792デフォルトの名無しさんNGNG
VBScriptなどを使って、ログオンしているユーザーのディレクトリを
指定することできますか?
例えば
Win9x
c:\windws\profile\ユーザ名
Win2k
c:\DocumentAndSetting\ユーザ名
という風にOS毎の差違がありますが、実行時にどのOSでも
動作できるようにできるでしょうか?
言語はWindowsにRuntimeなどを入れなくても使えるものであれば、
バッチファイルでもVBScriptでもexeでもOKです
0793屋根裏男 ◆ZMVdytmo NGNG
明後日までにC++言語でdumpプログラムを作らなければならなくなりました。
C++言語らしく中身を書けだそうです。
お願いします
0794デフォルトの名無しさんNGNG
何か板違いかもしれませんが、聞ける場所がないのでここで聞きます。

任意の文字列を検索する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>"

まだシェルスクリプトについて習ったばかりフォームから送られてきた文字をどうやって処理するかもわかりません。
というか、最初はフォームの作り方すら知りませんでした。
というわけで、だれか、おしえてください。ヒントでもいいです。
0795デフォルトの名無しさんNGNG
>>794
おまえそれ宿題じゃなくて、アタックをかけたり、
エロサイトを巡回保存したいだけだろ?
0796デフォルトの名無しさんNGNG
>792
できます。
>793
正直、dumpをC++らしく作る、って言われても、
iostream使うくらいしか、C++らしくないような……
>794
Ruby!(笑
0797デフォルトの名無しさんNGNG
>>795

アタックとかよくわからないんですが・・・

>>796
Rubyとは?
0798794NGNG
期間は2週間なんですが、ここで教えてもらえそうもないところを見ると、すごい長いプログラムになるんですか?
それとも、板違いなんでしょうか?
0799デフォルトの名無しさんNGNG
webprog板へいけ
0800794NGNG
>>799

なるほど。こういう板があったのですね。
そちらで聞いてきます。
ありがとうございました。
0801792NGNG
>796
ありがとうございます!なにかヒントになる情報でも教えて頂けないでしょうか?
0802デフォルトの名無しさんNGNG
>794
なぜにbashなのか知りたい。
それと、sedはOKなのにperlやawkがダメな理由も知りたい。

perlとawkは使わないこと、という事はRubyやCやC++やJavaはOKなんだな?

0803デフォルトの名無しさんNGNG
/*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の辺りから、どうしてそうなるのかわからないので、
教えていただける方、教えてください。
0804デフォルトの名無しさんNGNG
-=・=-  -=・=- その式どこかで見た
0805デフォルトの名無しさんNGNG
よく覚えてますね
0806デフォルトの名無しさんNGNG
-=・=-  -=・=- ここの729で見た
0807デフォルトの名無しさんNGNG
少しは分かった気がするので、再チャレンジ
0808デフォルトの名無しさんNGNG
x1=1.50の辺りからって・・・

     ほとんど全部じゃねぇか!
ヽ(`Д´)ノ
  (  )
  < ヽミ3


















-=・=-  -=・=-  って言って欲しかったか?
0809デフォルトの名無しさんNGNG
どうしていきなり、1.5が出てくるのか、よくわかんないです。。
0810デフォルトの名無しさんNGNG
1.5
解のひとつに収束する適当な初期値
0811デフォルトの名無しさんNGNG
>>803
反復法は挙動が怪しいので、ニュートン法を使え。
0812デフォルトの名無しさんNGNG
>>803
そのプログラムがANSI準拠のC言語でかかれているならコンパイルできない
よってそのプログラムは/*x^2-3 x+1=0の解*/を求めるプログラムではない
0813デフォルトの名無しさんNGNG
>>810
ありがとうございます。

cc=1.0って何ですか?
ニュートン法知らないです。
0814デフォルトの名無しさんNGNG
>>813
812の言うようにプログラムが間違っているが、
反復法知ってるなら分かるだろ?
0815デフォルトの名無しさんNGNG
>>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に適当な初期値を入れて
繰り返す。
0816デフォルトの名無しさんNGNG
>>813
つーか、f(x) = xと、f(x) = (x^2+1)/3 の交点を強引に求めているが、
これって学校の宿題なのか?
0817デフォルトの名無しさんNGNG
>f'(x) = 2x - 3 だから、

何でこうなるんだ?
0818デフォルトの名無しさんNGNG
学校の宿題です。
0819デフォルトの名無しさんNGNG
>817
リア厨?
0820デフォルトの名無しさんNGNG
>>818
どんな問題か書けよ
何をどう説明すればいいのかわからんだろ
本当に反復法は分かってるのか?
0821デフォルトの名無しさんNGNG
>>817
微分の事知らないの?
0822デフォルトの名無しさんNGNG
反復法よくわかっていません。
問題は、「x^2-3 x+1=0の根を少なくとも1つ求めよ。」
です。
0823木村 キタキタマシーンNGNG
まず、左辺と右辺を入れ替えて考えろ
0824デフォルトの名無しさんNGNG
.......,,,,.  ,,,,,,.....
-=・=-  -=・=-
   く。
  -=ニ=-    < 解の公式使えばぁ
0825デフォルトの名無しさんNGNG
マイナスの数が入力されるまでの入力データを使って平均値を求め、個々のデータと平均値の差の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;
}
このあとどうしたらいいのかなぁ。平均の求め方がわからないよ。
助けて。
0826デフォルトの名無しさんNGNG
まず算数の教科書を捜し出せ
0827デフォルトの名無しさんNGNG
解の公式を使って、プログラムングするのですか?
0828デフォルトの名無しさんNGNG
プログラミングですね。。
0829デフォルトの名無しさんNGNG
まず手計算しろ。
そのとき考えたことを全部声に出してそれを録音しておけ。
雑念は捨てろ。ノイズはバグのもとだ。
録音したのをもとにプログラムをつくれ。
0830デフォルトの名無しさんNGNG
>>825
入力された値を全部足して割ればいいじゃん。(プログラム技術か?)
どうでもいいが、問題で与えられた雛型プログラムのnは、おそらく入力された
データの個数を保持するための変数だと思われ。だからscanfで読んだ値をnに
いれないほうが先生もにっこりすると思うよ。
0831デフォルトの名無しさんNGNG
つーか、平均と標準偏差だけなら配列はいらん。
0832デフォルトの名無しさんNGNG
分散は二乗の平均から平均の二乗をひくんでしたっけ?
0833デフォルトの名無しさんNGNG
そう。だけど>>825は差の二乗和であって分散ではない罠。
0834デフォルトの名無しさんNGNG
分散って、個々の値から平均を引いたものの二乗和じゃないの?つまり>825
0835デフォルトの名無しさんNGNG
文字列として読み込まれた16進数字を整数値に変換する関数を作成しなさい。

C言語でプリーズ
0836デフォルトの名無しさんNGNG
>>832,833
まず分散の定義から。
http://www.geocities.co.jp/Technopolis-Mars/5427/mathtrtop.html
0837デフォルトの名無しさんNGNG
sscanf(buf, "%x", &hex);
0838デフォルトの名無しさんNGNG
>>835

char str[128];
int i;

gets(buf);
i = strtol(buf, NULL, 16);
0839デフォルトの名無しさんNGNG
ウホ?それだけでできてしまうのか????
>>838
0840デフォルトの名無しさんNGNG
>>838
buf->strの間違いですた
0841デフォルトの名無しさんNGNG
>>838
問題の要求満たしてないような木がするぞ。
0842837NGNG
わしのはだめですか?
0843デフォルトの名無しさんNGNG
>>838
できればint->longにすてくれ。
0844デフォルトの名無しさんNGNG
合ってるかどうか知らないけど、
質問者にスルーされてる>>837がかわいそうです。
0845デフォルトの名無しさんNGNG
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

さっぱりわかりません。お願いします。
0846デフォルトの名無しさんNGNG
行番号BASICで仮名は片仮名のみか…
なんでこんな時代錯誤な物が。
0847デフォルトの名無しさんNGNG
a D(1)
i M = D(I)
u PRINT M

30 30 30 20 10 10 10 10 10
0848デフォルトの名無しさんNGNG
さっぱりわからんとかこのスレに丸投げしに来るやつら
2chばっかやってっからそうなるんだよ、
自分が落ちこぼれてることを自覚しろよ
0849デフォルトの名無しさんNGNG
uってPRINTいるの?
0850デフォルトの名無しさんNGNG
>>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;
}
0851845NGNG
有り難うございます。
なぜそうなるのか簡単で結構ですので教えてください。
0852デフォルトの名無しさんNGNG
>>851
教科書でも読んでおけ
0853デフォルトの名無しさんNGNG
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;
}
0854853NGNG
ガーン先越されてた
0855デフォルトの名無しさんNGNG
>>853
わたしゃ貴殿のコードのほうが好きですよ。気を落とされますな。
0856デフォルトの名無しさんNGNG
>>853
>>850はバグってるから気を落としなさんな。上位と下位が逆になっとる。
0857デフォルトの名無しさんNGNG
これでどうだ!ってもう遅いか・・・

int mystrtol(const char *str)
{
int tmp = 0;

do {
tmp *= 16;
tmp += toupper(*str) - ((*str <= '9') ? '0' : 'A' - 10);
} while (*++str);

return tmp;
}
0858デフォルトの名無しさんNGNG
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;
}
0859デフォルトの名無しさんNGNG
>>858
while内に str++; を書き忘れた
0860デフォルトの名無しさんNGNG
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);
}
0861デフォルトの名無しさんNGNG
>860
手っ取り早いのは、int sum;をstatic int sum;にする。
0862835NGNG
ありがとうございました。。。。
本よんでもなかなかわからんっす(;´д`)

レスおくてれすまそ
0863860NGNG
ほんとだ・・・すげぇ

なんでこうなるんだろー?
本で調べてみます
0864デフォルトの名無しさんNGNG
>>834
分散は差の自乗の平均。
0865デフォルトの名無しさんNGNG
>>851
言語なんてどうでもいいから、最小値を求めるアルゴリズムを
フローチャートで考えてみる(もちろんノートとかに書く)ことから始めろ

>>863
それ以前に、
int sum ;
sum += n;
は激しく間違っている。int sum;の時点でsumにどんな値が入っているかわからない。
よって、返される値もどうなるか分からない。

静的変数でも、static int sum = 0;として初期化しておかなくていいんだっけ?
ANSIは初期化無し静的変数には0を入れるんだっけ?
グローバル変数には0が入るけど・・・
0866デフォルトの名無しさんNGNG
>>865
static int sum;とした時は、sumは静的領域に取られるので、プログラム開始
の初期化時に0で初期化される。
0867デフォルトの名無しさんNGNG
>>863
staticじゃない場合、add()に入るたびに新しくsumが作られ
add()から出るさいに解放されるから。
0868デフォルトの名無しさんNGNG
>>866
フォローさんくす
グローバルだけじゃなく、staticもそうだったか
まあ、初期化した方がわかりやすくていいと思う
0869683NGNG
int a=1,b;
int *p;
p=&a;
b=*p;

これが意味がよくわかりません!
0870デフォルトの名無しさんNGNG
int a;
int b;
int* p;
a = 1;
p = &a;
b = *p;
こんな感じで書き直してもわかんないか?
わからなきゃ、ポインタ専門の解説書があるのでそれでも読め。

0871デフォルトの名無しさんNGNG
aと&aは何が違うんですか?
0872デフォルトの名無しさんNGNG
>>871
変数と変数のアドレス
0873デフォルトの名無しさんNGNG
C言語だったら、多分&aはaの格納されているメモリのアドレス。
0874871NGNG
p=&aとp=aは??
0875堀越NGNG
[email protected]
[email protected]
↑これで全て解決。
0876デフォルトの名無しさんNGNG
>>874
pにaのアドレスを代入。
pにaの中身を代入。

宿題か?
0877871NGNG
なるほど!!
つまり、*pがp=&aなんですね!?
0878デフォルトの名無しさんNGNG
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;
と実質まったく同じ効果。
変数は甘い文法以外、通常宣言通りに使わなければイクナイ
*/
0879デフォルトの名無しさんNGNG
おい(w
0880871NGNG
>>876
宿題の一部を質問してます。
宿題をまるまる書いたら怒られた経験があるので・・・
0881デフォルトの名無しさんNGNG
>>880
こんなスレに頼ってたら就職できないぞ。
0882デフォルトの名無しさんNGNG
>874
p = a;
はエラーになる。
pはアドレスを入れる変数。
だから、必ず正の値。
&aもaのアドレスだから必ず正の値。
だから、
p = &a;
はOK
でも、aはint型で負の値を取ることもあるから
p = a;
は不正。
例しにコンパイルしてみろ。
0883デフォルトの名無しさんNGNG
>>882 君が初心者なのはよーくわかった。
0884デフォルトの名無しさんNGNG
>>882
>例しにコンパイルしてみろ。

お前もな。
0885デフォルトの名無しさんNGNG
ネタだとおも痛い
0886デフォルトの名無しさんNGNG
型が違(省略)
0887871NGNG
何故、b=aとしないのか・・・
0888デフォルトの名無しさんNGNG
ポインタを説明するためのコードだから。
0889882NGNG
>883,884
おれのLSICだとちゃんとWarningがでるけど。
アドレスを入れるべきポインタ変数に、int型のような値を入れても無意味ってことを説明したつもりなんだが。
0890デフォルトの名無しさんNGNG
>>878
ポインタのメリットがびっくりするくらい伝わらないな。
俺もそう言うサンプルで勉強したから激しく悩んだ。
0891デフォルトの名無しさんNGNG
>>890
小さなサンプルでポインタのありがたさを伝えるのはムズイね。
せめて関数とか作らないと。
0892デフォルトの名無しさんNGNG
>>889 根本的にポインタを理解して無いだろ。

> でも、aはint型で負の値を取ることもあるから
> p = a;
> は不正。

なんだこりゃ。正負云々の問題じゃない。
0893デフォルトの名無しさんNGNG
int *p = &aって

unsigned int p = &aと一緒ってことで良いんですね?
0894878NGNG
>>890
俺の解説が悪かった?
0895デフォルトの名無しさんNGNG
>>894
いや、言いがかり。

言ってることは全部正解。

でも、このサンプルには嫌な思い出があるんで。

同じ関数内で変数のエイリアス(語弊あり)を作っても意味無いじゃん。
元の変数そのまま使えば済む話・・・じゃあポインタって何に使うの?
難しいって言うか必要ないじゃん。

的な。
0896デフォルトの名無しさんNGNG
>>894
君の解説は問題ないかと、元のサンプルが糞かと
0897882NGNG
初心者はint型 と int *型の違いすら理解してないんだから。
まず正負でポインタの感覚をつかんだ方がわかりやすいと思ったから、ああいう説明にしたんだよ。
0898871NGNG
結局、よくわからないので、宿題を全部書きます。
一行一行、何をやってるのか解説しないといけないんです・・・

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;
0899871NGNG
3行目は「dにbを代入する」で、
4行目が「pにdのアドレスを代入」です。
ここで力尽きました・・・
0900878NGNG
失礼、最後の行
変数は → 識別子は
0901デフォルトの名無しさんNGNG
>>897
ホントかよ?
あんなむちゃくちゃな説明されたらわかるもんもわからんくなるかと
0902デフォルトの名無しさんNGNG
初心者の理解を「助ける」ための嘘は比較的発生しがちだけど、わりと
危険なかほりがします
0903デフォルトの名無しさんNGNG
>>882
アドレスは正だからとか、intが負になることがあるからダメとか
それで何が理解できるんだって感じれす
0904デフォルトの名無しさんNGNG
>>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
0905882NGNG
>901
893読んでみろよ。
unsigned int とポインタは同じなんじゃないかって893は勘違いしてくれただろ。
ポインタとunsigned int が似ているってのは認めるよな?
sizeも一緒だし、取り得る値の範囲も一緒。
あとは、ポインタとunsigned intの違いを893が理解すればいいんじゃないのか。

0906デフォルトの名無しさんNGNG
>>905
>ポインタとunsigned int が似ているってのは認めるよな?
unsigned君ですがw。

根本的に違うと思われ。
一緒なのはサイズと取り得る値の範囲だけ。

この部屋は四畳半で、一人でぎゅうぎゅうだ。だからここは便所だ!
と、他人の下宿で用を足すようなもの。
0907デフォルトの名無しさんNGNG
> pはアドレスを入れる変数。
> だから、必ず正の値。

根拠は?

> でも、aはint型で負の値を取ることもあるから
> p = a;
> は不正。

じゃぁこれは?
signed int i = -10;
unsigned int j = i;
0908882NGNG
>906
「似ている」って日本語の意味がわからないのか?
同じとは書いてないぞ。

0909デフォルトの名無しさんNGNG
ポインタとunsignedは言語の実装としては近いかもしれないが、概念的には
非常に遠いと思う。
0910デフォルトの名無しさんNGNG
悪い方向に勘違いさせといて、

> あとは、ポインタとunsigned intの違いを893が理解すればいいんじゃないのか。

もうダメぽ。
0911デフォルトの名無しさんNGNG
>>908
「同じ」と「根本的に違う」は反義語。
「似ている」と「根本的に違う」も反義語。


0912デフォルトの名無しさんNGNG
(´ー`)。o ○(そもそもポインタとunsigned intのどこをどうとって似ているって言うんだろう・・・共通点なんて皆無な気がする・・・)
0913デフォルトの名無しさんNGNG
>>912
32ビット(語弊あり)で0〜2の32乗-1(語弊あり)の値を表現できるって所じゃないの?
0914デフォルトの名無しさんNGNG
>>913
unsignedとポインタのサイズが同じって仕様で規定されてたっけ?
0915デフォルトの名無しさんNGNG
>>914
far。
0916デフォルトの名無しさんNGNG
>>914
初めからそう言えばこんなに盛り上がらなかったね。
IA-32エンハンスドモードな頭になってるよ〜。
0917デフォルトの名無しさんNGNG
http://www2.airnet.ne.jp/pak04955/ramble-199912.htm

> ポインタ変数の大きさはintの大きさと同じではない。
> 現状sizeof(int) = 4, sizeof(void*) = 4の環境が多いが,
> 64bit環境ではsizeof(int) = 4, sizeof(void*) = 8となる場合がある。

らすぃ
0918デフォルトの名無しさんNGNG
(´ー`)。o ○(で、結局ポインタとunsigned intのどこをどうとって似ているって言うんだろう・・・)
0919デフォルトの名無しさんNGNG
>>918
メモリ上の1領域である。
0920878NGNG
>>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にコピー
0921デフォルトの名無しさんNGNG
>>919
charとポインタもすごく似てるよね。
0922デフォルトの名無しさんNGNG
>>921
俺に絡まれても困るんだけどねw
0923デフォルトの名無しさんNGNG
「昔はアドレスを平気でintに突っ込んでたもんだ (゚Д゚ )y-~~ 」
って雑誌のコラムか何かで見ますた。 ( ´・∀・`) へー
0924878NGNG
ラストの前2行目
左辺式が一度だけしか評価されないのを除いて
0925デフォルトの名無しさんNGNG
>>923
Windows上では今でも平気で突っ込んでます
最近はINT_PTRだけど
0926871NGNG
p=&dというのは、dを代入じゃなく、dのアドレスを代入でいいんですね!
0927デフォルトの名無しさんNGNG
>>926
大正解。
0928デフォルトの名無しさんNGNG
>>871
まるでパズルだな
混乱させる為の問題としか思えん

変数名を&で修飾する→ポインタになる
ポインタを*で修飾する→参照先になる
*(&a)はaと同じ
ポインタpに&aが代入されていれば、*p → *(&a) → a ってこと
0929デフォルトの名無しさんNGNG
>*p *= *s;
間接参照演算子の*と乗算代入演算子の*=を両方出して、わざと紛らわしく書いてるのか。
つーか、その区別をちゃんとできるようにという意図で出題したんだろうと思うが。
0930デフォルトの名無しさんNGNG
はじめまして。。

 変数 a は実数型であるとする。
 a の値がある特定の値と等しいかどうかの同値判定を行いたい。
 どのように行えばよいかを答えよ。

思いっきり厨房質問なんですが、
聞いてみていいでしょうか。
0931デフォルトの名無しさんNGNG
abs(b-a)<e
0932デフォルトの名無しさんNGNG
>>931
Cならfabsじゃないの?
0933デフォルトの名無しさんNGNG
>>930
マルチ氏ね
0934デフォルトの名無しさんNGNG
みなさんありがとうございます。
床そうじが回避できそうです。
氏にます。いつか氏にます。
0935デフォルトの名無しさんNGNG
>>931
a==b
でダメなら、
fabs(a-b)<=e*fabs(a)
かな。これでもまだちょっと危険が残るけど。。。
0936デフォルトの名無しさんNGNG
Cゲンガーっていまだにfloatメインで使ってるの?
0937デフォルトの名無しさんNGNG
>>936
あんたは?
0938デフォルトの名無しさんNGNG
2進16桁を10回連続でキーボードから入力して、入力した順番に16進数で出力するのにはどうしたらいいですか?
for(i = 0; i >= 9; i++ )
{

}
この{}の中が分からないのでお願いします。
0939デフォルトの名無しさんNGNG
age
0940デフォルトの名無しさんNGNG
>>938
条件式がいきなり成り立たないがいいのか。
0941デフォルトの名無しさんNGNG
>>938>>940
ワラタ
0942デフォルトの名無しさんNGNG
>>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;
}
0943初心者NGNG
得点を次々入力して、もし70以上なら合格、70未満なら不合格とし、
合格人数、不合格人数、受験者合計、最高得点、最低得点、平均点を出力する
プログラムを設計・開発せよ。なお、999が入力されたらループを抜け、
999はカウントしない。

これの最高・最低得点ができません。
お願いします。
0944デフォルトの名無しさんNGNG
max min という変数を作る。
とりあえず最初の人の得点を入れる。

後は
if (max < 得点) max = 得点;
if (min > 得点) min = 得点;
の繰り返し。
0945デフォルトの名無しさんNGNG
>>943
最初にいきなり999を入力した場合はどう出力すればいいのですか?
0946デフォルトの名無しさんNGNG
4個のforループを使い次のように表示してみましょう("|"はShift+\で入力します)。横方向のサイズは20になっていますが、この数はプログラムの最初で変数に代入し後で自由に換えられるようにしてください。
--------------------
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
--------------------

教えてください。全然わかりません。
0947デフォルトの名無しさんNGNG
--------------------
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
--------------------

946じゃなくてこれです
0948デフォルトの名無しさんNGNG
>>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;);
}
0949初心者NGNG
>944
サンクスです。できますた
elseとか使ってたので変な結果になってました。
0950デフォルトの名無しさんNGNG
>>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;
}

0951デフォルトの名無しさんNGNG
>>950
仕様を満たしていないので59点
0952デフォルトの名無しさんNGNG
>>946-947
2chでは、連続した半角スペースは削除される。
行の先頭もまた然り。
0953デフォルトの名無しさんNGNG
>>948
美しい・・。
0954デフォルトの名無しさんNGNG
>>948
>for(;false;)for(;false;)for(;false;)for(;false;);
(・∀・)イイ!!
while (0); while (0); if (0);else;
とか書いてみたくなるNE!
0955ほんまわからんNGNG
文字列として読み込まれた16進数字を整数値に変換する関数を作れ

Cでおながい。
なんか本とか読んでもわからなかったです。
0956デフォルトの名無しさんNGNG
何回この質問に答えたらいいのよ?
0957デフォルトの名無しさんNGNG
int hexstr_to_int(const char* hexstr)
{
 return (int)strtol(hexstr, NULL, 16);
}
0958デフォルトの名無しさんNGNG
int hexstr_to_int(const char* hexstr)
{
int i;
sscanf(hexstr,"%x",&i);
return i;
}
0959デフォルトの名無しさんNGNG
int hexstr_to_int(const char* hexstr)
{
 return rand();
}
0960ほんまわからんNGNG
エラーでるんですが・・・w
0961ほんまわからんNGNG
実行できないぞ、ゴルァ
0962デフォルトの名無しさんNGNG
このすれの800番台半ばをみたら?
0963デフォルトの名無しさんNGNG
>>955
同じネタは辞めて。
0964ほんまわからんNGNG
できないんですが
0965デフォルトの名無しさんNGNG
できます
両手を合わせて胸の前に置きイエス様の降臨を待ちつづけましょう
0966デフォルトの名無しさんNGNG
エラーが出るときは、少なくともエラーメッセージを書いてや
0967ほんまわからんNGNG
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/mondai64.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

です・・・すいません。
0968デフォルトの名無しさんNGNG
>967
VCかしら?
0969ほんまわからんNGNG
そうです>968さん
0970デフォルトの名無しさんNGNG
>>967
main()関数書いてや。
0971Delphiプロンプト受講者NGNG
Delphi6の宿題なのですが
{$apptype console}
uses sysutils; を最初に入れて

�@「ローンを複利で増えると同時に、毎期一定額(最初の借入金の10%)の
返済をした場合、返済し終わるまで何期掛かるかを求めるプログラムを
作成せよ。Loan関数を使用し、利率は3.82%、借入金は10万円とする。」

�A「返済条件は�@のままで、loan関数をつかって、利率5.43%の場合と利率2.12%
の場合では返済期間に何期の差があるかをこたえなさい。」

の宿題を出されましたが手続きの宣言だの呼び出しだの
変数の設計をしろと既にパンクしています。今更ながらDelphiの壁の厚さに
ぶち当たった、ヘタレ物に指導をお願いいたします

0972ほんまわからんNGNG
>>970
どこにかけばいいんでしょうか?
0973デフォルトの名無しさんNGNG
プロジェクトの設定がどこか変なのでは?
0974デフォルトの名無しさんNGNG
>972
もしかしてソースコード中にmain()書いてないノカ?
0975ほんまわからんNGNG
もちろんです。
でもどこにかけばいいかわからんです
0976デフォルトの名無しさんNGNG
とりあえず、コンパイルするソースコードの一番下に書いとき。
0977デフォルトの名無しさんNGNG
>>975
そこにかけ
0978ほんまわからんNGNG
わかんないっす・・・泣き
0979デフォルトの名無しさんNGNG
C言語がまったくわからんということですか?
0980ほんまわからんNGNG
まったくではなく、いまいち定義関数がわからないんで
0981デフォルトの名無しさんNGNG
問題のソースコード全文をここに貼ってくだされ。
もう、話だけじゃわからん。
0982ほんまわからんNGNG
#include<stdio.h>
#include<string.h>

int hexstr_to_int(const char* hexstr)


{
int i;
sscanf(hexstr,"%x",&i);
return i;
}


ども!
0983デフォルトの名無しさんNGNG
http://www.nozomi.dr.ag/
このサイトを日本語訳してください
0984デフォルトの名無しさんNGNG
>982
その下に、これを書いてみてよ。

int main(void)
{
  int x;
  
  x = hexstr_to_int("10");
  printf("%d\n", x);

  return 0;
}
0985ほんまわからんNGNG
できたヽ( ´ー`)ノ
でもリクツがわからんw
0986デフォルトの名無しさんNGNG
どのへんの理屈がわからんの?
0987デフォルトの名無しさんNGNG
>>985
かなり落ちこぼれてますね・・・
先生によく教わって下さい
0988デフォルトの名無しさんNGNG
>>985
とりあえず理屈はさておいて、C言語では一番最初に main() から実行が
始まると言う仕様になっているってことだよ。
0989デフォルトの名無しさんNGNG
誰か新スレ立ててくれ
0990デフォルトの名無しさんNGNG
よし、こんどこそ漏れが立てよう。
0991デフォルトの名無しさんNGNG
新スレ立てました〜速やかな移行をおながいします(^▽^)

ほう、宿題とはな。
http://pc.2ch.net/test/read.cgi/tech/1024592344/
0992デフォルトの名無しさんNGNG
>>991
スレ立てお疲れ
0993 ◆6obdUsOA NGNG
test
0994デフォルトの名無しさんNGNG
0995デフォルトの名無しさんNGNG
0996デフォルトの名無しさんNGNG
0997デフォルトの名無しさんNGNG
0998デフォルトの名無しさんNGNG
0999デフォルトの名無しさんNGNG
999?
10001000NGNG
              ∧            ∧
              / ・           / ';,
             /  ';          /  ';  1000 ワショーイ…
             /   ;______/   ;
          /                  \
         /    /          \     \
        /´   (  ) |____|  (  )      |
       |  /////  (  |     :|    )  /////    |
       |    (   ) :|      |  (   (       |
        |    )  (  |     |   )   )      |
        |   (   ) ';    /   (   (     /
         \  )  (   \/    )   )  ../
           ヽ              ........:::

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。