- 1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 115代目 pc11.2ch.net/test/read.cgi/tech/1217741118/
- 716 名前:デフォルトの名無しさん [2008/10/26(日) 12:41:28 ]
- >>712
出来ました。ありがとうございます。 ちなみにディレクトリがdでなく-になってしまうのですがまだ他に 何か必要でしょうか?
- 717 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:52:23 ]
- 横から口だし失礼
ボイヤームーアってどのくらい速いんですか? ソートの種類で例えるとどのソートに匹敵する実用的なアルゴリズムなんでしょうか?
- 718 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:54:30 ]
- >>717
つ www.google.co.jp/
- 719 名前:デフォルトの名無しさん [2008/10/26(日) 12:59:00 ]
- setuidbit, setgidbit, stickybitなどを考慮するともっとひどいコードに。
- 720 名前:デフォルトの名無しさん [2008/10/26(日) 13:10:37 ]
- Visual Studio使ってる人ってVisual C++ Express Edition ?
- 721 名前:デフォルトの名無しさん [2008/10/26(日) 13:10:49 ]
- >>719
なるほど。あんまし大変になりそうであればとりあえずこんな感じで十分 なのでいいです。ありがとうございました。
- 722 名前:デフォルトの名無しさん [2008/10/26(日) 14:02:41 ]
- [1] 授業単元:構造体
[2] 問題文:1,名簿ファイルを読み込み、生年月日の順に並べる、苗字の順に並べる、名前の順に並べる、mail addressの順に並べるプログラムを作れ。ただし、文字列の大小を比較する関数として、strcmpを用いよ。 #include <string.h> int strcmp(char str1, char str2); ------------------------ str1>str2 → 0より小さな整数 ,str1==str2 → 0 ,str1<str2 → 0より大きい整数 関数 void SortData1(struct person *person, int *index, int n); /* 生年月日の順番に並べる */ 関数 void SortData2(struct person *person, int *index, int n); /* 名の順番に並べる */ 関数 void SortData3(struct person *person, int *index, int n); /* 姓の順番に並べる */ 関数 void SortData4(struct person *person, int *index, int n); /* mail-addressの順番に並べる */ をそれぞれ作り、 結果を表示せよ。 2,県の郵便番号のリスト(メンバーの数約5000個)を配列の大きさだけを変えて、これを郵便番号順、読み仮名順に並べ替えるプログラムを作れ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年10月27日16:00まで [5] その他の制限:1の関数の宣言は以下のようにする。 関数 void ReadData(struct person *person, int *index, int *n); 関数 void PrintData(struct person *person, int *index, int n); 関数ReadData、PrintDataでは、 while(scanf(“%d %s %s %s %s”,&person[i].birth, person[i].first_name, person[i],last_name, person[i].mail_addr, person[i].thema)!=EOF){ index[i]=i; i++; } ------------------------------------------------------------- for(i=0;i<n;i++){ printf(“%d %s %s %s %s\n”,person[index[i]].birth, person[index[i]].first_name, person[index[i]].last_name, person[index[i]].mail_addr,person[index[i]].thema); } とりあえず、問題1の並び替えがうまく出来ませんorz お願いします。
- 723 名前:デフォルトの名無しさん [2008/10/26(日) 14:09:02 ]
- [1] 授業単元:プログラミング
[2] 問題文: Newton--Raphson法を用いて X*X*X-7X*X+16X-10=0 の解を求めよ。 [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C [4] 期限:10/24 [5] その他の制限:初心者です。なるべく基本的な構造でお願いします。 >>474 以前お願いしたのですがうまくいきません。どなたか問題点を指摘 していただきたいです。また初歩的な30行程度のプログラムにしたいと 思っています。
- 724 名前: ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 14:26:39 ]
- [1] 授業単元:離散数学
[2] 問題文(含コード&リンク): 重みつき無向グラフを隣接行列で表現し、縮約を行うプログラムを実装せよ。 [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年10月30日まで [5] その他の制限: 期限が近めですが、なんとか、宜しくお願いします。
- 725 名前:デフォルトの名無しさん [2008/10/26(日) 14:29:14 ]
- >>723
#include <stdio.h> #include <math.h> #define EPS0 1.0e-5 double fnc(double x); double dfnc(double x); main() { double x0, x1; x0 = 0; x1 = 10; while(fabs(x1 - x0) > EPS0) { x0 = x1; x1 = x0 - fnc(x0)/dfnc(x0); } printf("x = %lf\n", x1); } double fnc(double x) { return x*x*x - 7*x*x + 16*x - 10; } double dfnc(double x) { return 3*x*x - 14*x + 16; }
- 726 名前:デフォルトの名無しさん [2008/10/26(日) 14:36:19 ]
- >>725
ありがとうございます。ものすごく早い回答がいただけて とてもうれしいです。早速じっこうしてみましたが「関数の 値を返すべき」という警告がでるのでぜひ解除して いただきたいです。本当にお願いします。
- 727 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:38:31 ]
- >>726
main()の最後に return 0; を付ければいい
- 728 名前:デフォルトの名無しさん [2008/10/26(日) 14:42:17 ]
-
CodeGear C++ 5.92 for Win32 Copyright (c) 1993, 2007 Code kadai5z.c: 警告 W8070 kadai5z.c 20: 関数は値を返すべき(関数 main ) 警告 W8066 kadai5z.c 30: 実行されないコード(関数 dfnc ) エラー E2378 kadai5z.c 31: Return文に ; がない(関数 dfnc *** コンパイル中に 1 個のエラーが発生しました *** このような表示になります。
- 729 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:49:47 ]
- 縮約のアルゴリズムってこんな感じ?面倒だから実装はしないけど
縮約関数: func(G, v, w) 意味: グラフGに於ける点(v,w)で結ばれる辺を縮約する 仕様: グラフGに於ける点wを削除し、点wに接続する全有向辺を点vに接続し直す(有向辺を追加する) ただし、重複している場合は追加しない (点wを削除するためには、新規にグラフG’を作成?)
- 730 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:51:18 ]
- 辺v,wの削除も
- 731 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:51:36 ]
- hairanai
- 732 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:52:48 ]
- 無向グラフだ
- 733 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 15:29:11 ]
- [1] 授業単元:プログラミング
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7855.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:10/27 [5] その他の制限:途中まで作成はしたのですが上手くいきません。 よろしくお願いします。
- 734 名前:デフォルトの名無しさん [2008/10/26(日) 15:40:32 ]
- >>733
#include<stdio.h> #define N 100 main() { int t; double a, x[N+1]; printf("成長パラメーターの入力"); scanf("%lf", &a); x[0] = 0.5; for (t=0;t<=N-1;t++) { x[t+1] = a * x[t] * (1.0 - x[t]); } for (t=0;t<=N;t++) printf("t=%dのとき人口は%lgです。\n",t,x[t]); return 0; }
- 735 名前:724 ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 15:42:27 ]
- >>729
はい、ただ重複している場合は追加しないのではなく、 重みを足す事になっています。 なんとか、実装して頂けると嬉しいです。。
- 736 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:07:21 ]
- >>735
やってみる
- 737 名前:724 ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 16:21:56 ]
- >>736
ありがとうございます!
- 738 名前:デフォルトの名無しさん [2008/10/26(日) 16:38:30 ]
- [1] 授業単元:プログラミング
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7856.txt [3] 環境 [3.1] OS:MacOSX→Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:10/28 [5] その他の制限: 初心者ながらいろんなところでヘルプを得ながら必死に 書き上げたのですが、実はMacOSX上でしか動作しないことがわかりました。 Linux上でコンパイルするとエラーになってしまいもはやデバッグのしようが わかりません。Linux上での動作が条件なので書き直したいのですが、どなたか 助けてください。
- 739 名前:デフォルトの名無しさん [2008/10/26(日) 16:47:47 ]
- >>738
NetBSDでも動作するよ。
- 740 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:48:10 ]
- >>738
linuxでも動いた。 コンパイルするシステムのヘッダファイルとかそういうの次第。
- 741 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:56:58 ]
- [1] 授業単元: アルゴリズムとデータ構造
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7857.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年10月27日10:00
- 742 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:59:28 ]
- [1] 授業単元:C言語 「分野:ポインタ演習」
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=7744 の7858.txtです。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:08年10月27日24:00まで [5] その他の制限:お手数ですが、C言語の基本的な関数のみでお願いします。
- 743 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:59:33 ]
- >>737
出来た。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7860.txt
- 744 名前:デフォルトの名無しさん [2008/10/26(日) 17:10:49 ]
- >>742
#include <stdlib.h> #include <stdio.h> #include <memory.h> double horner(double x, double *a, int n); main() { int i, n; double x, *a; printf("Horner の方法で多項式を計算します!\n"); printf("次数n を入力して下さい:"); scanf("%d", &n); a = (double*)malloc(sizeof(double) * (n + 1)); printf("実数係数を順に入力して下さい:\n"); for(i = n; i >= 0; i--){ printf("a[%d] = ", i); scanf("%lf", &a[i]); } printf("x の値を入力して下さい:"); scanf("%lf", &x); printf("多項式の値 = %lg\n", horner(x, a, n)); free(a); return 0; } double horner(double x, double *a, int n) { if (n == 0) return a[0]; return x * horner(x, a + 1, n - 1) + a[0]; }
- 745 名前:724 ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 17:27:55 ]
- >>743
こんなに早く出来るなんて、思ってませんでした。。 本当にありがとうございました!
- 746 名前:デフォルトの名無しさん [2008/10/26(日) 17:45:25 ]
- >>739>>740
そうですか。確認有り難うございました。ある特定のLinuxの環境での実行が条件 なので、とにかくそこの環境でコンパイルしたいのですが、以下のエラーって どう変えればいいかとかわかったりしますでしょうか?エラーになる環境がないと 難しいかも知れませんが。。(エラーになるLinuxの環境が何のディストリビューション かもわからず、すみません。Linuxクラスタだとか聞きましたが) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7861.txt
- 747 名前:デフォルトの名無しさん [2008/10/26(日) 17:49:18 ]
- >>746
#include <unistd.h>
- 748 名前:デフォルトの名無しさん [2008/10/26(日) 17:54:21 ]
- 鼻血が止まらん
- 749 名前:デフォルトの名無しさん [2008/10/26(日) 17:54:44 ]
- すまん。誤爆だ。
- 750 名前:デフォルトの名無しさん [2008/10/26(日) 17:57:50 ]
- >>747
ありがとうございます。追加しましたが、どうやらエラーは変わらないようです
- 751 名前:デフォルトの名無しさん [2008/10/26(日) 18:11:45 ]
- >>750
ディストロがわからないのはつらいね。 #include <sys/types.h> では?
- 752 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 18:15:28 ]
- 自分が今使ってるOSがなんだか分からんの?
- 753 名前:デフォルトの名無しさん [2008/10/26(日) 18:27:04 ]
- >>751
有り難うございました。半分くらい減りました。残るエラーはこちらです↓ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7862.txt >>752 すみません、自分の管理している環境じゃないもので、テルネットして実行しています。 uname -aは打てますが、これが有益な情報かどうか不明です。。 (ちなみに打ったところ最後がi686 GNU/Linuxとなってました。)
- 754 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 18:55:06 ]
- >>753
その uname -a 結果ください。
- 755 名前:デフォルトの名無しさん [2008/10/26(日) 19:04:56 ]
- >>754
Linux XXXX 2.6.18-6-686-bigmem #1 SMP MM DD hh:mm:ss 2008 i686 GNU/Linux と出ました。 それとぐぐって出て来たヘッダファイル(fcntl.hとか)を適当に追加しましたが駄目でした。 S_IFMT, S_IFBLKとかって何に定義されてるんでしょうか
- 756 名前:デフォルトの名無しさん [2008/10/26(日) 19:06:19 ]
- すみません。Debian。ですかね。
- 757 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 19:09:50 ]
- >>734
ありがとうございました!
- 758 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 19:17:16 ]
- [1] 授業単元:プログラミング
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7863.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:10/27 [5] その他の制限:式の部分が上手くいきません。 よろしくお願いします。
- 759 名前:デフォルトの名無しさん [2008/10/26(日) 19:38:23 ]
- こうやって見ると数式のプログラムばかりだね
理学部やならいいけど、工学部情報学科ならば実務とはかけ離れてるのも大概にしろと
- 760 名前:デフォルトの名無しさん [2008/10/26(日) 19:38:56 ]
- プログラム演習は数式遊びの場じゃない
- 761 名前:デフォルトの名無しさん [2008/10/26(日) 19:40:09 ]
- 東大のプログラムの授業なんかは
ユニックスのパイプコマンドを作成しろとか サーバー通信なんちゃらの実務的なのが多い
- 762 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 20:03:15 ]
- >>761
東大じゃありませんが、1990年ごろの情報系学部演習ですでに、 ごく簡単なシェル/パイプを実装, (fork() +exec*()+pipe()) をやっていました。シグナルとかセマフォとかも。無論、当時の私には極悪・試行錯誤の連続で泊り込む勢いでした。 バークレーソケットは3年次後半でしました。 それはそうと、ロジスティック方程式を解いて(がんばれば高校数学でできます。)解析解に代入する、とかはどうでしょう。やっぱりだめですか。 つja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E6%96%B9%E7%A8%8B%E5%BC%8F 数値解析部門は、それはそれで習得しなければならないと思います。
- 763 名前:デフォルトの名無しさん [2008/10/26(日) 20:17:24 ]
- MATLBAでやったら全部一発
- 764 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 20:34:52 ]
- >>755
私の環境は WindowsXP/cygwin なんですが、エラーはでませんでした。(警告によるとキャストが必要なものはありましたが、まあ問題ない) さて、S_* などは、私の環境では sys/stat.h にあるのですが、(実体は /usr/include/sys/stat.h) >>755さんの環境でも、 インクルードファイルをみつけているようですね。(インクルードパスがちがっておれば、みつけられない、ってでてくると思います。) すると、暗黙の #define が unix(posix) 用になっていないのかもしれません。 gcc -v ソース.c 2> mes.txt として、mes.txt の内容をください。 2> がうまくいかないのであれば、その旨書き込んでください。
- 765 名前:デフォルトの名無しさん [2008/10/26(日) 20:56:37 ]
- >>764
レス有り難うございます。mes.txtをアップ致しました。 thread modelというのはposixになっているようですが。。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7864.txt
- 766 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 21:27:10 ]
- >>765
では、 gcc -Dunix -v ソース.c 2> mes2.txt の結果をください。 /usr/include/sys/stat.h の内容もください。 そ れ と、 このソースファイルをコンパイルしたいな、と思った動機を教えてください。というか白状してください。(笑) もし演習の課題ならば、コンパイルできない、という事態に陥らないよう、教官がいろいろ陰で配慮してくださるはず。 うまくいかないのは、課題を出した教官が怠慢だったのか、ということもあるかもしれませんが、 私の見るところ、自主的に今ある環境で自分のやりたいことをやってみた、という気がします。 その意気やよし! 最後まで付き合います。ただし今日は徹夜を覚悟してください。
- 767 名前:デフォルトの名無しさん [2008/10/26(日) 21:40:07 ]
- [1] 授業単元:データ構造とアルゴリズム演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7865.txt [3] 環境 [3.1] OS:UNIX [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 10月28日まで [5] その他の制限: 特になし よろしくお願いします
- 768 名前:デフォルトの名無しさん [2008/10/26(日) 21:50:29 ]
- >>766
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7866.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7867.txt アップ致しました。本当に課題です。文系なのに間違って海外の理系の学校に 来てしまい毎日半端ない宿題に追われているところです。なので、自主的に、 といいたいところですが今はとにかくコンパイルすることしか頭にありません。。 助けばかり乞うのは自分のためによくないのですが最近はあまりに半端ない分量の ため依存率が高くなってきました。
- 769 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:06:22 ]
- >>768
なんだか、教官が手抜きなんですねぇ。それは大変。 では、 gcc -v -D__USE_BSD -v ソース.c 2> mes3.txt として mes3.txt の内容をください。 あと、コンパイルできたかどうか、コンパイルできたのなら実行結果 (おそらくは ./a.out . > mes4.txt として mes4.txt に結果が入ると思います。) を教えて下さい。 あるいは教官に「コンパイルできないよ!」と主張してください。(そちらは昼ですか?) 30分後にのぞきます。
- 770 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:11:05 ]
- >>767
1-1: struct cell *cell2 = cell1->next; struct cell *cell3 = cell2->next; printf("%d\n%d\n%d\n", cell1->element, cell2->element, cell3->element); 1-2: struct cell *c; for (c = cell1; c != NULL; c = c->next) { printf("%d\n", c->element); }
- 771 名前:デフォルトの名無しさん [2008/10/26(日) 22:18:55 ]
- >>769
原因が判明しました。怒らないで下さい。いつもメイクファイルを使用しているのですが、 常にgccのオプションは-Wall -std=c99としています。先程たまたま-std=c99を取ったらコンパイル 出来てしまいました!(なんでMacの環境だと同じメイクファイルでエラーにならないんだろう。。) なぜかの原因究明はもう辞めて寝ます。徹夜したところなので。。ちなみに教官にMac OSXの環境で つくったからこれで勘弁して!って言ったら駄目だと言われました。厳しい世の中ですね。 色々とサポート有り難うございました。 以上
- 772 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:19:20 ]
- 2-1:
void append(struct cell **cell1, int e) { struct cell *cell2 = (*cell1)->next; (*cell1)->next = malloc(sizeof(struct cell)); (*cell1)->next->element = e; (*cell1)->next->next = cell2; } 2-2: void prepend(struct cell **cell1, int e) { struct cell *cell0 = malloc(sizeof(struct cell)); cell0->element = e; cell0->next = *cell1; *cell1 = cell0; } 使い方: append(&cell1, /* 新しい element */) prepend(&cell1, /* 新しい element */)
- 773 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:45:12 ]
- >>771
んー、それはそれで謎なんですが‥‥‥。 -std=c99 は、直近のCの規格でコンパイルする、ということでしかないので、今回は特に影響がないはず。 c99とすると、でインクルードするヘッダがかわるのでしょうか?c++ 風に <iostream> と.h がない書き方にしないといけないのでしょうか?よくわかりません。 このあたりは識者からのコメントをお待ちいたします。 実行結果を教えてくださるとありがたいです。ともあれ、おやすみなさい。
- 774 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:03:46 ]
- gccの場合、-std使うとたしかそれに合わせて標準のヘッダの中身も
変化する(#ifdefなどを使って)から、その影響はあると思う。
- 775 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:06:18 ]
- [1] 授業単元:Cプロギラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイルを参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_auxに含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:inux [3.2] コンパイラ名とバージョン:gc [3.3] 言語:C [4] 期限: ([2008年11月6日まで]
- 776 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:10:01 ]
- >>666
遅れましたが、ありがとうございました。
- 777 名前: ◆ojvIN3PEqY [2008/10/26(日) 23:31:37 ]
- [1] 授業単元:プログラミング
[2] 問題文:ビットマップディスプレイの原理を用いて、入力した整数(0〜1000000)を、ビットマップ式に表示するプログラムをつくれ。 例 357111 *** *** *** * * * * * * * * * *** *** * * * * * * * * * * *** *** * * * * [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年10月27日まで [5] その他の制限:配列の基礎まで習いました。 お願いいたします
- 778 名前: ◆ojvIN3PEqY [2008/10/26(日) 23:33:36 ]
- 例がおかしくなってしまったので無視してください(*_*)
- 779 名前:デフォルトの名無しさん [2008/10/26(日) 23:40:11 ]
- [1] 授業単元:ハードウェア設計
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7844.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C++ [4] 期限: 10月28日まで [5] その他の制限: 特になし よろしくお願いします。
- 780 名前:775 mailto:sage [2008/10/26(日) 23:43:32 ]
- 問題文に間違いがあったので修正します。
[1] 授業単元:Cプロギラミング [2] 問題文(含コード&リンク): LU分解法を用いて、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイルを参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_auxに含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:inux [3.2] コンパイラ名とバージョン:gc [3.3] 言語:C [4] 期限: ([2008年11月6日まで]
- 781 名前:デフォルトの名無しさん [2008/10/26(日) 23:44:21 ]
- >>777
#include <stdio.h> #include <stdlib.h> int main() { char s[81]; int i = 357111; sprintf(s, "banner %d", i); return system(s); }
- 782 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:48:42 ]
- >>774
んー、では 64bit がらみですか?それとも <sys/stat.h> の内容が変わったのか? ちょっと調べてみましたが、最近は stat(2) 返り値の st_mode の判別方法として、 if (S_ISBLK(infobuf.st_mode)) printf("block device.\n"); というマクロが定義されているようですね。 私は、 if ((infobuf.st_mode & S_IFMT) == S_IFBLK) printf("block device.\n"); しかしらなかったのですが。 ひきつづき識者のコメントをいただけたら、と思います。
- 783 名前:デフォルトの名無しさん [2008/10/27(月) 00:09:30 ]
- 基本情報スレからきました
- 784 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:17:26 ]
- >>777
#include<stdio.h> #include<string.h> // memset #define WIDTH (4*7) #define HEIGHT (5) void numset(char screen[HEIGHT][WIDTH], int x, int y, int num){ static const char font[][4*10+1]={ // 0123456789 の順に 3x5 で文字+数字間と末尾に一文字空白入れる "*** * *** *** * * *** *** *** *** *** ", "* * * * * * * * * * * * * * ", "* * * *** *** *** *** *** * *** *** ", "* * * * * * * * * * * * * ", "*** * *** *** * *** *** * *** *** ", }; int ix, iy; for(iy=0;iy<5;iy++) for(ix=0;ix<4;ix++) screen[y+iy][x+ix]=font[iy][num*4+ix]; } void display_number(long value){ char screen[HEIGHT][WIDTH]; long div, x, y=0; if(value<0 || value>1000000) return; memset(screen, '\0', sizeof(screen)); for(div=1;value/div>=10;div*=10); for(x=0;div>0;div/=10,x+=4) numset(screen, x, y, (value/div)%10); for(y=0;y<HEIGHT;y++) printf("%s\n", screen[y]); } int main(int argc, char *argv[]){ int num=123456; if(argc==2) sscanf(argv[1], "%d", &num); display_number(num); return 0; }
- 785 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:37:21 ]
- >>782
ヘッダ見ればいいんじゃ、とおもうんだけど。。。
- 786 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:50:25 ]
- 円周率3より悲惨な事実w
572 名前:名無し検定1級さん 投稿日:2008/10/27(月) 00:48:29 と思ったけど、今の大学3年以下のゆとり教育課程では 方程式を高校で初めて学ぶんだったねw ありえんwww 複素数無くなったしw
- 787 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:53:46 ]
- 二次方程式 / 複素数平面 じゃないかね
- 788 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:54:39 ]
- >>779
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7869.txt 問題2についてはなんか違う気もするけど仕様を満たせばいいかな。 gccでコンパイルできるかなぁ
- 789 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:58:40 ]
- 1,
1,2, 3,2,1, 1,2,3,4, 5,4,3,2,1, . . . これらの規則的な数字を配列のvd[1〜100]に順番に入れていきたいんですけどどうしたらいいでしょう。 あとその反対の 1, 2,1, 1,2,3, 4,3,2,1, 1,2,3,4,5, . . . をvm[1〜100]に順番に入れたいのですが、 ループさせてうまく配列に入れられないでしょうか。 わかるかた教えてください。 お願いします。
- 790 名前:デフォルトの名無しさん [2008/10/27(月) 01:07:17 ]
- [1] 授業単元:構造体
[2] 問題文:1,名簿ファイルを読み込み、生年月日の順に並べる、苗字の順に並べる、名前の順に並べる、mail addressの順に並べるプログラムを作れ。ただし、文字列の大小を比較する関数として、strcmpを用いよ。 #include <string.h> int strcmp(char str1, char str2); ------------------------ str1>str2 → 0より小さな整数 ,str1==str2 → 0 ,str1<str2 → 0より大きい整数 関数 void SortData1(struct person *person, int *index, int n); /* 生年月日の順番に並べる */ 関数 void SortData2(struct person *person, int *index, int n); /* 名の順番に並べる */ 関数 void SortData3(struct person *person, int *index, int n); /* 姓の順番に並べる */ 関数 void SortData4(struct person *person, int *index, int n); /* mail-addressの順番に並べる */ をそれぞれ作り、 結果を表示せよ。 2,県の郵便番号のリスト(メンバーの数約5000個)を配列の大きさだけを変えて、これを郵便番号順、読み仮名順に並べ替えるプログラムを作れ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年10月27日16:00まで [5] その他の制限:1の関数の宣言は以下のようにする。 関数 void ReadData(struct person *person, int *index, int *n); 関数 void PrintData(struct person *person, int *index, int n); 関数ReadData、PrintDataでは、 while(scanf(“%d %s %s %s %s”,&person[i].birth, person[i].first_name, person[i],last_name, person[i].mail_addr, person[i].thema)!=EOF){ index[i]=i; i++; } ------------------------------------------------------------- for(i=0;i<n;i++){ printf(“%d %s %s %s %s\n”,person[index[i]].birth, person[index[i]].first_name, person[index[i]].last_name, person[index[i]].mail_addr,person[index[i]].thema); } とりあえず、問題1の並び替えがうまく出来ませんorz お願いします。
- 791 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:08:57 ]
- >>787
もちろん一次のこと さらに複素数も無限級数もやらなくなった
- 792 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:09:34 ]
- IT業界だけじゃないけど、これから日本のエンジニアは大変なことになる
大量に採用するなら今年までにしとけ 再来年からはヤバイ奴らが入社してくるぞww
- 793 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:10:28 ]
- >>790
名簿ファイル下さい
- 794 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:13:49 ]
- >>791
んじゃ中学で何習うのorz
- 795 名前:デフォルトの名無しさん [2008/10/27(月) 01:24:26 ]
- >>793
名簿ファイルはリアルに教授の名前載ってるから、あげるの無理なんです すみません
- 796 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:25:49 ]
- >>795
せめて構造体の中身教えてな themaには何が入ってるんだ? 研究テーマか何かか?
- 797 名前:775 mailto:sage [2008/10/27(月) 01:26:48 ]
- >>780をお願いします。
- 798 名前:デフォルトの名無しさん [2008/10/27(月) 01:37:20 ]
- >>796
名簿はこんな感じ 19670712 namae a aaaaaa@xxx.aaaaaa.ac.jp Uchu 19790102 namae b bbbbbb@xxx.bbbbbb.ac.jp Kotaidenshi 19300303 namae c cccccc@xxx.cccccc.ac.jp Uchu ---------------------------------------------------- themaには研究テーマが入ってます 宜しくお願いします
- 799 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 02:27:33 ]
- [1] 授業単元:プログラミング
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7863.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:10/27 [5] その他の制限:何度もすいません・・・ 式がやはりネックです
- 800 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 02:38:23 ]
- >>701
>別に1024個区切りで平均なり飛び出してる値なりが分かればいいんでしょ? そういうことです。 >「(平均値+5*ρ)以上の値を最大値(極大値)とするように変更」という課題があるけれど、 じゃあ最初の課題では極大値の判定はどうやってやればいい? 平均値以上の値を最大値(極大値)としなきゃいけないんですOTL
- 801 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 03:00:37 ]
- >>790
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7870.txt とりあえず、1番だけ。 2番は問題の意味がよくわからない。 もっと詳しく書いてくれ。 必要なデータとかあればそれもよろしく。 今日はもう寝る。
- 802 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 03:17:59 ]
- >>663 問題修正
[1] 授業単元: 信号処理 [2] 問題文(含コード&リンク): @ 5行209921列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と(平均値+5*ρ)以上の値を最大値(極大値)を求めなさい。ρを標準偏差とする。 最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。この作業をファイルの最後の値までやりなさい。 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。 ヒント:malloc関数 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。) kissho6.xii.jp/14/src/1yon14506.zip.html DLKey:data A 求めた最大値をpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を表示させ、2行目からは次の1024個中から求めた最大値を表示させなさい。 B @で読み込んだファイルの数値は周波数1,2,3,…,1024の時の値である。1024個で区切ったのはそのためである。 @で求めた各々の最大値の周波数を [周波数]最大値 となるようにAで出力したpeak.txtに出力できるように変更させなさい。 例:peak.txt→ [67]3.214283 [84]2.4930390 [148]5.3485704 ・・・・ [38]3.4255342 [72]3.214283 [98]2.434924390・・・・ ・ ・ ・ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年10月27日午後5時 [5] その他の制限: 特になし よろしくお願いします。
- 803 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 03:20:10 ]
- >>802 補足説明
まず@番目の問題は、二次元配列で出力されている値のファイルを読み込むこと。 その値を1024個を一つのくくりとする。つまり1個目[0][0],2個目[0][1],・・・,5個目[0][4],6個目[1][0],・・・,1024個目[205][3]とする。このとき個数=周波数の値でもある。 この1024個の値の平均値と最大値(極大値)を求める。 最初の1024個の最大値(極大値)を求めたら、次の1024個の最大値(極大値)を求める。 次の1024個とは1個目[206][0],2個目[206],[1],・・・,1024個目[411][3]とする。これをファイルの最後の値まで繰り返し行う。 よろしくお願いします。
- 804 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 03:57:31 ]
- [1] 授業単元:配列
[2] 問題文:10人分の2科目の試験得点(100点満点)を2次元配列に初期化しておく。2次元配列vの宣言と初期化は以下のとおり int v[2][10]={{55,67,45,78,89,91,73,50,80,69} {44,59,87,92,60,51,77,89,64,53}}; この10人分の科目別得点の平均を求めなさい。ただし、2科目の科目別平均は次の1次元配列に格納する。 double mean[2] doubleという型名で配列の名前がmean 《実行結果》 科目1の平均=69.700000 科目2の平均=67.600000 [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C [4] 期限:10/27 午後1時 [5] その他の制限:出来るだけ短く どうかよろしくお願いします
- 805 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 03:57:47 ]
- >>785
そう、だから >>768 で sys/stat.h を貼ってもらって、それをみたんですが、 くだんの#define は #if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN の下で定義されていました。 mac osx = darwin ≒ FreeBSD+mach? であっても、 -std=c99 とすると、この上のどれも #define されず、 それでいて-std= を指定しなければ、この上のどれかが #define される ということ、かつ >>774 より-std で#define の内容がかわる、ということですから、そんなことがあっても不思議でない、ということです。 単にそれだけですが。
- 806 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 04:19:58 ]
- >>805
失礼。認識間違いしていました。 >>768の環境では__USE_BSD も __USE_MISC も __USE_XOPEN もどれも #define されないようですね。 でも手元のVine Linux 4.2 では __USE_BSD と __USE_MISC が #define されています。(#error で確認) したがって >>768 の環境に問題があるのでしょうか。debian な人にお願いするしかないですね。
- 807 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 04:24:18 ]
- >>806
手元の Vine Linux 4.2 で -std=c99 をコンパイルすると、>>768 と同じ現象が再現しました。 じゃ、いったいなにが #define されているのでしょうか‥‥‥。
- 808 名前:デフォルトの名無しさん [2008/10/27(月) 08:13:30 ]
- 【質問テンプレ】
[1] 構造体: [2] 英文なので翻訳します。 この宿題の中で、僕はFieldとScreenという2つのクラスを持っています。 Screen というクラスはField というクラスを80個持ちます。 で、問題はここからなのですが 教授は「Screenが無制限にFieldを持つようにプログラムを作れば、ボーナス点をやる」 とか言いだしたのでどうやるか教えてください。 [3] 環境 [3.1] うぃんどーず [3.2] ぼーらんど [3.3] C++ [4] 一週間後 [5] 制限:new とか使う感じです。
- 809 名前:デフォルトの名無しさん [2008/10/27(月) 08:13:42 ]
- >>801
ありがとうございます 問題2は 郵便番号 区(漢字で) 町(カタカナで) 町(漢字で) の順に並んだ名簿のファイルを読み込んで並び変えます
- 810 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 08:21:13 ]
- >>808
[3] 環境 [3.1] うぃんどーず [3.2] ぼーらんど Windowsもborlandも読めないだろうと馬鹿にしてるんだな
- 811 名前:デフォルトの名無しさん [2008/10/27(月) 08:28:46 ]
- >>810
いやwwwwwそういうわけじゃないです。。。 教えてくださいお願いします!
- 812 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 08:56:43 ]
- >>808
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7871.txt std::vectorを使ったがnew/deleteでも同じようにいけるはず 誰かに任せた
- 813 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 08:57:50 ]
- #include <iterator>
#include <functional> は不要なので削除して下さい
- 814 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 08:59:31 ]
- >>789
int i, j, k, flag, vm[100]; for(i=1,k=0,flag=1; flag; i++) { for(j=1; j<2*i-1 && flag; j++) { vm[k++] = j; if(k==100) flag = 0; } for(; j>0 && flag; j--) { vm[k++] = j; if(k==100) flag = 0; } } 下の場合は for(j=1; j<2*i&& flag ; j++) {
- 815 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 09:07:36 ]
- >>812
ありがとうございます。 でもnew/delete使う感じでお願いしたいんです。 vectorが何のこっちゃ分かりません。すみません・・・
- 816 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 09:09:19 ]
- [1] 授業単元: 配列
[2] 問題文(含コード&リンク) 身長について処理をするプログラムの作成 最大20とする整数nをキーボードから入力する。 次に、n人分の実数(身長)をキーボードから入力しその平均身長をもとめ、 さらにそのそれぞれの人の身長と、平均身長との差を一人一行ずつ出力しなさい。 小数点以下は無視していい。 例) n=3の場合 170.0 0.0 165.0 -5.0 175.0 5.0 [3] Windows VC 6.0 言語:C++ [4] 期限:今日中 [5] その他の制限:特になし c言語を侮っていてさぼり気味だったつけがまわり、気がついたら全くわからなくなってました。 ヒントだけでもいいのでどうかお願いします。
|

|