1 名前:デフォルトの名無しさん [2009/07/13(月) 07:46:32 BE:142007235-DIA(287979)] あなたが解けない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++の宿題片付けます 128代目 pc12.2ch.net/test/read.cgi/tech/1245853701/
52 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 12:24:43 ] >>47 前スレ>>971 の回答なら俺も試したがエラー出なかったぞ 自分の書いたソースをロダにうpすれ
53 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 12:27:37 ] >>48 前スレ>>939 に回答
54 名前:47 mailto:sage [2009/07/14(火) 12:55:24 ] すみません。 入力が誤っていたみたいです。ありがとうございました。
55 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 12:58:23 ] 前スレの>>772 です。スレが変わったのでもう一度貼っておきます。 [1] 授業単元: 4次のルンゲ−クッタ法を用いて連立微分方程式を解く [2] 問題文:システムの状態x = (x, y, z) が、以下の連立微分方程式に従う場合の挙動をシミュレーション する. dx/dt= −y − z dy/dt= x + ay dz/dt= b + (x − c)z 【課題1】4 次のルンゲ-クッタ法を用いて上記方程式を数値的に解くプログラムreport.c を完 成させよ.report.c には3 つの関数が定義されている.ルンゲ-クッタ法を1 ステップ行う関数 rungekutta() は完成しているが、導関数を求める関数deriv() とプログラム全体を制御する関 数main() は不完全である.各関数に適切な実行文等を記述し、プログラムを実行できるよう完 成させよ. 【課題2】課題1で完成させたプログラムreport.c を用い、シミュレーションを実行する.シス テムパラメータが 1. (a, b, c) = (1.0, 0.2, 1.0) 2. (a, b, c) = (1.0, 0.2, 8.0) の2つの場合に、時刻t = 200.0 からt = 400.0 の間にx が位相空間に描く軌跡を図に表せ.シ ミュレーションの時間刻みはdt = 0.02 とし、初期値x(0) = (x(0), y(0), z(0)) は適当な値を選ぶ こと.またそれぞれの場合について、初期値をわずかに変化させた場合に軌跡がどのように変化 するかを、同様に図に表して比較せよ. [3] 環境 Vine Linux [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限:2009年7月28日 [5] その他の制限:ソースは長いので3レスに分けて投稿します。ソースを以前ろだに貼ろうと思ったのですができませんでした。見づらくてすいません。 どうか宜しくお願いします。
56 名前:772 mailto:sage [2009/07/14(火) 13:00:29 ] #include <stdio.h> #include <math.h> #define N 3 //システムの次元 double a = 0.20; double b = 0.20; double c = 10.0; /* 導関数 */ /* x における dx/dt を求める */ void derivs(double t, double x[], double dxdt[]) { /* dx/dt = f(x) */ dxdt[0] = ; dxdt[1] = ; dxdt[2] = ; }
57 名前:772 mailto:sage [2009/07/14(火) 13:01:33 ] >>56 の続きです。 /* ルンゲクッタ法を1ステップ行う関数 */ /* x(t)=xin から x(t+h)=xout を求める */ void rungekutta(double xin[], double xout[], double t, double h) { int i; double th2,h2,h6; double dxdt0[N], dxdt1[N], dxdt2[N], dxdt3[N], xt[N]; double deriv(double, double [], double []); h2=h*0.5; h6=h/6.0; th2=t+h2; derivs(t,xin,dxdt0); for(i=0;i<N;i++) xt[i] = xin[i] + h2*dxdt0[i]; derivs(th2,xt,dxdt1); for(i=0;i<N;i++) xt[i] = xin[i] + h2*dxdt1[i]; derivs(th2,xt,dxdt2); for(i=0;i<N;i++) xt[i] = xin[i] + h*dxdt2[i]; derivs(t+h,xt,dxdt3); for(i=0;i<N;i++) xout[i] = xin[i] + h6*(dxdt0[i]+2.0*(dxdt1[i]+dxdt2[i])+dxdt3[i]); }
58 名前:772 mailto:sage [2009/07/14(火) 13:02:34 ] >>57 の続きです。 int main() { int i; double t, tmax, dt; double x[N], x_next[N]; FILE *fp; void rungekutta(double [], double [], double, double); /* 諸変数を初期化 */ tmax = ; dt = ; /* システムの状態を表すベクトルx(N次元)の初期化 */ /* 計算結果を書き出す為のファイルを開く */ fp = fopen("result.dat","w"); /* 時間tを刻み幅dtずつ増加させながら時間発展 */ for(t=0.0;t<tmax;t+=dt){ /* 時刻tとxの各要素をファイルに書き出す */ fprintf(fp,"%lf %lf %lf %lf\n ", t, x[0], x[1], x[2]); /* xを更新 */ x += } /* ファイルを閉じる */ fclose(fp); return 0; }
59 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 13:05:38 ] うpろだが使えなかった人だっけ はやくうpろだ使えるようになってくれよ
60 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 13:08:27 ] すみません。学習意欲がないんで、うpろだの使い方とか覚えるの面倒くさいんです。 だからはやく宿題手伝ってください。
61 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 13:37:26 ] >>50 いえいえ、合ってますよ。 >>60 ファイル名のところに直接ファイル名書いてる?、「参照..」ボタン押せ。
62 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 13:39:18 ] >>61 60は本人じゃないだろw このスレのみんなの心の声だ
63 名前: ◆/91kCCQXBo mailto:sage [2009/07/14(火) 13:52:23 ] >>039 これは多分1、2、3を順次処理する問題なのだろう。 #include <iostream> using namespace std; int main(void) { int a, b, c; char m; cout<<"a:"; cin>>a; cout<<"b:"; cin>>b; cout<<"c:"; cin>>c; cout<<"m:"; cin>>m; if(a < b) /* - 1 - */ cout<<"aはbより小さいです\n"; else if(a > b) a = a + b; if( m == 'a' ) /* - 2 - */ cout<<"'a'が格納されています\n"; else cout<<"'a'でない文字が格納されています\n"; b = b + c; cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; if(a < b) /* - 3 - */ cout<<"aはbより小さいです\n"; else if(a > b) cout<<"aはbより大きいです\n"; else cout<<"aとbは等しいです\n"; }
64 名前:デフォルトの名無しさん [2009/07/14(火) 13:56:51 ] >>2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9745.zip キャストって、(int),(double)で良いんだよねぇ?
65 名前: ◆/91kCCQXBo mailto:sage [2009/07/14(火) 15:00:08 ] >>049 2人の人の名前と年齢をキー入力 jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/19
66 名前:デフォルトの名無しさん [2009/07/14(火) 15:27:58 ] >>55 です。大変ご迷惑をおかけしました。ろだにソースを貼りましたのでよろしくお願いします。
67 名前:デフォルトの名無しさん [2009/07/14(火) 15:41:56 ] >>53 回答に誤りがあったみたいでプログラムが作動しません。 >>48 どなたかお願いします。
68 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 15:59:17 ] >>67 前スレ>>939 の回答だが試してみた。 で、コンパイルエラーが起こったけど修正すれば動いた。 >>srand((unsigned) time(NULL));/* 乱数系列の変更 */ 上記の一文を変数宣言後の位置にいどうするか、コメントアウトすれば動く。 C99なら問題ないのだけど。
69 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 16:30:14 ] >>67 前回回答した者だけど、規格とかまで理解できてなかったゴメン・・・ >>68 さんが言ってるように修正してみてほしい コメントアウトすると乱数が一定になるからなるべく移動で解決する方が良さそう あと、それでもエラーが出るようなら、エラーメッセージを貼り付けて欲しい
70 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:26:39 ] >>48 データファイルが本当にそういう仕様だと信じて書いてみた。 入力ファイル名、出力ファイル名はそれぞれ input.txt output.txt ね。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9747.txt
71 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:37:44 ] ノールなら130資源地しらみつぶしに攻撃したら100匹くらいやとってるとこあるからそれで完了
72 名前:デフォルトの名無しさん [2009/07/14(火) 18:37:04 ] [1] 授業単元:C言語 [2] 問題文:配列を用いた計算機のプログラムを作成してください。 計算は前から順に行われていく。 入力される数値の個数は最大でも20個としてください。 [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C言語 [4] 期限:2009年7月19日 [5] その他:特になし 自分も新スレになったので再貼りです 改めてよろしくおねがいします
73 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:37:48 ] >>72 >配列を用いた計算機のプログラムを作成してください。 の具体例をくれ
74 名前: ◆/91kCCQXBo mailto:sage [2009/07/14(火) 18:41:02 ] >>070 コンパイルして、テストはしていないみたい。 #define DELIMITER " \n" /* 半角文字 */ /* 主語の読み込み */ fgets(sbuff, BUFFSIZE, ifp); s[0] = strtok(sbuff, DELIMITER); for (i = 1; i < S; ++i) s[i] = strtok(NULL, DELIMITER); /* 目的語の読み込み */ fgets(mbuff, BUFFSIZE, ifp); m[0] = strtok(mbuff, DELIMITER); for (i = 1; i < M; ++i) m[i] = strtok(NULL, DELIMITER); /* 述部の読み込み */ fgets(jbuff, BUFFSIZE, ifp); j[0] = strtok(jbuff, DELIMITER); for (i = 1; i < J; ++i) j[i] = strtok(NULL, DELIMITER);
75 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:39:08 ] >>72 問題文の意味が全く分からない
76 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:42:05 ] >>72 ・問題文は、出題されたまま全文を書いてください。
77 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:25:48 ] >>64 はい!ほんとにありがとうございました。 助かりました
78 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:28:38 ] 適当にエスパーしたものを貼っておく #include <stdio.h> #define MAX 20 int main(void) { int i; double result; double num[MAX]; char op[MAX]; printf("1 個目の数字 = "); scanf("%lf", &num[0]); getchar(); for (i = 1; i < MAX; i++) { printf("%d 個目の演算子 = ", i); if ((op[i] = getchar()) == EOF) break; printf("%d 個目の数字 = ", i + 1); scanf("%lf", &num[i]); getchar(); } result = num[0]; for (i = 1; i < MAX && op[i] != EOF; i++) { switch (op[i]) { case '+': result += num[i]; break; case '-': result -= num[i]; break; case '*': result *= num[i]; break; case '/': result /= num[i]; break; default: printf("error\n"); return 1; } } printf("ans = %f\n", result); return 0; }
79 名前:デフォルトの名無しさん [2009/07/14(火) 20:34:06 ] 前スレ962をお願いします
80 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:35:20 ] >>79 問題張りなおして
81 名前:79 [2009/07/14(火) 20:44:12 ] www.dotup.org/uploda/www.dotup.org237261.txt.html お願いします
82 名前:デフォルトの名無しさん [2009/07/14(火) 20:47:21 ] 課題なんだが。。。。 #include<stdio.h> void kakugyou(void); int hen,x,y; void main(void) { printf("数字(2〜9)を入力してください:"); scanf("%d",&hen); while(x<=hen) { kakugyou(); x++; }
83 名前:デフォルトの名無しさん [2009/07/14(火) 20:48:42 ] ↑の続き x=hen-1; while(1<=x) { kakugyou(); x=x-1; } } void kakugyou(void) { y=1; while(y<=x) { printf("*"); y=y+1; } printf("\n"); } これだと、アスタリスクが旗みたいな形になるけど、これを基本にしてダイヤ型と六角形、星形の結果を出すにはどうしたらいいのだろうか。 誰か教えてください。
84 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:51:56 ] ゆとり増えすぎだろこのスレマジで・・
85 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:55:45 ] >星形の結果を出すにはどうしたらいいのだろうか ビルから飛び降りればいいんじゃないかな?
86 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:07:07 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): down11.ddo.jp/uploader/download/1247572884.rar/attatch [3] 環境 [3.1] OS: (WindowsVista) [3.2] textpad [3.3] 言語: (C++) [4] 期限: ([2009年07月15日23:59まで) 独自のプログラムの書き方なので、とても困っています。 色々と試してみたのですが、自分の力だけでは出来そうにないため相談しました。 取り扱い説明書やプログラムは001.rarに入れておきました。 緊急を要しますので、何方かどうかよろしくお願いします。 ファイルサイズが大きいため違うアップローダーをお借りしました。 パスワードは以下になります。 pass:C/C++
87 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:21:18 ] >>81 課題1 #include <stdio.h> int main(int argc, char **argv) { FILE *fp1, *fp2, *tfp; int c; if (argc != 3) return 1; fp1 = fopen(argv[1], "r"); tfp = fopen("temp.txt", "w"); while ((c = fgetc(fp1)) != EOF) fputc(c, tfp); fclose(fp1); fclose(tfp); fp1 = fopen(argv[1], "w"); fp2 = fopen(argv[2], "r"); while ((c = fgetc(fp2)) != EOF) fputc(c, fp1); fclose(fp1); fclose(fp2); fp2 = fopen(argv[2], "w"); tfp = fopen("temp.txt", "r"); while ((c = fgetc(tfp)) != EOF) fputc(c, fp2); fclose(fp2); fclose(tfp); return 0; }
88 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:32:10 ] >>86 RAR駄目やっ。 Extracting from D:\My Documents\Cplus\Part129_086\001.rar Extracting D:\My Documents\Cplus\Part129_086\tex.bmp CRCエラー: D:\My Documents\Cplus\Part129_086\tex.bmp
89 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:40:24 ] >>81 課題2 #include <stdio.h> #include <stdlib.h> #define N 10 int comp_i(const void *m, const void *n) { return *(int *)m - *(int *)n; } int comp_d(const void *x, const void *y) { return *(double *)x - *(double *)y; } int main(void) { int a[N]; double x[N]; int i; srand(time(NULL)); for (i = 0; i < N; i++) { a[i] = rand() % 100; x[i] = (double)rand() / RAND_MAX; } printf("整数1〜100の乱数を%d個発生しました\n", N); for (i = 0; i < N; i++) printf("%7d", a[i]); puts("\nソートすると"); qsort(a, N, sizeof(int), comp_i); for (i = 0; i < N; i++) printf("%7d", a[i]); puts(""); printf("実数[0, 1]の乱数を%d個発生しました\n"); for (i = 0; i < N; i++) printf("%7.3f", x[i]); puts("\nソートすると"); qsort(x, N, sizeof(double), comp_d); for (i = 0; i < N; i++) printf("%7.3f", x[i]); puts(""); return 0; }
90 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:47:25 ] ごめん>>89 は忘れて
91 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:50:54 ] >>81 Q2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9748.txt
92 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:51:50 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9749.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: ? [3.3] 言語: C [4] 期限: 7/17 [5] その他の制限: 特にありません。よろしくお願いします。
93 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:57:24 ] >>88 zipになります。どうかよろしくお願いします。 down11.ddo.jp/uploader/download/1247576184.zip/attatch
94 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:58:07 ] >>88 passは先ほどと同じですので
95 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:59:38 ] >>92 (2) #include <stdio.h> int main(void) { int i, j; i = 1; while (i < 10) { j = 1; while (j < 10) printf("%3d", i * j++); printf("\n"); i++; } return 0; }
96 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:26:39 ] >>55 課題1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9750.c あと問題をアップロードしたら>>66 だけじゃなくリンクも書いて 元のソースこれでいいんだね? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9746.c
97 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:37:54 ] >>92 (1) #include <stdio.h> int main(void) { int f1, f2, f3, n; printf("n = "); scanf("%d", &n); if (n == 0) { printf("F(0) = 0\n"); return 0; } if (n == 1) { printf("F(1) = 1\n"); return 0; } f1 = 0; f2 = 1; while (n >= 2) { f3 = f2 + f1; f1 = f2; f2 = f3; n--; } printf("F(%d) = %d\n", n, f3); return 0; }
98 名前:79 [2009/07/14(火) 23:01:46 ] >>90 ありがとうございます
99 名前:デフォルトの名無しさん [2009/07/15(水) 01:17:23 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9751.txt [3] 環境 [3.1] OS: Windows [3.3] 言語: C [4] 期限: 7/17 [5] その他:特になし どうかよろしくお願いします。
100 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 01:37:56 ] >>99 解答01: string.h 解答02: cc minitest0926A.c -o minitest0926A 解答03: 3.464102 解答04: s=r*r*3.142; 解答05: 25 解答06: ( (x)<5 ? 'c' : 'd' ) 解答07: .9 解答08: p=3.141592654 環境依存あるかも。
101 名前:デフォルトの名無しさん [2009/07/15(水) 01:50:31 ] >>100 ありがとうございます
102 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 02:32:03 ] [1] 授業単元:OS演習 [2] 問題文(含コード&リンク): (1)pipe3.cを完成させて、親子プロセス間で交互にメッセ ージを交換するプログラムを作成せよ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9752.txt (2)共有バッファを用いて、子プロセスでメッセージを書き込 み、親プロセスで読み出すプログラムを作成せよ。ただし、 共有バッファは128バイトとし、その先頭には‘書き込み マーク’を付し、そのリセットは親プロセスが、セットは子 プロセスが行うとせよ。 [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C言語 [4] 期限: 7/16 [5] その他の制限:特にないです、どうかよろしくお願いします
103 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 03:05:57 ] 【質問テンプレ】 [1] 授業単元: C言語演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9753.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年 7月20日 [5] その他の制限: 特になし よろしくお願いします
104 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 03:06:34 ] ここすごく面白そうなスレだ プログラミングの題材探しにすんげぇ助かるかもしれない
105 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 03:08:39 ] >>104 利用料を徴収します
106 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 03:23:11 ] 最初はそう思うもんだ がんばって技術向上のついでに単位取得を手伝ってあげるといい
107 名前:デフォルトの名無しさん [2009/07/15(水) 03:28:46 ] [1] 授業単元: デジタル信号処理 [2] 問題文(含コード&リンク): 2つのテキストファイル(double型)を読み込み、畳み込み和を計算し、別のファイルに出力せよ。 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年 7月16日 [5] その他の制限: よろしくお願いします。
108 名前: ◆/91kCCQXBo mailto:sage [2009/07/15(水) 04:21:59 ] >>082 ダイヤ型と六角形、星形 Part127>>953 (9534) 問題 >>998 (CODE)>>999 (CODE)>>次014(9548) 「ピラミッドアート」ダイヤ、八角形、星型 Part128>>333 (9630)>>342 (9635)>>495 問題 >>440 (9652) '*'を一辺とする六角形と星形を描画する Part128>>898 問題 >>915 (>>014 (9548)) アスタリスクがダイヤ形になるプログラム kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9534.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9548.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9652.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9630.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9635.txt
109 名前:デフォルトの名無しさん [2009/07/15(水) 09:13:24 ] [1] 授業単元: OS [2] 問題文(含コード&リンク): 共有バッファを用いて、子プロセスでメッセージを書き込み、親プロセスで読み出すプログラムを作成せよ。 ただし、共有バッファは128バイトとし 先頭には‘書き込みマーク’を付し、そのリセットは親プロセスが、セットは子プロセスが行うとせよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:7月17日 [5] その他の制限:なし よろしくお願いします。
110 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:37:44 ] 1] 授業単元:数値情報解析 [2] 問題文:ニュートン法により代数方程式を解くプログラムを作りなさい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual Studio [3.3] 言語:C [4] 期限:2009年7月22日 [5]少しでも易しい表現にしていただくようよろしくお願い致します。 あと、ソースファイルに処理過程がわかり易いようにコメント文を加えて いただけるとありがたいです。
111 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:58:44 ] maximaだとこれだけなんだけどね t(f):=block([fd,h],fd:diff(f(x),x),h:x-f(x)/fd,return(rat(h)))$t(f); 代数方程式に制限はないの?普通の多項式に限るとか それか、代数方程式とその微分が与えられている前提なら 話は簡単だけども 多項式の微分を自分で作れって問題ならめんどいね
112 名前:デフォルトの名無しさん [2009/07/15(水) 10:36:10 ] >>110 方程式と、方程式の微分結果は、ソースに直接書くの? それとも、入力された方程式を解くの? それによって、難易度がかなり違うんだけども。
113 名前:72 [2009/07/15(水) 11:26:38 ] 問題文はこれで全部です 作成例の実行ファイルを昨日貰ったので家に帰ったらアップします
114 名前:tac [2009/07/15(水) 16:06:17 ] 先日、このスレッドで質問を書かせていただいたんですが、 多くの方から、意見をいただき、とても参考になりました。 今日、ゼミがあったので教授にその話を言うと、 自分で1から開発せずに、オープンソースを探し、 もし足りなければ、そこから、改良を加えるという形でOKがでました。 なので、今回はCもしくはC++言語で、 ソケット間通信を可能にするオープンソースを自分自身でも探してみますが、 お勧めのソケット間通信のオープンソースのサイトやURLを教えていただけないでしょうか? 【質問テンプレ】 [1] 授業単元: ゼミナール [2] 問題文(含コード&リンク): 「PC間でソケットの接続確立とデータを送信を行うプログラム」の オープンソースを探す。 [3] 環境 [3.1] OS: Windows XP [3.2] Micro Soft Visual C++ 2008 [3.3] 言語: C もしくは C++ 言語 [4] 期限: 2009年7月22日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 制限は特にありません。 みなさんのお勧めのインスタントメッセンジャーもしくはチャットを CもしくはC++言語で書かれたオープンソースを教えて下さい。 また、お勧めの C または C++ 言語のオープンソースが置いてあるサイトを紹介してください。 宜しくお願いします。
115 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:49:04 ] FreeBSD(オープンソース)にtalk/talkdというのがあります。
116 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 17:19:47 ] >>114 mixiであんたが消したトピに答えがあったんだが見てないのか?
117 名前:>>55 mailto:sage [2009/07/15(水) 17:36:32 ] >>96 すみませんでした。ありがとうございます。
118 名前:デフォルトの名無しさん [2009/07/15(水) 18:32:28 ] >>114 IPMessanger www.ipmsg.org/ ソフト自体のソースも公開されてるし、 通信部分のみのDLLなんかもあるから、充分なんじゃない?
119 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 18:36:46 ] [1] 授業単元:基礎プログラミング [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9754.zip [3] 環境 [3.1] OS: vista [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C++ [4] 期限:2009年7月17日 [5] その他:特になし よろしくおねがいします
120 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 18:56:31 ] >>119 #include<stdio.h> #include<string.h> #include<ctype.h> int check(const char *mailaddress) { const char *p; int at_count=0; if(!isalpha(mailaddress[0])) return 0; if(!isalpha(mailaddress[strlen(mailaddress)-1])) return 0; for(p=mailaddress;*p;p++) { if(!isalnum(*p) && !strchr("@-_.", *p)) return 0; if(*p=='@') at_count++; } return (at_count==1); } int main(void) { char str[21]; printf("メールアドレス =>"); scanf("%20s", str); if(check(str)) printf("OK\n"); else printf("ERROR\n"); return 0; }
121 名前:obama ◆dXPOZaWDCk [2009/07/15(水) 19:13:28 ] 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9755.txt 上のプログラムがなぜ図のような座標列を生成したのかを説明せよ 図;g.pic.to/17jcdy ヒント1;関数draw_polygon()中のif(r>xxx)において、数値xxxをいろいろと変えること 数値xxxを大きくしていくと図が徐々に単純になっていく、単純な図から考えを進めること ヒント2;自分がパソコンになったつもりでプログラムを順に追っていくこと。 その際呼び出した側のdraw_polygon()と呼び出された側のdraw_polygon()を区別して考えること (前者と後者のローカル変数の区別をわすれないこと) [3] 環境 [3.1] OS: (Windows [3.2] コンパイラ名とバージョン: [3.3] 言語: (C [4] 期限: ([09年07月17日13:00まで] [5] その他の制限:
122 名前:obama ◆dXPOZaWDCk [2009/07/15(水) 19:14:55 ] >>121 お願いします
123 名前:デフォルトの名無しさん [2009/07/15(水) 19:29:56 ] どなたか>>107 お願いします
124 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:35:45 ] >>103 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9756.txt
125 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:44:51 ] [1] 授業単元:ゲームプログラミング入門 [2] 問題文(含コード&リンク): 以下のゲームの中からどれか二つを選んで作成せよ。 ・マインスイーパー ・七並べ ・ブラックジャック ・ポーカー カードゲームを作成する場合、同じカードが2枚存在してはならない。 ジョーカーは無いものとする。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: [2009年7月17日12:00まで] 出来れば7並べかマインスイーパーをお願いします。
126 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:18:28 ] [1] 授業単元:基礎c++ [2] 問題文(含コード&リンク): 一次元配列を用いて、Aをn次(nは100以下)の正方行列としたときの 対称行列の成分の添字番号、行成分を格納し表示せよ。 [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン: visual c++ [3.3] 言語: c++ [4] 期限: 2009年07/17まで [5] その他の制限: 一次元配列で考える。 よろしくお願いします。
127 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:28:13 ] >>126 だめだ、10回読み直したけどわからん。 だれか分かりやすく読み下してくれ・・・
128 名前:デフォルトの名無しさん [2009/07/15(水) 20:43:06 ] n次対称行列の格納に必要な配列の長さはn(n+1)/2 配列名をMとする時 i行j列成分は(i>=j)の時 M[ i*(i-1)/2+j-1 ] (i<j)の時 j,i成分と同じ 乱数で適当に格納した後表示する。 これでどーだ?
129 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:47:13 ] >>128 先に書かれたー。せっかくなので俺がいま書いた解釈も… N次正方行列をあらわすには普通N*N個の要素を必要とするが それが対称行列ならN*(N-1)/2個の要素ですむ それでは、N次の対称行列をN*(N-1)/2個の要素を持つ一次元配列に 格納し、取り出すプログラムを作成せよ
130 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:48:43 ] >>128 ,129 ありがとうございます。 じっくり考えたいと思います。
131 名前:72 [2009/07/15(水) 21:05:30 ] www.rupan.net/uploader/download/1247659238.zip www.rupan.net/uploader/download/1247658809.zip 参考例と作成例をうpしました 参考例のほうはソースと実行ファイル共にありです 作成例のほうは実行ファイルだけになります
132 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 21:26:34 ] >>128-129 なるほど 「添字番号、行成分」なるなにものかを何とか数値化して配列に入れる方向で考えてた。頭堅いのは駄目だな その方向で行くとして、出力は1次元配列の構造そのままがいいんだろうか、行列っぽくするべきだろうか なんとなく後者かなと思ったが
133 名前:obamaさんへ mailto:sage [2009/07/15(水) 21:29:22 ] >>121 図を右上から左下、左上から右下の二本の線でバツに区切ります。 すると4つの同じような図形の菱形になります。 その一つを見るとさらに同じように4つの菱形に区切れます。 部分が全体を含んでいます。 そのように繰り返し的に同じ図形が現れるのをフラクタル図形といいます。 プログラムは4つの点を描き、中心位置をずらして 大きさを小さくしながら再帰的に同じ形を描いていっています。
134 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:07:23 ] >>131 >>78
135 名前:デフォルトの名無しさん [2009/07/15(水) 22:22:25 ] [1] 授業単元:プログラミングC [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9757.txt のデータを取り込み、そこから最大値、最小値、データ個数、平均値を求めるプログラムを作成せよ ただし最大値、最小値、データ個数、平均値は引数にポインタを用いて値を返すようにプログラムを作れ [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 7月16日17時 [5]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9757.txt のファイル名はtensu.txtでお願いします なるべく簡単なものでおねがいします
136 名前:72 [2009/07/15(水) 22:40:50 ] うお、安価なかったので気づきませんでした >>131 さんとそれを教えてくれた>>134 さんありがとうございました
137 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:57:39 ] >>135 #include <stdio.h> void func(int *max, int *min, int *num, double *ave) { int a, n; FILE *fp = fopen("tensu.txt", "r"); if (fp == NULL) { fprintf(stderr, "file open error."); exit(1); } if (fscanf(fp, "%d", &a) == EOF) { *num = 0; return; } *max = *min = *ave = a; *num = 1; while (fscanf(fp, "%d", &a) != EOF) { if (*max < a) *max = a; if (*min > a) *min = a; *ave += a; (*num)++; } *ave /= *num; fclose(fp); } int main(void) { int max, min, num; double ave; func(&max, &min, &num, &ave); printf("最大値 = %d, 最小値 = %d, データ個数 = %d, 平均値 = %f\n", max, min, num, ave); return 0; }
138 名前:デフォルトの名無しさん [2009/07/15(水) 22:59:39 ] [1] 授業単元: Linux/C [2] 問題文(含コード&リンク): 標準入力からの入力を元に演算、結果を標準出力に出力するプログラムがあります。 --- #include <stdio.h> #include <stdlib.h> main(){ char c[BUFSIZ]; fputs("input:",stderr); fgets(c,BUFSIZ,stdin); for(int i=0;i<atoi(c);i++) fprintf(stdout, "%03d\n",i); } --- これを以下のように実行し、例えば100を入力しても、エコーバックが画面表示されません。 $ a.out | more input:000 ←入力内容はエコーバックされず、最初の出力結果が表示される 001 … 022 --More-- 入力内容をエコーバックするようにプログラムを修正、または作り直して下さい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C/C++ [4] 期限: 無期限 [5] その他の制限:なし
139 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 23:10:28 ] >>137 ありがとうございました
140 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 23:45:12 ] a.out | more ↓ a.out にする あと、パスに.を入れるのはよくない
141 名前: ◆/91kCCQXBo mailto:sage [2009/07/16(木) 00:20:28 ] >>126 n次の対称行列 めんどうなのでC/C++ #include <stdio.h> int A[100*101/2]; int main() { int n, i, j, k, i1, j1; printf("n?"); scanf("%d%*c", &n); if(n>100) return 1; for(k=0, i=0; i<n; i++) { /* 成分の添字番号を表示 */ for(j=i; j<n; j++, k++) { A[k] = k+1; printf("N(%2d,%2d) = A(%2d)\n", i, j, k); } } for(i=0; i<n; i++) { /* 行成分を表示 */ for(j=0; j<n; j++) { if(i < j) i1=i, j1=j; else i1=j, j1=i; k = j1+i1*n-(i1*(i1+1)/2); // i printf("A(%2d)=%2d", k, A[k]); if(j < n-1) printf(", "); } puts(""); } return 0; } /* 1 2 3 4 2 5 6 7 3 6 8 9 4 7 9 10 */
142 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:23:11 ] >>112 与えられた方程式をソースに直接書くタイプなのです。 方程式や収束条件が先生の方からまだ発表されていなかったので、 大変申し訳ないですが、後日あらためて書き込みさせていただきます。
143 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:29:44 ] >>124 ありがとうございます
144 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:52:56 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):@四則演算は用いずに, 0xabcdの下位8ビットを0にして表示するプログラムを作成せよ. A変数xのyビット目を1にする関数 int bit_set(int x,int y) を作成せよ. B変数xのyビット目を0にする関数 int bit_clear(int x,int y) を作成せよ. C変数xのyビット目の値を返す関数 int bit_test(int x,int y) を作成せよ. [3] 環境 [3.1] OS:Windows Vista SP1 [3.2] Visual studio 2008 [3.3] 言語:C [4] 期限:2009年7月16日8:30まで [5] その他の制限:基本的なもので
145 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:05:38 ] >>144 @ #include <stdio.h> int main(){ printf("%d",0xabcd & 0xff00); return 0; } A int bit_set(int x, int y){ return x | (1<<(y-1)); } B int bit_clear(int x, int y){ return x & ~(1<<(y-1)); } C int bit_test(int x,int y){ return (x>>(y-1)) & 1; }
146 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 04:51:12 ] どなたか>>125 をお願いします。
147 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 06:45:23 ] どなたか>>102 の(2)だけでよいのでよろしくお願いします
148 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:19:20 ] >>146 マインスイーパってやっぱりマウスでクリックするの?
149 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:48:29 ] >>148 どちらもCUIです。 説明が足りず申し訳ありません。
150 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:49:58 ] CUIでマインスイーパーって開ける箇所を座標指定とかでやるのか?
151 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 10:05:58 ] >>150 だと思います。特に方法は指定されていませんでした。
152 名前:138 [2009/07/16(木) 11:17:32 ] >>140 レスありがとうございます。 その場合、スクロール、ページャ運用ができません。 是非プログラム内で解決したいと思っています。 宜しくお願い致します。