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

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

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

1 :デフォルトの名無しさん:2010/08/01(日) 18:01:51
あなたが解けない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++の宿題片付けます 138代目
http://pc12.2ch.net/test/read.cgi/tech/1279286575/

2 :デフォルトの名無しさん:2010/08/01(日) 18:07:04
> 気に入らない質問やその他の発言はスルーの方向で。
これが理解できない精神レベルの低いお子ちゃまが多いですね。
回答者のレベルが低いこともあって、このスレ痛すぎ

3 :デフォルトの名無しさん:2010/08/01(日) 18:10:48
バブーならスルーすればいいでちゅー

4 :デフォルトの名無しさん:2010/08/01(日) 18:57:08
磯の話は良いから、とっとと課題を回答しろや、引きこもりニートw

5 :デフォルトの名無しさん:2010/08/01(日) 18:59:15
最近のアイちゃんはヒトと議論ができるまで成長したんだな
ノイズが多すぎるから誰か未解決の問題まとめてくれ

6 : ◆QZaw55cn4c :2010/08/01(日) 19:13:28
>>5
http://pc12.2ch.net/test/read.cgi/tech/1279286575/955

http://pc12.2ch.net/test/read.cgi/tech/1279286575/735
http://pc12.2ch.net/test/read.cgi/tech/1279286575/931 にヒントあり。

http://pc12.2ch.net/test/read.cgi/tech/1279286575/926

http://pc12.2ch.net/test/read.cgi/tech/1279286575/718

http://pc12.2ch.net/test/read.cgi/tech/1279286575/724
http://pc12.2ch.net/test/read.cgi/tech/1279286575/727

こんなところでしょうか。

7 :デフォルトの名無しさん:2010/08/01(日) 19:27:35
学校の課題で使われているC言語は何も個人的なものではありません。
普通に世に出回っている製品で使われていることもありますよ。
だから世界的な標準規格の話も出てくる。そもそも、自分が日頃使っている
電子機器だって、チップや基板、固定に使われているネジにしろISO準拠の
規格のものを普通に見かけるんだが?いかに自分が既成の共通したものを
使っているかという自覚が無いか、思い知っただろ。視野が狭すぎ。
そこまでゴネるなら、大きな組織になって独自の仕様でも世界に押し付けたら?
まずより多くの人が認めてくれないだろうから、採用されずに廃れるだろうね。
たとえゲーム会社が独自のゲーム機を開発しようが、出力するモニタだって
特別なものでもなかろう。任天堂のDSはPSPみたいに外部出力は出来ないがw

8 :デフォルトの名無しさん:2010/08/01(日) 20:27:32
前スレにも書きましたが、お願いします。
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
以下のデータは、ある病気にかかっている患者のグループ(罹患者グループ)と健常者のグループ各30名に対して、ある二種類の検査をした結果を表している。
罹患者グループ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10900.txt
健常者グループ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10901.txt
さて、この人たちとは異なる20名の人たちが同じ検査を行い、以下のようなデータが得られた(検査データと呼ぶ)。
これらの20名の人たちが病気にかかっているかどうかを判断するプログラムを作成しなさい。
検査データ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10902.txt
各グループのデータと検査データの入力はファイルから行うものとし、出力は、各検査データを前から順に一人ずつ判断して結果を標準出力(ターミナル)に表示するよう実装すること。
どのような基準で、病気にかかっている/かかっていないを判断したかを、プログラム中のコメントで説明しなさい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年8月3日まで
[5] その他の制限:特にないです。よろしくお願いいたします。


9 :デフォルトの名無しさん:2010/08/01(日) 20:31:04
>>8
統計すら分からない医者にかかりたくないから
遠慮なく留年してくれ


10 :デフォルトの名無しさん:2010/08/01(日) 22:52:50
今やC言語解釈処理系(コンパイラ)メーカーはNIXコミュニティなど
C言語文法に強い影響を与える人たちの意向よりも、
CPUメーカーの意向のほうに影響されやすいことは否めません。
数多あるプロセッサに出来るだけ広く対応し、また対応を
せざるを得ないC言語のおかれた特殊な歴史と深い関係がある話
になってきます。
ただCPUメーカーや関連ハードウェア規格には*NIXを中心とした
分散端末システム業界は非常に強い影響力を与えている筈なので
頭から否定すべきことであるとも言い切れません。

11 : ◆QZaw55cn4c :2010/08/02(月) 00:06:41
http://pc12.2ch.net/test/read.cgi/tech/1279286575/926
http://codepad.org/7vZASstY

>>7
申し訳ないのですが、お説はあなたに言われるまでもなく、よく理解しています。
こちらとしては、
http://pc12.2ch.net/test/read.cgi/tech/1279286575/935
http://pc12.2ch.net/test/read.cgi/tech/1279286575/939
等で私見とはいえ理を尽くして述べたのですが、あなたはすこしも私の意見を理解・判定しようとせず、一方的にわかりきったことを羅列することしかできないようですね。
まあいいですけどね。この件はスルーできなかった私にも問題がありますから、よしとしましょう。

あと、
http://pc12.2ch.net/test/read.cgi/tech/1279286575/721 は根本的にまちがっていることを
http://pc12.2ch.net/test/read.cgi/tech/1279286575/726 で詳しく説明しておきましたからよく読んでくださいね。

12 :デフォルトの名無しさん:2010/08/02(月) 00:09:05
どっちもうざいから他所いってやれよ
日本語の読めなさレベルも同程度なんだし

13 : ◆QZaw55cn4c :2010/08/02(月) 00:13:42
失礼。固有値を求める問題でしたか。>>11 は行列式をもとめてますので全く違いますね。すててください。

14 :デフォルトの名無しさん:2010/08/02(月) 00:15:00
[1] 授業単元: C言語入門
[2] 問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10906.txt
[3.1] OS:Windows 
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:void main(void)を使用すること void main( int argc, char *argv[], char *env[] )等は禁止
以前もお世話になりました いまいちどよろしくお願いいたします

15 :デフォルトの名無しさん:2010/08/02(月) 00:19:20
void main()void

16 :デフォルトの名無しさん:2010/08/02(月) 00:24:04
>>14
の問題の制限は、>>14自身に与えられた制限であり
代行者のコードを書き写す時に>>14がそれを実行すべきと
認定されました。よって代行者の方はそれを守る必要は
ありません。(守っても構いませんが)

17 :デフォルトの名無しさん:2010/08/02(月) 00:26:50
敢えて void main と指定するとか意味不明だわ。意地でも回答側は
int main (void) { return int型; } と書いて抵抗してやれw

18 :デフォルトの名無しさん:2010/08/02(月) 02:22:19
課題の中でアルゴリズムに直接関わるものでもない
void main指定とか、どこの学校だ?講師がバカ過ぎ。
どうせこのスレを見て、自分のスタイルが否定されてムキになったバカ講師が
おかしな制限をつけて課題を出したんだろうけど。
低レベルな生徒しか卒業しないから、ブラックリスト入り決定だから
そんな課題を出した学校名を教えてくれ。

19 :デフォルトの名無しさん:2010/08/02(月) 03:11:59
いやあ、生徒が今まで習ったvoid main(void)で提出したいのに
int main(void)と書かれたら困るからと、勝手につけた制限かもしれないよ。

そんなんで悩むなよと思わなくもないし、この問題でargc argv envpを使う用途がないだろ。

20 :デフォルトの名無しさん:2010/08/02(月) 04:48:31
昔のソースコード、そのまま通してくるとありがたいよね。
多分枯れてるから、バグは無いと覆うお

新しく書き起こすソースは、チェックしてくれると助かるよね。
人間、本人が思っているほど完璧ではないしね。

21 :デフォルトの名無しさん:2010/08/02(月) 05:06:40
もう10数年前に授業でC言語を学んだが、void mainと書いてたなぁ。
ttp://oshiete.goo.ne.jp/qa/2445252.html
↑でも質問をする人がいるが、色々と説がある。
まぁこのスレではもう解決済みだがね。あくまでも
標準スタイルでの条件付で。

22 :デフォルトの名無しさん:2010/08/02(月) 05:20:54
>main関数の戻り値をコマンドプロンプトやシェルスクリプトが利用しますので
って書かれているけど、具体的に何に使ってるの?
void mainって書いててもイマイチ何も変わらないから分からんorz

23 :デフォルトの名無しさん:2010/08/02(月) 06:25:25
低レベルな講師による幼稚な問題を出題して
自分で答える自作自演の始まりです!

24 :デフォルトの名無しさん:2010/08/02(月) 07:20:33
>>8をお願いします。
ちなみに医者にはなりません。

25 :デフォルトの名無しさん:2010/08/02(月) 11:21:27
>>21
その後10数年Cは触ってないの?

>>22
成功したかどうかを判断するのに使う

26 :デフォルトの名無しさん:2010/08/02(月) 11:23:38
>>24
「どのような基準で、病気にかかっている/かかっていないを判断」
これについてはどう考えてるの?丸投げ?

27 :デフォルトの名無しさん:2010/08/02(月) 11:24:05
前スレ697です
>>699さんありがとうございました

28 :デフォルトの名無しさん:2010/08/02(月) 11:25:59
mainの戻り値を利用した人は一人も居ないという伝説。

29 :デフォルトの名無しさん:2010/08/02(月) 11:34:08
>>24
読み込みはやったけど、何の法則を使ったらいいのか俺にはよくわからない。
http://ideone.com/8Bn9a

30 :デフォルトの名無しさん:2010/08/02(月) 11:52:21
>>28
makeコマンドのmainの戻り値はよく使うな

31 :デフォルトの名無しさん:2010/08/02(月) 12:00:34
>>29
純粋に質問なんだが、

struct man{
double a;
double b;
double sub;
double add;
double multi;
};

int comp( const void *c1, const void *c2 )
{
man test1 = *(man *)c1;
man test2 = *(man *)c2;

int tmp1 = test1.sub;
int tmp2 = test2.sub;

return tmp1 - tmp2;
}

関数中で一度デリファレンスするのはどういう流儀?
とくにこの場合は
int comp( const void *c1, const void *c2 )
{
return ((man *)c1)->sub - ((man *)c2)->sub;
}
で行けそうだし(未確認ですまん)、
余計な代入が無いからスカッとしそうだけど。

32 :デフォルトの名無しさん:2010/08/02(月) 12:07:45
>>24
ttp://www1.axfc.net/uploader/Sc/so/139977.jpg
プログラミングの問題っていうよか
統計の問題だな。

で、>>24はこの分布をどういう風に処理したいの?
教えてくれれば実装するし、
分からなきゃ統計をもう一度やり直してくれ。


33 :デフォルトの名無しさん:2010/08/02(月) 12:23:21
>>31
コピペしただけだから流儀とかはない。
その指摘部分は正しくは↓な感じだな。

int comp( const void *c1, const void *c2 )
{
man test1 = *(man *)c1;
man test2 = *(man *)c2;

int tmp1 = test1.sub*100000;
int tmp2 = test2.sub*100000;

return tmp1 - tmp2;
}

34 :デフォルトの名無しさん:2010/08/02(月) 13:18:22
>>24
2群なら一番簡単なのは判別分析かな
http://ideone.com/fSyKg

参考はココ
http://aoki2.si.gunma-u.ac.jp/lecture/Discriminant/disc2.html

行列計算は面倒なんでライブラリ使った
http://sourceforge.net/apps/wordpress/itpp/
使い方はググレばたくさん出てくるから割愛
面倒なら自分で行列クラスとガウス式書くのも有り
2×2行列だから、LU分解でも問題ないはず


35 :デフォルトの名無しさん:2010/08/02(月) 13:45:48
>33
勝手にconst外さないでください

36 :デフォルトの名無しさん:2010/08/02(月) 16:37:34
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):キーボードより本体価格と税率を入力し、その税込価格を
               表示するプログラムを作成せよ。

               任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年08月03日 18:00まで
[5] その他の制限:特に無いです。
上記の2つのプログラムを作成していただきたいです。
よろしくお願いします。

37 :デフォルトの名無しさん:2010/08/02(月) 16:52:06
自分の書いた文章が正しいかどうかのチェックすら怠る者に、
俺なら何もしてやりたくはない。

38 :デフォルトの名無しさん:2010/08/02(月) 17:10:43
>>36
#include <stdio.h>

int main(void)
{
int price, rate;

printf("本体価格:");
scanf("%d", &price);

printf("税率(%):");
scanf("%d", &rate);

printf("税込価格:%d\n", (100 + rate) * price / 100);

return 0;
}

39 :デフォルトの名無しさん:2010/08/02(月) 18:38:26
このスレって日本語の通じない低学歴が多いよなw
説明すら意味を理解していない。コードを書いて実行すれば分かるのに。
どんな劣悪な環境で甘んじているのか知らんが、余程貧しい地方の
学校なんだろうねw

40 :デフォルトの名無しさん:2010/08/02(月) 19:03:57
>>37が言いたいのは、>>36
>任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
の一文において、“する”と“作れ”の間に“プログラムを”が抜けてるってことだろ。
コードを書いて実行すればわかるとかって問題じゃない。

ああ、日本語通じない人にはわかるわけねーか

41 :デフォルトの名無しさん:2010/08/02(月) 19:04:47
ぜってーISOの英文の説明が理解できない講師がいるぜw
レベルが低いんだよ!プログラミングに関しても、人間性もw

42 :デフォルトの名無しさん:2010/08/02(月) 19:32:43
見えない人と戦いはじめちゃったか…。
こうなると長いぞ皆の衆。

43 :デフォルトの名無しさん:2010/08/02(月) 19:45:22
>>34だけど、動作確認はVC++2008でやってます
コンパイラにgccって書いてあることにカキコしてから気がついたスマン
まぁ、IT++はgccでも使えるんで大丈夫なはず リンクが面倒だけど

>>35
>任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
http://f4.aaa.livedoor.jp/~pointc/log887.htmlを発展させればできると思われる


答えてばかりじゃツマランので俺もなんか質問してみようかしら

44 :デフォルトの名無しさん:2010/08/02(月) 19:47:17
ここで他人の意見に噛みついてくる精神レベルの低いガキって
大したこと無いくせに長年、プログラムの授業で講師をやっていた講師だろ?
大人気ない、恥ずかしい奴よのぉ〜

45 :デフォルトの名無しさん:2010/08/02(月) 19:59:21
完全な四捨五入って難しすぎるw

46 :デフォルトの名無しさん:2010/08/02(月) 20:02:18
俺は>>44みたいなやつがコテ付きで回答するのを見てみたいよw
どんな言い逃れもせずに男らしく、
コードの美しさでみんなを黙らせて見せて欲しいw
お腹が痛いとか今調子悪いとか、お前らと違って時間が無いとか、
そーいうのもういいから。もう沢山だから。

47 :デフォルトの名無しさん:2010/08/02(月) 20:03:56
コード書くたびに突っ込まれすぎて書かなくなっちゃったんだよw

48 :デフォルトの名無しさん:2010/08/02(月) 20:17:06
>>36
ggった方が聞くより早いんじゃね?
ttp://f4.aaa.livedoor.jp/~pointc/log887.html

#include <stdio.h>
#include <stdlib.h>
/* ************************************************************
関数名【 round() 】
丸め処理関数
処理概要
浮動小数点数を指定された精度で丸めた値を返す
引数
1) val = 丸めたい値
2) precision = 精度
戻り値
指定精度で丸めた値
************************************************************ */
double round( double val, int precision )
{
/* ***** 内部変数定義 ***** */
double ret;
char buf[256] = {'\0'};
char *p;

/* ***** 丸めを行い文字列に変換 ***** */
sprintf( buf, "%.*f", precision, val );
/* ***** 文字列から数値に再変換 ***** */
ret = strtod( buf, &p );

return ret;
}


49 :36:2010/08/02(月) 20:18:06
回答してくださった方々ありがとうございました

50 : ◆QZaw55cn4c :2010/08/02(月) 20:24:06
>>14
http://codepad.org/weAFyj0X
http://codepad.org/exMLMkqB
http://codepad.org/SL2Ml4Ml

51 :デフォルトの名無しさん:2010/08/02(月) 21:03:45
>>46
http://pc12.2ch.net/test/read.cgi/tech/1279286575/721

52 :デフォルトの名無しさん:2010/08/02(月) 21:04:25
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
   変数に格納された値、及びバイナリデータを、連続した1つのバイナリ配列に格納しなさい

  条件:
      1) 入力値は short型、入力バイナリは unsigned char型配列15bit(16bit - 1bit)分とする
      2) 出力(格納)バイナリ列は4バイト(32bit)分確保されているものとする
      3) 出力バイナリ列は右詰めとし、バイトオーダーはビッグエンディアンとする
        (入力バイナリの左1bit分に、int型入力値のバイナリデータが1bit右シフトしている状態)

例) ※一部
      short num = 65535;
       unsigned char inBinary[2] = 0xEFFF;
      unsigned char outBinary[4] = {'\0'};

      memcpy(outBinary, &num, 2);
      memcpy(outBinary + 2, inBinary, 2);

      // ここの時点で outBinaryのバイナリデータは
      // 0xFFEFFFFF となっている
      // 本当は 0xEFFFFFFF としたい

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc (バージョン不明)
 [3.3] 言語:C
[4] 期限:2010年08月05日 10:00まで
[5] その他の制限: Linux使用により、デフォルトはリトルエンディアンとなっている

ソケット通信で使われるそうです。よろしくお願いします

53 :前スレより:2010/08/02(月) 21:10:24
724 名前: デフォルトの名無しさん Mail: sage 投稿日: 2010/07/29(木) 21:23:50
[1] プログラミング宿題
[2]
XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点を
格子と呼ぶ。両方が非負整数の点を格子点と呼ぶ。
N>=1としコマンドラインでN個の格子点が与えられるものとする。
(同じ点が与えられた場合はその指定は無視する)
(0,0)から出発し格子上だけを通りすべての指定された格子点を1回ずつ通り(0,0)に戻り、なおかつ
同じ点は2度とおらないような経路で最短なものを一つ抽出するプログラムを作成
但し経路において右折が出来ないものとする。
解が無い場合は「不能」と表示すること。(最短経路解が複数あっても、抽出は一つのみで良い)
[3] Linux/GCC/ C/C++どちらでも可能
[4]9/16

54 :デフォルトの名無しさん:2010/08/02(月) 21:41:45
>>53
格子点 ⊆ 格子として考えて良いの? でもそれだと格子要らないよね
頭の悪いダイクストラを使って N * ((N - 1) ! - 1) 回、2点間の距離を求めさせればできそう

55 :前スレより追加:2010/08/02(月) 22:24:16
727 名前: 724 Mail: sage 投稿日: 2010/07/29(木) 21:40:23
問題文に不備がありました。訂正します。
×但し経路において右折が出来ないものとする
○但し経路において特定の格子点(x,yのいずれかが5の倍数である場合)
上では右折できないものとする

56 :デフォルトの名無しさん:2010/08/02(月) 23:49:05
>>54
>でもそれだと格子要らないよね
前スレでも散々言われてたが、通れるのは格子の上だけ。
おまえさ、読解力がハナから無いからこういう問題向いてないよ。


57 :デフォルトの名無しさん:2010/08/02(月) 23:54:32
最近、ここ煽りんこが居るの?
アリジゴクにでも嵌ったんじゃね?

58 : ◆NeStPsnpRk :2010/08/03(火) 00:13:26
リトルエンディアンのファイル読み込みルーチンだと思うのですが、
これに対応する書き込みルーチンを教えてください!

unsigned char *readBytes(FILE *f, int n)
{
static unsigned char s[16];

if (fread(s, n, 1, f) != 1) {
exit(1);
}
return s;
}

unsigned long readUlong(FILE *f)
{
unsigned char *s = getBytes(f, 4);
return s[0] + 256LU * (s[1] + 256LU * (s[2] + 256LU * s[3]));
}

unsigned readUshort(FILE *f)
{
unsigned char *s = getBytes(f, 2);
return s[0] + 256U * s[1];
}


59 : ◆NeStPsnpRk :2010/08/03(火) 00:16:56
すいません、コピペをミスしました。
writeUlong関数とwriteUShort関数をどなたか作ってください。

unsigned char *readBytes(FILE *f, int n)
{
static unsigned char s[16];

if (fread(s, n, 1, f) != 1) {
exit(1);
}
return s;
}

unsigned long readUlong(FILE *f)
{
unsigned char *s = readBytes(f, 4);
return s[0] + 256LU * (s[1] + 256LU * (s[2] + 256LU * s[3]));
}

unsigned readUshort(FILE *f)
{
unsigned char *s = readBytes(f, 2);
return s[0] + 256U * s[1];
}


60 :デフォルトの名無しさん:2010/08/03(火) 00:23:34
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):標準入力から西暦、月、日を表す整数を読み込み、その日が何曜日かを
               判定するプログラムを作成せよ。
               ※年をy,月をm,日をdとする
               ※曜日はr=( y + y/4 - y/100 + y/400 + (13m+8)/ 5 + d ) % 7
※r=0が日曜日、r=1が月曜日・・・・のようになる
               ※ただし1月と2月は前の年の13月、14月として計算する

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2010年08月03日16:00まで
[5] その他の制限:特にありません

61 :デフォルトの名無しさん:2010/08/03(火) 00:29:46
前スレにも書きましたが、お願いします。
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
任意のnに対して、正則なn次正方行列の固有値を求めるプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年8月4日まで
[5] その他の制限:特になし
よろしくお願いします。


62 :デフォルトの名無しさん:2010/08/03(火) 01:01:07
>>60
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10907.c

63 :デフォルトの名無しさん:2010/08/03(火) 01:02:11
すまぬ >>62 は取り消し

64 :デフォルトの名無しさん:2010/08/03(火) 01:08:48
>>60
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10908.c

65 :デフォルトの名無しさん:2010/08/03(火) 01:18:45
>>59
普通にこういう感じでいいのかな

void writeBytes(FILE *f, unsigned char *s, size_t l)
{
if (fwrite(s, 1, l, f) != l) {
exit(1);
}
}

void writeUlong(FILE *f, unsigned long l)
{
unsigned char s[4];
s[0] = (unsigned char)(l >> 24) & 0xFF;
s[1] = (unsigned char)(l >> 16) & 0xFF;
s[2] = (unsigned char)(l >> 8) & 0xFF;
s[3] = (unsigned char)l & 0xFF;
writeBytes(f, s, 4);
}

void writeUshort(FILE *f, unsigned short w)
{
unsigned char s[2];
s[0] = (unsigned char)(w >> 8) & 0xFF;
s[1] = (unsigned char)w & 0xFF;
writeBytes(f, s, 2);
}


66 : ◆NeStPsnpRk :2010/08/03(火) 02:58:58
>>65
ありがとうございます!

67 :デフォルトの名無しさん:2010/08/03(火) 07:42:56
>>64
ありがとうございました!

68 : ◆QZaw55cn4c :2010/08/03(火) 08:33:56
>>61
調べてみましたが、正方行列になんらかの制限がつかないかぎり、非常に難しい問題になります。

69 :デフォルトの名無しさん:2010/08/03(火) 09:11:49
非常に難しい問題って… 数値演算では基本だぞ。
プログラミング演習の課題ならQR法そのままでOKだ。
検索すりゃ回答例そのものが見つかるくらいポピュラー。

http://www2.ee.knct.ac.jp/el/E4/H15-E406/eigenvalue6.html

70 :デフォルトの名無しさん:2010/08/03(火) 09:14:30
QZaw55cn4cの頭の中では十分に難しい問題なんだろな。


71 :デフォルトの名無しさん:2010/08/03(火) 09:39:53
>>51
こりゃひでーなw ワザとか?w

72 :デフォルトの名無しさん:2010/08/03(火) 10:44:33
C言語の問題なのですが

4ケタの番号,名前,名前(フリガナ),都道府県,住所,電話番号

といった300人分の名簿データみたいなcsvファイルがあり
それをで4ケタの番号どうりに単純ソートで昇順に表示して
番号を入力すると2分探索で探索を開始し
正しい番号を入力すると電話番号を、不正な番号を入力すると
エラー表示が出るプログラムを作成したいのですがわからず困ってます
どなたかよろしくお願いします
(malloc関数は使わずにとの事です)

73 :デフォルトの名無しさん:2010/08/03(火) 10:54:55
ガスライティング

74 :デフォルトの名無しさん:2010/08/03(火) 11:02:35
C言語の問題に回答しようと思っていますが、何がわらないのか、わからず困っています。
どなたかよろしくお願いします

75 :デフォルトの名無しさん:2010/08/03(火) 11:37:40
72です
300人分の名簿データみたいなcsvファイルがあり
それをで4ケタの番号どうりに単純ソートで昇順に表示する
という部分がわからず困っています

76 :デフォルトの名無しさん:2010/08/03(火) 11:49:20
>>75
”バブルソート”でググると幸せになれるかも

77 :デフォルトの名無しさん:2010/08/03(火) 11:49:35
テンプレに従わない奴ってなんなの

78 :デフォルトの名無しさん:2010/08/03(火) 12:08:51
>>69
演習で学生が回答できるレベルに限れば大抵はそうだな。
"任意のn"ってあるから実数だけで良いのか、とか収束スピードや精度を気にしなくていいかって事だろう。

79 :デフォルトの名無しさん:2010/08/03(火) 12:15:20
> "任意のn"ってあるから実数だけで良いのか
nが複素数って事か? お前天才すぎる。人類史上最強の天才。

80 :デフォルトの名無しさん:2010/08/03(火) 12:28:24
>>79は行列を扱ったことがないようだから放って置くとして、ここを見てる初心者のために補足すると、
整数nが大きいと、複素数まで考慮が必要かどうかを調べるだけでも演算量が半端なく大きい。
Cの演習であって数学ではないので、普通は出題しないと思うが。
注意すべきは、演習で作ったものがそのまま汎用的に使える場合は少ない、という事。

81 :デフォルトの名無しさん:2010/08/03(火) 12:34:36
>>47
最近はコテつきでやってますのでよくわかるのですが、突っ込まれるということはありがたいことです。

82 :デフォルトの名無しさん:2010/08/03(火) 12:50:08
>>75
>>76

ここはかっこよくシェルソートしようず

83 :デフォルトの名無しさん:2010/08/03(火) 13:33:06
>>69
>>61回答をお願いします

84 :デフォルトの名無しさん:2010/08/03(火) 15:08:02
固有値問題一つ解くのに、スパコンシステムを1個作ったって逸話
が残されてるくらいだから、奥はそれなりに広いのだろね

85 :デフォルトの名無しさん:2010/08/03(火) 15:18:37
>>83
>>69にあるURLの回答例では何が気に入らないのか説明して、
親切な人が納得すれば、作り直してくれるかも知れません。

86 :デフォルトの名無しさん:2010/08/03(火) 17:33:53
>>85
>>61回答をお願いします、日本を代表してお願いします

87 :デフォルトの名無しさん:2010/08/03(火) 17:42:58
>>86
熱意が足りない

88 : ◆QZaw55cn4c :2010/08/03(火) 18:08:24
>>69
実対称行列のみならず、一般の実行列でも、いろいろと前処理をすれば QR法が使えるのですね。ご指摘ありがとうございます。

89 :デフォルトの名無しさん:2010/08/03(火) 18:12:24
[1] 授業単元:プログラミング C
[2] 問題文(含コード&リンク):入力した5つのデータを大きい順に並び替えるプログラムを作れ。
例↓
a0=4
a1=7
a2=12
a3=1
a4=5
rank1: 12
rank2: 7
rank3: 5
rank4: 4
rank5: 1
             次に入力した5つのデータを大きい順に順番をつけるプログラムを作れ。
例↓
a0=4
a1=7
a2=12
a3=1
a4=5
a0=4 : rank4
a1=7 : rank2
a2=12 : rank1
a3=1 : rank5
a4=5 : rank3
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2010年08月04日12:00まで
[5] その他の制限:作成するプログラムは2つありますが、1つのソースにまとめるのではなく、2つに分けて作ってください。
よろしくお願いします

90 :デフォルトの名無しさん:2010/08/03(火) 18:33:39
Dr.schemeでの課題です。
「フィボナッチ数列を返すfibsを作りなさい。ただし引数として項の値の上限limitを与えるものとする。
たとえば項の上限を100とすると
(fibs 100)→(1 1 2 3 5 8 13 21 34 55 89)」

(define (fibs limit)
(fibs2 1 1 limit))
(define (fibs2 a b limit)
(空欄  (fibs(?) b (+ a b) limit)

ここまでは先生が教えてくれました。
他にもやりかたがあるらしいのですが、
これが一番処理が早いそうです。
空欄の所を埋めればできると先生が言ってました。
たぶんfilter関数を使うんじゃないかなと思ってます。
あともしかしたら(?)の部分は先生の間違いじゃないかなと思ってます。
どなたかお願いします。


91 :デフォルトの名無しさん:2010/08/03(火) 18:35:24
テンプレに従わない奴ってなんなの

92 :デフォルトの名無しさん:2010/08/03(火) 18:36:54
>>90
C/C++

93 :デフォルトの名無しさん:2010/08/03(火) 18:43:15
>>91
お前ら宿題頑張って解け。
問題も頑張って解釈しろ←ここの余計な追加

94 :デフォルトの名無しさん:2010/08/03(火) 20:17:10
イタリアンっぽく名前を仕立ててみました。
フィボナッチ > ヘヴォナッツィオ

95 :デフォルトの名無しさん:2010/08/03(火) 21:06:02
>>89
http://codepad.org/ytdT9qRi
別ファイルに分けるのは自分でやってね
あと、ソートが絶対に正確かは自信なし(一応確認はした)



96 :デフォルトの名無しさん:2010/08/03(火) 21:30:07
ソートはそぉ〜っとね

97 :デフォルトの名無しさん:2010/08/03(火) 21:36:14
>>96
( bb || !bb ) ?


98 :デフォルトの名無しさん:2010/08/03(火) 22:08:11
>>95
何をどう確認したのか教えてくれw

99 :デフォルトの名無しさん:2010/08/03(火) 22:28:45
そろそろ麻呂のクソースが発動しそうです ><;

100 :デフォルトの名無しさん:2010/08/03(火) 22:59:56
パンパンパーン
  ∧_∧ ∩
 ( ・∀・)彡☆
   ⊂彡☆))Д´) >>96
       ☆

101 : ◆QZaw55cn4c :2010/08/03(火) 23:46:04
>>72
http://codepad.org/CXzw36Wq
CSVファイルの読み込みは適当です。もしうまく読めなかったら、そのCSVファイルの一部を張って教えてください。

102 :デフォルトの名無しさん:2010/08/03(火) 23:46:55
>>99
コテつきで codepad へどうぞ。

103 :デフォルトの名無しさん:2010/08/03(火) 23:48:40
麻呂の円やかなクソースが出そうです ><;

104 :デフォルトの名無しさん:2010/08/03(火) 23:56:42
>>101
4ケタは番号だけにかかるものだろ、常識的に考えて

105 :デフォルトの名無しさん:2010/08/04(水) 00:01:09
>>104が何をいってるのかわからない、とおもってソースを見たらこれはひどい。

曲解する流れに乗ったのか?
あと、単純ソート。

106 :デフォルトの名無しさん:2010/08/04(水) 00:01:46
>>101
#define BUFFLEN 5
struct data {
int num;
char name[BUFFLEN];
char name2[BUFFLEN];
char pref[BUFFLEN];
char address[BUFFLEN];
char tel[BUFFLEN];
};

こりゃねーわ
やっぱ読解力ないよこの人
電話番号が4桁で済むわけねーじゃん


107 :デフォルトの名無しさん:2010/08/04(水) 00:05:15
お前ら苛めちゃイカン。苛めちゃ・・・ぷっ、ぷぷぷ、ブリッ
あっやべっ、漏れた

108 :デフォルトの名無しさん:2010/08/04(水) 00:11:06
>>106
そこまで長いのかくなら、回答コードを書いてやれよ

109 :デフォルトの名無しさん:2010/08/04(水) 00:16:44
>>108
cじゃなくてperlとかのほうが楽だろ、これ。


110 :デフォルトの名無しさん:2010/08/04(水) 00:23:27
>>109
アルゴリズムの実装が主だからなぁ。
見つけるだけ、ソートするだけならそれぞれコマンドひとつなわけで。

111 : ◆QZaw55cn4c :2010/08/04(水) 00:28:06
>>72
http://codepad.org/Ua20QLc9
たしかに電話番号その他の情報を入れ込むには、ちと領域長が短すぎましたね。テスト用に短く設定したまま忘れておりました。
多数からのご指摘、感謝いたします。

あと、シェルソートを標準ライブラリの qsort() と同じインターフェースと同じになるようにしておきました。
要素の交換のために内部で malloc() しているのが、ちょっとまずいのですが、いつか直す機会があればいいですね。

問題がまだ残っておればご指摘いただけると嬉しゅうございます。m(_ _)m


112 :デフォルトの名無しさん:2010/08/04(水) 00:31:58
麻ー呂っくでおじゃるか、さすが目の付け所が違うでおじゃる。

113 :デフォルトの名無しさん:2010/08/04(水) 00:34:53
for (h = 1; h < n; h = 3 * h + 1)
;
h = (h - 1) / 3;

エラーは出ないだろうけど、
ここ何?


114 :デフォルトの名無しさん:2010/08/04(水) 00:41:51
>>113
シェルソートでの、比較&交換間隔 h を決めています。
ここでは、h(n+1) = 3 * h(n) + 1 (1, 4, 13, 40, ... ) という数列を使用しています。
要素数が 15 なら最初の h は 13 にして、以下 4, 1, と変化させます。
要素数が 50 なら最初の h は 40にして、以下 13, 4, 1 とします。

‥‥‥というつもりですが、いかがでしょうか?

115 :89:2010/08/04(水) 00:52:19
>>95
作成していただいたプログラムをコンパイルしたのですが、問題文の主旨とは
異なる動作をしてしまいました。

どなたか>>89のプログラム作成をお願いできませんでしょうか?

116 :デフォルトの名無しさん:2010/08/04(水) 01:46:04
>>111
エラーチェックは大してなくともいいだろうけど、宿題的には4桁の数字ぐらいのチェックをしておくといいと思う。

117 :デフォルトの名無しさん:2010/08/04(水) 01:56:21
4桁だけあって湿気た

118 :デフォルトの名無しさん:2010/08/04(水) 01:58:42
>>116
たしかに第一要素の数字については、特に 4 桁限定としては書いていませんね。これも文字列にしておいたほうがよかったかなあ。

119 :デフォルトの名無しさん:2010/08/04(水) 02:05:31
>>89, >>115
http://codepad.org/9SJ5m2xK
上の問題ではprint1,下の問題ではprint2を使う

120 :デフォルトの名無しさん:2010/08/04(水) 03:13:00
[1] 授業単元:
C++プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10909.txt
[3] 環境
 [3.1] OS:
Windows
 [3.2] コンパイラ名とバージョン:
Visual Studio 2008
 [3.3] 言語:
C++
[4] 期限:
8月6日(金) 23:59まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
最後の問題だけが解けませんでした。よろしくお願いします。

121 :デフォルトの名無しさん:2010/08/04(水) 04:07:42
#include<iostream>
using namespace std;

struct test{
char name[21];
int score;
};

int main(){
test t[5], tmp;
int i, j;

for( i=0; i<5; i++ ){
cout << "name" << i+1 << "?";
cin >> t[i].name;
cout << "score" << i+1 << "?";
cin >> t[i].score;
cout << "-------------------\n";
}
for( i=0; i<4; i++ ){
for( j=i+1; j<5; j++){
if( t[i].score < t[j].score ){
tmp = t[i];
t[i] = t[j];
t[j] = tmp;
}
}
}
for( i=0; i<5; i++)
cout << t[i].name << ":" << t[i].score << "\n\n";
return 0;
}

122 :デフォルトの名無しさん:2010/08/04(水) 04:09:43
文字数エラーチェック必要なら自分で入れろw
あと標準ライブラリ使わないって無理でしょw
STLが無理と勝手に解釈したからw

123 :デフォルトの名無しさん:2010/08/04(水) 07:34:26
ここまで未解決の質問って >>52>>53だけ?
>>52はビットフラグとかシフトとか、バイトオーダーはスワップで何とかなるのかな
>>53は問題の意味がよく理解出来ないけど、ダイクストラ法の問題?

124 :89:2010/08/04(水) 08:26:56
>>119
ありがとうございました!

125 :デフォルトの名無しさん:2010/08/04(水) 13:50:15
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):以下の2つのプログラムを作成せよ。
               1)3×3の行列AとBを標準入力から読み込み、その和を計算し、表示するプログラム
               2)3×3の行列AとBを標準入力から読み込み、その積を計算し、表示するプログラム
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年08月04日18:00まで
[5] その他の制限:2次元配列を使って作成してください
今日の18:00までなのでどうぞよろしくお願いします

126 :デフォルトの名無しさん:2010/08/04(水) 14:51:11
どのレベルの出力が求められてるんだ?w
#include<stdio.h>

int main(void){
int i, j, a[3][3], b[3][3];
for( i=0; i<3; i++){
for( j=0; j<3; j++){
printf("入力:");
scanf("%d", &a[i][j]);
printf("入力:");
scanf("%d", &b[i][j]);
}
}
printf("行列の和\n");
printf(" | %3d %3d %3d |\n", a[0][0]+b[0][0],a[0][1]+b[0][1],a[0][2]+b[0][2]);
printf(" |%13c|\n",' ');
printf(" | %3d %3d %3d |\n", a[1][0]+b[1][0],a[1][1]+b[1][1],a[1][2]+b[1][2]);
printf(" |%13c|\n", ' ');
printf(" | %3d %3d %3d |\n", a[2][0]+b[2][0],a[2][1]+b[2][1],a[2][2]+b[2][2]);
return 0;
}
こんな感じでいいのかな?

127 :デフォルトの名無しさん:2010/08/04(水) 16:31:33
[1] 授業単元: 情報科学U
[2] 問題文(含コード&リンク): 出席番号と数学,英語,国語,理科,社会の点をキーボードから読み込み,
各人の合計点,平均点と共に表示するプログラムを作成しなさい.
1)出席番号,各教科点数,合計点,平均点を格納する配列を使ったプログラムを作る.
2)構造体を使ったプログラムを作る.
3)成績の良い学生から順に表示するプログラムにする.

・キーボードからの入力
10001 90 83 75 82 66
10002 73 64 56 47 52
10003 87 65 59 52 73
・画面出力
学籍番号 英語 数学 国語 理科 社会 合計 平均
10001    90   83 75 82 66  396 79.2
10002    73   64   56  47   52  336 67.2
10003    87   65  59  52   73  292 58.4

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2010
 [3.3] 言語: C/C++どちらでも可
[4] 期限: 2010年8月20日12:00まで
[5] その他の制限: stdio.hでお願いします
どうぞよろしくお願いします

128 :デフォルトの名無しさん:2010/08/04(水) 17:28:10
>>127
1問目
#include<stdio.h>

int main(void){
int attend_num[3], eigo[3], suugaku[3], kokugo[3], rika[3], syakai[3], total[3],i;
float ave[3];
for( i=0; i<3; i++){
scanf("%d %d %d %d %d %d", &attend_num[i],&eigo[i],&suugaku[i],&kokugo[i],&rika[i],&syakai[i]);
total[i] = eigo[i] + suugaku[i] + kokugo[i] + rika[i] + syakai[i];
ave[i] = total[i] / 5;
}
printf("学籍番号 英語 数学 国語 理科 社会 合計 平均\n");
for( i=0; i<3; i++)
printf( "%-8d %-4d %-4d %-4d %-4d %-4d %-4d %-4.1f\n",attend_num[i],eigo[i],suugaku[i],kokugo[i],rika[i],syakai[i],total[i],ave[i]);
return 0;
}

129 :デフォルトの名無しさん:2010/08/04(水) 17:29:22
>>127 
3問目
#include<stdio.h>
struct test{
int attend_num, eigo, suugaku, kokugo, rika, syakai, total;
float ave;
};

int main(void){
int i, j;
test t[3], tmp;

for( i=0; i<3; i++){
scanf("%d %d %d %d %d %d", &t[i].attend_num,&t[i].eigo,&t[i].suugaku,&t[i].kokugo,&t[i].rika,&t[i].syakai);
t[i].total = t[i].eigo + t[i].suugaku + t[i].kokugo + t[i].rika + t[i].syakai;
t[i].ave = t[i].total / 5;
}
for( i=0; i<2; i++ ){
for( j=i+1; j<3; j++){
if( t[i].total < t[j].total ){
tmp = t[i];
t[i] = t[j];
t[j] = tmp;
}
}
}
printf("学籍番号 英語 数学 国語 理科 社会 合計 平均\n");
for( i=0; i<3; i++)
printf( "%-8d %-4d %-4d %-4d %-4d %-4d %-4d %-4.1f\n",t[i].attend_num,t[i].eigo,t[i].suugaku,t[i].kokugo,t[i].rika,t[i].syakai,t[i].total,t[i].ave);
return 0;
}

130 :デフォルトの名無しさん:2010/08/04(水) 17:31:31
>>126
ありがとうございました

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)