- 1 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 06:27:59 ]
- あなたが解けない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++の宿題片付けます 136代目 pc12.2ch.net/test/read.cgi/tech/1274827528/
- 185 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:55:08 ]
- >>178
元のコードにできるだけ合わせたつもり kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10740.cpp
- 186 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 22:17:25 ]
- CでなくC++でよかったな
- 187 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 22:18:45 ]
- 余計な言い訳せずにC++のコードくださいって言えばいいのにね。
- 188 名前:185 mailto:sage [2010/06/23(水) 22:54:11 ]
- >>185 の訂正
途中で @x 相当の変数使うの忘れてたw kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10741.cpp
- 189 名前:178 mailto:sage [2010/06/23(水) 23:11:42 ]
- >>181、183、184
ご指摘ありがとうございます その範囲を調べてみます。 >>185 わざわざコードを作っていただき 本当にありがとうございます このコードを参考に勉強させていただきます。
- 190 名前:デフォルトの名無しさん [2010/06/24(木) 00:22:32 ]
- モンテカルロ法で√2の近似値を求めたいのですが、
ネット調べてみるとモンテカルロ法と言えばπの近似に関するばかりで・・・ どなたか教えてくださいませ
- 191 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 00:33:17 ]
- [sin θ]0〜PI に近い
- 192 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 00:37:45 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 問題1:char name[20], int english, int mathematicsをメンバとする構造体 score を定義せよ 問題2:以下の5人の情報をもつ配列 seito[5] を、問題1で作成した構造体 score 型を使って宣言せよ。なお、5人の情報は初期値として宣言することにする。 name english mathematics "yamada" 50 70 "tanaka" 70 60 "suzuki" 80 70 "yamamoto" 40 60 "sakata" 90 80 問題3:問題2で初期値を代入した構造体 score 型の構造体配列 seito[5] を宣言し、各メンバ変数をソートする関数を作成せよ。 [3] 環境 [3.1] OS:Win Vista [3.2] コンパイラ名とバージョン:VB 2008 [3.3] 言語:C [4] 期限:2010年6月25日まで [5] その他の制限:無し よろしくお願いします
- 193 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 01:36:43 ]
- >>173ありがとうございます。助かりました!
- 194 名前:デフォルトの名無しさん [2010/06/24(木) 01:42:16 ]
- >>190
#include <stdio.h> #include <stdlib.h> #define NN 10000 int main(void) { int i, w, cnt = 0, n; printf("input sample no(cf.1000)="); scanf("%d", &n); for (i = 0; i < n; i++) { w = rand() % NN; w *= w; if (w < NN * NN / 2) cnt++; } printf("PI neary equal = %f", (double) cnt * 2 / n); return 0; }
- 195 名前:デフォルトの名無しさん [2010/06/24(木) 11:48:13 ]
- [1] 授業単元:情報処理
[2] 問題文:ガウスの消去法のプログラムをピボット対応と ピボット非対応の2つ作成し、連立方程式の解を求めよ。 (ただし解くべき連立方程式は5元1次方程式で、ピボットの 発生するものと発生しないものの2種類とする) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語: C++ お願いします。
- 196 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 13:44:31 ]
- 演習6-1
複数の文字列を読み込み,それらの文字列を空白を入れて繋ぎ合わせるプログラムを作成せよ. 【実行例】 何個の文字列を入力しますか?:3 入力文字列[1]:A 入力文字列[2]:B 入力文字列[3]:C 結果:A B C 演習6-3 入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ. 【実行例】 % ./a.out tataatccg ← 入力し,リターンを押して ^D Thymine (t) : 3 Cytosine (c) : 2 Adenine (a) : 3 Guanine (g) : 1 % よろしくお願いします!
- 197 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 15:07:11 ]
- >>196
演習6-1 #include <stdio.h> int main(void) { char buff[32], str[1024], *p, *q; int i, n; printf("何個の文字列を入力しますか?:"); scanf("%d", &n); for(i = 1, p = str; i <= n; i++) { printf("入力文字列[%d]:", i); scanf("%s", buff); for(q = buff; *q; q++, *p++) *p = *q; *p++ = ' '; } *(p - 1) = '\0'; printf("\n結果:%s\n", str); return 0; }
- 198 名前:デフォルトの名無しさん [2010/06/24(木) 17:15:46 ]
- ファイルkadai.txt に記述された数行の数値を表す文字列を読み込み、整数に変更して数値として表示
するプログラムを作成せよ。関数としてstrtol()を使用すれば問題ないが、同じ機能の関数を作成すること。 基数の設定に関する引数は必要なくデフォルト(先頭が0 なら8 進、それ以外は10 進、16 進は使用しな い)とする お願いします!
- 199 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 19:22:26 ]
- >>197
助かりました!本当にありがとうございます! >>196の演習6-3は無事、自己解決致しました。 ありがとうございました〜
- 200 名前:デフォルトの名無しさん [2010/06/24(木) 20:10:46 ]
- >>198
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10743.c
- 201 名前:デフォルトの名無しさん [2010/06/24(木) 21:08:03 ]
- バブルソートでは, 配列のデータがすでに適正な順序, あるいはそれに近い順序で並んでいても
n-1回の走査をしなければならない. すなわち, n(n-1)/2回の比較が行われなければならない. そこで, 各回の走査の終わりに, 交換が行われたか否かをチェックするようにし, 交換が行われていなければそれ以上走査の必要はないのでソートを完了するようなプログラムを作成しなさい. sizeofは使わない。 ↓のような出力結果になるようにする。 初期状態: 10, 3, 1, 15, 2, 7 [1回目の走査] 1回目の交換: 3, 10, 1, 15, 2, 72回目の交換: 3, 1, 10, 15, 2, 73回目の交換: 3, 1, 10, 2, 15, 74回目の交換: 3, 1, 10, 2, 7, 15 [2回目の走査] 1回目の交換: 1, 3, 10, 2, 7, 15 2回目の交換: 1, 3, 2, 10, 7, 15 3回目の交換: 1, 3, 2, 7, 10, 15 [3回目の走査] 1回目の交換: 1, 2, 3, 7, 10, 15 [4回目の走査] 最終状態: 1, 2, 3, 7, 10, 15
- 202 名前:デフォルトの名無しさん [2010/06/24(木) 21:09:51 ]
- #include <stdio.h>
int main(void) { int str[100]={0}; int i,j, temp,x; x=0; printf("値の上限を設定してください:"); scanf("%d",&x); for(i=0;i<x;i++){ printf("%d番目の値を入力してください:",i+1); scanf("%d", &str[i]); } printf("初期状態:"); for(i=0;i<x;i++){ if(i==x-1){ printf("%d\n ",str[i]); }else{ printf("%d, ",str[i]); } }
- 203 名前:デフォルトの名無しさん [2010/06/24(木) 21:11:02 ]
- for (i = 1; i<x; i++) {
for(j=x-1; j>=i; j--){ if (str[i-1] > str[i]){ temp = str[i-1]; str[i-1] = str[i]; str[i] = temp; } } } for (i = 0; i < x; i++){ if(i==x-1){ printf("%d\n", str[i]); }else{ printf("%d, ", str[i]); } } return 0; } ここまで作りましたが出力結果が上のようになりません。 誰か助けてください!お願いします。
- 204 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:50:07 ]
- #include <stdio.h>
int main(void) { int i, j, temp, x=0, f; printf("初期状態: %d", str[0]); for(i=1;i<x;i++) printf(", %d", str[i]); printf("\n"); for (i = 1; i<x; i++) { f = 1; for(j=x-1; j>=i; j--){ if (str[j-1] > str[j]){ temp = str[j-1]; str[j-1] = str[j]; str[j] = temp; f = 0; } } if(f != 0) break; printf("%d回目の走査: %d", i, str[0]); for(j=1;j<x;j++) printf(", %d", str[j]); printf("\n"); } printf("最終状態: %d", str[0]); for(i=1;i<x;i++) printf(", %d", str[i]); printf("\n"); return 0; }
- 205 名前: ◆QZaw55cn4c mailto:sage [2010/06/24(木) 22:05:02 ]
- >>201
codepad.org/4Nxqmitu
- 206 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 22:05:49 ]
- 使うとインデント表現できるんだね
- 207 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 22:08:25 ]
- >>206
s/\&/\&/g s/ /\ /g s/"/\"/g s/</\</g s/>/\>/g
- 208 名前:270 mailto:sage [2010/06/24(木) 22:09:47 ]
- すみません、間違えました。
s/\&/\&/g s/ /\ /g s/"/\"/g s/</\</g s/>/\>/g
- 209 名前:208 mailto:sage [2010/06/24(木) 22:11:50 ]
- んー、うまくいかない。
s/\&/\&/g s/ /\ /g s/"/\"/g s/</\</g s/>/\>/g こうか?
- 210 名前:sage [2010/06/24(木) 22:51:25 ]
- [1] 授業単元:C言語入門
[2] 問題文(含コード&リンク): 再帰呼び出しを使い、入力した値の階乗を求めるプログラムを書きなさい。 なお、出来る限り大きな値の計算を出来るように工夫しなさい。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 [3.3] 言語: C言語 [4] 期限: 6月中 [5] その他の制限:指定なし
- 211 名前: ◆QZaw55cn4c mailto:sage [2010/06/24(木) 23:12:33 ]
- >>210
なんの工夫もしていません。 codepad.org/31sqsbvL
- 212 名前:デフォルトの名無しさん [2010/06/25(金) 00:18:02 ]
- [1] 授業単元: 数値解析
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10745.txt ニュートン・ラフソン法についての問題です。教科書に例題として載っていたプログラミングに今回問題となっている方程式の当てはめ方がわかりません(おそらく初歩的な事だと思われます) [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:C [4] 期限:2010年6月25日16:00まで [5] その他の制限: 半年前に教養の授業として数時間C言語の授業があった程度の知識しかありません 周囲もそのような人ばかりなので深いC言語の知識が必要な問題ではないと思われます どうかよろしくお願い致します
- 213 名前:デフォルトの名無しさん [2010/06/25(金) 02:14:39 ]
-
[1] 授業単元:数値計算 [2] 問題文(含コード&リンク): 以下に示す2階の定係数線形同次微分方程式につ いて,初期値y(0)=a, y’(0)=bをキーボードから入力し, t=4における値を出力するプログラムを作成する. y''(t)+2y'(t)+2y(t)=0 条件 y(0)=2 , y'(0)=-2 答え y(4)=-0.02394 [3] 環境 [3.1] OS: (Windows/Linux/等々) vista [4] 期限:6月30日まで
- 214 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 10:25:17 ]
- >>213
精度を考慮してルンゲ・クッタ法で解いた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10746.txt
- 215 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 11:43:42 ]
- [1] 授業単元: 画像処理
[2] 問題文(含コード&リンク): 入力した2値白黒画像をハフ変換して直線および円を検出し、結果を表示するプログラムを作成せよ。 直線の式はρ= xcosθ + ysinθを、円の式はr2= (x-a)2 + (y-b)2をそれぞれ使用する。 なお、直線について処理後のρθ平面を濃淡画像として出力せよ。 円については処理後のabrパラメータ空間をGnuplotを用いて、 1点のエッジに対する軌跡(円錐)と2点以上のエッジに対する軌跡(円錐)を出力せよ。 また、円と直線両方について、3種類以上に閾値を変化させた実験結果を逆変換し、 その結果を原画像に投影した画像も出力せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: [2010年06月25日23:50まで] [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 画像として出力というくだりについては、RGBそれぞれの値を 変数名[画像サイズ].r/.g/.bという要素を持つ構造体を使って格納してください。
- 216 名前:デフォルトの名無しさん [2010/06/25(金) 14:26:22 ]
- >>147
亀ですがありがとうございました!
- 217 名前:デフォルトの名無しさん [2010/06/25(金) 14:32:43 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 午前四時から正午までは Good Morning! と、 正午から午後八時までは Good Afternoon! と、 午後八時から午前四時までは Good Evening! と、表示するプログラムを書け。ただし、境界の時刻は前の時間帯に含まれるものとする [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語:C [4] 期限:2010年6月30日23:55 [5] その他の制限: 特になし お願いします
- 218 名前:デフォルトの名無しさん [2010/06/25(金) 16:58:06 ]
- [1] 授業単元: プログラム
[2] 問題文(含コード&リンク): 番号 国語 数学 英語のメンバを持っている構造体を作って各教科の平均値と、全平均値を求めてください。(人数は4人とか5人で行ってください。あと番号っていうのは、番号は、4人なら1〜4までで5人なら1〜5までです) [3] 環境 [3.1] OS: linux [3.3] 言語: C++ [4] 期限: ([2010年6月26日まで] [5] その他の制限: #include <iostream> using namespace std; struct score { で始めて、 return文で終わってください
- 219 名前:デフォルトの名無しさん [2010/06/25(金) 17:13:52 ]
- >>214
ありがとうございました^^
- 220 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 17:59:13 ]
- >>218
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10748.cpp
- 221 名前:218 [2010/06/25(金) 21:51:05 ]
- >>218ですが忘れてました。なるべく簡単にしてください。
あと配列を使います。
- 222 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 01:08:39 ]
- >>217
#include <stdio.h> #include <time.h> int main() { time_t now = time(NULL); struct tm* local_now = localtime( &now ); const int hour = local_now->tm_hour; if ( hour>4 && hour<=12 ) printf( "Good Morning!" ); else if ( hour>12 && hour<=20 ) printf( "Good Afternoon!" ); else // ( hour>20 && hour<=4 ) printf( "Good Evening!" ); return 0; }
- 223 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 02:27:00 ]
- 【質問テンプレ】
[1] 授業単元:画像処理 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10749.txt [3] 環境 [3.1] OS: (指定なし) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: ([2010年06月28日14:50まで] ) [5] その他の制限:ヘッダファイル"bmp.h"はこちらです kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10669.txt よろしくお願いします。
- 224 名前: ◆C/HmxiIl0o [2010/06/26(土) 02:42:14 ]
- [1] 授業単元: 解析
[2] 問題文(含コード&リンク): x=1.0, 1.1,...,3.9, 4.0が与えられた時のlogxの値をラグランジュ補間で求め、 その近似値とlogxの真値をそれぞれ出力せよ。 また、求めた値と真値との誤差(絶対値)も求め、一次多項式の誤差と2次多項式の誤差を それぞれ出力せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 本日(26日)中にお願いします 宜しくお願いいたします。
- 225 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 02:59:03 ]
- >>223
codepad.org/D3nsJwKm 簡単に試したけど多分こんなん。
- 226 名前:デフォルトの名無しさん [2010/06/26(土) 03:40:45 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 構造体Triangleを下のように定義する。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10750.txt この構造体により一つの三角形を表現する。 Triangle構造体の構成要素は、三つの頂点のx座標、y座標をメンバとして持つ構造体Pointである。 このTriangle構造体を用いて、以下の使用に従う関数を作成し、任意の三角形の面積、その三角形を適切な2×2行列で線形変換した結果の三角形の座標とその面積、および任意の二つの三角形が合同であるかどうかを表示するプログラムを実装しなさい。 ・一つのTriangle構造体の変数を引数とし、その構造体が表す三角形の面積を返す関数。 ・一つのTriangle構造体の変数と、double型の二次元配列(2×2行列Aとする)を引数とし、引数で与えた三角形を行列Aによって線形変換した後の三角形を返す関数。 ・二つのTriangle構造体の変数を引数とし、その構造体が合同であれば1を、合同でなければ0を返す関数。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月28日まで [5] その他の制限:特にありません。よろしくお願いします。
- 227 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 07:07:19 ]
- double area(Triangle t) {
return fabs((t.p2.x - t.p1.x) * (t.p3.y - t.p1.x) - (t.p2.y - t.p1.x) * (t.p3.x - t.p1.x)); } Triangle linear(Triangle t, double a[2][2]) { Triangle ret; ret.p1.x = a[0][0] * t.p1.x + a[0][1] * t.p1.y; ret.p1.y = a[1][0] * t.p1.x + a[1][1] * t.p1.y; ret.p2.x = a[0][0] * t.p2.x + a[0][1] * t.p2.y; ret.p2.y = a[1][0] * t.p2.x + a[1][1] * t.p2.y; ret.p3.x = a[0][0] * t.p3.x + a[0][1] * t.p3.y; ret.p3.y = a[1][0] * t.p3.x + a[1][1] * t.p3.y; return ret; } int isCongruence(Triangle t1, Triangle t2) { double l1[3], l2[3]; int i, j; l1[0] = (t1.p1.x - t1.p2.x) * (t1.p1.x - t1.p2.x) - (t1.p1.y - t1.p2.y) * (t1.p1.y - t1.p2.y); l1[1] = (t1.p2.x - t1.p3.x) * (t1.p2.x - t1.p3.x) - (t1.p2.y - t1.p3.y) * (t1.p2.y - t1.p3.y); l1[2] = (t1.p3.x - t1.p1.x) * (t1.p3.x - t1.p1.x) - (t1.p3.y - t1.p1.y) * (t1.p3.y - t1.p1.y); l2[0] = (t2.p1.x - t2.p2.x) * (t2.p1.x - t2.p2.x) - (t2.p1.y - t2.p2.y) * (t2.p1.y - t2.p2.y); l2[1] = (t2.p2.x - t2.p3.x) * (t2.p2.x - t2.p3.x) - (t2.p2.y - t2.p3.y) * (t2.p2.y - t2.p3.y); l2[2] = (t2.p3.x - t2.p1.x) * (t2.p3.x - t2.p1.x) - (t2.p3.y - t2.p1.y) * (t2.p3.y - t2.p1.y); for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) if(l1[i] == l2[j]) { l2[j] = 0; break;} if(j == 3) return 0;} return 1; }
- 228 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:36:43 ]
- ラグランジュ補間で log(x) を求める。?
- 229 名前: ◆C/HmxiIl0o mailto:sage [2010/06/26(土) 12:07:55 ]
- >>228
問題にはそう書いてありました。 log2=0.6931,log3=1.0986 1次多項式で近似 log2=0.6931,log3=1.0986,log4=1.3863 2次多項式で近似 2点(2,0.6931)(3,1.0986)を用いてlog2.5を推定する logxの1次多項式による補間では、x0=2,x1=3より、 L-zero(x)=(x-3)/(2-3) L-one(x)=(x-2)/(3-2) であるから、p1(x)=1.0986(x-2)-0.6931(x-3) p1(2.5)=1.0986(2.5-2)-0.6931(2.5-3)=0.89585 3点(2,0.6931)(3,1.0986)(4,1.3863)を用いてlog2.5を推定する logxの1次多項式による補間では、x0=2,x1=3より、 L-zero(x)=(x-3)(x-4) / (2-3)(2-4) L-one(x)=(x-2)(x-4) / (3-2)(3-4) L-two(x)=(x-2)(x-3) / (4-2)(4-3) であるから、p2(x)=0.34655(x-3)(x-4)-1.0986(x-2)(x-4)-0.6931(x-2)(x-3) p1(2.5)=0.919575 真値=0.91629 誤差を求める式は e-k(x)=f(x) - p-k(x) = (f^(k+1)(クサイ) / (k+1)!)*(x-x0)・・・(x-xk) だそうです。 宜しくお願いします。
- 230 名前:デフォルトの名無しさん [2010/06/26(土) 12:17:47 ]
- [1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):三目並べのプログラムにCPとの対戦をつけろ。 codepad.org/wfwkEbVP [3] 環境 [3.1] OS:WinodwsVista [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition [3.3] 言語:C++ [4] 期限:6/27(水)8時半まで [5] その他の制限:C++初心者です。インライン関数は使わない方向でお願いします。 実行結果としてはこんな感じにしてほしいです。 1Pと2Pとの交互に対戦しますか? 1Pとコンピュータとの対戦にしますか? プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください: こんな感じで選らばせて対戦できるようにしてほしいです。 ※1Pのマスは○でコンピュータのマスは×でお願いします。
- 231 名前:デフォルトの名無しさん [2010/06/26(土) 12:19:15 ]
- >>230
ミス。 6/27(月)でした
- 232 名前:デフォルトの名無しさん [2010/06/26(土) 12:20:03 ]
- >>231
日曜でした。すいませんでした。
- 233 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 14:54:26 ]
- > であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) - 0.6931(x-2)(x-3)
> p1(2.5)=0.919575 であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) + 0.6931(x-2)(x-3) p1(2.5)=0.9105875 物理のかぎしっぽ:計算物理学:補間法:ラグランジュ補完 moondial0.net/archives/www12.plala.or.jp/ksp/computPhys/lag-hokan/index.html
- 234 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 15:11:16 ]
- [1]授業単元:システムプログラミング
[2]課題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10751.txt [3] OS:Windows Vista コンパイラ:CygWin上のgcc 言語 C [4] 7/1迄 [5] 授業は殆ど出ておらず単位を落としそうですんでよろしくお願いしまつ
- 235 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:49:42 ]
- >>229
ラグランジュ補間は手持ちの本「科学技術計算ハンドブック」に 掲載されているので、一次補間も二次補間も意味はわかるけど、 logxの近似をしたかったら、x=1.0から4.0まで近似したいなら、 もっと数表x[], y[]の標本が必要だよ というのは、ラグランジュ補間は極めて振動しやすいという欠点を 持っていて、その欠点を埋め合わせるには数表の取り方を工夫 しなければならない 少なくとも、[x,y]の組み合わせが多数欲しい 今1.0〜4.0の範囲で近似しようとしているのだから、xが0.0から5.0 の範囲で5点ほどは欲しい
- 236 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:58:22 ]
- > 今1.0〜4.0の範囲で近似しようとしているのだから、
x=2.5 のだけで。
- 237 名前:デフォルトの名無しさん [2010/06/26(土) 22:13:54 ]
- >>218を誰か簡単にお願いします
- 238 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:31:31 ]
- >>224
ideone.com/6f9pM
- 239 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:39:35 ]
- >>229
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10752.txt 数表が与えられていないので勝手に作ったよ。 logxはx=1.0未満になるとぐっとマイナスの方へ振れてしまい 標本としてはあまり好ましくないので、x=1.0以下の部分は 標本間隔を詰めた。
- 240 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:40:49 ]
- あ、ごめん>>236が見えてなかった。
>>239の取り扱いは好きなようにしてください。
- 241 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:48:41 ]
- >>237
>>218 codepad.org/3jK2ScYK 簡単というのがSTLを使いまくることだったらすまない。
- 242 名前: ◆C/HmxiIl0o mailto:sage [2010/06/26(土) 23:51:34 ]
- >>239
ありがとうございます。>>236は偽者です。 問題文には数表は全く書かれていなかったのですが、授業で使うスライドを見ていったところ、 1枚だけ、端っこの方に小さくy=f(x)= 1/(1+25*x^2)と書かれていました。 宜しくお願いします。
- 243 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 23:55:23 ]
- よろしく
- 244 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:37:41 ]
- >>242
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10753.txt うーん標本の取り方がいまいちかな・・・ 一次補間が振動しちゃってます 適当に数表をいじって誤差が少なくなるようにトライしてみてください
- 245 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:47:15 ]
- 数値計算理論の問題でC/C++のコーディング技術の問題じゃなさそう
- 246 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 03:08:48 ]
- [1] 授業単元:計算機とアルゴリズム
[2] 問題文(含コード&リンク):数列と漸化式を表示できるように9行目からお願いします。kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10754.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: [3.3] 言語:C [4] 期限: 2010年6月28日 [5] その他の制限:whileを使うと思います。 お願いします。
- 247 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 08:46:12 ]
- >>246
#include <stdio.h> main() { int n, m, an, sum; m = 5; printf("数列 an = n*n とその和を %d 項目まで表示します\n", m); n = 1; sum = 0; while (n <= m) { an = n * n; sum += an; printf("a[%d] = %d, sum = %d\n", n, an, sum); n++; } }
- 248 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 08:50:58 ]
- >>246
#include <stdio.h> main() { int n, m, an; m = 5; printf("漸化式 a(n) = 2*a(n-1), a1 = 2 で生成される数列を %d 項目まで表示します\n", m); n = 1; an = 2; while (n <= m) { if (n == 1) { printf("a[%d] = %d\n", n, an); n++; continue; } an = 2 * an; printf("a[%d] = %d\n", n, an); n++; } }
- 249 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 10:35:20 ]
- >>224
ideone.com/vVi7u 期限すぎてるけど、いいどらえもんがかけた。
- 250 名前: ◆QZaw55cn4c mailto:sage [2010/06/27(日) 16:20:11 ]
- >>210
codepad.org/2uVp97hy 100! まで確認しています。#define で指定している定数を増加させれば、もっと大きな数値にも対応できるかもしれません。
- 251 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 16:39:40 ]
- 【質問テンプレ】
[1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 入力した2つの整数の間 (入力した数も範囲に含める) にある 「2の倍数でない」かつ「3の倍数でない」かつ「5の倍数でない」 の条件を満たす整数を順に表示し,最後にその個数を表示するプログラムを作成せよ [3] 環境 [3.1] OS:VineLinux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年7月4日 [5] その他の制限:なお,整数の入力には get_int() を用いること。 # define BUFFER_SIZE (256)//get_int()です int get_int(void) { char buf[BUFFER_SIZE]; fgets(buf, BUFFER_SIZE, stdin); return atoi(buf); } よろしくおねがいします
- 252 名前: ◆QZaw55cn4c mailto:sage [2010/06/27(日) 16:46:14 ]
- >>251
codepad.org/kofHJzGi
- 253 名前:251 mailto:sage [2010/06/27(日) 17:12:01 ]
- >>252
迅速な回答本当にありがとうございます
- 254 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:04:24 ]
- [1] 授業単元:情報処理学
[2] 問題文(含コード&リンク): do-while文を用いて、キーボードから入力された値が素数であるかどうかを 判別するプログラムを作成せよ。入力された値が素数の場合は"素数"と出力し、 素数でない場合は最小の因数を出力せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:すいませんがわからないです。 [3.3] 言語:C [4] 期限:2010年6月30日まで
- 255 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:17:03 ]
- 1] 授業単元:情報処理学
[2] 問題文(含コード&リンク): 1次元配列に34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、 これらの平均値を求めよ。さらにint eval[3]という1次元配列を用意して eval[0]には0〜60の数の個数 eval[1]には61〜80の数の個数 eval[2]には81〜100の数の個数 を格納するようにし、それらを出力するプログラムを作成せよ。(配列、for文、if文を使って) [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月30日まで
- 256 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:30:25 ]
- >>254
#include <stdio.h> int main(){ int i,n,f; printf("> "); scanf("%d",&n); f=1; i=1; do{ ++i; if(n%i==0){ f=0; break; } }while(i*i<=n); if(f)printf("素数\n"); if(!f)printf("%d\n",i); }
- 257 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:33:36 ]
- >>255
#include <stdio.h> int main(void) { int array[] = {34, 57, 45, 21, 89, 63, 39, 48, 78, 68, 76, 84, 92, 53, 62}, eval[3] = {0}, i; double ave; for(i = 0, ave = 0.0; i <sizeof array / sizeof *array; i++) { ave += array[i]; if(array[i] < 0) continue; else if(array[i] <= 60) eval[0]++; else if(array[i] <= 80) eval[1]++; else if(array[i] <= 100) eval[2]++; } printf("平均値:%f\n", ave / (sizeof array/ sizeof *array)); printf("0〜60の数の個数:%d\n", eval[0]); printf("61〜80の数の個数:%d\n", eval[1]); printf("81〜100の数の個数:%d\n", eval[2]); return 0; }
- 258 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:44:01 ]
- [1] 授業単元:C言語入門
[2] 問題文(含コード&リンク): 次のように表示するプログラムを作りなさい。 私の学籍番号は0000000Aです。 氏名は aaaaa aaaaaaaaです。 ↑半角スペース [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:C++ [3.3] 言語: C言語 [4] 期限: 6月28日午前0時 [5] その他の制限: char型の配列no name を使う。 noに学籍番号、nameに氏名を格納し表示に使う。 自分の学籍番号、氏名はchar型の配列、no nameを初期化して配列に格納する。
- 259 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:52:25 ]
- #include <stdio.h>
int main(void) { char no[] = "0000000A", name[] = "aaaaa aaaaaaaa"; printf("私の学籍番号は%sです。\n", no); printf("氏名は %sです。\n", name); return 0; }
- 260 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:23:44 ]
- >>256
ありがとうございます。
- 261 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:35:45 ]
- >>257
ありがとうございます。
- 262 名前:デフォルトの名無しさん [2010/06/27(日) 22:45:00 ]
- >>241
>>241で書いてもらったみたいな感じです。ありがとうございました
- 263 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:22:42 ]
- a
- 264 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:25:25 ]
- >>259
本当に助かります(涙)ありがとうございます!!!!
- 265 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:45:11 ]
- >>264
いえいえ
- 266 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 00:33:27 ]
- お礼を言われると返って心苦しくなるなw
- 267 名前:デフォルトの名無しさん [2010/06/28(月) 00:41:58 ]
- >>241
忘れてました 全部の平均ってどういう意味なんですかね?これがいまいちわからないです
- 268 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 00:47:00 ]
- >>267
例えば、 英数国合計の平均=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点)/3
- 269 名前:268 mailto:sage [2010/06/28(月) 00:56:58 ]
- これのほうがまだわかるかな
(Eavg) +(Mavg) +(Javg) =(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点) +(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点) +(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点) =(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4 =英数国合計の平均
- 270 名前:みすった mailto:sage [2010/06/28(月) 00:58:13 ]
- (Eavg)
+(Mavg) +(Javg) =(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点) +(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点) +(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点) =(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点) これを人数分で割ると (Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4 =英数国合計の平均
- 271 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 01:15:43 ]
- すみっこつつきで申し訳ないけど、変数名がavgなのがちょっと変かもね。
質問者がそれで理解できてるようだからいいけれど。
- 272 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 06:33:29 ]
- >>271
うざいです(>_<)
- 273 名前:デフォルトの名無しさん [2010/06/28(月) 07:26:32 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 社員の情報を管理するプログラムを作りたい。 そこで、以下の例のような構造体Employeeを考える。 以下の構造体Employeeの例は、社員の名前を保存するchar型の配列変数name、年齢を保存するint型の変数age、年譜を保存するint型の変数salaryを有している。 名前は、アルファベットで記述することとし、この構造体では名字だけを管理することとする。(ただし、この構造体のメンバは変更してもかまわない。) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10756.txt このような構造体を用いて、下の実行例のような社員データベースを処理するプログラムを実装しなさい。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10757.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月29日まで [5] その他の制限:特にありません。よろしくお願いいたします。
- 274 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:31:05 ]
- 1] 授業単元: プログラム入門
[2] 問題文(含コード&リンク): 2つの自然数 n と m を入力し、その積 n×m を たし算のみで計算するプログラムを作成せよ。 [3] 環境 [3.1] OS: Windows [3.2] borland c++ compiler 5.5 [3.3] 言語: C [4] 期限: 2010年06月28日14:30まで [5] その他の制限: 特になし よろしくお願いします
- 275 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:36:05 ]
- #include <stdio.h>
int main(void) { int n, m, ans; scanf("%d%d", &n, &m); printf("%d * %d = ", n, m); for(ans = 0; m; m--) ans += n; printf("%d\n", ans); return 0; }
- 276 名前:246 mailto:sage [2010/06/28(月) 11:02:07 ]
- >>247
>>248 ありがとうございます。 助かりました。
- 277 名前:274 mailto:sage [2010/06/28(月) 12:02:00 ]
- >>275
ループ変数使用して、printf 文をまとめた方がよくないですか?
- 278 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:05:40 ]
- [1] 授業単元: C言語プログラミング入門
[2] 問題文:関数の再帰的呼び出しによりAckermann(アッカーマン)関数を計算するプログラムを作れ。同じプログラムを繰り返し処理(ループ計算)により実現できるか考えよ。Ackermann関数は次式で定義される。 [3] 環境 [3.1] OS: Mac OS [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年6月30日 [5] その他の制限: 特にはないです。 よろしくお願いします。
- 279 名前:278 mailto:sage [2010/06/28(月) 14:07:58 ]
- Ackermann関数は次式で定義される。の次式を書き忘れてましたすいません。
n+1 m=0 and n>_0 ack(m,n)= ack(m-1,1) m>0 and n=0 ack(m-1,ack(m,n-1)) m>0 and n>0
- 280 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:19:21 ]
- >>277 足し算で
#include <stdio.h> int main(void) { int a,b,c; scanf("%d %d",&a,&b); if (a<b){c=a;a=b;b=c;}c=0;b=-(b); while (b++)printf(b?"%d + ":"%d = %d\n",a,c+=a); return 0; }
- 281 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:20:10 ]
- >>274
#include <stdio.h> int main(void) { int i, n, m, ans; printf("input:"); scanf("%d", &n); printf("input:"); scanf("%d", &m); if(n<0 || m<0) { printf("error"); return 1; } ans = 0; if(n < m){ for(i=n; i > 0; --i) ans += m; }else{ for(i=m; i > 0; --i) ans += n; } printf("\nans:%d * %d = %d", n, m, ans); return 0; }
- 282 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/28(月) 16:02:40 ]
- >>224について、教えていただいたプログラムで提出したのですが、
logxの真値と補間で求めた値の誤差を比較していないとのことで受理されませんでした。 >>249さんのような結果を出さないといけないようなのですが、c++だったので、 Cに作り直そうとしたのですが、うまくできませんでした。 大変申し訳ないのですが、Cで作り直していただけないでしょうか? 宜しくお願い致します。
- 283 名前: ◆/91kCCQXBo mailto:sage [2010/06/28(月) 16:05:01 ]
- いいよCで作り直して。
>>280 文章よめ
- 284 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 16:16:58 ]
- >>282
ideone.com/Kc5i7
- 285 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/28(月) 16:26:08 ]
- >>284
ありがとうございました。
|

|