1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ] あなたが解けない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++の宿題を片付けます 103代目 pc11.2ch.net/test/read.cgi/tech/1200318925/
440 名前:デフォルトの名無しさん [2008/02/27(水) 00:17:52 ] [1] 授業単元:プログラミング演習 [2] 問題文: 空気中でつるされている銅球の温度変化は以下の式で求まる。 Cp・ρ((πd^3)/6)dT/dt=-πd^2((λ/d)Nu)(T-Tair) 周辺空気の温度Tair=300K、流速3m/sのときの銅球の温度変化を計算しなさい。 なお、t=0sで銅球の初期温度はT0=700K、銅球の温度分布は無視し、各物性値は500Kで計算のこと。 (Cp=1.03kJ/kgK、ρ=8813kg/m^3、λ=39.71×10^3W/mK、Nu=11.04) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: [3.3] 言語:C++ [4] 期限: 2008年2月27日15:00 [5] その他の制限:使用したアルゴリズムは全て関数化する。 ルンゲクッタ法を使用 どうしてもわからないのですみませんがお願いします。
441 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:26:00 ] >>440 微分方程式を解くのか?
442 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:32:01 ] >>441 そうなんだと思います。
443 名前:デフォルトの名無しさん [2008/02/27(水) 01:23:12 ] [1] 授業単元:情報処理 [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: Windows [3.2]コンパイラ名とバージョン: [3.3] 言語: C [4] 期限: 2008年2月27日 12:00 2つの文字列A,Bに入力し、、 それぞれの文字列の先頭から順に一文字づつ抜き出し、 交互に出力するプログラムを作成しなさい。 Str関数を使用しない 例: 文字列Aにabcd 文字列Bに123456 と入力すると 出力結果 a1b2c3d456 が出力されるようにする。 よろしくおねがいします
444 名前:デフォルトの名無しさん [2008/02/27(水) 01:29:42 ] >>439 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6096.txt
445 名前:デフォルトの名無しさん [2008/02/27(水) 01:31:44 ] >>444 は間違い。
446 名前:デフォルトの名無しさん [2008/02/27(水) 01:38:15 ] >>439 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6097.txt こっちが正しい。
447 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:44:13 ] >>443 #include <stdio.h> int main(void) { char bufA[32], bufB[32]; int i=0; printf("文字列Aの入力:"); fgets(bufA, sizeof(bufA), stdin); printf("文字列Bの入力:"); fgets(bufB, sizeof(bufB), stdin); while(bufA[i] != '\n' && bufB[i] != '\n') { putchar(bufA[i]); putchar(bufB[i]); i++; } if(bufA[i] != '\n') puts(bufA+i); if(bufB[i] != '\n') puts(bufB+i); return 0; }
448 名前:デフォルトの名無しさん [2008/02/27(水) 01:46:34 ] Str関数ってなんだろう。Str関数を作れって意味ではなさそうだし。 str〜関数を使えってことかな?
449 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:15:44 ] >>439 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6098.c >>444-446 連接の解釈が違うきがする
450 名前:デフォルトの名無しさん [2008/02/27(水) 02:22:55 ] >>449 ああああああ!!! そうか、そういうことか。
451 名前:443 [2008/02/27(水) 02:27:24 ] >>447 すみません、書き忘れてましたorz 配列でなくポインタででした・・ >>448 strのとこはstrcpyとか使わないでということです。
452 名前:!= 447 [2008/02/27(水) 02:48:15 ] >>451 bufA[i]←こういうのがあってはいけないってことかな? ならば、 #include <stdio.h> #include <stdlib.h> int main(void) { char *bufA, *bufB; int i=0; bufA=malloc(32); bufB=malloc(32); printf("文字列Aの入力:"); fgets(bufA, 32, stdin); printf("文字列Bの入力:"); fgets(bufB, 32, stdin); while(*(bufA+i) != '\n' && *(bufB+i) != '\n') { putchar(*(bufA+i)); putchar(*(bufB+i)); i++; } if(*(bufA+i) != '\n') puts(bufA+i); if(*(bufB+i) != '\n') puts(bufB+i); free(bufA); free(bufB); return 0; }
453 名前:440 [2008/02/27(水) 04:50:45 ] 微分方程式は手計算で解いてみたんですがソースを作ってみても解が出てきません… どうすればいいかもまったくわからないです… どのような解法でもいいのでどなたか本当にお願いします。
454 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:02:02 ] >>440 この温度変化の微分方程式の本質は dT(t)/dt = a * T(t) + b という形になるはず。 この解は、微分しても同じ形の関数T(t)が出てくるので、 T(t) = c * e^t のように、指数関数になる、っていうのまではいいのか?
455 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:15:33 ] >>454 それはよくないんじゃないか?
456 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:18:02 ] >>453 ルンゲクッタ法を調べる
457 名前:440 [2008/02/27(水) 10:58:22 ] >>454 そこまではわかったんですが…どのようにソースを作ればいいのかがわからないです。 ルンゲクッタ法を用いてやってみているんですが解が求まりません…
458 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:01:17 ] >>446 ,449 ありがとうございます!
459 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:02:55 ] >>457 ある程度できてるならソース張って添削してもらった方が早いと思うぞ。
460 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:45:16 ] >>440 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6100.cpp
461 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:47:16 ] >>454 T(t) = c e^t だったら温度が指数関数的に吹っ飛ぶことになるが
462 名前:440 [2008/02/27(水) 12:43:05 ] 以下が自分で作成したソースです。 曖昧なところが多々あってすいません。 double Onndo(double t0, double T0, double h,double k) { int i; int x,y,k1,k2,k3,k4,h2; double K ; /* 解法で得られた値を格納する変数 */ x=t0;y=T0; h2=h/2.; for(i=0;i<=y;i++){ k1=f(x,y,k); k2=f(x+h2,y+h2*k1,k); k3=f(x+h2,y+h2*k2,k); k4=f(x+h,y+h*k3,k); x=t0+(double)i*h; y+=(k1+2.*k2+2.*k3+k4)*h/6.; } K=x; return K; }
463 名前:440 [2008/02/27(水) 12:44:34 ] >>462 *---- 関数f(x,y)の設定 ----*/ double f(double x, double y,double k) { double f; f=k*(y-300)*x; return f; } /*----- 解の設定 -----*/ double Ans_f(double y,double x,double k) { return exp(-k*x); } k=(-6*ramu*Nu)/(Cp*ro*d*d);として計算しています。
464 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:31:19 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6101.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 28日24:00まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) まだ講義ではそこまで深くプログラミングを学んでいないため、if文for文など簡単な文を多めに使う感じにしてください。 プログラムでなく考察を要求してるところを横棒で区切りました。 そちらの方にも軽くヒントなどいただきたいです。
465 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:53:39 ] >>440 Cp……銅の比熱(500K) ρ……銅の密度(500K) d……??? λ……熱伝達係数 Nu……ヌッセルト数 流速3m/s はどこで使うの? d は何? πd^2((λ/d)Nu) の部分は πdλNu と約分できそうだけど、ホントにこのままでいいの? それともd^2ってのは二階微分を表してるの?
466 名前:465 mailto:sage [2008/02/27(水) 16:39:07 ] >>440 そもそも、その銅球の半径は? それがd?
467 名前:デフォルトの名無しさん [2008/02/27(水) 22:56:46 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): コマンド ライン引数に指定されたファイルすべてに対して、 改行文字以外の各行を、 逆さまにして表示するプログラムを書いてください。 なお、対象のファイルには英数字などの半角文字のデータのみが入っているものとし、 漢字などの全角文字は含まれていないものとします。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: [3.3] 言語:C [4] 期限: 2008年2月28日 11:00 [5] その他の制限: 1.文字列の最後の文字から先頭に向かって、順に 1 文字ずつ表示 (ただし、文字列の最後の文字が改行文字の場合、その次から始める) 2. 1 で改行文字があったならば、改行文字を表示 だれかよろしくお願いします
468 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:26:20 ] // >>467 #include <stdio.h> #include <string.h> static void flip(char * str) { char * tail = strchr(str, '\n'); if (tail == NULL) tail = strchr(str, '\0'); for (--tail; str < tail; ++str, --tail) { char foo = * str; * str = * tail; * tail = foo; } } static void flipCat(const char * fileName) { FILE * fp = fopen(fileName, "r"); char buf[1000]; while (fgets(buf, sizeof(buf), fp) != NULL) { flip(buf); fputs(buf, stdout); } fclose(fp); } int main(int argc, char ** argv) { for (int ic = 1; ic < argc; ++ic) { flipCat(argv[ic]); } return 0; }
469 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:43:38 ] >>464 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6103.txt こんな感じかな? 再帰関数を使っているのであんまりサイズが大きい配列だとプログラムが異常終了するかも あと時間の計測方法は知らん 適当にmain関数を使っていじってみて
470 名前:デフォルトの名無しさん [2008/02/28(木) 07:54:50 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):以下の条件を満たしロトのプログラムを作成しなさい。 1 1〜42の中から6つの数字と1つのボーナス数字を選ぶことができます。ただし同じ数字を選ぶことはできません。 2 7つの数字は1次元配列の中になければなりません。 3 1つ1つの問題に対して関数定義を作り1つのプログラムで完成させなさい(関数を使う) 4 すべての関数はポインタを使いなさい。 問1 6つの数字と1つのボーナス数字を選ぶプログラム(エラー表示を含む) 問2 選らんだ数字とボーナス数字を1次元配列で表示しなさい 問3 選んだ数字とボーナス数字を小さい順に並べなさい 問4 ランダムに抽選されるプログラムを作り選んだ数字と比較し、以下の中の1つを表示させなさい Match 6 Jackpot Match 5 + Bonus Almost - just 1 away Match 5 Holidays paid for Match 4 + Bonus Night out Match 4 Full petrol tank Match 3 + Bonus Grub at local takeaway 問5 何回数字を選んだか表示しなさい (例)1はx回選ばれました [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン: [3.3] 言語:C言語 [4] 期限:2008年3月3日まで [5] その他の制限:ありません 丸投げです。どなたかよろしくおねがいします。
471 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 09:24:35 ] >>470 久々に書くと酷いな kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6104.txt
472 名前:470 [2008/02/28(木) 09:35:36 ] >>470 ほんとうにありがとうございます。 質問なんですが問4のランダム抽選はどのように表示されますか?
473 名前:470 [2008/02/28(木) 09:56:40 ] ↑アンカーミスです。。 >>471 ほんとうにありがとうございます。
474 名前:デフォルトの名無しさん [2008/02/28(木) 10:20:39 ] >>468 ありがとうございます。さっそくやってみたのですが、 test2.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。 test2.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。 test2.c(26) : error C2143: 構文エラー : ')' が '型' の前にありません。 test2.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。 test2.c(26) : error C2065: 'ic' : 定義されていない識別子です。 test2.c(26) : warning C4552: '<' : 演算子にプログラム上の作用がありません。作用 を伴う演算子を使用してください test2.c(26) : error C2059: 構文エラー : ')' test2.c(26) : error C2065: 'ic' : 定義されていない識別子です。 test2.c(26) : error C2143: 構文エラー : ';' が '{' の前にありません。 test2.c(27) : error C2065: 'ic' : 定義されていない識別子です。 と表示されるのですが…
475 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 10:47:43 ] >>474 int ic; for (ic = 1; ic < argc; ++ic) { に変えたら?
476 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 13:38:15 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):キーボードから整数の入力を4回繰り返し,それらの値を2次元配列 A の各要素に順に代入し,その行列のそれぞれの要素と行列式を表示するプログラムを作成せよ. 結果例 1行1列の要素? 6 1行2列の要素? 5 2行1列の要素? 4 2行2列の要素? 3 行列A = 6 5 4 3 行列式 = 2 [3] 環境 [3.1] OS: WinXP [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++ [4] 期限: 本日夕方6時まで もしよろしければどなたかお願いします。
477 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 13:50:12 ] >>476 #include <stdio.h> int main(void) { int a[2][2],i,j; for(i=0;i<2;i++){ for(j=0;j<2;j++){ printf("%d行%d列の要素? ",i+1,j+1); scanf("%d",&a[i][j]); } } printf("行列A =\n%d %d\n%d %d\n",a[0][0],a[0][1],a[1][0],a[1][1]); printf("行列式 = %d",a[0][0]*a[1][1]-a[0][1]*a[1][0]); return 0; }
478 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 14:10:59 ] >>477 早すぎるお仕事、ありがとうございました
479 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 21:18:18 ] 宿題マダー?
480 名前:デフォルトの名無しさん [2008/02/28(木) 21:29:27 ] では300Mのテキストファイルを速くブロックソートするプログラム作ってくれよ 昨日から作ってるけど速くならない
481 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:31:48 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6106.txt [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2008年3月1日 [5] その他の制限:
482 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:56:15 ] >>480 どんな環境でどんなデータに対してどれだけ時間がかかるのが遅いって言うんだ? 基準をplz
483 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:06:59 ] >>481 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #define BSIZE 128 int main(int argc, char **argv){ int rfd, rdnum char buf[BSIZE]; if ((rfd = open(argv[1], O_RDONLY)) == -1) { perror(argv[1]);exit(1); } else { printf("ファイルのオープンに成功しました\n"); } while(1){ if ((rdnum=read(rfd,buf,BSIZE))<1) break; printf(" %d\n",rdnum); } close(rfd); return 0; }
484 名前:デフォルトの名無しさん [2008/02/29(金) 01:11:21 ] >>482 全文字列を展開してソートした場合 #include <iostream> #include <string> #include <set> #include <time.h> using namespace std; class gou{ public: string str; int num; gou(string a, int b){str=a; num=b;} bool operator<(const gou& a)const{return str<a.str;}}; main(){ int sz=20000,n; string a(sz,'\0'); for(n=0;n<sz;n++)a[n]=rand()&255; multiset<gou> s; int cl=clock(); for(n=0;n<sz;n++){ s.insert(gou(a,n)); a=a.substr(1)+a[0];} cl=clock()-cl; cout<<"20kのブロックーソート "<<(cl+0.0)/1000<<"sec \n"; }
485 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:15:30 ] >>483 トン
486 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 02:33:11 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 1) 3つの「点」からなる構造体「三角形」を作成しなさい。1つの「三角形」を構成する3つの頂「点」の座標を読み込み、三角形の重心を求めなさい。 2) 「三角形」の重心を計算する関数を作成しなさい。この関数を用いて問題1を行いなさい。 3) 2つの「三角形」の「頂点」の座標を読み込み、どちらの「三角形」の中心点が原点に近いか求めなさい。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Borland C++Compiler Version 2.31 [3.3] 言語:C++ [4] 期限: 2008年2/29日中 [5] その他の制限: なし 切羽詰って依頼します。よろしくお願いします。
487 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 03:54:35 ] >>486 3)は、「中心点が原点に近いか」じゃなくて「重心が原点に近いか」じゃないの?
488 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 07:58:42 ] 重心の求め方がわからない? 各座標のx,yをそれぞれ足して3で割るだけじゃん。
489 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:57:25 ] >>486 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6107.txt
490 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 17:06:38 ] >>484 多少は早いんじゃないかと思う。 20kで動かせないからわからないけど #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/time.h> #include<math.h> typedef unsigned char byte_t; int srcsize; int comp(const void *p1, const void *p2){ return memcmp(*(byte_t**)p1, *(byte_t**)p2, srcsize); } int main(void){ int n; byte_t *src, *blockarea, *tmp, **blocklst; struct timeval stv={0}, etv={0}; srcsize=20000; src = (byte_t *)calloc(sizeof(byte_t),srcsize); blockarea = (byte_t *)calloc(sizeof(byte_t),(srcsize*srcsize)); blocklst = (byte_t **)calloc(sizeof(byte_t*),srcsize); if(src == NULL || blockarea == NULL || blocklst == NULL){ return 1; } for(n=0;n<srcsize;n++)src[n]=rand()&255; gettimeofday(&stv, NULL); memcpy(blockarea, src, srcsize); blocklst[0] = blockarea; for(n=1,tmp=blockarea+srcsize; n<srcsize; n++, tmp+=srcsize){ memcpy(tmp, src+n, srcsize-n); memcpy(tmp+srcsize-n, src, n); blocklst[n] = tmp; } qsort(blocklst, srcsize, sizeof(byte_t*), comp); gettimeofday(&etv, NULL); fprintf(stderr, "time %g sec\n", (etv.tv_sec-stv.tv_sec)+abs(etv.tv_usec-stv.tv_usec)/1000000.0); return 0; }
491 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 17:30:14 ] >>490 あっ、インデックス保持してやないや メモリの解放もわすれてるし・・・ どうも、ボケてるな
492 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:18:41 ] 486です。レス遅くなってしまったがありがとうございました。
493 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 13:33:08 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): <四則演算機の作成> テキストファイルから数式を読み出し、計算結果を別ファイル名で出力する。 数式には、+−*/()を含む。計算結果は整数とし、小数点以下は切り捨てる。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限: 2008年3月3日10:00まで [5] その他の制限:逆ポーランド記法に並び替えて計算するという手順で プログラムを作成しなさいとの説明がありました。逆ポーランド記法に 並び替えるプログラムで詰まってしまい先に進めらなくなってしまいました。 丸投げなのですがよろしくおねがいします。
494 名前:デフォルトの名無しさん [2008/03/02(日) 16:00:36 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): <copying-GCをC言語で作成 > 授業で行ったcopying-GCをC言語でせよ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 2008年3月5日00:00まで [5] その他の制限:なし C言語が大の苦手で、今遅れを取り戻そうとしているのですが。 期限が迫り、自分ではやってみるもののまったくわからないのでお願いします。
495 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:09:41 ] これはひどいwwwww
496 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:17:11 ] おい、だれかエスパーを呼んでくれ
497 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:36:47 ] ぎゃぼー俺には解けそうにない
498 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 17:34:48 ] この中に誰か授業に行った奴はいないのか!
499 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 22:22:58 ] >>494 #include "copying-GC.h" #include <stdio.h> int main(void) { char s1[]="copying-"; char s2[]="GC"; printf("%s\n", copygin-GC(s1, s2)); return 0; }
500 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 23:03:31 ] 個人で作成代行してくれるところってある? 雑誌の後ろらへんとか見てみたんだけどなかった、、、かといって会社に頼むとめちゃくちゃ高いし...
501 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 23:11:24 ] それが宿題ならここで丸投げすればいい。 そうでないならそもそもスレ違い。
502 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 23:23:03 ] 宿題だが、難しいから探してる スレ違いということなので、他で探してくる...orz
503 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 23:53:26 ] いや、宿題ならとりあえずテンプレに沿って書いてみれば? 専門知識が必要だと厳しいかも知れんが、参考になりそうなサイトでの添付してくれれば やさしいお兄さんが答えてくれる可能性はグンと上がると思うよ?
504 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 23:55:16 ] >>502 前方後円墳の容積を求める宿題なら。。
505 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 08:26:08 ] >>493 途中までです。仕事から帰ったら完成させます。すんません。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6112.txt
506 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 09:58:24 ] >>493 泥臭い kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6113.txt
507 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:16:16 ] >>484 C言語で書いてみたんだが、まだ必要だったらレスplz 参考までに速度比較(速度調べるために遅いマシンで測定した) >>484 のコードで 20000 の時 8.96 sec 書いてみたコード 20000 の時 0.11 sec 書いてみたコード 200000 の時 1.41 sec
508 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:19:39 ] >505,506 493です、ありがとうございました。 直前で見ることができなかったのですが、 なんとか明日まで延ばしてもらえたので ありがたくいただきます。
509 名前:デフォルトの名無しさん mailto:rinji_you@hotmail.co.jp [2008/03/03(月) 19:53:44 ] >>504-504 ありがとう でも前ちょっと聞いたんだけどスルーされちゃったから(キャプチャ関係) ちょっと切羽詰ってて、やらなきゃいけないので 当然謝礼はちゃんと出しますのでやって頂ける方はメールください(捨てアドでいいので) スレ違いすぎるのでとりあえずこれくらいで書き込みはやめます よろしくお願いします
510 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:36:52 ] >>493 もう書いてる人いるけどせっかくだから張ってみる。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6118.cpp
511 名前:デフォルトの名無しさん mailto:age [2008/03/03(月) 20:58:44 ] 素数を求めるC言語プログラミングを教えてください 条件が有りまして for文のネストもしくはwhile文のネストを使ってなおかつgoto文を使って下さい よろしくお願いします。
512 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:01:18 ] >>511 >>1 を読んで書き直すか下のURLクリック ttp://pc11.2ch.net/test/read.cgi/tech/1203343907/394
513 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:08:59 ] 「goto使え」って指定は初めて見たなw
514 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:33:35 ] map<int, map<int, int>> hogehoge; ↑外側 ↑内側 これの内側のmapにデータがある時に外側のmapをclearした場合、内側のmapに格納してあるデータは自動的に解放されるのでしょうか?
515 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:36:46 ] >>514 解放されます というか、特定の型の場合だけ残すほうが難しいよ
516 名前:デフォルトの名無しさん [2008/03/03(月) 22:45:31 ] >>515 ありがとうございます。 感謝です。 いつもわざわざ内側をclearしてから外側をclearしていました。><
517 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:07:59 ] >>510 おお、さらに書いていただけたとは・・。 ここまで短くなるものなのですね。自分で途中まで書いてたものが えらく長かったので助かります。505-506の方のと両方参考にして 提出後自分で練り直してみたいとおもいます。 ありがとうございました。
518 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:41:18 ] >>493 俺も作ったから貼ってみる kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6119.c
519 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 02:05:34 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):() for文を使用して、15パズルを作成せよ。 出来るなら経過時間も表示させること。 [3] 環境 [3.1] OS: WinXP [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: C++ [4] 期限: 2008年3月29日まで [5] その他の制限: 学校の課題です。出来るところまでやってみたものをろだにあげてあります。 開始時にランダムにピースを配置するものと、正解判定、経過時間の表示が手付かずの状態です。 出来ればあれ(ろだ、6120.txt)に手を加える形で作って頂ければ助かります。
520 名前:519 mailto:sage [2008/03/04(火) 02:08:50 ] ろだへのアドレスを貼り忘れました。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6120.txt です。
521 名前:505 mailto:sage [2008/03/04(火) 02:19:22 ] >>493 当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4)です。 すでに他の方のすばらしいものがあり、私のもののメリットは皆無です。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6121.txt
522 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 02:20:54 ] >>519 まずは、パズル.bmpと、空きに、指定する、数字と、完成形を、示して、ください
523 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 03:24:29 ] >>522 大変もうしわけありませんでした。 パズル.bmpはこちら(ttp://neko-loader.net/pict/src/neko18219.bmp)です。アップローダー(ねころだ)ですがご容赦ください。 完成形は、どう言えば良いんでしょうか。 「実行したときには、すでに数字パネルがバラバラに配置されている」「それをパズル.bmpのように元通りに直したら完成と表示される」 といった形です。 最初に表示される画像は完成したパズルの形だけれども、その後バラバラに配置されて……といった流れはなくとも大丈夫のようです。 15パズルとしては、Wikiペディア(ttp://ja.wikipedia.org/wiki/15%E3%83%91%E3%82%BA%E3%83%AB)に書いてあるものと同じスタンダードなものです。 メイン関数の部分にオセロゲーム、と書いてありますが、そこは消し忘れですので気になさらないでください。 本当に申し訳ないのですが、「空きに指定する数字」というのがよくわからず……。 こちらの知識不足で、ご迷惑をおかけしますが、どういったことでしょうか。
524 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:00:38 ] >>523 なにが判らないのか判らない。15パズルが、ピースを一つずつずらしていくパズルだと言うことは理解できているの? 先ずはWeb上にある15パズルを探してきて自分で動かしてみたら?
525 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 12:51:42 ] >>524 一応、そのあたりのことは理解しているつもりなのですが……。 現状(6120.txt)では、キーボードの上下左右を押して、ピースをずらす、という段階までは作れたつもりなんですが 「ピースを順番どおりにきちんと並びかえたときに、どうやってそれを判定するのか」 「最初にどうやってピースがバラバラに配置された状態にすればいいのか」 の二つがわからなかったんです。
526 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:14:32 ] >>525 きちんと並んだかどうかは、例えば1から15までのピースに1から15までの番号を振りブランクに0を振ったとして、 それらが1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0になったかどうかで判断すればいい。 初期位置は、解けないパズルになる可能性が合ってもいいなら、1から15までとブランクをシャッフルして配置すれば宜しい。 解けないパズルになってはいけないのなら、揃った状態からプログラム的にランダムにピースを操作するしかない。
527 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:37:12 ] >>526 > 揃った状態からプログラム的にランダムにピースを操作するしかない。 本当?
528 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:38:43 ] パリティを考慮して配置すればOK。でもめんどいw
529 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 15:35:20 ] >>527 の言うとおりに、揃った状態から盤面をランダムにする方がいいと思う
530 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:04:17 ] >>526 if(masu[1][0]==1)&&(masu[2][0]==2)……という風にやっていけば大丈夫でしょうか。 ひとまずやってみます。アドバイス本当にありがとうございます。 ピース配置のほうも、助かりました。>>529 さんも、ありがとうございます。 揃った状態から盤面をランダムにする、という方法でひとまずやってみたいと思うのですが……。 randを使用すれば良いんでしょうか。
531 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 18:42:17 ] >>528 パリティが奇だったら最後の2ピースひっくり返すだけ。面倒でもないよね。
532 名前:528 mailto:sage [2008/03/04(火) 19:35:34 ] 私が確認するのが面倒なの!w
533 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 19:39:34 ] >>530 15パズルなら、randで4まで出るようにして、それを空白のマスで行う、とか 1……空白マスの上を動かす 2……右を 3……下を 4……左を ってな具合に 角と辺では別処理
534 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:05:26 ] >>533 ありがとうございます。自分では考えもつきませんでした……。 戴いた助言どおりに進めてみることにします。
535 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 04:56:30 ] >>519 簡単に作ってみた。C++詳しくないんで中身はほとんどCだけど。 元のソースはよくわからんかったので全く利用してませんが悪しからず。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6123.cpp
536 名前:535 mailto:sage [2008/03/05(水) 05:45:15 ] malloc()のとこ、型変えたのに直し忘れてた。 sizeof(unsigned char) ではなく sizeof(unsigned int) です。
537 名前:535 mailto:sage [2008/03/05(水) 06:59:44 ] 確認不足で申し訳ない。見直したら不具合が残ってたので訂正。 moveTest()のDIR_NとDIR_Sは case DIR_N: return (y_size > 1 && i >= x_size); case DIR_S: return (x_size == 1) ? (y_size > 1 && i < y_size-1) : (y_size > 1 && i < (x_size-1) * y_size); にしといて下さい。 あとshuffle()は最初のほうに if(x_size == 1 && y_size == 1) return; を加えて下さい。
538 名前:519 mailto:sage [2008/03/05(水) 12:42:03 ] >>537 本当にありがとうございます。助かりました。
539 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 22:29:19 ] >>531 すみません。15パズルのパリティの計算を教えてください。
540 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 22:44:18 ] >>539 初期状態に、戻すように、入れ替えて、いけば、いい、 それが、偶数回の、作業か、奇数回の、作業か、という、意味