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


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

C/C++の宿題片付けます 143代目



1 名前:デフォルトの名無しさん [2010/11/16(火) 22:14:58 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 142代目
hibari.2ch.net/test/read.cgi/tech/1288531658/

408 名前:388 mailto:sage [2010/11/25(木) 18:09:56 ]
>>405
変数名を直して一部加筆

short int y;
for( ディレイ時間分ループ )  ←*1
 enqueue( 0 ); 
while(入力ファイルから short 一つを data に読み込む) {  ←現行のソースに有る
  enqueue( data );
 y = dequeue() 
 data に y を重み付き加算 ← *2
 出力ファイルに data を書き込む ←現行のソースに有る 

つまり君が書くべきは *1 と *2 だけなんだけどな

ディレイ時間は argv[1] で与えられる delay だ、これがどんな単位で与えられるか又、サンプリングレートが幾らか不明なので
必要なループ回数が判らない
例えば delay の単位がmsecでサンプリングレートが20msec なら必要なループ回数はdelay / 20 という事になる

重みは argv[2] で与えられる weight だ、これも%で与えられるのか小数で与えられるのか判らないけど小数で与えられるなら *2 は
data += (short int)( (double)y * weight );
となる

>>383 が書いた様に、若い芽を摘み取りたくなかったので抽象的な表現を行ったのだけど伝わらないなら仕方がないだろう


409 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 18:25:20 ]
[1] 授業単元: プログラミングおよび演習
[2] 問題文(含コード&リンク):
1.解答例のカレンダー(下にリンクはってます)について、dayofweek()を再帰で書き直せ。
 ◦ある月の1日の曜日は、前の月の日数と1日の曜日から計算できる
◦ある年の1月1日の曜日は、前の年の日数と前の年の1月1日の曜日から、あるいは、その年の日数と次の年の1月1日の曜日から計算できる
◦2000年1月1日は土曜日である

2.このプログラムについて、任意の年月についてdayofweek() の呼び出し回数が何回になるかを理論的に考察せよ。また、呼び出し回数を計測し、結果が実際に理論と合致しているかを確認せよ。
2.ヒント:呼出し回数を数えるためにグローバル変数を使用する

[3] 環境
 [3.1] OS: Windows
 [3.2] gcc
 [3.3] C
[4][2010年12月1日08:45まで]
[5]現在再起を習ったばかりで複雑なものは習っていません。

解答例のカレンダー↓
codepad.org/4rnf6hRf


410 名前:389 mailto:sage [2010/11/25(木) 19:02:18 ]
>>405
ファイルのオープンなんかより生ポインタのが千倍危ないんだけどね
codepad.org/E3nlvpXW

411 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 19:48:02 ]
>>410
元データを weight 分減少させる必要は無いと思うよ


412 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 20:46:57 ]
>>409
再帰?謎過ぎる問題だな

413 名前: ◆EkRIf9bJPo [2010/11/25(木) 20:47:26 ]
>>375です。

期限直しました。
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
-------------------
/*hogehoge*/
int main(){/*ggg*/
printf("xxxxxx");
}
int a=c;
-------------------
上記のソース総ステップ数5ステップ、実ステップ数3ステップ、
コメント率40%が求められるステップカウンターを作製せよ。
また、以下の条件を提示する。
1.ディレクトリ単位で読み込めるようにする。
2.Cファイルのみのステップ数を求めるようにする。
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc 4.3.4
 [3.3] 言語: C
[4] 期限: 2010年11月27日9:00
[5] その他の制限: なし


414 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 20:49:02 ]
>>408

波形データ a[123]={〜〜〜〜〜〜〜〜〜〜〜};
波形データ b[123];

今が、1から123の間、くりかえし

    b[今] =
        a[今] ・ 係数今用 +
        a[1こ過去] ・ 係数過去用1 +
        a[2こ過去] ・ 係数過去用2 +
        a[3こ過去] ・ 係数過去用3 +
        .
        .
        .
    
    今++;


ってやると、できあがる波形データ b が、
もんもんした音になったり、キラキラした音になったり、シャリシャリした音になったり、音質が変わっておもしろい。ってことじゃないかしら? ようするに。 はて?

すごい単純だけど、たとえば単純に
b[今] = a[今] + a[1こ過去]
ってやるだけでも、波形が、こもった感じの音に変化したりして、おもしろいですよね。ふしぎ〜♪


415 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 20:52:33 ]
>>414
そう。単に過去のデータを足しこむだけで、いろんな特性を持つ回路(フィルタなど)になるのです。
z 変換またはラプラス変換でググッてくだしゃあ。

416 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 20:59:12 ]
>>409
何か汚いけど・・まあいいや
codepad.org/ldxwLKBl
www5a.biglobe.ne.jp/~accent/kazeno/calendar/1873.htm



417 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 21:00:50 ]
>>416
表示直した
codepad.org/g9j514Dw

418 名前: ◆EkRIf9bJPo [2010/11/25(木) 21:02:30 ]
>>380

大変申し訳ないのですが、読んでもロジックがわからなかったので自分で作りました。

codepad.org/JhtCuYqO


www.play21.jp/board/formz.cgi?action=res&resno=43608&page=&lognum=136&id=dixq&rln=44494

上記のサイトを参考にしました。

方法3 コメントを削除したファイルを中間ファイルとして保存し、再度読み込み、行数を数える方法を行いました。

残っている課題が二つあります。

・ディレクトリ指定してCファイルを求める。
・コメント率を算出する。


大変、勝手なことだと思いますがこのソースをベースに作製お願いします。

419 名前:409 mailto:sage [2010/11/25(木) 21:15:23 ]
>>412
なんかしたに張り付けてあるリンクのものを再起を使用して書き直すみたいです。
もうすこしコンパクトになるとか・・・
課題2はよくわかりません。

>>416
>>417
すみません。
再起はどこでどういう風に使用したらいいのでしょう?


420 名前:409 mailto:sage [2010/11/25(木) 21:18:32 ]
>>409
for のところを再起にやればいいとかなんたら・・・・。

421 名前:416 mailto:sage [2010/11/25(木) 21:36:54 ]
>>409
自分の定義に自分と同じ構造を持つ構造は再帰的に定義できる

さっきの例なら、ある月の一日の曜日は前の月の一日の曜日で求められる
前の月の一日はそのまた前の一日の曜日で
そのまた前も・・・ってな感じでずっと続く
ある状況で特殊化すればそこで再帰は終了する
さっきのなら2000年の1月で特殊化した

422 名前:416 mailto:sage [2010/11/25(木) 21:42:00 ]
>>409
ついでにちょっと整理しといた
codepad.org/Q7wmR5Wy

423 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 22:04:51 ]
カレンダー(カレンダー)C言語のソースが
2ちゃんのスレに書き込まれるぅ〜♪

カレンダー(カレンダー)過ぎ行く時の中で
俺はソースを書いて彷徨うんだろう♪

424 名前:409 mailto:sage [2010/11/25(木) 22:12:19 ]
みなさんありがとうございます。
recurse
みたいなコード?は使わないのでしょうか?
あと漸か式を考えたりなど・・・
よくわからない質問をしてしまってばっかりですみません><

425 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 22:35:14 ]
recurse って再び呪うのか?

426 名前:370 ◆1reJfOTbE. [2010/11/25(木) 22:54:27 ]
ご解答いただいている方、本当にありがとうございます。

今日学校でレポートをすこしずつ進めていたのですが、
学校のパソコンや携帯では書き込みができなく、自宅のパソコンでは
環境が整っていなく実験ができないので、今のうちにやることを
把握しておいて明日学校に行ったらレポートを一気にやりたいと思って
います。なので、残りやるべきことを把握したいと思います。

課題3−1は、FIR_P.cとqueue.cを作っていただいたのでおkですが、
課題3−1(続)に、queue.c, FIR_P.c, FIR_N.c, IIR_P.c, IIR_N.cを実装せよ
とのことですが、これは3−1で作ったので終わりではないということですよね。
それに、FIR_N, IIR_P, IIR_Nという名前は初めて出てきたのですが、
これはFIR_P.cを書き換えてそれぞれの名前で保存しろということでしょうか?

プラスMakefileの修正ができれば、課題3−2以降はその作ったプログラムを
使って実行→聞いてみて考察〜などでできると思いますので
よろしくお願いします。



427 名前:デフォルトの名無しさん [2010/11/25(木) 23:14:03 ]
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):入力された2分木を中央順で走査するプログラムを
              再帰を使わずに書け。
自分で書いたプログラム
main.c  codepad.org/GafORTG4
STACK1.c codepad.org/9JwtZ1J7
STACK2.c codepad.org/jwPHSuzG
Item1.h codepad.org/32bgVncE
Item2.h codepad.org/rk12GKcF
STACK1.h codepad.org/CI43AnzH
STACK2.h codepad.org/XJ1fy5MY   
上三つをコンパイルして実行します。
コンパイルは通りますが、実行でsegmentation fault がでてしまいます。
main.cの最後のwhile文のところを修正していただけないでしょうか。
お願いします。
[3] 環境
 [3.1] OS: macosX
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 明日の午後一時まで。
[5] その他の制限:とくになし。

428 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 23:15:49 ]
>>426
FIRが遅延時間前の入力信号を加算するのに対し、IIRは遅延時間前の出力信号を加算するものの様だ
ならば、FIRの encueue() するタイミングを加算後に移動させれば IIR になるのではと思う
PとNはポジとネガの意味かな?ならばNは重み付け加算を重み付け減算にすれば良いのだろうか?

429 名前: ◆QZaw55cn4c mailto:sage [2010/11/25(木) 23:17:17 ]
>>357
>>413
とりあえず動くものをあげときます。
codepad.org/o1GYCrrO

430 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 23:29:39 ]
>>418
字句解析は作った人以外には理解が極めて困難、という面があります。
>>378>>429 も人に理解していただくような努力を微塵もしなかったことは申し訳ない。
本当に正確なものを作るのなら(そして人に理解していただくようにするのなら)、全然別のアプローチ(たとえば状態遷移でとらえるなど)をとらなければならないことは自覚しておりましたが、手が先に動いてしまいました。
(なお、>>429>>378 よりもちょっとだけ精度がよくなっております。)

というわけで >>418 を追いかける余裕がありません。すみません。



431 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 23:42:02 ]
>>427
嫌がらせみたいに汚いコードだな、無意味な typedef とか控えろよ

問題なのは while() 内で1回pop()、3回push() を行っている事にあるんじゃないかな
必然的にスタックは2つづつ増えるから最初に確保した領域をはみ出して segmentation fault となる
そもそも push() には確保した領域をはみ出さないかのチェックが必要だが実装されていないし
何をしたいのか不明なコードだけど、毎ループで pop() されるのは head と 1 で head と 1 が3回push() される
当然、無限ループとなり segmentation fault で終わるプログラムだな

432 名前:デフォルトの名無しさん [2010/11/25(木) 23:59:54 ]
[1] 授業単元: 情報処理概論T
[2] 問題文(含コード&リンク):
大、中、小の3 個のさいころを同時にふった時、出た目の和がm になるような目の出方をすべて求めるプログラムを作りなさい。
ただし、m の値はキーボードから入力するものとする。表示を工夫して見やすい出力にすること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限: if、while、for、配列、多重ループ、関数まで既習です。

よろしくお願いします!


433 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 00:07:30 ]
>>432
さいころは6面でいい?
負数の扱いは?

434 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 00:09:08 ]
こまけぇこたぁ〜良いんだよ、それなりのものが出来れば

435 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 00:16:21 ]
>>431
適切なアドバイスどうもありがとうございます。
間違っていいたところも直せ、理解も深まりました。
ほんとうにありがとうございますm(_ _)m


436 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 00:18:52 ]
>>432
#include<stdio.h>

#define MAX(a, b) ((a)>(b)?(a):(b))
#define MIN(a, b) ((a)<(b)?(a):(b))

int main(void)
{
int i_min, i_max, j_min, j_max, i, j, k;
int m=0;

printf("m を入力してください : ");
scanf("%d", &m);

i_min=MAX(1, m-12);
i_max=MIN(6, m-2);
for(i=i_min;i<=i_max;i++)
{
j_min=MAX(1, m-i-6);
j_max=MIN(6, m-i-1);
for(j=j_min;j<=j_max;j++)
{
k=m-i-j;
printf("大:%d 中:%d 小:%d\n", i, j, k);
}
}

return 0;
}



437 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 01:11:03 ]
>>432
>表示を工夫して見やすい出力にすること。
ということで>>436みたいな効率化は図っていない
ideone.com/ojVVa


438 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 02:05:41 ]
>>432
codepad.org/j6ll07Ay

いちまん回さいころふって、なにがでるかしらべてみて、しらべる☆ ためしてガッテンたいぷ♪
たまにまちがえちゃうけど、気にスンナ!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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