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

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

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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

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

2 :デフォルトの名無しさん:2010/11/16(火) 22:16:56
【◆QZaw55cn4c 隔離】C/C++の問題を片付けます
1 : ◆QZaw55cn4c :2010/11/14(日) 15:15:49
あなたが解けないC言語/C++言語の問題を ◆QZaw55cn4c が有償で片付けるスレッドです。

3 :デフォルトの名無しさん:2010/11/16(火) 22:17:53
>>1
infoseekのロダは死んでいるので次のロダを使うと便利です

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/

4 :デフォルトの名無しさん:2010/11/16(火) 22:28:06
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
問題1 キーボードから入力した複数個の整数の、加算と積算の計算結果を表示するプログラムを作成しなさい。
ただし、このプログラムは、連続して実行される前半と後半の2部構成で作成してください。
0が入力された時点で、入力処理を終了し結果の表示を行ってください。
すなわち、前半の処理では、キーボードから入力した数値の加算合計の表示を、0が入力されるまで繰返し、後半の処理ではキーボードから入力した数値の積算値の表示を、0が入力されるまで繰返すプログラムを作成してください。
【条件】 
前半の「和を求める」繰返しは while 文、後半の「積を求める」繰返しは do-while 文を使用して作成すること。
【実行例】
=加算処理=

値:6

値:8

値:12

値:0

合計は26です。

=積算処理=

値:2

値:6

値:3

値:3

値:0

積算値は108です。
問題2 繰返し処理を用いて、m ÷ nの計算をするプログラム(商を求める)を作成しなさい。 
ただし、演算に割り算記号 / を使ってはいけません。また、mとnはキーボードから入力してください。
【ヒント】 
・割り算をするとは、mからnを何回引くことができたか?を調べることと等価です 。元の数mが正の間、nを引くことができた回数が、割り算の商となります。
この回数を、 繰返し処理を使って数えさせてください。 
・繰返し条件は、「mからnを引いた結果が正の値の間」繰り返し、商を1ずつ増やしていきます。
負の値になったら、繰返しを終了します。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月18日
[5] その他の制限: なし
よろしくお願いします。

5 :デフォルトの名無しさん:2010/11/16(火) 23:16:03
1] 授業単元: 数値解析
[2] 問題文(含コード&リンク): ランダムに入力された3次元における100点の重心を求めよ
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 2008
 [3.3] 言語: C
[4] 期限: 11月18日
[5] その他の制限: 構造体を使う

よろしくお願いします。

6 :デフォルトの名無しさん:2010/11/17(水) 01:02:43
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1254228.txt.html
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年11月17日12:00まで(一応20:00まででも可ですができれば12:00まで)
[5] その他の制限:できればなるべく簡単な(高度ではない)書き方をしてもらえたらと思います。(できればなのであまり気にしないで良いです)

問題数が3問と少し多いのですがどうかお願いします

7 :デフォルトの名無しさん:2010/11/17(水) 02:15:33
[1] 授業単元:プログラミング
[2] 問題文
・キーボードから入力した整数値が3の倍数かどうかを表示するプログラム
・キーボードから入力した三つの整数値の平均値を求めるプログラムを作成しなさい。
ただし、平均値を求める関数 float ave(int a,int b)
を利用すること。
・キーボードから入力した文字列をすべて大文字(小文字は大文字に、大文字はそのままに)に変換して表示するプログラムを作成しなさい。
ただし、文字を大文字に変換する関数を作成し、それを利用すること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010/11/18までにお願いします
[5] その他の制限:

8 :デフォルトの名無しさん:2010/11/17(水) 02:21:46
>>6
http://codepad.org/twiOoHeS
http://codepad.org/AwDSSo3p
http://codepad.org/IukKlXXu

9 :デフォルトの名無しさん:2010/11/17(水) 07:34:30
>>8
ありがとうございました!

10 :デフォルトの名無しさん:2010/11/17(水) 12:40:56
[1] 授業単元:情報通信
[2] 問題文(含コード&リンク):
サーバープログラム(英文清書サーバーの作成)
クライアントから送信された(大文字小文字が乱雑な)英文字文字列を次のように変換して送り返す。
 分の先頭の文字:大文字
 分の先頭以外の文字:小文字
 アルファベット以外:変換しない
改行、スペース、タブにより単語の区切りとする。また、文末は改行コードではなく、ピリオド"."で判定する。
ポート番号は1202番
クライアントから接続されると、[Beautify Server Ready]を送信する。
"\end"または"\END"を送信すると、[Beautify Server Closed]を送信してコネクションを切断する。

このサーバーの目的(英文の清書)の範囲内で、高機能にすること(例えば単独の"I"を大文字にする、連続した空白文字を1つのスペースにする、など)を歓迎する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11/19
[5] その他の制限:
http://codepad.org/w4zd0J0t
上記のプログラムを参考に作成してもよいとのことです。
大文字や小文字のプログラムまではできましたが、その後がうまくできません。
よろしくお願いします。

11 :デフォルトの名無しさん:2010/11/17(水) 12:55:22
>>10
INExp.hとできてるところまでのコード暮

12 :デフォルトの名無しさん:2010/11/17(水) 13:55:24
>>10
質問
・受信データに全角が混じる可能性は有るの?
・受信データの途中で 0x00 が出現する可能性は有るの?
・サンプルを見ると "\END" + 改行コード(2BYte) で終了判定しているけど "\END" のみで終了判定しても良いの?
・"\END"も返信するの?
・space + tab + space の場合、space 1つに変換するの?
・1Byte 単位で read() かけても文句言われない?

13 :デフォルトの名無しさん:2010/11/17(水) 15:24:40
>>11
http://codepad.org/CHFnxR5p
です。
>>12
・受信データに全角が混じる可能性は有るの?
全角はないと思います。

・受信データの途中で 0x00 が出現する可能性は有るの?
ちょっとわからないです。ごめんなさい。

・サンプルを見ると "\END" + 改行コード(2BYte) で終了判定しているけど "\END" のみで終了判定しても良いの?
・"\END"も返信するの?
"\END"+エンターキーで終了判定です。
"\END"は送信だけで大丈夫です。

・space + tab + space の場合、space 1つに変換するの?
区切りが3つできると思います。

・1Byte 単位で read() かけても文句言われない?
ちょっとわからないです。ごめんなさい。


14 :デフォルトの名無しさん:2010/11/17(水) 16:47:17
前スレが埋まってしまってたのでもう一度貼っておきます。
[1] 授業単元:自然言語処理
[2] 問題文(含コード&リンク):
曖昧性のないLR 表を利用して、ファイルに記述された「1
桁の数、+、*、(、)で構成される数式」を計算するプログラムを作成せよ。数式は1 行ず
つファイルに記述されているとする。
問題文↓
ttp://nlp.dse.ibaraki.ac.jp/~shinnou/lecture/nl/rep2.pdf
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:12/3
[5] その他の制限:
資料
ttp://nlp.dse.ibaraki.ac.jp/~shinnou/lecture/nl/nlp05.pdf
の5〜15ページ。
またよろしければよろしくお願いします。
変数の役割や処理内容なども解説してくださると有り難いです。

15 :デフォルトの名無しさん:2010/11/17(水) 17:27:22
>>13
『ちょっと判らない』とは質問の意味が判らないという意味かい?

『"\END" は送信だけで大丈夫』とは返信の必要は無いと言う事?

区切りが3つできると言う事はtabは文字扱いで良いんだね

>>10 で提示されたソースコードは本当に動くの?
これTCP/IPでしょ、setup_server() の戻り値は待ち受けソケットだと思うんだけどなぁ...

16 :デフォルトの名無しさん:2010/11/17(水) 17:32:24
>>15
そうです。ちょっと質問の意味がわからないです。すみません。
"\END"は送信するとサーバー側が[Beautify Server Closed]を送信してコネクションを切断する。
ので返信はいらないです。
>>10 のプログラム単体だと動かないかもです。

17 :デフォルトの名無しさん:2010/11/17(水) 18:27:56
>>16
そらまぁサーバー単体では動かないわな
サーバーが動いているときにクライアントが接続して初めて通信が開始されるんだからね

まぁ動くとの前提で考えようか、バッファがグローバル変数だからマルチプロセスを考慮してないのは明らかだ
多分、setup_server() で待ち受けソケット作って→接続あったら→待ち受けソケットをクローズって流れなんだろうな
1対1の通信しか想定していないプログラムと考えるよ

18 :デフォルトの名無しさん:2010/11/17(水) 18:30:42
>>17
それでいいと思います。
ごめんなさい、学習不足で・・・。

19 :デフォルトの名無しさん:2010/11/17(水) 18:49:45
http://yomi.mobi/read.cgi/pc11/pc11_tech_1225320579/584-
歴史は繰り返すだね

20 :デフォルトの名無しさん:2010/11/17(水) 18:54:07
大学の講義なんて毎年同じなのが当たり前だし

21 :デフォルトの名無しさん:2010/11/17(水) 19:02:42
>>20
解答があればだけど、その時の解答どっかにか落ちてないのかね

22 :デフォルトの名無しさん:2010/11/17(水) 19:12:47
>>4誰かお願いします

23 :デフォルトの名無しさん:2010/11/17(水) 19:32:10
>>22

#include <stdio.h>

int main(void)
{
  int input,kasan=0,seki=1;

  puts("=加算処理=");
  while(1)
  {
    printf("値:"); scanf("%d", &input);
    kasan += input;
    if(input == 0){
      printf("合計は%dです。\n", kasan);
      break;
    }
  }

  puts("=積算処理=");
  input = 1;
  do{
    seki *= input;
    printf("値:"); scanf("%d", &input);
  }while(input != 0);
  printf("積算値は%dです。\n", seki);

  return 0;
}

24 :デフォルトの名無しさん:2010/11/17(水) 19:35:32
>>22

#include <stdio.h>

int main(void)
{
  int m,n,syou=0;
  printf("m:"); scanf("%d", &m);
  printf("n:"); scanf("%d", &n);
  while(n <= m){
    m -= n;
    syou++;
  }
  printf("syou:%d\n", syou);
  return 0;
}

25 :デフォルトの名無しさん:2010/11/17(水) 19:36:01
>>7
お願いします

26 :デフォルトの名無しさん:2010/11/17(水) 19:36:45
>>4
問題1: http://codepad.org/ZdNJupRP
問題2: http://codepad.org/t9J0CI7t

27 :デフォルトの名無しさん:2010/11/17(水) 19:50:32
>>25

#include <stdio.h>

int c;

float ave(int a, int b) { return ((a+b+c)/3); }

char to_upper(char c) {
  if(('a' <= c) && (c <= 'z')){ c = c - 'a' + 'A'; }
  return c;
}

int main(void) {
  int a,b,i=0;
  char str[100];
  printf("a:"); scanf("%d", &a);
  printf("b:"); scanf("%d", &b);
  printf("c:"); scanf("%d", &c);
  printf("str:"); scanf("%s", str);
  printf("aは3の倍数で%s\n", (a%3)==0 ? "す" : "ない");
  printf("bは3の倍数で%s\n", (b%3)==0 ? "す" : "ない");
  printf("cは3の倍数で%s\n", (c%3)==0 ? "す" : "ない");
  printf("a,b,cの平均値は%f\n", ave(a,b));

  while(str[i] != '\0'){ str[i] = to_upper(str[i]); i++; }
  printf("===after to_upper===\n");
  printf("str:%s", str);
  return 0;
}

28 :デフォルトの名無しさん:2010/11/17(水) 20:27:15
>>10
書いたけど部分的なテスト(beautifyString)しかしてないよ、全体的なテストはやりようが無いからね
動かして変な動作が有ったら言ってくれ

ttp://codepad.org/GxRLKH2W

29 :デフォルトの名無しさん:2010/11/17(水) 20:30:56
書き方が悪くてすみません;
>>7は全部別々の問題です

1.キーボードから入力した整数値が3の倍数かどうかを表示するプログラム

2.キーボードから入力した三つの整数値の平均値を求めるプログラムを作成しなさい。
ただし、平均値を求める関数 float ave(int a,int b)
を利用すること。

3.キーボードから入力した文字列をすべて大文字(小文字は大文字に、大文字はそのままに)に変換して表示するプログラムを作成しなさい。
ただし、文字を大文字に変換する関数を作成し、それを利用すること。

30 :28:2010/11/17(水) 20:35:52
>>10
codepad で見直したら誤りがあったので訂正した

ttp://codepad.org/49uvkrrJ


31 :デフォルトの名無しさん:2010/11/17(水) 20:40:25
>>28
ありがとうございます。
ちょっと動かしてみましたが。
・・・・.・・・・・.
のように一行にピリオドが2つ以上入力したとき
・・・・.
・・・・.
のように出力されると思うのですが。
うまくできなかったです。

32 :デフォルトの名無しさん:2010/11/17(水) 20:41:09
割り算の結果が整数になっとったわ
float ave(int a, int b) { return ((a+b+c)/3); } は、
float ave(int a, int b) { return ((a+b+c)/3); } な。

33 :デフォルトの名無しさん:2010/11/17(水) 20:41:49
割り算の結果が整数になっとったわ
float ave(int a, int b) { return ((a+b+c)/3); } は、
float ave(int a, int b) { return ((a+b+c)/3.0); } な。

34 :デフォルトの名無しさん:2010/11/17(水) 20:46:17
>>30
>>31 の追記です。
\ENDか\endの入力でサーバーが閉じないです。

35 :デフォルトの名無しさん:2010/11/17(水) 20:46:33
>>33
cはどこから来るのかな?

36 :デフォルトの名無しさん:2010/11/17(水) 20:48:27
>>31
言ってる意味がよく判らないんだけど >>28 は駄目だよ >>30 を試してくれ

37 :デフォルトの名無しさん:2010/11/17(水) 20:53:53
>>34
90行目
ptr = strstr( buf1, "\\end\r\n" );

ptr = strstr( buf1, "\\end" );
に直してみてくれる?
改行コードまでを終了判定に使うか迷ったんだけど "\end \r\n" みたいな入力がある事を考えると使わない方が良いかも
そのかわり、文中に "\end" が入るとそこで終わっちゃうけどね

38 :デフォルトの名無しさん:2010/11/17(水) 20:54:46
>>36
下記が実行結果です。
[Beautify Server Ready]
It is June now. I will finish my studies in America soon,and leave for Japan next month.
It is june now. I will finish my studies in america soon,and leave for japan next month.


It is june now.
I will finish my studies in america soon,and leave for japan next month.
のようにはならないのですか?ってことです。わかりづらくてごめんなさい。

39 :デフォルトの名無しさん:2010/11/17(水) 20:58:56
>>37
変えてみましたが
\end
\End
のようになって終わらないです。。

40 :デフォルトの名無しさん:2010/11/17(水) 21:00:30
>>38
ピリオドで改行しろって事?>>10 からはその意図を読み取れなかったんだけど、その方が良いのかな?
そっちの方が良いなら直すのは簡単だよ

>>34はOK?

41 :デフォルトの名無しさん:2010/11/17(水) 21:02:55
今は7月です。
私はすぐにアメリカの宿題を終えるでしょう。そして来月日本を発ちます。

42 :デフォルトの名無しさん:2010/11/17(水) 21:03:26
ネットワークは適当に連結されて送受信されたりするから
\end が独立してないんじゃないかな

43 :デフォルトの名無しさん:2010/11/17(水) 21:06:40
>>39
理由は判った、無くて7バグを体現してるなぁwww
文頭に 'Cause が有った場合は 'cause に直すべき?
答えによっては修正法が異なるので



44 :デフォルトの名無しさん:2010/11/17(水) 21:07:08
>>40
文末をピリオドで判定するから
ピリオドで改行するのかなと、思うのですが・・・。

45 :デフォルトの名無しさん:2010/11/17(水) 21:09:11
>>43
そこは直さなくてもいいと思います。
特に記載されてないので・・・。

46 :デフォルトの名無しさん:2010/11/17(水) 21:09:45
>>44
仕様を決めるのは君だから君がそう思うなら直すよ >>43 の答えが出たら作業を開始する


47 :デフォルトの名無しさん:2010/11/17(水) 21:15:56
>>10
2箇所しか修正箇所が無いから codepad の無駄使いかなぁ....

ttp://codepad.org/Cv02rynJ

48 :デフォルトの名無しさん:2010/11/17(水) 21:33:03
どなたか>>29をお願いできませんか!;
急ぎなのでお願い致します!

49 :デフォルトの名無しさん:2010/11/17(水) 21:46:28
>>48
>2.キーボードから入力した三つの整数値の平均値を求めるプログラムを作成しなさい。
>ただし、平均値を求める関数 float ave(int a,int b)
>を利用すること。
問題文、あってる?

>float ave(int a,int b)
これは課題として記述する関数?それとも与えられた関数?


50 :デフォルトの名無しさん:2010/11/17(水) 21:50:41
>>48
参考までに
http://nojiriko.asia/prolog/c143_7_2.html

51 :デフォルトの名無しさん:2010/11/17(水) 22:03:28
全スレ999です。
15パズルをランダムに状態を遷移させて完成にまで持って行きたいのですが
15パズルには考えられる状態数が多すぎるため10000回の遷移では完成させることができません
乱数を用いて、比較的すぐにパズルを完成させるためにはどのようにすれば良いですか?


52 :デフォルトの名無しさん:2010/11/17(水) 22:06:01
完全ランダムを辞めて戦略を考えてやればいいじゃないの

53 :デフォルトの名無しさん:2010/11/17(水) 22:08:29
>>49
課題として記述する関数だと思います;

>>50
ありがとうございます。
でもよくわからない…orz

54 :51:2010/11/17(水) 22:14:45
>>52
探索ではなく、乱数を使った戦略は何がありますか?

55 :デフォルトの名無しさん:2010/11/17(水) 22:15:55
なんで乱数にこだわるの

56 :デフォルトの名無しさん:2010/11/17(水) 22:22:11
>>54
左上が正しい位置に来たら、そのピースだけは動かさないようにする。
更にその周辺のピースが正しい位置に来たら、そのピースは動かさないようにする。
みたいに動かさなくてもすむピースを固定していったら?

57 :デフォルトの名無しさん:2010/11/17(水) 22:31:04
>>53
float ave(int a,int b,int c)の間違いじゃない?

58 :デフォルトの名無しさん:2010/11/17(水) 22:36:54
>>56
横からですまんが
それで解けると思わないんだが

59 :デフォルトの名無しさん:2010/11/17(水) 22:40:40
もしかして遺伝的アルゴリズムとかの系統を使う系?

60 :デフォルトの名無しさん:2010/11/17(水) 22:44:50
>>29
とりあえず大雑把に。入力値のチェックはしていない
問題1:

#include<stdio.h>
int main()
{
int i;
scanf("%d",&i);
puts((i%3)?"3 no baisu dehanai":"3 no baisu");
return 0;
}


61 :デフォルトの名無しさん:2010/11/17(水) 22:46:31
>>29
問題2:

#include<stdio.h>
float ave(int a,int b)
{
return (float)a/b;
}

int main()
{
int a,b,c;

scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);

printf("%f\n",ave(a+b+c,3));
return 0;
}

62 :デフォルトの名無しさん:2010/11/17(水) 22:48:05
>>29
問題3:

#include<stdio.h>
char conv(char c)
{
return ((c>='a')&&(c<='z'))?(c-'a'+'A'):c;
}
int main()
{
char s[256];
int i;

scanf("%s",s);
for(i=0;'\0'!=s[i];i++)
printf("%c",conv(s[i]));
printf("\n");
return 0;
}

63 :47:2010/11/17(水) 22:51:36
>>10
>>47 は話にならない事が飯食ってたら判ったので修正、何回目のアップだろう...orz

ttp://codepad.org/FJrFT2Ke

これで最後にしたいなぁ....

64 :デフォルトの名無しさん:2010/11/17(水) 23:00:19
>>57
多分、2項の平均値を得る関数を用いて3項の平均値を取るって所が肝なんじゃね?
ave( ave( a, b ), c );
だと重みが違っちゃうから駄目なんだろうなぁ、どうするんだろ?

65 :デフォルトの名無しさん:2010/11/17(水) 23:08:23
>>64
(ave(a,b)+ave(b,c)+ave(c,a))/3.0

こうか?w

66 :デフォルトの名無しさん:2010/11/17(水) 23:11:32
安部

67 :デフォルトの名無しさん:2010/11/17(水) 23:18:26
麻里亞

68 :デフォルトの名無しさん:2010/11/17(水) 23:47:39
こうだろ ave( ave( a, b ) * 2, c );

69 :デフォルトの名無しさん:2010/11/17(水) 23:48:02
>>65
こんな式でもOK
ave(ave(a, b) * 2, c)

70 :デフォルトの名無しさん:2010/11/17(水) 23:52:55
>>68-69
やめてやれよw

71 :デフォルトの名無しさん:2010/11/17(水) 23:57:34
>>64
難しい式だなー 俺なら直感的にこう書くわ
(ave(a,a)+ave(b,b)+ave(c,c))/3.0

72 :デフォルトの名無しさん:2010/11/17(水) 23:59:18
a=1,b=2,c=1.5の時のaveは1.5になるが、>>68>>69では2.25になってしまう

73 :デフォルトの名無しさん:2010/11/18(木) 00:07:51
>>72
おっしゃる通りなので訂正。
((ave(a, b) * 2 + c) / 3.0

74 :デフォルトの名無しさん:2010/11/18(木) 00:30:10
誰か宿題の回答書いてやれよ


75 :デフォルトの名無しさん:2010/11/18(木) 00:54:24
>>29
 ave(a, b) = (a+b)/2
 ave(b, c) = (b+c)/2
+ ave(c, a) = (c+a)/2
----------------------
ave(a, b)+ave(b, c)+ave(c, a) = a+b+c

ave(a, b, c) = (a+b+c)/3 = {ave(a, b)+ave(b, c)+ave(c, a)}/3
これでどうよ

>>54
乱数だったら完全に運じゃん?

76 :デフォルトの名無しさん:2010/11/18(木) 01:52:38
3で割ったら負けかなと思ってる

77 :デフォルトの名無しさん:2010/11/18(木) 02:07:13
スカラー量を2等分しかできない道具を駆使して、スカラー量を3等分することって
可能なんだろうか? 昔いろいろ考えたけど、いい方法が思い浮かばなかったわ

78 :デフォルトの名無しさん:2010/11/18(木) 02:22:49
>>77
1/4+1/16+1/64+1/256+・・・

Σ(1/4^n)=1/3

79 :デフォルトの名無しさん:2010/11/18(木) 02:26:48
ほう・・・

80 :デフォルトの名無しさん:2010/11/18(木) 03:20:38
>>58
56とは別人だが、固定箇所を限定すればいけんじゃね?
↓こんな感じで
■□□□ ■■□□ ■■□□ ■■□□ ■■■■ ■■■■ ■■■■ ■■■■ ■■■■ ■■■■
□□□□ □□□□ ■□□□ ■■□□ □□□□ ■□□□ ■■■■ ■■■■ ■■■■ ■■■■
□□□□ □□□□ □□□□ □□□□ □□□□ ■□□□ □□□□ ■□□□ ■■□□ ■■□□
□□□□ □□□□ □□□□ □□□□ □□□□ ■□□□ □□□□ ■□□□ □□□□ ■■□□

81 :デフォルトの名無しさん:2010/11/18(木) 03:33:26
なるほど、それならできるかも

82 :デフォルトの名無しさん:2010/11/18(木) 04:13:11
>>80
それって8パズルでも可能?

83 :デフォルトの名無しさん:2010/11/18(木) 07:52:13
ポーカーゲームを作るプログラムの課題を教えてください。
[1] プログラムまとめ
[2] 課題1のストレート、フラッシュ、フルハウスをヒントを使って判定する関数を作る。

/* ヒント: この関数を使うと、 判定が簡単かも */
void distrib(struct card h[], int dist[]){
int i;
for(i = 0; i < 14; i++){
dist[i] = 0;}
for(i = 0; i < 5; i++){
dist[h[i].pips]++;}}

int is_straight(struct card h[]){
/* 課題1 */
return 0;}

int is_flush(struct card h[]){
/* 課題1 */}

int is_fullhouse(struct card h[]){
/* 課題1 */
return 0;}

[3] 環境
 [3.1] Mac
 [3.2] Xcode
 [3.3] C
[4] 期限: 2010年11月22日まで
よろしくお願いします。

84 :デフォルトの名無しさん:2010/11/18(木) 07:55:37
83に付け足します。
card h[] は手札のカード
h[].pips は手札のカードの番号
h[].suit は手札のカードのマーク
のことです。

85 :デフォルトの名無しさん:2010/11/18(木) 08:11:05
ジョーカーは0?

86 :デフォルトの名無しさん:2010/11/18(木) 08:50:38
>85
カードは全部で52枚なので、ジョーカーは無いものと考えているようです。

87 :デフォルトの名無しさん:2010/11/18(木) 10:13:18
dist[]のサイズが14だからジョーカーの分もあるのかと思ったら
ただ添え字と数字あわせただけか

88 :デフォルトの名無しさん:2010/11/18(木) 12:57:24
>>83
書いてみた、ゲームの仕様が判らないので手役の判定だけね
ランダムに10000回手札を作ってその手役を判定する
出力としては、4カード以上の手役が出来たら手札を表示
最後に出来た役の総数を出力
手役表示の優先順位は誤っているかも知れん、ロイヤルストレートって出現頻度が低いんだなぁ

ttp://ideone.com/JiPy6

89 :デフォルトの名無しさん:2010/11/18(木) 12:57:37
>>60>>61>>62
ありがとうございました!
お礼が遅れてすみません

90 :デフォルトの名無しさん:2010/11/18(木) 12:58:48
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):
赤(0〜255)、緑(0〜255)、青(0〜255)のそれぞれの濃淡で
描かれた256色ビットマップ形式の3つの画像を読み込み、
それぞれの色を重ね合わせて一つの画像にする。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
 [3.3] 言語: C/C++
[4] 期限: 2010年11月21日まで
[5] その他の制限:
↓これに近い感じでお願いします。
http://codepad.org/dZITrctF



91 :デフォルトの名無しさん:2010/11/18(木) 13:11:31
codepadが開けない

92 :デフォルトの名無しさん:2010/11/18(木) 13:23:17
>>83
チェックしてないけど
int is_straight(struct card h[]) {
int i, j, dist[14];
distrib(h, dist);
for(i = 1; dist[i] == 0; i++);
if(i == 1) {
for(j = 10; j <= 13; j++) if(dist[j] != 1) break;
if(j > 13) return 1; }
for(j = 0; j < 5; j++) if(dist[i + j] != 1) return 0;
reutrn 1; }

int is_flush(struct card h[]) {
int i;
for(i = 1; i < 5; i++) if(h[0].suit != h[i].suit) return 0;
return 1; }

int is_fullhouse(struct card h[]) {
int i, dist[14];
distrib(h, dist);
for(i = 1; i <= 13; i++) if(dist[i] == 1 || dist[i] == 4) return 0;
return 1;
}

93 :デフォルトの名無しさん:2010/11/18(木) 13:32:49
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

関数int yokin(int yen, double rishi, int year)を定義しなさい。
この関数はyen円を年利rishiの定期預金にyear年預けた後に戻ってくる金額を返す関数である。
引数はすべて0より大きいと仮定してよい。
rishiは,5%の場合には0.05となる。
利子は端数(小数点以下の値)があったとしても切り捨てられる。
端数の切り捨ては,毎年行われる。 main関数は次の処理をしなさい。
入力として,預け入れる金額を表す整数,利子を表す実数(0.0より大きく, 1.0より小さい),年数を受け付ける。
int yokin(int yen, double rishi, int year)を利用して,預け入れ後に受け取れる金額を出力せよ。

入力例1: 10000 0.05 3
入力例1に対する出力:11576
入力例2: 10000 0.05 5
入力例2に対する出力:12761
入力例3: 10000 0.035 10
入力例3に対する出力:14101

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C/C++
[4] 期限: できればはやめに
[5] その他の制限:
とくになしです

よろしくお願いします。

94 :デフォルトの名無しさん:2010/11/18(木) 13:47:22
>>93

#include <stdio.h>

int yokin(int yen, double rishi, int year)
{
  for(; 0<year; year--, yen+=yen*rishi);
  return yen;
}

int main(void) {
  int yen; double rishi; int year;
  int counter=1;
START:
  printf("入力例%d: ", counter);
  scanf("%d %lf %d", ¥, &rishi, &year);
  printf("入力例%dに対する出力:%d\n", counter, yokin(yen, rishi, year));
  goto START;
  return 0;
}

95 :デフォルトの名無しさん:2010/11/18(木) 13:48:31
>>93
カウンターのインクリメント忘れ。

#include <stdio.h>

int yokin(int yen, double rishi, int year)
{
  for(; 0<year; year--, yen+=yen*rishi);
  return yen;
}

int main(void) {
  int yen; double rishi; int year;
  int counter=1;
START:
  printf("入力例%d: ", counter);
  scanf("%d %lf %d", ¥, &rishi, &year);
  printf("入力例%dに対する出力:%d\n", counter++, yokin(yen, rishi, year));
  goto START;
  return 0;
}

96 :デフォルトの名無しさん:2010/11/18(木) 13:49:48
yokin yen rishi と来て、最後が year かよ

97 :デフォルトの名無しさん:2010/11/18(木) 13:56:55
yen rishi と来て、最後が year かよ

98 :デフォルトの名無しさん:2010/11/18(木) 13:57:26
いやあそれほどでも

99 :デフォルトの名無しさん:2010/11/18(木) 14:08:18
>>97
関数名が見えない目の不自由な人?

100 :デフォルトの名無しさん:2010/11/18(木) 14:21:24
誰かパステルカラーの宿題をお願いします。

101 :デフォルトの名無しさん:2010/11/18(木) 16:03:37
>>82
8パズル(右下が空きの場合)はこのように固定すればいい(一例)。たぶんな。
■□□ ■■■ ■■■ □□■
□□□ □□□ ■□□ □□□
□□□ □□□ ■□□ ■□□
  (a)     (b)    (c)     (d)

ただし、(a)とした状況で(d)を適用は不可能(d→aも同様)。下のようになっちゃうからね。
固定の仕方(aとするかdとするかなど)により、収束の早さが変わると思うが、どういう固定の仕方がいいのかはさっぱりわからん。
■□■
□□□
■□□

あと、おそらくだが、下の場合のように遷移可能な場所が1つであるような固定の仕方は駄目だと思う。
たとえば、ブロックの座標を(行,列)で表すとして、(1,2)のブロックは(2,2)だけにしか遷移できない、のように。
たぶん、こういった"遷移可能な場所が1つである部分"がないならどんな固定の仕方でも大丈夫だと思う。
 1 2 3
1■□■
2□□□
3□□□


102 :デフォルトの名無しさん:2010/11/18(木) 16:14:41
お前らパズル引っ張りすぎ
飽きた

103 :デフォルトの名無しさん:2010/11/18(木) 16:16:59
ポーカーは面白かったな

104 :デフォルトの名無しさん:2010/11/18(木) 16:29:36
>>102
ごめん、引っ張ってんの俺だわw
たぶん最後のレス。

>>101に間違いあり。
一番下のどんな固定の仕方でも大丈夫と書いたけど、これ間違い。
(e)を遷移させていくと(f)になるんだが、この時点で固定すると(e)に戻せなくなる。
123 123
456 754
78  68
 (e)  (f)

まぁ、>>101の(a)→(b)→(c)と固定していくのが無難だと思われ。

105 :デフォルトの名無しさん:2010/11/18(木) 17:13:32
>>88>>92
ありがとうございました!
助かりました^^

106 :デフォルトの名無しさん:2010/11/18(木) 17:27:10
>>90
コレって合成先のビットマップも256色なの?
なんかパレット数が妙なことになってるけど
それはなかったことにして24bitか32bitビットマップとしていいのか?

107 :デフォルトの名無しさん:2010/11/18(木) 18:08:49
>>100
>>1

108 :デフォルトの名無しさん:2010/11/18(木) 18:13:12
>>107
>>109

109 :デフォルトの名無しさん:2010/11/18(木) 18:21:57
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):3次元上に3点をランダム発生、半径を指定し、その3点が球面上に乗る球の中心を求めるプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:特になし
球の中心の求め方の参考 ttp://oshiete.goo.ne.jp/qa/195295.html
よろしくおねがいします。


110 :デフォルトの名無しさん:2010/11/18(木) 19:11:48
>>109
二次方程式の解き方を教えてください

111 :デフォルトの名無しさん:2010/11/18(木) 20:02:57
これ系→ >>101
取りあえず完全乱数版を作ってみた。
これから >>101 方式作って比べてみる。

112 :111:2010/11/18(木) 20:03:39
URL忘れてた
http://codepad.org/0ehnVXCt


113 :デフォルトの名無しさん:2010/11/18(木) 20:17:58
収束速くなったかな?
http://codepad.org/r5SGn6ge

114 :デフォルトの名無しさん:2010/11/18(木) 20:47:32
ついでに >>80
http://codepad.org/y6kYFh9r

115 :デフォルトの名無しさん:2010/11/18(木) 21:05:10
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):名前、学年、学科、番号を標準入力から入力し、
サブルーチン内で表示するプログラムを作成せよ。(構造体を使用しないこと。)
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:11/19
[5] その他の制限:特になし

連投しますが、よろしくお願いします。


116 :デフォルトの名無しさん:2010/11/18(木) 21:09:36
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):名前、学年、学科、番号を標準入力から入力し、
サブルーチン内で表示するプログラムを構造体を用いて作成せよ。ただし、
構造体のメンバに値を代入する際には変数実体を操作する。
すなわちドット演算子を用いること。
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:11/19
[5] その他の制限:特になし

連投しますが、よろしくお願いします。

117 :デフォルトの名無しさん:2010/11/18(木) 21:11:24
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):>>116において、構造体のメンバに値を
代入する際にポインタを用いて代入するプログラムを作成せよ。
すなわちアロー演算子を用いること

 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:11/19
[5] その他の制限:特になし


118 :デフォルトの名無しさん:2010/11/18(木) 21:14:54
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):学年、学科、番号、を表示する
プログラムを作成せよ。ただし、構造体を使用し、構造体のメンバとして
構造体を含むようにすること。

 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:11/19
[5] その他の制限:特になし


119 :デフォルトの名無しさん:2010/11/18(木) 21:18:24
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):メンバとしてchar型変数chとint型変数をi、
double型変数dを持つ共用体を用意する。
iに16進数値を代入した後ch,i,dそれぞれを表示する
プログラムを作成せよ。なお、表示する際に、全ての変数を%xで表示すること。

 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:11/19
[5] その他の制限:特になし

以上よろしくお願いします。

120 :デフォルトの名無しさん:2010/11/18(木) 21:33:43
>>115~
なんかすごいな...
やり方教えたほうがいいのかな...

121 :デフォルトの名無しさん:2010/11/18(木) 22:25:25
>>116 と >>117 なんて A[i].B と (A+i)->B の違いだけだしなぁ
C言語を覚えたての奴が独習として回答するんじゃないのか?

122 :デフォルトの名無しさん:2010/11/18(木) 22:57:20
[1] 授業単元:プログラミング
[2] 問題文
コンストラクタでrow,columnを指定して、動的に確保
デストラクタを解放
これで足し算メソット add(matrix Y)を作ってください
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限:2010/11/20
[5] その他の制限:あまり難しくしすぎないでください。
あと、出力→coutで、入力はcinでお願いします。


123 :デフォルトの名無しさん:2010/11/18(木) 23:03:52
>>122
問題文を日本語で頼む

124 :デフォルトの名無しさん:2010/11/18(木) 23:36:13
>>123
お前日本語読めないの?

125 :デフォルトの名無しさん:2010/11/18(木) 23:41:33
http://news.www.infoseek.co.jp/topics/comp/n_game__20101118_6/story/gadget_85662/

126 :デフォルトの名無しさん:2010/11/18(木) 23:45:14
あずにゃん

127 :デフォルトの名無しさん:2010/11/18(木) 23:48:22
いまや低脳日本人だらけだからね
高脳なら低脳の意味不明な文章でも問題なく理解できるが、でも低脳は不可能
低脳は高脳が低脳にあわせて解りやすく言うことしか理解できない
ついでに、低脳同士のコミュニケーションは不可能


128 :デフォルトの名無しさん:2010/11/18(木) 23:50:55
確かに、高脳なら普通に理解できるものを低脳は理解できない、しようとしない。

129 :デフォルトの名無しさん:2010/11/19(金) 00:00:09
>>122
望んでるのはこんなんか?入力部分はコメントアウトしてある

ttp://codepad.org/bG4bQkai

130 :122:2010/11/19(金) 00:55:47
>>129
出来たら、coutの部分を日本語でいれていただきたいんですが…
あと、(void)って()の中のvoidは必要ですか?

131 :デフォルトの名無しさん:2010/11/19(金) 01:39:08
>>130
このようなことまで注文するのは
回答者(2ch?)の著作権を尊重しての
ことなのでしょうね。

132 :デフォルトの名無しさん:2010/11/19(金) 01:40:51
ISO、ANSI準拠の標準スタイルではC++ではmain関数への引数が無い場合はvoidが無くてもおk
int main() { } でどうぞ。return 0;も省略可。

133 :デフォルトの名無しさん:2010/11/19(金) 02:07:32
>>130
日本語に直すぐらいは自分でやれ、エディターを使った事が無いなら別だけど

引数の void は引数が無いことを明示的に表現しているだけなので省略しても良い
しかし、明示的に表示する事によるデメリットは何も無いので、俺は必ず付ける

134 :デフォルトの名無しさん:2010/11/19(金) 14:24:49
>>14
分かる方いましたらよろしくお願いします。

135 :デフォルトの名無しさん:2010/11/19(金) 15:41:57


136 :デフォルトの名無しさん:2010/11/19(金) 16:27:09
>>129
newしたものを初期化してほしければ
m_Mat[i] = new int[m_column]();
じゃないか?

137 :デフォルトの名無しさん:2010/11/19(金) 16:33:26
>>136
() 付けないとコンストラクタは呼ばれないんだっけ?
忘れてることって多いな....

138 :デフォルトの名無しさん:2010/11/19(金) 16:46:21
>>136
コンパイルエラー

139 :デフォルトの名無しさん:2010/11/19(金) 16:48:06
>>136
やってみたら E2243 new で確保した配列には初期化子が使えない (C++) が出るな

#include <iostream>
class foo {
public: int x;  foo( void ) { x = 1; }
};
int main( void ) {
  foo* p; int* x; int i;
  p = new foo[10]; x = new int[10];
  for(  i = 0; i < 10; i++ )
    std::cout << p[i].x << ", " << x[i] << std::endl;
  return 0;
}
試しにこんなコードを書いてみたら、p[].x は全て1に初期化されていたけど、x[] は未初期化状態だ
int はディフォルトコンストラクタを持たないって事かな?

140 :デフォルトの名無しさん:2010/11/19(金) 16:50:11
>>139
int()は単独では使えるけど、配列newには使えないだけ

141 :デフォルトの名無しさん:2010/11/19(金) 16:53:11
規格のバージョンとか、独自拡張とかなのかな?
codepadとVC++2010じゃコンパイル出来た。

142 :デフォルトの名無しさん:2010/11/19(金) 17:00:26
§5.3.4 New
15 A new-expression that creates an object of type T initializes that object as follows:
? If the new-initializer is omitted:
? If T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is defaultinitialized
(8.5). If T is a const-qualified type, the underlying class type shall have a user-declared
default constructor.
? Otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly
cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of
const-qualified type, the program is ill-formed;

という事だそうです

143 :デフォルトの名無しさん:2010/11/19(金) 17:15:43
>>140
それは foo に関しても同じ、 foo の配列 new ではディフォルトコンストラクタが呼ばれて x が 1 に初期化されたけど、
int は 0 に初期化されなかったので int にはディフォルトコンストラクタが用意されてないのかという話

144 :デフォルトの名無しさん:2010/11/19(金) 17:17:05
>>141>>143
それはC++0xではいいが
C++ではだめ

POD class type (or array thereof) containing (directly or indirectly) a member of
const-qualified type, the program is ill-formed;

これの意味が分かれば分かるはず


145 :デフォルトの名無しさん:2010/11/19(金) 17:18:02
Otherwise, the object created has indeterminate value.

ああこれも含めてな

146 :デフォルトの名無しさん:2010/11/19(金) 17:37:50
英語弱いから日本語で書いてくれ


147 :デフォルトの名無しさん:2010/11/19(金) 17:40:41
よし in English

148 :デフォルトの名無しさん:2010/11/19(金) 18:24:28
C++03では配列newの場合非PODではデフォルトコンストラクタが呼ばれ、
PODの場合は不定値となるという事

もし new int[constant]() と書くと文法エラー(C++0xではOK)

149 :デフォルトの名無しさん:2010/11/19(金) 18:32:38
>>148
じゃ >>143 は正しい解釈じゃないの?
要は plain old data にはディフォルトコンストラクタが無いことに起因してるんだから

150 :デフォルトの名無しさん:2010/11/19(金) 18:44:44
デフォルトコンストラクタはある

int i() とやると iは0に初期化される

しかし配列newの場合はPOD型はデフォルトコンストラクタは呼ばれなくて
不定値になるとちゃんと書いてあるじゃん

151 :デフォルトの名無しさん:2010/11/19(金) 19:04:55
PODのディフォルトコンストラクタは配列 new 時にはコールされないって解釈なら正しいのか?

152 :mery:2010/11/19(金) 19:10:58
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):
無限ループを用い、1〜50までの数値を任意に10個入力し、その度数分布を求めよ。但し、度数分布は10等分(例;1〜10に4個, 11〜20に3個, 21〜30・・・41〜50に0個)して表示せよ。
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン: 不明
 [3.3] 言語:C
[4] 期限:11月21日
[5] その他の制限:1〜50以外の数字が入力されたときの処理は考えなくていいそうです
よろしくお願いします!

153 :デフォルトの名無しさん:2010/11/19(金) 19:15:02
>>152
その度数分布だと5等分なんじゃ?

154 :デフォルトの名無しさん:2010/11/19(金) 19:44:05
>>151
規格を解釈するとそうなる

155 :デフォルトの名無しさん:2010/11/19(金) 19:48:48
#include <stdio.h>
#include <stdlib.h>
double ave,var;
double heikin(double *array,int n)
{
int i;
double sum=0;
srand(10);
for(i=0;i<n;i++){
array[i] = (double)(rand())/RAND_MAX;
sum+=array[i];
printf("%lf\n",array[i]);
}
return sum;
}

156 :デフォルトの名無しさん:2010/11/19(金) 19:50:46
int main(void)
{
int d=0;
double *h,r;

printf("乱数の数:");
scanf("%d",d);

h=(double*)malloc(d*sizeof(int));
r= heikin(h,d);
printf("合計:%lf",r);
return 0;
}

乱数の合計値を求めるプログラムなんですが、エラーが発生します。
どこが原因なんでしょうか?

157 :デフォルトの名無しさん:2010/11/19(金) 19:54:03
>>156
sizeof(int)

158 :デフォルトの名無しさん:2010/11/19(金) 19:56:05
>>157
sizeof(int)をどうすれば良いのですか?

159 :デフォルトの名無しさん:2010/11/19(金) 20:12:30
double *h,r; hはdouble型のポイントで

h=(double*)malloc(d*sizeof(int)); int型のサイズで確保してどーすんだと

160 :デフォルトの名無しさん:2010/11/19(金) 20:13:20
ポイントってなんだ、ポインタやん orz

161 :デフォルトの名無しさん:2010/11/19(金) 20:20:25
>>156
scanf("%d",d);

scanf("%d",&d);

162 :デフォルトの名無しさん:2010/11/19(金) 20:30:04
>>159-161
ありがとうございます。
初歩的なミスでした。

実を言うと、もう一つ質問があります。
この合計から「分散」を計算したいのですが、どうすれば良いですか?


163 :mery:2010/11/19(金) 20:57:47
>153さん
すいません、5等分でした。
正しい問題は、
「無限ループを用い、1〜50までの数値を任意に10個入力し、その度数分布を求めよ。但し、度数分布は5等分(例;1〜10に4個, 11〜20に3個, 21〜30・・・41〜50に0個)して表示せよ。 」です。


164 :デフォルトの名無しさん:2010/11/19(金) 21:23:30
>>152
#include <stdio.h>

int main(void)
{
int count[5]={0};
int i, j, x=0;
i=0;
while(1)
{
if(i>=10) break;
scanf("%d", &x);
count[(x-1)/10]++;
i++;
}
i=0;
while(1)
{
if(i>=5) break;
printf("%2d〜%2d : ", i*10+1, (i+1)*10);
j=0;
while(1)
{
if(j>=count[i]) break;
printf("*");
j++;
}
printf("\n");
i++;
}
return 0;
}

165 :デフォルトの名無しさん:2010/11/19(金) 21:36:07
よし、マイナスの値を入力して結果を見てみようか。

166 :デフォルトの名無しさん:2010/11/19(金) 21:37:57
範囲外の値を入力したらエラーで落ちた orz

167 :デフォルトの名無しさん:2010/11/19(金) 21:41:39
こういうのを勇み足といいます

168 :デフォルトの名無しさん:2010/11/19(金) 21:49:20
入力された値をもとに配列の添え字を指定するのは思いついたが
範囲外の対処が甘かったか。

169 :デフォルトの名無しさん:2010/11/19(金) 21:49:34
>>162の者ですが、「分散」のプログラムはこれで合ってますか?

ave=sum/n;
for(i=0;i<n;i++){
gokei+=(sum*((array[i]-heikin)*(array[i]-heikin)));
}
var=gokei/(n-1);

170 :デフォルトの名無しさん:2010/11/19(金) 21:50:58
>>169
いいえ

171 :デフォルトの名無しさん:2010/11/19(金) 21:56:25
>>169
どこが違うのか教えてください

172 :デフォルトの名無しさん:2010/11/19(金) 22:45:54
>>169ですが、書き直しました。

ave=sum/N;
for(i=0;i<N;i++){
sum2+=((array[i]-ave)*(array[i]-ave));
}
var=sum2/(N-1);
return var;
}

これで合ってますか?間違っているのなら指摘をお願いします。

173 :デフォルトの名無しさん:2010/11/20(土) 00:05:58
>>172
sum2=0;
をforの前に入れればOK

174 :デフォルトの名無しさん:2010/11/20(土) 00:07:40
安部

175 :デフォルトの名無しさん:2010/11/20(土) 00:09:48
分散は、
(二乗の平均) - (平均の二乗)
に等しい、という公式がありますので(http://ja.wikipedia.org/wiki/%E5%88%86%E6%95%A3
平均を求めるときに二乗の平均もあわせて計算すると、1 pass ですみます。参考までに。

176 :デフォルトの名無しさん:2010/11/20(土) 01:35:23
>>173>>175
ありがとうございます!

177 :デフォルトの名無しさん:2010/11/20(土) 01:46:27
[1] 授業単元:プログラミング
[2] 問題文
http://imepita.jp/20101120/039760
図の左のプログラム(○つけてある方です)の30行目〜32行目を消して、デストラクタを作って31行目の処理を実装して動作確認をしてください
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限:2010/11/22


178 :デフォルトの名無しさん:2010/11/20(土) 01:51:07
>>177
読みづらい
それにSeiseki.hはどこにあるの?
面倒でもcodepadかどこかに上げてくれ

179 :デフォルトの名無しさん:2010/11/20(土) 01:53:29
>>177
そのページを打ち込んだテキストファイルをアップする
それが最低限のマナーだと思うぞ


180 :デフォルトの名無しさん:2010/11/20(土) 01:53:42
>>132
これって、printfはcoutにする事は不可能でしょうか

181 :177:2010/11/20(土) 02:02:03
http://imepita.jp/20101120/070540
ごめんなさい。全体を貼ったほうがいいですね…

182 :デフォルトの名無しさん:2010/11/20(土) 02:05:13
だからimepitaはやめろっつーに
それもデジカメじゃなくて携帯で撮ったろ
ボケて読めない
テキストで打ち込め

183 :デフォルトの名無しさん:2010/11/20(土) 02:20:24
なんでわざわざ紙に印刷した上にデジカメで撮影した画像をアップするんだよw
もとのテキストをアップすりゃ済むことだろw

184 :デフォルトの名無しさん:2010/11/20(土) 02:26:49
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):平均値:μ,分散:σ^2の分布がn個与えられているとする。
この分布が何であろうと、nの数が多きなるにつれてこの分布の合計は平均:nμ,分散:nσ^2の正規分布に近づくとされる。
要素数n個をもつx個の乱数系列を発生させるプログラムを作れ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010
 [3.3] 言語: C++
[4] 期限:2010年11月22日
[5] その他の制限:@キーボードから入力すること
A乱数は配列で保存すること
B#include <stdio.h>#include <stdlib.h>にしてはじめること


185 :177:2010/11/20(土) 02:27:17
>>183
紙に印刷したんじゃなくて配布のプリントなんです…

186 :デフォルトの名無しさん:2010/11/20(土) 02:28:16
宿題をくれているのに生意気なこと言うなよ
とっとと宿題をやれ

187 :デフォルトの名無しさん:2010/11/20(土) 02:42:25
野良猫にえさを与えないで下さい

188 :デフォルトの名無しさん:2010/11/20(土) 02:44:02
>>185
だから、それを一字一句間違いなく打ち込んでアップするのが出題者の最低限のマナーだ
コードを書けない馬鹿でも紙に書いてある物を間違いなく打ち込むくらいは出来るだろう

189 :デフォルトの名無しさん:2010/11/20(土) 02:47:11
にゃおおおおー、にゃおーーーー

 ヾヽヽ
 (,, ・∀・)チュンチュン
  ミ_ノ
  ″″

190 :デフォルトの名無しさん:2010/11/20(土) 02:48:51
>>188
>コードを書けない馬鹿でも紙に書いてある物を間違いなく打ち込むくらいは出来るだろう
これどうやるんですか?

191 :デフォルトの名無しさん:2010/11/20(土) 03:14:56
まさかパソコン持ってないとか言うなよ・・・・

192 :デフォルトの名無しさん:2010/11/20(土) 03:26:10
>>190
君に言うべき言葉が見つからない、ゴメン

193 :デフォルトの名無しさん:2010/11/20(土) 03:30:47
いや、あるよ
>>190
君はこのスレに来る前にしなければならない事が山ほどある

194 :デフォルトの名無しさん:2010/11/20(土) 03:35:42
PCなくてもネカフェ行けばいいんでないの

195 :デフォルトの名無しさん:2010/11/20(土) 03:40:16
いまの学生は携帯は持っているけど、PCは持ってないの多そうだな
宿題の解答は学校のPCでダウソかな
時代は携帯中心になり、モビリティのないPCはおっさん時代の中心ねだろうな

196 :デフォルトの名無しさん:2010/11/20(土) 03:45:36
だが、PCが一人1台すらない詐欺学校で
全て机上のペーパープログラミング授業だとしたらどうだろう?

197 :デフォルトの名無しさん:2010/11/20(土) 03:45:56
>>177
よく分からないんだけど、これでいいの?
Seiseki.h http://codepad.org/pD9ELv8a
Seiseki.cpp http://codepad.org/eHbTlLw3
main.cpp http://codepad.org/EosY2r9A

198 :90:2010/11/20(土) 03:50:57
>>106
亀レスでごめんなさい。
256色で出力しようと思ってたのですが。
求める画像ができるならどの形式でも問題ありません。

codepad重いみたいなのでおかしいと思ったところを書き直して貼ってみます。
どなたか>>90をお願いします。


#include "stdafx.h"
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
FILE *fp = NULL;

int inwidth,inheight,insize;


RGBQUAD eq[256];
for(a=0; a<256; a++)
{
eq[a].rgbBlue = a;
eq[a].rgbGreen = a;
eq[a].rgbRed = a;
eq[a].rgbReserved = 0;
}



199 :デフォルトの名無しさん:2010/11/20(土) 03:52:02
fopen_s(&fp, "赤rec00「RGB」.bmp", "rb");
if(fp==NULL)
{
printf("画像の読み込みに失敗");
exit (-1); /*処理を継続できないので終了する*/
}
fread(&bmfh, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&bmih, sizeof(BITMAPINFOHEADER), 1, fp);
inwidth = bmih.biWidth;
inheight = bmih.biHeight;
insize = inwidth * inheight;
unsigned char* red;
red = new unsigned char[insize];
fread( &eq , sizeof(RGBQUAD)*256, 1 , fp );
fread(red, insize, 1, fp);
fclose(fp);

fopen_s(&fp, "緑rec00「RGB」.bmp", "rb");
if(fp==NULL)
{
printf("画像の読み込みに失敗");
exit (-1); /*処理を継続できないので終了する*/
}
fread(&bmfh, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&bmih, sizeof(BITMAPINFOHEADER), 1, fp);
unsigned char* green;
green = new unsigned char[insize];
fread( &g , sizeof(RGBQUAD)*256, 1 , fp );
fread(green, insize, 1, fp);
fclose(fp);


200 :デフォルトの名無しさん:2010/11/20(土) 03:52:44
fopen_s(&fp, "青rec00「RGB」.bmp", "rb");
if(fp==NULL)
{
printf("画像の読み込みに失敗");
exit (-1); /*処理を継続できないので終了する*/
}
fread(&bmfh, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&bmih, sizeof(BITMAPINFOHEADER), 1, fp);
unsigned char* blue;
blue = new unsigned char[insize];
fread( &eq , sizeof(RGBQUAD)*256, 1 , fp );
fread(blue, insize, 1, fp);
fclose(fp);


unsigned char* rgbrec;
rgbrec = new unsigned char[insize];
RGBQUAD rgb[256*128];
for (a=0; a<insize; a++)
{
rgb[a].rgbBlue = blue[a];
rgb[a].rgbGreen = green[a];
rgb[a].rgbRed = red[a];
rgb[a].rgbReserved = 0;

rgbrec[a] = a;
}



201 :デフォルトの名無しさん:2010/11/20(土) 03:53:25

bmfh.bfType = 0x4D42;
bmfh.bfSize = 54+insize+(4*256*128);
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bmfh.bfOffBits = 54+4*256*128;

bmih.biSize = 40;
bmih.biWidth = inwidth;
bmih.biHeight = inheight;
bmih.biPlanes = 1;
bmih.biBitCount = 8;
bmih.biCompression = 0;
bmih.biSizeImage = insize;
bmih.biXPelsPerMeter = 0;
bmih.biYPelsPerMeter = 0;
bmih.biClrUsed = 256;
bmih.biClrImportant = 0;

fopen_s(&fp, "rec「RGB」.bmp" , "wb" );
fwrite( &bmfh , sizeof(BITMAPFILEHEADER) , 1 , fp );
fwrite( &bmih , sizeof(BITMAPINFOHEADER) , 1 , fp );
fwrite( &rgb , sizeof(RGBQUAD)*256*128 , 1 , fp );
fwrite( rgbrec , 1 , insize , fp );
fclose( fp );

return 0;
}

202 :デフォルトの名無しさん:2010/11/20(土) 03:54:05
長々と失礼しました。

203 :デフォルトの名無しさん:2010/11/20(土) 04:25:28
>>181
君がアンカーをミスらなければもっと早く答えたんだけどね

void Matrix::disp( void )
{
    if( m_Mat ) {
        int i, j;
        for( i = 0; i < m_row; i++ ) {
            cout << "|\t";
            for( j = 0; j < m_column; j++ )
                cout << m_Mat[i][j] << "\t";
            cout << "|" << endl;
        }
    }
}
これの話だと思う、別にC++だからprintf() を使ってはいけない理由は無いと思うんだけどな


204 :203:2010/11/20(土) 04:27:58
× >>181
○ >>180

そして俺がアンカーをミスるのは何故だ....

205 :デフォルトの名無しさん:2010/11/20(土) 05:38:00
>>90
全部書き直したいくらいのソースだけど
一応可能な限り残して修正
てか、これ色々エラー処理入れたほうがいいんじゃないか?

吐き出しフォーマットは24bitビットマップ

http://codepad.org/9jTAUdhP

206 :デフォルトの名無しさん:2010/11/20(土) 10:27:17
>>184
http://codepad.org/VbJwxmH3

C標準関数rand()の質が悪いのでもっと良いrand()を使えば
いい結果が得られると思う

207 :デフォルトの名無しさん:2010/11/20(土) 10:31:37
>>184
ごめん乱数は配列に保存すると題意にあったのでarray[]に保存している
表示はしていない

http://codepad.org/Piz4GErK

208 :デフォルトの名無しさん:2010/11/20(土) 12:53:14
>>203
ごめんなさい。これを>>129のプログラムのprintfの所に代わりに入れてあげればいいんですか?


209 :デフォルトの名無しさん:2010/11/20(土) 14:10:20
>>184ですが、書き間違えていました。

正しくは、

A乱数は配列で保存すること → A乱数は「動的確保された」配列に保存すること

ごめんなさい。

210 :デフォルトの名無しさん:2010/11/20(土) 14:21:25
>>209の続きです。

C乱数係数xはキーボードから入力するようにプログラムすること

を追加してください。

211 :デフォルトの名無しさん:2010/11/20(土) 14:33:26
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):赤い領域と白い領域が隣り合っているところを抽出せよ。
[3] 環境
 [3.1] OS:Windows、visual studio2005
 [3.3] 言語:どちらでも可。
[4] 期限:今日か明日には完成させたいです。
[5] その他の制限:できるだけわかりやすいと嬉しいです。

とりあえず赤い領域は抽出できたのですが隣り合う白い領域を抽出するのができないです。
ラスタスキャンし、赤い画素を見つけたら4近傍を探索し、白い画素だったら抽出…という方向で組んでいるのですが
白い画素を見つけたとき、その白い画素の4近傍もまた探索しないといけないのでここでつまづいています。
よろしくお願いします。

212 :デフォルトの名無しさん:2010/11/20(土) 14:36:19
>>209>>210
乱数は動的確保された配列に保存されています

乱数係数xの意味がよくわかりません
具体的に説明をお願いします
もしかしてsrand()に与える値ですか?

213 :211:2010/11/20(土) 14:43:00
// (1)画素値(R,G,B)を順次取得し,変更する
// 赤色領域の4近傍を探索し、白色であった場合抽出する
for (y = 0; y < hsvImage->height; y++) {
for (x = 0; x < hsvImage->width; x++) {
cnt++;
p[0] = hsvImage->imageData[hsvImage->widthStep * y + x * 3]; //座標(x,y)のH(色相)値を取得
p[1] = hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 1]; //座標(x,y)のS(彩度)値を取得
p[2] = hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 2]; //座標(x,y)のV(輝度)値を取

//赤い画素を見つけたら
if(((p[0] >= THRESH_BOTTOM1) && (p[0] <= THRESH_TOP1)) || ((p[0] >= THRESH_BOTTOM2) && (p[0] <= THRESH_TOP2))){
if((p[2] >= THRESH_BOTTOM4) && (p[2] <= THRESH_TOP3)){

//// 4近傍を探索し、白色の画素があれば抽出(とりあえず左だけ)
x = x - 1;
if((p[2] >= THRESH_BOTTOM3) && (p[2] <= THRESH_TOP3)){
p[0] = cvRound(255);
p[1] = cvRound(255);
p[2] = cvRound(255);
flag=1;
}x=x+1;

214 :211:2010/11/20(土) 14:44:08
}
}
if((p[0] >= THRESH_BOTTOM1 && p[0] <= THRESH_TOP1) || p[0] >= THRESH_BOTTOM2 && p[0] <= THRESH_TOP2){
if((p[2] >= THRESH_BOTTOM4) && (p[2] <= THRESH_TOP3)){
hsvImage->imageData[hsvImage->widthStep * y + x * 3] = cvRound(255);
hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 1] = cvRound(255);
hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 2] = cvRound(255);
}
}else if((p[0] == THRESHOLD_MAX_VALUE) && (p[1] == THRESHOLD_MAX_VALUE) && (p[2] == THRESHOLD_MAX_VALUE)){
hsvImage->imageData[hsvImage->widthStep * y + x * 3] = cvRound(100);
hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 1] = cvRound(100);
hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 2] = cvRound(100);

}else{
hsvImage->imageData[hsvImage->widthStep * y + x * 3] = cvRound(0);
hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 1] = cvRound(0);
hsvImage->imageData[hsvImage->widthStep * y + x * 3 + 2] = cvRound(0);
}
//printf("flag:%d\n",y);
if(flag==1){
y = y -1;
flag=0;
}
}
}
今のところこんな感じです。
赤い画素をH,S,V全てに255をセットし、みつけた白い画素をH,S,V全てに100をセットしています

215 :デフォルトの名無しさん:2010/11/20(土) 14:44:18
>>211
サンプル画像も貼らずに質問とな?
説明の意味が分からんのだが、赤い領域と白い領域の境界を見るのなら
「白い画素の4近傍もまた探索」は必要ないのではないか?
とりあえず赤い領域と白い領域が何をさしてるのかちゃんと説明してくれ

216 :デフォルトの名無しさん:2010/11/20(土) 14:52:32
>>209
>>210
奇特な >>129 がせっかく書いてくれてるのに、
理解する能力もなければ(ホントに全くないよね)、
理解する気持ちもない。
君は単位落とすべきでは?

217 :211:2010/11/20(土) 14:55:50
>>215
http://www1.axfc.net/uploader/Img/link.pl?dr=4588966666&file=Img_100662.jpg
画像用意しました。
この中からエビの部分だけを抽出したいんです。


218 :デフォルトの名無しさん:2010/11/20(土) 16:08:51
jpegかよ

219 :デフォルトの名無しさん:2010/11/20(土) 16:12:39
>>212

乱数係数ではなく「乱数系列」でした。

220 :デフォルトの名無しさん:2010/11/20(土) 16:13:40
>>217
CDC MemDC1,MemDC2;を用意し、
MemDC1は白い色だけの色を残し、それ以外はCOLORREF=0にする。
MemDC2は赤い色だけの色を残し、それ以外はCOLORREF=0にする。
MemDC1とMemDC2のCOLORREF≠0の部分を縦横4ドットずつ広げる。
MemDC1とMemDC2のandを取る。

こんな感じでだめか?



221 :デフォルトの名無しさん:2010/11/20(土) 16:15:16
>>216
>>122は私が書いたのものではないのですが…

222 :デフォルトの名無しさん:2010/11/20(土) 16:17:52
>>14
http://codepad.org/Z4Tdf8rM

223 :デフォルトの名無しさん:2010/11/20(土) 16:56:39
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):双方向リストを使って、複数行を読み込み、読み込んだ行をそのままの順に出力するプログラムを完成させなさい。
[3] 環境
 [3.1] OS: Windows7(Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: gcc 3.4 VC 6.0
 [3.3] 言語:_C
[4] 期限:今日中
[5] その他の制限: 特になし


224 :デフォルトの名無しさん:2010/11/20(土) 17:06:52
IT会社の経営者なんて、自社製品を何も持たず技術者をよその会社にぶちこんでピンはねで利益を上げてるだけだぞ?
従業員のやりがいとか成長とか全く興味がないからな。ビジネスモデルがピンはねなんだからやつらの考えることは
如何に従業員をこき使うかしか考えてない。それでしか利益を上げられないんだから。
普通会社の存在理由って、世の中に新しい価値を提供したいとかそういうことじゃん?
でもITの経営者のやることは技術者を売ってピンはねで金儲けすることだけだから。
技術者の命より金の方が優先度が高い世界だぞ?そりゃ精神病んで自殺に追い込まれるよ。

225 :デフォルトの名無しさん:2010/11/20(土) 17:20:49
[1] 授業単元:集合知プログラミング
[2] 問題文(含コード&リンク):http://hibari.2ch.net/test/read.cgi/tech/1289913298/224 はどこか
のスレからの誤爆である。このスレを探し、何に対するレスであるか示すプログラムを書きなさい。
[3] 環境
 [3.1] OS: Windows7(Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: gcc 3.4 VC 6.0
 [3.3] 言語:_C
[4] 期限:今日中
[5] その他の制限: 特になし

226 :デフォルトの名無しさん:2010/11/20(土) 17:43:07
>>217
画像ファイルの扱いは不慣れなので、変なところがあるかもしれませんが、
取りあえずエビっぽいのが抽出できたんで。
http://www1.axfc.net/uploader/Sc/so/175292.zip

227 :デフォルトの名無しさん:2010/11/20(土) 17:46:04
>>222
すごいシンプルだな、参考にさせてもらうよ
俺もがんばって解いたが発狂しそうになった
http://codepad.org/BsfWdhLl

228 :デフォルトの名無しさん:2010/11/20(土) 17:53:22
>>227
問題読んですらないけど51-98行の圧迫感にワロタw
力作おつです。

229 :デフォルトの名無しさん:2010/11/20(土) 17:58:13
>>219
出掛けていて遅くなった

http://codepad.org/3mIpUOYz

これでいいのかな
ちなみにcodepadには上げてないけど、自前のもっと質の良い乱数発生
ルーチンを使ったら発生個数を上げると平均、分散ともに桁数の一致が
良くなりました

でも宿題用ならこれで十分でしょう

230 :226:2010/11/20(土) 18:01:15
>>226
ごめん。↓ここがおかしいわ。
gAnd[y][x] = 0;
int xx,yy;
for (yy=((y-3)<0?0:(y-3)) ; !gAnd[y][x] && yy<((y+3)>300?300:(y+3)) ;yy++) {
for (xx=((x-3)<0?0:(x-3)) ; !gAnd[y][x] && xx<((x+3)>300?300:(x+3)) ;xx++) {
if (gW[y][x] && gR[y][x]) {
gAnd[y][x] = 1;
}
}}

正しくは、というより俺がイメージしたのは↓。
/* "3ドット広げて、W,Rともドットがあったら"って処理のつもり */
gAnd[y][x] = 0;
int xx,yy;
int flag = 0;
for (yy=((y-3)<0?0:(y-3)) ; !gAnd[y][x] && yy<((y+3)>300?300:(y+3)) ;yy++) {
for (xx=((x-3)<0?0:(x-3)) ; !gAnd[y][x] && xx<((x+3)>300?300:(x+3)) ;xx++) {
if (gW[y][x]) flag |= 1;
if (gR[y][x]) flag |= 2;
if (flag==3) gAnd[y][x] = 1;
}}

231 :デフォルトの名無しさん:2010/11/20(土) 18:19:43
>>229
ありがとうございます。
ところで、このプログラムは、#include <math.h>と#include <time.h>を使わずにつくれますか?
できればなしのプログラムも欲しいんです。
何度も注文つけてしまってすいません。

232 :211:2010/11/20(土) 18:21:31
>>230
ありがとうございます!
キレイに抽出できてますね…
ソースが難しいので頑張って解読してみます。

233 :デフォルトの名無しさん:2010/11/20(土) 18:39:43
>>231
できるけどsinとかcosとかを自分で作らないといけないよ?
もともとあるものを自分で作るのは全く無意味だし
問題の本質ではないからこのままでいいんじゃない?
math.hとtime.hを使いたくない理由が分からないけど
もし習ってないとか言うバカげた理由なら考えを改めたほうがいいよ


234 :デフォルトの名無しさん:2010/11/20(土) 18:39:46
>>232
スケルトンから変えたのはほぼ View の40〜120行目あたりだけ。
ソースがみずらくてすまんが、やってることは大したことない。
 1.白と赤の部分だけを取り出す。gW , gR
 2.白と赤のORを作る。gOr
 3.白と赤を3ドット広げて、重なり部分を取り出す。gAnd
 4.gOrの島の中から,gAndが含まれる部分を抽出する。gMsk
おそらく君にとって、Fillだけがキモだと思うが、
gOr && gAnd を見つけたら gMsk を1にし、
その上下左右にgOrが続いていたら、xy座標を更新してFillを再起する。
最初の基点からジワーッとgOrをあぶりだしていく感じ。

235 :デフォルトの名無しさん:2010/11/20(土) 18:40:32
>>231
あ、>>229は<time.h>はもう不要なので取り忘れました
<math.h>はlog()とsqrt()とsin()とcos()を呼び出すのに必要なので、
やるとすれば疑似的な発生法しかありません

それで作ってみます

236 :211:2010/11/20(土) 18:49:05
>>234
スケルトンをまず知らないのでww
c言語でお願いすればよかったと後悔してます\(^o^)/

237 :デフォルトの名無しさん:2010/11/20(土) 18:54:45
>>231
http://codepad.org/Z7lv5P4I

floor()もsqort()も使えなくなったので、分散を求める事が出来ないので
発生した正規分布の乱数を表示するようにしました

238 :デフォルトの名無しさん:2010/11/20(土) 19:52:14
糞スレ

239 :デフォルトの名無しさん:2010/11/20(土) 20:21:00
>>237
無理なお願いを聞いて頂きありがとうございます。

240 :デフォルトの名無しさん:2010/11/20(土) 21:09:33
>>205
ありがとうございます。
RGBTRIPLEなんて構造体があったのですね。

241 :デフォルトの名無しさん:2010/11/20(土) 21:13:01
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
問題1
1から10までの整数の表示をするプログラムを、 do-while 文とを使用して作成しなさい。
< 実行例 >
1 2 3 4 5 6 7 8 9 10
問題2
10から1までの整数の表示をするプログラムを、 while 文を使用して作成しなさい。
< 実行例 > 
10 9 8 7 6 5 4 3 2 1
問題3
キーボードから 読み込ん だ整数が1〜9の範囲内の場合は 繰返し、それ以外の場合は終了するプログラムを作成しなさ い。
< 実行例 >

整数: 8
範囲内です

整数: 3

範囲内です

整数: 11

範囲外です。

終了します。
  [3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月21日
[5] その他の制限: なし
よろしくお願いします。

242 :デフォルトの名無しさん:2010/11/20(土) 21:43:31
>>241
http://codepad.org/DE6gfYRT

243 :デフォルトの名無しさん:2010/11/20(土) 21:45:35
>>223
http://hibari.2ch.net/test/read.cgi/tech/1289715349/80

244 :デフォルトの名無しさん:2010/11/20(土) 21:46:58
>>243
おいおい問題があるスレに誘導するなよ
今運営に報告してきた所だぞ

245 :デフォルトの名無しさん:2010/11/20(土) 21:55:53
>>244
報告先の URL を教えてください。
回答がありしだい、誘導を停止します。

246 :デフォルトの名無しさん:2010/11/20(土) 21:57:50
>>245
その前にどうして誘導するのかその理由を聞かせてくれないか?
ここが宿題スレだろうに
誘導するのなら確固とした理由が必要だろ

247 :デフォルトの名無しさん:2010/11/20(土) 22:03:49
◆QZaw55cn4c本人でしょ
いいかげん他スレにちょっかい出すのやめればいいのに
自分が立てたスレに責任が持てないなら削除依頼だしてこいよ

248 :デフォルトの名無しさん:2010/11/20(土) 22:05:32
と言う事で◆QZaw55cn4cは自分のスレに書き込まれた問題のみに解答しろ
このスレから誘導すんな
このスレの意味が無くなる

249 :226:2010/11/20(土) 22:19:01
あまり落とす人もいないでしょうが・・・
ちょっといじるとスタックオーバーフロー起こすので消しました。>>226
一応スタックオーバーフローの暫定対策版を↓に置いときます。
http://www1.axfc.net/uploader/Sc/so/175392.zip

250 :デフォルトの名無しさん:2010/11/20(土) 22:21:48
サーバ用途じゃないツールだったら、
思う存分落とせばいいじゃん。

251 :デフォルトの名無しさん:2010/11/20(土) 22:23:10
あ、サーバ用途ってのは、それ自身が動き続けることが使命になってるプログラムのことね。
ツールってのは、コマンドとして実行させて、終了とともに結果を得るもの、ってつもり。

252 :デフォルトの名無しさん:2010/11/21(日) 00:34:14
言わんとするところは伝わるような気がするが、
ツールだから落ちてもいいという根拠は何も出ていない。

253 :デフォルトの名無しさん:2010/11/21(日) 02:32:40
作った本人が私的に使うツールなら分かるが、
そうでなければ、あまりにも無責任

254 :デフォルトの名無しさん:2010/11/21(日) 03:09:35
ソースあるんだから文句があるなら自分で直せばいいだけなのに

255 :デフォルトの名無しさん:2010/11/21(日) 09:51:24
プログラミング演習の問題で
入力した名前(アルファベット)を昇順に並び変える
sort_by_nameという関数を作りたいです。
2文字目ぐらいまで判定できればいいです。
数字の昇順ならできるのでヒントだけでもください。
http://codepad.org/6vjN9ld1

256 :デフォルトの名無しさん:2010/11/21(日) 10:20:54
[1] 授業単元:情報処理概論T
[2] 問題文(含コード&リンク):
つると亀が合わせてn匹います。足の数は合わせてmです。
nとmを入力して、つると亀がそれぞれ何匹いるのか求めるプログラムを作りなさい。
もし解がない場合は、その旨を出力するようプログラムすること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限:if、while、for、配列、多重ループ、関数まで習いました。

よろしくお願いします。

257 :デフォルトの名無しさん:2010/11/21(日) 10:30:42
>>255
strncmp

258 :デフォルトの名無しさん:2010/11/21(日) 10:37:01
>>255
http://codepad.org/rvBnDcMH

259 :デフォルトの名無しさん:2010/11/21(日) 11:01:00
>>256
http://codepad.org/jxPppob9

260 :255:2010/11/21(日) 11:11:06
>>257>>258
ありがとうございました!
解決しました

261 :デフォルトの名無しさん:2010/11/21(日) 14:30:29
[1] 授業単元: プログラミング
[2] 問題文: 4つの整数s,m,l,xlを小さい順に並べ替えるプログラムを作成しなさい。
      ただし、並び替えをする部分はユーザ定義関数化し、
      並び替え後の結果をmain関数で出力するようにすること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:11月23日まで

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



262 :デフォルトの名無しさん:2010/11/21(日) 14:46:04
[1] 授業単元;プログラミング演習
[2] 問題文(含コード&リンク): ・ランダムな整数列を生成し,挿入ソート・シェルソートにより
並べ替えるプログラムを作れ
・実行時間を計測せよ

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C/C++/どちらでも可
[4] 期限:11月24日
[5] その他の制限: unixのrand()とtimeコマンドを使用すること
         mainの中もお願いします。

263 :デフォルトの名無しさん:2010/11/21(日) 14:46:17
>>261
#include <stdio.h>

void swap(int *a, int *b){int temp=*a; *a=*b; *b=temp;}

void sort(int *s, int *m, int *l, int *xl){
if(*s>*m) swap(s,m); if(*s>*l) swap(s,l); if(*s>*xl)swap(s,xl);
if(*m>*l) swap(m,l); if(*m>*xl)swap(m,xl);
if(*l>*xl)swap(l,xl);
}

int main(){
int s = 4, m = -33, l = 232, xl= 83;
sort(&s, &m, &l, &xl);

printf("s = %d, m = %d, l = %d, xl = %d",s, m, l, xl);
return 0;
}

264 :デフォルトの名無しさん:2010/11/21(日) 16:27:49
>>262
http://hibari.2ch.net/test/read.cgi/tech/1289715349/83

265 :デフォルトの名無しさん:2010/11/21(日) 16:29:54
[1] 授業単元: 情報工学
[2] 問題文: http://www.dotup.org/uploda/www.dotup.org1261761.txt.html
[3] 環境
 [3.1] OS: Cygwin on Windows
 [3.2] コンパイラ名とバージョン: gcc 4.3.4
 [3.3] 言語: C
[4] 期限:11月22日まで

どうか宜しくお願いします。


266 :デフォルトの名無しさん:2010/11/21(日) 16:35:16
>>264
◆QZaw55cn4cの出張ウザイです

267 :デフォルトの名無しさん:2010/11/21(日) 19:08:46
>>265
入力してテストってのは面倒だからやってない、入力するには5行目の #define TEST をコメントアウトしてくれ
コードの問題で化けると嫌なので出力は英語になってるので気に喰わなければ勝手に直してくれ

ttp://codepad.org/jfDB88t9

268 :デフォルトの名無しさん:2010/11/21(日) 19:15:22
>>222 >>227
どうもありがとうございます。
御二方のコードを参考に自分でもう一度作ってみようと思います。

269 :デフォルトの名無しさん:2010/11/21(日) 19:19:16
c言語の宿題の一部なのですが
コマンドプロンプトのmoreの役割をするプログラムを作るのはどうすればいいのでしょうか?
既に出来ているテキストファイルをコマンド上に表示するだけなのですが
出来ればソースをお願いします

270 :デフォルトの名無しさん:2010/11/21(日) 19:24:28
ncursesを使う

271 :デフォルトの名無しさん:2010/11/21(日) 19:38:42
解決しました
ありがとうございます

272 :デフォルトの名無しさん:2010/11/21(日) 19:48:22
>>267
助かりました。
これからがんばって読みます。
ありがとうございました。

273 :デフォルトの名無しさん:2010/11/21(日) 21:40:07
[1] 授業単元:プログラミング
[2] 問題文
問題1.文字列を入力し、入力された文字列について、次の1~6のすべてを表示するプログラムを作
成しなさい。
1 全文字の合計文字数
2 数字の文字数
3 英大文字の文字数
4 英小文字の文字数
5 空白の文字数
6 その他の文字の文字数
ただし、
・ 下記の実行結果のように、それらの数値を表示しなさい。
・ データの読み込みは getchar 関数を使うこと。

問題2.12 個の整数を入力し、それらの 3 倍の数値を表示するプログラムを作成しなさい。
ただし、
・入力した整数は、4 行 3 列の 2 次元配列に格納しなさい。
・配列の作成と表示にはループ制御を使用すること。
・下記の実行結果になるようにしなさい。
Column1 Column2 Column3
------------------------------------
Row1 : 3 6 9
Row2 : 300 600 900
Row3 : 3000 6000 9000
Row4 : 30000 60000 90000
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限:2010/11/20
[5] その他の制限: あまり難しくないようにお願いします。
繰り返しと条件判断と配列と簡単な関数までぐらいしか授業はやっていません。

274 :デフォルトの名無しさん:2010/11/21(日) 21:50:02
>>269
http://hibari.2ch.net/test/read.cgi/tech/1289715349/87

275 :デフォルトの名無しさん:2010/11/21(日) 21:55:21
うぜー

276 :デフォルトの名無しさん:2010/11/21(日) 23:10:03
>>259
ありがとうございました!とても助かりました!

277 :デフォルトの名無しさん:2010/11/22(月) 07:46:51
>>273
問題2だけ。
http://codepad.org/vx9De2AX

278 :デフォルトの名無しさん:2010/11/22(月) 08:32:07
>>273
問題1もやってみた。
C++でgetcharってこういうことかな?
http://codepad.org/7LG4EKWZ

279 :デフォルトの名無しさん:2010/11/22(月) 12:53:40
>>273ですが言語はCでした;

>>277
>>278
折角やっていただいたのにすみません!;
実行してみましたができませんでした。
普通にgetchar関数を使えと言われたんですが・・・。


280 :デフォルトの名無しさん:2010/11/22(月) 13:08:02
1] 授業単元: プログラミング
[2] 問題文
#include <stdio.h>
#include <string.h> /*strlenのため */

void
main( void )
{
char mojis[16]; /* 文字列を入れるための配列 */
int i;
int n; /* 'e'の数 */

printf("文字列:");
scanf("%15s", mojis );
mojis[15] = '\0';


for( i=0, n=0; mojis[i]; i++ ) /* ヌル字まで順に見ていく */
{
if( mojis[i] == 'e' ) /* 文字と文字定数との比較 */
{
n++;
}
}
printf( "文字数 %d のうち'e'は %d個", strlen(mojis ), n );
return; }
このプログラミングを改造
1.strlenを使わずに文字数をカウントする。
[3] 環境
 [3.1] OS:Windows、visual studio2005
 [3.3] 言語:C
[4] 期限:11月22日

281 :デフォルトの名無しさん:2010/11/22(月) 13:16:54
>>280
#include <stdio.h>

int main( void )
{
char mojis[16]; /* 文字列を入れるための配列 */
int i;
int n; /* 'e'の数 */
int len; /* 文字の数 */

printf("文字列:");
scanf("%15s", mojis );
mojis[15] = '\0';


for( i=0, n=0, len=0; mojis[i]; i++ ) /* ヌル字まで順に見ていく */
{
len++ ;
if( mojis[i] == 'e' ) /* 文字と文字定数との比較 */
{
n++;
}
}
printf( "文字数 %d のうち'e'は %d個", len, n );
return 0 ;
}

282 :デフォルトの名無しさん:2010/11/22(月) 13:34:32
iでいいだろうよw

283 :デフォルトの名無しさん:2010/11/22(月) 13:40:41
>>279
書いてくれてるプログラムはC++だけど
入出力以外はCと同じだから
#include <iostream>は#include <stdio.h>
std::getchar()はgetchar()
std::cout〜の行はprintf()
std::cin〜の行はscanf()に置き換えれば動くと思うよ

284 :mery:2010/11/22(月) 13:42:18
以前152で
1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):
無限ループを用い、1〜50までの数値を任意に10個入力し、その度数分布を求めよ。但し、度数分布は5等分(例;1〜10に4個, 11〜20に3個, 21〜30・・・41〜50に0個)して表示せよ。
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:11月21日
[5] その他の制限:1〜50以外の数字が入力されたときの処理は考えなくていいそうです
で書き込ませていただいた者なんですが、教えていただいた通り、打ち込んでみたのですが、実行結果がでませんでした。
なぜでしょうか?

285 :デフォルトの名無しさん:2010/11/22(月) 13:47:00
>>282
iだと1引かないといけないのがなんか気持ち悪い

286 :デフォルトの名無しさん:2010/11/22(月) 13:48:32
>>285
え?w

287 :デフォルトの名無しさん:2010/11/22(月) 14:06:22
>>284
>>164 でうまくいきますよ。「実行結果がでませんでした」というのは、どういう状態か、もう少し詳しく教えてください。

288 :デフォルトの名無しさん:2010/11/22(月) 14:09:00
一瞬で終了してるとかってオチか?

289 :デフォルトの名無しさん:2010/11/22(月) 14:11:48
>>288
入力はできてるところをみると可能性はありそう

290 :デフォルトの名無しさん:2010/11/22(月) 15:04:40
>>281
ありがとうございました。参考にします。

291 : ◆/91kCCQXBo :2010/11/22(月) 15:04:57
>>273
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/42-43

292 :デフォルトの名無しさん:2010/11/22(月) 15:58:58
>>283
わかりました。間違えてすみません;
ありがとうございます!

>>291
わざわざありがとうございます!


293 :ごばくすみません:2010/11/22(月) 16:00:49
>>284
>以前152
>で書き込ませていただいた者なんですが、教えていただいた通り、打ち込んでみたのですが、実行結果がでませんでした。
>なぜでしょうか?

7行目>>164
i=0; を
i=0; puts("数値を入力>"); に変えてみようか?

294 :デフォルトの名無しさん:2010/11/22(月) 16:47:17
[1] 授業単元: プログラミング
[2] 問題文:
変数iに100が入っています、

iとは別に、50,75,55,60というように、ランダムな数字の配列があり、
次にくる数字が前の数字(ここでは60)より、5%大きかったら、
iに1を加算するプログラムを作成。

-5%なら-1で、10%なら+2するといった感じです。5%未満なら加算しません。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:特に無し

よろしくお願いいたします。

295 :デフォルトの名無しさん:2010/11/22(月) 17:07:41
100%なら+20?

296 :デフォルトの名無しさん:2010/11/22(月) 17:11:47
>>294
ランダムな数字の配列に負数とかゼロが出現する可能性はあるのかな?

297 :デフォルトの名無しさん:2010/11/22(月) 17:12:03
>>295
そうです。私の頭じゃさっぱりで・・・if文の乱立しか思い浮かびません。

298 :デフォルトの名無しさん:2010/11/22(月) 17:13:35
>>296
負数やゼロはなしでお願いします。
問題にはありませんが、1〜100あたりの乱数が入ると思っていただければ。

299 :デフォルトの名無しさん:2010/11/22(月) 17:19:56
>>294
#include <stdio.h>

int main(void)
{
int i, j;
int data[]={50, 75, 55, 60, 0};

i=100;
for(j=1;data[j]>0;j++)
{
i+=(data[j]-data[j-1])*20/data[j-1];
}
printf("i=%d\n", i);

return 0;
}

300 :299:2010/11/22(月) 17:54:23
>>294
>>299 の修正
負数の割り算は気持ち悪いので
#include <stdio.h>

int main(void)
{
int i, j;
int data[]={50, 75, 55, 60, 0};

i=100;
for(j=1;data[j]>0;j++)
{
if(data[j]>data[j-1])
i+=(data[j]-data[j-1])*20/data[j-1];
else
i-=(data[j-1]-data[j])*20/data[j-1];
}
printf("i=%d\n", i);

return 0;
}

301 :デフォルトの名無しさん:2010/11/22(月) 18:42:03
>>300
ありがとうございます!
こういう式がさっと出てこないんですよね・・・頭悪いのが嫌になる・・・

302 :デフォルトの名無しさん:2010/11/23(火) 08:07:57
[1] 授業単元:プログラミングC言語
[2] 問題文:診断メーカー風のプログラムを作成しなさい。
      名前を入力し、その名前に基づき何かしらの情報を出力。
      .txtファイルを読み込み出力できるものにする事。
      (オプション)日替わりで表示結果を変更。複数の組み合わせなど。
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語:C++
[4] 期限:2010年11月23日12:00まで

自分の頭では何をどうしていいのかさっぱりわかりません。
ヒントだけでも良いので、どうかよろしくお願いします。

303 :デフォルトの名無しさん:2010/11/23(火) 08:24:05
>>302
テキストファイルの中に名前が書かれているの?

304 :デフォルトの名無しさん:2010/11/23(火) 09:19:39
>>302
http://codepad.org/wdclLmtI

305 :デフォルトの名無しさん:2010/11/23(火) 09:29:08
>>302
http://codepad.org/sgXIaOtZ

306 :デフォルトの名無しさん:2010/11/23(火) 09:31:48
>>302
脳内メーカーみたいな物を作れって事かな?
ならば、先ずは仕様を決めることが必要だ
例えば名前の文字列を1Byteづつ評価し、0〜15なら毒、16〜31なら薬、32〜47なら愛.....等々の評価を与える
最後に全文字が何の評価を与えたかを集計すれば、毒:M%、愛:M%、薬:O%みたいな出力を出せるだろ
txtファイルを読むというのは引数にテキストファイル名が指定された場合にはそのファイルに書かれている
名前を標準入力の変わりに使えと言う事だと思う

参考になれば幸いだ

307 :デフォルトの名無しさん:2010/11/23(火) 09:44:29
>>302
#include <iostream>
#include <string>
#include <cstdlib>
#include <fstream>
unsigned str2number(std::string str){
unsigned ret=7743; // 必要ならここに日付を数値化したものを足す time(NULL)/(60*60*24) みたいに
for(unsigned i=0;i<str.length();i++) ret=ret*37+str[i];
return ret;
}
int main(void){
std::string name, buf;
std::ifstream ifs("data.txt");

std::cout << "名前を入力してください : ";
getline(std::cin, name);
srand(str2number(name));
std::cout << name << " さんの" << std::endl;
while(getline(ifs, buf)){
if(buf[0]=='#'){
std::string theme, result;
theme=buf.substr(1);
for(int i=1;getline(ifs, buf);i++){
if(buf=="") break;
if(rand()%i==0) result=buf;
}
std::cout << theme << " は " << result << " です"<< std::endl;
}
}
return 0;
}

308 :307:2010/11/23(火) 09:45:47
>>307 で使用する data.txt の中身

#運勢
大吉



#ラッキーアイテム
トイレットペーパー
栓抜き
生卵
ブルーアイズホワイトドラゴン

#ラッキーカラー
透明
シルバー


309 :デフォルトの名無しさん:2010/11/23(火) 09:51:16
>>305
argcのチェックを入れるべき。

310 :デフォルトの名無しさん:2010/11/23(火) 14:27:43
[1]プログラミング演習
[2] 問題文:http://codepad.org/Duo48tj4
[3] 環境
 [3.1] windows
 [3.2] visual studio2010
 [3.3] C言語
[4] 2010/11/26まで
[5]配列、関数、文字列、関数形式マクロ、再帰は習っています。
構造体、ポインタ等は習っていません。
問題文が長く改行が多すぎて書き込めなかったのでcodepaに問題文も書きましたが
問題があったら言ってください。
お願いいたします。

311 :デフォルトの名無しさん:2010/11/23(火) 14:45:14
コードパッドに本文を入れるとは斬新w

312 :デフォルトの名無しさん:2010/11/23(火) 15:44:22
>>310
http://codepad.org/XoOdAJHA

313 :デフォルトの名無しさん:2010/11/23(火) 15:59:54
>>310です。
>>312
御回答ありがとうございます。
無事できました。有難うございます。
>>311
あ…やっぱり文章を入れる物ではなかったですか…。


314 :デフォルトの名無しさん:2010/11/23(火) 17:34:14
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
2分法により2の平方根を計算して表示するプログラムを作れ。
解の存在範囲|xb-xa|が矛め決めた値より小さくなったら計算を停止(収束判定)するようにせよ。
*注意
(1)f(xa)とf(xb)の符号が反対であるか否かの判定法を考えよ。
(2)f(xa)とf(xb)が共に同符号になるようなxa,xbが入力された場合に対処すること。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月24日
[5] その他の制限: なし
よろしくお願いします。

315 :デフォルトの名無しさん:2010/11/23(火) 20:04:09
>>314
http://hibari.2ch.net/test/read.cgi/tech/1289715349/118

316 :デフォルトの名無しさん:2010/11/23(火) 20:40:27
>>314
http://codepad.org/OKPlr6yi

317 :デフォルトの名無しさん:2010/11/23(火) 21:13:54
配列とファイルの読み込みです。

たとえば、100個の数字が用意されたファイルを用意します。
そのファイルを使って平均値を求めるプログラムを作りたいのですが教えてください。
ファイル名は適当で良いです。

平均値を求める計算は関数部分でお願いします。

318 :デフォルトの名無しさん:2010/11/23(火) 21:20:32
>>317
をPerlでお願いします。

319 :デフォルトの名無しさん:2010/11/23(火) 21:42:51
int main(void) {
system("cat temp.txt | perl -e \"while(<>){$i+=$_} print $i/100\"");
return 0;
}


320 :デフォルトの名無しさん:2010/11/24(水) 00:37:03
[1] 授業単元: プログラミング基礎
[2] 問題文: n 個の整数型データ配列a[i]を、一つの関数に渡して、
      その一つの関数内で平均値と分散値を求め、main関数内で
      平均値と分散値を参照できるプログラムを作成せよ。
      ただし、配列の受渡し、結果の受け渡しにはポインタを利用すること。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:11月25日まで
[5] その他の制限:なし
宜しくお願いします。

321 :デフォルトの名無しさん:2010/11/24(水) 00:57:35
>>320
#include <stdio.h>
void func( int n, int* arr, double* heikin, double* bunsan ) {
int i, sum = 0, sum2 = 0;
for( i = 0;i < n; i++ ) {
sum += arr[i];
sum2 += ( arr[i] * arr[i] );
}
*heikin = (double)sum / (double)n;
*bunsan = (double)sum2 / (double)n - *heikin;
}
int main( void ) {
int arr[] = {1,2,3,4,5};
double h, b;
func( 5, arr, &h, &b );
printf( "heikin = %lf, bunsan = %lf\n", h, b );
return 0;
}


322 :デフォルトの名無しさん:2010/11/24(水) 01:03:21
>>321
*bunsanの式の右辺第二項は*heikinの二乗

323 :デフォルトの名無しさん:2010/11/24(水) 01:07:57
[1] 授業単元: 数学
[2] 問題文: リーマン予想の解をアルゴリズム化して10^100桁の素数を決定的に因数分解する
   プログラムを作成せよ     
[3] 環境
 [3.1] OS:Windows、Mac
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:1月25日まで
[5] その他の制限:しらみつぶしに因数分解するプログラムは不可
宜しくお願いします。

324 :デフォルトの名無しさん:2010/11/24(水) 01:08:52
>>322
そうだった
*bunsan = (double)sum2 / (double)n - *heikin * *heikin;
に修正、*が並ぶと気持ち悪いな

325 :デフォルトの名無しさん:2010/11/24(水) 01:08:59
>>323
おいww

326 :デフォルトの名無しさん:2010/11/24(水) 01:12:23
>>323
素数を決定的に因数分解するって?

327 :デフォルトの名無しさん:2010/11/24(水) 01:13:36
>>326
俺もそれ気になってた
素因数分解って言ってないから実数でもいいのか?だとしたら無数に存在するけど


328 :320:2010/11/24(水) 01:16:09
>>321>>322>>324
ありがとうございます!

329 :デフォルトの名無しさん:2010/11/24(水) 01:29:50
そもそも10^100桁の数値なんてどうやって扱えばいいのか分からない
情報量として (10^100)/2.41 byte分なんてしらみつぶししようとも思わないw

330 :デフォルトの名無しさん:2010/11/24(水) 01:36:40
始めたばかりで何が何だかわかりません…

[1] 授業単元:メディア基礎
[2] 問題文(含コード&リンク):数式X=[{16/(k*π)^2}^2]がある。
kが整数1〜30の時のXの値をそれぞれ出力するプログラムをCで書きなさい。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日午前十時まで
[5] その他の制限: 特に無いと思います。

よろしくお願いしますorz

331 :デフォルトの名無しさん:2010/11/24(水) 01:39:43
素因数分解って素数に対してはそれ自身が素因数分解された結果だよな
だとしたら与えられた素数をそのまま出力するだけで終了じゃね?

332 :デフォルトの名無しさん:2010/11/24(水) 01:47:23
[1] 授業単元: 数学
[2] 問題文: リーマン予想の解をアルゴリズム化して10^100桁の合成数を決定的に因数分解する
   プログラムを作成せよ     
[3] 環境
 [3.1] OS:Windows、Mac
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:1月25日まで
[5] その他の制限:しらみつぶしに因数分解するプログラムは不可
宜しくお願いします。

333 :デフォルトの名無しさん:2010/11/24(水) 01:56:14
サラリーマンの人、やってみようか?

334 :デフォルトの名無しさん:2010/11/24(水) 01:59:44
>>330

#include <stdio.h>

int main(void)
{
int i, k;
double PI = 3.14159265358979323846;

for(k = 1; k <= 30; k++) {
double t = 4 / (PI * k);
for(i = 0; i < 2; i++) t *= t;
printf("k = %d X = %f\n", k, t);
}

return 0;
}

335 :デフォルトの名無しさん:2010/11/24(水) 02:01:19
>>330
http://codepad.org/9BCsk9I2

336 :デフォルトの名無しさん:2010/11/24(水) 02:05:09
>>332
http://codepad.org/Lg7TVQgT

337 :デフォルトの名無しさん:2010/11/24(水) 02:06:41
リーマン予想なんて解明されていないのに、もう解いたのか。
ノーベル科学賞でも受賞できんじゃね?w

338 :デフォルトの名無しさん:2010/11/24(水) 02:10:26
アンカー見て、誰も返信なかったから貼ったけど。
俺がアンカーミスってたとは・・・

339 :デフォルトの名無しさん:2010/11/24(水) 02:12:22
>>337
数学にノーベル賞は無い

340 :デフォルトの名無しさん:2010/11/24(水) 02:13:26
2^100ならいいけど10^100はちょっとやる気しないなぁ

341 :デフォルトの名無しさん:2010/11/24(水) 02:21:44
>>334
ありがとうございます!
ほんとうに助かりました!

342 :デフォルトの名無しさん:2010/11/24(水) 02:27:07
>>339
数学が無いことくらい知っているから敢えて 科学 の面で言ってみたんだが・・・

343 :デフォルトの名無しさん:2010/11/24(水) 02:29:04
科学も 化学 を文字ってネタで言ったまでw

344 :デフォルトの名無しさん:2010/11/24(水) 02:30:42
>>335
ありがとうございます!
あわせて参考にさせていただきます!

345 :デフォルトの名無しさん:2010/11/24(水) 02:33:21
数学にノーベル賞は無いっておかしくね?

346 :デフォルトの名無しさん:2010/11/24(水) 02:51:54
>>345
ノーベルが数学が苦手だったからだと
代わりにフィールズ賞がある

347 :デフォルトの名無しさん:2010/11/24(水) 04:03:19
リーマン予想には賞金もかかってるよ

348 :デフォルトの名無しさん:2010/11/24(水) 18:55:55
[1] 授業単元: プログラミング
[2] 問題文:たとえば、100個の数字が用意されたファイルを用意します。
そのファイルを使って平均値を求めるプログラムを作りたいのですが教えてください。
ファイル名は適当で良いです。

平均値を求める計算は関数部分でお願いします。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:11月27日まで
[5] その他の制限:なし
お願いします。


349 :デフォルトの名無しさん:2010/11/24(水) 19:13:55
>>348
http://hibari.2ch.net/test/read.cgi/tech/1289715349/120

350 :デフォルトの名無しさん:2010/11/24(水) 19:21:06
簡単な問題に必死だな
巣にこもってろ出てくるなよ、ゴミが

351 :デフォルトの名無しさん:2010/11/24(水) 19:33:53
>>349
◆QZaw55cn4c
>たとえば、100個の数字が用意された
たとえば付くから、これは例を言っている(可能性ある)から数字の個数の100個は変化する可能性ある
と読み取れない?

352 :デフォルトの名無しさん:2010/11/24(水) 20:06:55
>>351
1) #define N 100 と#define で記述して、コンパイル時に簡単に変えることができるようにしています。
2) 個数が仮に N より少ないデータだったとしても、正常に動くようにしています。
すなわち #define N 100 とした場合に対して、実際にはデータの個数が 5 であってもOKです。

100 を無視することも可能ではありましたが、平均を求める関数を準備する、という点を優先し、
一次近似として「データ数が100」を尊重いたしました。

>>348
問題があればコメントを下さい。随時変更いたします。

353 :デフォルトの名無しさん:2010/11/24(水) 20:08:27
いいから出てくるなって

354 :デフォルトの名無しさん:2010/11/24(水) 20:17:34
こんな入門レベルのものはやりたくないみたいなこと言ってたのになw

355 :デフォルトの名無しさん:2010/11/24(水) 20:21:13
>>352 ◆QZaw55cn4c
いや、ここのスレでやり取りするなよ、自分のスレでやれ
スレチガイならともかく他所のスレのを無理やり横取りするなよ
お前、道徳的に最低ことしていると認識ないだろ



356 :デフォルトの名無しさん:2010/11/24(水) 20:32:06
>>355
にちゃんねるで「道徳的」といわれても。

357 : ◆EkRIf9bJPo :2010/11/24(水) 20:32:07

[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月25日9:00
[5] その他の制限: なし
よろしくお願いします。



358 :デフォルトの名無しさん:2010/11/24(水) 20:37:13
◆QZaw55cn4c
当然、>>357も横取りするんだろ

359 :デフォルトの名無しさん:2010/11/24(水) 20:42:46
>>358
お客様としてお待ちしようかと。
でも期限が厳しいですね。

360 :デフォルトの名無しさん:2010/11/24(水) 21:11:48
>>357
ディレクトリ指定も可能って事はサブディレクトリも再帰的に捜査するんだよね
まぁ500円くらいなら払う価値は有る問題だと思うよ

総ステップは行数だと思うけど実ステップってのは?
if( x ) {
  i = a + b
    + c + d;
}
これは何ステップ?
コメント率は ( "/*", "*/",  "//" を含むコメント文字数 ) / (総文字数) の事?
その場合は改行コードは計算に入れるの?
この辺は詰める必要があるね

361 :デフォルトの名無しさん:2010/11/24(水) 21:21:56
>>357
カンマ演算子の扱いとか、do while とかどうする?

362 :デフォルトの名無しさん:2010/11/24(水) 21:28:43
>>357
実ステップは4行になりそうだけど。

363 : ◆EkRIf9bJPo :2010/11/24(水) 21:40:11
>>360

そうです。サブディレクトリを読み込みます。
実ステップは、コメントのみの行、行区切りだけの行をはずした行数です。
なので、例に出されたソースの実ステップは、3ステップになります。

コメント率に関しては、特に条件が記載されてないです…
コメントが記載されている行/全行のことだと解釈しています。
改行コードについても記載がないので、計算には入れることは、考えてないです。

364 : ◆EkRIf9bJPo :2010/11/24(水) 21:48:48
>>361

すみません。どうするってどういう意味ですか?

>>362

問題文がそうだったので…

365 :デフォルトの名無しさん:2010/11/24(水) 22:57:27
>>356
2chを楯に自分の糞さから逃げてないか?

366 :デフォルトの名無しさん:2010/11/24(水) 23:06:24
>>363
判定条件はこうかな
コメント外部にアルファベット、数字、記号({}を除く)が出現したら実ステップ行(*1)
コメントが入っている業はコメント行(*2)
当然、*1 でかつ *2 の行も存在する

例えば#if 0 〜 #endif の間は無効な行だけどこれも実ステップ行扱いで良いんだろうな、さもないと判定が難しすぎる

367 :デフォルトの名無しさん:2010/11/24(水) 23:07:06
反論してる人もこっちでやってくれんかな。
http://hibari.2ch.net/test/read.cgi/tech/1289715349/
◆QZaw55cn4cもこのスレでそういう論議しなければ俺はかまわん。
このスレのそういうレスは双方無視の方向で。

368 :デフォルトの名無しさん:2010/11/24(水) 23:18:41
>>364
たとえば
a++,b++;
は1ステップか、それとも2ステップか
式は一つだから1ステップでいいとはおもうけど

do{
func();
}while();
は2ステップなのか3ステップなのか
doがなんかするわけじゃないから2ステップでいいのか?

あと、;だけの行はステップとして数えるのか?

369 : ◆QZaw55cn4c :2010/11/24(水) 23:31:10
>>357
>>363
途中ですが、コードを示します。使い方は、
./a.out Cプログラムファイル
です。

>>357 に例示されたコード例が指定どおりの数字を出す、という点だけで仕様を勝手にきめました。
大方は、>>366 にしたがっています。
これにいろいろ食わせてみて問題があるようであれば指摘ください。
途中ゆえデバッグコードを多数含みますことご容赦を。
http://codepad.org/ah8s28nT

xmalloc() -> malloc()
xfree() -> free()
xrealloc() -> realloc()
に読み替えてください。

370 : ◆1reJfOTbE. :2010/11/24(水) 23:35:18
http://www.icsd3.tj.chiba-u.jp/~yasukuni/10jikken/
[1] 授業単元:プログラミング実験
[2] ttp://www.icsd3.tj.chiba-u.jp/~yasukuni/10jikken/
  ここの第2回の課題です。
[3] 環境
 [3.1] OS:WindowsXPでコマンドプロンプトやMeadowなどを使っています。
 [3.2] gcc
 [3.3] C
[4] 期限:11/26の18:00
[5] その他の制限:特にないと思います。
第1回に比べて急に難しくなったように思え、困っています。
とりあえず課題が何をどうすればよいかわかりません。
手順を教えていただきたいです。よろしくお願いします。

371 : ◆EkRIf9bJPo :2010/11/24(水) 23:36:00
>>363

その判定条件で大丈夫です。
#if0〜#endifも実ステップ行扱いで良いと思います。

>>368

特にカンマ演算子と、do whileについて何も条件が出されてないので、>>663さんが提示した判断条件でお願いします。


372 :デフォルトの名無しさん:2010/11/24(水) 23:40:32
>>369
printf("xxx/*nocomment*/xxx");

373 :デフォルトの名無しさん:2010/11/24(水) 23:54:48
>>357
>>372
http://codepad.org/UuSFtHdy
これ以上複雑になれば、今のコードは捨てて状態遷移(オートマトン)で書き直すことを検討します。限界です。

374 :デフォルトの名無しさん:2010/11/24(水) 23:58:24
>>373
問題が結構いい加減だから、都合のいいように解釈すればよいと思う。

375 : ◆EkRIf9bJPo :2010/11/24(水) 23:58:29
>>369

ありがとうございます!
早速、デバッグを行なったところ、以下のエラーが表示されました。

1.c:8: error: conflicting types for ‘getline’
/usr/include/sys/stdio.h:37: error: previous declaration of ‘getline’ was here
よろしくお願いします。

376 :デフォルトの名無しさん:2010/11/25(木) 00:00:43
getlineって◆QZaw55cn4cじゃないかw

377 :デフォルトの名無しさん:2010/11/25(木) 00:08:00
>>373
/* "A" */

今のロジックだと /* と " のどちらかを優先しなければならないから限界みたいだね

378 : ◆QZaw55cn4c :2010/11/25(木) 00:08:29
>>357
>>375
http://codepad.org/fGj6gfV5

>>376
じゃあトリップつけときますか。

379 :デフォルトの名無しさん:2010/11/25(木) 00:09:38
つけなくていいよ

380 :デフォルトの名無しさん:2010/11/25(木) 00:14:07
>>377
そのようですね。
このコード>>378 は捨てましょう。

>>375
このロジックでよければ、ディレクトリを掘るコードをつけます、といっても明日があるので今日はおしまい。
期限を見直してください。あと >>2 をよろしく。

381 :377:2010/11/25(木) 00:15:40
>>373
間違えた、駄目なのはこんなケース

printf( "/* a */" );
/* "a */
printf( "/* a */" );

改行で終わらない行は無視してるみたいだけどそんな必要有るのかな

382 :デフォルトの名無しさん:2010/11/25(木) 00:24:35
ありゃ、テレビ見てたら盛り上がってるな。
乗り遅れたし、明日早いし。寝るくぁ。

383 :デフォルトの名無しさん:2010/11/25(木) 01:07:35
>>370
非常に丁寧な教材ですね。
難しいところを素直に先生に聞いてみるのはいかが?

このスレは回答を提示することで若い芽を摘み取る非情な場所であることをお忘れなく。

384 :デフォルトの名無しさん:2010/11/25(木) 01:12:23
>>383
ワロスw
確かにその通りかもw

385 :デフォルトの名無しさん:2010/11/25(木) 01:48:20
>>370
dequeだけ作っといた
フィルタは気が向いたらやるかも
http://codepad.org/o9fmgNBz

386 :デフォルトの名無しさん:2010/11/25(木) 01:52:12
>>370の講義資料より引用
『インターネット上に匿名で書かれた情報は信じるな!!』

387 :デフォルトの名無しさん:2010/11/25(木) 01:56:29
信じるな!とは言い過ぎだが利用は自己責任で、って位が落としどころかな

388 :デフォルトの名無しさん:2010/11/25(木) 02:21:45
>>370
多分デジタルディレイの実装ではないかと思われる
queue.c はFifoリングバッファだろう
Fir_p.c のメインループ内では以下を行うんだろうな

for( ディレイ時間分ループ )
 enqueue( 0 );

while(入力ファイルから short 一つを x に読み込む) {
  enqueue( x );
 y = dequeue()
 x に y を重み付き加算
 出力ファイルに x を書き込む
}

これでシングルディレイが付加された音声データ(wavファイル)が作成できるだろう
Fifo リングバッファをマルチインスタンスに修正し複数のリングバッファを使用すれば多段ディレイも作成できる
また enqueue( x ); の位置を加算後に持っていけば減衰率によっては自然な残響を得られるかも知れない


389 :デフォルトの名無しさん:2010/11/25(木) 03:32:08
>>385
修正
http://codepad.org/uKnnFD1v


390 :デフォルトの名無しさん:2010/11/25(木) 05:03:09
話が繋がっていかない課題やレポートはつまらないけど
各論へのイントロになってる課題は面白いと思う

391 :デフォルトの名無しさん:2010/11/25(木) 11:59:14
[1] 授業単元:プログラミング実験
[2]1~30の整数の範囲で、3辺a, b, c(cを斜辺)の三角形のうち、直角三角形が成立する場合のa,b,c辺をすべて見つけて配列
に入れる。その後、配列をもとにプログラムを作成しなさい。
ただし、a, b, c辺を見つけて配列に入れる機能は関数にすること。
[3] 環境
 [3.1] OS:linux
 [3.2] gcc
 [3.3] C
[4] 期限:11/25
[5] その他の制限:
よろしくお願いします。

392 :デフォルトの名無しさん:2010/11/25(木) 12:01:44
>>391ですが、このプログラムをもとにして作っていただけますか

#include<stdio.h>
#define N 30
int main(void)
{
int a,b,c;
int p[N][3];
int n;
n = 0;
for(a=1;a<=N;a++){
for(b=a;b<=N;b++){
for(c=b;c<=N;c++){
if(a*a + b*b == c*c){
p[n][0] = a;
p[n][1] = b;
p[n][2] = c;
n = n + 1;
}
}
}


393 :デフォルトの名無しさん:2010/11/25(木) 12:33:21
>>391
問題読むと直角三角形が成立する辺を配列に入れた後何かするようだけど
配列に入れて表示するプログラム?

394 :デフォルトの名無しさん:2010/11/25(木) 13:13:35
>>393
多分そうだと思います

395 :デフォルトの名無しさん:2010/11/25(木) 13:18:29
すみません>>391の問題文に追加です;

a <= b <= cを仮定してください。

396 :デフォルトの名無しさん:2010/11/25(木) 13:26:39
for(a=1;a<=N;a++){
for(b=a;b<=N;b++){
for(c=b;c<=N;c++){
の時点でa <= b <= cを満たしてるはずなのに更に仮定するの?

397 :デフォルトの名無しさん:2010/11/25(木) 13:31:59
>>396
その部分をいじるなってことだろ

398 :デフォルトの名無しさん:2010/11/25(木) 13:36:13
>>391
#include <stdio.h>

#define N 30

int f(int p[][3], int size) {

int a, b, c, n = 0;

for(a = 1; a <= size; a++) {
for(b = a; b <= size; b++) {
for(c = b; c <= size; c++) {
if(a * a + b * b == c * c) {
p[n][0] = a;
p[n][1] = b;
p[n][2] = c;
n = n + 1;
}}}}
return n;
}

int main(void)
{
int p[N][3], i, n;

n = f(p, N);

for(i = 0; i < n; i++) printf("%d %d %d\n", p[i][0], p[i][1], p[i][2]);

return 0;
}

399 :デフォルトの名無しさん:2010/11/25(木) 13:36:48
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):整数型1次元配列に対して平均値を計算する関数を書き、
{1, 4, 2, 8, 1, 5} の平均値 3.5 を求めよ。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語: C++
[4] 期限:2010 11/27
[5] その他の制限:int型からdouble型に書き換えるとのこと、すいません。ここからしてあまり理解できていません。

400 :デフォルトの名無しさん:2010/11/25(木) 13:45:06
>>399
http://codepad.org/58K6ytHA

401 :デフォルトの名無しさん:2010/11/25(木) 14:06:24
>>399
こんなんしたらさすがに怒られるかな?

#include <iostream>
#include <numeric>

int main()
{
int a[] = {1, 4, 2, 8, 1, 5};
size_t SIZE = sizeof(a) / sizeof(a[0]);

double ave = std::accumulate(a, a + SIZE, 0.0) / SIZE;

std::cout << ave << std::endl;
}

402 :370 ◆1reJfOTbE. :2010/11/25(木) 16:05:56
>>385-389
課題3−1ですが、作っていただいたコードで、コマンドプロンプトで
gcc -Wall -c queue.c
とやって、queue.oが作られました。
この課題は後、
gcc -Wall -o FIR_P FIR_P.c queue.o
とやれば完了でよいのでしょうか?

そして>>388の中身がわかる方いませんか?

分割コンパイルというものは理解できたと思うのですが、
最初の式の説明のところからやっていることがまだ理解できていなく、
どうすればいいかわかりません。

それと関連プログラム4種類をダウンロードと書いてありますが、
Makefileに関しては講義資料22ページの説明が出てきますが、
ダウンロードができません。コピーしてテキストファイルとして
保存ということでしょうか?

403 :デフォルトの名無しさん:2010/11/25(木) 16:30:35
Makefileは拡張子の部分消して
関連ファイルと同じところに保存して
% makeかな?でまとめてコンパイルしてくれる
追加したファイルもMakefileに追加すればそれもコンパイルできる

404 :デフォルトの名無しさん:2010/11/25(木) 16:43:08
>>402 が解らないのは
C言語
実験のデジタルフィルタ
の両方なの? 
デジタルフィルタは理解できるがC言語は駄目とか?

405 : ◆L.eSCJEwZk :2010/11/25(木) 16:48:34
>>404
デジタルフィルタは、講義資料を見ていますがまだ理解できていません。
C言語はできるつもりでしたが、>>388の日本語で書いた部分をやろうと
思ったのですがどうすればよいかわかりませんでした。
基礎はできると思うのですが、ファイルのオープンなどでてくると
危ないです。

406 : ◆1reJfOTbE. :2010/11/25(木) 16:49:17
↑トリップ間違いました、自分で間違いないです。

407 :デフォルトの名無しさん:2010/11/25(木) 17:28:53
1回目の課題もファイル操作でてるけど
そっちがわかったならこっちもたぶんコードわかると思うんだけど
>>388の日本語で書いてある部分のどこがわからないのかな?

408 :388: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 :デフォルトの名無しさん: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]現在再起を習ったばかりで複雑なものは習っていません。

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


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

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


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

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

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

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

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

http://codepad.org/JhtCuYqO


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

425 :デフォルトの名無しさん: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  http://codepad.org/GafORTG4
STACK1.c http://codepad.org/9JwtZ1J7
STACK2.c http://codepad.org/jwPHSuzG
Item1.h http://codepad.org/32bgVncE
Item2.h http://codepad.org/rk12GKcF
STACK1.h http://codepad.org/CI43AnzH
STACK2.h http://codepad.org/XJ1fy5MY   
上三つをコンパイルして実行します。
コンパイルは通りますが、実行でsegmentation fault がでてしまいます。
main.cの最後のwhile文のところを修正していただけないでしょうか。
お願いします。
[3] 環境
 [3.1] OS: macosX
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 明日の午後一時まで。
[5] その他の制限:とくになし。

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

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

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

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



431 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/11/26(金) 00:07:30
>>432
さいころは6面でいい?
負数の扱いは?

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

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


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


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

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

439 :デフォルトの名無しさん:2010/11/26(金) 03:16:10
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
次のCプログラムとアセンブラコードを作成しなさい。
問題1「Hello World!」を作成するCプログラム
問題2九九の計算結果を一の段から九の段まで表示するプログラム
 例  123456789
2 4 6 8 10 12 14 16 18 
  [3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月27日
[5] その他の制限: なし
よろしくお願いします。

440 :デフォルトの名無しさん:2010/11/26(金) 04:13:46
>>439
hello world を回答する奴はさすがに居ないと思うし、九九の回答はこのスレか前スレに出てたよ

アセンブラコードの出力なら gcc -S hoge.c で hoge.s が出力されるはず
man gcc でコンパイルオプションを調べてみよう

441 :デフォルトの名無しさん:2010/11/26(金) 04:33:26
>>439
#include <stdio.h>

int main(void)
{
int r,c;

printf("Hello m9(^д^ )プギャー!\n");

printf("%3c",0x20);
for(c=1; c<=9; c++) printf("%3d",c);
putchar('\n');
for(r=1; r<=9; r++) {
printf("%3d",r);
for(c=1; c<=9; c++) printf("%3d",r*c);
putchar('\n');
}
return 0;
}

442 :デフォルトの名無しさん:2010/11/26(金) 09:12:16
>>439
#include <stdio.h>
int main(void) {
int a[]={72,101,108,108,111,32,87,111,114,108,100,33},i;
for(i=0; i<sizeof(a)/sizeof(a[0]); i++) printf("%c",a[i]);
return 0;
}

443 : ◆EkRIf9bJPo :2010/11/26(金) 12:47:56
>>430

そうですか…わかりました。
すみませんが、理解はしたいので>>429にコメント入れて貰ってもいいですか?

444 :デフォルトの名無しさん:2010/11/26(金) 16:13:45
宿題てつだってもらえますか。


445 :デフォルトの名無しさん:2010/11/26(金) 16:17:16
以下は、int 型変数n(≠0 とする)の逆数を、小数第3 位を四捨五入してn=-0.??(n が正なら'-'
が半角スペース、改行なし)のように画面出力する文である。@、Aには何が入るか?
printf("@",A);


446 :デフォルトの名無しさん:2010/11/26(金) 16:25:18
>>445
printf ( "%5.2f", 1.0/n ) ;

447 :デフォルトの名無しさん:2010/11/26(金) 16:54:26
ありがとうございます。。


int i; で宣言されているとして、左の3 行を右のように書き換えた。@〜Gには何が入る
か?ただし、不要な行(削除すべき行)が3 行ある。そこには「-」(半角)を記入せよ。

for(i=0;i<5;i++){
printf("%d\n",i);
}





@;
while(1) {x>=1){
A;
B;
if(C) {
D;
}
E;
F;
}
G;



448 :デフォルトの名無しさん:2010/11/26(金) 17:00:55
>>447
>>1

449 :デフォルトの名無しさん:2010/11/26(金) 17:13:51
>>447
@i=0;/*
A*/while(1){
Bprintf("%d\n",i++)
C5<=i
Dbreak
E-
F-
G-
試してないから間違えてるかも

450 :デフォルトの名無しさん:2010/11/26(金) 17:30:17
無礼失礼しました。
ほんとうにありがとうございます。


451 :デフォルトの名無しさん:2010/11/26(金) 17:59:42
>>443
http://hibari.2ch.net/test/read.cgi/tech/1289715349/138

452 :デフォルトの名無しさん:2010/11/26(金) 19:59:22
>>447
問題文が間違ってると思う、要確認

453 :デフォルトの名無しさん:2010/11/26(金) 20:36:38
この前頼んだ者です。その節はお世話になりました。

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

double Rand(void)
{
return (double)rand() / (RAND_MAX + 1);
}

double Random(double mu, double siguma)
{
double r=0;
r = Rand() + Rand() + Rand() + Rand() + Rand() + Rand() + Rand() + Rand() + Rand() + Rand() + Rand() + Rand();
r-=6.0;
return siguma*r+mu;
}


454 :デフォルトの名無しさん:2010/11/26(金) 20:38:52
int main(void)
{
int i, n;
unsigned seed;
double mu, siguma, *array;
printf("乱数系列(x): ");
scanf("%u", &seed);
printf("個数: ");
scanf("%d", &n);
printf("平均(μ): ");
scanf("%lf", &mu);
printf("分散(σ): ");
scanf("%lf", &siguma);
srand(seed);
if ((array = (double *)malloc(sizeof(double) * n)) == NULL){
exit(1);
}
printf("\n乱数表\n\n");
for (i = 0; i < n; i++) {
array[i] = Random(mu, siguma);
printf("%d %10.5f\n", i+1, array[i]);
}
return 0;
}
このプログラムで出した出力をヒストグラムとして出したいです。
おねがいします!

455 :デフォルトの名無しさん:2010/11/26(金) 21:00:39
>>454
gnuplot使えば?

456 :デフォルトの名無しさん:2010/11/26(金) 22:00:07
>>455
1つのプログラムでということなので
http://www.geocities.jp/cgengor/arg04.htmlのサイトのように出力したいです。

457 :デフォルトの名無しさん:2010/11/26(金) 22:36:26
>>454
ttp://codepad.org/0DCCjOkG

書いてみた、//ZZZ の行は入力の手間を省くために追加した行だから削除してくれ
codepad ではとんでもない結果が出力されているけど bcc ではもっともらしい結果が出てた
ヒストグラムを分割するためのパラメータが明記されていないので以下のルールで処理した
・分割数は HIST_NUM で定義する、これは偶数でなければならない
・分割中央 mu とし、範囲は mu +- sigma まで、但し両端にはそれ以下、それ以上も含む

最後に Random() で得た結果を元に平均と分散を計算しているが、平均はまぁまぁだけど分散が酷い
ヒストグラムを見ると最も小さい値域に集中しているのが判る
Random() ロジックには再検討が必要だと思うよ

458 :デフォルトの名無しさん:2010/11/26(金) 22:43:21
>>457
そのソースを書いたのは俺だけど、元々ポックス・ミュラー法を使っていたんだ
しかし>>231のように#include <math.h>を使わずに使ってくれと頼まれたので
仕方なくその疑似的Random()を使わざるを得なくなった

ボックス・ミュラー法を使ったソースは>>229に上げてある
これなら分散もちゃんとした値が出るよ

459 :デフォルトの名無しさん:2010/11/26(金) 23:02:57
>>457
あとn=1000位まで上げてみて欲しい
分散が揃って来ると思います

460 :デフォルトの名無しさん:2010/11/26(金) 23:41:54
>>454 >>498
ごめん、siguma = sqrt( 分散 ) だね、まぁまぁの結果が出てるわ
ヒストグラムの作成領域も mu +- sig だと綺麗に出ないから mu +- sig * 2 くらいにするべきだな
あと、n が大きくなると表示できなくなるから少し修正したら再アップするわ

461 :デフォルトの名無しさん:2010/11/26(金) 23:46:00
>>460
お願いします
それとn=1000とか10000になると生成した乱数の表示はしなくてもいいと思いますよ
画面がすごい事になりますから

462 :デフォルトの名無しさん:2010/11/27(土) 00:08:51
>>461
ttp://codepad.org/QG5N0wqi

最後に sigma の再計算をするため sqrt() を使ったので <math.h> を使用しているから気に食わなければ消してくれ

line60
while( max / cut > 50 )
は一行に表示可能な * を50に規定している、一行の表示文字数が130くらいの環境なら 100 に直してくれ

line106
dispHist( mu, siguma * 2.0, n, array );
は適当にヒストグラム範囲を与えてるだけだから * 1.5 でも * 3.0 でも好きに直してくれ


463 :デフォルトの名無しさん:2010/11/27(土) 00:15:42
>>462
いい感じですね、どうもありがとうございます

464 :デフォルトの名無しさん:2010/11/27(土) 00:22:32
>>462

乱数系列(x): 10
個数: 100
平均(μ): 50
分散(σ): 67

で計算したのですが、ヒストグラムは表示されます。
ですが、Real mu, Real sigma が表示されずにデバックエラーが表示されました。
無視すると最後まで表示されます。


465 :デフォルトの名無しさん:2010/11/27(土) 00:24:28
何度もすいません。
Real mu, Real sigma の部分を削ってもエラーが出ます。

466 :デフォルトの名無しさん:2010/11/27(土) 00:29:39
>>464
困ったな bcc では出ないぞ

467 :デフォルトの名無しさん:2010/11/27(土) 00:41:24
>>464
入力が可能ということは //ZZZ の行を消したと思われるな、変な行を消してないか?
とりあえず以下を試してくれ

1) >>462 をもう一度コピペしてファイルを作る
2) 85行目の #if 0 を #if 1 に直す
3) コンパイルして実行

これでも出るなら環境差の問題なので、ちょっと対応が難しいな
その場合はエラー内容を記述してくれ

468 :デフォルトの名無しさん:2010/11/27(土) 00:49:00
[1] 授業単元:C/C++の宿題片付けます 143代目
[2] 問題文(含コード&リンク): ニュートン法により実数の平方根を求める関数を作成せよ。(引数double, 戻り値double)
[3] 環境
 [3.1] OS: any
 [3.2] コンパイラ名とバージョン: any
 [3.3] 言語: C
[4] 期限: なし
[5] その他の制限: stdio.h以外の使用は不可

469 :デフォルトの名無しさん:2010/11/27(土) 01:47:53
>>468
ttp://codepad.org/Owx14RLB

470 :デフォルトの名無しさん:2010/11/27(土) 14:12:25
>>467の通り実行しましたが、同じようなエラーが出ました。

Debug Error!
<プログラム名中略>
File:
Run-Time Check Failure#2-Stack around the variable 'hists'was corrupted.
(Press Retry to debug the application)

とエラーが出ました。

471 :デフォルトの名無しさん:2010/11/27(土) 16:51:40
>467, 470
>462の8行目が怪しいねぇ、うん

472 :デフォルトの名無しさん:2010/11/27(土) 16:52:26
>>470
findIndex()の中の
for( i = 0; i < max; i++ )

for( i = 0; i < max-1; i++ )
に変えると良いかも

473 :デフォルトの名無しさん:2010/11/27(土) 17:56:21
ECC 6.3.1でCodeGuardを掛けたら一杯エラーが出た
似たようなエラーなのでそのうちの一つは

Error 00001. 0x110200 (Thread 0x0CF0):
Pointer arithmetic in invalid stack: 0x0013FE6C+8.
| dai65_1.c line 76:
| dispOneHist( NULL, border + 0, hists[0] );
| for( i = 1; i < HIST_NUM - 1; i++ )
|> dispOneHist( border + i - 1, border + i, hists[i] );
| dispOneHist( border + HIST_NUM - 2, NULL, hists[HIST_NUM-1] );
| }

474 :デフォルトの名無しさん:2010/11/27(土) 18:24:56
あっちを潰せばこっちでエラーが出る・・・
根本的に書き直した方がいいと思われ

475 :デフォルトの名無しさん:2010/11/27(土) 18:30:11
>>470
乱数系列(x): 10
個数: 100
平均(μ): 50
分散(σ): 67
の指定すると、189.303894というデータが発生するんだが
配列borderの内容は、
-57.20, -30.40, -3.60, 23.20, 50.00, 76.80, 103.60, 130.40, 157.20, 0.00
なので、findIndexのループで引っかからず、HIST_NUMの値を返してる。
だから、配列histsの要素数を越えてアクセスしてる。


476 :デフォルトの名無しさん:2010/11/27(土) 19:14:17
>>461
linux 32bit gcc4.5でコンパイルして実行したら、こんな表示になりました。
http://codepad.org/xtsLbFtV
ちゃんとコンパイルできて動きましたよ。


477 :デフォルトの名無しさん:2010/11/27(土) 19:25:19
>>464ですが、>>472に変更したらところエラーがでなくなりました。
ありがとうございました。
今後の参考にしたいので、>>472に変更したら良いと思ったのか理由を教えてもらえてほしいです。

478 :476:2010/11/27(土) 19:58:37
もっと全体にまんべんなく*を出すには、どういう数字を入力すればいいのでしょうか?

479 :デフォルトの名無しさん:2010/11/27(土) 20:02:08
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):X^3=1は、1つの実数解と2つの虚数解(複素数の買解)をもつ。
この3つの解すべての組み合わの四則演算の結果を示しなさい。
(複素数:ω=a+ibとするとき(ただし、i^2=-1)、ωと原点との距離:dは、d=(a^2+b^2)^1/2)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2010年11月29日12時
[5] その他の制限:

・複素数を構造体として宣言し、複素数の四則演算を実現する関数(4つ)
値を設定する関数、値を表示する関数を作る。
・複素数の構造体は、
struct complex {
double re;
double im;
} と宣言する。
・引数は、演算対象の2つの構造体とする。
・戻り値は構造体とする。

480 :デフォルトの名無しさん:2010/11/27(土) 20:10:43
>>478
どんな数を入れてもこのプログラムは一定の分散幅しか表示しないから
プログラムそのものを変更しないとだめだろう

481 :デフォルトの名無しさん:2010/11/27(土) 21:02:19
>>479
問題文の文章が読み取れないんだけど
複素数の四則演算を関数として定義、実装しろってこと?
それともX^3=1の解を数値計算しろってこと?

482 :デフォルトの名無しさん:2010/11/27(土) 21:11:44
>>481
X^3=1の解すべてのパターン(組み合わせ)を四則演算して結果を表示するプログラムです。

483 :デフォルトの名無しさん:2010/11/27(土) 21:12:47
1^3=1だから1。
あと
虚数軸と実数軸でつくった平面上につくった、半径1の円を、
複素数どうしの掛け算だと、複素数の線が真ん中を中心にしてぐるぐるまわるから、3乗して1なら、2回うごいて一周するような位置ならいいんだから、
ケーキみたいに三等分した位置の値になって、
これは円の上側の120度のとこってことかなぁ?はて??
複素数で、長さ1の棒が、120度まわったとこですよ数? どうしをかけ算したら、
長さ1の棒x長さ1の棒=長さ1の棒 が、 120度回って+さらに120ど回ったとこ=240どのとこ、 になるから、

長さ1の棒が、240度まわったとこってなって、 いまの状態がちょうど X^2 の状態で、 X^3なら、 さらにXをかければいいんだから
長さ1の棒が、240どまわったとこに、 かける、 長さ1の棒が、120度まわったとこ
になるから
長さ1の棒x長さ1の棒=長さ1の棒 が 240度回って+さらに120どまわったとこ=360度になるから、
長さ1の棒が0度ってことで、これは数字の1だから、 X^3は1 って式のとうりになってよかった♪

ケーキ切る三等分の位置は、上側のほかに、下側のー120度の位置できったばあいでも同じ様になって、ー120度たすー120度たすー120度=ー360度=0度で
わーい3個だ

(iルート3+1)/2 の具体的な数字と、 (iルート3-1)/2 の具体的な数字と、 1の具体的な数字の1と、 の3つの数字がわかればいいってことかなぁ? はて??
>>481
わかんないけど、たぶんどっちもかも?


484 :デフォルトの名無しさん:2010/11/27(土) 21:28:55
>>483
それをプログラムで出力できればいいのです。


485 :デフォルトの名無しさん:2010/11/27(土) 21:50:08
>>470
ゴメン、>>472 の指摘通り、配列のオーバーランだ

line61 の
r = findIndex( HIST_NUM, border, arr[i] ); を
r = findIndex( HIST_NUM - 1, border, arr[i] );
にしてくれ、意味的にはこっちの方が妥当だ

同じ現象が生じるか確認したいんだけど、誰か bcc のデバッグオプション知らない?


486 :デフォルトの名無しさん:2010/11/27(土) 21:52:12
>>485
bccのバージョンいくつだ?C++Builderに付属している物なら -vG で
CodeGuardが動く

487 :デフォルトの名無しさん:2010/11/27(土) 22:01:37
>>473
その理由は判らんな、そも ecc って何?

dispOneHist( border + i - 1, border + i, hists[i] ); 

dispOneHist( ( border + i - 1),  ( border + i ), hists[i] ); 
に直しても同じかな?



488 :デフォルトの名無しさん:2010/11/27(土) 22:11:46
>>485
cpad に付属してた bcc で 5.5.1 だよ(大昔にダウンロードして便利だから使ってるんで相当古いと思う)
-vG だと link で CG32.lib が無いとか言われるなぁ



489 :デフォルトの名無しさん:2010/11/27(土) 22:23:38
>>484
よく分からんが
#include <stdio.h>
#include <math.h>
int main() {
_Complex double a;
a = 1
+ 0.5+1.0i*sqrt(3)
+ 0.5-1.0i*sqrt(3);
printf("%f + %fi\n",a);
return 0;
}
でいいのか?

490 :デフォルトの名無しさん:2010/11/27(土) 22:27:27
調べてみたら記憶違いだった。↓が正しい模様。
- 0.5+0.5i*sqrt(3)
- 0.5-0.5i*sqrt(3);


491 :デフォルトの名無しさん:2010/11/27(土) 22:32:58
>>488
ああそれだとだめですね
C++Builderを買った人ならcg32.libも持ってますからCodeGuardが掛けられます
これは不正なポインタの使用の検出・アクセスオーバーランなど見つけにくいバグや
たまたま動いている潜在的なバグを洗いざらい検出してくれます

これだけのためにC++Builderを買っていると言っても過言ではないかも・・・

492 :デフォルトの名無しさん:2010/11/27(土) 22:37:58
>>489-490

>>479の形式にしてもらいたいです。
あと、実行したらエラーが出ました。

493 :デフォルトの名無しさん:2010/11/27(土) 22:37:58
>>487
ECCとはEmbarcadero C++ Compilerの略です
もはやBorlandの製品ではないのでECCとしたわけです
6.3.1は最新バージョンです

494 :デフォルトの名無しさん:2010/11/27(土) 22:59:50
>>492
#include <stdio.h>
#include <math.h>
struct complex {
double r;
double i;
complex(double a,double b){r=a;i=b;};
};
complex operator + (complex c0, complex c1) { complex a(c0.r+c1.r,c0.i+c1.i); return a; }
complex operator - (complex c0, complex c1) { complex a(c0.r-c1.r,c0.i-c1.i); return a; }
complex operator * (complex c0, complex c1) { complex a(c0.r*c1.r-c0.i*c1.i,c0.r*c1.i+c0.i*c1.r); return a; }
complex operator / (complex c0, complex c1) { complex a((c0.r*c1.r+c0.i*c1.i)/(c1.r*c1.r+c1.i*c1.i),(c0.i*c1.r-c0.r*c1.i)/(c1.r*c1.r+c1.i*c1.i)); return a; }
int main() {
complex a(1.0,0.0);
complex b(-0.5,+0.5*sqrt(3.0));
complex c(-0.5,-0.5*sqrt(3.0));
printf("%f + %fi\n",(a+b+c).r,(a+b+c).i);
printf("%f + %fi\n",(a-b-c).r,(a-b-c).i);
printf("%f + %fi\n",(a*b*c).r,(a*b*c).i);
printf("%f + %fi\n",(a/b/c).r,(a/b/c).i);
return 0;
}

495 :デフォルトの名無しさん:2010/11/27(土) 23:02:00
>>478
ttp://codepad.org/gUK5WYAK

上記は line 104 の printf() のコメントを外して n を 10 にした結果だ
codepad では Random() の結果が全て -700 前後になるんだが、codepad では gcc を使用しているはずなので
君の環境での結果と同じはず
で、禁を犯して codepad 上で少しデバッグしたら以下が判った
RAND_MAX は bcc では 0xFFFF/2 - 1 だが gcc では 0xFFFFFFFF/2 - 1 だ
>>462 line8 において
return (double)rand() / (RAND_MAX + 1); 
とあり、この時の分母は一旦 singned int に代入されるため 
bcc では 0xFFFF/2 
gcc では 0xFFFFFFFF/2
となり、bcc では正の値、gccでは負の値となってしまう、よって
return (double)rand() / RAND_MAX;
とするのが正しい
言い訳になるけどこの部分の実装は俺では無いので見落としていた


496 : ◆QZaw55cn4c :2010/11/27(土) 23:08:33
>>495
return rand() / (RAND_MAX + 1.0);
でいいと思います。この値が 1 になる可能性はつぶしておいたほうがいいのでは?

497 :478:2010/11/27(土) 23:16:35
>>495
8ぎょうめをいわれたと〜りになおしたら☆がいっぱいでました。らっきー♪ わーい
http://codepad.org/IEnpC3ev

提案:
*よりも☆の方が、見た目にうれし度が高い感じでいいとおもいます!! どうでしょうか

498 :デフォルトの名無しさん:2010/11/27(土) 23:18:33
>>491
だよなぁ、そんな便利なもんが無償なはずは無いよなぁ...orz
まぁ、配列のオーバーランは確かなので納得するよ

>>493
では特殊なモノではないんだね
>>483 における "Pointer arithmetic in invalid stack" とは不正なスタック上でのポインタ演算という意味だけど. 
dispOneHist( border + i - 1, border + i, hists[i] );
この行に何の問題が有るのか俺には理解できないんだよな
>>487 の修正を行っても >>483 のエラーが再現するか確認してくれないか?
できれば以下の方が良いかな
dispOneHist( ( (double*)border + i - 1 ), ( (double*)border + i ), hists[i] );

499 :デフォルトの名無しさん:2010/11/27(土) 23:20:55
☆ばーじょんです☆(^_^/
http://codepad.org/kIzzWXML

500 :デフォルトの名無しさん:2010/11/27(土) 23:22:43
>>498
その修正を行ったら劇的にエラーが減りました
要はarrayの解放が行われていないというだけです
borderがdouble型の配列なので問題ないと思うんですけどね?
VC10でもやってみます

CodeGuardのエラーは

Error 00001. 0x300010 (Thread 0x01C8):
Resource leak: The memory block (0x7FEE0010) was never freed

The memory block (0x7FEE0010) [size: 800000 bytes] was allocated with malloc
| dai65_3.c line 98:
| #endif //ZZZ
| srand(seed);
|>if ((array = (double *)malloc(sizeof(double) * n)) == NULL){
| exit(1);
| }
Call Tree:
0x00401710(=dai65_3.exe:0x01:000710) dai65_3.c#98
0x32B9C3BA(=CC32110MT.DLL:0x01:09B3BA)

のみです

501 :デフォルトの名無しさん:2010/11/27(土) 23:24:27
>>496
でも gcc で動かないのはマズイでしょ
もし1になる可能性を潰したいのであれば

double Rand(void) 
{
 int i = RAND_MAX;

 while( i == RAND_MAX )
  i = rand();
 return (double)i / RAND_MAX;
}
なんてのはどうかな?


502 :デフォルトの名無しさん:2010/11/27(土) 23:27:57
>>501
RAND_MAX + 1.0 とすることでここがdoubleになってしまうのでrand()もdoubleに
格上げされるので問題ないと思いますよ

503 :デフォルトの名無しさん:2010/11/27(土) 23:30:48
>>473の出力はどうもCodeGuardのバグっぽいですね
VC10だと何の問題もなく実行出来ました

バグを取るためのツールがバグってるってのはシャレにならないので
QC(SP2の修正候補)に出しておきます

504 : ◆QZaw55cn4c :2010/11/27(土) 23:40:17
>>501
RAND_MAX + 1.0
とした段階で、この結果は double になります(し、double は普通仮数部が 52 ビットあります)から、
>>496 は、gcc でも問題なく動きます。
cf. ISO/IEC 9899:1999 6.3.1.8-1

505 :デフォルトの名無しさん:2010/11/27(土) 23:46:38
うぜー

506 :デフォルトの名無しさん:2010/11/27(土) 23:48:29
>>504
あぁ 1.0 だったのね
又、暗黙のキャストか、嫌いなんだよなぁ今みたいな誤解が生じるから
最初から
(double)rand() / ( (double)RAND_MAX + 1.0 );
って書いてくれれば誤解しないのに

ところで1.0を返す可能性を潰す必要が有るのか?0<=x<=1 で良いんとちゃう?

507 :デフォルトの名無しさん:2010/11/27(土) 23:49:44
自分よりレベルの低い全角スペースのバカ相手におおはしゃぎだなw

508 :デフォルトの名無しさん:2010/11/27(土) 23:56:30
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク): すべての点について、もっとも近い点通しを結ぶ。 このとき、結んだ線分の
長さの合計を求めなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2010年11月29日12時
[5] その他の制限:

・複素数を構造体として宣言し、複素数の四則演算を実現する関数(4つ)
値を設定する関数、値を表示する関数を作る。
・複素数の構造体は、
struct senbaigaeshi3 {
double re;
double im;
} と宣言
・引数は、演算対象の2つの構造体
・戻り値は構造体

509 :デフォルトの名無しさん:2010/11/27(土) 23:58:17
>>503
バグっていうほどではないけど、埋め込みコードの生成にクセが有るんだろうね
マニュアルに注意点とか書いてるんじゃないかな、こんなコードの書き方は駄目ですみたいなw

510 :デフォルトの名無しさん:2010/11/28(日) 00:00:16
>>508
長さに複素数?

511 :デフォルトの名無しさん:2010/11/28(日) 00:01:55
>>508
むしろ2つの問題に見える

512 :デフォルトの名無しさん:2010/11/28(日) 00:02:37
>>508
たとえば、xy平面上で、
A(0, 0), B(1, 0), C(0, 2)
があったとして、結ばれるのは
AB
のみですか?それとも
AB, AC
になりますか?

>>506
すみません。この場合は全部にキャストしたほうがよかったですね。

513 :デフォルトの名無しさん:2010/11/28(日) 00:20:14
>>510-512
すいません
もう一度確認してきます
代わりに下の問題をおねがいします

514 :デフォルトの名無しさん:2010/11/28(日) 00:24:47
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):X^n=1はn個の複素数の解を持つ。 複素平面上にこのn個の解をおくとき、
原点と各13個の点との距離の和はnになる。このプログラムを作れ。
(ω1=a1+ib1 ω2=a2+ib2とするとき、ω1とω2の距離:d12は、d12^2=(a1−a2)^2+(b1−b2)^2)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2010年11月29日12時
[5] その他の制限:

・複素数を構造体として宣言し、複素数の四則演算を実現する関数(4つ)
値を設定する関数、値を表示する関数を作る。
・複素数の構造体は、
struct omega2{
double re;
double im;
} と宣言する。
・引数は、演算対象の2つの構造体とする。
・戻り値は構造体とする。

m(_ _)m

515 :デフォルトの名無しさん:2010/11/28(日) 00:32:22
作れ。とか偉そうに

516 :デフォルトの名無しさん:2010/11/28(日) 00:38:15
出題者がここにあげてるアホに言ってるんだから偉そうでも問題ないだろw

517 :デフォルトの名無しさん:2010/11/28(日) 00:40:20
>>515
実際にそう書いてあるわけで

518 :デフォルトの名無しさん:2010/11/28(日) 00:40:35
おい◆QZaw55cn4c作ったれや

519 :デフォルトの名無しさん:2010/11/28(日) 00:40:42
>>514
後半が >>508 と同じでやはり2つの問題に見える

後半に限って言うと加減乗算は簡単だけど除算ってどうするのか数学的に教えてくれ

520 :デフォルトの名無しさん:2010/11/28(日) 00:52:00
追記です。

距離の和がnになることを、さまざまなnについて計算・確認せよ。

521 : ◆QZaw55cn4c :2010/11/28(日) 00:56:05
>>514
x∈Cで x^n = 1 を満たす x は複素平面上では原点を中心とする半径1の円に内接する正多角形(頂点のひとつは 1) になります。
この事実を計算で出さないといけないのですか?それともこの事実を使ってもいいですか?

半径 1 の n 個の根がありますから、各々の根と原点との総和は n になるのは自明ですけれども、どこまでプログラムで作ればいいものか迷います。
あと >>2 をよろしく。

522 :デフォルトの名無しさん:2010/11/28(日) 00:57:27
>>514
13個の点じゃなくて、n個の点だよな?

523 :デフォルトの名無しさん:2010/11/28(日) 01:00:40
x^n=1の解をn個全て求める
n個の複素平面上の点について原点からの距離を全て求める
合計がnとなることを示す

524 :デフォルトの名無しさん:2010/11/28(日) 03:00:41
>>514 よく分かりません
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct complex { double re; double im; } c;
static c set_c(double re, double im) { return (c){re, im}; }
static double dif_c(c a) { return sqrt(a.re * a.re + a.im * a.im); }
#define f(n, e, r, i) static c n(c a,c b) { if (e) exit(1); return set_c(r,i); }
#define r1 (a.re)
#define i1 (a.im)
#define r2 (b.re)
#define i2 (b.im)
#define d2 dif_c(b)
f(add_c, 0, r1 + r2, i1 + i2); f(sub_c, 0, r1 - r2, i1 - i2);
f(mul_c, 0, r1*r2 - i1*i2, r1*i2 + r2*i1); f(div_c, d2==0, (r1*r2 + i1*i2)/d2, (r2*i1 - r1*i2)/d2);
#define t2r(t) ((t)/180.0 * 3.14159265)
static c pow_c(c a, int b) { c t = a; while (--b) t = mul_c(t, a); return t; }
static void pri_c(c a, int n) {
  c t = pow_c(a, n);
  printf("w = %.4f%+.4fi, |w| = %g, w^%d = %.4f%+.4f\n", a.re, a.im, dif_c(a), n, t.re, t.im);
}
int main(void) {
  c *w, dw;
  double dif;
  int i, n;
  scanf("%d", &n);
  if ((w = (c *)calloc(n, sizeof(*w))) == NULL) return perror("calloc"), 1;
  w[0] = set_c(1, 0), dw = set_c(cos(t2r(360.0/n)), sin(t2r(360.0/n)));
  for (i = 1; i < n; i++) w[i] = mul_c(w[i - 1], dw); /* set_c(cos(t2r(360.0/n * i)), sin(t2r(360.0/n *i))) */
  for (i = 0; i < n; i++) dif += dif_c(w[i]), pri_c(w[i], n);
  return printf("dif = %g\n", dif), free(w), 0;
}

525 :デフォルトの名無しさん:2010/11/28(日) 05:12:28
[1] 授業単元:情報検索処理
[2] 問題文(含コード&リンク):以下の仕様を満たすプログラムを作成してください。
・文章の書かれたテキストファイルを読み込み、文字列を入力して検索する。
・検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として別のテキストファイルに書き込む。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年11月29日16:00
[5] その他の制限:なし

526 :デフォルトの名無しさん:2010/11/28(日) 08:08:40
>>525
http://codepad.org/e1tOt5Bg
こういうのでいいのか?

527 :デフォルトの名無しさん:2010/11/28(日) 08:36:40
>>526
行頭にパターンが出現したらどうなるんだろう?
そんなに簡単じゃないと思うよ

528 : ◆QZaw55cn4c :2010/11/28(日) 09:05:58
>>526
まずいです。

fprintf(ofp, "%s", strncpy(tmp, p - 10, 10));
は、strstr の返り値によっては p - 10 が tmp よりも小さくなってしまい p - 10 は line[] の外になる可能性があります。
また strncpy(s1, s2, 10) として s2 が 10 文字以上あった場合には、末尾に \0 は自動的にはつけません。(正直いってstrncpy() は使いにくい。)

529 :409:2010/11/28(日) 09:11:03
>>409
をもう一度お願いしたいです。
for を変えたり、漸か式を考えたりするみたいです。
recurseがなんたら。。。
あと2 もわからないのでよろしくお願いしたいです><

530 :デフォルトの名無しさん:2010/11/28(日) 09:29:38
頭おかしいのか?
if (expr)
A;
else
return;
だったら、
if (!expr)
return;
A;
にしろよ

531 :デフォルトの名無しさん:2010/11/28(日) 09:46:24
日本語でおk

532 :デフォルトの名無しさん:2010/11/28(日) 10:00:27
>>514
#include <stdio.h>
#include <math.h>
#define N (13)
struct complex { double re; double im; complex(double a,double b){re=a;im=b;}; };
double Len(complex c0) { return sqrt(c0.re*c0.re+c0.im*c0.im); }
int main(void) {
int i;
double PI = 2*acos(0);
double sum = 0;
for (i=0 ; i<N ; i++) sum += Len(complex(cos(2*PI*i/N),sin(2*PI*i/N)));
printf("%f\n",sum);
return 0;
}


533 :デフォルトの名無しさん:2010/11/28(日) 10:44:54
>>508
こんな感じですかね。
http://codepad.org/8wXXgxSw

534 :デフォルトの名無しさん:2010/11/28(日) 11:05:46
>>525
ABCDEFG0123456789\n
HIJKLMN0123456789\n
みたいなファイルが与えられてパターン文字列がHIJの場合、どのような出力になるの?

1)\n を無視して
0123456789HIJKLMN012345 なのか?

2)それとも \n も一文字と考えて
123456789\n
HIJKLMN012345 なのか?

3)もしくは、行内だけを考慮して前後が10文字に満たない場合は有るだけ表示するって考えで
HIJKLMN012345 なのか?

この手の問題は常に改行コードの扱いを明確にすべきなんだけど、あまり良い講師に恵まれていないようだね

535 :デフォルトの名無しさん:2010/11/28(日) 11:22:17
>534
パターンに9Hが与えられたときやASCII以外のファイルの場合の処理が気になってしかたないのは僕だけではないはず

536 :デフォルトの名無しさん:2010/11/28(日) 11:37:30
単元名が「情報検索処理」ってのが気になる。入力を正規表現と思ってDFAを作れとか、suffix arrayを使えとか、そういう指示は無かったか?

537 :デフォルトの名無しさん:2010/11/28(日) 13:06:17
要はgrepでしょ?
行数を表示して前の行を考えないで行単位で処理すればいいんじゃないの?

538 :デフォルトの名無しさん:2010/11/28(日) 13:31:50
>>514です。
問題文(含コード&リンク):X^n=1はn個の複素数の解を持つ。 複素平面上にこのn個の解をおくとき、
原点と各点(例えば、13角形なら各13個の点との距離)との距離の和はnになる。このプログラムを作れ。

でした。問題文を書き間違えていました。すいませんm(==)m

539 :デフォルトの名無しさん:2010/11/28(日) 13:35:16
>>508は、構造体を使って計算する問題です。
多角形の周囲長を求めることになりますの、複素数を使って求める。
nが無限大になったときには、円の周囲長になるはずです.
距離は実数で、複素数はベクトルのように使います.
複素数 w = a + bi と原点との距離dは、d ^ 2 = a^2 + b^2

540 :デフォルトの名無しさん:2010/11/28(日) 13:36:22
解の求め方に指定はないの?

541 :デフォルトの名無しさん:2010/11/28(日) 13:45:57
問題文には「文章の書かれたテキストファイル」としか書いてないのだから、
最悪改行1個っていうケースもあるだろう。
「その文字列と前後10文字」を書き出せば良いと思う。

542 :デフォルトの名無しさん:2010/11/28(日) 14:01:31
検索する文字より前に10文字無い場合の対策もした
クソースコードを書いたでおじゃるが、晒すのは止めたでおじゃる。
ちみたちで解決してたもう。

543 :デフォルトの名無しさん:2010/11/28(日) 14:09:29
>>539の2行目に脱字がありました。

多角形の周囲長を求めることになりますの「で」、複素数を使って求める。

でした。 m(_ _)m

544 :デフォルトの名無しさん:2010/11/28(日) 14:47:01
>>539
http://codepad.org/6fPY9LsG

545 :デフォルトの名無しさん:2010/11/28(日) 14:52:48
>>543
誤字・脱字は目をつむるけど、もっと正確に問題書けよ。
正多角形とかじゃなかったか?

546 :デフォルトの名無しさん:2010/11/28(日) 15:06:38
>>545
以後気をつけます。
正多角形とは書いてありませんでした。
多角形とだけ書いてあります。

547 :デフォルトの名無しさん:2010/11/28(日) 15:09:24
>>544
acos(0); でエラーが発生します。

548 :デフォルトの名無しさん:2010/11/28(日) 15:15:12
◆QZaw55cn4cウザイな

549 :デフォルトの名無しさん:2010/11/28(日) 15:18:09
>>547
gccなら g++ hoge.cpp -lm
>>508 で単に正多角形の外周の和なら↓の方が正確。
http://codepad.org/0MSXe5Qb

>>546
ただの多角形なら円の周囲長にはならんぞ。
何か他の条件は?

550 :デフォルトの名無しさん:2010/11/28(日) 15:24:37
x^n=1の解が、複素平面上で半径1の円周に内接する正n角形になることを
計算から示すための問題じゃないの?
最初っからそれを利用してたら問題にならないと思うけど

551 :デフォルトの名無しさん:2010/11/28(日) 15:31:47
>>550
そういう問題なのかどうかは >>508 しか分からん。
>>508 待ちってことで。

552 :デフォルトの名無しさん:2010/11/28(日) 15:46:28
>>550
「x^n=1の解はnこの複素数の解を持ち、複素数平面上にこのn個の解をおくとき、
原点と各点との距離の和がnになることをプログラムで確認しなさい。」という問題です。


553 :デフォルトの名無しさん:2010/11/28(日) 15:50:13
>>549で実行したところ、
error C2668: 'acos' : オーバーロード関数の呼び出しを解決することができません。
とエラーが発生しました。

554 :デフォルトの名無しさん:2010/11/28(日) 15:55:28
>>553
何でだろ? 取りあえず
double PI = 2*acos(0.0);
でもだめなら諦めて
double PI = 3.1415926535897931;

555 : ◆QZaw55cn4c :2010/11/28(日) 16:04:06
>>553
acos(0.0)
に書き換えてみてください。

>c:\documents and settings\administrator\my documents\visual studio 2008\projects\test04\test04.cpp(15) : error C2668: 'acos' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
> c:\program files\microsoft visual studio 9.0\vc\include\math.h(541): 'long double acos(long double)' の可能性があります。
> c:\program files\microsoft visual studio 9.0\vc\include\math.h(493): または 'float acos(float)'
> c:\program files\microsoft visual studio 9.0\vc\include\math.h(107): または 'double acos(double)'
> 引数リスト '(int)' を一致させようとしているとき

556 :デフォルトの名無しさん:2010/11/28(日) 16:07:07
>>552
そりゃ >>514 じゃねーの?
それなら >>524 >>532 じゃだめなのかい?

557 :デフォルトの名無しさん:2010/11/28(日) 16:17:21
>>554-555
直したところ出力されました。
ところで、この値を変えるにはどうすればいいのでしょうか?

558 :デフォルトの名無しさん:2010/11/28(日) 16:21:32
>>556
>>524>>532ともエラーになりました。


559 :デフォルトの名無しさん:2010/11/28(日) 16:32:12
こりゃ、教えるほうも大変だよな。
出来ないではなく、考えようともしないんだから。

560 :デフォルトの名無しさん:2010/11/28(日) 16:39:38
>>559
>>532をacos(0.0) に書き換えればいいんですか?

561 : ◆QZaw55cn4c :2010/11/28(日) 16:55:57
>>559
そのための >>2 です。
>>560
welcome.

562 :デフォルトの名無しさん:2010/11/28(日) 16:58:05
お前は自分が言いたいことだけ話すだけで他人に教える気なんて0じゃんw

563 : ◆QZaw55cn4c :2010/11/28(日) 17:07:59
>>562

>>443>>451

564 :デフォルトの名無しさん:2010/11/28(日) 17:10:03
汚ねぇソースだな
読む人間のことを何も考えてない

565 : ◆QZaw55cn4c :2010/11/28(日) 17:17:34
>>564
>>357の問題で12時間でつくるとなれば、「赤あげて、白さげて」方式も止むを得なかったんですよ。
最終回答が >>451 でOKだったとして、これをオートマトンで書くと、フラグの数が >>451 では 8 個だから、状態数は 2^8 = 256 で、ちょっとしたお仕事になります。
>>357 の問題が出た段階で必要なフラグの数もいわんや状態数も見積もれない段階で、期限12時間というのに、オートマトンは書きにくいでしょう。

566 :デフォルトの名無しさん:2010/11/28(日) 17:50:49
方法じゃなくてもっと根本的な所だと思うぞ?
どこが汚いって言われてるのか理解できないってことは
君って多人数プロジェクトに参加したことないでしょ

567 :デフォルトの名無しさん:2010/11/28(日) 17:53:04
宿題スレでは動きさえすれば、あとはどうでもいいだろ
変なこだわり持ってるやつは自分でやればいい

568 : ◆QZaw55cn4c :2010/11/28(日) 18:02:15
>>566
ええ、実務経験はありませんから。
よろしければ問題点を教えてください。

569 :デフォルトの名無しさん:2010/11/28(日) 18:13:30
>>409
解らないとか言う前に少なくともコード見たら?

漸化式もあなたの言うrecurse(たぶんrecursive:再帰)も
http://codepad.org/Q7wmR5Wy
で使ってるんだが

570 :デフォルトの名無しさん:2010/11/28(日) 18:29:01
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
file1.csv(マスタファイル)からデータを読み込みfile2.csv(トランザクションファイル)に記述された内容でデータを更新・追加し、
再度file1.csvに保存せよ。

file1.csv
1,Ken Kawakami,kawakami@xxxxx.xx.jp
2,Toshiyuki Ishikura,ishikura@xxxxx.xx.jp
3,Yuuta Hayashi,yutahaya@xxxxx.xx.jp
4,Kazuwo Inoue,inoue@xxxxx.xx.jp
5,Kinya Nagata,osada@xxxxx.xx.jp
6,Yuki Hayashi,yukihaya@xxxxx.xx.jp
7,Yoshiyuki Hihara,hihara@xxx.xx.jp

file2.csv
2,,isikura@xxx.xx.xx.jp
4,Kazuo Inoue,
5,,nagata@xxxxx.xx.jp
7,Yoshiyuki Hinohara,hinohara@xxx.xx.jp
8,Kouki Takahashi,takahashi@xxxxx.xx.jp
9,airi Saito,saito@xxx.xx.xx.jp

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年12月1日
[5] その他の制限:なし
宜しく御願いします。

571 :デフォルトの名無しさん:2010/11/28(日) 18:39:22
>>560
それで良いよ。数学的なことが分からないなら↓でも読むこと。
http://ja.wikipedia.org/wiki/1%E3%81%AE%E5%86%AA%E6%A0%B9
数学的なことでこれ以上の質問なら数学板へどうぞ。

572 :デフォルトの名無しさん:2010/11/28(日) 18:46:29
>>570
更新とは、ただ行を置換するだけですか?

573 :デフォルトの名無しさん:2010/11/28(日) 18:54:48
>>572
はい。
2番目だったら2,Toshiyuki Ishikura,isikura@xxxxx.xx.jp
4番目だったら4,Kazuo Inoue,inoue@xxxxx.xx.jp
のように置き換える処理です。

574 :525:2010/11/28(日) 19:14:11
>>526-528,534-537
どうもありがとうございます。
あまり課題について詳細な説明はうけていないので、曖昧な点が多くて申し訳ないです。
>>534
3)の形式で表示だと思います。
その場合、「 p - 10 が tmp よりも小さくなってしまい p - 10 は line[] の外になる
可能性がある」との指摘がありましたが、どのように対処したら良いでしょうか?

575 :デフォルトの名無しさん:2010/11/28(日) 19:27:19
>>525
http://codepad.org/d5T0wRQK

576 :デフォルトの名無しさん:2010/11/28(日) 19:53:14
>>570
http://codepad.org/qJEvuzCJ

577 :デフォルトの名無しさん:2010/11/28(日) 20:25:47
>>576
ありがとうございます

578 :デフォルトの名無しさん:2010/11/28(日) 20:38:18
[1] 方程式の反復解放
[2] http://www.dotup.org/uploda/www.dotup.org1273890.pdf.html
[3]
 [3.1]Windows
 [3.2] gcc
 [3.3] 言語: C
[4]11/29まで
[5] なるべく簡単なプログラムでお願いします。

579 :デフォルトの名無しさん:2010/11/28(日) 20:52:18
>他人のプログラムを参考にした場合は,出典(名前やURL,資料名)をプ
>ログラムの後にコメントで明記すること.また,自分なりに変更して使うこ
>と.理解せずに丸写しは厳禁.

参考元に2chって書くのかw

580 :デフォルトの名無しさん:2010/11/28(日) 21:06:14
>>578
二分法
http://codepad.org/xsFebk26

581 : ◆QZaw55cn4c :2010/11/28(日) 21:11:04
>>580
解が収束しません。
http://codepad.org/pE4RZpEM

582 : ◆QZaw55cn4c :2010/11/28(日) 21:21:18
>>580
失礼。手元の環境では解析解(-1±sqrt(7))/4 と一致しました。
codepad の問題と思われます。

583 :デフォルトの名無しさん:2010/11/28(日) 21:27:44
>>580-581
xが初期化されていない事がスグにわかる。お前ら二人とも落第。

584 :デフォルトの名無しさん:2010/11/28(日) 21:27:58
>>581
これなんでかね。
for ( ; 1e-16<a && a<1e16 ; a/=2) {
とかしてもダメみたいだし。

585 :デフォルトの名無しさん:2010/11/28(日) 21:29:12
>>583
こりゃ失礼。
http://codepad.org/gH82yTqJ

586 :デフォルトの名無しさん:2010/11/28(日) 21:32:50
>>578
ニュートン法の時の関数の微分は手で計算していい?

その方が数値計算で出すより早くて精度出ると思うけど

587 :デフォルトの名無しさん:2010/11/28(日) 21:44:52
>>586
はい。よろしくお願いします。

588 :デフォルトの名無しさん:2010/11/28(日) 21:51:14
>>578
> 何回で収束したかが分かるようせよ
に対応してたら収束が遅いことが分かったので。
http://codepad.org/t8WZDISt

589 :デフォルトの名無しさん:2010/11/28(日) 22:08:31
[1] 授業単元: 配列
[2] 問題文(含コード&リンク): キーボードから入力した値を大きい順に並べ替えなさい。(ただし、配列を使うこと。)
[3] 環境
 [3.1] OS:Windows 7
 [3.2] コンパイラ名とバージョン:Visual Studio 2010
 [3.3] 言語: C++
[4] 期限:2010年11月28日 23:59まで
[5] その他の制限:特にありません

途中まで作りました。http://codepad.org/H09vJg4U
実行すると、最大の数字が入力してもない数字が最大項として現れます。なぜでしょうか?ご教授お願いします。


590 :デフォルトの名無しさん:2010/11/28(日) 22:16:02
>>587
#if 1 の時に収束しない理由は分からん。
http://codepad.org/YEGQb4cz

591 :デフォルトの名無しさん:2010/11/28(日) 22:25:49
>>589
普通に動くよ
入力回数を5に制限していないから6個以上入力すると落ちるけど、記述のような現象は起きないな

592 :デフォルトの名無しさん:2010/11/28(日) 22:29:04
何故これが収束しないのか誰か教えて。(T.T)
http://codepad.org/GaU5zVmA

593 :デフォルトの名無しさん:2010/11/28(日) 22:36:28
>>578
関数ポインタ使った奴
http://codepad.org/4nEH3OqI
codepadだとtimeoutするけど自分のPCだと7回で終了


594 :525:2010/11/28(日) 22:43:22
>>575
どうもありがとうございます

595 :デフォルトの名無しさん:2010/11/28(日) 22:47:37
>>578
課題文の初期値云々はよくわからん
http://codepad.org/HRZoxPdF

596 :デフォルトの名無しさん:2010/11/28(日) 22:49:40
>>591
ありがとうございます。
考えたのですが、配列の初期化を行っていないので入力していない配列に
ランダムの数字が入ってそれが最大の値として入ったりしてたのだと考えました。
配列の初期化を行うことによって、解決しました。


597 :デフォルトの名無しさん:2010/11/28(日) 23:02:35
>>596
ああそうか、入力回数が5回に満たない場合はテストしなかったわ
入力終了判定を ctlZ の入力ではなく i < 5 にすれば変な現象は起きないんだけどな

598 :デフォルトの名無しさん:2010/11/28(日) 23:02:46
>>592 ですがスレを移しました。もし返答あればリンク先でお願いします。
http://hibari.2ch.net/test/read.cgi/tech/1290857610/21

599 :デフォルトの名無しさん:2010/11/28(日) 23:12:58
578です。ありがとうございます。しかし資料に一つの関数は収束しないと書かれているのですがそこはどうしたらよいのでしょうか??

600 :デフォルトの名無しさん:2010/11/28(日) 23:33:07
これでもtimeoutするなあ
http://codepad.org/SrdfSDs8
codepadはループが確実に終焉する保障の無い記述は強制的にtimeoutさせるのかな

>>599
pdf消えちゃってるから解んないけど
たぶん鞍点か何かにトラップされるじゃない?
その辺はレポート書くあなた自身が考察するべきだと思うけど

601 :デフォルトの名無しさん:2010/11/28(日) 23:40:49
>>600
>static const int EPS = 10e-16;

これが原因でわ?

602 :デフォルトの名無しさん:2010/11/28(日) 23:53:54
>>601
静的定数をマクロにしたらできた
http://codepad.org/3HMwpmDb
テラthx

603 : ◆QZaw55cn4c :2010/11/29(月) 00:11:30
>>602
static const double EPS=10e-16
でOKなのでは?
http://codepad.org/isC09tu6

604 :デフォルトの名無しさん:2010/11/29(月) 00:12:04
>>602
何が原因だったか分かってる?

605 :デフォルトの名無しさん:2010/11/29(月) 00:14:50
>>601
これはひどい

606 :デフォルトの名無しさん:2010/11/29(月) 00:36:50
>>601
orz
完全に盲目になってた
サーセン

607 :デフォルトの名無しさん:2010/11/29(月) 05:56:14
void main() 爆笑

608 :デフォルトの名無しさん:2010/11/29(月) 12:54:47
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): #include <stdio.h> struct man1{ char name[20];double kokugo;double sansu; }; strut man2{char name[20];double kokugo; double sansu;};struct man3{char name[20]double kokugo;double sansu;}; main()
{ struct man1 student1;
struct man2 student2;
struct man3 student3;
strcpy(student1.name,"SHARON" );
student1.kokugo=80;
student1.sansu=75;
printf("氏名:%s\n",student1.name );
printf("国語:%f\n",student1.kokugo );
printf("算数:%6.2f\n",student1.sansu );
strcpy(student2.name,"SATOH" );
student2.kokugo=81;
student2.sansu=76;
printf("氏名:%s\n",student2.name );
printf("国語:%f\n",student2.kokugo );
printf("算数:%6.2f\n",student2.sansu );
strcpy(student3.name,"SAKAI" );
student3.kokugo=86;
student3.sansu=73;
printf("氏名:%s\n",student3.name );
printf("国語:%f\n",student3.kokugo );
printf("算数:%6.2f\n",student3.sansu ); }このプログラムを改造する
1.出力で3人の国語の平均点と3人の算数の平均点を出す
[3] 環境
 [3.1] OS:Windows 7
 [3.2] コンパイラ名とバージョン:Visual Studio 2010
 [3.3] 言語: C
[4] 期限:2010年11月29日 


609 :デフォルトの名無しさん:2010/11/29(月) 13:03:24
>>608
ttp://codepad.org/1DvcEQBF
改造は最小限にしておきました

610 :デフォルトの名無しさん:2010/11/29(月) 13:03:43
なんで中味の同じ構造体を3つも宣言してんだよ

611 :デフォルトの名無しさん:2010/11/29(月) 13:14:47
1.出力で3人の国語の平均点と3人の算数の平均点を出す

612 :デフォルトの名無しさん:2010/11/29(月) 13:23:15
>>609
ちゃんとやよハゲ死ね
ttp://codepad.org/skxL32RD

613 :デフォルトの名無しさん:2010/11/29(月) 13:35:41
やーよ

614 :デフォルトの名無しさん:2010/11/29(月) 13:55:18
printf("国語の平均点:%f\n", (student1.kokugo + student2.kokugo + student3.kokugo)/ 3);
printf("算数の平均点:%f\n", (student1.sansu + student2.sansu + student3.sansu) / 3);
を最後に追加するだけでいいだろ
無駄なポインタ配列とかいらない

615 :デフォルトの名無しさん:2010/11/29(月) 14:03:17
無駄に邪悪なキャストもアレだ

616 :デフォルトの名無しさん:2010/11/29(月) 14:17:04
>>608
構造体の使い方にきちんと物申したら加点されるかもよw

617 :デフォルトの名無しさん:2010/11/29(月) 14:44:56
>>609
この日本語の読めなさはアレだなw

618 :デフォルトの名無しさん:2010/11/29(月) 14:55:10
◆QZaw55cn4cだな

619 :デフォルトの名無しさん:2010/11/29(月) 17:19:21
!◆QZaw55cn4cだな
さて、誰かな

620 :デフォルトの名無しさん:2010/11/29(月) 19:06:07
[1] 授業単元:プログラミング及び演習
[2] 問題文(含コード&リンク):コマンド名 vhswitch に続く記号「-n」の後に「繰り返し数」を、「-s」の後に「文字列」
を、さらに「-v」または「-h」を書きます。
コマンドラインから次のように入力します。スイッチ「-v」が入力された場合は垂直方向に文字列を表示します。
例) $./vhswitch -n 3 -s "abcdef" -v <Enter>
abcdef
abcdef
abcdef
一方。スイッチ「-h」が入力された場合は水平方向に文字列を表示します。
例)$./vhswitch -s "abcdef" -h -n 3 <Enter>

このような実装をするプログラムを書け。
〜プログラムの一部分の骨子〜
 http://codepad.org/pXaw5yU8

[3] 環境
 [3.1] OS:Mac OS X バージョン10.6.4
 [3.2] コンパイラ名とバージョン:ターミナル
 [3.3] 言語:C
[4] 期限:2010年11月30日 19:00まで
[5] その他の制限:特になし


621 :デフォルトの名無しさん:2010/11/29(月) 19:11:34
>>620
について、すみません。。
書き忘れました。
スイッチ「-h」が入力された場合は水平方向に文字列を表示します。
例)$./vhswitch -s "abcdef" -h -n 3 <Enter>
の部分の出力イメージを書き忘れました。
例)$./vhswitch -s "abcdef" -h -n 3 <Enter>
abcdef abcdef abcdef
と出力されるようにお願い致します。




622 :デフォルトの名無しさん:2010/11/29(月) 19:29:30
[1] 授業単元:情報
[2] 移動平均  ファイルにある数字のデータを読み込んで配列の移動平均を求めるプログラム。
        ファイル名は適当で。平均値を関数で求めて、その関数を使い、移動平均を求める関数を
        作る。
[3] 環境
 [3.1] OS:Windows
 [3.2] 言語: C
[4] 期限:できるだけすぐ
[5] その他の制限:



623 : ◆QZaw55cn4c :2010/11/29(月) 20:52:32
>>622
http://codepad.org/LTrCs27Y

624 :デフォルトの名無しさん:2010/11/29(月) 21:08:31
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
プログラム例>>625において、リストからst_bをはずして、「(先頭)st_a←→st_c(最後尾)」としたい。
変数名st_bのみを用いて(st_aとst_cを用いないで)この操作を行うようにプログラムを書き換えよ。
nextとprevをうまく利用すること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年12月1日

625 :デフォルトの名無しさん:2010/11/29(月) 21:13:13
http://codepad.org/EWXi57bx

よろしくお願いします。

626 : ◆QZaw55cn4c :2010/11/29(月) 21:19:38
>>624
>>625 では prev に値が設定されていないのですが、なにか抜けていませんか?
仮に、
st_a->prev = NULL;
st_b->next = st_a;
st_c->next = st_c;
というコードがあれば、st_b のリンクをはずすには、
st_b->prev->next = st_b->next;
st_b->next->prev = st_b->prev;
free(st_b);
とすればいいのですが。

627 :デフォルトの名無しさん:2010/11/29(月) 21:26:52
[1] 授業単元: 情報


[2] 問題文(含コード&リンク):
以下の2分木を遺伝的アルゴリズムを用いて解きたいのですがどうすればいいですか?

まずはこの2分木の説明から。
「+」とあるところは下の2つの数字を足す。
「×」とあるところは下の2つの数字を掛ける。

なのでこのグラフの解は1340となります。

「この1から10までの数字を入れ替えて解が最小となるときを求めよ。」

という問題です。

これを遺伝的アルゴリズムを用いて解きたいのですかどのようなプログラムになりますか?


[3] 環境
 [3.1] OS:Windows
 [3.2] 言語:C
[4] 期限: 12月5日

628 :デフォルトの名無しさん:2010/11/29(月) 21:26:56
>>620
骨子完全無視で。
http://codepad.org/fDk1jVtV

629 : ◆QZaw55cn4c :2010/11/29(月) 21:47:42
>>628
enum { false, true }
と特定の値に結びつけずに定義している状態で、
if (gHori)
としてOKでしょうか?手元の環境では問題なく false = 0 となっているようでしたが、念のために規格を調べてみたもののよくわからなくて。

630 :デフォルトの名無しさん:2010/11/29(月) 21:56:47
>>620
骨子に加筆だとこんな感じかな
ttp://codepad.org/rzm6fznw

・ -n -s -v|h は複数回与えても良いが最後に指定されたモノが有効
・ -n -s はそれぞれ最低一回は指定されなければ駄目
・ -n -s の後に repeat や message が続かない場合はエラーになったりならなかったりする、厳密にチェックした方が良いのかな?

変な引数を与えて色々試して欲しい

631 :デフォルトの名無しさん:2010/11/29(月) 22:07:18
>>627
「遺伝的アルゴリズム」がさすのはかなり大雑把な意味になるので
多分お前のやってる授業とは食い違う答えしかでてこないがいいか?

あとどの2分木だよww用意された2分木の数字だけ入れ替える問題だよな?

632 :628:2010/11/29(月) 22:11:01
>>629
まず俺はあまり規格とか詳しくない。
昔よく見た、bool 関係の宣言をあまり考えず使ってる。
C言語 enum で検索すると、
数字省略時は0から順に振られるとあちこちにあるので、
大丈夫だとは思うけど、
enum { false=0, true }
にでもしとくかなぁ。
なんにしてもソースの変な部分を指摘して貰うのは助かるよ。
俺の場合そのために宿題スレの宿題やってるようなもんだ。

633 :デフォルトの名無しさん:2010/11/29(月) 22:13:24
それは全然大丈夫です!

画像の2分木でお願いしますw

634 :デフォルトの名無しさん:2010/11/29(月) 22:17:46
どの画像だよw

635 :デフォルトの名無しさん:2010/11/29(月) 22:19:02
>>627
要するに虫食い状態の逆ポーランド記法をGAで求めるということなのか?
で、その2分木はどの画像なんだ?

636 :デフォルトの名無しさん:2010/11/29(月) 22:20:34
[1] プログラミングC
[2] 5000以下の素数を1行に10個ずつ、画面に出力するC言語のプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Windows7
 [3.2] C言語
[4] 期限: 2010/11/30
[5] 配列などは習っていない。1行に10個ずつ表示する方法がわからない。

637 :デフォルトの名無しさん:2010/11/29(月) 22:20:47
そもそもGAを適用するような問題じゃないな
ブルートフォースの方が計算量が少なくなりそうだw

638 :デフォルトの名無しさん:2010/11/29(月) 22:26:49
>>634
すいませんwwww
貼り付けるの忘れてましたwwww

http://imepita.jp/20101129/769470

639 :デフォルトの名無しさん:2010/11/29(月) 22:28:51
>>636
http://codepad.org/F9WtRCVR

640 :デフォルトの名無しさん:2010/11/29(月) 22:38:10
遺伝的アルゴリズムについて根本的に間違えている気がする

641 :デフォルトの名無しさん:2010/11/29(月) 22:39:34
>627
これはGAではなくてGPを適用すべき問題

642 :デフォルトの名無しさん:2010/11/29(月) 22:41:08
>>640,641

ではとりあえずこの画像の時の解を
出すプログラムを教えてもらってもいいですか?

643 :デフォルトの名無しさん:2010/11/29(月) 22:56:06
>>626
http://codepad.org/Pume5sMQ
このようにしてみましたがうまくいきませんでした。
どこを修正すればよいか教えてください。
よろしくお願いします。

644 :デフォルトの名無しさん:2010/11/29(月) 23:04:01
>>643
40~41行目。
st_b->prev = st_a;
st_c->prev = st_b;

645 :デフォルトの名無しさん:2010/11/29(月) 23:12:04
>>644
ありがとうございました!

646 :デフォルトの名無しさん:2010/11/29(月) 23:26:03
>642
交叉したときに致死遺伝子がなぁとか思ってGPにしろとか言ったけど
良く見ると巡回セールスマンと同様の遺伝子コードにすればGAで解けるわ
まぁ、12/5までにはできると思う

647 :デフォルトの名無しさん:2010/11/29(月) 23:43:38
>>646
ありがとうございます!

648 :デフォルトの名無しさん:2010/11/30(火) 01:46:21
>>627
超適当
交差させる方法が思いつかなかったから単性生殖
2分木は何をさせたいのかイマイチ不明だからスルー
最小値が230かどうかは検算してない
http://codepad.org/irFqgtaJ

649 :デフォルトの名無しさん:2010/11/30(火) 02:11:16
一応総当りで最小値が230であることを確認
http://codepad.org/GHxHo32j

650 :デフォルトの名無しさん:2010/11/30(火) 02:12:28
>>648
ありがとうございます!
調子に乗ってもう1つお願いします。
さっきの応用みたいな感じなんですが、、、

[1] 授業単元: 情報
[2] 問題文(含コード&リンク):
以下の数字には2つの要素が含まれている。
1:2 5
2:3 1
3:4 2
4:4 2
5:5 3
6:3 6
7:6 2
8:9 2
9:8 1
10:7 4
「A」:下の2つの数字の左の数字を足し、右の数字は大きい方を選択
「B」:下の2つの数字の左の数字は大きい方を選択し、右の数字は足す
なのでこのグラフの解は左が35、右が10となる。
右の数字の制約は15以下とした時、左の数字の最小値を
1から10までの数字、枝、A、Bを入れ替えたりして、
遺伝的アルゴリズムを用いて求めよ。

どのようなプログラムになりますか?
[3] 環境
 [3.1] OS:Windows
 [3.2] 言語:C

651 :650:2010/11/30(火) 02:14:31
また画像を載せるのを忘れてしまったorz

http://imepita.jp/20101130/070050

652 :デフォルトの名無しさん:2010/11/30(火) 02:24:18
そういう問題なのか
じゃあ、>>648は見当違いだから忘れてくれ

653 :デフォルトの名無しさん:2010/11/30(火) 02:26:31
>>652
すいません・・・
よろしくお願いします!

654 :デフォルトの名無しさん:2010/11/30(火) 05:57:02
内容:
1] 授業単元:cプログラミング
[2] クイズゲームを作成する。
ファイル入出力についてどれだけ理解しているかを確かめる。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC9.0?(Visual Studio2008)
 [3.3] 言語: C
[4] 期限: 今日午前11時まで
[5] その他の制限:
画面上に問題を一文ずつ表示し、番号を入力させ答えさせる。
結果をtxtファイルで出力する。
なお、問題文はtxtファイルを作成しそれを読み込んで表示させる。

よろしくお願いします

655 :デフォルトの名無しさん:2010/11/30(火) 06:17:55
>>654
仕様が大雑把だが大丈夫か?

656 :デフォルトの名無しさん:2010/11/30(火) 07:44:54
>>654
結果とは入力された番号の事だろうか?
それとも問題のファイルが

2chは下らない 1)はい 2)いいえ 3)どうでも良い,3

みたいな形式になっていて 3 が入力された時に[正解]、それ以外の時に[不正解]とか出力するんだろうか?

657 :デフォルトの名無しさん:2010/11/30(火) 08:22:02
クイズとアンケート(調査)結果は違うだろw

658 :デフォルトの名無しさん:2010/11/30(火) 09:15:54
「文」をどう把握するかが問題だな。

659 :デフォルトの名無しさん:2010/11/30(火) 09:23:13
>ファイル入出力についてどれだけ理解しているかを確かめる。

だから、そこさえ押さえとけば細かい仕様はどうでもいいんじゃね?

660 :デフォルトの名無しさん:2010/11/30(火) 10:00:00
>>659
問題ごとにファイル一個か。ファイル名の管理が必要だね。

661 :デフォルトの名無しさん:2010/11/30(火) 10:01:29
1代目が立ったのはいつの事でしたか?

662 :デフォルトの名無しさん:2010/11/30(火) 10:11:05
>>1のwikiの素数のところの
int isPrime( int n )
{
int i;
if( n < 2 || n%2 == 0 ) return 0;
if( n == 2 ) return 1;
for( i = 3; i * i <= n; i += 2 ) if( n%i == 0 ) return 0;
return 1;
}
って、これだと2がはじかれちゃうんじゃ?

663 :デフォルトの名無しさん:2010/11/30(火) 10:16:03
>>662
よくぞ気づいた!

664 :デフォルトの名無しさん:2010/11/30(火) 10:21:14
配列データ
tmp[ 50 ][ 5 ]={ { 1,2,3,4,5 } , { 3,5,6,7,8 } , { 8,4,2,5,7} , ・・・ , [5,4,6,7,6} }
をdata.txtファイルに以下のように保存せよ

12345
35678
84257



54676

ファイルポインタの使い方が分かりません
どなたかお願いします

665 :デフォルトの名無しさん:2010/11/30(火) 10:27:01
>>662 うむ。誰が採用したか知らんが・・・実行してみれば気づいただろうに。
多分あいつだな、トーマス。

666 :デフォルトの名無しさん:2010/11/30(火) 10:30:02
>>662
その記述直されるときには、テンプレも
>>3の提案を反映してくれるといいなあ

667 :デフォルトの名無しさん:2010/11/30(火) 10:36:11
そもそも、使用する際に引数が n<2 である場合が稀だろうし
負数を考えないにしても、まずn>=2かそうでないかで分ければ良いかと。

668 :デフォルトの名無しさん:2010/11/30(火) 10:42:15
#include <stdio.h>

>>664
int tmp[4][5] =
{
  {1,2,3,4,5},
  {3,5,6,7,8},
  {8,4,2,5,7},
  {5,4,6,7,6},
};

int main(void)
{
  int i;
  char cmd[100];
  for(i=0; i<4; i++){
    sprintf(cmd, "echo %d%d%d%d%d | cat >> data.txt",
        tmp[i][0],tmp[i][1],tmp[i][2],tmp[i][3],tmp[i][4]);
    system(cmd);
  }
  return 0;
}

669 :デフォルトの名無しさん:2010/11/30(火) 10:44:57
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):コマンドライン./a.out <オプション> <引数1> <引数2>
について、<オプション>がcatのときは<引数1>の後ろに<引数2>を連結した文字列を返し、
<オプション>がcmpのときは両引数を比較し、同じ文字列の場合はsameを、異なる場合はdiffを表示するプログラムを作れ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:emacs
 [3.3] 言語:C
[4] 期限: 2010年12月1日10:00まで


670 :デフォルトの名無しさん:2010/11/30(火) 11:03:39
>>669
#include <stdio.h>
#include <string.h>

int main(int argc , char *argv[])
{
char *cmd[]={"cat","cmp"};
int i,flg;

if(argc<4) {
printf("オプションの指定と2つの文字列を入力して下さい。\n");
return 1;
}

for(i=0,flg=0; i<sizeof(cmd)/sizeof(cmd[i]); i++) if( !strcmp(argv[1],cmd[i]) ) {flg=i+1; break;}

switch(flg) {
case 0: printf("オプションが不適切\n");
break;
case 1: printf("%s%s\n",argv[2],argv[3]);
break;
case 2: printf("%sと%sは%s\n",argv[2],argv[3],strcmp(argv[2],argv[3])?"diff":"same");
break;
}

return 0;
}

671 :デフォルトの名無しさん:2010/11/30(火) 11:21:32
emacsってテキストエディタでしょ。それで編集したソースをコンパイルするコンパイラは別。

672 :デフォルトの名無しさん:2010/11/30(火) 11:23:22
>>671
最初からマクロ設定済みだったのかもしれん

673 :デフォルトの名無しさん:2010/11/30(火) 11:24:01
>>668
>>670
いじわるだな〜

674 :デフォルトの名無しさん:2010/11/30(火) 11:39:38
>>664
http://codepad.org/y5MGgE4f

でも次から>>1みてテンプレに従おうね

675 :デフォルトの名無しさん:2010/11/30(火) 11:48:45
>>673 何が意地悪なんだ???

676 :デフォルトの名無しさん:2010/11/30(火) 11:49:57
>>669 は文字列の比較、結合も配列あるいはポインタなどを使用して
標準ライブラリを使わず、それらの機能を持つ関数を自分で作成しろと?

677 :デフォルトの名無しさん:2010/11/30(火) 12:04:13
>>669
#include <stdio.h>
int mystrcmp(const char *s1 , const char *s2) {
while( *s1 ) { s1++; s2++; if(*s1!=*s2) break; }
return *s1-*s2;
}

int main(int argc , char *argv[]) {
char *cmd[]={"cat","cmp"};
int i,cmd_sz=sizeof(cmd)/sizeof(cmd[i]);

if(argc<4) {
printf("オプションの指定と2つの文字列を入力して下さい。\n");
printf("実行プログラム名 <オプション> <文字列1> <文字列2>\n");
printf("例:a.out cat abc def\n");
return 1;
}

for(i=0; i<cmd_sz; i++) if( !mystrcmp(argv[1],cmd[i]) ) break;

switch(i) {
case 0: printf("%s%s\n",argv[2],argv[3]); break;
case 1: printf("%sと%sは%s\n",argv[2],argv[3],mystrcmp(argv[2],argv[3])?"diff":"same");
break;
default : printf("オプションが不適切\n"); break;
}

return 0;
}

678 :デフォルトの名無しさん:2010/11/30(火) 12:08:53
>>677
while( *s1 ) { s1++; s2++; if(*s1!=*s2) break; }

while( *s1 ) { if(*s1!=*s2) break; s1++; s2++; }

最初の1文字が比較されてないし orz

679 :525:2010/11/30(火) 12:58:38
再びすみません>>525です。
>>575を実行したところ、一部文字化けしてしまいました。
特に日本語が全く表示されなかったのですが、プログラムの問題ではないでしょうか?
どのようにプログラムを書き換えれば文字化けしないようになりますか?
ちなみに日本語以外でも文字化けします。

680 :デフォルトの名無しさん:2010/11/30(火) 13:07:59
半角で10文字なら、2バイトの全角文字の1バイト分では正常に表示されない。
そこは仕様ってことで。

681 :デフォルトの名無しさん:2010/11/30(火) 13:31:15
>>669
http://codepad.org/xZYb4nGy

*tmpとか**tmpは、tmpが定数でありポインタではない事から、
どんな値を示すか分からず、未定義の動作となる

682 :デフォルトの名無しさん:2010/11/30(火) 13:32:00
×>>669
>>664

683 :デフォルトの名無しさん:2010/11/30(火) 13:44:45
>>681
http://codepad.org/W7q0YfAY

684 :デフォルトの名無しさん:2010/11/30(火) 13:48:19
>>683の親切心に和んだ。

685 :デフォルトの名無しさん:2010/11/30(火) 13:50:33
*tmpは未定義だろうけどsizeof(*tmp)は問題ないというわけか

686 :デフォルトの名無しさん:2010/11/30(火) 13:50:41
[]がシンタックスシュガーでしかないことを知らないなんて

687 :デフォルトの名無しさん:2010/11/30(火) 13:51:31
>>685
未定義じゃねーよw

688 :デフォルトの名無しさん:2010/11/30(火) 13:53:04
>>687
何を言ってるんだ?
じゃあ試しにprintf("%d\n", *tmp); ってやってみろよ
何が表示されるかわからないんだぞ
というより何が起きるか分からないと言った方がいいな

689 :デフォルトの名無しさん:2010/11/30(火) 13:54:22
ヒント:sizeofは演算子

690 :デフォルトの名無しさん:2010/11/30(火) 13:54:49
>>689
そんな事は既に分かっている

691 :デフォルトの名無しさん:2010/11/30(火) 13:56:46
int tmp[][5] == int (*tmp)[5]

*tmp == int [5]

**tmp == int

692 :デフォルトの名無しさん:2010/11/30(火) 14:02:18
>>688
printf("%08x %08x\n", *tmp, tmp[0]);

同じ値が表示されるだけだが

693 :デフォルトの名無しさん:2010/11/30(火) 14:02:47
そりゃな

694 :デフォルトの名無しさん:2010/11/30(火) 14:04:52
>>688は一つ勉強になりましたとさ

695 :デフォルトの名無しさん:2010/11/30(火) 14:11:16
◆QZaw55cn4c wwwwwwwwww

696 :デフォルトの名無しさん:2010/11/30(火) 14:12:11
%dにしちゃだめだよなw

697 :デフォルトの名無しさん:2010/11/30(火) 14:13:00
>>688
printf("%d\n", *tmp);
が表示されないって、そら
*tmpはポインタなのに%dで表示できるわけないだろ
こうすれば理解できるか?
printf ( "%d\n", (*(tmp+1))-*tmp ) ;

698 :デフォルトの名無しさん:2010/11/30(火) 15:20:47
[1] 授業単元:コンピュータ基礎
[2] 問題文(含コード&リンク):
キーボードから実数配列a[N][N]の各要素に値を入力し、すべての要素の総和を求めるプログラムを作成せよ。
ただし、総和を求める部分はmain関数と別の関数を作ること。(たとえばN=3とする)
(注)2次元配列の入力には注意が必要。
scanf("%if",&x);
a[i][j] =x;
のように2段構えの入力が必要になる場合もある。

[3] 環境
 [3.1] OS:windows 7
 [3.2] gcc
 [3.3] 言語:c
[4] 期限: 本日16:20まで
[5] その他の制限: なし

699 :デフォルトの名無しさん:2010/11/30(火) 15:26:30
#include <stdio.h>

#define N 3

double f(double a[N][N])
{
double ret = 0;
int i, j;

for(i = 0; i < N; i++) for(j = 0; j < N; j++) ret += a[i][j];

return ret;
}
int main(void)
{
int i, j;
double a[N][N], sum;

for(i = 0; i < N; i++) for(j = 0; j < N; j++) scanf("%lf", a[i] + j);

sum = f(a);

printf("%f\n", sum);

return 0;
}

700 :デフォルトの名無しさん:2010/11/30(火) 17:46:43
[1] 授業単元:
[2] 問題文(含コード&リンク)
:文字列をプレイヤーごとに入力し、それらを数値化し比較することにより勝敗を決するゲームを作成する。
処理内容:・プレイヤーについて
1、ゲームは2人のプレイヤーで行う。
2、各プレイヤーは名前、体力、攻撃力、防御力の情報を持っている。
3、プレイヤーの各情報は、入力された名前から設定する。
・ルールについて
1、各プレイヤーは互いに文字列の入力を行う。
2、入力文字列を数値化し比較を行う。
3、数値の大きいプレイヤーが相手側にダメージを与える。
4、最大ターンは10ターンよする。
・終了条件について
1、どちらかの体力がなくなる。
2、10ターンで勝負がつかなかったら引き分けで終了。
[3] 環境
 [3.1] OS:Windows
 [3.2] Visual studio
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([2010年12月02日まで]


[5]構造体を使用して作成すること

よろしくお願いします。

701 :デフォルトの名無しさん:2010/11/30(火) 18:09:28
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
aの平方根は面積がaとなる正方形の一片を求めることと等しい。
今、その一辺をxとし、まずaに適当な初期値を設定する。
この場合、xが一辺とすると面積がaになるためには他編はa/xでなければならない。
最終的にx = a/xになるためには他編はa/xになればよいので、次にxとしてこの2辺の平均つまり(X+a/x)/2を設定し、再度他辺を計算しなおす。
そしてまたその平均をxに設定して繰り返すことにより面積がaとなる正方形の一片を求められる。
この繰り返しを10回行って、与えたaの平方根を求めるプログラムを作り、実際に10の平方根をxの初期値を2とした実行を作りなさい。
[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン:VC10.0
 [3.3] 言語:C++
[4] 期限:12/3
[5] その他の制限:特になし

実際にやってみましたが色々わかりません。よろしくお願いしますorz

702 :デフォルトの名無しさん:2010/11/30(火) 18:18:31
#include <stdio.h>

int main(void)
{
int i;
double a = 10.0, x = 2.0;

for(i = 0; i < 10; i++) x = (x + a / x) / 2;

printf("%f\n", x);

return 0;
}

703 : ◆QZaw55cn4c :2010/11/30(火) 18:36:39
>>702
>[3.3] 言語:C++

704 :デフォルトの名無しさん:2010/11/30(火) 18:40:13
>>702でもC++の範疇に入ってるだろ
それとも◆QZaw55cn4cの馬鹿はstd::coutとかを使わないと不満なのか?(笑

705 :デフォルトの名無しさん:2010/11/30(火) 18:40:16
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):ニュートン法と二分法の両方を用いて、直線y=x+1/2と単位円x^2+y^2=1の交点の座標の近似解(小数点6位まで)を求めよ。
              1つのプログラムに書くこと。(ニュートン法と二分法に関する箇所はmain関数から独立させよ)
              ニュートン法も二分法もともに何回で収束したかがわかるようにせよ。
              関数へのポインタは必ず使うこと。  
[3] 環境
 [3.1] OS: mac os x
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 今日の夜12時までです。
[5] その他の制限: 特になし。

結構こまってます。お願いします。


706 :デフォルトの名無しさん:2010/11/30(火) 18:40:30
宿題スレの言語:C++はほぼCと同義だと何度言えば

707 : ◆QZaw55cn4c :2010/11/30(火) 18:49:02
>>704

>>702
>#include <stdio.h>

708 : ◆QZaw55cn4c :2010/11/30(火) 18:51:40
>>705
>>585 >>590 >>595

709 :デフォルトの名無しさん:2010/11/30(火) 18:52:32
宿題の解答としては良くないが、C++としてはなんの問題もないな

710 :デフォルトの名無しさん:2010/11/30(火) 18:53:47
iostream.h とか書いてた時代の人?

711 :デフォルトの名無しさん:2010/11/30(火) 18:56:00
>>700
ttp://codepad.org/kRaqFu8X
・時間が無いから凝らないよ
・工夫されたし

712 :デフォルトの名無しさん:2010/11/30(火) 19:00:08
◆QZaw55cn4cは叩かれすぎて荒らしになっちゃった可哀想な人なんだよ
◆QZaw55cn4cが叩かれたのはこんな程度のミスじゃすまないものが原因だったのになw

713 :デフォルトの名無しさん:2010/11/30(火) 19:01:40
>>707
へえーC++のプログラムにstdio.hって使ったらだめなんだ〜
初めて聞いた

それともcstdioを使えって?

◆QZaw55cn4cはC++の知識がほとんどない事がはっきりしました

714 :デフォルトの名無しさん:2010/11/30(火) 19:07:05
>>712
いや俺は◆QZaw55cn4cは元々荒らしだと思うけどね
自己評価が不当に高い癖に能力がそれに見合ってないもん
叩かれて当然

715 : ◆QZaw55cn4c :2010/11/30(火) 19:08:56
>>709
>>713
ISO/IEC 14882:2003
The facilities of the Standard C Library are provided in 18 additional headers, as shown in Table 12:
Table 12?C + + Headers for C Library Facilities
<cassert> <ciso646> <csetjmp> <cstdio> <ctime>
<cctype> <climits> <csignal> <cstdlib> <cwchar>
<cerrno> <clocale> <cstdarg> <cstring> <cwctype>
<cfloat> <cmath> <cstddef>
#inclue <stdio.h> と書いて問題ないのはコンパイラ依存のはず。

716 :デフォルトの名無しさん:2010/11/30(火) 19:11:32
トリつける前とか、頭の悪さは今とかわらないけど、今ほど攻撃的でもなかったよ

717 :デフォルトの名無しさん:2010/11/30(火) 19:13:00
>>715
質問者の環境であるVCだと.cppとして問題なくコンパイルできる

718 : ◆QZaw55cn4c :2010/11/30(火) 19:16:49
>>717
了解。


719 :デフォルトの名無しさん:2010/11/30(火) 19:30:26
皆さんありがとうございます!
なんか私の宿題で荒れてしまって申し訳ないです…

720 : ◆QZaw55cn4c :2010/11/30(火) 19:32:33
>>719
荒らすつもりはありませんでしたが、些細な問題を攻撃的に書いてしまいました。こちらこそ、ごめんなさい。

721 :デフォルトの名無しさん:2010/11/30(火) 19:46:51
◆QZaw55cn4cは口で謝っても反省はしないからなー
何度も要らん事言い出して波風を立てる

722 :デフォルトの名無しさん:2010/11/30(火) 20:29:07
>>711
ありがとうございました!!!!


723 :デフォルトの名無しさん:2010/11/30(火) 20:29:35
>>717>>718
バーカ
それを必ず使う必要はないんだよ
std名前空間に包まれるだけの話
お前恥ずかしいからもうC++の話すんな

724 :デフォルトの名無しさん:2010/11/30(火) 20:30:53
×>>717
>>715

規格を持ち出すなら、「必ずC++はそれを使わなければならない」という時に出せ
使っても使わなくてもいい時に出すとか頭が悪すぎる

725 :デフォルトの名無しさん:2010/11/30(火) 20:31:06
流れ変えがてら先生方お願いします

[1] 授業単元:C言語
[2] 問題文(含コード&リンク):main関数中の実数配列(要素数は任意)の要素の平均と分散を計算してmain関数にその結果を返し、
main関数でその結果を表示するmain関数と平均、分散を計算する関数を作り、下の例について実行しなさい。

データ{50.0, 62.0, 80.0, 90.5, 99.5}

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




726 :デフォルトの名無しさん:2010/11/30(火) 20:32:00
>>#inclue <stdio.h> と書いて問題ないのはコンパイラ依存のはず。

へーえその文が規格書のどこに書いてあるんですかあ?出してみて下さいよ〜?

727 :デフォルトの名無しさん:2010/11/30(火) 20:41:07
>>630
ありがとうございます。
厳密なチェックは、あったほうがうれしいです。
失礼ですが、プログラムを全体的に説明して頂いてもいいですか?


728 : ◆QZaw55cn4c :2010/11/30(火) 21:36:41
>>702
>>723 >>726

大変失礼致しました。

確かに、
ISO/IEC 14882:2003 Annex D
D.5 Standard C library headers [depr.c.headers]
1 For compatibility with the Standard C library, the C + + Standard library provides the 18 C headers, as shown
in Table 100:
<assert.h> <iso646.h> <setjmp.h> <stdio.h> <wchar.h>
<ctype.h> <limits.h> <signal.h> <stdlib.h> <wctype.h>
<errno.h> <locale.h> <stdarg.h> <string.h>
<float.h> <math.h> <stddef.h> <time.h>
と、規格の中ではっきりと「提供されている」と明言されていました。

729 :デフォルトの名無しさん:2010/11/30(火) 21:37:59
>>728
ばーかばーか、馬鹿ちょんちょん

730 :デフォルトの名無しさん:2010/11/30(火) 22:05:53
>>728
ほんとに失礼だと思うなら、半年ROMれ

731 :デフォルトの名無しさん:2010/11/30(火) 22:08:24
>>662-666
何が問題なのか理解できんのだが。

732 :デフォルトの名無しさん:2010/11/30(火) 22:11:31
基礎からやり直せ

733 :デフォルトの名無しさん:2010/11/30(火) 22:17:07
>>731
>>662に何が問題か書いてあるだろw

734 :デフォルトの名無しさん:2010/11/30(火) 22:41:18
>>733
2は素数だよね。戻り値1で何がおかしい?

735 :デフォルトの名無しさん:2010/11/30(火) 22:42:48
>>734
2/2の余りがいくつになるか計算してみるんだ

736 :731:2010/11/30(火) 22:49:52
>>735
ごめん勘違いだ。
wikiつーから、レスの内容よく見ずにここ↓見て
http://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E5%88%A4%E5%AE%9A
何でダメ? 見たいな思考になってた。
こっちね。
http://www23.atwiki.jp/homework/pages/27.html

737 :デフォルトの名無しさん:2010/11/30(火) 22:53:02
">>1のwiki"って書いてあるやん

738 :デフォルトの名無しさん:2010/11/30(火) 22:59:51
すまん、よくある問題にコピペするときにチェックしてなかった
家に帰ったら修正するよ。いや誰か暇な人修正してくれよ

Cの宿題の方でコメントアウトされてる古いヤツは平気なんだけどな
なんで書き換えられたんだろう

739 :デフォルトの名無しさん:2010/11/30(火) 23:02:29
ソースも読めないバカと、レスもまともに読めないバカ
どっちもたいして変わりはしないよw

740 :デフォルトの名無しさん:2010/11/30(火) 23:11:25
>>650
>>651
なんですけど、14日くらいまでにお願いします

741 :デフォルトの名無しさん:2010/11/30(火) 23:40:24
>>725
http://codepad.org/6b2k6Ywd

742 :デフォルトの名無しさん:2010/12/01(水) 00:29:59
>>639
ありがとうございます!

743 :デフォルトの名無しさん:2010/12/01(水) 01:01:28
>>727
厳密なチェックを付けようとして気が付いたんだけど
vhswitch -n 5 -s "ABCD" とした時、argv[4] には ABCD が格納される
すなわち、引数を " で括った場合、" は削除されてしまうようだ
これでは文字列であるかのチェックはできないから厳密なチェックはできない
>>630 では " で括られた場合、それを外す処理を書いたけど無駄だったので削除した
追加したチェックは以下
・ -n の後のパラメータに 0 〜 9 以外が出現した場合はエラー
・ -s の後のパラメータ先頭が - だった場合はエラー(これは不要かも知れない)

プログラムに大量のコメントを付加したの説明に代えさせて欲しい
なお、4カラムタブで揃えたつもりなのでエディターの設定を調整する事

ttp://codepad.org/r7lXeer8

744 :725:2010/12/01(水) 06:47:07
>>741

有り難うございます先生!

745 :デフォルトの名無しさん:2010/12/01(水) 08:41:11
>>736 >>731 コードを実行すりゃ分かるのに・・・(・∀・)ニヤニヤ

746 :デフォルトの名無しさん:2010/12/01(水) 11:05:02
>>743
フラグ多いな

747 :デフォルトの名無しさん:2010/12/01(水) 11:06:04
[1] 授業単元:C言語
[2]
1.コピー元のファイル名とコピー先のファイル名を指定すると、ファイルの内容をコピーするプログラムを作成せよ。コピー元のファイルが存在しない場合と、コピー先が存在する場合は、その旨のメッセージを表示し処理を中止するようにせよ。
例:mycopysource.txt dest.txt
→source.txtの内容がdest.txtにコピーされる。
2.コマンドラインでファイル名、年、月を指定し、そのファイルにその年・月のカレンダーを出力するプログラムを作成せよ。
例:calendar cal1012.txt 2010 12
→ファイルcal1012.txt に2010年12月のカレンダーを出力する(このファイルも添付して提出すること)


[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:12月5日
[5] 難しいのはだめです

748 :デフォルトの名無しさん:2010/12/01(水) 11:14:18
>>713 のような稚拙な揚げ足取りって恥ずかしいよな。ここの連中は知能が低い。
まっ、相手がレベルが低いからレベルの低い自分でも通用すると自覚しているんだろうけど。

749 :デフォルトの名無しさん:2010/12/01(水) 11:17:52
◆QZaw55cn4c本人乙

750 :デフォルトの名無しさん:2010/12/01(水) 11:17:57
C++と指定してあるのに、使用するヘッダやライブラリがC言語のみで
C++コンパイラでもC言語のコードがコンパイルされるからという屁理屈は
小学生レベルの屁理屈。恥ずかしいからレスするなよ、C++も使えない奴を馬鹿にしておきながら
C言語がまともに使えないバカ造。

751 :デフォルトの名無しさん:2010/12/01(水) 11:19:24
>>748
>>702-703から、よく読み直せ
読んでから書かないと,恥をかくのはお前だと思うが

752 :デフォルトの名無しさん:2010/12/01(水) 11:22:46
残念、本人じゃねーし。お前らがそのコテハンを叩く理由は分かるが
叩いている理由があまりにも稚拙。頭おかしいんじゃねーの?
引きこもりニート?このスレが自分のテリトリー?寂しい人生送ってんなぁ。

753 :デフォルトの名無しさん:2010/12/01(水) 11:25:59
>>752
>ここの連中は知能が低い。

お前って粘着だな

754 :デフォルトの名無しさん:2010/12/01(水) 11:32:04
C++の標準ライブラリなどを見てこい。printf、scanffがあるなら
その項目を提示しろ、C++しか使えない池沼共。お前らがC言語を語る方が厚かましいわ。

755 :デフォルトの名無しさん:2010/12/01(水) 11:41:12
>>754
C++はCの上位互換として開発された
C99などの新しい機能を除いて
C標準ライブラリがC++でも提供されることは規格で保証されている

756 :デフォルトの名無しさん:2010/12/01(水) 11:47:26
ここ、宿題スレですが?言語の仕様に関しては別のスレでやれよ、日本語が通じない池沼共。

757 :デフォルトの名無しさん:2010/12/01(水) 11:47:47
>>754
こんな低脳な煽りは見たのは初めてだ
C++が使えるという事は当然Cも使えるという事が全く分かってないのが丸わかり

◆QZaw55cn4cに間違いない

758 :デフォルトの名無しさん:2010/12/01(水) 11:50:43
>>754 ばーか。
>>728

> scanff
非ASCII文字は識別子に使えないから、これは無いけどな。w

759 :デフォルトの名無しさん:2010/12/01(水) 11:52:21
宿題に答える気がないなら失せろ、池沼

760 :デフォルトの名無しさん:2010/12/01(水) 11:55:21
>>754 ばーか


> C++の標準ライブラリなどを見てこい。printf、scanffがあるなら

ISO/IEC 14882:2003

Table 94懼Header <cstdio>

Functions:
clearerr fgets fscanf gets rename tmpfile
fclose fopen fseek perror rewind tmpnam
feof fprintf fsetpos printf scanf ungetc
ferror fputc ftell putc setbuf vfprintf
fflush fputs fwrite putchar setvbuf vprintf
fgetc fread getc puts sprintf vsprintf
fgetpos freopen getchar remove sscanf

761 :デフォルトの名無しさん:2010/12/01(水) 11:56:11
scanffか、初めて聞く関数名だな
scanfなら分かるんだけどw

762 :デフォルトの名無しさん:2010/12/01(水) 12:00:59
そういや、現行標準CであるC89の機能を説明するのに、筋違いのC99の
規格票を引っ張り出して顔を真っ赤にしているアホもいたな

763 :デフォルトの名無しさん:2010/12/01(水) 12:13:26
#include <stdio.h> 以下Cの標準ライブラリのみでC++を記述したなんて言ったら
世界中で大笑いされますよ。

764 :デフォルトの名無しさん:2010/12/01(水) 12:18:32
引っ込みがつかないのは分かるがいい加減消えた方がいいんじゃないか?

765 :デフォルトの名無しさん:2010/12/01(水) 12:19:48
互換ありなんだから当たり前だろって無視されるだけ

766 :デフォルトの名無しさん:2010/12/01(水) 12:20:55
スレタイが読めない小学生以下の池沼は早くまともに働けよw

767 :デフォルトの名無しさん:2010/12/01(水) 12:26:34
「C/C++」の宿題を片づけます、がスレタイなんだけどな

Cしか使えない馬鹿はそろそろ引っ込めよw

>>763
出題意図がC++を指定してあっても実際上Cなんだから仕方がない
何回iostreamやalgorithmを使わないでくれとお願いされたか分からねーや

768 :デフォルトの名無しさん:2010/12/01(水) 12:27:58
> #include <stdio.h> 以下Cの標準ライブラリのみ
この表現だけで世界中で大笑いだぜ。以下ってなんだよ。w

769 :デフォルトの名無しさん:2010/12/01(水) 12:31:05
C++と書いてあるからcoutで出力したら
「すみません、printfでお願いします」と言い出す輩のなんと多いことか
とくにコンパイラVSの言語:C++はとくに信用ができない
C++コンパイラを使ってCの授業をしていることすら理解してない奴には
○○を使ってと特に注釈が無い限り標準Cで書いてあげるのがむしろ親切

770 :デフォルトの名無しさん:2010/12/01(水) 12:36:33
スレタイが読めませんか?
最新は>>747だが、課題に答える気がないのにレスしている池沼は何者だ?
暇人は早く死ね

771 :デフォルトの名無しさん:2010/12/01(水) 12:39:51
>>770
おやおやw
顔が真っ赤ですよwwww

772 :デフォルトの名無しさん:2010/12/01(水) 12:43:01
答えたくても「そんなのC++じゃねー」とほざくバカが粘着してるからな。
バカが死滅するまでうかつに答えられない。

773 :デフォルトの名無しさん:2010/12/01(水) 12:48:47
無駄なレスをして、このスレに何しにきているんですか?暇人の老いぼれ爺

774 :デフォルトの名無しさん:2010/12/01(水) 12:48:49
この流れだとsystem使ってコピーして
そんなのC言語じゃねーって言われるやつが出て来るな

775 :デフォルトの名無しさん:2010/12/01(水) 12:50:11
>>773
ageて書く奴は一人しかいないんでIDが表示されてなくても誰だか
分かっちゃいますなあw

776 :デフォルトの名無しさん:2010/12/01(水) 12:51:09
役に立たない癖に、弱そうな相手を見つける叩く奴ってキモイよな
現実世界で自分がまともに相手にされていなから、こんな場所で
見えない敵を叩くんだぜ。2ちゃんしか人生の楽しみがない引きこもり。
いい加減、スレ違いなんで言語の仕様についてはそれ専用の別スレでやれ。
邪魔、迷惑。

777 :デフォルトの名無しさん:2010/12/01(水) 12:52:21
>>776
じゃあ>>747をお前がやってお前が役立たずでない事をさっさと証明してみせろ
今すぐに1分以内に答えろ

778 :デフォルトの名無しさん:2010/12/01(水) 12:54:54
自分がスレ違いな言動をしていると自覚があるなら失せろ、引きこもりニートの屑
無納税者か?社会のお荷物。早く死ねよ。

779 :デフォルトの名無しさん:2010/12/01(水) 12:56:21
自分でスレ違いの話題で荒らしておいて
形勢不利と見るやスレ違いだから止めろって言ってるのか?w

780 :デフォルトの名無しさん:2010/12/01(水) 12:58:00
>>779
どうやらそうみたいだな
>>778
クズはお前だろ
無納税者はお前だろ
社会のお荷物はお前だろ

781 :デフォルトの名無しさん:2010/12/01(水) 13:03:42
>>776
現実社会で相手にされなくて、逃げ込んだ先の場末のスレでも叩かれて、
スレ違いの荒らし行為を続けてるんだね。かわいそう。

お前、回答能力無いバカのくせに、なんのためにこのスレに粘着してるんだ?

782 :デフォルトの名無しさん:2010/12/01(水) 13:06:32
これが◆QZaw55cn4c脳って奴だ
皆よく見ておけよ
廃人とはこういう奴の事を言うんだ

783 :デフォルトの名無しさん:2010/12/01(水) 13:08:16
スレに関係のないレスをしている池沼は早く死ねよ

784 :デフォルトの名無しさん:2010/12/01(水) 13:08:50
>>783
お前がな

785 :デフォルトの名無しさん:2010/12/01(水) 13:09:47
>>777
他人に命令ってw 口先だけの屑が何言ってんの?w
お前が答えたお前が役立たずじゃないところを証明したら?
罵詈雑言だけででけぇ面している役立たず ( ´,_ゝ`)プッ

786 :デフォルトの名無しさん:2010/12/01(水) 13:09:59
下記
http://codepad.org/kVS2IbxH
このプログラムにおいてどちらかの方法で値が収束しないはずなのに収束するのはなぜなんでしょうか?

787 :デフォルトの名無しさん:2010/12/01(水) 13:12:25
>>747
http://codepad.org/rRohipcq
http://codepad.org/bL5K1TJa

788 :本日の池沼:2010/12/01(水) 13:14:03
777 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/01(水) 12:52:21
>>776
じゃあ>>747をお前がやってお前が役立たずでない事をさっさと証明してみせろ
今すぐに1分以内に答えろ
今すぐに1分以内に答えろ
今すぐに1分以内に答えろ
今すぐに1分以内に答えろ
今すぐに1分以内に答えろ
今すぐに1分以内に答えろ

1分以内に自分が答えられない癖に、偉そうにするだけの役立たず
このスレに何しに来ているんだろうね ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

789 :デフォルトの名無しさん:2010/12/01(水) 13:24:23
この連投キチガイと◆QZaw55cn4cは犬猿の仲なのになw

790 :デフォルトの名無しさん:2010/12/01(水) 13:26:05
>>785
低脳が昼間から笑かしてくれるww

791 :デフォルトの名無しさん:2010/12/01(水) 13:28:12
名前が素直過ぎてフイタ

792 :デフォルトの名無しさん:2010/12/01(水) 13:42:02
+
      +         +     +
  +
.      / ̄\  +.  ∧_∧アハハハ  +
ノリカエセヨー( ´∀`)    (´∀` )
      (つ  つ     (つ  つ■
.   +  ( ヽノ      ( ヽノ        +
      し(_)      し(_)


793 :デフォルトの名無しさん:2010/12/01(水) 13:44:09
荒れてる(´・_・`)

794 :デフォルトの名無しさん:2010/12/01(水) 13:56:59
>>787
thx
荒れてて大変ななかsry


795 :この板で何がしたいのか分からないクソガキ:2010/12/01(水) 15:54:43
http://hibari.2ch.net/test/read.cgi/tech/1289715349/259

796 :デフォルトの名無しさん:2010/12/01(水) 15:56:50
◆QZaw55cn4c が名無しで自分に対抗していると勘違いしている池沼が
このスレで宿題に答えもせず、C++が使えないことを罵倒しているが
自分こそがC/C++について碌に理解していないことを知られて顔が真っ赤w

797 :デフォルトの名無しさん:2010/12/01(水) 15:57:29
>>795
ファビョっってプログラム板を荒らし始めましたよこの◆QZaw55cn4cの馬鹿は

798 :デフォルトの名無しさん:2010/12/01(水) 16:05:57
宿題に答える気がないならレスするなよ、池沼。
お前が俺を◆QZaw55cn4cと勘違いしているんだろうけど別人。
お前らの争いが邪魔なんだよ!死ねよクソガキ

799 :デフォルトの名無しさん:2010/12/01(水) 16:07:14
と、顔を真っ赤にした馬鹿がファビョっております

800 :デフォルトの名無しさん:2010/12/01(水) 16:10:05
宿題に答える気がないならレスするなよ、知能は小学生未満のガキ

801 :デフォルトの名無しさん:2010/12/01(水) 16:12:02
この連投キチガイは◆QZaw55cn4cが荒らしになった原因の一つでもある

802 :デフォルトの名無しさん:2010/12/01(水) 16:18:45
>>800
おまえがな

803 :デフォルトの名無しさん:2010/12/01(水) 16:22:35
◆QZaw55cn4c に粘着しているこの池沼って1日中このスレに貼り付いてんの?
引きこもりニート確定じゃんwwwwwww きもっ。仕事がないんでちゅか?

804 :デフォルトの名無しさん:2010/12/01(水) 16:31:38
と、引き籠もりニートが自己紹介をしております

805 :デフォルトの名無しさん:2010/12/01(水) 16:36:06
             +
        +          +
   アハハハ+
  +  ∧_∧  .+  / ̄\      .+
    ( ´∀`)    (´∀` )ノリカエセヨー
  ■⊂、 ⊂)     ⊂、 ⊂)      +
     ヽ 人       ヽ 人  
     (_)J       (_)J

806 :デフォルトの名無しさん:2010/12/01(水) 17:37:35
荒れてますなぁ

807 :デフォルトの名無しさん:2010/12/01(水) 17:43:36
スレタイが読めない文盲の低学歴が一匹いるな。C++が使えることが
自分が生きる上で他人に誇れることらしいw

808 :デフォルトの名無しさん:2010/12/01(水) 17:48:39
日本語でおk

809 :デフォルトの名無しさん:2010/12/01(水) 17:48:53
688 名前: デフォルトの名無しさん [sage] 投稿日: 2010/11/30(火) 13:53:04
>>687
何を言ってるんだ?
じゃあ試しにprintf("%d\n", *tmp); ってやってみろよ
何が表示されるかわからないんだぞ
というより何が起きるか分からないと言った方がいいな


810 :デフォルトの名無しさん:2010/12/01(水) 17:50:25
>>809
お前の失態を晒してどうするんだ?

811 :デフォルトの名無しさん:2010/12/01(水) 17:54:45
>>810
お前の失態だろカスw

812 :デフォルトの名無しさん:2010/12/01(水) 17:59:47
>>811
は?お前アホか?

813 :デフォルトの名無しさん:2010/12/01(水) 18:00:59
いいぞ、もっとやれw

814 :デフォルトの名無しさん:2010/12/01(水) 18:01:58
>>813
うっせーカス。

815 :デフォルトの名無しさん:2010/12/01(水) 18:04:58
IDが無いから罵倒している方が混乱しているなw
見えない敵を叩く池沼w

816 :デフォルトの名無しさん:2010/12/01(水) 18:07:21
>>815
お前もなw

817 :デフォルトの名無しさん:2010/12/01(水) 18:08:03
+
      +         +     +
  +
.      / ̄\  +.  ∧_∧アハハハ  +
ノリカエセヨー( ´∀`)    (´∀` )
      (つ  つ     (つ  つ■
.   +  ( ヽノ      ( ヽノ        +
      し(_)      し(_)

818 :デフォルトの名無しさん:2010/12/01(水) 18:16:29
>>816
意味不明。俺は罵倒してねーし。

819 :デフォルトの名無しさん:2010/12/01(水) 18:17:57
俺も罵倒してねーし。意味分かったか?

820 :デフォルトの名無しさん:2010/12/01(水) 18:24:08
自己評価が低いメンヘラはこれだから厄介だよなあ
プログラム板に来て欲しくない
すごく迷惑

821 :デフォルトの名無しさん:2010/12/01(水) 18:37:46
>>819
今さっき、別の奴と罵倒し合ってたじゃねーかよwwwww
嘘つき。IDが無いからってやりたい放題やるなよ、池沼

822 :デフォルトの名無しさん:2010/12/01(水) 18:38:50
>>820
http://d.hatena.ne.jp/keyword/%A5%E1%A5%F3%A5%D8%A5%E9
そういう言葉を使っているお前が一番迷惑、2ちゃんねらーってマジキモイよな

823 :デフォルトの名無しさん:2010/12/01(水) 18:40:19
[1] 授業単元:C演習2
[2] 問題文(含コード&リンク):
double 型の実部、虚部から構成される倍精度複素数の構造体を定義し、入力した2つの
複素数の和差積商を算出するプログラムを作成しなさい
[3] 環境
 [3.1] OS: windows vista
 [3.2] コンパイラ名とバージョン: visual studio 2008
 [3.3] 言語:C
[4] 期限:12/3
[5] その他の制限:構造体を定義する


なんか荒れてる中ですけどお願いします・・・

824 :デフォルトの名無しさん:2010/12/01(水) 18:41:10
>>822
お前もここに書き込んでいる以上2ちゃんねらーだからキモいんだけどな

825 :デフォルトの名無しさん:2010/12/01(水) 18:50:07
>>650
>>651
ですけど、3日が締め切りみたいです。
皆様よろしくお願いいたします。

826 : ◆QZaw55cn4c :2010/12/01(水) 19:34:43
>>823
http://codepad.org/0V0SZgOa

>>729-825
なにがあったんですか?

827 :デフォルトの名無しさん:2010/12/01(水) 21:28:42
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):木構造を使ってソートを行うプログラム。
元ソースがありこれは根ノードの数値の大きさが中、左の部分木の数値の大きさが小、右の部分木の数値の大きさが大、
となるようなプログラム。いわゆる中間順。
これを改造し根が小、左が中、右が大となるようなツリーを作る問題。
ただし、左に一直線や右に一直線といった偏ったツリーはNG。
元ソース:http://codepad.org/evknVwg3
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年12月3日
[5] その他の制限:なし
宜しく御願いします

828 :デフォルトの名無しさん:2010/12/01(水) 21:32:48
>>823
なんか無理やり構造体でひねくれて考えてみた
例で加算減算のみ
反省はしていない

template <typename T>
struct BaseComplex
{
T re;
T im;
};
template <typename BT>
class TComplex:public BaseComplex<BT>
{
public:
TComplex(){re=0;im=0;};
TComplex(BT datRe, BT datIm){re=datRe;im=datIm;};
virtual ~TComplex(){};
TComplex& operator=(const TComplex& dat){
re=dat.re; im=dat.im;
return *this;
}
inline TComplex operator+(const TComplex& x){
return TComplex( re+x.re, im+x.im );
}
inline TComplex operator-(const TComplex& x){
return TComplex( re-x.re, im-x.im );
}
};


829 :デフォルトの名無しさん:2010/12/01(水) 21:37:19
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
 http://codepad.org/1OmvxbOE
 上記ソースファイルに下記の関数を追加し、
 /* ソート関数呼び出し位置 */ で関数を呼び出しプログラムを完成させなさい。
 (1) バブルソートを実現する BSort 関数
 (2) クイックソートを実現する QSort 関数
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: MinGW gcc
 [3.3] 言語:C
[4] 期限:12/3
[5] その他の制限:無し

830 :デフォルトの名無しさん:2010/12/01(水) 21:55:20
[1]授業単元:OS
[2]問題:

Cygwinで解答を作成してください.
1. 引数にファイル名を指定すると,
そのファイルのサイズとファイルの種類(一般ファイル,ディレクトリ,パイプ等),
そして最終変更時刻を表示するコマンド(fviewという名称とする)を作成せよ.
ただし,引数には,複数のファイルを指定できるようにすること.
また,fstatを用いること.

実行
$ fview aaa.txt bbb.txt ccc.txt …
ヒント
ファイルの種類は,fstat構造体メンバのst_modeの上位4ビットで表わされる.


831 :デフォルトの名無しさん:2010/12/01(水) 21:56:01
2. 引数に指定した複数のテキストファイルの内容を結合して,
一つのファイルにまとめるコマンド(catfilesという名称とする)を作成せよ.
ただし,まとめた内容を格納するファイル名は,“concat.txt”とすること.
ただし,catコマンドをsystem関数の内部で呼ぶような構成は認めない.
システムコールとしては,open,close,read,writeを用いること.
また,結合してまとめた結果を格納するファイルが存在しない場合には,
creatシステムコールを用いて生成すること.

実行
$ catfiles aaa.txt bbb.txt ccc.txt …

[3] 環境
 [3.1] OS:Windows 7
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語: C
[4] 期限:2010年12月3日

よろしくお願いします!!!

832 :デフォルトの名無しさん:2010/12/01(水) 22:00:24
>>828
問題の制約を読めないバカは引っ込んでいなさい。

833 :デフォルトの名無しさん:2010/12/01(水) 22:38:15
>>824
反論が稚拙。言葉の使い方が問題なんだが・・・やっぱり池沼は自覚症状がないんだな。

834 :デフォルトの名無しさん:2010/12/01(水) 22:42:57
>>832
口先だけで答えようとしない役立たずはレスしないでさっさとこの世から去れ
死ねよゴミ。生活保護だろ、お前?

835 :デフォルトの名無しさん:2010/12/01(水) 22:43:28
>>832
構造体使う、宣言時に倍数精度になるで満たしてるぞ

まあ、さぞかし頭いい人がここにいるみたいだからもう2度と来ない

お前一人で回答がんばれ

836 :デフォルトの名無しさん:2010/12/01(水) 22:45:22
>>835
>[3.3] 言語:C

これが目に入らないとは・・・

837 :デフォルトの名無しさん:2010/12/01(水) 22:46:16
おかしいですね、朝からギャーギャーこのスレで見えない敵を罵倒しているだけの役立たずは
まだ回答されていない課題があるのに、それには1つも手をつけない。
自分が口先だけの役立たずだって証明しているようなもんだろ。
このスレに何しに来てるの?口だけの役立たず ( ´,_ゝ`)プッ

838 :デフォルトの名無しさん:2010/12/01(水) 22:47:40
>>829-831 に課題がありますが、誰も答えてませんね。
1日中張り付いている生活保護のC++プログラマーさんがやってやればぁ?
解けもしないのに、C++が使えることが自慢だそうですw

839 :デフォルトの名無しさん:2010/12/01(水) 22:54:09
あれ?回答しないの?自分はC++は使えますがC言語は出来ませんってか?
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

840 :デフォルトの名無しさん:2010/12/02(木) 00:01:38
>>835
ばーか。

[3.3] 言語:C

841 :デフォルトの名無しさん:2010/12/02(木) 00:15:13
スレタイが読めない文盲ってこのスレに何しに来てんの?
無駄にスレが伸びて邪魔なんだけど。

842 :デフォルトの名無しさん:2010/12/02(木) 00:44:22
>>841
おまえが言うな。バカ。

843 :デフォルトの名無しさん:2010/12/02(木) 02:51:19
未回答問題を抽出する上手い方法って何かない?

844 :デフォルトの名無しさん:2010/12/02(木) 05:18:38
スレの荒れが納まれば再出題されるんじゃね
とりあえず >>829-831 は面倒だから回答が出てないよ

845 :デフォルトの名無しさん:2010/12/02(木) 07:15:27
>>843
>>650>>651もまだかな

846 :デフォルトの名無しさん:2010/12/02(木) 08:47:18
コテハンが出ると標的にして荒らす奴は、麻呂の時にもいたが
バカが2人以上居ると荒れる。一方は冷静に、反応、レスをしないこと。
煽っている池沼は確実に生活保護を受けている暇人の引きこもりニート。

847 :デフォルトの名無しさん:2010/12/02(木) 09:13:12
誰と戦ってるの?

848 :デフォルトの名無しさん:2010/12/02(木) 09:15:46
昨日、宿題に回答せずに◆QZaw55cn4cが名無しで自分の相手をしていると
勘違いしていた精神異常者。まだ見えない敵を標的にしているが
自分がこのスレで散々荒らしていた自覚が無く迷惑。

http://hibari.2ch.net/test/read.cgi/tech/1289715349/263

849 :デフォルトの名無しさん:2010/12/02(木) 09:17:01
まず君が冷静になろうか

850 :デフォルトの名無しさん:2010/12/02(木) 09:17:38
777 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/01(水) 12:52:21
>>776
じゃあ>>747をお前がやってお前が役立たずでない事をさっさと証明してみせろ
今すぐに1分以内に答えろ

自分がこのスレに回答する目的で来ている訳でもないのに
自分が標的にしている相手を勘違いして、場違いで迷惑だから
注意されているのに、言われなくてもやっている人がいるのを知らずに
自分が1分以内で回答できない癖に、他人には偉そうな態度でいる役立たず。
いるよな、自分が出来もしないのに相手にお前は出来るのか?お前も出来ないんだろ
自分と同じ低レベルだと巻き込む池沼。無能は黙ってろよ。

851 :デフォルトの名無しさん:2010/12/02(木) 09:18:53
◆QZaw55cn4cがトリップ無しで書いていると思うからなんだろうけど
迷惑だからその手の争いは↓でやれ!引きこもりニートの生活保護は早く失せろ!

【◆QZaw55cn4c 隔離】C/C++の問題を片付けます
http://hibari.2ch.net/test/read.cgi/tech/1289715349/

852 :デフォルトの名無しさん:2010/12/02(木) 09:24:15
荒らしもウザイけど自分は正義の戦いをしてるとおもってる自治厨も同じくらいウザイ

853 :デフォルトの名無しさん:2010/12/02(木) 09:25:33
>>852
白々しいんだよ、◆QZaw55cn4cと間違えて他人を攻撃していたバカ
ウザイから回答以外のレスはしないでね ♥

854 :デフォルトの名無しさん:2010/12/02(木) 09:26:36
◆QZaw55cn4cを叩きたいなら◆QZaw55cn4cスレでやれ!
邪魔なんだよ、精神異常者の池沼!低学歴!暇人!

855 :デフォルトの名無しさん:2010/12/02(木) 09:31:54
おまいらもちけつw
その流れは昨日ので十分でしょw

856 :デフォルトの名無しさん:2010/12/02(木) 09:34:18
ス・レ・タ・イが読めませんか?日本語も通じないバカはレスすんなよ

857 :デフォルトの名無しさん:2010/12/02(木) 09:35:43
糞スレ発見

858 :デフォルトの名無しさん:2010/12/02(木) 09:36:05
>>856
お前が言うな。バカ。

859 :デフォルトの名無しさん:2010/12/02(木) 09:36:24
課題に答える気の無い役立たずが無駄にレスしてスレを伸ばすのは迷惑なんすけど?

860 :デフォルトの名無しさん:2010/12/02(木) 09:40:44
他人に自分勝手に制限時間を設けて答えろって何様だよ?
てめぇが答えられもしない癖に、簡単に折れる天狗の鼻を伸ばして
ホルホルしてんのか、無職の基地外は?

861 :デフォルトの名無しさん:2010/12/02(木) 09:45:17
おまえら、もういいからw
正直言うと昨日ちょっと煽り入れてみたのは俺なw
>>809 >>811 >>814 >>816 >>819 は俺なw
相手の人ごめんなマジで。

862 :デフォルトの名無しさん:2010/12/02(木) 10:10:49
can you recognize this thread title?

863 :デフォルトの名無しさん:2010/12/02(木) 10:12:56
I can obey this thread title now.

864 :デフォルトの名無しさん:2010/12/02(木) 10:13:50
言語系の宿題スレは揃ったからそろそろ別の宿題を解くスレをたてないか?

865 :デフォルトの名無しさん:2010/12/02(木) 10:18:53
>>864
どういうことだってばよ

866 :デフォルトの名無しさん:2010/12/02(木) 10:38:54
Recognize this thread subject!

867 :デフォルトの名無しさん:2010/12/02(木) 11:01:37
荒れてますな

868 :◇QZaw55cn4c:2010/12/02(木) 11:05:47
テスト

869 :デフォルトの名無しさん:2010/12/02(木) 11:15:26
>>650-651 のプログラム作ってみたけど、計算量が多すぎて
1日経っても終わりそうにないし、最適化のアイデアも浮かばないので
うpするのやめた。きっとスーパーな人が作ってくれるに違いないヽ(´ー`)ノ

870 :デフォルトの名無しさん:2010/12/02(木) 11:16:44
>>436 >>437 >>438
遅レスごめんなさい><
本当にありがとうございました!

871 :デフォルトの名無しさん:2010/12/02(木) 11:17:29
>>852
正義とか関係なくスレ違いのレスでスレが無駄に伸びるのがお前の望みか?
迷惑なんだよ。

872 :デフォルトの名無しさん:2010/12/02(木) 12:46:17
>>869
そのソースをうp!

873 :デフォルトの名無しさん:2010/12/02(木) 14:32:14
うひょー!!!!!
宿題スレだぜぇ!!!!!!!

874 :デフォルトの名無しさん:2010/12/02(木) 16:17:17
>>869
ぜひソースをお願いします(T_T)

875 :デフォルトの名無しさん:2010/12/02(木) 16:31:49
うっそぴょ〜ん!w

876 :デフォルトの名無しさん:2010/12/02(木) 16:38:00
新しい問題カモン

877 :デフォルトの名無しさん:2010/12/02(木) 16:44:53
>>650-651
誰もやってくれない・・・

878 :デフォルトの名無しさん:2010/12/02(木) 17:19:06
問題の意味がさっぱり分からない

879 :デフォルトの名無しさん:2010/12/02(木) 17:43:17
>>878
どこら辺がわかりませんか?

880 :デフォルトの名無しさん:2010/12/02(木) 17:52:55
なぜ自分で解かないのか?なぜ自分にそんな課題が出されたのか?
そこからして理解不能。

881 :デフォルトの名無しさん:2010/12/02(木) 17:54:28
>>879
数字(1〜10)、ABの入れ替えに加え、「枝を入れ替えたり」と
問題にあるってことは、2分木の形も固定でなく
グリグリ変わっちゃうってことでおk?

882 :デフォルトの名無しさん:2010/12/02(木) 17:58:15
モデル化としては逆ポーランド記法
数値10個とA5個B4個が混在
制約条件としてABが出現できるのは(数値の出現した数-1)個まで

883 :デフォルトの名無しさん:2010/12/02(木) 18:00:45
一行目の
>「A」:下の2つの数字の左の数字を足し、右の数字は大きい方を選択
からして分からない

884 :デフォルトの名無しさん:2010/12/02(木) 18:13:56
>>881
2分木の形が変わるのはなんの問題もありません

885 :デフォルトの名無しさん:2010/12/02(木) 18:17:09
>>879
AとBの数は自由(=どちらも0個以上)でいいのかな?

886 :デフォルトの名無しさん:2010/12/02(木) 18:34:47
>>885
0個以上で自由です!

887 :デフォルトの名無しさん:2010/12/02(木) 18:40:49
>>827
すみません、これを御願いします。

888 :デフォルトの名無しさん:2010/12/02(木) 19:12:06
http://hibari.2ch.net/test/read.cgi/tech/1289715349/267
バカが登場

889 :デフォルトの名無しさん:2010/12/02(木) 20:07:21
>>888
お前が荒らしだろ
他のスレの書きこみを引用してここに書き込む事は立派な荒らし行為だ

890 :デフォルトの名無しさん:2010/12/02(木) 20:09:35
反応するから本人だとバレバレw

891 :デフォルトの名無しさん:2010/12/02(木) 20:28:32
お願いですからスレ違いの書きこみはご遠慮下さい。

892 :デフォルトの名無しさん:2010/12/02(木) 20:55:04
>>891
お前が言う事で倍増する。ちっとは頭使え。バカ。

893 :デフォルトの名無しさん:2010/12/02(木) 21:06:16
>>887
struct node { int val; struct node* left; struct node* right; };
struct node* create_node(int num) {
  struct node* node = malloc(sizeof(struct node));
  node->left = node->right = NULL; node->val = num;
  return node;
}
void disp(struct node* p) {
  if(p != NULL){ printf("%d ", p->val); if(p->left != NULL){ disp(p->left); } if(p->right != NULL){ disp(p->right); } }
}
void add_node(struct node** root, struct node** add_node) {
  struct node* search_node = *root;
  if((*add_node)->val < (*root)->val){
    *root = *add_node; (*root)->left = search_node;
  }
  else{
    while((search_node->right != NULL) && (search_node->right->val < (*add_node)->val)){ search_node = search_node->right; }
    while((search_node->left != NULL) && (search_node->left->val < (*add_node)->val)){ search_node = search_node->left; }
    (*add_node)->left = search_node->left; (*add_node)->right = search_node->right; search_node->left = *add_node;
  }
}
int main(void) {
  struct node* root = NULL; struct node* node; int num;
  printf("input data:"); scanf("%d", &num);
  while(0 < num){
    node = create_node(num);
    if(root == NULL){ root = node; }
    else{ add_node(&root, &node); }
    printf("input data:"); scanf("%d", &num);
  } printf("result:"); disp(root); puts("");
  return 0;
}

894 :デフォルトの名無しさん:2010/12/02(木) 21:08:21
Cで特定の決まったアドレスに数値ぶち込むにはどうしたらいいんでしょうか。
たとえばたとえば0x12345678に0xFFFFFFFF入れるとき。

895 :デフォルトの名無しさん:2010/12/02(木) 21:18:09
unsigned int* address = (unsigned int*)0x12345678;
*address = 0xFFFFFFFF;

896 :デフォルトの名無しさん:2010/12/02(木) 21:21:47
サンクス

897 : ◆QZaw55cn4c :2010/12/02(木) 21:48:19
>>829
http://hibari.2ch.net/test/read.cgi/tech/1289715349/269

898 :デフォルトの名無しさん:2010/12/02(木) 21:50:32
>>893
助かります。有難う御座います。

899 :デフォルトの名無しさん:2010/12/02(木) 21:57:17
>>897
だからそういう貼り方はやめろっつーに
迷惑なだけだ

900 :デフォルトの名無しさん:2010/12/02(木) 23:05:22
>>897
死ね

901 :デフォルトの名無しさん:2010/12/03(金) 08:29:36
反応する奴も同罪。このスレの課題に答えない奴よりはマシ。

902 :デフォルトの名無しさん:2010/12/03(金) 08:56:01
>>901
その同罪の中の最底辺がお前だよ。

903 :デフォルトの名無しさん:2010/12/03(金) 08:57:31
はい、また朝から池沼が課題に答えずに見えない敵を罵倒する
ボケ老人のボケ防止とも言える基地外行動が発令しました。以後放置よろ。
課題に答える気がないなら無駄なレスするなよ、池沼。

904 :デフォルトの名無しさん:2010/12/03(金) 09:12:13
お前が言うな。バカ。

905 :デフォルトの名無しさん:2010/12/03(金) 09:24:53
ス・レ・タ・イ読めますか?発音できても意味を理解する頭はないのか。
道理で課題に答えない訳だw

906 :デフォルトの名無しさん:2010/12/03(金) 09:48:09
お前が言うな。バカ。

907 :デフォルトの名無しさん:2010/12/03(金) 13:03:04
コードってどういう形で答えるのがベストなの?

908 :デフォルトの名無しさん:2010/12/03(金) 13:08:03
直接ここに貼り付け。タブは全角スペースで。

909 :デフォルトの名無しさん:2010/12/03(金) 13:20:48
全角スペースの意味が分からないレベルの人が質問に来るのでコピペでトラブる
全角スペースは使わないほうがいいと思う

910 :デフォルトの名無しさん:2010/12/03(金) 13:30:02
     ?

911 :デフォルトの名無しさん:2010/12/03(金) 13:44:50
マなら"\t"を"&nbsp;"に変換するスクリプトを走らせる

912 :デフォルトの名無しさん:2010/12/03(金) 14:00:20
そんなもの作らなくてもエディタの機能を使えば良い。置換で。

913 :デフォルトの名無しさん:2010/12/03(金) 14:04:07
>>911
専ブラでコピペすると   になって煩わしい

914 :デフォルトの名無しさん:2010/12/03(金) 14:05:27
うはw油断してたw
&#160; だった

915 :デフォルトの名無しさん:2010/12/03(金) 14:11:09
0
 1
  2
   3
    4
     5
      6

916 :デフォルトの名無しさん:2010/12/03(金) 15:16:59
こっちにかいたほうがよさげということでしつもんです〜

Delphiで

TUnkoClass: class of TUnko

type
 TGeri = class(TUnko)


 TIpponGuso = class(TUnko)



function BuildUnko(AType:TUnkoClass):TUnko;
begin
 Result:=AType.Create;
end;



こういうのがあったとして、これをC++でやるにはどうしたらいいんでしょうか。

917 :デフォルトの名無しさん:2010/12/03(金) 15:18:22
あ、ここじゃねぇしww ごめんなさい 忘れてください。

918 :デフォルトの名無しさん:2010/12/03(金) 16:50:01
貼り付けるのはnbspがベストだろうけど
それだとローカルに落とすときにも置換が必要で面倒くさくね?

919 :デフォルトの名無しさん:2010/12/03(金) 16:55:48
うまく行かないし、各自エディタで適当に置換すりゃええがな

920 :デフォルトの名無しさん:2010/12/03(金) 17:33:32
回答者様がありがたいコードをお出しになっていらっしゃるわけだから質問者の置換の手間なんてのは些細なこと

921 :デフォルトの名無しさん:2010/12/03(金) 17:48:04
emacsでCtrl+Alt+\で一発やん。

922 :デフォルトの名無しさん:2010/12/03(金) 17:56:18
#include <stdio.h>
typedef struct complex complex;
struct complex {
double re;
double im;
};
complex AddComplex(complex x, complex y);
complex SubComplex(complex x, complex y);
complex MulComplex(complex x, complex y);
complex DivComplex(complex x, complex y);
void ShowComplex(char varname[ ], complex x);
void main(void);

complex AddComplex(complex x, complex y)
{
complex z;

z.re = x.re + y.re;
z.im = x.im + y.im;

return (z);
}
complex SubComplex(complex x, complex y)
{
complex z;

z.re = x.re - y.re;
z.im = x.im - y.im;
return (z);
}

923 :デフォルトの名無しさん:2010/12/03(金) 17:57:09
complex MulComplex(complex x, complex y)
{
complex z;

z.re = x.re * y.re - x.im * y.im;
z.im = x.re * y.im + y.re * x.im;

return (z);
}
complex DivComplex(complex x, complex y)
{
complex z;

z.re = x.re / y.re - x.im / y.im;
z.im = x.re / y.im + y.re / x.im;

return (z);
}
void ShowComplex(char varname[ ], complex x)
{
printf("%s = %3.1lf + %3.1lfi\n\n", varname, x.re, x.im);
}

924 :デフォルトの名無しさん:2010/12/03(金) 17:58:50
void main(void)
{
complex x, y, z;
double rx,ix,ry,iy;
printf("x実数部分の値:");
scanf("%lf",&rx);
printf("x虚数部分の値:");
scanf("%lf",&ix);
printf("y実数部分の値:");
scanf("%lf",&ry) ;
printf("y虚数部分の値:");
scanf("%lf",&iy) ;
x.re = rx;
x.im = ix;
y.re = ry;
y.im = iy;
ShowComplex("x", x);
ShowComplex("y", y);
z = AddComplex(x, y);
ShowComplex("x + y", z);
z = SubComplex(x, y);
ShowComplex("x - y", z);
z = MulComplex(x, y);
ShowComplex("x * y", z);
z = MulComplex(x, y);
ShowComplex("x / y", z);
}

925 :デフォルトの名無しさん:2010/12/03(金) 18:00:20
>>922-924までは複素数の四則演算を計算す関数です。
これで合っているのか教えてください。

926 :デフォルトの名無しさん:2010/12/03(金) 18:24:25
>>924
最後から3つ目の行の

z = MulComplex(x, y);



z = DivComplex(x, y);

の間違いだね

927 :デフォルトの名無しさん:2010/12/03(金) 19:37:47
>>926
ありがとうございます。
早速修正しました。他に間違いはありませんか?

928 :デフォルトの名無しさん:2010/12/03(金) 20:23:02
>>927
MulとDivが違ってる気がする

http://ja.wikipedia.org/wiki/%E8%A4%87%E7%B4%A0%E6%95%B0

ここを見て直して

929 :デフォルトの名無しさん:2010/12/03(金) 20:38:03
>>830
すみません、お願いします!!!

930 :デフォルトの名無しさん:2010/12/03(金) 20:48:31
>>926
Mulはあってる。違うのはDiv。

>>925
分かりにくくなるので虚数単位をiではなくjで表すものとする。
分母に虚部があると実際の虚部がどうなのか分からない。
よって分母・分子に同じものをかけて分母から虚部を消すことを考える。
分母から虚部が消えれば、分子の実部と虚部を分ければよいので簡単。
何をかければ虚部が消えるかというと
(A+Bj)*(C+Dj) = AC-BD +(AD+BC)j
AD+BC = 0 になるCとDを決めればいい。
いくつも答えがあるが、一番簡単なのは C=A , D=-B だと思う。
君の例だと
(Xr+jXi)/(Yr+jYi)の分母分子に(Yr-jYi)を掛けると分母の虚部が消える。
計算すると
(Xr+jXi)/(Yr+jYi)
=(Xr+jXi)(Yr-jYi)/(Yr+jYi)(Yr-jYi)
=(XrYr+XiYi)/(Yr^2+Yi^2) + j(XiYr-XrYi)/(Yr^2+Yi^2)
となる。後は分かるよね。

931 :930:2010/12/03(金) 20:50:35
ごめんアンカー間違えた。一個目のアンカーは >>928


932 :デフォルトの名無しさん:2010/12/03(金) 21:08:04
>>830
問題自体が既出。過去の解答例で動かなかったの?

933 :デフォルトの名無しさん:2010/12/03(金) 21:09:33
>>928を見て直しました。
z.re = (x.re*y.re + x.im*y.im) /((y.re*y.re)+(y.im*y.im));
z.im = (x.im*y.re + x.re*y.im) /((y.re*y.re)+(y.im*y.im));

これで合っていますか?



934 :933:2010/12/03(金) 21:15:04
>>933
z.im = (x.im*y.re - x.re*y.im) /((y.re*y.re) + (y.im*y.im));
の間違いでした。

935 :デフォルトの名無しさん:2010/12/03(金) 21:26:54
>>830
#include <stdio.h>
#include <sys/stat.h>

int main(int argc, char* argv[])
{
  char cmd[100];
  int i;
  for(i=1; i<argc; i++){
    sprintf(cmd, "ls -lF %s", argv[i]);
    system(cmd);
  }
  struct stat buf;
  fstat(0, &buf);
  return 0;
}

936 :デフォルトの名無しさん:2010/12/03(金) 21:30:07
  sprintf(cmd, "ls -lFd %s", argv[i]);
か。

937 :デフォルトの名無しさん:2010/12/03(金) 21:41:50
>>830
http://codepad.org/8WehiIB4

938 :デフォルトの名無しさん:2010/12/03(金) 21:52:48
>>937
fstat使うという条件らしい。
ディレクトリの場合openに失敗するんだが、どうすりゃいい?

939 :デフォルトの名無しさん:2010/12/03(金) 21:56:35
一応 fstat 版。
http://codepad.org/620V9m2H

940 :933:2010/12/03(金) 22:50:10
#include <stdio.h>

typedef struct complex complex;

struct complex {
double re;
double im;
};

complex AddComplex(complex x, complex y);
complex SubComplex(complex x, complex y);
complex MulComplex(complex x, complex y);
complex DivComplex(complex x, complex y);
void ShowComplex(char varname[ ], complex x);
void main(void);

complex AddComplex(complex x, complex y)
{
complex z;
z.re = x.re + y.re;
z.im = x.im + y.im;
return (z);
}
complex SubComplex(complex x, complex y)
{
complex z;
z.re = x.re - y.re;
z.im = x.im - y.im;
return (z);
}

941 :933:2010/12/03(金) 22:51:23
complex MulComplex(complex x, complex y)
{
complex z;

z.re = x.re * y.re - x.im * y.im;
z.im = x.re * y.im + y.re * x.im;

return (z);
}
complex DivComplex(complex x, complex y)
{
complex z;

z.re = (x.re*y.re + x.im*y.im) /((y.re*y.re) + (y.im*y.im));
z.im = (x.im*y.re - x.re*y.im) /((y.re*y.re) + (y.im*y.im));

return (z);
}
void ShowComplex(char varname[ ], complex x)
{
printf("%s = %3.1lf + %3.1lfi\n\n", varname, x.re, x.im);
}

942 :933:2010/12/03(金) 22:53:32
void main(void)
{
complex x, y, z;
double rx,ix,ry,iy;
printf("x実数部分の値:");
scanf("%lf",&rx);
printf("x虚数部分の値:");
scanf("%lf",&ix);
printf("y実数部分の値:");
scanf("%lf",&ry) ;
printf("y虚数部分の値:");
scanf("%lf",&iy) ;
x.re = rx;
x.im = ix;
y.re = ry;
y.im = iy;
ShowComplex("x", x);
ShowComplex("y", y);
z = AddComplex(x, y);
ShowComplex("x + y", z);
z = SubComplex(x, y);
ShowComplex("x - y", z);
z = MulComplex(x, y);
ShowComplex("x * y", z);
z = DivComplex(x, y);
ShowComplex("x / y", z);
}
上のプログラムを 3つの複素数を入力し、四則演算した
全ての計算パターンを出力表示するプログラム にしてほしいです。
おねがいします。

943 :デフォルトの名無しさん:2010/12/03(金) 23:02:09
>>941
基本それでいい。
1.C言語でvoid main(void)は変な虫がわくので、バカよけ対策でint main(void)にしたほうが良い。
2.printf("%s = %3.1lf + %3.1lfi\n\n", varname, x.re, x.im);
 double に %lf は ISO C90 で未対応らしいので普通に %f が良い。
3.レス3つも消費するようなソースを上げる時は、インデントの問題もあるし、
 下記等に上げて、リンクを貼るとよい。
http://codepad.org/
http://www.codeupload.com/
http://ideone.com/
https://gist.github.com/

944 :933:2010/12/03(金) 23:17:17
>>943
わかりました。下に貼りました。
http://codepad.org/Q5sx15YL

>>942のお題よろしくおねがいします。

945 :デフォルトの名無しさん:2010/12/03(金) 23:40:03
>>942
http://codepad.org/8SrLpaUN
"全ての"の意味は下記かな?
for(i=0 ; i<3 ; i++) {
for(j=0 ; j<3 ; j++) {

946 :デフォルトの名無しさん:2010/12/03(金) 23:40:48
>>938
linuxやcygwinでもディレクトリの open() でエラーになるのかなぁ?
俺も書いたんだけど動作確認できないから回答しなかった
どっちみち windows で書いたらシンボリックリンクなんかも判定できないから linux 環境が無い人には回答不能だと思うけど

947 :デフォルトの名無しさん:2010/12/03(金) 23:46:22
>>946
linux と cygwin なら大丈夫みたい。

948 :デフォルトの名無しさん:2010/12/03(金) 23:50:52
cygwinも入れてないのか

949 :933:2010/12/03(金) 23:59:52
>>945
「3つの複素数全ての組み合わせ」という意味で言いました。

950 :933:2010/12/04(土) 00:04:54
>>945
起動したところ無事動きました。
ありがとうございました。

951 :デフォルトの名無しさん:2010/12/04(土) 00:59:36
>>948
cygwin なんて使い道ないだろ
redhat 入ってるマシンは物置部屋に有るけど引っ張り出すの面倒くさい

952 :デフォルトの名無しさん:2010/12/04(土) 01:01:01
仮想マシンがお手軽

953 :デフォルトの名無しさん:2010/12/04(土) 01:06:14
>>935-939
本当にありがとうございます!!!

>>831
図々しくてほんとに申し訳ありませんが
できればこちらもお願いいたします

954 :デフォルトの名無しさん:2010/12/04(土) 02:54:03
>>953
ttp://codepad.org/qV6dbK4a

955 :デフォルトの名無しさん:2010/12/04(土) 10:06:45
システムコールでその昨日のコマンドを使えとか、ある意味バッチみたいなもんだな・・・

956 :デフォルトの名無しさん:2010/12/04(土) 10:07:34
昨日やない、機能や orz

957 :デフォルトの名無しさん:2010/12/04(土) 11:08:53
>>953
ttp://www.coins.tsukuba.ac.jp/~yas/coins/syspro1-1997/1997-04-22/

958 :デフォルトの名無しさん:2010/12/04(土) 15:20:47
【質問テンプレ】
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):ランダムな整数列を生成し,クイックソートにより並
              べ替えるプログラムを作れ

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C/C++/どちらでも可
[4] 期限:12月8日
[5] その他の制限:なし

959 :デフォルトの名無しさん:2010/12/04(土) 15:23:48
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):次のクイックソートを実行できるようにせよ
              quicksort (int a[], int n)
{
struct stack *s = newstack(SIZE, NAME);
int p, t, i, j, left =1, right =n;
for (;;) {
while (left < right) {
partition(left, right, i, j);
if (i-left > right-j) {
push(left, s); push(j, s); left = i;
} else {
push(i+1, s); push(right, s); right = j;
}
} if (
isempty(s))
break;
right = pop(s); left = pop(s);
}
}
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C/C++/どちらでも可
[4] 期限:12月8日
[5] その他の制限:mainの中もお願いします



960 :958:2010/12/04(土) 15:25:02
書き忘れていたので再び書きます
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):ランダムな整数列を生成し,クイックソートにより並
              べ替えるプログラムを作れ

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C/C++/どちらでも可
[4] 期限:12月8日
[5] その他の制限:mainの中もお願いします




961 :デフォルトの名無しさん:2010/12/04(土) 19:21:06
>>959
それに加筆しろって事かい?
それとも使われてる関数 newstack(), push(), pop(), isempty(), partition() のみを作成しろって事かい?
後者だったら無理だよ

962 :デフォルトの名無しさん:2010/12/04(土) 19:51:34
>>197
遅くなってしまいました。すみません。
File not found.と出るんですが、何という風に本当は出るんでしょうか

963 :959:2010/12/04(土) 21:22:08
>>961
959に加筆ということです。

964 : ◆QZaw55cn4c :2010/12/04(土) 21:22:41
>>960
>>829
>>897 が似た感じです。

965 :デフォルトの名無しさん:2010/12/04(土) 22:34:02
>627
http://www1.axfc.net/uploader/Sc/so/180180

966 :デフォルトの名無しさん:2010/12/04(土) 23:07:34
次スレ立てます

967 :デフォルトの名無しさん:2010/12/04(土) 23:10:08 ?S★(532222)
次スレ立てました
C/C++の宿題片付けます 144代目
http://hibari.2ch.net/test/read.cgi/tech/1291471791/

968 :デフォルトの名無しさん:2010/12/05(日) 01:36:21
>>962を誰か…

969 :デフォルトの名無しさん:2010/12/05(日) 02:15:21
>>962
test.txt が無ければ file not found って出るのは当然だ
test.txt をカレントディレクトリに作成しる、フォーマットは

3
1 11 21 31
2 12 22 32
3 13 23 33

みたいな感じ

970 :デフォルトの名無しさん:2010/12/05(日) 17:52:46
次スレで int main(void) の話題ですね。
何十回ループするんでしょうか。
俺は↓派です。
>>943
> 1.C言語でvoid main(void)は変な虫がわくので、バカよけ対策でint main(void)にしたほうが良い。
次はmalloc,freeの番かな?

971 :デフォルトの名無しさん:2010/12/05(日) 18:07:07
>>970
このスレでその話をしろとは誰も言ってないだろ。しつけぇよ。スレタイ読め。

972 :デフォルトの名無しさん:2010/12/05(日) 18:07:54
>>970
>バカよけ対策で
だったらお前がバカになれば?バカとかではなく標準スタイルの話。
頭悪いよ、お前。

973 :デフォルトの名無しさん:2010/12/05(日) 18:09:18
C言語で int main() なんて記述している奴の方がバカだろw
自分が基準だと思って生きているんだろうなw
視野の狭いカッペじゃね?周りに自分以上のプログラマーがいないから
自分が言うことは全て正しい、誰も間違いだと指摘できないから
自分が全知全能だと勘違いしているんだろうね。活動範囲が狭いカッペ丸出しw

974 :デフォルトの名無しさん:2010/12/05(日) 18:10:38
まーた始まったw

975 :デフォルトの名無しさん:2010/12/05(日) 18:15:40
5.1.2.2.1 Program startup

Previous Table of Contents "New C Standard" commentary

The function called at program startup is named main.
The implementation declares no prototype for this function.
It shall be defined with a return type of int and with no parameters:

int main(void) { /* ... */ }

or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):

int main(int argc, char *argv[]) { /* ... */ }

or equivalent;9)
or in some other implementation-defined manner.

976 :デフォルトの名無しさん:2010/12/05(日) 18:44:46
誘導
【初心者お断り】ガチ規格準拠C専用スレ Part134
http://hibari.2ch.net/test/read.cgi/tech/1246115922/

977 :デフォルトの名無しさん:2010/12/05(日) 19:02:23
要するに◆QZaw55cn4cが一番のトラブルメーカーだな
こいつさえいなければ問題は起きない

978 :デフォルトの名無しさん:2010/12/05(日) 19:04:37
>>977
一緒に消えてね

979 :デフォルトの名無しさん:2010/12/05(日) 19:05:00
荒れるのわかってて、大してよくもない自分のやり方に固執するからな
経験豊富で優れたコードを書くってんならまだしも、日本語すらまともに読めないときたもんだ

980 :デフォルトの名無しさん:2010/12/05(日) 19:07:02
>>979
>>978

981 :デフォルトの名無しさん:2010/12/05(日) 19:51:01
便乗して、質問だけど。
void Func() が引数不問とはどういうこと?
一応↓がコンパイルも出来て実行も出来たけど、文法上下記はOKって認識でよい?
#include <stdio.h>
void Func();
int main(void) {
Func();
Func(1);
Func(1,2);
Func(1,2,3);
return 0;
}
void Func(int a, int b) {
printf("Func : %d\n",a+b);
}


982 :デフォルトの名無しさん:2010/12/05(日) 19:57:06
int main() も int main( void ) も学生しか書かないコード
実務で書くのは int main( int argc, char** argv ) だけ(char** envp が付くことは有るけどね)
だから職業プログラマから見れば目くそ鼻くその話にしか見えない
 

983 :デフォルトの名無しさん:2010/12/05(日) 20:06:14
>>981
それ bcc だと警告が出るよ、foo() にはプロトタイプ宣言が無いって
文法上OKかと聞かれればOKなんだろうけど望ましくはないね

984 :デフォルトの名無しさん:2010/12/05(日) 20:10:33
>>982
実務だと別のエントリポイントを使うことが多くないか?
どんな仕事してるのか知らないけど

985 :デフォルトの名無しさん:2010/12/05(日) 20:38:13
>>984
Windowsアプリだとそうだね、他にも何か有ったっけ?
ベタなクラ/サバの仕事とか解析系の仕事がメインだから別のエントリポイントって Widows しか知らない


986 :デフォルトの名無しさん:2010/12/05(日) 20:50:12
>>985
組込とか。つかWindowsアプリは実務のうちに入らないのか?

987 :デフォルトの名無しさん:2010/12/05(日) 20:57:12
何を持ってエントリーポイントというの?
エントリーポイントってgccだとstartだよね。

988 :デフォルトの名無しさん:2010/12/05(日) 20:59:44
未亡人

989 :デフォルトの名無しさん:2010/12/05(日) 21:11:44
>>987
いわゆるmain関数に該当する部分の話じゃね?

990 :デフォルトの名無しさん:2010/12/05(日) 21:19:24
WinMainとかのこと?

991 :デフォルトの名無しさん:2010/12/06(月) 00:36:38
>>969
実行結果はどうでるんでしょうか

992 :デフォルトの名無しさん:2010/12/06(月) 01:11:44
>>830
早稲田大学基幹理工学部情報理工学科3年
オペレーティングシステム
期限は今日までだな

993 :デフォルトの名無しさん:2010/12/06(月) 08:12:35
>>991
動かせばわかるだろ、動かす環境無いの?

994 :デフォルトの名無しさん:2010/12/06(月) 08:17:22
>>986
組み込みはやったこと無いから知らないな
winアプリも実務だよ、あんまり書かないから忘れてただけ
でもwinアプリを実務で書くときエントリポイントなんて気にするの?
int far pascal WinMain() なんてのは15〜20年前には書いてたけど、最近はwizard使うんじゃね?


995 :デフォルトの名無しさん:2010/12/06(月) 08:48:47
いつの話題だよ
もう終わってんだから黙れよ

996 :デフォルトの名無しさん:2010/12/06(月) 09:02:32
>>830 ってわっせー?俺余裕で解いたし、ワッセーで卒業できんじゃね?
今さら大学で勉強する気はないが。どうせいつかは死ぬし
さっさと金を稼いだ方が楽。こうしている間にも老化して生きられる時間も刻一刻と減っているしな。
明日死ぬかもしれない人生だし。自分の頭にいくら知能を詰めても、活用しなきゃ意味ねーし。

997 :デフォルトの名無しさん:2010/12/06(月) 09:04:32
>>982
記述するしないではなく、標準スタイルの話。お前もバカだろw
そういうのを疎かにしている奴がヘボプログラマーなの。
多分、その他も自分はそういう記述はしないからという理由で
重要な内容を有耶無耶にして、不適切なコードを記述していることにも気づかずに
とんでもないバグを作っている可能性はあるよ。
ほら、世の中に完璧なものはない。OSレベルになると完璧なものは難しいが
市販ソフトでもまだまだ不十分。ハードウェアの環境も変わるしね・・・

998 :デフォルトの名無しさん:2010/12/06(月) 09:13:39
>>996って池沼なの?

999 :デフォルトの名無しさん:2010/12/06(月) 09:24:08
>>997
そういうカス使ってでもコスト下げた方が勝ち。客は品質なんてわからない。

1000 :↑こいつ最高にアホ:2010/12/06(月) 09:29:09
クマー(AA略)

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

306 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)