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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
あなたが解けない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++の宿題を片付けます 102代目
pc11.2ch.net/test/read.cgi/tech/1197132472/

773 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:45:26 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
 ファイル中に自然数が10列記されている。
 この数列中には0が1〜9個含まれている。
 従って、0を区切りと考えれば。この数列中には数が最低1つは連続している(連続回数とよぶ)。
 連続回数の最大を求め,その時の和を求めよ。
 ただし、連続回数の最大が2つ以上ある時は和の大きい方を最大とする。
 また、連続回数も和も同じであるときは考慮しなくてもよい。
 例1)3,1,0,3,6,2,3,7,4,0であれば、最大連続数は6でその和は25である。
 例2)3,1,0,2,2,0,03,0,0であれば、最大連続数は2でその和は4である。
[3] 環境
 [3.1] OS:Vine Linux 4.2
 [3.2] コンパイラ名とバージョン:gcc3.4
 [3.3] 言語:C
[4] 期限:[無期限]
[5] その他の制限:なし

むりやりならばできましたが、スマートなやり方があれば教えていただきたいです。


774 名前:デフォルトの名無しさん [2008/01/30(水) 16:29:15 ]
>>773 その無理やりのソースを貼り付けよう!

775 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:41:46 ]
>>773 自分も無理やりやってみた。
#include <stdio.h>
#define N 10
int continuous(int *a, int from, int n){
    int to;
    for(to = from; to < n && a[to] != 0; to++);
    return to;
}
int culsum(int *a, int from, int to){
    int i, sum = 0;
    for(i = from; i < to; i++) sum += a[i];
    return sum;
}
int main(void){
    FILE *fp = fopen("data.txt", "r");
    int i, next, cnt = 1, sum = 0, tmp, a[N];
    if(!fp) return 1;
    for(i = 0; i < N; i++) fscanf(fp, "%d,", &a[i]);
    fclose(fp);
    for(i = 0; i < N; i++){
        next = continuous(a, i, N);
        if(next - i >= cnt){
            cnt = next - i;
            tmp = culsum(a, i, next);
            if(tmp > sum) sum = tmp;
        }
        i = next;
    }
    printf("cnt: %d\nsum: %d\n", cnt, sum);
    return 0;
}

776 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:45:28 ]
部分だけ。
a[10]に数値読み込んでこんな感じかな?

int i,j=0,max=0,temp=0,renzoku=0;
for(i=0;i<10;i++)
{
while(a[i]&&i<10)
{
temp+=a[i];
i++;
j++;
}
renzoku=(j>renzoku?j:renzoku);
if(renzoku==j)max=(temp>max?temp:max);
j=0;
}

777 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:47:38 ]
なにをもってスマートなんだろう

778 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:49:18 ]
tempも0に戻そうぜ

779 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:00:22 ]
ごめwww手抜きするといいことないねwwwww

#include <stdio.h>

int main(void)
{
int a[10],i,j=0,max=0,temp=0,renzoku=0;
FILE *fp=fopen("data.txt","r");
if(!fp) return 1;
for(i=0;i<10;i++)fscanf(fp,"%d,",&a[i]);
fclose(fp);

for(i=0;i<10;i++)
{
while(a[i]&&i<10)
{
temp+=a[i];
i++;
j++;
}
renzoku=(j>renzoku?j:renzoku);
if(renzoku==j)max=(temp>max?temp:max);
j=temp=0;
}
printf("最大連続数:%d\n合計:%d",renzoku,max);
return 0;
}

780 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:21:21 ]
>>773
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5942.c

781 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:33:36 ]
>>773
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5943.txt



782 名前:デフォルトの名無しさん [2008/01/30(水) 17:40:24 ]
・0〜99の100個の数字から異なる30個を選び、配列COM[30]に
格納せよ。
・次に異なる6個の数字を入力し、順番に配列MAN[6]に格納せよ。
・ソート方法Aを用いて配列COM、MANの要素をそれぞれ小さい順に並べよ。
・配列COMに含まれる配列MANの数字の個数countを求めよ。
・最後に、配列COM、MANの全要素、変数countを
 result.outに書き込め。
・出力形式は自由とするが、main関数内は10行以内にすること。

[ソート方法A]
・作業用の配列として、要素が100個のint型の配列Workを用意する。
・配列Workの各要素は、0に初期化する。
・ソートしたい配列xの要素を順番に読んで、Work[その値]を+1する。
・作業3をすべてのxの要素について行った後、Workの要素を小さい方から順番に
 よんで、Workの値が0でなければ、xに書き戻します。

この課題が全然できません。助けて下さい。


783 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:51:36 ]
>>773
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5944.txt

784 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:53:32 ]
>>782
それ、【ヒント1】〜【ヒント3】も問題文にあるだろ?

785 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:22:57 ]
>>782
作ったけど,PC移行中でコンパイラ入れて無くて試せない^p^

786 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:10:32 ]
>>769
本当に有難う御座います!!

787 名前:デフォルトの名無しさん [2008/01/30(水) 20:37:58 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):シェルソートは単純挿入法を改良し、ソートの効率を上げたものである。
全ての要素を1度にソートするのではなく、
間隔dをあけて要素を比較して大まかなソートを繰り返したのち、
最後にd = 1でソートを実行する。

データ数をnとしたときの、効率の良い間隔d[i]の計算法として、
Knuthによる次の式が知られている。

t = log2n - 1 (整数に切り捨て)
d[t-1] = 1
d[i-1] = 2d[i] + 1

この式を使って、与えられた要素数nに対し
t、配列dの値を計算する関数を作成しなさい。
n = 100としたときの、tおよびdの要素の値を画面に出力しなさい。
logの計算を行うには、math.hをインクルードする

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語: C
[4] 期間:2/1まで
[5] その他の制限: なし
お願いします。

788 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:23:01 ]
>>782
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5945.txt

789 名前:788 mailto:sage [2008/01/30(水) 21:25:57 ]
ありゃ、main()関数が10行以下の制限忘れてた。
全部他の関数に移せってか。ちょっとまって。

790 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:26:06 ]
>>782
>>694

791 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:35:02 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 直径1長さ1の円柱がある。体積をモンテカルロ法で計算せよ。
一辺が1の立方体を考え、3個の乱数で立方体内の点のxyz座標を発生させ,その点が物体の内部に落ちるかどうかを判定する。
内部に落ちる確率が体積に比例することから体積が見積もれる。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2/1
[5] その他の制限:




792 名前:788 mailto:sage [2008/01/30(水) 21:38:18 ]
>>782
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5947.txt
すまんかった。

793 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:43:34 ]
>>782の問題は、内容から おそらく COMとMANに値を収める
部分を、共通関数化すれば得点高いと思う。
それを構成できるかも問うてる様に見える。

具体的には、配列代入関数として、入れたかどうかと、
配列が溢れた事を戻り値で返す。

794 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:05:45 ]
>>793
>>673

795 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:16 ]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void)
{
 double x, y, z;
 int iter[] = {10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 0}, i, j, k = 0, count;
 for (i = iter[k]; i; i = iter[++k]) {
  count = 0;
  for (j = 0; j < i; j++) {
   x = (double)rand() / RAND_MAX - 0.5;
   y = (double)rand() / RAND_MAX - 0.5;
   z = (double)rand() / RAND_MAX;
   if (sqrt(x * x + y * y) <= 0.5 && 0. <= z && z <= 1.)
    count++;
  }
  printf("ITER = %d, V = %f\n", iter[k], (double)count / iter[k]);
 }
 printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5);

 return 0;
}


796 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:43 ]
あ、>>795>>791さんへです。

797 名前: ◆LnG.2EAY0A mailto:sage [2008/01/31(木) 02:04:32 ]
>>772
>>723
お返事が送れて申し訳ありません、回答ありがとうございました!
これでなんとか理解できそうです。


798 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:03:52 ]
[1] プログラミング序論
[2] @./a.out arg1 arg2 ...の時、
    argをアルファベット順にソーティングするquicksortのプログラムを作る。
  A問題@をライブラリ関数qsort()を用いて作る。
   qsort( void* base, int n_elem, int size, int (*compare)(void*, void*) )
   base: 配列のアドレス
   n_elem: 要素数
   size: 一要素のサイズ
   compare: 比較に使う関数。
  Bライブラリ関数と同じ動きをする関数
   msort( ...qsortと同じ引数... )
   を作る。(アルゴリズムはクイックソート)
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C
[4] 2008年2/5(火)
[5] 制限は特にないです

よろしくお願いしますm(__)m

799 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:57:21 ]
>>798

とりあえず最後の問題だけやってみた。
これで満点とれなかったら教官の頭が悪い。

( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5950.c

800 名前:ハム [2008/01/31(木) 18:54:12 ]
【質問テンプレ】
[1] 授業単元: プログラミング演習
[2] 問題文:(数独の問題作成の途中です。)
       最初全てに0が入った2次元配列を、数字が全て埋まった状態にするプログラムを考えています。
       どなたかお力をお貸し下さい。
[3] 環境 Visual Studio 2005
 [3.1] OS: Windows/ XP
 [3.2] コンパイラ名とバージョン: わかりません
 [3.3] 言語: C言語
[4] 期限: ([2008年2月2日21:00まで]
[5] その他の制限:初心者なので、簡単なコードでお願いします。

801 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:55:16 ]
[1] プログラミング演習
[2]リンクリストを用いたスタックプログラムの作成
typdef struct box{
int cont;
struct box next;}box1;
typedef box1 *stack;
スタックの仕様は↑とする。
ポップアップとプッシュダウンを行う関数
int pupup(stack S);
void pushdown(stack S; int x);
を作成せよ。
[3] 環境
 [3.1] winXP
 [3.2] bcc
 [3.3] C
[4] 2008年2/5(火)
[5] 制限:問題文の仕様を使うこと。
アンダーフロー対策はしなくてよい

よろしくおねがいします。






802 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:56:05 ]
>>800
お前は日本語を書いている自信があるのか?

803 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:14:15 ]
>>800
数独は、プログラムで解くのは簡単だけど作るのは難しいと思われ。
途中まで作ったのならそれを提示したまえ。
# つーか、初心者向けの内容じゃねぇぞ。

804 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:18:36 ]
>>724の者ですが、締め切りが2/2の12:00に伸びたのでどうかよろしくお願いします。
全然わからないので…

805 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:03:12 ]
>>804
やだ。

806 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:08:17 ]
>>805
お前に言ってねーよ。カス。
どうか分かる方お願いします。

807 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:09:57 ]
>>806
やだってばー。

808 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:10:43 ]
>>807
だからお前のような頭のヘボい奴には頼んでないから。
どうか頭の良い方お願いします。

809 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:15:17 ]
>>808
馬鹿はスルーしろ

810 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:17:14 ]
>>808
いちいち反応するな馬鹿

811 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:36:03 ]
>>808
答えようかと思ったが、君のように裏表がある人間のために
エディタ起動するのマンドクセ('A`)



812 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:37:32 ]
>>811
お前に言ってねーよ。カス。
どうか分かる方お願いします

813 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:54:17 ]
誰もわかんねーのかよ。
単位やべーからお願い。

814 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:55:03 ]
いさぎよく諦めろ

815 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:56:28 ]
>>814
お前がやれ。命令だ。

816 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:00:14 ]
俺今他のやってる

817 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:41:07 ]
>>801
問題がタコだな。
まず、その仕様じゃコンパイルすら通らない。

>pupup
popupの間違いでは。

>アンダーフロー対策はしなくてよい
オーバーフロー対策はどうなのよ。

818 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:43:33 ]
最近の人工無能は頭いいな

819 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:45:05 ]
>>800
>数字が全て埋まった状態にするプログラム

ほらよ

memset(table, 1, sizeof(table));

820 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:57:33 ]
>>817
オーバーフロウもアンダーフロウも対策しなくて大丈夫です。
ペーパーで提出する課題なのでかなり適当みたいです。
popupは自分も気になりましたが問題がpupupなのでそのままにしましたw

821 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:02:20 ]
>>820
それだけじゃなくて、

typdef struct box{
int cont;
struct box next;}box1;

↑じゃコンパイル通らないよ。

typdef struct box{
int cont;
struct box *next;}box1;

↑こうしないと。

いいかげんそうな教官みたいだし、もう提出しなくてよいんじゃね?



822 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:06:48 ]
タイポもあるな。

823 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:12:43 ]
つーか、prevへのポインタ無しで、どうやってpopupするわけ?
一方通行じゃん。pushしか出来ねーーー

824 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:14:41 ]
というか、nextがprevなのか。

825 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:29:21 ]
>>795
ありがとうございます!

826 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:34:58 ]
まぁ文句ばっかり言うのもあれなので。

typedef struct box{
int cont;
struct box *next;}box1;
typedef box1 *stack;

int pupup(stack S)
{
box1 tmp = *S->next;
free(S->next);
S->next = tmp.next;
return tmp.cont;
}

void pushdown(stack S, int x)
{
box1 *new_box = (box1 *)malloc(sizeof(box1));
new_box->cont = x;
new_box->next = S->next;
S->next = new_box;
return;
}

827 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:48:51 ]
>>798
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5953.txt
2と3。

828 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:31 ]
昨日は規制の巻き添えを食らって、書きこめなかつた

【時間切れ】 (1/31)
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>>751 1/31 17:00

【未解決問題】
>>787 2/1

>>724 2/2 12:00
>>800 2/2 21:00
>>581 2月頭 残:課題2、3
>79 無期限
>144 無期限 問題文>148

829 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:39:09 ]
ミス、>>798は課題@が終わってません

830 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:42:04 ]
>800
「数独(すうどく・SUDOKU)とは、3×3のブロックに区切られた9×9の正方形の枠内に1〜9までの数字を入れるペンシルパズルの一つである。」

123 456 789
456 789 123
789 123 456

234 567 891
567 891 234
891 234 567

345 678 912
678 912 345
912 345 678

でいいんじゃね?

831 名前:デフォルトの名無しさん [2008/02/01(金) 00:43:22 ]
解答
www.nicovideo.jp/watch/sm1308846



832 名前:581 mailto:sage [2008/02/01(金) 12:47:48 ]
>>581です。
(2)なのですが、音声データを半分に圧縮して再生できれば良いそうです。
実際の音声データとなる部分のbyte?を、一個飛ばしで読み込んでみて、と言われたのですが、さっぱりです…orz
(3)は、音声データを読み込んで、逆再生できればOKだそうです。

よろしくお願いしますm(_ _)m

833 名前:デフォルトの名無しさん [2008/02/01(金) 13:26:02 ]
>>787
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5956.txt

834 名前:デフォルトの名無しさん [2008/02/01(金) 13:32:09 ]
>>832
半分削ったら復元無理じゃん
あとまずは>>658さんのテキストファイルをWavにするプログラム作れば
既にないぞうしてるかもしれないけど

835 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:38:12 ]
復元は要求されてなくね

836 名前:デフォルトの名無しさん [2008/02/01(金) 13:56:05 ]
再生するにはwavが作れないと駄目

837 名前:デフォルトの名無しさん [2008/02/01(金) 14:19:02 ]
おもったんだがどんな楽器の音もテキストの数字の羅列のみで鳴らせるのか ちょっとおどろき

838 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:22:37 ]
そらまあどんなデータだってバイナリじゃ0と1の集合なんだし、
音だろうと映像だろうと数字の羅列に対応させるのは簡単だぞ。

839 名前:デフォルトの名無しさん [2008/02/01(金) 14:25:39 ]
でも人間がテンキーで打ち込みしてもオーケストラの音楽とかむりのはず

840 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:26:40 ]
最終的に鼓膜を震わせればいいんだから

841 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:29:07 ]
複雑な音楽は0と1だけじゃなくその間の音色がいくらでもある。
引き篭ってパソコン麦価かまってるとそんな当たり前のことも分からなくなるんだな。



842 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:30:59 ]
この中で一番頭悪いのは>>841でFA?

843 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:37:43 ]
>>839も加えておいてくれ。どっちもどっち

844 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:39:05 ]
ドとド#の間にだって音があるんだよ。
カラオケの採点だと正確にドを出すのを高得点としているが、
人間の耳に入った場合は必ずしも正確なドが心地よいとは限らない。
ちょっとはずしてる加減がかわいいとかあるだろ?
音だけじゃなくリズムとか強弱とかもな。

845 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:41:34 ]
>>841
でも人間の耳の分解能には限界があるだろ
1/3を0.0101010101010101で近似しても違いなんて分からない

846 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:50:16 ]
>>845
そっちの問題より量子化の時の誤差の方が大きいだろ。

847 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:02:09 ]
>>846
>>841が「離散量では原理的に複雑な音楽を忠実に表現できない」という主張をした(と俺は理解した)から、
目盛を十分細かく取れば良い、という説明をしただけで、実際に音声をデジタルで扱う場合にどこが困難かは別の話だろ

848 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:15:18 ]
>>841
よくわからんが、MIDIのことか? なつかしいな。

849 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:15:52 ]
[1] プログラミング演習
[2]試験課題
優先順位付き四則演算

式を入れてください
(123.4*(5.1+0.2)+(6+0.3)/(3.0−1.0)/5=?
答えは?です。

[3.1]WindowsXP
[3.2]VS8.0
[3.3]C++
[4]2月5日
[5]構造体
調べてみましたがよくわかりませんでした。
よろしくお願いいたします。


850 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:18:41 ]
>>849
メンバ関数とか使っていい?

851 名前:798 mailto:sage [2008/02/01(金) 16:36:21 ]
>>799さん
>>827さん
お早い回答、見やすいプログラムありがとうございました^^

・・・もし来週も行き詰ったら・・・よろしくお願いしますm(__)m







852 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:41:11 ]
850
はい、習っているので大丈夫です。

853 名前:デフォルトの名無しさん [2008/02/01(金) 17:37:34 ]
>>849
けっして俺がつくったソースコードではないけど
頭のいい人はすごいねって思う。
fparserでググれば出てくるかもしれんが
圧縮してあげとく。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5958.lzh

854 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:40:56 ]
>>800
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5957.txt
とりあえず書いてみたが、あまり簡単でもスマートでもない。
出力だけはたぶん合ってそうだけども。

855 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:23:00 ]
>>853
ありがとうございます、動きました。

856 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:43:00 ]
>>724
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5959.zip
VCないから、Cygwin/g++用に変更した。一応動いたのでうp
参考程度にどうぞ
(運がよければVCでもそのままコンパイルできる。一応気にしてソース修正したつもり)

IPv6環境ないからIPv6での動作確認はできなかった

857 名前: ◆sUfWYz9MSA [2008/02/01(金) 21:53:06 ]
[1] 授業単元: 画像処理研究
[2] 問題文(含コード&リンク):
以下のようなcsvファイルをfopen()で読み込み,
フーリエ変換したものをグラフで表示する.

400,97.98
400.5,98.13
401,98.31
401.5,98.49
・・・
という","の左が700まである波形データです。
読み込んだデータを","区切りでプロンプトに書き出す
ことはできているのですが,フーリエ変換がどうしてもできませんorz
お手数ですが教えてもらえないでしょうか。

sample: yomiko-01.hp.infoseek.co.jp/cgi-bin/src/up0222.txt

csvでupできなかったので.txtになってますスイマセン・・・

[3] 環境
 [3.1] OS: Windows2000
 [3.2] コンパイラ名とバージョン:Visual C++ 6.0
 [3.3] 言語: どちらでも可
[4] 期限: できるだけ早くお願いします。
[5] その他の制限:学校から家に帰るのでコメント返信遅くなります・・・
         どうかよろしくお願いします。

858 名前:デフォルトの名無しさん [2008/02/01(金) 22:24:48 ]
[1] 授業単元:コンピュータ理論
[2] 問題文(含コード&リンク):n,kを入力したとき、0〜n-1の整数からk個選ぶ選び方をすべて出力する
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:bcc32
 [3.3] 言語:C言語
[4] 期限: 2月4日中
[5] 再帰的アルゴリズムを使うと簡単と言われました。
どうかよろしくおねがいします。

859 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:34:05 ]
順列を区別するかを書け。

860 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:37:07 ]
組み合わせです

861 名前:デフォルトの名無しさん [2008/02/01(金) 22:42:47 ]
>>859
重複なしの組み合わせです。

n=5,k=3のときは
012 013 014 023 024 034 123 124 134 234
となるはずです。




862 名前:デフォルトの名無しさん [2008/02/01(金) 22:46:58 ]
>>857
C言語によるアルゴリズム事典からそのままぱくったので
あってるかどうかわからへんで〜
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5960.txt

863 名前:デフォルトの名無しさん [2008/02/01(金) 23:01:55 ]
>>858
unsigned long combination(int n, int k)
{
int i, j;
unsigned long a[17];

if (n - k < k) k = n - k;
if (k == 0) return 1;
if (k == 1) return n;
if (k > 17) return 0; /* error */
for (i = 1; i < k; i++) a[i] = i + 2;
for (i = 3; i <= n - k + 1; i++) {
a[0] = i;
for (j = 1; j < k; j++) a[j] += a[j - 1];
}
return a[k - 1];
}


864 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:07:33 ]
>>863
ワロタ

865 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:40:39 ]
>>858
#include<stdio.h>
#include<stdlib.h>
void get_combination(int num, int chosenCnt);
int *numary;
int n, c;
int main(int argc, char *argv[]){
 if(argc != 3) return 1;
 n = atoi(argv[1])-1;
 c = atoi(argv[2]);
 if((numary = (int*)calloc(sizeof(int), c)) == NULL) return 1;
 get_combination(0, 1);
 free(numary);
 return 0;
}
void get_combination(int num, int chosenCnt){
 int i;
 if(chosenCnt > c){
  for(i=0; i < c; i++) printf(" %d", numary[i]);
  putchar('\n');
  return;
 }
 for(i=num; i <= n; i++){
  numary[chosenCnt-1] = i;
  get_combination(i+1, chosenCnt+1);
 }
}

866 名前:858 [2008/02/01(金) 23:54:04 ]
>>863
返答ありがとうございます。
コンパイル通るのですが、どうやったら表示できるかが分からず、
いろいろ試してみましたが出来ませんでした。orz...

>>865
返答ありがとうございます。
ばっちり動きました。ありがとうございます。
助かりました。
後でプログラムをじっくり解読してみます。

本当にありがとうございました。

867 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:54:10 ]
>>856さま
IPv4でもIPv6でも動きました!
本当にありがとうございました!

868 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:55:44 ]
>>866
本気で何も分かってないな。まあ丸投げスレだからいいんだけど

869 名前:デフォルトの名無しさん [2008/02/02(土) 00:01:53 ]
>>862
>>857です。返事ありがとうございます!
今帰ってきたので、後で参考にさせてもらいます(o´・ω・)´-ω-)ペコリ


870 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:14:39 ]
>>849
当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
>> 853 さんにならって、私がこの方面にのめりこむきっかけとなったソースを、そのままあげておきます。
なお、宿題の題意にあうように手直しはしていますが、小数点の処理は手抜きです。オリジナルを損ねたくなかったわけで、すみません。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5961.txt

>>853
まったく頭のいい人はすごいですね。

871 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:27:55 ]
【時間切れ】 (2/1)
>787

【未解決問題】
>>581 2月頭 残:課題2、3
>>798 2/5 残:課題1
>79 無期限
>144 無期限 問題文>148



872 名前:ハム [2008/02/02(土) 00:52:07 ]
>>854さん
ありがとうございます!
熟読して、勉強させていただきます!
本当にありがとうございます!!


873 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:04:47 ]
>>870
小数に対応できるようにfactor()の中身を>>870が書き換えたんだよね?
'('が来た後の exp0() を int で受けてるままだから
このままだと丸まっちゃうよ

874 名前:870 mailto:sage [2008/02/02(土) 02:23:48 ]
>>873
感謝です。訂正したものをあげておきます。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5963.txt

875 名前:853 [2008/02/02(土) 02:50:50 ]
karetta.jp/book-node/cpuzzle-recursion/002797
こーいうページもあるけどね
これをdoubleでやりとりするように変えた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5964.txt
をあげとこう

876 名前:デフォルトの名無しさん [2008/02/02(土) 02:54:00 ]
>>874
早いねw
もっというと現状のソースはちょっと精神分裂気味に見えるから
double number(void) 作って↓みたいにしたほうが元のBNF通りかねえ?
他人の宿題だからどうでもいいかもだけど。

double factor(void){

if(isdigit(nextc){ /* F -> Num */
return number();
} else if(match('(')) { /* F -> (E) */
double v = exp0();
if(match(')')) return v;
else error();
} else {
error();
}

}

877 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 10:06:19 ]
>>876
そうすると、1桁しかあつかえないのでは?
いや、現状が精神分裂気味なのはまったく同意です。オリジナルの美しい構造を残したいものです。

878 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 10:31:53 ]
>>875
なるほど,ブランク読み飛ばし、単項のマイナスにも対応してますね。
ただし、このBNF はLL(1)文法であり、たかだか**1文字**先読みすればdeterministicにtop-downに解析できるわけで、その精神をソースにもりこみたいな、という意志がありまして...。

879 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:22:33 ]
83代目の575は評価されるべき

880 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:33:37 ]
>>751が叩かれてて質問者でもないし聞きづらかったんだけど、期限も切れているようだし>>751を聞いていいかな?

881 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:41:13 ]
いいとも!



882 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:12:13 ]
[1] 授業単元:プログラミング初級
[2] 問題文(含コード&リンク):
1〜24まで穴埋め問題です
ip.tosp.co.jp/i.asp?I=cgenger

[3] 環境
 [3.1] OS : windows
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: C言語
[4] 期限:2月4日

883 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:18:58 ]
>>882
とりあえず22まで。間違ってても謝罪や賠償はしない。
1. int *
2. char *
3. char *
4. int **
5. char **
6. char **
7. &cnt
8. &ch
9. &ch
10. pc
11. *pc
12. &ch
13. pch
14. *pch
15. argv[1]
16. pa
17. *(argv[2])
18. *pa
19. &pc
20. &pch
21. **ppc
22. **pch


884 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:36:22 ]
23と24も。
最近C言語でプログラム書いていないんで、argvの仕様を調べなおしてた。
あと、実行時の引数の順序がわからんから、適当に書き換えてくれ。
23. *(pp+3)
24. **(pp+4)

885 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:22:32 ]
>>883
ありがとう御座います

886 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:28:44 ]
ttp://www.raw-paradise.com/

887 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:48:01 ]
>>879
再掲載お願いできますでしょうか?

888 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:06:55 ]
結局751の画像は何を対象にしてたんだぜ?

889 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:38:36 ]
>>581
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5968.c

890 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:29:14 ]
【時間切れ】 (2/2)
なし

【未解決問題】
>>798 2/5 残:課題1
>>79 無期限
>>144 無期限 問題文>>148

891 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:44:30 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
input8500.txtには4桁の整数が8500個書かれている。
これら8500個の整数のうち、相異なる整数は何種類あるか求めなさい。

input8500.txt: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5969.txt

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年2月4日12:00まで
[5] その他の制限: 制限は特にありません。宜しくお願いいたします。




892 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:30:01 ]
>>891
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void){
  int *table=(int*)calloc(sizeof(int), 10000, 0), i, x;
  FILE *in=fopen("input8500.txt","r");
  for(i=0; i<8500; i++){
    fscanf(in, "%d", &x);
    table[x]++;
  }
  for(i=x=0; i<10000; x+=table[i]?1:0, i++);
  printf("%d種類\n", x);
}

コンパイラ無いので,試してないけど動くんじゃね?

893 名前:デフォルトの名無しさん mailto:sage575さんゴメンナサイ [2008/02/03(日) 08:25:55 ]
>>887

575 デフォルトの名無しさん sage 2007/02/22(木) 19:31:21
>>574
ほい。
#include<stdio.h>
#include<stdlib.h>
char buf[100],*src=buf;
double atm(void);
double mul(double r){return*src=='*'?++src,mul(r*atm()):*src=='/'?++src,mul(r/atm()):r;}
double add(double r){return*src=='+'?++src,add(r+mul(atm())):*src=='-'?++src,add(r-mul(atm())):r;}
double atm(void){
    double r;
    while(isspace(*src))++src;
    if(*src == '(')++src,r = add(mul(atm())),++src;
    else r = strtod(src,&src);
    while(isspace(*src))++src;
    return r;
}
int main(){gets(src);printf("%f\n",add(mul(atm())));}

894 名前:デフォルトの名無しさん [2008/02/03(日) 17:42:29 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5973.txt
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:2月12日(火)16時20分まで
[5] その他の制限:特になし。

よろしくお願いします。



895 名前:891 mailto:sage [2008/02/03(日) 18:08:31 ]
>>892
ありがとうございます。コンパイルしてみたところ
5行目に、too many arguments to function `calloc'
とエラーが出ました。calloc関数は使用したことがないため、
どこを直せばいいのか分かりません。
教えていただけないでしょうか。

896 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:11:24 ]
それくらい仕様を見れば分かるだろ。

897 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:12:20 ]
>>895
calloc(10000, sizeof(int))

898 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:45:29 ]
>>894
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5974.c

899 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:53:57 ]
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5975.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語: C
[4] 期限:2月5日
[5] その他の制限:特になし

お願いします。


900 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:35:45 ]
[1] 授業単元:課題3
[2] 問題文(含コード&リンク):月日を入力するとその日の星座を表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: ?
 [3.3] 言語: C
[4] 期限: 2008/2/6
[5] その他の制限: 特にありまさん

901 名前:891 mailto:sage [2008/02/03(日) 22:02:09 ]
>>896 >>897
コンパイル通りました。ありがとうございました!
仕様良く読みます。



902 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:09:06 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 直径1長さ1の円柱がある。体積をモンテカルロ法で計算せよ。
一辺が1の立方体を考え、3個の乱数で立方体内の点のxyz座標を発生させ,その点が物体の内部
に落ちるかどうかを判定する。内部に落ちる確率が体積に比例することから体積が見積もれる。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2/4
[5] その他の制限:

以前このスレで質問した問題なんですがコンパイルできなかったのでもう一度
おしえてもらえないでしょうか。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5976.txt
 printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5); のM_PIでエラーがでて
しまいます。

903 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:22:43 ]
>>900
#include <stdio.h>
#include <stdlib.h>

int main() {
static const struct {int n; const char *s;} c[] = {
{120, "みずがめ"}, {219, "うお"}, {321, "おひつじ"}, {420, "おうし"},
{521, "ふたご"}, {622, "かに"}, {723, "しし"}, {823, "おとめ"},
{923, "てんびん"}, {1024, "さそり"}, {1122, "いて"}, {1222, "やぎ"},
};
int i, m, d;
char buf[256];

do {
printf("月/日: ");
if (fgets(buf, sizeof buf, stdin) == 0)
return EXIT_FAILURE;
} while (sscanf(buf, "%d / %d", &m, &d) != 2);
for (i = 0; i < 12 && m * 100 + d >= c[i].n; i++)
;
if (--i < 0)
i = 11;
printf("%s座\n", c[i].s);
return EXIT_SUCCESS;
}

904 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:27:41 ]
>>902
上の方に
#define M_PI 3.141592653589793238
とか書いときゃいいんじゃね?

905 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:30:10 ]
>>902
 printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5);のまえにでも
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
とでもしとけ
てか、CygwinでもMinGWでもコンパイルは通るんだが

906 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:35:19 ]
>>902
私の方でもコンパイル・実行しましたが、問題はありませんでした。
環境は WindowsXP/cygwin(gcc 3.4.4) です。
#include <math.h>
の記述がありますから、M_PI には円周率が定義されているはずなのですが...。
gcc のインストールはどうやってしましたか?

907 名前:906 mailto:sage [2008/02/03(日) 22:40:29 ]
>>902
そうそう、アップローダのソースは空白が全角になってました。これを半角に直してみてください。


908 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:41:48 ]
VCとかでは定義されてなかったような気がする。関係ないけど
バージョンによってはgccでも載ってなかったりするのか?

909 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:54:59 ]
>>899
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5977.c

910 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:58:44 ]
>>908
M_PI は、手元の gcc 2.6.3 for GO32/PC9801 の math.h には定義されていましたね。
bcc 5.5 でも OK, VC 6.0 の math.h にはありませんでした。

911 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:09:50 ]
VC(7以上)なら
#define _USE_MATH_DEFINES
で使えたはずだが



912 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:10:52 ]
>>900
#include<stdio.h>
int main(void){
char *a[]={"いて","やぎ","みずがめ","うお","おひつじ","おうし","ふたご","かに","しし","おとめ","てんびん","さそり"};
unsigned int m,d;
printf("月,日=");
scanf("%d,%d",&m,&d);
printf("%s座\n",a[(m+d*2/",*&*(,*0...,"[m%12])%12]);
return 0;
}


913 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:16:06 ]
3.141592653592

914 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:21:34 ]
>>798 課題1。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5978.txt

915 名前:581 mailto:sage [2008/02/04(月) 03:47:38 ]
>>889さん
ありがとうございますm(_ _)m
さっきgccでコンパイル通そうとおもったら通らなかったのですが、どうすれば良いでしょうか??orz

916 名前:デフォルトの名無しさん [2008/02/04(月) 08:45:59 ]
[1] 授業単元: プログラミング入門
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5980.txt
[3] 環境
 [3.1] OS:UNIX
 [3.2] gcc 3.4
 [3.3] 言語: C
[4] 期限:2月6日
[5] その他の制限:
よろしくお願いします。

917 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 09:10:09 ]
>>915
どんなエラーメッセージが出ていますか。

918 名前:デフォルトの名無しさん [2008/02/04(月) 09:34:59 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5982.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: どちらでも可
[4] 期限: 2008年02月04日12:00まで
[5] その他の制限:

919 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:44:49 ]
>>916

( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5983.c

920 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:47:51 ]
>>918

( ´∀`) yamaguchi.txt が落とせないんです。

921 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:54:17 ]
>>916

ごめん。行頭に空白があったり、空行があったらバグっちゃう。
パッチ書きました。

( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5984.txt



922 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:03:33 ]
>>916

ごめん。add_word() の処理が冗長だった。
もう一回パッチあててくり。

( ´∀`)つ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5985.txt

923 名前:899 mailto:sage [2008/02/04(月) 11:06:04 ]
>>909
ありがとうございました。

924 名前:デフォルトの名無しさん [2008/02/04(月) 11:07:56 ]
>>920

yamaguchi.txtです
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5986.txt

925 名前:915 mailto:sage [2008/02/04(月) 11:26:36 ]
>>917さん
コンパイル失敗時に出てきたエラーメッセージを直接コピペします。長いかも・・・。
2ch.c:6: parse error before `&'
2ch.c:17: parse error before `}'
2ch.c: In function `read_wave_file':
2ch.c:47: storage size of `chunk' isn't known
2ch.c:54: stray '\' in program
2ch.c:54: parse error before `)'
2ch.c:56: stray '\' in program
2ch.c:56: parse error before `)'
2ch.c:62: stray '\' in program
2ch.c:62: parse error before `!'
2ch.c:68: parse error before `else'
2ch.c:68: stray '\' in program
2ch.c: At top level:
2ch.c:76: parse error before `if'
2ch.c:78: parse error before `+'
2ch.c:78: warning: data definition has no type or storage class
2ch.c:81: warning: parameter names (without types) in function declaration
2ch.c:81: warning: data definition has no type or storage class
2ch.c:83: parse error before `if'
2ch.c: In function `write_wave_file':
2ch.c:92: storage size of `chunk' isn't known
2ch.c:98: stray '\' in program
2ch.c:98: parse error before `;'
2ch.c:102: stray '\' in program
2ch.c:102: parse error before `;'
2ch.c:105: stray '\' in program
2ch.c:105: parse error before `;'
2ch.c:110: stray '\' in program
2ch.c:110: parse error before `;'


926 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:39:00 ]
>>925
5行目の最後(改行の直前)の'\'が消えてないか?

927 名前:デフォルトの名無しさん [2008/02/04(月) 12:35:58 ]
>>922
ありがとうございました。

928 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:55:09 ]
>>925
まさかとは思うが、改行コードが\r\nのままLinuxでコンパイルしていないか?
5行目末のバックスラッシュが\rをエスケープしてしまい、その後の\nをエスケープできなくなるぞ。

929 名前:デフォルトの名無しさん [2008/02/04(月) 14:43:27 ]
[1] 授業単元: プログラミング入門
[2] 問題文(含コード&リンク):@0〜99の数字から異なる30個を選び、配列COM1[30]に格納せよ
               (時間で初期化,乱数を使用)
              A次に6個の異なる数を入力し配列COM2[6]に格納せよ
              B次にCOM1、COM2の数を小さい順に並び変えよ
              C次にCOM1とCOM2の両方に含まれる数の個数を求めよ
              D最後にCOM1とCOM2の全数字とCの個数を出力させよ
[3] 環境
 [3.1] OS:UNIX
 [3.2] gcc 3.4
 [3.3] 言語: C
[4] 期限:2月7日
[5] その他の制限:

宜しくお願いします。


930 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:59:57 ]
>>929
>>788

931 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:24:53 ]
>>929

( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5990.c



932 名前:デフォルトの名無しさん [2008/02/04(月) 15:33:49 ]
>>931
make_com1()は>>929の@の『0〜99の数字から異なる30個を選び』を
満たしてないような・・・(重複するんじゃないの?)

通りがかりで失礼


933 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:57:58 ]
>>929
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5992.txt

初心者だけどやってみた、一応ちゃんと動いた。
変数の名前とかだいぶ適当だけど勘弁。

934 名前:デフォルトの名無しさん [2008/02/04(月) 17:17:44 ]
[1] 授業単元:C言語入門
[2] 問題文:キーボードから学籍番号を入力すると、
その学生の eメールアドレスを出力するプログラムを作成しなさい。
ただし、学籍番号は7桁の自然数とし、これ以外の文字列が打ち込まれた時には
「学籍番号は7桁の数字で入力して下さい」と出力して、終了するプログラムとすること。

学籍番号を入力して下さい:0032113
0032113@yahoo....など。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C++
[4] 期限: 2月4日
[5] その他の制限:

期限ギリギリで申し訳ないですが、お願いします。

935 名前:デフォルトの名無しさん [2008/02/04(月) 19:00:43 ]
>>929
俺も作ってみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5993.txt


936 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:45:00 ]
100回入れ替えなくても30回で十分なやり方あるだろ……と思ってよく見たらその交換の仕方はダメだ

937 名前:935 [2008/02/04(月) 20:46:34 ]
あぁ・・・VCで作ったから_tmainのままになってら・・・

938 名前:デフォルトの名無しさん [2008/02/04(月) 20:49:52 ]
>>936
後学の為にダメな理由を詳しく教えてくれると嬉しい。


939 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:57:16 ]
for( i = 0 ; i < sizeof(hoge)/sizeof(*hoge) ; i++ )
{ // i番目の要素と乱数(0~99)番目の要素を交換
int rnd = rand() % 100 ;
int tmp = 0 ;

tmp = hoge[i] ;
hoge[i] = hoge[rnd] ;
hoge[rnd] = tmp ;
}

これだと数値が偏るから

940 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:58:56 ]
[1] 授業単元:プログラミング
[2] 問題文
input.txtの各行には100点満点の数学の試験の点数が書かれている。
これを0点台,10点台…,90点台,100点の11の階級に分け、どの階級に何人
が属するかを人数分の"*"で表すプログラムを書きなさい。出力の細かな形式は問わない。

input.txt: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5988.txt

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C
 [3.3] 言語:C
[4] 期限:2月6日
[5] その他の制限:

よろしくお願いします。

941 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:59:28 ]
>>934
学籍番号とメールアドレスの関連はどうなってるんだ?
それだけじゃ、苗字を入力して、下の名前を出力するプログラムって言うぐらい、意味不明だぞ。
どうやって作ったらいいのかサッパリ分からん。

学籍番号@yahoo.co.jpでいいのか?



942 名前:デフォルトの名無しさん [2008/02/04(月) 21:03:06 ]
>>939
どう偏るの?

943 名前:934 [2008/02/04(月) 21:06:39 ]
>>941
入力された学籍番号@yahoo.co.jp
と、出力されるプログラムです。

ただし、学籍番号は7桁の自然数とし、これ以外の文字列が打ち込まれた時には
「学籍番号は7桁の数字で入力して下さい」と出力して、終了するプログラムとすること。

↑ここがどのようにプログラムしたらいいのか分からないのです。

944 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:10:33 ]
>>940
#include <stdio.h>

int main(void)
{
FILE *fp;
int i, j, a[11] = {0}, n;

if((fp=fopen("input.txt", "r"))==NULL) return 1;

while(fscanf(fp, "%d", &n)!=EOF) a[n/10]++;

for(i=0; i<11; i++) {
printf("%3d点台:", i*10);
for(j=0; j<a[i]; j++) putchar('*');
putchar('\n');
}
fclose(fp);

return 0;
}

945 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:11:47 ]
>>942
ttp://pc11.2ch.net/test/read.cgi/tech/1187944110/513
ttp://pc11.2ch.net/test/read.cgi/tech/1187944110/532
ttp://pc11.2ch.net/test/read.cgi/tech/1187944110/534

946 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:18:28 ]
>>940

( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5994.c

947 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:26:44 ]
>>942
単純化してhogeが3要素の場合を考えてみろ
この場合、rand()%3が三回計算されるから、これが完全な乱数だと近似すれば、27通りが均等な確率で出る
一方、3要素を並べ換える方法の数は3!=6通りで、27は6の倍数じゃないから、6通りが公平に出ることはありえない

948 名前:デフォルトの名無しさん [2008/02/04(月) 21:41:46 ]
>>945,>>947
ご丁寧な引用&説明ありがとう。


949 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:26:19 ]
>>944
>>946
こんなに早くありがとうございました。

950 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:34:51 ]
>>943
#include<iostream>
using namespace std;
int main(void){
string s;
cout << "学生番号 : ";
cin >> s;
if(s.length() != 7){
cout << "7文字いれろぼけ" << endl;
return 1;
}
for(string::iterator si = s.begin(); si != s.end(); si++){
if(!isdigit(*si)){
cout << "数字以外いれんなぼけ" << endl;
return 1;
}
}
cout << s.c_str() << "@yahoo.co.jp" << endl;
return 0;
}

951 名前:934 [2008/02/04(月) 22:56:17 ]
>>950
ありがとうございます!



952 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:32:47 ]
ちょっと早いけど次スレ立てました
C/C++の宿題を片付けます 104代目
pc11.2ch.net/test/read.cgi/tech/1202135539/

953 名前:798 mailto:sage [2008/02/05(火) 01:09:34 ]
>>914さん
解説もつけていただき、ありがとうございました(^-^)/


954 名前:デフォルトの名無しさん [2008/02/05(火) 12:22:57 ]
文字列がランダムに入ったchar moji[i][255]があります
moji[0〜i]で何種類の文字列があるか数える方法教えてください
例えばi=5だとして
moji[0]="abc"
moji[1]="bbb"
moji[2]="abcdbbb"
moji[3]="bbb"
moji[4]="abc"
なら答えは3種類です

955 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:39:17 ]
>>954
ここは宿題スレ。よって、スレ違い。

956 名前:売国まるはん [2008/02/05(火) 13:11:47 ]
パチンコスレで遠隔、ホルコン、サクラ、マネーロンダリングなどについて書き込むと渋谷マルハン社員やマルハンに依頼された
ネット工作会社がスレ荒らしをしてスレが機能停止します。
↓↓工作員の荒らしのやり方↓↓
2008/01/10(木)ID:iA54nBU50
■■■■マルハン総合スレッド 9■■■■money6.2ch.net/test/read.cgi/pachij/1187021165/783-784
【宮崎県都城市】パチ事情そのAmoney6.2ch.net/test/read.cgi/pachij/1187189246/658-659
【山と川】宮崎県児湯付近PART1【自然イパーイ】money6.2ch.net/test/read.cgi/pachij/1188235164/471-472
【基地外が大暴れ4】エスパス日拓総合スレ【18発目】money6.2ch.net/test/read.cgi/pachij/1188885488/401-410
2008/01/13(日)ID:1HLcWzUK0
【基地外が大暴れ4】エスパス日拓総合スレ【18発目】money6.2ch.net/test/read.cgi/pachij/1188885488/461-462
■■■■マルハン総合スレッド 9■■■■money6.2ch.net/test/read.cgi/pachij/1187021165/809-810
【香川】パーラーグランドのスレ2【徳島】money6.2ch.net/test/read.cgi/pachij/1188315438/324
【延岡】宮崎県北情報PART3【日向】money6.2ch.net/test/read.cgi/pachij/1196865970/186

工作員に荒らされ機能停止したスレ
■■■■マルハン総合スレッド 9■■■■money6.2ch.net/test/read.cgi/pachij/1187021165/
【山崎】MPT渋谷パート9【シャネル】money6.2ch.net/test/read.cgi/pachij/1197771701
【基地外が大暴れ4】エスパス日拓総合スレ【18発目】money6.2ch.net/test/read.cgi/pachij/1188885488
MPT渋谷はマルハン・パチンコ・タワー渋谷の略です。

パチンコ産業は荒らすことでレスとレスの間を空けて読む気をなくさせたり
マネーロンダリング、さくら、ホルコン、遠隔、などの風評被害を最小限に抑えようとしてる。

新スレ→○○○マルハンパチンコタワー渋谷パート10○○○
★★★★★このスレの解説★★★★★を読んでみるとよく判る。
money6.2ch.net/test/read.cgi/pachij/1201304777/52-54



957 名前:デフォルトの名無しさん [2008/02/05(火) 15:11:26 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):与えられたデータに対して季節調整を行うプログラムを作成しなさい。
<調整法>
i年目、j月のデータを aij とする。
月平均 Mj
月平均の平均 M
調整のための指数 Sj = Mj / M
調整結果 aij / Sj
<input.text>
40.0 37.7 51.8 45.9 45.2 45.4 62.0 40.8 42.1 49.1 51.5 93.4
42.6 39.5 53.4 47.6 47.0 47.5 63.5 42.2 42.9 51.1 51.8 94.7
43.3 39.8 53.6 48.5 48.3 47.5 65.9 42.8 43.7 53.2 52.9 97.0
44.9 42.3 55.0 50.7 48.6 48.9 68.8 43.3 46.2 54.2 54.6 100.5
47.5 42.8 57.7 52.6 51.0 50.9 71.4 45.0 47.3 56.8 56.7 102.7
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:2月7日
[5] その他の制限: 結果は、画面に表示してください。

よろしくお願いします!


958 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:17:10 ]
>>957
pc11.2ch.net/test/read.cgi/tech/1180856695/796-

959 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:22:47 ]
[1]授業単元 C言語
[2]問題文 整数yを入力すると、y×yの正方形を描くプログラム

ex)y=4のとき
・・・・
・  ・
・  ・
・・・・

y=1のときは


y=2のときは
・・
・・
でOK

[3]環境 Windows、C
[4]期限 2/6 9:30まで。なるべく早めにお願いします。


960 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:32:04 ]
// >>959 2バイト文字にするのは自分でやってくれ。
#include <stdio.h>
int main()
{
int y;
scanf("%d", & y);
if (y >= 1) {
for (int xc = 0; xc < y; ++xc) {
printf(".");
}
printf("\n");
}
for (int yc = 0; yc < y - 2; ++yc) {
printf(".");
for (int xc = 0; xc < y - 2; ++xc) {
printf(" ");
}
printf(".\n");
}
if (y >= 2) {
for (int xc = 0; xc < y; ++xc) {
printf(".");
}
printf("\n");
}
return 0;
}

961 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:42:01 ]
/* こんでいいじゃんw */
#include <stdio.h>
int main()
{
int y, xc, yc;
scanf("%d", & y);
for (yc = 0; yc < y; ++yc) {
for (xc = 0; xc < y; ++xc) {
printf("%s", yc == 0 || yc == y - 1 || xc == 0 || xc == y - 1 ? "・" : " ");
}
putchar('\n');
}
return 0;
}




962 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:56:42 ]
>>960-961
ありがとうございました。

963 名前:デフォルトの名無しさん [2008/02/05(火) 18:21:06 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
・時計の長針と短針がなす角を求めるプログラム

 時刻 h時 m分 (24時間制、mは整数)において、時計の長針と短針がなす角θ(0°≦θ≦180°)
を計算するプログラムを書きなさい。
 ただし、h、mを入力する部分、及びなす角θを計算する部分をそれぞれ関数化しなさい。
結果の出力はh、m、θが表示されていれば細かい様式は問わない。

ヒント:時計の長針は1時間で一周するということは、1分間あたり何度動くか。
同様に、時計の短針は12時間で一周するということは1時間当たり何度動くか。
また1分間あたり何度動くか。時計の長針は短針に比べて1分間にどれだけ多く動くか。

実行例
>clock.exe
input h:22
input m:0

22:00 (60.0°)

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年2月6日12:00まで
[5] その他の制限: 制限は特にありません。よろしくお願い致します


964 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:04:08 ]
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):ip.tosp.co.jp/i.asp?I=cgenger
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:2月9日
[5] その他の制限: 宜しくお願いします

965 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:04:22 ]
>>963
#include<stdio.h>
#include<math.h>
double calc_theta(int hour, int minute){
double degree_hour, degree_minute, theta;
degree_hour=(hour+minute/60.0)*30.0;
degree_minute=minute*6.0;
theta=fmod(degree_hour-degree_minute, 360.0);
if(theta<0.0) theta+=360.0;
if(theta>180.0) theta=360.0-theta;
return theta;
}
void get_value(int *pvalue, const char *message){
printf("%s", message);
scanf("%d", pvalue);
}
void get_hour(int *phour){
get_value(phour, "input h:");
}
void get_minute(int *pminute){
get_value(pminute, "input m:");
}
int main(void){
int hour, minute;
get_hour(&hour);
get_minute(&minute);
printf("\n%02d:%02d (%.1f°)\n", hour, minute, calc_theta(hour, minute));
return 0;
}

966 名前:963 mailto:sage [2008/02/05(火) 20:50:26 ]
>>965さん
宿題でこれだけがどうしても分からなかったので、
本当に助かりました。
コードを見て理解することができました。
ありがとうございました!

967 名前:デフォルトの名無しさん [2008/02/05(火) 21:51:10 ]
【質問テンプレ】
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6002.txt
このプログラムにより1つのxに対して100個の誤差を含んだyが求められるので
それぞれのxについて分散S=(1/100)*((yの平均値)-(yの値))を求めて
fprintf(fp2,"%lf\t%lf\n",x,S);を使ってtxtファイルに書き出す
[3] 環境
 [3.1] Windows
 [3.2] Visual Studio 2005
 [3.3] 言語:C
[4] 期限:2月6日正午
問題文のプログラムに付け加える形でやってもらえるとありがたいです
時間短いですがどうかよろしくお願いします

968 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:54:27 ]
2乗が足りないな

969 名前:967 mailto:sage [2008/02/05(火) 23:10:36 ]
あ、ほんとだ
S=(1/100)*((yの平均値)-(yの値))^2 ですね

970 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:31:18 ]
>>967
void main()
{
double X[2];
int flag=0;
srand( (unsigned)time( NULL ) );

int i;
long double x,y, sum_y, sum_y2, s;
x=0;

FILE *fp1, *fp2;
fp1=fopen("file1.txt","w");
fp2 = fopen("file2.txt", "w");
for(x=0;x<=10;x++)
{
i=0;
sum_y = sum_y2 = 0;
while(i<100){
i=i+1;
y=x*x+AddError(&flag,X)*0.05;
sum_y+=y;
sum_y2 += pow(y, (long double)2.0);
fprintf(fp1,"%lf\t%lf\n",x,y);
}
s = -pow(sum_y, (long double)2.0)/10000 + sum_y2/100;
fprintf(fp2, "%lf\t%lf\n", x, s);
}
fclose(fp1);
fclose(fp2);
}

971 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:37:07 ]
>>954
std::set<std::string>(moji,moji+sizeof(moji)/sizeof(*moji)).size()



972 名前:デフォルトの名無しさん [2008/02/06(水) 00:14:18 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6003.txt
[3] 環境 
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio
 [3.3] 言語: C
[4] 期限: 2月7日
[5] その他の制限: おねがいします。

973 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 06:51:28 ]
>>972
またその問題かいな。

974 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 07:31:03 ]
>>973
!!
もう誰かが質問してたってことですか! ぐへえ

975 名前:デフォルトの名無しさん [2008/02/06(水) 09:25:24 ]
【質問テンプレ】
[1] 授業単元:C++
[2] 問題文
テトラナッチ数列の問題で。
初項と第2項は0、第3項は1の値となるが第n項(n>3)び値Tnは以下の式で
あらわせられる。
Tn=Tn-1+Tn-2+Tn-3
再起を利用した関数int tetra(int n)を作成しn=1から n=30までに各値を表示
させたい。以下の質問に答えよ
@関数tetraを以下に記述せよ
Amain関数を以下に記述せよ
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (borand5.5)
 [3.3] 言語: (/C++/)
[4] 期限: 今日中


976 名前:975 [2008/02/06(水) 09:29:17 ]
追記で。
上記プログラムを何回実行したかを確認したいときどこをどのように変更したらよいか答えなさい。

977 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:53:54 ]
>>975

#include <stdio.h>

int tetra(int n) {
    if (n < 2)
        return 0;
    else if (n == 3)
        return 1;
    else
        return tetra(n - 4) + tetra(n - 3) + tetra(n - 2) + tetra(n - 1);
}

int main() {
    for (int i = 0; i <= 30; i++)
        printf("T%d : %d\n", i, tetra(i));
    return 0;
}

978 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:08:07 ]
>>977
一個増えてるwww

979 名前:967 [2008/02/06(水) 13:14:45 ]
>>970
こうじゃなくて、
ひとつのxについて
100個でてくるyの平均を出す

100個のyについてそれぞれ平均との差を出して二乗をとる

それを100個分足してΣが出るので、それを100で割って分散を求める

っていうのをそれぞれ1〜10について求めたいんですけれど・・・

980 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:49:32 ]
(E[y] - y)^2=((E[y])^2-2E[y]y+y^2)
1/100*Σ((E[y]^2-2E[y]y+y^2)=E[y]^2-2E[y](1/100)Σy+(1/100)Σ(y^2)
E[y]=(1/100)Σyだから
((1/100)Σy)^2-2((1/100)Σy)^2+(1/100)Σ(y^2)
=-((1/100)Σy)^2+(1/100)Σ(y^2)
だと思ったんだが,違ったのか

981 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:54:14 ]
間違ってるようでいて、合ってる。
N回分お得。



982 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:46:13 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):課題作成 簡単なすごろく 20でゴール
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] Visual studio 2005 8
 [3.3] 言語: (C++)
[4] 期限: 2月12日

最終課題ですごろくを作れと言われたのですが、基礎の基礎しか習ってないのでよくわかりません。
過去ログにあったプログラム例も試してみたのですが無理でした。
どなたかお願いします。

983 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:49:22 ]
>>982
GUI付き?

984 名前:982 mailto:sage [2008/02/06(水) 21:02:41 ]
GUIはないと思います・・多分。

985 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:15:05 ]
すいません、詰まっています。教えてください。
「第6回 万年カレンダー(2)
キーボードから年と月を入力し、その月のカレンダーを表示する。 」

#include <stdio.h>
int is_bissextile(int year)
{
/*
閏年かどうか判定する関数
閏年なら1,そうでなければ0を返す
*/

int bis;

if((year % 400) == 0 || ((year % 4) == 0 && (year % 100) != 0)){
bis = 1;
}
else {
bis = 0;
}

/* 下のような書き方も可能
bis = ( year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
*/
1日の曜日を計算する)

986 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:16:35 ]
2008年2月のカレンダーを表示する
2月1日が金曜日であることがわかっているものとする
(課題では,前回のプログラムを使って1日の曜日を計算する)
*/
int year = 2008;
int month = 2;
int first_dow = 5; /* 1日は金曜日 */
int i;

int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if(is_bissextile(year)) { /* 閏年なら,2月を29日までにする */
days[1] = 29;
}

printf(" %d年%2d月\n", year, month);
printf("日 月 火 水 木 金 土\n");

987 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:26:58 ]
for(i=0; i<first_dow; i++){
printf(" "); /* 最初の曜日の,1日の前の空白 */
}
for(i=1; i<days[month-1]+1; i++){
printf("%2d ", i); /* 数字二桁と,二つの空白 */
if((first_dow + i) % 7 == 0){
printf("\n"); /* 土曜日になったら,改行 */
}
}
/*
最終日が土曜日以外だったら,最後に改行を入れる
土曜日の場合は,既に入っているので入れない
*/
if((first_dow + i)%7!=1) printf("\n");
}

988 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:52:24 ]
>>985-987
わかりづれーなww
>>985>>986の間に

return bis;
}
int main(void){

を追加すればいいだけじゃないのか?

989 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:56:35 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):課題1:キーボードから文字列を入力し、その内容をファイルに保存するプログラムを作成しなさい。
なお、文字列の最大長は256バイトとし、プログラムの終了条件は、文字データの入力がないときとする。
課題2:課題1で作成されたファイルを読み込み、画面に表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] Visual studio 2005
 [3.3] 言語:C
[4] 期限: 2月14日

課題が2つもありますがどうかよろしくお願いします

990 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:59:20 ]
連続投稿すみません。課題1の最後の分に「すなわち、次の入力とする「C:\>Enter」」を追加します。

991 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:41:11 ]
>>988
ごめんなさいちょっとミスしましたw
えっと、この日本語を全てプログラムにしないとダメなのですが、分からないんです

jbbs.livedoor.jp/bbs/read.cgi/game/33978/1163833286/313n-

問題こちらです、よろしくお願いします。



992 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:42:11 ]
>>991
特定したwwwwww

993 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:43:37 ]
え、ちょ、何がですか?怖いです

994 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:00:44 ]
>>989
初心者ですが作ってみました。

//課題1
#include <stdio.h>
#include <string.h>

#define CHARMAX 256

int main(void)
{
int i=0;
char str[CHARMAX];
FILE *fp=fopen("data.txt","w");

if(!fp) return 1;

do{
fgets(str, CHARMAX, stdin);
i += int(strlen(str));
if(i > CHARMAX){
printf("入力文字数オーバー");
break;
}
fputs(str, fp);
}while(str[0]!='\n');
return 0;
}

995 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:01:04 ]
//課題2
#include <stdio.h>

#define CHARMAX 256

int main(void)
{
char str[256];
FILE *fp=fopen("data.txt", "r");
if(!fp) return 1;

while(!feof(fp)){
fgets(str, CHARMAX, fp);
printf("%s", str);
}
return 0;
}

996 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:14:20 ]
>>982
こんなんでいいんでしょうか。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6014.txt

997 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:34:05 ]
>>994
問題の解釈違いかも知れんが、入力制限はトータルではなくて毎回個別でいいんじゃないか?
それなら、fgets()任せで済むことだし。

998 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:39:15 ]
>>997
ああ、確かに文字列一個当たりの最大値っぽいですね。
指摘ありがとうございます。

//課題1
#include <stdio.h>

#define CHARMAX 256

int main(void)
{
char str[CHARMAX];
FILE *fp=fopen("data.txt","w");

if(!fp) return 1;

do{
fgets(str, CHARMAX, stdin);
fputs(str, fp);
}while(str[0]!='\n');
return 0;
}

課題2は同じで大丈夫ぽいかな。

999 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:47:22 ]


1000 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:48:02 ]


1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。








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

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

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