1 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 03:01:54 ] あなたが解けない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++の宿題を片付けます 99代目 pc11.2ch.net/test/read.cgi/tech/1194262698/
152 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 16:50:15 ] >>149 何がわからないのかがわからない。 1.クラスで使っているMathematicaというソフトを使って数式を処理してグラフ表示、グラフの画像をEPS形式のファイルに保存。 2.いつもやっているようにLatexでレポート作成。EPS形式ファイルの埋め込みに関しては、配布したテキストを参照の事。 3.pdflatexをつかってPDF形式のファイルを出力。 一通り説明されてるはずなのに、なんで分からないとか言ってんの? ずっとサボってたのか?
153 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:01:02 ] >>145 マルチ?( science6.2ch.net/test/read.cgi/math/1195081289/156 )
154 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:24:20 ] >>128 >>146 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5329.c 結果があってるかはわからんよ。 あと、文字列を数列に直すのは無駄だったから省略しちゃった。 どうしても直したければ、適当にやってくんろ。
155 名前:131 mailto:sage [2007/11/25(日) 19:42:04 ] >>154 自分の環境ではfscanfで32767文字までしか取得できなかったわけだが・・・ ファイルサイズは228793バイトあるわけで >>128 >>132 で答えたつもりだったんだけど間違ってたかな?
156 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:30:38 ] >>155 こっちの環境では問題なく scanf で取れたよ。 それ以上に、>>132 は O(n^2) だから、とても終わらないと思うけれど。
157 名前:156=154 mailto:sage [2007/11/25(日) 20:33:55 ] あ、こちらの環境は質問者にあわせて WindowsXP (cygwin) の gcc 。 質問者の環境で、これでうまくいかないようなら対処する。
158 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:48:56 ] >>153 プログラムがかけないのでお願いします
159 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:56:38 ] >>158 C, d, n, p, q として想定している桁数は? 任意桁なら、GMP の使用の可否は?
160 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:59:51 ] >>158 マルチ?って聞かれてそう答えるのって日本語不自由な人だよね。
161 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:04:14 ] >>160 留学生です
162 名前:デフォルトの名無しさん [2007/11/25(日) 21:14:03 ] [1] 授業単元: C言語基礎 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5330.txt [3] 環境 [3.1] OS: Windows [3.3] 言語: C言語 [4] 期限: 11月26日0時まで よろしくおねがいします
163 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:14:37 ] 帰れ
164 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:24:45 ] >>162 int dom[] = {-1,31,28,31,30,31,30,31,31,30,31,30,31}; void yesterday(int *y, int *m, int *d) { --*d; if (*d <= 0) *d = dom[--*m]; if (*m <= 0) --*y, *m = 12; } void tomorrow(int *y, int *m, int *d) { ++*d; if (*d > dom[*m]) *d = 1, ++*m; if (*m > 12) ++*y, *m = 1; } void sort3(int *n1, int *n2, int *n3) { int tmp; if (*n1 > *n2) tmp = *n1, *n1 = *n2, *n2 = tmp; if (*n2 > *n3) tmp = *n2, *n2 = *n3, *n3 = tmp; if (*n1 > *n2) tmp = *n1, *n1 = *n2, *n2 = tmp; }
165 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:47:29 ] >>116 当方で確認した環境は WindowsXP, 処理系は gcc 3.4.4 です。 (1) だけでもやってみました。とにかく初期値と収束解を出すだけのプログラムです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5331.txt この結果をつらつら眺めると、次の関係があると推測できます。 初期値を x0, y0 とするとき、 1) y0 > x0 ならば、収束値は (x, y) = (-2, 2) 2) y0 < x0 ならば、収束値は (x, y) = (2, -2) 3) x0 = y0 ならば、ヤコビ行列の行列式が 0 となるので、収束しない。 初期値から近い方の解に収束するようです。 なお、問題の(2) は、どうもフラクタル図形を描くかと思われます。
166 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:04:40 ] >>116 M教授の課題だろ
167 名前:デフォルトの名無しさん [2007/11/25(日) 22:08:05 ] [1] 授業単元: C言語入門 [2] 問題文(含コード&リンク):(kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5332.txt ) [3] 環境 [3.1] OS: WindowsXP [3.3] 言語: C言語 [4] 期限: 明後日 [5] その他の制限: 今は配列のところを習っています。制限は特にないです。 お願いします
168 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:13:59 ] >>167 404
169 名前:デフォルトの名無しさん [2007/11/25(日) 22:24:46 ] 1から50までの数のうち、素数を表示するプログラムを教えてください。 #difineで50を定義するってのが条件です お願いします
170 名前:デフォルトの名無しさん [2007/11/25(日) 22:33:04 ] >>148 M教授の課題だろ。俺もわかんねえんだおしえてくれ
171 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:34:48 ] >>169 #include <stdio.h> #define 50 int main(void) { printf("2 3 5 7 11 13 17 19 23 29 31 37 41 43 47"); return 0; }
172 名前:>>169 [2007/11/25(日) 22:35:19 ] すみません。>>1 読んでませんでした 書き直します [1] C言語: [2] 1から50までの数のうち、素数を表示するプログラムを作成せよ。 #difineで50を定義せよ [3] 環境 [3.1] WindowsXP [3.2] Visual C++2005 [3.3] C [4] 期限:無期限 [5] 関数は使ってはいけない
173 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:37:23 ] >>172 >関数は使ってはいけない 本当にこう言われたのか?
174 名前:173 mailto:sage [2007/11/25(日) 22:39:11 ] >>173 すみません。違います 関数は使わなかったらできませんね(汗
175 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:40:05 ] ところで >>171 はスルーかね
176 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:40:57 ] あっ!#difineを使うのか!
177 名前:173 mailto:sage [2007/11/25(日) 22:41:37 ] あ、すまんです;; ありがとうございます。こんなやりかたもあるんですね
178 名前:173 mailto:sage [2007/11/25(日) 22:43:44 ] あとdefineですね。間違いだらけですみません
179 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:44:59 ] >>172 #define N 50 main() { int i, j; int primes[N]; for (i = 0; i < N; ++i) { primes[i] = i; } primes[1] = 0; for (i = 2; i*i < N; ++i) if (primes[i]) { for (j = i*i; j < N; j+=i) { primes[j] = 0; } } } for (i = 0; i < N; ++i) { if (primes[i]) { printf("%d ", primes[i]); } } }
180 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:47:39 ] >>179 最悪な方法に比べればましだけどまだしょっぱい。
181 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:47:48 ] >>172 #include <stdio.h> int main() { printf("2 3 5 7 11 13 17 19 23 29 31 37 41 43 47\n"); return 0; }
182 名前:173 mailto:sage [2007/11/25(日) 22:48:17 ] (汗
183 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:51:09 ] >>180 改善点があったら教えてください
184 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:52:10 ] >>172 #include <stdio.h> #include <stdlib.h> #define N 50 int main(void){ int border, i, k; char *num; border = N/2; if((num = malloc( N+1 )) == NULL)return -1; for(i=0; i<N; i++)num[i] = 1; i = 2; while(i <= border){ for(k=i*2; k<=N; k+=i)num[k] = 0; while(1){ i++; if(num[i])break; } } for(i=2; i<=N; i++)if(num[i])printf("%d ", i); free(num); return 0; }
185 名前:122 mailto:sage [2007/11/25(日) 22:53:42 ] >>119 >>129 ごめんなさい。訂正いたします。 なお、厳密には「有効桁数 4 桁で表示」っていうのは、このやり方ではうまくないです。 SEED に与える定数で、具合のいいものしか表示しないようにしています。すみません。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5333.txt
186 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:59:55 ] >>172 #include <stdio.h> int main() { int i,j,num[51]={0}; for (i=2 ; i<51 ; i++) { if (num[i]==0) { printf("%d\n", i); for (j=i ; j<51 ; j+=i) { num[j]=1; } } } return 0; }
187 名前:122 mailto:sage [2007/11/25(日) 23:00:07 ] >>119 >>129 訂正:具合のいいものを表示するように SEED の値を変えてください。 重ね重ねすみません。
188 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 23:04:03 ] >>186 //ちょっとだけ高速化 #include <stdio.h> int main() { int i,j,num[51]={0}; for (i=2 ; i*i<51 ; i++) { if (num[i]==0) { printf("%d\n", i); for (j=i ; j<51 ; j+=i) { num[j]=1; } } } for (i=2 ; i<51 ; i++) { if (num[i]==0) { printf("%d\n", i); } } return 0; }
189 名前:コーンポタージュ [2007/11/26(月) 00:15:01 ] >>147 ちなみにサンプルプログラムは以下の通りです。 /* グラフ彩色問題に対する近似解法(サンプルプログラム) */ #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_N 2000 /* 最大の頂点数 */ int n; /* 頂点数 */ int m; /* 辺数 */ double x[MAX_N], y[MAX_N]; /* 各頂点の座標 */ int a[MAX_N][MAX_N]; /* 隣接行列 */ int color[MAX_N]; /* 色 */ int max_color; /* 最大の色番号 */ /* アルゴリズム本体 */ void sample(){ int i; for(i = 0; i < n; i++){ color[i] = i % 6; } }
190 名前:コーンポタージュ [2007/11/26(月) 00:15:42 ] /* メインプログラム */ int main(int argc, char *argv[]){ FILE *input_file, *output_file; double start_time, search_time; int i,j,k1,k2; /* 引数のチェック */ if(argc <= 1){ fprintf(stderr,"Please input the name of data file!\n"); exit(1); } /* 入力データの読み込み */ input_file = fopen(argv[1],"r"); fscanf(input_file, "%d %d\n",&n, &m); for(i = 0; i < n; i++){ fscanf(input_file,"%lf %lf\n",&(x[i]),&(y[i])); } for(i = 0; i < n; i++){ /* 隣接行列の初期化 */ for(j = 0; j < n; j++){ a[i][j] = 0; } } for(i = 0; i < m; i++){ fscanf(input_file,"%d %d\n",&k1,&k2); a[k1][k2] = a[k2][k1] = 1; }
191 名前:コーンポタージュ [2007/11/26(月) 00:16:16 ] /* 解の初期化 */ for(i = 0; i < n; i++){ color[i] = -1; } /* 入力データの表示 */ printf("n= %d\n",n); printf("m= %d\n",m); /* for(i = 0; i < n; i++){ printf("%f\t%f\n",x[i],y[i]); } for(i = 0; i < n; i++){ for(j = i+1; j < n; j++){ if(a[i][j] == TRUE){ printf("%d\t%d\n",i,j); } } } */ /* 開始時刻の設定 */ start_time = (double)clock()/CLOCKS_PER_SEC; /* アルゴリズム本体 */ sample();
192 名前:コーンポタージュ [2007/11/26(月) 00:16:50 ] /* 実行時間の測定 */ search_time = (double)clock()/CLOCKS_PER_SEC - start_time; /* 制約条件のチェック */ for(i = 0; i < n; i++){ if(color[i] == -1){ printf("No color is assigned!: %d\n",i); } } for(i = 0; i < n; i++){ for(j = i+1; j < n; j++){ if(a[i][j] == 1 && color[i] == color[j]){ printf("%d and %d have the same color %d!\n",i,j,color[i]); } } }
193 名前:コーンポタージュ [2007/11/26(月) 00:17:23 ] /* 入力データおよび解をファイルに出力 */ output_file = fopen("result.txt","w"); fprintf(output_file,"%d\t%d\n",n,m); for(i = 0; i < n; i++){ fprintf(output_file,"%f\t%f\n",x[i],y[i]); } for(i = 0; i < n; i++){ for(j = i+1; j < n; j++){ if(a[i][j] == 1){ fprintf(output_file,"%d\t%d\n",i,j); } } } for(i = 0; i < n; i++){ fprintf(output_file, "%d\n",color[i]); }
194 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:18:48 ] レスを跨るようならアップローダを使ってくれないかな。
195 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:26:22 ] アップローダなら半角スペースが残るので、カットアンドペーストできれいなソースが手元にわたりますし。
196 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:30:38 ] どこの誰が管理してるかわからないようなものを使えるか!
197 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:36:13 ] ん、それもそうですね。でもアップローダ経由じゃないソースは 私は基本的にはみません。だってめんどくさいから。
198 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:41:44 ] 1レス内に自然に入るなら入れて欲しいけどね。空白を 置換して。
199 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:51:45 ] 新しい宿題のネタになりますでしょうーか。< 変換
200 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:56:28 ] sed -e 's/&/\&/g' -e 's/^ /\ /g' -e 's/ / \ /g' -e 's/</\</g' -e 's/>/\>/g'
201 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:15:24 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):() ===memo.txt=== DATA52/a DATA52/u DATA52/chi ============= とかかれたmemo.txtのファイルがあるとして そのファイルを読み込み"DATA52/"という 文字列を取り除く. 次にa,u,chiをくっつけてauchiとして表示せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11/26 12:00 [5] その他の制限: ちなみに構造体配列を使い、struct tfield tdata[1]を宣言し tdata[0].filenameに"memo.txt"を格納しているとする。 そのmemo.txtをよみこみ処理してtdata[0].wordとして"auchi"を表示してほしいです。 メンバのfilename,wordはchar型です
202 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:17:18 ] >>184 これは不思議。 アルゴリズムの名前とかある?
203 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:20:40 ] >>202 エラトステネスのふるい
204 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:26:06 ] >>203 まじか……。 調べる数をリストとして扱うと、こういう処理になるのか。
205 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 07:30:51 ] ちょ、ふるいってプログラムで素数求めるときに必ずやるもんだろw
206 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:16:47 ] 確かに出てくる確率は多いけど、 ただ単に素数を求めるプログラムを作れって言われたら、 エラトステネスを思いつかなければ、別の手段を使うだろ。
207 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:20:35 ] 可能性ではなく、教養として知っておくべきだろうな。 教養なんて高尚なもんでもない。常識だ。
208 名前:デフォルトの名無しさん [2007/11/26(月) 08:21:07 ] [1] 授業単元: プログラム数学 [2] 問題文(含コード&リンク):sinx は x - x**3/3! + x**5/5! -x**7/7! + ---- (1) と級数展開される. 式(1)で7項まで取った場合と組み込み関数で求めたsinxの値の差を, 0度から360度まで,プログラムを作成して求めろ 注意1:式(1)をプログラム化する際に,定義関数を利用し,項数と角度を渡すと値を返すような関数 を作成のこと. [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン: bcpad [3.3] 言語: C++ [4] 期限: 11月26日12:00 [5] その他の制限: 特にありませんが定義関数を使うようです お願いします
209 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:37:54 ] >>205 ごめん俺、確率的判定アルゴリズムしか知らない・・・ こういう演習で確率的アルゴリズム書いて提出するとどうなるんだろうな
210 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:56:55 ] #Define Pi 3.14 double series_sin(double degree,int num){ double radian=degree * Pi/180; double tmp=0; for(int i=1;i<=num;i++ ){ tmp+=Pow(-1,i+1)*Pow(radian,i*2-1)/Factorial(i*2-1); } return tmp; } テストも糞も無いけどこれを修正してmath.hのSinと比べればOK factorialの演算子がC++にあるかどうかは分からんので。
211 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:15:06 ] >>145 何を求める問題なのかがさっぱり分からないから 問題を書き直したほうがいい
212 名前:デフォルトの名無しさん [2007/11/26(月) 10:28:06 ] 期限過ぎちゃいましたけど、 >47お願いします。
213 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 11:51:43 ] >>209 なんで謝るの?
214 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:12:00 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5335.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: なし [5] その他の制限:なし
215 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:42:30 ] >>214 #include <stdio.h> #include <time.h> void gput(const char *s, int speed) { clock_t c; while(*s) { putchar(*s++); c = clock(); while(clock() - c < speed); } }
216 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:53:26 ] [1] 授業単元: プログラミング [2] 問題文 数字の点数を読んで、クラスの平均点、最低点と最高点を求めるプログラムを書け [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: 不明 [3.3] 言語: C#なんだけど、ほかのスレタイ調べても頼めないからみんなたのむ。 [4] 期限: 今週の金曜 [5] その他の制限:結構レベルが低いので複雑なプログラムはご遠慮願います。
217 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:20:24 ] #include<stdio.h> int main(){ int n; printf("数字の点数を入力してください ",n); scanf("%d",&n); printf("平均点 %d\n",n); printf("最低点 %d\n",n); printf("最高点 %d\n",n); return 0; }
218 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:28:01 ] int ClassMenberNum = 1;
219 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:48:02 ] >>214 while(clock() - c < speed); → while(1000*(clock() - c) / CLOCK_PER_SEC < speed);
220 名前:学生 [2007/11/26(月) 16:50:23 ] 大学の授業で課題が出ました。初めてプログラミングやるので分かりません。 お願いします。自分は全くの初心者ですお願いします。 【C言語・質問】 以下、課題です。 @課題内容 駐車場のシュミュレーション・課題先リンク www.trpt.cst.nihon-u.ac.jp/processing/2006/parking.html ※貴方自身がコンビニやパチンコ店の管理者となり、 イメージして以下の条件は各自自由な値としてよい。 ・駐車場の台数 ・平均駐車時間(s) ・駐車時間の標準偏差(s)・駐車車両発生条件(開始時間 s ) ・その時間における発生確率(台/s)・駐車車両発生条件(中間時間 s ) ・その時間における発生確率(台/s) 例:パチンコ店 駐車場の台数=200台 来店頻度=400秒に1台 平均駐車時間=120分 等 上記の設定で、グラフも出る様にすること。 A課題の参考場所 www.trpt.cst.nihon-u.ac.jp/processing/parkingsim.c 上記の言語がベースになる様です。
221 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:53:28 ] >>220 ログインできないのでユーザー名とパスワードを教えてください。
222 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:54:27 ] >>220 >>1 のテンプレに則ってください
223 名前:学生 [2007/11/26(月) 16:57:21 ] >>221 すみません ユーザー:1424 PASS:1424 両方同じです。 >>222 すみませんでした。以後注意します
224 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:57:39 ] >>215 >>219 ありがとう!助かります!
225 名前:学生 [2007/11/26(月) 17:08:27 ] テンプレに沿って書き直しました。 [1] 授業単元:情報処理 [2] 問題文:上記に掲載しました。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: bcPad [3.3] 言語: C言語 [4] 期限:本日中 [5] その他の制限: 自分はプログラミング素人です。各文字の意味は知っています
226 名前:デフォルトの名無しさん [2007/11/26(月) 17:08:48 ] [1] 授業単元:C言語(システムコール) [2] 問題文(含コード&リンク): 10から0までの整数を1秒ごとに表示する親プロセスと子プロセスを生成しなさい。 備考 ・fork() を用いること ・getpid() を用いて、親プロセスと子プロセスのプロセスIDを表示すること ・wait() を親プロセスで用いない場合と用いた場合を作成すること [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: なし [5] その他の制限: なし
227 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:10:30 ] >>223 大学の鯖に入れって事だろ? なんか、ギリギリアウトな気がするんだが・・・w
228 名前:学生 [2007/11/26(月) 17:12:26 ] >>227 大丈夫です。過去にも依頼した事がありあす。 このページ作っているのは大学院生です。見ていません
229 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:18:01 ] すげぇなぁ、おいw
230 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:19:11 ] 基本技術者試験とかの設問で、不正アクセスになるのはどれか? という選択肢にありそうだなw
231 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:25:44 ] 不正アクセスでタイーホ
232 名前:学生 [2007/11/26(月) 17:26:50 ] >>230 多分不二家ですねw 大学の鯖は、情報処理を履修している学生200名が利用していますよ
233 名前:デフォルトの名無し [2007/11/26(月) 17:44:19 ] [1] 授業単元: プログラム演習 [2] 問題文:入力された正の2整数の最大公約数と最小公倍数を算出する。 1(異常) ・キーボードからの入力が空の場合は処理を終了する。 ・キーボードからの最大入力桁数は4バイトとする。 ・キーボードからの入力が4バイトを超える場合は処理を終了する。 ・キーボードからの入力が正の整数に変換できない場合は処理を終了する エラーメッセージ 未入力 :入力されていません、桁あふれ:4文字以下で入力してください、数値以外:半角数字以外入力できません、ゼロ入力:0は入力できません 文字列を正数に変換する関数はatoiを使用。 引数 char data[] 文字列 戻り値 : 正数 エラー値 -1 未入力 -2 桁あふれ -3 数値以外-4 ゼロ入力 最大公約数を算出の関数名はgcdでユークリッドの互除法を使用。 引数 int data1 データ1 int data2 データ2 戻り値 : 最大公約数 最小公倍数を算出する関数名はlcm。最小公倍数を算出する際、最大公約数の関数を使用する。 引数 int data1 データ1 int data2 データ2 戻り値 : 最小公倍数 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 11・27まで [5] その他の制限: なし
234 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:34:03 ] >>232 利用者は関係なくてだね アクセス制限してる以上、君が公開したところで罪になるのは見た人なんだよ
235 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 19:27:26 ] 好奇心から侵入してしまった俺は2chの歴史に刻まれるのか
236 名前:デフォルトの名無し [2007/11/26(月) 19:36:51 ] 1] 授業単元: ぷろぐらむ [2] 問題文:入力された「対象文字列(s)」の中から、「検索文字列(t)」を検索し、 該当した「対象文字列」の添字を戻り値とする関数「search(s,t)」を作成しなさい。 ただし、「対象文字列」が「検索文字列」を含まない場合には「-1」を戻り値とする。 なお、関数「search(s,t)」は別ファイルに分け(main関数とそれ以外の関数)、 分割コンパイルできるように作成しなさい。 このとき、main関数以外の関数宣言が記述されたヘッダファイルを作成し、 main関数のソースファイルにて利用すること。 (例) 以下の値で動作した場合は、「3」を返す。 文字列s = “aababcbaa” 文字列t = “abc” 入力は最大128バイトとする。128バイトを超える入力があった場合は処理を終了する [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:11月27日まで [5] その他の制限: なし
237 名前:デフォルトの名無し [2007/11/26(月) 19:44:50 ] 1] 授業単元: プログラミング言語 [2] 問題文:与えられた数字文字列を数値(int型)へ変換する関数 AsciiToIntを、ポインタを使用して作成せよ。 さらに、この関数を使用し、入力された文字列が実際に数値変換されたことを確認するプログラムを作成せよ。 引数 char *s 文字列のポインタ int *value 変換結果 戻り値 : 結果 文字列が空または8桁以上の場合はエラー値を返す。 文字列が数値に変換できない場合はエラー値を返す。 処理手順 文字列が空または8桁以上の場合はエラー値を返す。 先頭の文字列が符号+/-の場合、それを取り除いた文字列をチェック対象とする。 文字列の桁数を取得。 文字列を読み込んで、以下の処理を行う。 先頭文字列が+/-の場合は、符号情報を保持しておく。また、桁数が1の場合は、エラー値を返す。 ASCIIコードを使用し文字列をチェックし、数値以外であった場合はエラー値を返す。 取得した入力文字列の桁数、読み込んだ数値とその桁数より、数値計算を行う。 計算した結果を合計値に加算する。 入力値がマイナスであった場合、合計値に符号を付加する。 合計値を返す。場合は、エラー値を返す。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C言語 [4] 期限: 11/27 [5] その他の制限:なし
238 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:16:55 ] >>216 「読む」の意味がいまいちわからないけどこんなんかな using System; class Sample{ public static void Main(){ int[] point = new int[5]; int max=int.MinValue, min=int.MaxValue; double avg=0.0; try{ for(int i=0; i<5; i++){ Console.Write("{0}人目の得点->", i+1); point[i] = int.Parse(Console.ReadLine()); } for(int i=0; i<5; i++){ if(max < point[i]) max = point[i]; if(min > point[i]) min = point[i]; avg += point[i]; } Console.WriteLine("最高点:{0}点\n最低点:{1}点\n平均点:{2}点", max, min, avg/5); } catch{ Console.WriteLine("なんか例外"); } } }
239 名前:デフォルトの名無しさん [2007/11/26(月) 21:18:15 ] [1] 授業単元プログラミング [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5336.txt [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン: visual studio 2005 [3.3] 言語: C言語 [4] 期限: 11/27 [5] その他の制限: 特になし
240 名前:デフォルトの名無しさん [2007/11/26(月) 21:25:29 ] (1)C言語 (2)問題 ・与えられた個数の正の整数を格納している配列のうち、最大となる値を検出して、その値を 格納している配列要素の値を0に書き換える。すると新しい配列においては、もとの配列で 大きい方から数えて2番目の数値が最大値となっている。さらにもう一度、この新しい配列 における最大値を格納している配列要素の値を0に書き換える。するとこの時点でのさらに 新しい配列では、最初の配列において大きい方から数えて3番目の数値が最大となってい る。このことを利用して、下記のプログラムを作成せよ。 (ここで示した方法は、いわゆる整列(ソーティング)問題の1つの解法となり得るが、効率的 な方法ではない) まずメイン関数において、キーボードから正の整数の個数(100以内)を入力し、次いで実 際の数値を配列に入力する。そしてメイン関数はサブ関数に、入力した個数と配列を引数とし て渡す。 サブ関数は、これらの配列から、まず1番目に大きい数を見つけて、それを別途設けた配列 の先頭の要素に格納し、次に2番目に大きい数を見つけてこれをこの配列の先頭から数えて 2番目の要素に格納し、という処理を最後の数に至るまで繰り返す。これにより新しい配列に は大きい数から順に並んでいることになるので、これを引数を利用してメイン関数に渡す。(す なわちサブ関数は引数を3つ持つことになる。1つはデータの個数を示す変数、1つは入力デ ータを格納する配列、残りの1つはサブ関数で計算した結果を格納する配列である) 最後にメイン関数はサブ関数で計算された新配列の値を若い方の要素から順に(即ち大き い数から順に)画面に表示する。またこの数列の中央値を表示する(中央値に小数が含まれ る場合は、その小数を切り捨てた整数を表示することとする)。 (3)環境 (3.1) OS:Windows (3.2)コンパイラ名とバージョン: 不明 (3.3) (3.4)C言語 (4)期限 :11月30日 (5)基礎的なことしか習っていないのですがよろしくお願いします。
241 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:35:49 ] >>236 関数だけ作った #include <string.h> int search(const char *s, const char *t); int search(const char *s, const char *t){ char *p; p = strstr(s, t); if(p == NULL)return -1; return p-s; }
242 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:41:55 ] >>241 >入力は最大128バイトとする。128バイトを超える入力があった場合は処理を終了する この部分の仕様を満たしてなくね? if ( strlen( s ) > 128 ) exit( 0 );とか追加すればいいだけど。
243 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:44:04 ] >>242 何ぃ!その部分はmain側だと思ってた! じゃあそれつけといて下さい
244 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:08:23 ] >>237 関数だけ作った valueの使い道がわからなかった #include <stdio.h> #include <string.h> #define ERROR_INT 100000000 int AsciiToInt(char *s, int *value){ int calc = 1, cnt, i, ans=0; cnt = strlen(s); if(cnt > 8 || cnt <= 0)return ERROR_INT; if(*s=='+' || *s=='-'){ calc = *s=='+' ? 1 : -1; s++; cnt--; } if(cnt <= 0)return ERROR_INT; for(i=0; i<cnt; i++){ if(strchr("0123456789", s[i]) == NULL)return ERROR_INT; ans = ans*10 + s[i]-'0'; } return ans * calc; }
245 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:20:15 ] >>244 valueに値を格納して返す値は正常or変換結果じゃないか? 「変換結果を返す」ってあるけど、普通は正常or異常を返して 正常ならvalueに変換された値が格納されているって感じだな。
246 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:25:25 ] >>240 #include <stdio.h> #define N 10 void subfunc(int cnt, int *num, int *ans){ int i, k, pos; for(i=0; i<cnt; i++){ for(k=1, pos=0; k<cnt; k++){ if(num[pos] < num[k])pos = k; } ans[i] = num[pos]; num[pos] = 0; } } int main(void){ int i, num[N], ans[N], sum=0; for(i=0; i<N; i++){ printf("%d個目->", i+1); scanf("%d", &num[i]); } subfunc(N, num, ans); for(i=0; i<N; i++){ printf("%d ", ans[i]); sum += ans[i]; } printf("\n中央値:%d\n", sum/N); return 0; }
247 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:39:13 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): www.vipper.org/vip677010.txt "sample.txt"というファイルを読み込み、グラフにしたとき山になる点を順番と大きさを"result.txt"に出力するプログラムを書け。 ファイルオープンに失敗した場合は失敗した旨を表示させること。 ※[3, 10] [6, 6] [9, 9] をresult.txtに出力できるようになればいいみたいです。 [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン: VisualC++2005ExpressEdition [3.3] 言語: C [4] 期限: 11/27 [5] その他の制限:とくになし よろしくお願いします。
248 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:24:31 ] >>233 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5339.txt
249 名前:デフォルトの名無しさん [2007/11/26(月) 23:25:04 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): (1)malloc()を用いて元のリストの構造をコピーしたリストを返すプログラム ※再帰的なプログラムをすること。以下を使用。 MyList *cpMyList(MyList *ptr); (2)malloc()を用いて元のリストの先頭からn個のnodeをコピーしたリストを 返すプログラム ※nがリスト長より長いときにはそこまでの長さんのリストを返せばよい ※再帰的なプログラムにすること。 MyList *cpnMyList(MyList *ptr, int n); (3)malloc()を用いて与えられた二つのリストをつなげたリストを返すプログラム MyList *mergeMyList(MyList *ptr1, MyList *ptr2); ----------------------------------------- 冒頭は以下を使用 #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct node { int data; struct node *next; } MyList; [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 11/28 なにとぞ、よろしくお願いします。。
250 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:29:37 ] ↓第1回、国際ニコニコ映画祭 大賞作品 www.nicovideo.jp/watch/sm1493205 はっきりいって糞暴力動画 これでいいのか?ニコニコ動画!??
251 名前:128 mailto:sage [2007/11/26(月) 23:47:54 ] >>131 >>154 >>132 のでは実行してもなぜか何も表示されませんでした。 自分の環境では>>154 のプログラムで正しい答えが出ました。 ありがとうございました。 あと数列に直すために色々試したのですができません・・・ これもお願いしていいでしょうか?
252 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:52:10 ] よくあんな巨大配列で動いたもんだ