1 名前:デフォルトの名無しさん [2010/01/18(月) 23:25:55 BE:265079647-S★(508111)] あなたが解けない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++の宿題片付けます 133代目 pc12.2ch.net/test/read.cgi/tech/1260532772/
2 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 00:02:05 ] ぬるぽ
3 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 05:26:24 ] マジかよゴキブリ湧いてきた
4 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 05:35:52 ] 痴漢はこんなとこにもわくのかよw
5 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:17:21 ] ★宿題をやってあげる方は仕事でやっているわけではないので 品質に文句を付けるのはやめてください(質問は構いません) ★宿題をやった方は依頼者がまだ居るか確かめてから貼るように 心がけて下さい。 ★複数やってくださった方が居た場合でも依頼者は全員に貼って もらう必要はありません。批評を書き込むことは慎みましょう
6 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:26:29 ] 何をどうやって確かめろと?
7 名前:前スレ999 mailto:sage [2010/01/19(火) 11:31:41 ] >>1 乙です。 >>前スレ1000 すみません、>>984-986 ,990で全部です。
8 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 12:22:53 ] >>7 アップローダを使ってくださいませんか。コンパイルするまでが面倒です。
9 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 12:33:05 ] てかテンプレに沿った形にするのもプログラミングの練習
10 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 12:48:04 ] scanf系ってあんな柔軟だっけ?
11 名前:デフォルトの名無しさん [2010/01/19(火) 13:08:40 ] 前スレにも書きましたが お願いします [1] 授業単元: プログラミング演習V [2] 問題文(含コード&リンク): Printfを作る。 %d, %c, %sのみサポートする。 既存の関数・マクロは呼んではいけない。 使えるものはputchar()のみ。 [3] 環境 [3.1] OS: WindouwsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月21日(木)まで [5] その他の制限: 特にありません
12 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:54:05 ] 大学のプログラミングで使っている教科書だと、 main() { プログラム } なのに対して、時々ネット上で int main() { プログラム } と言うのを見かけます。何が違うのでしょうか?
13 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:59:00 ] すいません。自己解決しました。
14 名前:デフォルトの名無しさん [2010/01/19(火) 15:15:08 ] [1] 授業単元: プログラミング演習V [2] 問題文(含コード&リンク): 終了時、xとB、まらはAとHの内積のどちらかが0のプログラム。 (xを入力→Hを設定) AとBはそれぞれHやxの最小多項式の係数となるはず。 X1=(x1,...,xn)の転置行列; H=(X1,...,Xt); [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月22日まで [5] その他の制限: 特にありません kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10386.c なにか気づいた点でもよいのでお願いします。
15 名前:デフォルトの名無しさん [2010/01/19(火) 15:18:06 ] 14>> 授業単元は情報数学演習です。 すみません>>11
16 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 15:42:00 ] >>11 前スレで回答が出てるわけだが、再依頼の理由は? 908 名前: デフォルトの名無しさん [sage] 投稿日: 2010/01/17(日) 22:37:55 >>894 ,905-907 OSもコンパイラも指定でできないわけない。 codepad.org/Ep9uoXLa
17 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 17:54:44 ] >>11 pc12.2ch.net/test/read.cgi/tech/1260532772/908
18 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 18:24:02 ] >>16 すいません ありがとうございます
19 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 21:22:19 ] [1] 授業単元:c言語 [2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10388.txt [3] 環境 [3.1] Windows [3.3] 言語: C [4] 期限: 2009 1月21日 [5] その他 一応自分でも組み立てて考えたのですが強制エラーが出て,,, 簡単かもしれませんがよろしくお願いします
20 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 21:54:53 ] >>007 #include <stdio.h> #define DATA_MAX 5 /* データの最大件数 */ #define NAME_LEN_MAX 16 /* 名前の長さ */ #define TEL_NUMBER_LEN_MAX 16 /* 電話番号の長さ */ #define YUUBINN_LEN_MAX 8 /* 郵便番号の長さ */ #define ADDRESS_DATA_MAX 64 /* 住所の長さ */ typedef struct Address_Note { char name[NAME_LEN_MAX]; /* 名前 */ char tel_number[TEL_NUMBER_LEN_MAX]; /* 電話番号 */ char zip_code[YUUBINN_LEN_MAX]; /* 郵便番号 */ char address[ADDRESS_DATA_MAX]; /* 住所 */ } NOTE; int g_address_data_count = 0; int main(void) { int i, sts; NOTE data[DATA_MAX]; NOTE *p; FILE *fp; if((fp = fopen("address_note.txt", "r"))==NULL) { printf("ファイルが見つかりませんでした---address_note.txt\n"); exit(1);; } for(i=sts=0; i<DATA_MAX; i++) { p = &data[i]; /*データの読み込み*/ sts = fscanf(fp,"%16s%16s%8s%64s", p->name, p->tel_number, p->zip_code, p->address); if(sts==EOF) break; g_address_data_count++; printf("\n名前:%s\n電話番号:%s\n郵便番号:%s\n住所:%s\n", p->name, p->tel_number, p->zip_code, p->address); } }
21 名前:デフォルトの名無しさん [2010/01/19(火) 23:02:01 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10390.txt [3] 環境 [3.1] OS:Linux [3.3] 言語:C [4] 期限:明日まで 皆様よろしくお願いします。
22 名前:デフォルトの名無しさん [2010/01/19(火) 23:09:41 ] ↑問題訂正します [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10392.txt [3] 環境 [3.1] OS:Linux [3.3] 言語:C [4] 期限:明日まで 皆様よろしくお願いします。
23 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 23:09:59 ] >>21 全角と半角、大文字小文字が入り混じってハイフンが一になってることから OCR ソフトでも使ったかな? 最近のは優秀なんだねぇ
24 名前:デフォルトの名無しさん [2010/01/19(火) 23:13:16 ] >>23 はい。 もし見にくければ、もとの画像ファイルもアップしますのでよろしくお願いします。
25 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 23:16:10 ] >>24 ソースコード部分だけでいいからコンパイルできるように修正してよ
26 名前:デフォルトの名無しさん [2010/01/19(火) 23:35:27 ] >>25 修正しました。よろしくお願いいたします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10393.txt
27 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 23:57:26 ] >>19 char *resの領域が確保されていない
28 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 02:11:23 ] ★依頼してから「納品」までは最低24時間は下さい。 (ただし最低品質です)
29 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 05:04:06 ] >>26 codepad.org/ZR6qj0XE バグあったら教えて下さい。
30 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 05:37:43 ] >>19 codepad.org/aELKPmc0 問題あったら教えて下さい。
31 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 18:06:03 ] [1] プログラミング実習 [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10397.txt [3] 環境 [3.1] WindowsXP [3.2] Visual C++ [3.3] C言語 [4] 期限:2010年1月21日正午まで [5] 特にないと思います 穴抜け問題となっています。ほとんど時間がありませんが 必須問題なのでみなさんよろしく願いします
32 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 18:26:43 ] >>26 と同じ問題でした よく見ずに書き込んでしまい申し訳ありません ご協力ありがとうございました
33 名前:デフォルトの名無しさん [2010/01/20(水) 22:39:30 ] [1] プログラミング基礎実習 [2] 文字列strを逆順に格納する関数("SEC"を受け取ったら"CES"とする) void rev_string(char str[]){ /*…*/ } を作成せよ。 [3] 環境 [3.1]Linux [3.2]gcc、バージョンはわかりません。 [3.3]C言語 [4]明後日まで [5]ポインタ使えません。 よろしくお願いいたします。
34 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 22:49:20 ] ポインタ禁止といいながら、いきなり仮引数strがポインタ…
35 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 23:00:50 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10398.txt @insert_btを、再帰関数を使わずに繰り返し構文で書き換えよ A指定した数字を削除する関数delete_btを作成せよ [3] 環境 [3.1] OS:WindowsVista [3.2] コンパイラ名とバージョン:VisualC++2008ExpressEdition [3.3] 言語:どちらでも可 [4] 期限: 2010年1月25日まで [5] その他の制限: 習っているのはポインタ、構造体辺りまで。 よろしくお願いします。 特に@は再帰無しで2分木をつなげるヒントだけでもいただけると幸いです。
36 名前:34 mailto:sage [2010/01/20(水) 23:23:37 ] >>33 ポインタ禁止ではなく間接/アドレス演算子使用不可ということだと判断しておく #include <stdio.h> #include <string.h> void rev_string(char str[]){ char c; int s = 0; int e = strlen(str) - 1; do{ c = str[s]; str[s] = str[e]; str[e] = c; }while(++s < --e); } int main(){ char str[] = "SEC"; printf("%s\n", str); rev_string(str); printf("%s\n", str); return 0; }
37 名前:34 mailto:sage [2010/01/20(水) 23:29:39 ] >>37 ってこれだと空文字列の時にバグるか…訂正 void rev_string(char str[]){ char c; int s = -1; int e = strlen(str); while(++s < --e){ c = str[s]; str[s] = str[e]; str[e] = c; }; }
38 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 01:52:18 ] 長くなったのでうpロダお借りしました。 問題1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10399.txt 問題2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10400.txt よろしくお願いします。
39 名前:19 mailto:sage [2010/01/21(木) 02:06:45 ] >>30 解決できました.すごく丁寧なプログラムわざわざありがとうございます.
40 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 02:35:30 ] スレ荒れの原因になるんで、期限迄十分余裕を持って 依頼して欲しいですな。期限まで15時間、しかも 時間帯を考えると実質7〜8時間しかない。 平日の昼間に他人の宿題を無償で片付けられるような 暇人が居るとでも思っているんだったらちょっと自分の 常識を疑ったほうがよいんじゃないでしょうか?
41 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 03:08:29 ] >>40 荒れるほど難解な問題でもないっしょ 即答できない人は荒らそうとせずにスルーすればいいだけだ
42 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 03:44:23 ] 即答ラッシュになってつまらぬ喧嘩を始める 奴らが過去に居たもんで....
43 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 07:06:55 ] >>35 codepad.org/27osWYjf 問題の元のプログラムの設計が酷いな
44 名前:デフォルトの名無しさん mailto:age [2010/01/21(木) 09:58:23 ] C++なんですが .datファイルがもともとありまして、 文字列(単語が1つでない場合あり) 実数 文字列(単語が1つでない場合あり) 実数 …… の順に200行まで入ってるファイルを ifstream使用して 文字列は文字列の配列に、実数は実数の配列に入れたいのですが、 どうすればよいか分かりますか? 入力ストリームfinを文字列lineに入れるとすると int i=0; string s[200]; double d[200]; while(getline(fin,line)){ s[i]=line; fin>>d[i]; i++; } かな、と思ったんですが出力の時にうまくいかなくて どなたか教えてください お願いします
45 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 11:04:01 ] >>38 期限間違ってました。 金曜日まででお願いします。 本当すいません。 >>40 申し訳ありません。
46 名前:デフォルトの名無しさん [2010/01/21(木) 11:16:52 ] 1] プログラミング演習I [2] [3] 環境 [3.1] OS: WindouwsXP [3.2] microsoft visual stadio 2005 [3.3] 言語: C [4] 期限: 2010年1月21日(木)11:45まで 5 おねがいしまつ
47 名前:デフォルトの名無しさん [2010/01/21(木) 11:20:03 ] 〉〉46でつ・・・まちがました。。。 1] プログラミング演習I [2] int型,long型,double型の三つのメンバを持つ構造体xyzを定義して各メンバに値を格納する関数 void set_xyz(struct xyz*p.int X,long y.....)」を作成 [3] 環境 [3.1] OS: WindouwsXP [3.2] microsoft visual stadio 2005 [3.3] 言語: C [4] 期限: 2010年1月21日(木)11:45まで 5 おねがいしまつ
48 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 11:24:21 ] >>47 #define xyz struct{¥ int int_member;¥ long long_member;¥ double double_member} void set_xyz( xyz *p,int X,long Y,double Z){ (*p)->int_mbmer=X; (*p)->long_mbmer=Y; (p*)->double_membr=Z; }
49 名前:デフォルトの名無しさん [2010/01/21(木) 11:37:59 ] 〉〉48 神!! 書いていただいた回答を見てわかりますた!! ありがとうございました!!
50 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 11:40:58 ] え?w
51 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 12:24:30 ] >>43 ありがとうございます、助かりました。 それと、設計が酷いとは具体的にはどういうことでしょうか?
52 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 13:25:34 ] >>044 質問は質問スレへ #include <iostream> #include <fstream> using namespace std; int main(){ int i; double d[200]; string line[200], s; ifstream fin("test.txt"); for(i=0; getline(fin, line[i], '\n') && getline(fin, s, '\n'); i++){ d[i] = atof( s.c_str() ); cout << i <<":"<< d[i] <<"="<< line[i] <<endl; } return 0; }
53 名前:52 mailto:sage [2010/01/21(木) 13:41:56 ] #include <iostream> #include <fstream> using namespace std; int main(){ int i; double d[200]; string line[200], s; ifstream fin("test.txt"); for(i=0; getline(fin, line[i], '\n'); i++){ fin >> d[i]; getline(fin, s, '\n'); cout << i <<":"<< d[i] <<"="<< line[i] <<endl; } return 0; }
54 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 14:11:39 ] 昨日から、ラウンジにアクセスしようとすると403になるんだが、俺だけか?
55 名前:yui ◆zuLLaJzEzk mailto:sage [2010/01/21(木) 15:56:47 ] [1] 授業単元:情報処理入門 [2] 問題文(含コード&リンク): データファイルdata.binには,数値データがバイナリ形式で保存されている (1行に羅列).データの数は75×75=5625,データの型はshortである. data.binのデータを,freadを用いて読み出して配列に格納し,gnuplotで3次元表示できる形式のテキスト ファイル(data2.txt)に保存するプログラムを作成せよ.(ファイルrep2.c,data2.txt) [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) Cでおねがいします。 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 提出期限2010年1月25日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 特にございません。 わたしはもともと情報系の学生ではないのですが、情報処理の授業も履修しています。簡単な課題なのかもしれませんが私にとっては全く分かんないです。どなたか教えていただけたらありがたいです。よろしくお願い致します。 data.binのファイルはこちらになります。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10402.zip
56 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 17:31:40 ] >>055 これでgnuplot出来るか確認してくれ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10403.zip
57 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 18:19:59 ] >>55 11,250/4 割り切れないから元データが不正じゃない? #include <stdio.h> #pragma pack(1) typedef struct POINT{ short x; short y; }; #pragma pack() int main(){ struct POINT pt; FILE *fin,*fout; fin = fopen("data.bin","rb"); if(fin==NULL)return -1; fout = fopen("out.txt","w"); if(fout==NULL)return -1; fprintf(fout,"#X\tY\n"); while(fread(&pt,sizeof pt,1,fin)==1){ fprintf(fout,"%d\t%d\n",pt.x,pt.y); } fclose(fin); fclose(fout); return 0; }
58 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 18:22:11 ] 11,250/2 = 75*75 いいんだよ
59 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 18:34:04 ] うーん、3次元なのに75*75って分かんないなぁ >>57 スルーしてください
60 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 18:37:08 ] 1ブロック25ポイントで75ブロックって事なのかな
61 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 19:29:07 ] >>055 IPOで言う、PROCESSとOUTPUT両方提出すればいい課題なのかな? OUTPUTは決まって無いのかな?
62 名前:デフォルトの名無しさん [2010/01/21(木) 20:11:16 ] [1] 授業単元: プログラミング演習 [2] 問題文: [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン: microsoft visual stadio 2003 [3.3] 言語: c++ [4] 期限: 2010年1月22日まで [5] その他の制限: とくにありません エラーが出てビルドできません データはこちらです↓ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10404.cpp
63 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 20:16:59 ] >>62 // typedef struct KAMOKU; printf("プログラムを終了します。\nデータベースファイルは作成されていません。\n"); } } }
64 名前:yui ◆zuLLaJzEzk mailto:sage [2010/01/21(木) 22:42:06 ] >>56-61 皆さん本当にありがとうございます。実はわたしも課題の内容すら分かってないみたいで、本当にすみません。 これが前回出された課題と答えなのですが、これを参考にすれば解けるみたいです。 よろしくお願いします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10405.txt こちらがデータになります。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10406.txt
65 名前:44 mailto:age [2010/01/21(木) 23:52:47 ] >>52-53 ありがとうございます!!!!
66 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 01:06:47 ] [1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク):穴埋め問題です [3] 環境 [3.1] OS:Windows [3.3] 言語:C [4] 期限: 2010年1月23日 [5] その他の制限: 特にありません kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10407.txt 皆様よろしくお願いします。
67 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 02:55:42 ] >>66 codepad.org/VbNiiuvv
68 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 03:12:32 ] >>64 イミフだな。
69 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 07:55:39 ] >>64 printf("%2d %2d %u\n",j,i,dat[wx0*i+j]);
70 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 10:55:01 ] >>67 ありがとうございます、助かりました。
71 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:35:05 ] >>59 こんなんじゃね? ttp://www.rupan.net/uploader/download/1264127640.PNG
72 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 16:24:34 ] >>71 なるほど。 www.rupan.net/uploader/download/1264145041.jpg ドラえもんだね
73 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 18:51:02 ] >>055 // data.binのデータを,freadを用いて読み出して配列に格納し,gnuplotで3次元表示できる形式のテキストファイル(data2.txt)に保存するプログラムを作成せよ. #include <stdio.h> #define wx0 75 #define wy0 75 main() { int i,j; unsigned short dat[wx0*wy0]; FILE *fp; fp=fopen("data.bin","rb"); for(i=0;i<wx0*wy0;++i) fread(&dat[i],sizeof(short),1,fp); fclose(fp); fp=fopen("data2.txt","w"); for(i=wy0-1;i>=0;--i){ for(j=wx0/2;j<wx0;++j){ fprintf(fp,"%2d %2d %d\n",j,i,dat[wx0*i+j]); /* fprintf(fp,"%d\t",dat[wx0*i+j]);*/ } for(j=0;j<wx0/2;++j){ fprintf(fp,"%2d %2d %d\n",j,i,dat[wx0*i+j]); /* fprintf(fp,"%d\t",dat[wx0*i+j]);*/ } /* fprintf(fp,"\n");*/ } fclose(fp); }
74 名前:デフォルトの名無しさん [2010/01/22(金) 19:03:45 ] [1] 授業単元:プロトタイプ宣言 [2] 問題文(含コード&リンク):『私は○○です』と表示する関数を作成して、main関数でそれを三回呼び出して、画面に三回出力プログラムを作成せよ。表示のための関数の名前は『display_name』とせよ [3] 環境 [3.1] OS:xbunt [3.3] 言語:C++ [4] 期限: 2010年1月23日 [5] その他の制限:出力→cout,入力→cin,あと、簡単にお願いします。始まりは、 #include <iostream> using namespace std;です。
75 名前:74 [2010/01/22(金) 19:04:48 ] xbuntuでしたすみません。
76 名前:yui ◆zuLLaJzEzk mailto:sage [2010/01/22(金) 19:23:43 ] >>73 さん、他の皆さん、本当にありがとうございました。本当に助かりました。感謝しています。
77 名前:無能 [2010/01/22(金) 21:39:27 ] [1] 授業単元:プログラミング実習 [2] 問題文:クラスタリングk-means法 1、初期値として、クラスタ数および初期のデータ分割を与える。 2、データ分割に基づき各分割の重心を求める。 さらに、重心と各事例データとの距離を求める 3、各事例を最も近いクラスタに割り当てる。 4、上記の割り当てが前回と同じであれば終了。 更新があれば2に戻る [3] 環境 [3.1] OS:Windows [3.3] 言語:C言語 [4] 期限:2010年1月23日 できなくて本当に困ってます。お願いします。
78 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 23:50:34 ] 前スレの>>963 式を展開して左結合にするというやつ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10395.c
79 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:57:07 ] [1] 授業単元:応用プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10409.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C++ [4] 期限:2010年1月25日7:00まで [5] その他の制限: 自分で考えてみましたが、もう無理です…。 よろしくお願いします。
80 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 11:13:50 ] >>79 あんま動作確認やってないのでよろしく kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10410.txt
81 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 13:41:33 ] >>77 >>1 >・問題文は、出題されたまま全文を書いてください。 ・クラスタリングするデータの型は? ・データの入力はどうするのか、ランダム生成するのか? ・クラスタリング結果はどう出力するのか? 表示用のプログラムがあるのか、gnuplotか何かで描くのか、 ただテキストで吐けばいいのか
82 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 13:46:35 ] >>74 #include <iostream> using namespace std; void display_name(){ std::cout << "私は○○です。" << std::endl; } int main(){ display_name(); display_name(); display_name(); return 0; }
83 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 13:58:48 ] [1]プログラミング演習(大学専門過程演習授業) [2] コマンドライン引数で与えられたテキストファイルを読み込み 空行でなければ、その行に含まれているスペース、タブを 除去したものを標準出力するプログラム。但し英数字と"_"で 構成される文字列同士の間には一つのスペースは残す。 ",'で囲まれた部分に関してはスペース、タブはそのまま残す "で囲まれた部分について最後の文字が¥であってはならない。 'で囲まれた部分について最後の文字が¥であってはならない。 (テキストファイルの空行と余計な空白/タブを除去する プログラムでクオテーションに配慮したもの) [3-1] Windows Vista [3-2] Visual studio 2008 [3-3] C言語 [4] 2/7迄 [5] 使用出来る標準ライブラリはstdio.h stdlib.h string.h定 義のものだけでこれらのヘッダファイルのみインクルード可 ファイルI/O,標準出力が出来るのはmain関数内のみとする。
84 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:04:58 ] ★品質によるトラブル防止の為、片付けた宿題を貼る場合は 依頼者がまだ見ているかを確認してから貼るようにしましょう。 ★依頼者は、宿題を片付けて下さる方が出てからすぐもらえる とは考えず、一定時間のテスト、チェック時間を考慮して下さい。 ★依頼者は、依頼してから次にスレをいつ見るのかも記述して 下さると助かります。(ずっと見てますというのは非現実的で 信用されません)
85 名前:83 mailto:sage [2010/01/23(土) 14:12:11 ] 今日明日は入試関連のバイトと期末試験準備が あるんで次見るのは月曜日夜以降になると思いますが 片付けて下さる方がいらっしゃいましたら、お助け 下さい。
86 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:16:04 ] >>84 いやがらせか >>74 #include <iostream> using namespace std; void display_name(){ cout << "私は○○です。" << endl; } int main(){ for(i=0;i<3;i++) display_name(); return 0; }
87 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:47:12 ] 軽いものはすぐに出来るだろうけど時々かなり重いもの もあるしな...(依頼者にはわかりようがないかも) やっぱし少しでも間を取ったほうがいいよ
88 名前:無能 [2010/01/23(土) 18:52:58 ] >>80 77のものです。 属性数d=2 x,y 事例データ数n=5 事例No.1 x=5,y=1 事例No.2 x=4,y=2 事例No.3 x=1,y=5 事例No.4 x=5,y=4 事例No.5 x=5,y=5 クラスタ数;2 初期クラスタ{1,3},{2,4,5} 結果はテキストでお願いします。
89 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 19:26:46 ] >>82 >>86 >>74 の授業単元にプロトタイプ宣言ってあるから 問題文に書いてなくてもプロトタイプ宣言した方が良いような。
90 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 19:30:00 ] >>80 ありがとうございます。 自宅では開発環境ないので月曜の朝学校で動作確認してみます。
91 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 22:40:48 ] [1] 授業単元:情報処理 [2] 問題文: 問1 キーボードから3個の実数(整数でない)値を1行に1組として計5組入力し、 ファイル(ファイル名data1.txt)に保存する。 問2 問1で作ったファイルから実数値を読み込み、総合計と各組の実数の平均を求める。 ただし、ファイルに書かれている組の数は不明とする。 [3] 環境 [3.1] OS:Windows [3.3] 言語:C言語 [4] 期限:2010年1月25日 [5] その他の制限: なし よろしくお願いします。
92 名前:74 [2010/01/23(土) 22:45:54 ] ありがとうございました
93 名前:デフォルトの名無しさん [2010/01/24(日) 01:09:15 ] [1] 授業単元:プロトタイプ宣言 [2] 問題文(含コード&リンク): 次の式を以下の条件(値)に基づいて計算.表示するプログラムを作成せよ。ただし式は簡単化せずそのままプログラムすることとして、更に表示するときは計算の答えと合わせて条件(値)も表示して分かりやすくせよ。 計算する式 {(a+b)c-a(b-c)}/{(c/b)a+abc-ca} 条件1 a=3 b=4 c=2 a=3 b=4.3 c=2.5 a=32.6 b=57.82 c=2.543 この問題を、 式の分だけを関数化した場合 式と出力部分を関数化した場合 の2つの場合でプログラムを作成せよ [3] 環境 [3.1] OS:xbuntu [3.3] 言語:C++ [4] 期限: 2010年1月25日 [5] その他の制限:出力→cout,入力→cin,あと、簡単にお願いします。始まりは、 #include <iostream> using namespace std;です。
94 名前:デフォルトの名無しさん [2010/01/24(日) 02:09:37 ] [1] C [2] 反復列 x_n+1=a*x_n(1-x_n),0<=a<=4,0<=x<=1 に対して、x_nが1周期(不動点)、2周期、4周期、8周期、16周期 をもつaの範囲について、プログラムを作成して確かめよ。 ※ ○周期というのはaがある値のとき、○個の解で振動するという意味です※ [3] LINUX C [4] 1/24 18:00
95 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 03:11:24 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):www.acm-japan.org/past-icpc/domestic2008/problems/all_ja.html [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C/C++/どちらでも可 [4] 期限: ([2010年01月25日23:59まで] [5] その他の制限: Problem A の問題です。 頑張ってみたのですが、わかりませんでした。 どなたか、よろしくお願いします。
96 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 03:29:40 ] >>87 このスレで放置されるパターンの多くは 問題が難解なのではなく問題文が難解なんだ 難解というか不備だな 出題者の不備、質問者のコピペミスなどで 解答を一つに絞れず面倒なやり取りが目に見えるので 放置されちゃう ま、重いっちゃ重いけど症状が重いという意味合いだな
97 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 04:30:31 ] >>83 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10411.c 書いてみた。 使ってみて。
98 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 05:20:49 ] >>83 なんか問題の定義があいまいだから適当に補完して書いた だからかだいぶ>>97 と結果が違うな 好きなほう使ってくれ codepad.org/9VH9AxnZ
99 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 05:33:13 ] >>93 式の分だけを関数化した場合 codepad.org/aD7M3Jat 式と出力部分を関数化した場合 codepad.org/mBSphWnG
100 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 06:28:17 ] >>91 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10413.txt
101 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 10:31:57 ] >>091 テンプレに空白ありだよ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10414.c
102 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 11:23:52 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10419.zip [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月25日 5:00まで [5] その他の制限: 宜しくお願い致します。 txtがうまくうpされなかったので、ファイルはひとつですがzipにてうpしました。
103 名前: ◆NPjWSW9EXI [2010/01/24(日) 18:57:41 ] [1] 授業単元:Cプログラミング演習2 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10420.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: [2010年1月27日18:00まで] [5] その他の制限: よろしくお願い致します。
104 名前:homi [2010/01/24(日) 20:19:28 ] 本当に困ってます。 このままでは留年して泣いてしまいます>< 20 桁までの自然数の足し算と掛け算を浮動小数点演算を用いないで実施するプログラムlongcomp.c を 作成し、C のソースコードを提出しなさい。 実行形式をlongcomp とした動作仕様は以下です。 >./longcomp 12345678901234567890 + 12345678901234567890 >12345678901234567890 + 12345678901234567890 = 24691357802469135780 >./longcomp 1234567890 * 1234567890 >1234567890 * 1234567890 = 1524157875019052100
105 名前:homi [2010/01/24(日) 20:23:41 ] 上の人です;; b01, b001 のように二進数をb で始まるように表記する。二進数の集合を、できるだけ少ないノード数 の二分木に分類するためには、二分木のノードに蓄積する二進数の桁数を可変にすることが有効である。こう することで二進数表記した値(たとえばキーワードとか、位置とか、日付とか)に紐づけられたデータを少な い検索で見つけることができる。 扱う二進数の集合を、たとえば b00, b001, b0011, b00111, b1000, b11100, b0 として、これらを図1に示すようにニ分木に分類して、帰りがけ(ポストオーダ)で次のように出力するプロ グラム(tree) を作成し、C のソースコードを提出しなさい。 >./tree >1 1 1 0 0 000 1100 0 1 b 提出期限は1/26 23:59までです;; 上も合わせてC++です;;
106 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:24:59 ] テンプレ使ってね
107 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:28:06 ] これができたらBPS pc12.2ch.net/test/read.cgi/tech/1264331633/ その前にこのスレとの関係を聞きたいもんだな
108 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:30:17 ] CなのかC++なのかくらいはっきりしろ
109 名前:homi [2010/01/24(日) 20:35:05 ] 上のヒトです;; フォーマットに気が付きませんでした [1] データ構造とプログラミング [2] www.geocities.jp/t07644fb/kadai.pdf [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: ([2010年1月26日23:59まで]) [5] その他の制限 ご迷惑おかけしました;;
110 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:51:03 ] げげ、2ちゃんに依頼するなんてどこのFランかと思ったら慶應かよ……orz
111 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:53:16 ] >>104 > 20 桁までの自然数の足し算と掛け算を浮動小数点演算を用いないで 多倍長整数のライブラリを使えばおk
112 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:46:28 ] >104 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10422.zip
113 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:54:58 ] >>103 (1)と(3)だけ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10423.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10424.txt (2)は、行列が分かる人、よろしくお願いします。
114 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:55:48 ] >>109 課題1だけ。手元に多バイト長演算ライブラリの自作がありましたのでそれを使いました。 codepad.org/0WrPn4ib >>84 > ★品質によるトラブル防止の為、片付けた宿題を貼る場合は > 依頼者がまだ見ているかを確認してから貼るようにしましょう。 意味不明。依頼者がみてるかどうかと、品質とどんな関係があるのですか? 回答者はできたら貼るだけいいのでは? 生徒さんですか。最近の学校ではこんなんがはやっているのですか?
115 名前:114 ◆QZaw55cn4c mailto:sage [2010/01/24(日) 21:57:14 ] シェルによっては * を解釈してしまうでしょうから、 ./a.exe 2 '*' 3 のように入力してください。
116 名前:デフォルトの名無しさん [2010/01/24(日) 22:05:21 ] >>99 ありがとうございました int main()の後のvoidって、今までいらなかったんですが、今回はいるんですか?
117 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:08:22 ] >>109 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10426.c
118 名前:homi [2010/01/24(日) 22:16:02 ] >>114 、117 助かりました!!ありがとうございます!!
119 名前:デフォルトの名無しさん mailto:saga [2010/01/24(日) 22:27:24 ] [1] 授業単元: 画像解析 [2] 問題文(含コード&リンク) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10427.txt [3] 環境 [3.1] OS:Windows or Vista どちらでも可 [3.3] 言語: C/C++ どちらでも可 [4] 期限: 2010年02月03日まで [5] その他の制限: リンクのtxtファイルに書き込みました
120 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:30:05 ] >>102 とりあえず問2は、こういう発想でうまく動きました(投げやり 修正は2つの関数を以下のように書き換えました。 あとは適当に修正してください。 struct node *make_clist(char *s){ struct node *head = initlist(); struct node *p = head; int len = strlen(s); int i; //while (*s != '\0'){ for (i = 0; i <= len; i++) { insert(p, *s); p = p->next; s++; }; return head; } void print_clist(struct node *p) { printf("["); while (p->next) { /* 表示する文字が\0なら終了 */ if (p->next->element == '\0') { break; } printf("%c", p->next->element); p = p->next; } printf("]\n"); }
121 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:30:11 ] >>116 別になくてもいいよ
122 名前: ◆jPpg5.obl6 mailto:[sage] [2010/01/24(日) 23:00:05 ] テスト
123 名前: ◆jPpg5.obl6 mailto:[sage] [2010/01/24(日) 23:00:18 ] テスト
124 名前:デフォルトの名無しさん mailto:[sage] [2010/01/24(日) 23:11:09 ] [1] 授業単元: Cプログラミング入門 [2] 問題文(含コード&リンク): 入力された2つの文字列(日本語その他バイト文字は不可) を比較するプログラムを作成せよ。ただし、大文字小文字の違いは無視。単語間に連続して スペース・タブが複数入っていても単独のスペースとしない。 [3] 環境 [3.1] OS: vista [3.3] 言語: C [4] 期限: [2010年1月26日12:00まで] [5] その他の制限: 文字列とポインタまでやってます。 入力に関して、キーボードから1つ目の文字列を1行で入力し、改行する。 この時、入力を促す文字は一切表示しない。入力文字数は128文字まで。 出力に関して、一致すれば何も表示しない。不一致の場合は最初に不一致となる 入力1の文字と入力2の文字(1文字+スペース+1文字+改行)を表示する。 どちらかが末端の場合は代わりにスペースで埋める。 どうかよろしくお願いします。
125 名前:120 mailto:sage [2010/01/24(日) 23:20:27 ] >>120 すいません。。。 editを修正しなくちゃいけないんですね(汗 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10428.txt 投げやりなのは仕様です。
126 名前:デフォルトの名無しさん [2010/01/24(日) 23:44:27 ] >>121 ごめんなさい。calcoutputとかcalcというのは何か特殊な効果があったりしますか?習ってないんですが
127 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 23:54:31 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10431.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: ([2009年1月26日まで] [5] 特にありません お願いします。
128 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 00:05:51 ] >>126 >>93 で > この問題を、 > 式の分だけを関数化した場合 > 式と出力部分を関数化した場合 > の2つの場合でプログラムを作成せよ って書いてあるでしょ calcは「式の分だけを関数化した」もの、 calcoutputは「式と出力部分を関数化した」ものだよ
129 名前:128 mailto:sage [2010/01/25(月) 00:44:03 ] >>126 言い忘れてた。 calcとかcalcoutputとかは適当に決めたものだから別の名前に変えてもいい
130 名前:デフォルトの名無しさん [2010/01/25(月) 00:59:34 ] [1] 再帰的データ構造 [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10432.txt [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: ([2010年1月25日17:30まで]) [5] その他の制限 よろしくお願いします。
131 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 01:06:19 ] >>127 void quick(int a[], int left, int right) { int p, center; if(left != right){ p = pivot(a, left, right); center = partition(a, left, right, a[p]); check(a, left, right, p, center); quick(a, left, center - 1); quick(a, center, right); } }
132 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 01:09:07 ] >>130 ダメな問題だな
133 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 01:29:25 ] >>131 うおおお 無限ループです
134 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 02:33:51 ] >>127 まだいる?
135 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 03:23:22 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10408.txt [3] 環境 [3.1] OS: vista(Windows/Linux/等々) [3.2] コンパイラ名とバージョン: visual studio2008 [3.3] 言語: C [4] 期限: 1月27日 [5] その他の制限: 特になし よろしくお願いします。
136 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 06:02:38 ] >>127 3箇所修正 (1) pivot関数の書き換え return (left + right + 1) / 2; (2)partition関数内の条件 while (a[j] > p) // 軸以下のデータを探索 (3)quick関数先頭にブロック if (left >= right) return;
137 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 06:31:44 ] [1] 授業単元: プログラミング概論 [2] 問題文:"in_file"という名前のファイルの中に18個の整数データが空白や改行コードで区切られて並んでいると仮定した上で、この入力ファイルの中のデータを1行に5個ずつきれいに並べて"out_file"という名前のファイルに出力するCプログラムを作成せよ。 入力ファイルの内容が -1111111111 2222222 333333 4444 55 6 7 8 9 0 1 2 3 4 5 6 7890123 -5666 の時には、例えば次のような内容を"out_file"に書き出す _-1111111111_____2222222______333333________4444__________55 _________________6_______________7______________8_____________9___________0 ________________ 1_______________2______________3_____________4___________5 _________________6_____7890123________-5666 [3] 環境 [3.1] OS:windows7 [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月26日まで [5] その他の制限: とくにありません 問題文ではアンダーバーではなく半角の空白記号でしたが、見やすさを考慮して_に変えておきました 講義で構造体やファイル入出力等、基本的なことは終わっています よろしくお願いします
138 名前:デフォルトの名無しさん [2010/01/25(月) 07:34:39 ] [1] 再帰的データ構造 [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10432.txt [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: ([2010年1月25日17:30まで]) [5] その他の制限:特になし よろしくお願いします。
139 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 07:52:26 ] >>130 codepad.org/5SmBZ1C1 これでどうでしょうか?
140 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 09:06:52 ] >>135 問題1 codepad.org/bgcSjgxX 問題2 codepad.org/SE5EpdPz モレの頭ではうまいソート方法が思いつかんかったよ。 バグってたらごめん。 問題2のスペース,タブの扱いがよくわからんかったので, そっとしておいたお。 こちらの環境は Cygwin,gcc なので問題あるかも。
141 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 09:55:59 ] [1] 授業単元:動画像の圧縮と復号 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10433.txt [3] 環境 [3.1] OS: Windowsvita [3.2] gcc バージョンはわかりません cygwinを使っています [3.3] 言語: C [4] 期限: ([2010年1月25日15:00まで] 時間なくてすみません;; [5] 特にないです 必修課題なんです どうかお願いします
142 名前: ◆QZaw55cn4c mailto:sage [2010/01/25(月) 10:43:25 ] >>141 期待していただいては困るのであらかじめ行っておけば、 この種のプログラミングは専門性が高いので、 経験豊かな人間にしか手をつけられません。 必修というのであれば、ココに期待しないほうがいいと思います。
143 名前:homi [2010/01/25(月) 13:38:14 ] [1] データ構造とプログラミング [2] 演習問題4.5 逆ポーランド記法による入力文字列(空白で区切られている)に対して、 16進数と10進数で答えを返すプログラムrpnを作りなさい。 (入力例)rpn 5 2 + 7 * (出力例)0x31, 49(decimal) [3] 環境 [3.1] (Windows) [3.2] (gcc) [3.3] (C++) [4] 期限: ([2010年1月25日23:59まで] ) [5] 特にないです お願いします
144 名前:homi [2010/01/25(月) 13:44:30 ] [1] データ構造とプログラミング [2] [1] データ構造とプログラミング [2] 自然入力した数式を逆ポーランド記法に変換するアルゴリズムを考えなさい。アルゴリズムをPADやフローチャートで示すだけでもよい。プログラム化することができれば、ボーナスポイントです。 (入力例)./a (5+2)*7 (出力例)5 2 + 7 *[3] 環境 [3.1] (Windows) [3.2] (gcc) [3.3] (C++) [4] 期限: ([2010年1月25日23:59まで] ) [5] 特にないです
145 名前:homi [2010/01/25(月) 13:46:13 ] 上ちょっとフォーマット崩れました。ごめんなさい。 [1] データ構造とプログラミング [2] 自然入力した数式を逆ポーランド記法に変換するアルゴリズムを考えなさい。アルゴリズムをPADやフローチャートで示すだけでもよい。プログラム化することができれば、ボーナスポイントです。 (入力例)./a (5+2)*7 (出力例)5 2 + 7 * [3] 環境 [3.1] (Windows) [3.2] (gcc) [3.3] (C++) [4] 期限: ([2010年1月25日23:59まで] ) [5] 特にないです よろしく願いたします
146 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 13:51:19 ] >>125 いえいえ、助かります。問2について解決致しました。 規制にて書き込みできず遅れましたが、ありがとうございました。 提出期限は過ぎてしまいましたが、どなたか>>102 の問3をよろしければお願いします。
147 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 13:55:02 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 1. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10435.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10434.txt 2. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10439.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10436.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10437.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10438.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VS2008 [3.3] 言語: C++ [4] 期限: 2010年01月31日まで
148 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:01:34 ] ★依頼してから「納品」までは最低6時間は下さい。それ 以下の場合は、品質が著しく低い場合があります。 ★依頼してからの宿題内容の修正はやめてください。 やむをえず行う場合は3時間以内にしてください。6時間 を経過した場合は依頼自体を取り消して貼り直して下さい。 (宿題をやって下さる方も、問題の内容自体の理解も覚束ない 人間が一発で問題文を正確に転記/略述することは出来ない ので、少なくとも3時間以内までには修正が入るかもしれないと いう前提でお願いできないでしょうか?) ★宿題をやってあげる方は仕事でやっているわけではないので 品質に文句を付けるのはやめてください(質問は構いません) ★複数やってくださった方が居た場合でも依頼者は全員に貼って もらう必要はありません。時間を割いて片付けてくれた人を 比較するようなことは失礼に当たります。(宿題を貼る場合は 依頼者がまだ見ているかどうか確かめてから貼るように お願いします。)最初に貼ってくれた人の回答で満足なら 回答をお寄せ下さった方にお礼と回答を貼ることを遠慮して もらうようにして下さい。
149 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:05:27 ] > ★複数やってくださった方が居た場合でも依頼者は全員に貼って > もらう必要はありません。 書いている意味がよくわからない。 複数回答が出た場合に、どこにだれが何を貼るって?
150 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:21:17 ] 依頼者はどんなにひどい回答でも、喜んで受け取り、 以降その人以外から回答は受け取らないようにしろだと? 依頼者には酷かもしれないけど正論だな。 ようするに既に回答者が出てた場合は、最初の回答者を通 す形にしてやったほうがいいかも。 但し最初の回答者になる為に意図的に糞コード貼ってる と認識された場合は袋叩きにあうかも知れないんで 回答者も少し辛くなる。
151 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:23:36 ] いやそれ構わなくていいから・・・
152 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:34:29 ] >>148 が一体何を望んでいるのか、サッパリ分からない。
153 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:35:33 ] >>152 ただ、仕切りたいだけだろ
154 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:27:07 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):www.acm-japan.org/past-icpc/domestic2008/problems/all_ja.html [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C/C++/どちらでも可 [4] 期限: ([2010年01月26日23:00まで] [5] その他の制限 Problem A の問題です。 頑張ってみたのですが、わかりませんでした。 どなたか、よろしくお願いします。
155 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:24:48 ] >>148 とりあえず赤くしておく
156 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 18:00:15 ] >137 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10440.txt ・入力例に全角スペースが含まれていますが、全角スペース対応はしていません。 ・出力例が意味不明だったので、独自解釈をしました。 ・ファイル読み込み(fscanf)のエラーチェックとバッファーオーバーラン対策はしていません。 ・ファイル書き込み(fprintf)のエラーチェックはしていません。 問題があれば具体的に指摘してください。たぶん、対応します。
157 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 18:01:21 ] >>154 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10441.txt
158 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:36:12 ] >>153 最近こんな生徒さんが多いですね。こういうのが学校ではやっているんですかね?
159 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:37:27 ] >>154 さすがにこれに答えちゃいけないでしょう。自力でなんとかしなさい。
160 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:51:47 ] >>136 遅くなりました ありがとうございました
161 名前:デフォルトの名無しさん [2010/01/25(月) 20:11:44 ] [1] 授業単元: プログラミング演習(木構造と数式処理) [2] 問題文(含コード&リンク): 累乗の計算の逆を行うプログラムを作ってください。 例 x*x*xと入力されればx^3と画面に出力する。 x*x*x*aなどの場合はx^3*aと出力されればよい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月28日12:00まで
162 名前: ◆NPjWSW9EXI [2010/01/25(月) 20:28:20 ] 103です >>113 遅くなりました 有難うございました。 どなたか2番を解いてくださいお願いします。
163 名前:デフォルトの名無しさん [2010/01/25(月) 20:46:36 ] >>129 すみません…ありがとうございます。あと、昨日聞き忘れてしまったんですが、 意味的に同じであると思うんですが、この2つを書き方分けてる理由は何ですか? cout << "{(a+b)c-a(b-c)}/{(c/b)a+abc-ca} = "; cout << ((a+b)*c-a*(b-c))/((c/b)*a+a*b*c-c*a) << '\n';
164 名前:93 [2010/01/25(月) 20:51:51 ] 言い忘れてしまいました。これを考察というのをするんですが、この2つを比較でもしようかなと思うんですが、 プログラムの文章の書き方が違うとかそういう事以外で何かありますか?
165 名前:120 mailto:sage [2010/01/25(月) 22:20:29 ] >>146 素材はそのまま生かしましたw kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10443.txt
166 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 22:24:24 ] >>162 #include <stdio.h> void mult_array(int a0[4][4],int a1[4][4],int result[4][4]){ int x,y,k; for(y=0;y<4;y++){ for(x=0;x<4;x++){ for(k=0;k<4;k++){ result[y][x]+=a0[y][k]*a1[k][x]; } } } } int main(){ int a0[4][4]={0}; int a1[4][4]={0}; int result[4][4]={0}; int y; for(y=0;y<4;y++)scanf("%d%d%d%d",&a0[y][0],&a0[y][1],&a0[y][2],&a0[y][3]); for(y=0;y<4;y++)scanf("%d%d%d%d",&a1[y][0],&a1[y][1],&a1[y][2],&a1[y][3]); mult_array(a0,a1,result); for(y=0;y<4;y++) printf("%d %d %d %d\n",result[y][0],result[y][1],result[y][2],result[y][3]); return 0; }
167 名前:hoge [2010/01/25(月) 23:07:26 ] 上の105ですが、もう一度質問させて頂きます。 なぜなら、課題2対しての回答がないからです。 皆様よろしくお願いします。 [1] データ構造とプログラミング [2]b01, b001 のように二進数をb で始まるように表記する。二進数の集合を、できるだけ少ないノード数 の二分木に分類するためには、二分木のノードに蓄積する二進数の桁数を可変にすることが有効である。こう することで二進数表記した値(たとえばキーワードとか、位置とか、日付とか)に紐づけられたデータを少な い検索で見つけることができる。 扱う二進数の集合を、たとえば b00, b001, b0011, b00111, b1000, b11100, b0 として、これらを図1に示すようにニ分木に分類して、帰りがけ(ポストオーダ)で次のように出力するプロ グラム(tree) を作成し、C のソースコードを提出しなさい。 >./tree >1 1 1 0 0 000 1100 0 1 b [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: ([2010年1月26日23:59まで]) [5] その他の制限
168 名前: ◆QZaw55cn4c mailto:sage [2010/01/25(月) 23:15:59 ] >>143 コマンドラインで * を入力すると、シェルが解釈していまうので、 実行後、標準入力から式を入力してください。 codepad.org/H4KWIkS9
169 名前: ◆NPjWSW9EXI [2010/01/26(火) 00:39:43 ] >>166 助かりました 有難うございます
170 名前:homi [2010/01/26(火) 00:46:56 ] >>168 ありがとうございます!!><
171 名前:homi [2010/01/26(火) 00:50:11 ] 前にこれを上げたものです。 課題1はすでにやってもらったのですが、 課題2がまだです。 再UPになりますが、もしできる方いらっしゃいましたらよろしくお願いします>< [1] データ構造とプログラミング [2] www.geocities.jp/t07644fb/kadai.pdf [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: ([2010年1月26日23:59まで]) [5] その他の制限 失礼しました
172 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 00:56:37 ] >>171 あなたはそのために単発スレまで建てたんだからそっちでやりなよ
173 名前:137 mailto:sage [2010/01/26(火) 01:27:20 ] >>156 返事が遅くなってすいません 全角スペースは対応しなくても大丈夫だと思います 私の独自解釈では、おそらく"in_file"内の整数18個を5*3+3の4行に分け、最も長くなる行に揃えて出力すればいいのかと… 適当に入力した数値が綺麗に並んで出力されたので、問題ないと思います 助かりました ありがとうございました
174 名前:デフォルトの名無しさん [2010/01/26(火) 01:30:22 ] [1] データ構造とプログラミング [2] リングバッファを使って、9個のキューを作り、データを追加したり、 データを取り出すプログラムを完成させなさい。 以下の添付にあるプログラムを完成させろという課題です。 www.geocities.jp/pegasus_violet/en5-2.pdf [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: ([2010年1月26日23:59まで]) [5] その他の制限 よろしくお願いいたします
175 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 02:40:07 ] いつから質疑応答スレになったんだ? 宿題を依頼し、片付けてもらうスレだろ?
176 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 02:48:16 ] >>175 あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。 気に入らない質問やその他の発言はスルーの方向で。 気に入らない質問やその他の発言はスルーの方向で。 気に入らない質問やその他の発言はスルーの方向で。
177 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 03:18:10 ] 気に入らない依頼やその他の質問はスルーの方向で。
178 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 05:25:11 ] >>174 codepad.org/7ifr4yYK
179 名前:83 mailto:sage [2010/01/26(火) 07:46:44 ] >>97 ,98 遅くなりましたがどうもありがとうございました。
180 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 08:27:07 ] 問題文の曖昧さと回答の多様性の擦り合わせの先に真の回答が あるんじゃね? ことプログラム作文に関しては 問題、回答、終了という気持ちのよいスケジュールが 立てられるとは思わないほうがいいかも 数学問題の影響受け過ぎ(てか数学が異常な学問)
181 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 09:17:28 ] >>161 codepad.org/C6kJenpg 木構造ってあったから,2分木を使ったけど, 配列を使った方が,入力サイズは限られるが,楽だと思う。 問題文から察するにソートする必要ないし。 エラーチェックは甘いけど,バグってたりしたら, 教えて下さい。治さないかもしれないけど。
182 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 09:19:50 ] >>180 が一体何を望んでいるのか、サッパリ分からない。
183 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 09:23:35 ] >>161 codepad.org/hBX7Dn6H ごめん。余分な出力が入ってたので修正した。
184 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 09:33:44 ] >>182 が>>180 の望みをわかることも>>180 は望んでいる んだろう。しかしね。ここは2chでプログラミング の宿題を片付けるスレで、いろいろと制約も多い んで、質疑応答形式になってしまっているんだ。
185 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 09:42:30 ] >>184 が一体何を望んでいるのか、サッパリ分からない。
186 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 09:46:52 ] >>180 にもわからないだろね
187 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 10:19:16 ] >>180 >問題文の曖昧さと回答の多様性の擦り合わせの先に真の回答が >ある そうなんだろうが、誰もがそういう水準に到達出来るわけじゃ ない。国語の作文の授業みたいに完全に自由か、 数学の入試問題のように極度に不自由かのいずれ か一つじゃないと皆やらないだろ?
188 名前:デフォルトの名無しさん [2010/01/26(火) 10:49:19 ] >>178 遅くなりましたが ありがとうございました!
189 名前:デフォルトの名無しさん [2010/01/26(火) 10:52:56 ] [1] データ構造とプログラミング [2] ツリーにノードを追加するプログラムを完成させなさい。またプログラム中 に使われている要素 mitsugi, emura, satou, yonemura, murai, nakamura, kwkt がツリー上でどのように配置され ているか書きなさい。 以下の添付にあるプログラムを完成させろという課題です。 www.geocities.jp/pegasus_violet/en9-5.pdf [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: ([2010年1月26日23:59まで]) [5] その他の制限 よろしくお願いいたします
190 名前:デフォルトの名無しさん [2010/01/26(火) 11:00:16 ] [1] データ構造とプログラミング [2] 以下の添付にあるプログラムを完成させ配列のrotateを完成させろという課題です。 www.geocities.jp/pegasus_violet/en8-4.pdf [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: ([2010年1月26日23:59まで]) [5] その他の制限 よろしくお願いいたします;;
191 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 11:43:16 ] >>189 void AddChild(struct NODE** p, char* name){ if (!*p) { *p = (struct NODE *)malloc(sizeof (struct NODE)); (*p)->left = (*p)->right = 0; strcpy((*p)->name, name); } else { AddChild(strcmp(name, (*p)->name) < 0 ? &(*p)->left : &(*p)->right, name); } }
192 名前:デフォルトの名無しさん [2010/01/26(火) 13:15:50 ] >>191 大変ありがとうございます
193 名前:デフォルトの名無しさん [2010/01/26(火) 13:23:04 ] [1] 授業単元:プロトタイプ宣言とか引数 [2] 問題文(含コード&リンク):[3〜6]∫x^2 dx(これだと正解は63)を計算するプログラムを作成せよ。 尚、積分本体(始点と終点)と関数本体f(x)に分けること。dx=1/N N=(10,1000…10000)誤差評価を行う事。積分範囲を変更すること。x^2の関数を変更すること。 [3] 環境 [3.1] OS:xbuntu [3.3] 言語:C++ [4] 期限: 2010年1月25日 [5] その他の制限:出力→cout,入力→cin,あと、簡単にお願いします。始まりは、 #include <iostream> using namespace std;です。
194 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 14:15:37 ] >>193 codepad.org/PqWWIDA4 積分範囲とか積分関数変えるのは適当に自分でやってくれ (積分関数:6行目、積分範囲:20〜22行目、厳密解:27行目)
195 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 14:31:19 ] >>193 期限後なのに1時間も経たずにやってくれた人が 居たのはラッキーだったと思うべし つーか期限後の宿題を片付けるのはややルール違反 気味
196 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 14:33:44 ] >>195 もういいからお前は消えろ。 二度とこのスレに来るな。
197 名前:よろしくお願いします(m_m) mailto:sage [2010/01/26(火) 14:55:29 ] [1] 計算機概論 [2] 8bit整数が8つ与えられている。これをunsigned char配列と みなしa[]と名付ける。 unsigned char 整数のor,not演算だけを用いて1<=n<=8からa[n]を 計算するC計算式を出力するプログラム 例:a[]={1,2,3,4,5,6,7,8}; 出力 return n; a[]={1,0,1,0,1,0,1,0}; 出力 return !(!n or 11111110b); [3.1] OS:Mac OS-X [3.2] XCode 3.0(gcc 4.0) [3.3] C言語 [4] 1/25 正午(厳守) [5] 出来るだけ短いコードを出力するプログラムを書く事
198 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 16:41:15 ] 仕切り男が不快だから、次のスレのテンプレから期限を外そうじゃないか。
199 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:15:36 ] 気に入らない質問やその他の発言はスルーの方向で。
200 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:29:34 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): A組、B組、C組にそれぞれn人の生徒がいて、 A組の生徒が一列に並んでいる。 このとき、B組の生徒をA組の生徒の隣に並ばせたいが なるべく隣同士で身長に差がないようにしたい。 どうやって計算すればいいでしょう? 加えて、C組の生徒もB組の隣に並ばせたい場合はどうすれば? (身長の配列) double height_a[n], height_b[n], height_c[n]; [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限: 2010年1月28日(木)16:00 [5] その他の制限: 特にありません B組だけを考える場合はn!、C組も考える場合はn!×n!の並び方を生成して、 身長差の合計を計算して最小ならその並び方を保存って感じでいいと思うんだけど そのやり方が思いつかない・・・ B組のみの場合 (B組をn!通り並ばせるループ){ diff = sum(n人の身長差の合計); if(diffが最小){ B組の並び順を保存 } } こんな感じになると思うんだけど・・・ お助けください。
201 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:30:10 ] >>197 意味不明だな・・・
202 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:34:13 ] >>201 a[n-1] と等価となる NOT, AND, OR の連結で得られる式を作るプログラムを作れ だと思うが… 俺には難しい。 a[n] が 0〜255 を取り得るからなぁ
203 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:36:59 ] >>200 A<Bの時 A:1 2 3 4 5 6 B:1 2 3 4 こういう並びはアリですか? ナシならA=Bの時と同じで Bがどのように並んでも身長差の合計は同じですよね
204 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:41:09 ] ★期限の過ぎた問題を依頼してはいけません
205 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:48:42 ] >>202 オレは加算演算子や添え字を使わずに a[n],*(a+n)をnot,orのみで表現しろと言う事か 添え字が1からなので減算も必要だしめんどくさそうだね
206 名前:200 mailto:sage [2010/01/26(火) 17:54:01 ] >>203 すいませんA<Bっていうのがよくわかりません B組のほうが平均身長が高いという意味でしょうか? 身長の値については定まったものではなく任意です。 A,B,C組で人数は同じn人です。n=6だとすると下のようになります。 A:1 2 3 4 5 6 は固定で隣同士の身長差の和が最小となる B:5 1 6 2 4 3 みたいな並び方をn!で総当りで調べる・・・ B組の並び順をint narabi_b[n]として、 narabi_b[n]にn!通りの1〜nの数字を入れる? うーん・・・
207 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:02:27 ] >>206 人数の事ね。 不等号が逆だったごめん。 A,B,C組で人数は同じn人で 身長差の和が最小となる という条件ならどう並んでも同じだよ。 (A1-B1)+(A2-B2)+(A3-B3)=(A1+A2+A3)-(B1+B2+B3)
208 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:04:18 ] >>207 絶対値を取る可能性もあるぞ
209 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:05:09 ] >>202 添字n(1,2,3,4,5,6,7,8)から対応するa[n](これは任意の0~255 となり得る)をor とnotからなる式で表す。nと定数は 使っても良い。 (n or (! n or 11110011b) ) or !( !n or 10110111b) .... という式のn=1,2,3,4,...,8 に対する値が指定したものに なるように式を選ぶプログラムを作れ って意味じゃないかなと思うが、これは多分不可能じゃないかと... a[n] = n >> 1 とかの場合はどーすんだ? ネタじゃないかとは思ってはいるが...
210 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:05:42 ] >>208 あぁ、それなら納得
211 名前:200 mailto:sage [2010/01/26(火) 18:07:01 ] >>207 確かにその通りです。 ちょっと私の書き方がよくなかったです。 身長差の絶対値の和というべきでした。 すいません。
212 名前:デフォルトの名無しさん [2010/01/26(火) 18:52:01 ] よろしくお願いします。 [1] 授業単元: Cプログラミング入門演習U [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10445.txt [3] 環境 [3.1] OS: WindouwsVista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月28日(木) [5] その他の制限: 特にありません
213 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:57:51 ] [1] 授業単元: プログラミングとコンパイラ [2] 問題文:kadai.cを単項演算子の+-、剰余演算子%に対応するように改造せよ サイトkansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm のC/C++の宿題片付けます132代目の10446.zip [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年1月29日まで [5] その他の制限:パーサがどのようにして解析コード生成されていくかの説明も添付
214 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 19:37:47 ] >>212 #include <stdio.h> #include <stdlib.h> int average(int *nums, int size) { int i, sum = 0; for (i = 0; i < size; i++) sum += nums[i]; return size ? sum / size : -1; } static int min_distance_target; int min_distance_cmp(const int *a, const int *b) { int diff = abs(min_distance_target - *a) - abs(min_distance_target - *b); return diff ? diff : (*a - *b); } void min_distance_sort(int *nums, int size, int target) { min_distance_target = target; qsort(nums, size, sizeof (int), (int (*)(const void*, const void*))min_distance_cmp); } void scan(int *nums, int size) { int i, tmp; for (i = 0; i < size; i++) { scanf("%d", &tmp); nums[i] = tmp; } }
215 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 19:39:49 ] >>212 つづき void print(int *nums, int size) { int i; for (i = 0; i < size; i++) printf("%s%d", i ? " " : "", nums[i]); puts(""); } int main() { int size, nums[100]; scanf("%d", &size); if (100 < size) size = 100; // (最大で100とする) scan(nums, size); min_distance_sort(nums, size, average(nums, size)); print(nums, size); return 0; } 注:肝心のソートが手抜き(qsort頼り)だから先生によっては怒られるかも。 やむをえずstatic int min_distance_target; というグローバル変数も使ってしまってる。
216 名前:備忘録 mailto:sage [2010/01/26(火) 20:49:27 ] ★関連スレ 大学のプログラミング演習の課題を添削するスレ pc12.2ch.net/test/read.cgi/tech/1188501699/
217 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:33:02 ] C++でOpenGLの勉強してます。OpenGLなんですが、言語はC++なのでこちらで質問していいのかな?
218 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:40:03 ] OpenGLに限らずそういう専門的なものはあんまり期待しない方が良いよ。 ダメとは言わないけど
219 名前:誘導 mailto:sage [2010/01/26(火) 21:46:59 ] OpenGLスレ Part14 pc12.2ch.net/test/read.cgi/tech/1263901596/ でどーぞ
220 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:47:03 ] [1] 再帰リスト構造 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10447.txt [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: (1月29日0時まで) [5] その他の制限: (特になし) 上のソースでプログラムは実行しますが、 name、emailに2文字以下だと大丈夫なのですが、3文字以上入力すると 出力のテンプレートが崩れてしまいます。 どこがおかしいかお願いします。
221 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:58:12 ] >>212 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10449.txt
222 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 22:03:21 ] >>220 age2 = (char*)malloc(sizeof(char)); これでは、char一文字分しか確保されない。 文字数nの文字列の場合、 age2 = (char*)malloc(sizeof(char) * n + 1); と書く。+1は終端文字'/0'のために準備。 getline(age2, sizeof(age2)); これでは、int nとして渡すには不十分。 sizeof (char *)の意味になる。 文字数nの文字列の場合、 getline(age2, n); と書く。getlineが実際にどう動くかは想像しかしてないけど。
223 名前:212 mailto:sage [2010/01/26(火) 22:13:29 ] >>214-215 素早い回答感謝します
224 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 22:16:39 ] やはりここでOpenGLの質問は、あまりよくないようですねorz >>219 様の誘導先は質問スレではないのでダメかな? って思ってやめておいたのですが、そちらのスレに質問を書かせていただきました。 もしOpenGLのことも分かる方が居ましたらOpenGLの掲示板に書かせていただきましたので ご回答していただけるとすごく嬉しいです><
225 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 23:00:20 ] [1] 授業単元:情報科学U [2] 問題文(含コード&リンク):www.f.csce.kyushu-u.ac.jp/~ogi/kougi/11.pdf [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2010年1月27日23:59まで [5] その他の制限:特にありません どうしてもわかりません。すみませんがよろしくお願いします。
226 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 23:15:18 ] >>225 void DspArray(int *p,int n){ while(n--){ printf("%d ",*(p++)); } printf("\n"); } こう言う事?
227 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 23:15:23 ] [1] 授業単元:(大学専門課程某講座) [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10450.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン:Visual studio .NET [3.3] 言語: C [4] 期限: 2010年1月31日まで [5] その他の制限:特にありません
228 名前:226 mailto:sage [2010/01/26(火) 23:19:42 ] >>225 よく読んでなかった。 void DspArray(int array[],int n){ int i; for(i=0;i<n;i++){ printf("%d ",array[i]); } printf("\n"); }
229 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 00:19:45 ] >>222 ありがとうございます。
230 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 01:00:28 ] >>213 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10451.zip
231 名前:デフォルトの名無しさん [2010/01/27(水) 01:17:34 ] >>194 ありがとうございました。
232 名前:デフォルトの名無しさん [2010/01/27(水) 01:27:49 ] [1] 授業単元:プロトタイプ宣言とか引数 [2] 問題文(含コード&リンク): 得点を入力して以下のルールに従った成績を返す関数を実装せよ。 90点以上 S 80点以上 A 60点以上 B それ未満 C ()の中に何か入るらしいです () score(int sc) { [3] 環境 [3.1] OS:xbuntu [3.3] 言語:C++ [4] 期限: 2010年1月28日 [5] その他の制限:出力→cout,入力→cin,あと、簡単にお願いします。始まりは、 #include <iostream> using namespace std;です。
233 名前:デフォルトの名無しさん [2010/01/27(水) 01:29:01 ] [1] 授業単元:プロトタイプ宣言とか引数 [2] 問題文(含コード&リンク): 入力された数字が偶数なら、trueを返す関数。それ以外ならfalse ()の中に何か入るらしいです () even(int sc) { [3] 環境 [3.1] OS:xbuntu [3.3] 言語:C++ [4] 期限: 2010年1月28日 [5] その他の制限:出力→cout,入力→cin,あと、簡単にお願いします。始まりは、 #include <iostream> using namespace std;です。
234 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 02:29:00 ] >>227 codepad.org/hRbZ2Z1N 左端の数字は元の行数。修正した行には/*修正*/ 修正内容は ・後半のソートの呼び出しの引数が逆になっていたのを修正(26行目) ・ & を && に変更(42行目) ・ ++p などを p++ に変更(11,42-45行目) N=10000だと表示がアレなんだがN=100くらいだとちゃんと表示される
235 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 02:30:50 ] >>232 char score(int sc){ if(sc>=90) return 'S'; if(sc>=80) return 'A'; if(sc>=60) return 'B'; return 'C'; }
236 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 02:31:52 ] >>233 bool even(int sc){ return (sc%2 == 0); }
237 名前:デフォルトの名無しさん [2010/01/27(水) 03:28:16 ] >>235 実行してみたんですが、できないんですが、どうしてでしょうか
238 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 04:37:48 ] >>237 「できないんです」 は禁句 何を期待したか、どんな操作をしたか、そしてどんな結果になったかの 3 点を書かないと 何が問題なのか見た人には分からない
239 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 07:51:08 ] >>230 ありがとうございました!
240 名前:227 mailto:sage [2010/01/27(水) 12:07:55 ] >>234 ありがとうございます。大変面倒な課題のほうたった2時間余りで 迅速にやって頂けて試験前なので助かりました。 (1月31日位になるかと思ってました) 実はもっと長いもの(数値計算関連で長さ約300行)も出てい るので(そちらのほうは必須ではないですが試験が出来なかっ た場合に提出していれば不可になる確率がずっと低くなるそうで) そちらもやって頂けると非常に嬉しいのですがよろしいでしょうか?
241 名前:147 mailto:sage [2010/01/27(水) 13:09:03 ] 147をどなたかお願いできないでしょうか? よろしくお願いします。
242 名前:デフォルトの名無しさん [2010/01/27(水) 13:37:16 ] >>232 #include <iostream> using namespace std; char score(int sc){ if(sc>=90) return 'S'; if(sc>=80) return 'A'; if(sc>=60) return 'B'; return 'C'; } fatal error LNK1120: 外部参照 1 が未解決です。 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 とでるんですが…
243 名前:デフォルトの名無しさん [2010/01/27(水) 13:38:14 ] >>238 でしたすみません。
244 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 14:22:57 ] >>147 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10452.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10453.txt
245 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:23:10 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): キーボードから正の整数nを入力し、n!を計算して画面表示するプログラムを 作成せよ。ただし、階乗を計算する関数のプロトタイプを「void kaiyo(int , int *)」 とし、第1引数にnを、第2引数に計算結果を格納する変数のポインタを指定すること。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限: 2010年1月28日木 [5] その他の制限: よろしくお願いします
246 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:32:11 ] >>245 #include <iostream> void kaiyo(int , int *); int main() { int n, ret; std::cin >> n; kaiyo(n, &ret); std::cout << ret; } void kaiyo(int n, int *ret) { *ret = 1; for (int i = 1; i <= n; i++) { *ret = *ret * i; } }
247 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:47:37 ] >>246 ありがとうございます!
248 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:55:11 ] >>234 よくこんな糞問題に手を出すなぁw show()が2つあるのはソート前後の比較用でしょ ソート途中を示すものじゃないと思うよ N=10000でもエディタの設定で折り返しなしにすれば 見れないことは無いけど1行8000バイトだからひどいもんだ
249 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 18:02:03 ] >>242 main() を書きましたか?
250 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 20:23:38 ] [1] 授業単元:情報処理演習 [2] 問題文(含コード&リンク): 次のプログラムで作成される縞パターンを縦にした画像を作成するプログラムを作成せよ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10454.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 提出期限2010年1月29日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 特にないです よろしくお願いします。
251 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:09:22 ] >>250 txtでうpしてるのに何でインデント潰すの? 必要なスペースまで潰すのは嫌がらせ? //if(i>=75 && i<=125){ if(j>=150 && j<=250){ //元々の数字がマジックナンバーなので好きに替えてくれ
252 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:11:05 ] sin のマクローリン展開とコンピュータ定義のsinとの誤差を求めよとの問題なのですが エントリーポイントを定義しなければならないとエラーが出ているのですが解決方法がわかりません #include <stdio.h> #include <math.h> #define gosa 0.00001 double sa(double x){ double d,dt; int k; k=1; d=0; dt=x; d=d+dt; while(1){ if(fabs(sa(x)-cos(x))<gosa)break; } dt=dt*(-1)/((k+1)*(k+2))*x*x; k=k+2; return fabs(sa(x)-cos(x)); } int main(){ double x; x=0.00; while(1){ printf("x=%3f cosの差=%12f\n",x,sa(x)); x=x+0.01; if(x<=1.00)break; } } どうかよろしくお願いします 計算式が間違ってる・・・とかはスルーして貰って結構です [3] 環境 [3.1]windows vista[3.2] visual C++ 2008[3.3] C++[4] [無期限]
253 名前: ◆QZaw55cn4c mailto:sage [2010/01/27(水) 21:21:49 ] >>145 codepad.org/01OEgrMz 期限切れでしたか。残念です。
254 名前:デフォルトの名無しさん [2010/01/27(水) 21:34:44 ] >>249 #include <iostream> using namespace std; char score(int sc){ if(sc>=90) return 'S'; if(sc>=80) return 'A'; if(sc>=60) return 'B'; return 'C'; } mainをどこに入れるんですか?
255 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:35:57 ] 依頼者が見てるか確認してから貼るのがマナーだよん 見てるかどうか確かめても返事がない場合や、見てそうにも ない場合で、世間を騒がせたまま逃げ出した依頼者の尻拭い をしたいという気持ち(大抵の場合は杞憂)でコードを貼る 場合はアンカーは>>1 にしようぜ
256 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:43:16 ] >>252 スレタイ嫁 hello worldからやり直して貼り付けろカス
257 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:44:21 ] >>254 codepad.org/L4M6uCey 問題自体は関数を実装せよ、ということでしたから、回答者は関数 score() だけを回答した(と思います)のですが、 実際に score() の動作を確かめたいというのであれば、こんな感じで main() から書かないといけないでしょうね。 >>255 > 依頼者が見てるか確認してから貼るのがマナーだよん そんなマナーがあるのですか?そんなマナーにどんな意味があるのですか?
258 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:49:36 ] >>252 エラーは要約しないで、丸ごとコピペしろ。
259 名前:デフォルトの名無しさん [2010/01/27(水) 22:05:15 ] >>257 プログラムを作成せよじゃないから多分そうですね。一応、>>236 はどうすると実行ができますか?
260 名前:デフォルトの名無しさん [2010/01/27(水) 22:23:44 ] >>253 いえいえ!ありがとうございます!!
261 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:33:34 ] >>200 順列を生成するクラスだけで十分そうなので、後はご自分でどうぞ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10455.txt
262 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:38:52 ] >>261 next_permutation使えば? C限定ならまだ分かるけど。
263 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:48:15 ] >>262 それは>>200 の人に言ってあげてください。
264 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:49:39 ] >>263 >[3.3] 言語: C++ >[5] その他の制限: 特にありません え?
265 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:50:58 ] >>264 だから>>200 の人に言ってあげてください。
266 名前:200 mailto:sage [2010/01/27(水) 22:54:07 ] >>261 うおおーありがとうございます! Cの最低限しか学んでないんで C++っぽいclassとかの使い方の勉強にもなります。 >>262 ぐぐるとそれ使えばいけそうですね。ありがとうございます! いやーそうか、やりたいことのキーワードで検索すれば ライブラリであったりするんだな。 今回は順列でpermutationか。 そういった意味でも勉強になりました。ありがとうございました!
267 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:58:38 ] >>252 これで動くと思うけど問題の意味を取り違えてるような あとなぜかcosが出てきたけどsinに書き換えといた。 #include <stdio.h> #include <math.h> #define gosa 0.00001 double sa(double x){ double d,dt; int k; k=1; d=0; dt=x; d=d+dt; while(1){ if(fabs(d-sin(x))<gosa)break; dt=dt*(-1)/((k+1)*(k+2))*x*x; d=d+dt; k=k+2; } return fabs(d-sin(x)); } int main(){ double x; x=0.00; while(1){ printf("x=%3f sinの差=%12f\n",x,sa(x)); x=x+0.01; if(x>1.01)break; } }
268 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:58:43 ] >>265 え?理由は?
269 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 23:40:40 ] >>268 理由は、必要としているのは私ではないから。 便利な道具があることを教えるのもいいことだと思います。 個人的には、(テーマが「宿題」ということもあり)ブラックボックスのままよりは、 多少勉強のネタになる状態で提供するのも、悪くはないかなという意見ですが。
270 名前:200 mailto:sage [2010/01/27(水) 23:52:51 ] わたし非常に勉強になりましたのでいいじゃないですか!
271 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 00:15:16 ] >>269 えと、あなたのレスに疑問を抱いたのに 質問者にあれこれ問い質しても意味不明ですよね? 自分が学生時代のころは 特に明記の無い限り標準関数の車輪は減点対象でしたので。
272 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:07:12 ] >>270 私もちょっと困惑気味… >>271 「next_permutation使えば?」と言われましたが、使う機会の無い私に言われるのも 意味不明ですから、質問者へのアドバイスとして言われればよいと判断したまでです。 また、何が減点対象で何が加点対象かは、時代背景も無いとはいいませんが、主には 講義や目的や教授の方針に依るよるでしょうから、質問者が適切に判断されれば良いと 思いますけれど。車輪を自分で発明をするのも勉強のうちですし。
273 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:12:27 ] 「講義や目的や」は「講義の目的や」の間違いです。すみません。
274 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:24:25 ] 基本的にここ、質疑応答スレじゃないんで。 知力、実力共に実態が質問者と教授回答者 であっても、形式的かつ論理的かつ法的には 依頼者と作業実行者の関係になります。
275 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:32:55 ] 要するに宿題代行を依頼する人もコード記述を代行する人も かかる行為が世に100%賛同されているとは 言い切れないという認識は常に頭の片隅にでも...
276 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:09:45 ] >>272 明らかな糞ソースを張って突っ込みが入ったとしても 苦情は質問者に言ってくれ!ってことね。おkw
277 名前:デフォルトの名無しさん [2010/01/28(木) 02:10:52 ] 誰か>>259 を教えてください
278 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:18:28 ] 依頼者が代行者のコードに苦情を言うのはマナー違反 だが程度問題 偶然の別代行者が代行者のコードを見てあれこれ アドバイスするのは美徳でないとは言い切れない。 別の代行者からコードを受け取ったことがわかって いる時点でコードを渡すのは美徳とは言い切れない。 複数の代行者が同調していたとしても 依頼者の依頼の仕方が悪いと決めつけられ るかは状況依存
279 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:33:20 ] >>278 不毛だな 宿題スレ代行者のレスを添削するスレ とか出来そうだ
280 名前:233 [2010/01/28(木) 03:01:29 ] >>236 で回答もらったんですがboolってやつを習ってないんですよね…double.int.charとかは習ったんですが…しかしそれ以外だと出来ないとするとそれが正解ですよね
281 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 07:41:59 ] >>280 bool を int に置き換えればOK
282 名前:デフォルトの名無しさん [2010/01/28(木) 16:20:52 ] >>281 それをintに変えたんですが>>257 で書いてもらった感じで実行もするんですよね…
283 名前:257 mailto:sage [2010/01/28(木) 18:04:29 ] >>282 ん、そうです。自力でかけば力がつくことでしょう。
284 名前:デフォルトの名無しさん [2010/01/28(木) 18:16:16 ] >>283 これじゃダメなんですよね… #include <iostream> using namespace std; int even(int num) { if(0 == sc%2) { return true; } return false; }
285 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:25:57 ] >>284 int main() から実行されますから、int main() を書かなくてはいけません。>>257 をちょっと変えればいいです。がむばってください。
286 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:26:41 ] >>284 じれったいw boolをintに書きかえれ、と教えてもらってるでしょうに。 booをintに。 bool even(int sc){ return (sc%2 == 0); } を int even(int sc){ return (sc%2 == 0); } に。
287 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:26:56 ] >>284 //int even(int num) { int even(int sc) { にしましょう true/falseで返すなら bool even(int sc) { にしたほうがいいと思います。 int even(int sc) { ならば return 1; return 0; としたほうがいいと思います。
288 名前:286 mailto:sage [2010/01/28(木) 18:30:39 ] あ、失礼。 元々、 >>233 > [2] 問題文(含コード&リンク): 入力された数字が偶数なら、trueを返す関数。それ以外ならfalse > [3.3] 言語:C++ なのか。だったら bool even(int sc){ return (sc%2 == 0); } か。
289 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:33:01 ] >>288 return に括弧はいらない。
290 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:41:19 ] 自分で書いて使うだけなら括弧はいらないが、 省略する癖はつけないほうが良い
291 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:43:15 ] だからといって return (0)とか return (1.0)とか return ("aho-desuka?") とかはやり過ぎ 式には括弧を付ける癖をつけましょう 失礼しました
292 名前:デフォルトの名無しさん [2010/01/28(木) 18:50:37 ] #include <iostream> using namespace std; int even(int sc){ return (sc%2 == 0); } int main() { int num; cout << "> "; cin >>num; cout << even(num); return 0; } これじゃダメなんですよね…boolっていうの使えないからもう滅茶苦茶ですよね
293 名前:デフォルトの名無しさん [2010/01/28(木) 18:52:44 ] return 0とかreturn 1とかは何か習ったみたいですがboolとかどこにもないんですよね
294 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:14:32 ] >>292 #include <iostream> using namespace std; bool even(int sc){ return sc%2==0; } int main(){ int num; cout << ">"; cin >> num; cout << boolalpha << even(num) << endl; return 0; } 習っていようがいまいが、true/falseで返せってのはboolを使えと言う事だから使うしかない。
295 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:55:20 ] 1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10458.txt [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限:2010年1月29日16:00まで [5] その他の制限: 特にありません よろしくお願いします。
296 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:57:42 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 10個の要素を持つ動的な整数配列を作るプログラムを作成しなさい。 動的な配列へのポインタを整数ポインタに代入しなさい。 次に、ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入しなさい。 最後に、代入した値を表示し、メモリを解放しなさい。 [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限:2010年1月29日16:00まで [5] その他の制限: 特にありません よろしくお願いします。
297 名前:デフォルトの名無しさん [2010/01/28(木) 20:01:53 ] >>294 三行目に書いたところは、scじゃなくてnumでした。すみません。boolalphaってなんですか?
298 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:04:45 ] >>296 #include <iostream> int main() { int *p = new int[10]; // 動的な配列へのポインタを整数ポインタに代入 for (int i = 0; i < 10; i++) { p[i] = 1 + i; // ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入 } for (int i = 0; i < 10; i++) { std::cout << p[i] << std::endl; // 代入した値を表示し } delete p; // メモリを解放 return 0; }
299 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:28:30 ] [1] 授業単元:コンピュータリテラシー [2] 問題文(含コード&リンク): あるファイルの名簿を呼びだし、名前もしくは名字で検索しその結果を新しいファイルに保存する。あるファイルの名簿は特に決められていない。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10456.txt [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン:BCC Developer Borland C++ 5.5.1 [3.3] 言語:C++ [4] 期限:2010年1月29日12:00まで] [5] その他の制限: 上記のプログラミングの他に fp while float else puts gets strlen strcpy strcat 以外は使用しないでください。授業で習っていないので… よろしくおねがいしまつ。 PC規制で携帯からですみません…
300 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:38:42 ] >>295 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10458.txt
301 名前:デフォルトの名無しさん [2010/01/28(木) 20:40:23 ] >>193 今更なんですが、『厳密解』って所に『double exact=63』ってあるんですが、これを計算するプログラムを作るんじゃないんですか?これをプログラムに書いてもいいんですかね?
302 名前:301 [2010/01/28(木) 20:42:52 ] でも //厳密解 の部分は出力される結果は同じですね。入れるとどう違うんですか
303 名前:298 mailto:sage [2010/01/28(木) 20:43:48 ] て、訂正! >>296 さん気をつけて。 ×delete p; // メモリを解放 ○delete[] p; // メモリを解放
304 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:44:22 ] >>301 大丈夫?中学校からやり直す?
305 名前:デフォルトの名無しさん [2010/01/28(木) 20:52:41 ] >>304 ?
306 名前:デフォルトの名無しさん [2010/01/28(木) 20:56:54 ] ごめんなさい。納得しました
307 名前:デフォルトの名無しさん [2010/01/28(木) 20:57:01 ] [1] Cプログラミング入門: [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10460.txt [3] 環境 [3.1] OS: Linux [3.2] gcc(すいませんバージョンがわかりません) [3.3] 言語:C [4] 期限: 2010年1月31日23:59まで [5] その他の制限: 特にないです。 お願いします。
308 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:10:31 ] >>299 > fp while float else puts gets >strlen strcpy strcat 以外は使用しないでください。 その条件じゃオレには無理。 //(前略) fin=fopen(filename1,"r");//fout=fopen(filename1,"r"); fout=fopen("kojin.txt","w");//fin=fopen("kojin.txt","w"); for(i=0;i<100;i++) if(fscanf(fin,"%s%s%s%s",&date[i].myouji,&date[i].name,&date[i].jusho,&date[i].denwa)==EOF)break; fclose(fin);//fclose(fout); printf("名前もしくは名字="); scanf("%s",&ss); for(i=1; i<=5; i++){ if(strcmp(ss,date[i].myouji)==0){ //printf("%s %s %d %d\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); fprintf(fout,"%s %s %d %d\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); k=k+1; } if(strcmp(ss,date[i].name)==0){ //printf("%s %s %s %s\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); fprintf(fout,"%s %s %s %s\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); k=k+1; } } fclose(fout);//fclose(fin); }
309 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:21:00 ] [1] C言語プログラミング演習(大学任意科目) [2] コマンドラインで指定された各テキストファイルに対して個別に以下の処理を行うCプログラムを作成 ☆テキストファイルを通読し、各行のインデント深度の最大値を求める(それをNとおく) ☆テキストファイルの先頭から再度読み出し、それぞれの行についてインデント深度がnなら ば、インデント深度をN-nに変更したものを標準出力する。 ☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。 ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合 深度=nとする。 [3] [3-1] Windows XP Professional Edition [3-2] Visual-C++ 6.0 SP6 [3-3] C言語 [4] 2/1迄 [5] stdio.hを使用可 (他は暗黙的にNG)
310 名前:309 mailto:sage [2010/01/28(木) 21:24:53 ] すみません。転記ミスです × ☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。 ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合 深度=nとする。 ○ ☆新しいテキストファイルのNが判明した時点で、改行とそのファイル名、改行を標準出力する。 ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでタブがn回(n>=0)現れた場合 深度=nとする。
311 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:32:45 ] >>308 わざわざご返答ありがとうございます。そうですか…無茶振りすいません。 一応引き続き、>>299 お答え出来る方いらっしゃいましたら厚かましいですが宜しくお願い致します…
312 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:40:54 ] >>310 スペースがいくら続こうともタブが一つも無ければ深度=0ですか?
313 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:50:33 ] >>311 freopenもダメなんでしょ?
314 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:02:09 ] >>313 すみません。習ってないのでわからないです…
315 名前:デフォルトの名無しさん [2010/01/28(木) 22:03:34 ] [1] 授業単元:プログラミング応用 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10461.txt[3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual studio 2003 [3.3] 言語:C [4] 期限:2010年2月2日正午まで [5] その他の制限: 特にありません よろしくお願いします。
316 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:04:06 ] >>307 ttp://codepad.org/c7Hr0Iqm ヒントがひどいよ(´;ω;`) 一応ヒントに沿う形で書いたけどいろいろ酷い…。 こちらの環境では動いてるけど、そちらの環境で動くかどうか不明。 codepadでOutput: 1 Segmentation faultとか出ちゃってるから。
317 名前:デフォルトの名無しさん [2010/01/28(木) 22:06:10 ] >>315 問題文URLでミスしました。再投稿します。 [1] 授業単元:プログラミング応用 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10461.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual studio 2003 [3.3] 言語:C [4] 期限:2010年2月2日正午まで [5] その他の制限: 特にありません 今度こそ、よろしくお願いします。
318 名前:316 mailto:sage [2010/01/28(木) 22:08:10 ] あ、Resultsの中の for (i = 0; i < N; i++) printf("%d:%d\n", i, COM[i]); for (i = 0; i < n; i++) printf("%d:%d\n", i, MAN[i]); printf("count = %d\n", count); この三行はデバッグ用なので不要です。消しておいてください。
319 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:26:00 ] >>311 その条件で問題を解くのは不可能だから、 あきらめるか、条件を見直すしかないね。
320 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:39:27 ] >311 あ、コマンドラインパラメタとパイプ・リダイレクトを使えばいけるな。 type 入力ファイル | 宿題.EXE 検索語句 > 出力ファイル こんな起動方法はあり?
321 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:43:19 ] >>307 どうぞ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10462.txt
322 名前:デフォルトの名無しさん [2010/01/28(木) 22:44:06 ] >>316 >>318 どうもありがとうございます。一人ではどうにもなりませんでした。
323 名前:デフォルトの名無しさん [2010/01/28(木) 22:49:08 ] >>321 ありがとうございます! なんとかのりきれそうですm(_ _)m
324 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:52:05 ] >>320 あの… 名簿の人数が大体5人と考えてみても無理でしょうか? その中から一人検索するので… 条件が習ってる範囲なので変えることができないのですが。
325 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:03:15 ] >324 データ数は関係ない。 その条件だとファイルの読み書きができない。 使用可能関数に記述もれは無いのか? fで始まる名前の関数を習って無いのか?
326 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:07:18 ] >>299 > fp while float else puts gets >strlen strcpy strcat 以外は使用しないでください。 これだけだと、ファイルに入出力できない。 >>320 タソが言ってる方法もあるが・・・ > 名簿の人数が大体5人と考えてみても無理でしょうか? 人数は関係ないかと。 というか、名簿のフォーマットは決められていないですか? ファイルの入出力関数について何も習ってないならば、 この問題は解けないと思います。 とりあえず、講義資料とかノートとか読み返して、 fgetsとかfputsとかを習っていないか確認してください。
327 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:15:56 ] >>324 >上記のプログラミングの他に fp while float else puts gets >strlen strcpy strcat 以外は使用しないでください。授業で習っていないので… それ、あなたが勝手に付けた条件だよね? 上記に記載されていない fopen,fclose,scanf,printf,struct等使ってるけど それはいいの? fopenやfcloseは使ってるのに fprintf,fgets,fputs等のファイル入出力関数は使っちゃダメなの? ・問題文は、出題されたまま全文を書いてください。
328 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:16:59 ] 翻弄された回答者が(´・ω・)カワイソス
329 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:17:22 ] >>320 >>326 すみません!!見直したところfscanf、fprintf、fputsとfgetsも使ってました。 不注意でご迷惑お掛けしました…
330 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:18:53 ] >>329 なら308でいいよね?
331 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:29:58 ] >>330 それがEOFとbreakがつかえないもので…すみません。
332 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:45:17 ] 連投すみません。これ以上書くと私物化も甚だしいので控えます。 頂いたヒントで頑張ります。情報不足でご迷惑お掛けしました。 本当にありがとうございました。
333 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 04:07:06 ] 下痢便飲みたいのかそうか
334 名前:デフォルトの名無しさん [2010/01/29(金) 16:23:54 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10465.txt [3]環境 [3.1] OS:WindouwsXP [3.2] コンパイラ名とバージョン:Microsoft VisualC++2008 Express Edition [3.3] 言語:C [4] 期限: (2010年1月31日17:00まで [5] その他の制限:特になし ファイルの入出力について理解したいので、 すみませんが、よろしくお願いします。
335 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 17:43:11 ] >>334 #include <string.h> #include <stdlib.h> #include <stdio.h> int main(void) { FILE *fp,*fin; char s[256]="gomibako"; char fname[256], buff[256]; long pos; printf("出力するファイル名を入力せよ。\n"); fgets(fname,256,stdin); //スペース入りファイル名なので fname[strlen(fname)-1]='\0'; //\n → \0 strcat(fname, ".txt"); fp = fopen(fname, "a"); fin = fopen("word.txt","r");//fpは"a"追記モード if ((fp == NULL)||(fin == NULL)) { printf("ファイルオープン失敗。\n"); exit(EXIT_FAILURE); } fseek(fp,0,SEEK_END); //ファイル名出力は最初の1回目のみのようなので pos=ftell(fp); if(pos==0) fprintf(fp,"%s\n",fname); while(fscanf(fin,"%s",buff)!=EOF) if(strcmp(buff,s)!=0) fprintf(fp,"%s\n",buff); fclose(fin); fclose(fp); printf("読み込み完了/書き込み完了。\n\n"); return 0; }
336 名前:デフォルトの名無しさん [2010/01/29(金) 20:20:50 ] [1] 授業単元: 情報処理B [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10463.txt [3] 環境 [3.1] OS: Windows vista [3.2] Cygwin [3.3] 言語: C [4] 期限:2月9日まで [5] その他の制限: とりあえずstrcpyは習っています。 課題5以外はプログラム中の省略を補っていただきたいです。多いですがよろしくお願い致します。
337 名前:200 mailto:sage [2010/01/29(金) 22:56:13 ] >>200 ですがおかげさまでプログラムを完成させられました。 do{ }while(next_permutation(intary.begin(), intary.end())); を使いました。 ところで>>200 ではn!もしくはn!×n!の組み合わせを計算することになりますが nが10だとn!×n!は1.31681894 × 10^13もの組み合わせになります。 この辺をうまいことごまかす方法ってないものでしょうか。 厳密な解でなくともそこそこの解を短時間で計算できる、みたいな・・・。
338 名前:デフォルトの名無しさん [2010/01/29(金) 23:26:09 ] >>335 さん。 詳しい解説助かります。本当にありがとうございました。
339 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 01:16:49 ] >>337 「B組の隣にA組を並ばせる」「身長差を最小にする」 の2つを同時に満たす解があるとは限らないので、よくあるのは重みWを利用して 点数=(1-W)×(Bの隣にAがいるか?)+W×(身長差が最小か?) で並びを評価する。2つの条件のどちらを重視するかでWの値を調節する。 あとは色々とアルゴリズムあると思うけど、ランダム山登り探索でもすればいいんじゃないかね @今の並びの点数を計算 Aランダムに2つ選んで交換してみる B交換したあとの点数を計算 C点数が高くなっていたら交換を採用、低くなっていたら元に戻す を繰り返していって、何回か連続で失敗したら終了。
340 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 03:04:51 ] >>336 課題1 codepad.org/pk2M6ihf 課題2 codepad.org/RfxMRbKe 課題3 codepad.org/tV9c41B9
341 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 09:16:33 ] >>339 これは組み合わせ最適化ってカテゴリになるんですかね? う〜ん、なかなか手の込んだことしないといけないっぽいなぁ。
342 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 11:14:15 ] >>337 計算途中で、過去の最小を超えたら中止したらいいんじゃね? 少しはラクになるはずw
343 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 11:19:52 ] 身長順にソートして、 隣の組の子と手を繋がせて、 A組の子を元の順に並べる。 これじゃダメなの?
344 名前:342 mailto:sage [2010/01/30(土) 11:33:03 ] あ、中止つうのは、端折って次へ、という意味。
345 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 12:09:33 ] >>341 宿題のレベル超えるから最適化アルゴリズムでも調べてくれ >>342 それをやったとしても計算量のオーダーには寄与しないよ テクニックとしては重要だが。 >>343 そのやり方だと「AとBが隣り合う」という条件を完全に満たして、 「身長差が小さい」についてはそこそこ、という解が得られる。 そういう解が欲しいときにはその手の方法がベストだと思う。 >>200 の問題文を見る限り、その解釈でいいと思う。
346 名前:デフォルトの名無しさん [2010/01/30(土) 13:21:56 ] Microsoft社 Visual Studio C++のソフトウェアを用いて チャットアプリケーションを作れと言われたのですが、 当方C言語系がとても苦手で困っています;; システムの仕様は ・1対1の環境でのみ動作。 ・サーバ側はポート番号を指定して、クライアントからの接続を待つ。 ・クライアント側はサーバのIPアドレスとポート番号を指定して、サーバに接続する。 ・この時の通信はTCPで行う。 ・クライアントが通信をやめたい場合は"endc" ・サーバ側がやめたい場合は"ends"と入力。 ・WinSockを使用してWindowsのコンソールプログラムとして基本的な簡易なチャット 以上の条件でプログラミングしていただけると幸いです。 よろしくお願いします m__)m
347 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 13:38:34 ] >>346 >>1
348 名前:200 mailto:sage [2010/01/30(土) 14:21:39 ] 身長順にソートできれば確かに楽になりそうですね。 ただ>>200 の問題はもっと複雑なものの一部分を抜き出したもので、 本当は身長順というよりも2次元平面上で距離が近いもの同士って感じなんです。 そうなると・・・ちょっと安易にはソートできないかな? なんにしても宿題としては提出してしまっているので自分が気になってるだけです。 最適化アルゴリズムでいろいろ見てみようと思います。
349 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 14:45:58 ] Cマガのプログラミング研究会を思い出した。
350 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 15:26:06 ] >>345 343じゃないけど、>>343 のやり方で、 身長差が最小とならない場合って、どんな場合? 計算してみたら、常に最小になりそうなんだが。 それとも「そこそこ」ってのは 「最小にならない場合がある」って意味ではない?
351 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 15:29:09 ] [1] 授業単元:プログラミング演習U [2] 問題文(含コード&リンク): □1□2□3□4□5□6□7□8□9 の□に四則の演算子(+,−)や空白を入れて100なるような 小町算の全ての解を求めるプログラムを作成すること 例えば 12 + 3 - 4 + 5 + 67 + 8 + 9 = 100 123 - 45 - 67 + 89 = 100 [3] 環境 [3.1] OS: Windows [3.2] VC3.5SP1 [3.3] 言語: C++ [4] 期限: 本日4時まで [5] その他の制限: 特にないです かなり切羽詰まってるのでお願いします…
352 名前:350 mailto:sage [2010/01/30(土) 15:42:36 ] と、思ったけど、AとBが隣り合わない場合を考慮すると、 343のやり方では、身長差が最小とならない場合がある、 という意味だったのね。 失礼、読み違えてました。
353 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 16:14:36 ] [1] 授業単元:コンピュータグラフィック [2] 問題文(含コード&リンク):10468.txt モノクロ画像を読み込み,(319,239) の画素値を 0 とする 画像を関数を使用して読み込み,それを 2 次元配列に格納する関数を作成する. 指定した画素の画素値をセットする. 2 次元配列に格納していた画像を 1 次元配列に再度格納し,関数を使用して画像ファイルとして書き戻す. [3] 環境 [3.1] OS:WindowsXP [3.2] VC 05 [3.3] 言語:C [4] 期限: ([2010年2月1日01:00まで] [5] その他の: 前スレで24日辺りに回答を頂いた問題なのですが、差し戻されました 自分なりに分かる部分を書き直してみましたが、一向に解決しないので回答をいただけないでしょうか?
354 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 16:16:35 ] >>351 31分でコードを作ってもらおうという考えは非常識
355 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 17:51:17 ] >>351 前にIPAの試験に出てたので、そのまま作ってみたよ codepad.org/2eIcdrm7
356 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 18:07:34 ] [1]情報科学特論 (大学院講義レポート課題) [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10469.txt [3] OS:Solaris GNU-C-compiler 4.0 C言語 [4] 2/11迄 [5] 面倒なのでよろしく
357 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 18:28:17 ] [1] 授業単元:計算機自論 [2] 問題文(含コード&リンク): LISPはCと同じで関数型言語ではないということを200文字以内で表現してください [3] 環境 [3.1] OS: すべて [3.2] コンパイラ名とバージョン: すべて [3.3] 言語: 日本語 [4] 期限: 無期限
358 名前:デフォルトの名無しさん [2010/01/30(土) 19:15:44 ] [1] 授業単元:プログラミング演習U [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10471.txt [3] 環境 [3.1] OS:WindouwsXP [3.2] コンパイラ名とバージョン:VisualC++2008 Express Edition [3.3] 言語:C [4] 期限:2010年2月2日15:00まで [5] その他の制限:特になし なんとか途中まで頑張りましたが、今の自分ではこれが限界でした・・・。 問題文リンク先の≪問題と条件≫の全てを満たすソースを、お教え下さい。 お手数かけますが、よろしくお願いします。
359 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 19:21:19 ] >>351 なんか変数いっぱい散らかしてもっちゃりしてるけど。 処理もなんかぐねぐねぐねぐねとしてるし。駄目だな。 ttp://codepad.org/E2NpBjB2 >>355 さんのを見て勉強しなおしてきます。
360 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 19:44:31 ] >>358 #include <stdio.h> int main(int argc,char *argv[]){ FILE *fp1=NULL,*fp2=NULL; char buf; int i=1; int result=0; if(argc!=3){ printf("引数が不正\n"); result=-1; goto EXIT; } fp1 = fopen(argv[1],"rb"); fp2 = fopen(argv[2],"w"); if(fp1==NULL || fp2==NULL){ printf("file open error\n"); result=-1; goto EXIT; } while(fread(&buf,1,1,fp1)){ fprintf(fp2,"%02X ",buf); if(i%16==0) fprintf(fp2,"\n"); i++; } EXIT: if(fp1) fclose(fp1); if(fp2) fclose(fp2); return result; }
361 名前:デフォルトの名無しさん [2010/01/30(土) 20:26:12 ] 360さん。回答ありがとうございます。 早速、このソースでコンパイルしたところ問題なくビルドは出来ました。 しかし、その後の「デバックなし」で実行してみましたが、 「引数が不正」と表示されてしまい、上手く出来ません。 これは何故でしょうか?しょぼい質問ですいません・・・。
362 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 20:38:24 ] >>361 ≪問題と条件≫ 第1引数に指定したファイルからバイナリーモードで1バイトずつファイルを読み込み、 ファイルの内容を16進数で示したものを第2引数に指定したファイルに書き込むプログラムを作成せよ。ただし、16バイトごとに改行を入れること。 (実行) >free1.exe test.txt test2.txt でしょ?
363 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 20:41:50 ] >>361 横からだけど、 今の場合引数っていうのは、プログラム実行時にプログラム名の後に続けて書くもの >free1.exe test.txt test2.txt この場合はtest.txtが第1引数で、test2.txtが第2引数 例えばここを >free1.exe hoge.txt fuga.txt にしても、ちゃんとhoge.txtから読み込んでfuta.txtに出力するような プログラムを作れっていうのが、この課題なんじゃないかな
364 名前:デフォルトの名無しさん [2010/01/30(土) 20:45:52 ] >>362 はい、そうです。
365 名前:デフォルトの名無しさん [2010/01/30(土) 20:51:31 ] >>363 はい、test.txtとhoge.txtは、あらかじめ作成している状態です。
366 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 20:57:08 ] 分かってねー
367 名前:363 mailto:sage [2010/01/30(土) 20:59:19 ] >>365 だったら実行時に指定しないと。 VC++でどうやって指定するか分かんないけど
368 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 21:11:35 ] >>365 コマンドライン引数というものが分かってないので ttp://www9.plala.or.jp/sgwr-t/c/sec11-4.html ttp://www.geocities.jp/ky_webid/c/045.html この辺読みましょう
369 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 22:28:36 ] [1] 授業単元: プログラム演習U [2] 問題文(含コード&リンク): 3次元空間において線分が平面を通過しているか判定するプログラムを作りなさい (線分の座標(x1,y1,z1) (x2,y2,z2)と平面の四隅の座標は入力する) 平面を通過していても平面の四隅の中に交点がない場合は通過していないものとする [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C [4] 期限:2010/2/8 お願いします
370 名前:デフォルトの名無しさん [2010/01/30(土) 22:43:05 ] >>358 です。 稚拙ですが、質問をURLにまとめたので、よろしくお願いします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10472.txt
371 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 22:46:23 ] >>370 >>368 を読め。
372 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 22:58:55 ] >>370 Cドライブ直下にfreeフォルダを作成します。 C:\free です。 >>360 のソースを free1.c などとしコンパイルして free1.exe を作成します。 作成された free1.exe を C:\free フォルダ内にコピーします C:\free\free1.exe です。 作成済みのデータ test.txt も同様に C:\free フォルダ内にコピーします C:\free\test.txt です。 C:\free フォルダの中には free1.exe test.txt 2つのファイルがあります。 コマンドプロンプトを起動します。 スタート>ファイル名を指定して実行>cmd.exe OKボタン コマンドプロンプトが立ち上がりました。 C:\............... >_ (_は点滅状態) となります。 カレントディレクトリを C:\free に移動します。 C:\............... >cd c:\free です。 C:\free>_ (_は点滅状態) になりました。 この状態で C:\free>free1.exe test.txt test2.txt を実行します。 C:\freeフォルダの中に test2.txt が作成されました。おしまい。
373 名前:デフォルトの名無しさん [2010/01/30(土) 23:03:50 ] >>340 ありがとうございます!助かりました! 課題4、5については引き続きどなたかよろしくお願い致します。。
374 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 23:30:33 ] >>353 ファイルの入出力はファイルポインタを用いたものに変更してます。 (インデントが変な所はタブをスペース4つに換えて下さい) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10473.txt
375 名前:デフォルトの名無しさん [2010/01/31(日) 00:04:17 ] 372さん。回答ありがとうございます。 アドバイス通りにしてみて、実行したのですが、 「Lhaplus slef extractor」というのが 表示されます。展開先のフォルダはC:\free を選べるのですが、 展開されるファイルが何故かfree1.cしか選べません・・・。 何度も見直して実行したのですが、結果は一緒です。 これは、なにか他に原因があるのでしょうか?
376 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 01:53:57 ] >>356 には手だすな。 >>357 も>>369 も やんないほうがいい
377 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 02:16:46 ] >>375 それ以上の質問はスレ違いどころか板違い。
378 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 02:35:35 ] 乱数は言語学習レベルの人がうかつに手を出すべきものじゃない。 補助的に使うのならともかく 高度に依存するプログラムの生成には高度な専門知識が必要で 専門家”集団”レベルで扱うべきもの。 みだりに使う癖だけは付けないほうが良い 以上自戒を込めて
379 名前:378 mailto:sage [2010/01/31(日) 02:37:05 ] 誤爆につき謝罪
380 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 07:42:21 ] around >>372 www.geocities.jp/ky_webid/c/image/commandline.png
381 名前:デフォルトの名無しさん [2010/01/31(日) 07:47:50 ] [1] 授業単元:プログラミング演習U [2] 問題文(含コード&リンク): 入出力とデータファイルへの保存とその間の処理あるプログラムを作成する kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10475.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限:2010年2月4日まで [5] その他の制限:特にありません 自分では手のつけようがなく、非常に困っています。 どなたかよろしくお願いします。
382 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 14:33:52 ] 漠然としすぎ
383 名前:357 mailto:sage [2010/01/31(日) 15:40:24 ] ほとほと困っています。どなたか回答お願いします。
384 名前: ◆QZaw55cn4c [2010/01/31(日) 15:41:15 ] [1] 自主課題:前スレ pc12.2ch.net/test/read.cgi/tech/1260532772/776 関連 [2] パイプ機能(prog1|prog2|prog3) を有するシェルを作成せよ。 [3.1] WindowsXP/cygwin または Linux(Vine linux 4.2) [3.2] gcc3 [3.3] C [4] 特になし 前スレ pc12.2ch.net/test/read.cgi/tech/1260532772/776 を解こうとして挫折しました。 なにとぞ、お手本のプログラムを示していただきたく、お願いいたします。 私のほうでは、 まず、pipe() -> fork() ->read()/write()またはgetchar()/printf() の流れでチャイルドプロセスの鎖の間をパイプでつなごうとしましたがうまくいきません。 プログラムは codepad.org/lkCrVtuo です。 #define LOWLEVEL ではパイプが頭からお尻までつながって、 read()/write() 低水準入出力てデータが渡り、最後にプロンプトが表示されます。 ところが、 /* #define LOWLEVEL */ とコメントアウトした場合、FILE stdin, stdout でデータの読み書きを行うのですが、EOF を検出できず チャイルドプロセスがロックしてしまいます。 ヒントでもかまいませんので、この種のプログラムのやりかたをどうか教えていただきたくよろしくお願いいたします。
385 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 16:06:44 ] >>384 > EOF を検出できず EOFではなく0x0Aを検出したらどうでしょ
386 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 19:35:06 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10480.txt どうぞ。
387 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 19:43:07 ] 息抜きにって下さい。 自分は分からないっす お客様に「今後の夏のセールには、必ず連絡してほしい」といわれた時 お客様に「もらいもので気に入らないので他の商品と取り替えて欲しい」といわれた時 販売員の正しい行動を。
388 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 20:49:08 ] 上司に聞け
389 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 22:26:49 ] >>384 できたよ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10481.c
390 名前:384 mailto:sage [2010/01/31(日) 23:00:10 ] >>389 提示されたコードを読ませていただき、私のコードがうまくいかなかった原因がわかりました。 int fd[2]; pipe(fd); dup2(fd[0], 0); close(fd[0]); のあとに、 close(fd[1]); が必要でした。 その他、いろいろと示唆にとむコードを掲示していただき、ありがとうございました。
391 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 00:47:15 ] すいませんが規制されてるので携帯から簡単に 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10482.txt 環境:XP、gcc、C言語 期限:今日の午前中 その他制限:なし 構造体とfwrite関数とコマンドライン引数等を使うらしいのですがよく分かりません よろしくおねがいします
392 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 00:50:31 ] >>391 追加ですいません バイナリファイルです
393 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 01:44:49 ] >>391 名前〜年齢間のタブ数が一定ではないけどそのルールはどうなってるの?
394 名前:デフォルトの名無しさん [2010/02/01(月) 05:48:48 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 住所録の機能を実現するプログラムを作成せよ。 [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2月3日 17時まで [5] その他の制限: 特になし
395 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 08:23:12 ] >>384 ,390 EOFの検出はfeof()でできるよ。
396 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 09:15:16 ] >>393 タブ数は共通して一回です
397 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 10:27:05 ] >>391 codepad.org/YWsKOWtO これじゃダメ?
398 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 10:28:21 ] >>391 連投スマソ。 構造体も,fwrite() も使ってなかったorz 忘れて下さい。
399 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 10:32:02 ] [1] 授業単元: C++実習 [2] 問題文(含コード&リンク): ●自由にクラスを設計する 設計図を提出 : クラスのデータメンバ、メンバ関数、仕様、 使い方等を詳しく説明したドキュメント 形式自由 (ただし電子化されたものに限る) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VisualStudio2008 [3.3] 言語: C++ [4] 期限: 2010年2月7日まで プログラム作成ではないのですが、よろしければよろしくお願いします。
400 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 11:11:23 ] 設計図て。図まで書けと申すか。
401 名前:デフォルトの名無しさん [2010/02/01(月) 11:32:51 ] 規制中なので携帯から失礼します [1] 授業単元:プログラミングI [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10477.txt [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:visual studio2008 [3.3] 言語:C++ [4] 期限:2010年02月5日まで [5] その他の制限:特になし 自分では全然作れませんでした・・・ よろしくお願いします
402 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:47:47 ] 配列の使い方がイヤすぎるw
403 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:48:02 ] schaffleって英語じゃないよな?何語?
404 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:51:07 ] シャッフルしてランダムな結果を返すならシャッフル関数は2つもいらない気がする
405 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:55:25 ] schaffle1(int n, int a[]) { while(n > 1) { int i = rand() / (RAND_MAX + 1.0) * n + 1; int temp = a[n]; a[n--] = a[i]; a[i] = temp; }} schaffle2(int n, int a[]) { int i, j, temp; for(i=1; i<=n; i++) { j = rand() / (RAND_MAX + 1.0) * i + 1; temp = a[j]; a[j] = a[i]; a[i] = temp; }}
406 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 14:48:08 ] [1] 授業単元:プログラミング応用演習 [2] 問題文(含コード&リンク): ttp://mikilab.doshisha.ac.jp/dia/research/report/2008/1118/002/report20081118002.html [3] 環境 [3.1] OS: Windows [3.2] ) [3.3] 言語:C++ [4] 期限: 2010/2/2or3 [5] その他の制限: ライブラリは使わず。問題文のリンク先のプログラム(DIRECT)を組む。 よろしくお願いします。できれば解説を付けてくださると助かります。
407 名前:390 mailto:sage [2010/02/01(月) 18:25:32 ] >>395 C 言語というより UNIX/POSIX システムコールの問題でした。 パイプを pipe() で作成した後適切に処理しなければ、パイプが閉じたことにならず、EOF が検出できずに getchar()やread() がブロックされたのでした。 これは fcntl() で NONBLOCK 属性をつけてもうまくいきませんでした。 codepad.org/WiYTFttG
408 名前:395 mailto:sage [2010/02/01(月) 19:13:22 ] >>407 オレの言いたかったのはget_line()の方。 これじゃコマンドを入力するときのEOFを検出できないと言いたかったの。
409 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 19:26:11 ] [1] C言語演習 [2] int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10} int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5} が与えられている。 値x[0]*y[0]+2*x[1]*y[1]+3*x[2]*y[2]+4*x[3]*y[3]+5*x[4]*y[4]+6*x[5]*y[5] が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム [3] Windows XP/Borland C++ 5.0/C言語 [4] 2/18迄 [5] 特に無し
410 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:27:14 ] >>408 拙作のgetline() のほうでしたら、fgets() が NULL を返すのをみて、一行入力の終わりがきたことを検知できます。特に問題はありません。
411 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:36:37 ] >>410 EOF入力してみた?
412 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:37:07 ] >>409 6以降はどうすんの?
413 名前:410 mailto:sage [2010/02/01(月) 20:41:12 ] >>411 わざわざ Ctrl-Dを入力しなくとも、一行の終わりは検知できていますが、何か?
414 名前:409 mailto:sage [2010/02/01(月) 20:43:57 ] すみません。誤りがありましたので訂正させて下さい。 [1] C言語演習 [2] int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10} int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5} が与えられている。 値x[0]*y[0] - 2*x[1]*y[1]+3*x[2]*y[2]- 4*x[3]*y[3]+5*x[4]*y[4]-6*x[5]*y[5] +7*x[6]*y[6]-8*x[7}*y[7]+9*x[8]}*y[8]-10*x[9]*x[9] が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム 最大/最小になる時のx[],y[]とその値を出力すること [3] Windows XP/Borland C++ 5.0/C言語 [4] 2/18迄 [5] 特に無し
415 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:51:49 ] >>413 入力してみ。
416 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:05:14 ] >>415 特になにもおこりません。というか fgets() で一行入力できているのですが。 どんな振る舞いが発生して、どうおかしいのか教えていただけないでしょうか?
417 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:21:57 ] >>416 > > cannot found がずっとでたけど。 EOFになったら綺麗に終了したほうがいいよ。
418 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:34:01 ] [1] C言語プログラミング演習(大学専門課程選択教科期末課題) [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10483.txt [3] [3-1] Windows Vista [3-2] Visual C++ 2005 [3-3] C/C++どちらでも可(なるべくC言語) [4] 2/11迄 [5]SQLがイマイチ理解できないので、指針だけでも よろしくお願いします
419 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:36:53 ] >>417 なるほど、bash でも Ctrl-D できれいに終了しますね。 これは改良の余地がありました。アドバイスありがとうございます。 コード中のgetline() (とmain())を書き直しました。 codepad.org/5NsN385B
420 名前:デフォルトの名無しさん [2010/02/02(火) 00:56:53 ] [1] 授業単元:プログラミング実践 [2] 問題文 アフィン変換のプログラムを作成し、下の図の真ん中を座標の中心にして90°回転した結果を出力せよ。 (図)affin.txt 00000 00000 11111 00000 00000 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名: gcc [3.3] 言語:C++ [4] 期限:2010年2月4日まで [5] その他の制限:特にありません 色々試しましたが、うまくいきませんでした。 よろしくお願いします。
421 名前:409 mailto:sage [2010/02/02(火) 00:59:25 ] すみません。 >>414 の問題なんですがこちらの写し間違いみたいですので 結構です。取り敢えず今回はお願いを取り消させてください。 もういちど確かめてお願いするかもしれません。
422 名前:418 mailto:sage [2010/02/02(火) 14:40:57 ] >>418 の宿題のほう一部SQLが間違ったようですので 修正しました。まだ間違いがあるかもしれませんが。 注意事項も入れ忘れてましたので、いれました. 改めて依頼させて頂きます。 [1] C言語プログラミング演習(大学専門課程選択教科期末課題) [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10484.txt [3] [3-1] Windows Vista [3-2] Visual C++ 2005 [3-3] C/C++どちらでも可(なるべくC言語) [4] 2/11迄 [5]SQLがイマイチ理解できてないので、指針だけでも よろしくお願いします
423 名前:デフォルトの名無しさん [2010/02/02(火) 15:56:42 ] [1] 授業単元:DirectX研究 [2] 問題文(含コード&リンク): サイコロを転がして目を決める。 ・テーブルとサイコロを作成する。 ・キー操作でサイコロを投げ下ろすように振る。 ・落下してきて,1つの目を上にして止まる。 ・何度でも遊べる ◎テーブルにサイコロの影がある ◎回転しながら落下してくる ◎自由な方向から見ることができる ◎テーブルの上でサイコロは跳ね,転がる。 ◎サイコロとして正しい [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008 [3.3] 言語:C++ [4] 期限: 2月10日まで [5] よろしくお願いいたします。
424 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 16:51:53 ] >>420 どのように試したの? >>421 素朴だが10!x10!の組み合わせ最適化問題 この手には一般論は無いだろから、奇麗なCプロ グラム一つに纏めるという発想が頭にあると困難かと. (いろいろ「補助手段」を開発しているうちに 別の手段で偶然、解けてしまって目的自体が大 きく喪失してしまう危険性がこの手の問題に はつきまとう) てか宿題としてC言語限定というのは不適当 >>422 SQLをわかる奴は少ないとオモ
425 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 16:59:09 ] SQL文はわかるが、プログラムに組み込めといわれると・・・
426 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:06:40 ] >>422 RDBMSには何を使うの? コネクションを張ってSQL文を投げるのには何のライブラリ使うの?自作するの?
427 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:09:14 ] SQL文を組み込むんじゃなくて、SQLで書かれた 抽象的な処理仕様に基づいて実装しろってことじゃ? SQL鯖とかが出てなかった昔は結構この手の奴あった 常識的にこの手の奴ではテーブル配列自体は勝手に ソート出来なかったり項目を拡張してはならなかったり とか色々とウルサイし、処理速度向上の為に細かい 最適化が要求されてメンドイんで俺はパス
428 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:15:17 ] >>427 そういう意味か。それは面倒だ。
429 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:21:16 ] >>427 問題文の kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10484.txt 前半: 固定項で項目の拡張無しの配列 後半: 解釈1) 題中のSQL文を与えたとして得られるであろう結果 と 同じ結果が得られるような関数を実装せよ (→ 関数実装時 SQL構文を解釈する必要は全く無い。 同じ結果を求めるコードを直接記述してね) 解釈2) 題中のSQL文を渡して結果が得られるような 関数を実装せよ (→ 関数実装時 SQL構文を解釈する必要が出てくる) ((題中に出てこない SQL文に関してはスルーの方向で)) こう読み取れるっぽいけど… …俺 SQL文わからんのでパス
430 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:40:19 ] >>429 どこの大学か知らんが、宿題として汎用SQLパーサーを 作れって奴出す教師も、それを真に受ける奴もちょっと って感じ。 てか市販のRDBMSのSQLパーサーの性能は相当に 高くなってきてるけど、ちょっと大きなデータ+複雑なSQLに なると手動で作ったCPG+CSVデータにパフォーマンスで 大敗することも多い。 酷いSQLだったり酷い構造のテーブルが多いってことも 多いけど
431 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:57:49 ] >>429 とても動きそうにないコードだけど、これは 解釈1)の方だね。 pc12.2ch.net/test/read.cgi/tech/1261443439/569
432 名前:429 mailto:sage [2010/02/02(火) 18:09:32 ] >>430 俺はそこらへんの事情を全く知らないんで勘弁して。 問題文の意図が分からなかったんで >>429 と…
433 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 19:50:16 ] あんだけgroup byがネストしてたらやる気失う。
434 名前:429 mailto:sage [2010/02/03(水) 00:28:45 ] >>431 とりあえずありがとうございます。 がprologではなくあくまでもCの宿題なので、 参考のみにさせて頂きます。 ちなみにそのスレに私は書き込んでいません。 もし誰かが転記したのをやって頂いてここに貼りなおして 下さったというのであれば結果的に相当無駄なお手数を おかけしたことになります。 構造体をほぼSQLのまま定義しその構造体の配列にデータ が詰め込まれた状態でlist関数が呼び出されるという前提で、 SQLが記述しているセレクト処理で得られるレコードを そのままコンソール出力すれば良いと 同輩が言ってたのですがやっぱり皆様が御指摘の 通りめんどうなコードになるんでしょうか? (ちなみにSQL自体が何をする処理なのか 今ひとつつかめてません。おわかりの方が いらしゃいましたら教えて頂けると嬉しいです) DB板というのがあるそうでそちらのほうでも 聞いてみます。
435 名前:デフォルトの名無しさん [2010/02/03(水) 00:29:10 ] どなたか317を作ってもらえませんか? 私の力では手におえません。。。
436 名前:418 mailto:sage [2010/02/03(水) 00:30:16 ] レス番号のほう間違えました。 >>418 =>>422 =>>434 でした。
437 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:42:08 ] 配列 int out[3]={1,5,3}; の配列の各要素の大小関係を比べるプログラムをfor文で作りたんですけど どうすればいいですか?
438 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:42:52 ] 質問は「俺に聞け」スレで
439 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:49:00 ] >>434 >>431 じゃないけどSQLは多少わかる 「テーブルSEISEKIHYOUから、 より人数が多いクラスの5科目平均点 以上の5科目成績の生徒で、より人数が 多いクラスの国語平均点の最高よりは 下の国語成績で、数学が最も成績が 高かった生徒について、その担当教師 と氏名、数学成績、国語成績を リストする。」
440 名前:デフォルトの名無しさん [2010/02/03(水) 00:58:45 ] 420のものです。 ファイル読み込みまではいけたのですが、回転はさっぱりでした。 ご教授ねがいます。
441 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:09:31 ] >>440 公式を当てがうだけのつまらない問題だね 出来ないのは言語によるものじゃなくて アフィン変換がどういうものか分かってないだけ。
442 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:13:22 ] 00000 00000 11111 00000 00000 を90度 回転させると 00100 00100 00100 00100 00100 これじゃ駄目?
443 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:14:55 ] >>435 書こうと思ったけどエラー処理がめんどくさいんだよな
444 名前:デフォルトの名無しさん [2010/02/03(水) 17:13:38 ] >>442 まさにその通りなんですが、それをプログラムでかくことができなかったです・・・
445 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 18:28:27 ] 自分用のメモ >>317
446 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 18:47:37 ] >>420 ,440,441,442,444 簡単、簡単、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10485.c
447 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 19:25:39 ] >>420 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10486.c tp://www.geocities.co.jp/SiliconValley-Bay/4543/Rubic/Mathematics/Mathematics-2.html
448 名前:434 mailto:sage [2010/02/03(水) 19:33:42 ] DB板で相談したところすんなりとコードを 書いて頂けました。 もちろん許可をとってないのでお見せする わけにはいかないのですが合計250行にも なる立派なコードでした。
449 名前:デフォルトの名無しさん [2010/02/03(水) 19:43:01 ] >>446 ご回答ありがとうございます。 試してみたんですが、コンパイルはうまくいきましたが何も表示されませんでした。 何か打ち込まなくては、いけないのですか? 質問ばっかですいません。。。
450 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 19:54:22 ] >>448 「立派なコード」を「すんなり」ですか
451 名前:yui ◆zuLLaJzEzk mailto:sage [2010/02/03(水) 20:26:20 ] [1] 授業単元:情報処理入門 [2] 問題文(含コード&リンク): rep1.ppmとrep2.ppmの2つの画像を加算するプログラムを作成せよ. プログラム中で加算したデータは,コントラスト強調を行った上で PPM画像ファイル(h12r.ppm)として保存するようにすること. Cのソースファイルh12r.cおよび実行することにより作成 される画像ファイルを提出すること.rep1.ppmとrep2.ppmの サイズはいずれも横124×縦124画素である.h12r.ppmのサイズも同じとする. rep1.ppm kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10487.zip rep2.ppm kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10488.zip [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) Cでおねがいします。 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 提出期限2010年2月8日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 特にありません。 前回は皆さんに本当にお世話になりました。あらためてお礼を言いたいです。本当にありがとうございました。 今回が最終レポートになるのですがどうか助けていただけないでしょうか? よろしくお願い致します。
452 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 21:15:14 ] >>451 #include <stdio.h> #define W 124 #define H 124 int main(){ double d,cl = -10.0; unsigned char data1[H*W*3],data2[H*W*3],data3[H*W*3]; char buff[128]; FILE *fin1,*fin2,*fout; int i; if((fin1=fopen("rep1.ppm","rb"))==NULL)goto EXIT; if((fin2=fopen("rep2.ppm","rb"))==NULL)goto EXIT; if((fout=fopen("h12r.ppm","wb"))==NULL)goto EXIT; for(i=0;i<3;i++)fgets(buff,128,fin1); for(i=0;i<3;i++)fgets(buff,126,fin2); fread(data1,1,sizeof(data1),fin1); fread(data2,1,sizeof(data2),fin2); for(i=0;i<H*W*3;i++){ d=data1[i]+data2[i]; d=d+cl*(d-127.5); if(d>255)data3[i]=255; else if(d<0)data3[i]=0; else data3[i]=(unsigned char)d; } fprintf(fout,"P6\n124 124\n255\n"); fwrite(data3,1,H*W*3,fout); EXIT: if(fin1)fclose(fin1); if(fin2)fclose(fin2); if(fout)fclose(fout); return 0; }
453 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 21:25:30 ] >>447 ひえーこの場合はこれで正解なのか 偶然だな
454 名前:デフォルトの名無しさん [2010/02/03(水) 22:51:55 ] >>447 ご回答ありがとうございます。 その処理を 00000 00000 11111 00000 00000 でしたいんですが、どうしたらいいですか?
455 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 23:31:12 ] [1] 授業単元: アルゴリズム [2] 問題文(含コード&リンク):課題2−2と2−3です。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: [2010年02月07日23:59まで] [5] その他の制限: よろしくお願いします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10490.zip
456 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 23:59:33 ] [1] 授業単元: データ演習 [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C言語 [4] 期限: [2010年02月08日20:00まで] [5] その他の制限: 努力はするも此方も断念 何方か宜しくお願い致す。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10491.zip
457 名前:447 mailto:sage [2010/02/04(木) 01:19:54 ] >>454 // 入力 for(i=0; i<MAX; ++i) for(j=0; j<MAX; ++j) a[i][j] = (i==MAX/2)?1:0;
458 名前:デフォルトの名無しさん [2010/02/04(木) 01:28:05 ] >>457 ありがとうございます。 ちゃんと表示されました。
459 名前:デフォルトの名無しさん [2010/02/04(木) 01:35:10 ] [1] 授業単元:プログラミング実践 [2] 問題文 アフィン変換のプログラムを作成し、下の図の真ん中を座標の中心にして60°回転した結果を出力せよ。 (図)affin.txt 000000000 000010000 000010000 000010000 011111110 000010000 000010000 000010000 000000000 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名: gcc [3.3] 言語:C++ [4] 期限:2010年2月5日まで [5] その他の制限:特にありません 420のものです。 度々申し訳ありませんが、よろしくお願いします。
460 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 02:03:01 ] >>459 ・問題文は、出題されたまま全文を書いてください。 もしそのまま出題されているとするなら糞問題です 添削スレで晒しちゃいましょう
461 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 02:29:39 ] 良問自作テキスト:熱心な先生だ 悪問自作テキスト:着服しただろこいつ
462 名前:447 mailto:sage [2010/02/04(木) 02:45:18 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10492.c 数学なら左回転でいいのでした。
463 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 03:51:41 ] >459 アンチエイリアシング
464 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 05:56:57 ] >>460 なぜ糞問題と思ったのでしょうか、そこをひとつ。
465 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 07:29:06 ] [2] CIP法での1次元の移流計算 [3] 環境 [3.1] OS:Vista [3.2] コンパイラ名:Microsoft Visual Studio 2008 [3.3] 言語:C++ 自分で以下のプログラムを作ったところ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10493.txt tの値を増やすにつれてf[n][t]のnの初期のほうの値がなぜかでかい数字が出てしまいます。 自分の計算ではtの値を増やせば、f[n][t]のnの初期のほうの値は0になると思うんですが、一体どこが悪いのか、ご教授をお願いいたします。
466 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 08:26:07 ] >>459 これでいいのかな? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10494.c
467 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 08:40:53 ] >>466 オレなら if(x>=-4 && x<=4 && y>=-4 && y<=4) mat2[i][j] = mat1[4 + x][4 + y]; こうするな はみ出たらカット
468 名前:447 mailto:sage [2010/02/04(木) 12:23:47 ] >>462 間違い sqrt(3)/2 だった。 x = i - MAX/2; y = j - MAX/2; m = x/2.0 - y*SQRT3/2; n = x*SQRT3/2 + y/2.0; x = m + MAX/2; y = n + MAX/2; if(x<0 || x>=MAX) continue; if(y<0 || y>=MAX) continue; // 左回転 if(b[x][y]==0) b[x][y] = a[i][j];
469 名前:デフォルトの名無しさん [2010/02/04(木) 20:21:37 ] >>462 >>466 ありがとうございました。 手つかずだったので、ほんと助かりました。。
470 名前:466 mailto:sage [2010/02/05(金) 16:32:53 ] 要素の計算方法が逆だったのかな?と今考えてるけど。 変換先位置から変換元の要素を求めたんだけど、 画像の変換の問題じゃないんだから、逆の方が良かったかな?
471 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:17:12 ] >>470 90度回転なら、どちらの方法でも、隙間ができない。 60度回転では、・・・ ってことがポイントになる問題だったのでは? 画像かどうかは関係ないでしょ。
472 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 15:42:11 ] >>455 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10496.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10497.c どうぞ。
473 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:15:20 ] どなたか406お願い出来ないでしょうか?
474 名前:っっ [2010/02/06(土) 16:26:33 ] このプログラミングの前まではうまくいっているのですが、この部分がうまくいきません。助けてくださいm(_ _)m printf("A/Sの式\n"); for(j=1;j<=12;j++){ a[i][j]/s[j]; printf("%3.1f\n",a[i][j]); }
475 名前:っっ [2010/02/06(土) 16:32:18 ] _. - ._ _ /. -−- \ l `i __ // ヽ } ´ ̄ ´ '´ う |{ /\ ____ j / ( ヽ '.l. ___/ ヽ´ ー-=ニ.¨`7 r ' r──’ `ヽ .ゞ ' ´ '. `丶、 / (´_ ̄ ヽ / | \ \/ ‘ー⊂. \ / , l | |、 ヽ‐-,ヽ  ̄ ̄\ \. / / ! ∧ ||ヽ__| ∨ ` \ \ / / | / ' ||'´ヽ l l. ', オワタ \ \l ' | ,ィ´′ ∨ ハ. | Nヽ. |、 i \ \l. | /|/ / / ', |、ヽ! \ ヽ、. | i ∨ 三三 ハ. ! \ \. /\ | | xィ彡 ・{ l. ∧ / /\ / }'ヽ! "´ ,、_, l |∨ ∨ / / / \ ‘7´ ) .ノ | l { / ',\ 、__,. ' ,/ | / \ / ', ヽ----r ' ´ | | ./ | ー ´ ', ', ヽ | | / 提出期限過ぎてしまった
476 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 19:00:28 ] >474 s/\//\/=/
477 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 20:55:03 ] >>406
478 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 20:56:51 ] >>474 a[i][j]/s[j]; の結果をどうしたいのですか?どこに保存するのですか?
479 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:49:03 ] >>475 小学校の国語から始めるべきです C言語はその後で良いでしょう
480 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 01:25:57 ] [2] プログラム 環境 [3.1] OS:Linux [3.2] コンパイラ名:gcc [3.3] 言語:C++ 以下の実行結果はどうなるか #include<stdio.h> #define N10 int main(){ int i,wa=0; for(i=1;i<N;i++){ if((i%2) == 0) continue; wa+=i;} printf("%d\n",wa); return 0;} よろしくお願いします。
481 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 01:31:24 ] >>480 Nが未定義という類のエラーが出るでしょう
482 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 01:40:50 ] >>480 codepad.org/721ieWJG
483 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 03:45:18 ] [1] C言語プログラミング初歩(専門学校) [2] int型の配列変数A[64][32]をB[32][64]に代入する. 次の対応があるようにすること A[0][0] -> A[0][1] -> A[0][31] ->A[1][0] ->....->A[63][31] B[0][0] -> B[0][1]-> B[0][31] -> B[0][32]->....->B[31][63] (上の段と下の段が一致) A[m][n]には値 (m+n) % 31が入っているものとする。 [3] Windows Vista /Visual studio 2008/C言語 [4] 2/15迄 [5] 1月開講です。ポインタはまだ習ってません
484 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 05:03:38 ] >>483 こんな感じ? #include<stdio.h> int main() { static int A[64][32], B[32][64]; int m,n; for(m=0;m<64;m++) for(n=0;n<32;n++) A[m][n]=(m+n)%31; for(m=0;m<32;m++) for(n=0;n<64;n++) B[m][n]=A[2*m+n/32][n%32]; return(0); }
485 名前:冷やかしです mailto:sage [2010/02/07(日) 05:41:31 ] return(0)はかっこ良すぎ(カッコ付け過ぎ) return 0;で十分w てか関数呼び出しと見間違えやすいので付けないほうが吉
486 名前:温めます mailto:sage [2010/02/07(日) 09:35:40 ] int *a = &A[0][0], *b = &B[0][0]; for(m=0;m<32;m++) for(n=0;n<64;n++) *b++ = *a++;
487 名前:前スレ639 mailto:sage [2010/02/07(日) 11:46:40 ] 宿題でなく質問させてもらいます。 pc12.2ch.net/test/read.cgi/tech/1260532772/652 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10348.txt 上のプログラムについて聞きたいのですが このプログラムはfor文を2回まわしているので数列の長さをLとしたとき計算量は2LなのでO(L)と言えるのでしょうか? それと、ソースの下の方にある ? はifの省略記法なのでしょうか? 初心者でよくわからなかったのでお教えください
488 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:08:15 ] >>487 O(n^2) 実際に適当な値入れて何回実行されるか考えたらいいと思う。 そういう捉え方もできなくもないが別物。 三項演算子とかでググったらいいと思う。
489 名前:前スレ639 mailto:sage [2010/02/07(日) 12:22:19 ] >>488 このプログラムを作ったくれた作者さんのレスを載せると >数列のn[i]について毎回「n[i]の前後にn[i]よりも大きい数と小さい数があるか」を調べる場合、 >計算量は数列の長さをLとして O(L^2)かかる。 >一方、>>646 のように、n[i]までの最大値と最小値を先に計算してしまうと計算量はO(L)で済む。 と書いてあり、 自分で考えてみてもl-1回計算するfor文が2個あるので2l-2なので、やはりO(L)といえる気もしますが・・・よくわかりません。 ?は条件演算子ですね。分かりました。ありがとうございました。
490 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:23:36 ] >>487 >計算量は2LなのでO(L)と言えるのでしょうか? YES。入れ子になってれば積になってO(L^2)だけど、 別々になっているので全体の計算量は多い方(今回は同じ)になる。 ?は "c ? a : b" という三項演算子の一部。詳細はぐぐれば分かる。 基本的にはifとは別物だが、非常に限定された場面では代わりに使うこともできる。
491 名前:488 mailto:sage [2010/02/07(日) 12:30:26 ] 最初の奴はよく見てなかった。
492 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:31:17 ] しかも、今度は途中送信スマン
493 名前:前スレ639 mailto:sage [2010/02/07(日) 12:38:12 ] それでは計算量は作者のとおりO(L)ということで正しいのですね? ありがとうございます!勉強になりました!
494 名前:デフォルトの名無しさん [2010/02/07(日) 13:14:34 ] 【質問テンプレ】 [1] 授業単元:C言語入門 [2] 問題文: キーボードから英文を1文字ずつ入力し母音の出現数をカウントする。その数だけアスタリスクを表示する。ただし、入力を終了するときはCtrl+Zを押すものとする。(vowel.c) [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2月8日 [5] その他の制限:特にありません。 よろしくお願いします。
495 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 14:55:13 ] >>494 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10499.c こんな感じでしょうか。
496 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:55:53 ] >>495 ありがとうございます! ですがコンパイル出来ませんでした; 制御構造の単元なのですが、While文などを使ってもう少し簡単にしていただくことはできるでしょうか?;
497 名前:495 mailto:sage [2010/02/07(日) 16:46:58 ] >>496 エラーメッセージを全部コピペしてもらえます?
498 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:18:05 ] >>497 vowel.c: エラー E2140 vowel.c 31: ここでは宣言はできない(関数 countVowel ) エラー E2141 vowel.c 32: 宣言の構文エラー(関数 countVowel ) エラー E2139 vowel.c 70: 宣言に ; がない(関数 countVowel ) エラー E2134 vowel.c 70: 複合文に } がない(関数 countVowel ) *** 4 errors in Compile *** です。
499 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:24:13 ] >>497 すみません。 こちら側のミスでエラではなく警告のみでした。 vowel.c: 警告 W8057 vowel.c 68: パラメータ 'argc' は一度も使用されない(関数 main ) 警告 W8057 vowel.c 68: パラメータ 'argv' は一度も使用されない(関数 main )
500 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:35:10 ] >>499 int main (int argc, char* argv[]) を int main () もしくは int main(void) に書き換えてみてください。
501 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:58:32 ] >>500 int main()に書き換えたらコンパイル出来ました! for文苦手なので本当に助かりました。 ありがとうございました!!
502 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:16:02 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 入力された2つの文字列str1,str2を比較し、str1にstr2の文字列が含まれている場合に1を、含まれていない場合に-1を返す関数、strcmpを作成せよ。 int strcmp( char *str1, char *str2); ex. str1=”abaabab” , str2=”aab” 1 ex. str1=”abaabab” , str2=”abb” -1 [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 出来れば今日中に。急ぎで申し訳ありません。 #include<stdio.h> #include<string.h> #define LENGTH 10 int strcmp(char *sp1,char *sp2); int main(){ char str1[LENGTH+1]; char str2[LENGTH+1]; printf("aとbを使って10文字入力してください。\n"); scanf("%s",str1); printf("aとbを使って2文字入力してください。\n"); scanf("%s",str2); printf(結果) strcmp(&str1[0],&str2[0]); ここまで作ったのですが(中途半端ですみません)関数に行き詰まり、ネットで調べたところ本来のstrcmpの使い方とこの課題で求められているstrcmpの使い方が異なることが分かりどうすればいいのか混乱してしまいました。 この後、関数strcmpを使い、str1とstr2を比較して・・・をどうのようにすれば良いでしょうか?
503 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:23:30 ] >>502 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10500.c これでいいかな。 「strcmp」という名前で関数を定義できなかたので、別名をつけています。 > ネットで調べたところ本来のstrcmpの使い方とこの課題で求められている > strcmpの使い方が異なることが分かりどうすればいいのか混乱してしまいました。 その通り。 標準関数のstrcmpは、二つの文字列が一致しているか判定する関数。 課題の出し方が悪いと思う。 (あるいは学生をあえて混乱させようとしているのか・・・)
504 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:47:32 ] strstrだよね
505 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:54:35 ] strstrでググったら実装がすぐ見つかっちゃうからじゃないの strcmpと被せたのは<string.h>使わせないためとか
506 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:00:09 ] それ以前に今日中という期限設定は常識を疑いたいもの
507 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:02:59 ] #include<string.h>をはずして関数名strcmpにしてなんとか形になりました。 >>503 さん、本当にありがとうございました。 またこのスレにお世話になってしまうかもしれませんが宜しくお願いします。
508 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:20:25 ] 1] 授業単元:プログラミング演習 [2] 問題文:次のプログラムを改造し、定積分の面積を求めるプログラムにせよ [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:無期限 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10501.txt お願いします
509 名前: ◆QZaw55cn4c mailto:sage [2010/02/07(日) 21:49:54 ] >>456 ちょっと皆さんにご意見をお聞きしたいところです。 二分木で番兵(sentinel) をおく意義がわからない、どんなsentinel をおけばいいかわからないのですが、 どうすればいいのでしょうか。 sentinel をおくことで if 文が減らなければならない、と考えているのですが。
510 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:50:58 ] ameblo.jp/ruhuraro/image-10357111023-10267569832.html ここで解説出てるよ
511 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:02:39 ] >>510 真に受けた俺が悪うございました。
512 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:32:58 ] >>509 [1] 授業単元:プログラミングコミュニケーション演習 [2] 問題文:>>456 の正解を皆さんに”必ず”知らせてください。 [3] 環境 [3.1] OS:2ch [3.2] コンパイラ名とバージョン:jd等 [3.3] 言語:無制限 [4] 期限:無期限
513 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 01:34:32 ] >>508 単純な台形則による定積分で、関数F(X)のXY座標を、X座標の小さい順に V[][0], v[][1] に入力と解釈するなら #include <stdio.h> double daikei(double xa, double ya, double xb, double yb){ return(ya+yb)*(xb-xa)/2; } int main(void){ int n; int i; double V[1000][2]; double S,D; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%lf",&V[i][0]); scanf("%lf",&V[i][1]); } S=0.0; for(i=0;i<n-1;i++) S+=daikei(V[i][0],V[i][1],V[i+1][0],V[i+1][1]); printf("\n面積:%f\n",S); return 0; } とか?
514 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 03:11:53 ] >>509 NODE sentinel; NODE *root = &sentinel; 以降、全ての NULL を &sentinel に置き換える。 (malloc の戻り値チェックの NULL はそのまま) 元々 NULL が番兵の役割を果たしていたので、簡単な変更で済む。 NULL が番兵ではないと誤認識させる糞問題でした。
515 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 04:49:23 ] 【質問テンプレ】 [1] 授業単元:C言語 [2] 問題文: input.ppm というPPMフォーマットのファイルを読み込み, ヘッダをつけて縦横をそれぞれ 1/2(面積にして1/4) にして出力するプログラムを書きなさい. input.ppm のサイズは 410x307 である. [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2/8 よろしくお願いします。
516 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 07:56:54 ] >515 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10502.zip
517 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 09:07:12 ] >>516 丁寧にありがとうございます ですが難しくてよく分からないです たぶんもっとシンプルで(いい加減で)良い課題なので、それを参考にもう少し頑張ります
518 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 12:09:37 ] >517 論理ミスしていた diff main.c main.c.bk 75,76c75,76 < rl.x = (x == 0 ? 1 : x*2); < rl.y = (y == 0 ? 1 : y*2); --- > rl.x = x*2; > rl.y = y*2; 縦横1/2の間引きだから、単純に縮小先の画素から見た縮小元の2x2の画素の平均値を新しい画素値にすればいいけど、 1/2の線形補間はになるためあまりきれいに縮小できない 以下疑似コード x, yは、整数, imageは元画像, new_imageは縮小画像を表す array(u, v)は、imageの縦u, 横vの値を表す height, widthは、それぞれ元画像の縦幅と横幅を表す for y in 0 <= y < height/2 for x in 0 <= x < width/2 new_value <- image(y*2, x*2) + image(y*2, x*2+1) + image(y*2+1, x*2) + image(y*2+1, x*2+1) new_value <- new_value / 4 new_image(y, x) <- new_value end end 実際のコードでは、RGBの値をそれぞれ計算しないといけないけど
519 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 12:15:31 ] >518 diff恥ずかしいなぁ、寝不足はいかんね
520 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 14:01:32 ] >>515-517 mkr_allocate_3d_array()で行のポインタがheightを一つ越えて 初期化されてしまってますね。バグバグバグ。
521 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 17:59:07 ] >>513 台形規則のプログラムではなくて 画像の関数の始点Aから終点Bで囲まれた赤色の面積を求めるような プログラムが欲しいです・・・ www1.axfc.net/uploader/Sc/so/80859 文章の記述不足すみません
522 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 18:02:02 ] 台形近似でも面積を求めることに変わりはないと思うんだが・・・
523 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 18:25:02 ] >>521 それを求める公式の一つが台形則。 希望があるならそれを明記しないと伝わらんぞ。
524 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 18:45:13 ] すみません;; 教科書読んだら台刑則のプログラムで面積を求めることが出来ると書いてありました… あとプログラムについて質問なのですが S+=daikei(V[i][0],V[i][1],V[i+1][0],V[i+1][1]); の部分の+=という演算子はどのような働きがあるのかと コンパイルしたあとは始点(xa,ya)終点(xb,yb)だけを打ち込めばいいのかわかりません そこについてもよろしくお願いします
525 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 18:50:14 ] a+=bはa=a+bと同義
526 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 19:43:34 ] >>524 (1)最初に関数F(x)上の点の数nを入力 (2)F(x)上の点(x,y)を、x座標の小さい順にn回入力。 下図を良〜く見れば、そのうち分かってくるはず upload.wikimedia.org/wikipedia/commons/thumb/4/42/Composite_trapezoidal_rule_illustration.png/180px-Composite_trapezoidal_rule_illustration.png
527 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:35:10 ] >520 ありがとうございます 潜在的なバグの原因になり兼ねますね 有効なアドレスを参照しているからメモリチェッカでは検出できていませんでした 修正は簡単だけど、エレガントなコードが浮かばない もう、ppm.c自体の完成度が低すぎて笑える、即席の使いまわしの接ぎ木
528 名前:至急お願いします。 [2010/02/09(火) 03:50:53 ] [1] 授業単元:C言語 [2] 問題文: ガウス分布における数値積分 I=∫f(x)dx,←xmin〜xmax f(x)=1/√(2*π*σ)*exp(a) a=-(x-μ)*(x-μ)/(2*σ*σ) 積分区間は[xmin,xmax]=[myuu-2siguma,myuu+2siguma]として計算すること。なおμ=0,σ=1とした場合、I=0.95449と なるので確認すること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2/9 正午まで 出来ればすぐにお願いします。
529 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 03:59:06 ] >>528 確認しました。 で提出すりゃいいよ。
530 名前:至急お願いします。 [2010/02/09(火) 04:09:11 ] 追記 528>>関数を使ってください。
531 名前:至急お願いします。 [2010/02/09(火) 04:10:07 ] 529>>どういうことですか?
532 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 04:26:05 ] 計算すること 確認すること 参考書のページ数稼ぎによくあるパターンだな
533 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 05:39:00 ] >>528 多少誤差があるけど #include <stdio.h> #include <math.h> double f(double sigma, double mu, double x) { return 1/sqrt(2*M_PI*sigma) * exp(-(x-mu)*(x-mu)/(2*sigma*sigma)); } int main(int argc, char *argv[]) { int i, n = 10000000; double sigma=1, mu=0; double xmin = mu-2*sigma, xmax=mu+2*sigma; double a = f(sigma, mu, xmin), b; double sum = 0.0; for(i = 0; i < n; i++){ b = f(sigma, mu, xmin+(xmax-xmin)/n*i); sum += (a+b)*(xmax-xmin)/n/2; a = b; } printf("%f\n", sum); return 0; }
534 名前:デフォルトの名無しさん [2010/02/09(火) 07:18:38 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 配列に Institute of Technology という文字列を代入し、ポインタを利用して ・各文字が格納されているアドレス ・そのアドレスに格納されている文字 を表示するプログラムを作成せよ。 [3] 環境 [3.1] OS:windows XP [3.2] コンパイラ名とバージョン:visual studio2008 [3.3] 言語:C [4] 期限:[2010年2月9日まで] [5] その他の制限: お願いします。
535 名前:デフォルトの名無しさん [2010/02/09(火) 07:33:03 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): まず次の内容のテキストファイルを準備せよ。 (メモ帳で作成し、test02.txtという名前で保存すること) abc 123 def 456 ghi 789 jkl 000 次に、作成したテキストファイルから内容を読み出し、 各行の先頭に 01 02 03 というように番号を付加して 画面に出力するプログラムを作成せよ。 [3] 環境 [3.1] OS:windows XP [3.2] コンパイラ名とバージョン:visual studio2008 [3.3] 言語:C [4] 期限:[2010年2月10日まで] [5] その他の制限:
536 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 09:23:35 ] >>534 #include <stdio.h> int main(void) { char *pstr,str[30]="Institute of Technology"; pstr = str; for(;*pstr!='\0';++pstr) printf("%08x: %c\n",&*pstr,*pstr); }
537 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 09:26:13 ] >>535 #include <stdio.h> int main(void){ int i=0; char text[200]; FILE *ifp; ifp = fopen("test02.txt", "r"); if(!ifp) return 1; while(fgets(text,200,ifp) != NULL) printf("%02d %s", ++i, text); fclose(ifp); }
538 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 11:34:00 ] >>535 #include <stdio.h> int main(void){ FILE *f; f=fopen("test02.txt","r"); if(f==NULL) return 0; fclose(f); printf("01abc¥n02123¥n03def¥n04456¥n05ghi¥n06789¥n07jkl¥n08000¥n"); return 0; } センセーが期待した解答とは異なるだろうがよ
539 名前:至急お願いします。 [2010/02/09(火) 14:07:26 ] 534>>ありがとうございます。argvの後はなんてかいてあるのですか?
540 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 14:37:13 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): codepad.org/9ra3PWuv 上のコードが正しく動かないんです・・・ input.txtとして 1 2 3 4 5 の内容を保存して実行ファイルから読み込ませる ./a input.txt [3] 環境 [3.1] OS:ubuntu [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:[出来れば今日中で] [5] その他の制限:
541 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:17:43 ] >>540 自分が作ったプログラムを理解出来ていないようだ。(笑) input.txtとして↓を与える。 5 1 2 3 4 5
542 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:32:17 ] うわ、そんな安易な間違いでしたか・・・ ずっとプログラム睨んでました。 ありがとうございます。
543 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:07:04 ] バカもん。 > ずっとプログラム睨んでました。 プログラム睨んでたら普通気が付くだろ。
544 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:32:55 ] コードは鏡、自分自身が見えます。
545 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:36:53 ] 自分で書いてないのがバレバレだなw
546 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:17:21 ] >>538 死ね
547 名前:デフォルトの名無しさん [2010/02/09(火) 22:17:58 ] [1] 情報処理応用 [2] Fortranで, 階乗 n! を計算する関数を作成し, 順列 n個の異なるものからr個取り出して並べる。 このときの順列の総数をnPrとあらわす。 nPr=n(n-1)(n-2)・・・(n-r+1) を計算する関数を作成し, 組み合わせ 異なるn個からr個取り出して組を作る。 このときの組合せの総数をnCrとあらわす。 nCr = nPr/r! を計算するプログラムを作成してください [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:fortran [4] 期限: 明日まで。急ぎですみません。 [5] その他の制限: 特にないですが、板を間違えていたらすみません。
548 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:18:01 ] [1]C言語課題 [2] コマンドラインに与えられた文字列が単数で自然数を表しているとい 下の例ように出力されるプログラムを作れ 入力==>3 132 231 入力==>5 1304 2552 4031 入力==>10 136107 259084 480952 710631 入力==>20 13610150016 25914201711 48131918127 71218191384 11172014952 16001510631 [3] [3-1]Linux [3-2]GNU C++ [3-3]C言語 [4] 2/22日正午迄 それ以降は不可 [5]stdio.h string.h stdlib.hを使用可能
549 名前:デフォルトの名無しさん [2010/02/09(火) 22:39:57 ] [1] 授業単元:プログラミング 1 [2] 問題文(含コード&リンク): 球の体積をもとめよ。またこの問題は間違っているのでそれを書き換えよ #include<stdio.h> int main(void) { double r,v; printf("直径を入力して下さい\n"); scanf("%1f",&r); v=4.0/3.0*3.14159*(r/2.0)*(r/2.0)*(r/2.0); printf("直径%fの球の体積は%fです。\n",r, v); } [3] 環境 [3.1] OS:windows vista [3.2] コンパイラ名とバージョン:visual studio2008 [3.3] 言語:C [4] 期限:[2010年2月10日まで] [5] その他の制限:
550 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:40:50 ] >>547 とりあえずスレタイをn!回声に出して読んでみようか
551 名前:デフォルトの名無しさん [2010/02/09(火) 22:47:32 ] [1] 授業単元:プログラミング 1 [2] 問題文(含コード&リンク): 二つの数列の和を表示したい。またこの問題は間違っているのでそれを書き換えよ #include<stdio.h> main() { int suretu1[]={2,4,6,8,10,12,14,16,18,20}; int suretu2[]={1,2,4,8,16,32,64,128,258,512}; int kotae; int count; for (count = 0; count <=10; count++ ) printf("%d,", suretu1[count]+suretu2[count]); { suretu1[count] = 2 * count +2; suretu2[count] = count* count; kotae= suretu1[count] + suretu2[count]; printf("二つのの整列の和によってできる数列は,\n"); printf("%d\t",kotae); } } [3] 環境 [3.1] OS:windows vista [3.2] コンパイラ名とバージョン:visual studio2008 [3.3] 言語:C [4] 期限:[2010年2月10日まで] [5] その他の制限:
552 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:00:56 ] [1] プログラミング基礎 [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10503.txt [3] 環境 [3.1] OS:Unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限:2月10日 18時まで [5] その他の制限: 説明は詳しく書いてくれるととてもありがたいです。 現在とても困っています。皆さんよろしくお願いします。
553 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:15:56 ] >>548 入力==>15 136101511 259141127 481311384 712114952 111510631 入力==>11 1361011 2590007 4800084 7000952 1110631 入力==>9 13607 25984 48952 70631 入力==>8 1367 2584 4852 7631 入力==>6 1364 2552 4631 入力==>4 134 202 431
554 名前:デフォルトの名無しさん [2010/02/09(火) 23:19:47 ] [1] 授業単元:プログラミング 1 [2] 問題文(含コード&リンク): /************************* ある二つの文字列str1,str2 の編集距離はつぎの3つの操作を行うことによりstr1 をstr2 に変換するのに要する操作の最低回数である ・ 1文字挿入する ・ 1文字削除する ・ 1文字を他の1文字に置き換える たとえば str1="sport" はstr2="sort" に, 文字 'p' を削除することによりstr2 に変換できるため編集距離は 1 である str_n を文字列str の頭からn 番目までの部分列としm(i,j)をstr i とstr j の編集距離を表すものとする.m(i,j)とm(i+1,j),m(i,j+1),m(i+1,j+1)の間に成り立つ再帰式を記述しなさい この再帰式に基づき効率良く編集距離を計算するプログラムを2次元配列を利用して作成しなさい.ただし,関数m(i,j)はint型の編集距離を返り値とする. ******************************/ [3] 環境 [3.1] OS:windows vista [3.2] コンパイラ名とバージョン:visual studio2008 [3.3] 言語:C [4] 期限:[2010年2月10日まで] [5] その他の制限:
555 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:20:08 ] [1]C言語とプログラミング [2] キーボードから3つの整数を受け取り大きさの小さい順に出力するプログラムを作りなさい。 但しmain関数内ではint変数一つだけが使えるものとします。またmain関数の再帰呼び出しも 出来ません。(main関数の引数、argc,argvをint変数として使用することも勿論禁止します) main関数のみで構成されるプログラムとして下さい。 入力される数は1から10までの範囲にあることを常にチェックし、それ以外の入力の場合は 再入力を促して下さい。 [3] [3-1]Windows XP HomeEdition [3-2]Visual Studio 2008 [3-3]C言語 [4] 2/11迄 [5] 特に無し
556 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:28:36 ] まぁどれも期日まで時間があるからゆっくりやるべきだ 最近の学生は甘え過ぎ 粘って苦しめてやれというのはウソにせよ 期日ぎりぎりに催促されたら貼ってやる って感じで
557 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:30:40 ] >>549 scanf("%1f",&r); の %1f を %lf に修正。※lは小文字のL main関数が値を返して無いので、最後に return 0; 等を追加。
558 名前:デフォルトの名無しさん [2010/02/09(火) 23:32:55 ] >>556 余計なこと書くなよw 日付変えてくるだろうが
559 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:45:48 ] >>551 問題の題意がイマイチよく分からんので、適当に解釈 #include<stdio.h> main() { int suretu1[]={2,4,6,8,10,12,14,16,18,20}; int suretu2[]={1,2,4,8,16,32,64,128,258,512}; int kotae=0; int count; printf("二つの整列の和によってできる数列は\n"); for (count = 0; count <10; count++ ) { printf("%d ", suretu1[count]+suretu2[count]); kotae += suretu1[count] + suretu2[count]; } printf("\n数列の和は %d\n",kotae); return 0; }
560 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:47:16 ] >>535 #include <stdio.h> #include <string.h> int main(void){ #define CONTENTS "01abc¥n02123¥n03def¥n04456¥n05ghi¥n06789¥n07jkl¥n08000¥n" FILE *f; int i=0; char Fgets[256],Strcat[256],Sprintf[256]; f=fopen("test02.txt","r"); if(f==NULL) return 0; Strcat[0]=0; for(;;){ if(NULL==fgets(Fgets,256,f))break; sprintf(Sprintf,"%02d%s",++i,Fgets); strcat(Strcat,Sprintf); } fclose(f); if(0==strcmp(Strcat,CONTENTS))printf("%s",CONTENTS); return 0; }
561 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:01:18 ] >>552 1.Swapの引数が値渡しなので、Swap関数内で値を変更しても 関数呼び出し元の変数には影響を与えないから。 2.Swap関数内のbuf変数がポインタで定義されていて、その初期化されていないポインタの 示す先を一時保存場所として使用している為、正しく値が交換されない。 3. void Swap(int *p1, int *p2) { int buf; buf = *p1; *p1 = *p2; *p2 = buf; }
562 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:39:59 ] >>561 素早い回答ありがとうございます。助かりました。
563 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:57:05 ] [1] 授業単元: DirectX研究2 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10504.txt [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン:visual stdio 2008 [3.3] 言語: C++ [4] 期限: ([2010年2月10日17:00まで] [5] その他の制限:
564 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 01:26:05 ] >>547 スレ違いだけどFortran77で kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10505.txt
565 名前:564 mailto:sage [2010/02/10(水) 02:17:10 ] スレ違いのまま失礼… 訂正版 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10506.txt
566 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 02:19:37 ] >>548 思ったより難しかった
567 名前:566 mailto:sage [2010/02/10(水) 02:38:49 ] 入力==>200 1361015212836455566789110512013615317119000000000191 2591420273544546577901041191351521701890000000192172 4813192634435364768910311813415116918800000193173154 7121825334252637588102117133150168187000194174155137 1117243241516274871011161321491671860195175156138121 1623314050617386100115131148166185196176157139122106 2230394960728599114130147165184019717715814012310792 2938485971849811312914616418301981781591411241089379 3747587083971121281451631820199179160142125109948067 4657698296111127144162181020018016114312611095816856 5668819511012614316118020001811621441271119682695746 6780941091251421601791990182163145128112978370584737 7993108124141159178198018316414612911398847159483829 9210712314015817719701841651471301149985726049393022 1061221391571761961851661481311151008673615040312316 1211381561751950186167149132116101877462514132241711 1371551741940001871681501331171028875635242332518127 1541731930000018816915113411810389766453433426191384 1721920000000189170152135119104907765544435272014952 1910000000019017115313612010591786655453628211510631
568 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 02:42:04 ] [1]数値計算演習 [2] 極座標で表される曲線 r(t)=sin^2(πt) θ(t)=α sin(πt^2) (0<=t<=1)でαを指定した時 の曲線の長さと囲む面積の近似値を求め、π/4<=α<=πまで変化させる時、 面積/曲線の長さが最大になるαを推定する 曲線上の代表点をとり隣接する点の間の距離の和で曲線の長さを近似。 面積は隣接する代表点と原点が作る三角形の面積の和で近似する。 [3] [3-1] Mac-OS-X panther [3-2] XCode [3-3] C/C++どちらでも可能 [4] 2/18迄 [5] 特に無し
569 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 02:50:49 ] >>555 ビット演算の問題と解釈 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10507.txt
570 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 03:48:14 ] >>555 タイプミスに苦闘したが5分で打ち込めた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10509.zip
571 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 04:05:07 ] >>568 答えがπになってしまった。間違ってたらごめんね kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10510.txt
572 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 05:31:38 ] >>555 好奇心で書いてみた めちゃ読みづらいけど勘弁 testhp.ddo.jp/prog.c
573 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 07:39:07 ] >>555 入力数を何でも対応できるように むりやりキャストしてポインター使ってみた codepad.org/xjtWz8N3
574 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 07:47:33 ] 大きい順と小さい順を勘違いしてた codepad.org/Z5aQHsCW
575 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:53:50 ] おまえら必死だな
576 名前:553 mailto:sage [2010/02/10(水) 09:05:02 ] >>575 入力==>200 13610152128364555667891105120136153171190 259142027354454657790104119135152170189 48131926344353647689103118134151169188 7121825334252637588102117133150168187 111724324151627487101116132149167186 1623314050617386100115131148166185 2230394960728599114130147165184 29384859718498113129146164183 374758708397112128145163182 4657698296111127144162181 56688195110126143161180200 678094109125142160179199 7993108124141159178198 92107123140158177197 106122139157176196 121138156175195 137155174194 154173193 172192 191 1)文字列を繋いで、1〜nまでの三角形を作る(上の図参照) 2)それを1文字ずつに分解して、上下反転、左右反転する 3)1と2で出来た物を左右に並べて、隙間がなくなるまで近づける 4)空いた隙間には0を詰める
577 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:10:09 ] >>575 問題が魅力的だったからみんなやったんだろうな
578 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:38:11 ] >>576 数値自身は左右反転じゃないぞ
579 名前:553 mailto:sage [2010/02/10(水) 12:56:23 ] #define MAXL 100 main(){ int num, i, j, k, len, maxlen; char wrk[4], mat1[MAXL][MAXL*2], mat2[MAXL][MAXL*2], tmp[MAXL]; printf("入力==>"); scanf("%d", &num); for(i=0;i<MAXL;i++) mat1[i][0] = mat2[i][0] = (char)0; i=1, j=0, k=0; while(i<=num){ if(k<0) { k = ++j; if(j >= MAXL) {puts("ERR"); return 1;} // てきとう } sprintf(wrk, "%d", i++); strcat(mat1[k--], wrk); /* LEFT */ strcpy(tmp, mat2[k+1]); /* RIGHT */ sprintf(mat2[k+1], "%d", i-1); strcat(mat2[k+1], tmp); } maxlen = k = 0; for(i=0;i<=j;i++){ len = strlen(mat1[i]) + strlen(mat2[j-i]); if(len > maxlen) maxlen = len, k=i; } for(i=0;i<=j;i++){ len = strlen(mat1[i]) + strlen(mat2[j-i]); for(k=maxlen-len-1;k>=0;k--) strcat(mat1[i], "0"); // めんどう strcat(mat1[i], mat2[j-i]); } for(i=0;i<=j;i++) puts(mat1[i]); }
580 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:00:22 ] >>548 codepad.org/nCjDliKG
581 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:12:52 ] >>548 デバッグ用のprintfがあるので見づらいが、>>580 では 1) 上半分の三角形(>>576 のような)の各行の長さを求める 2) 出力される配列の長さを決める( (i行目の長さ + (h-1-i)行目の長さ)の最大値 ) 3) 出力 という流れ。三角形の(i,j)の位置のにある数字は簡単に計算できるので メモリには各行の長さだけ記憶すれば十分。
582 名前:デフォルトの名無しさん [2010/02/10(水) 13:13:57 ] [1] 授業単元:なし [2] 問題文(含コード&リンク):MSPAINTの色の選択(カラーダイヤログ)を表示して、選択した色(RGB)を文字列として取得する秀丸用のDLLを作成してください [3] 環境 [3.1] OS:Windows XP or Vista [3.2] コンパイラ名とバージョン: なんでも [3.3] 言語: CかC++どちらでも可 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: とくになし DLLの使用などはこちらを参照してください ttp://homepage3.nifty.com/kons/hidemaru/helpsite/hidemac/html/200_Dll.html
583 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:19:45 ] >>582 それ、宿題じゃねーだろ。
584 名前:570 mailto:sage [2010/02/10(水) 13:32:22 ] >>555 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10512.zip 多くの部分に間違いがあった。 さすがに700行/分の入力ではミスが起こるわなw
585 名前:570 mailto:sage [2010/02/10(水) 13:46:27 ] スマン まだ一カ所ミスが... 入力チェックをミスってる #define INPUT()で でwhileロジックを while ( (m<1)||(m>10) ) に修正して
586 名前:デフォルトの名無しさん [2010/02/10(水) 13:51:16 ] >>336 課題4と課題5どなたかよろしくお願いします。期日すぎても提出できるので、なんとかならないか必死です。
587 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:24:00 ] >>586 5番のグラフって何グラフ?
588 名前:デフォルトの名無しさん [2010/02/10(水) 17:40:46 ] 入力データの例 1.2 3.7 2.1 4.2 2.9 1.3 4.0 2.5 x,y軸を-や+で表現して、それぞれ座標の点(4つ)を*でプロットする感じです。
589 名前:555 mailto:sage [2010/02/10(水) 19:03:12 ] >>572 >>573 >>570 どうもありがとうございました。 >>570 さんのコードは非常にわかりやすいです。 3600行を5分で入力とは凄いですね。 タッチタイピング速度はどの位でそれくらいに なるんでしょうか?自分は1分間に賞味150文字が 精一杯です。(IME変換時間を含む) 他の皆様もいろいろと工夫をされておられ特にビット 操作とかポインタ操作とか裏技的な技法は非常に参考 になると思います。
590 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:45:14 ] >>570 ひらいてみた。ちょwwww
591 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:52:14 ] 世間では一昔前はコード1行1万が 相場だった時代もあったね。 >>570 のコードだといくらになるんだかw **確認事項** ここで答えてやっても事後を含め 一切依頼者に報酬を請求出来ない
592 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:54:41 ] >>591 ここで答えるようなのって単体じゃどうせ金にならなくないか?
593 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:55:23 ] >>570 >>584 クソワロタ
594 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:15:31 ] ここで解かれている問題とその回答を 応用してもいいけど事後問題になる可 能性もあるんで(2ちゃんねるから 引用ってw格式ある組織ではそれだけ で処分対象w)
595 名前:570 mailto:sage [2010/02/10(水) 22:38:17 ] >>555 いえいえ。 タッチタイピングの上達のコツは このスレの他の回答者に聞いてくれ 企業秘密なんで。 この業界では毎分400文字〜500文字 (IME入力変換時間を含む)の入力が 生き残りの最低条件なんでw 今回は実にのんびりしたテンポで入力 したよ。 >>590 >>593 何かおもしろいところあるのかい?
596 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:50:17 ] いやここまで冗長なプログラムは初めて見たもんで 一行いくらならこういう方法でガツガツ稼げるなw
597 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:16:03 ] 冗長? 見た目だろ。 ロジックそのものはこれほど直接的なものはない コードは常に短く書けばいいというもんでもないと 目から鱗が落ちたような気分 コードを(最初から)短く書くのが偉いとかそういう 奇妙な信仰はかなり弊害もあるんじゃないかと もっとも一つのint変数しか使えない状況での プログラミングもかなりナンセンスだと思うが
598 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:16:59 ] 回路に例えるとワイヤードロジックな 普通のプログラムがマイクロプログラムに例える事が出来るかも
599 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:21:30 ] >>555 って__asmでスタックとレジスタ使えばint変数一つでも楽勝なんじゃないのw
600 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 02:07:11 ] >>555 逃避したくなったので書いてみた。 codepad.org/HcRNGiZZ
601 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 11:03:25 ] 勉強になるなぁ。hhdかー。
602 名前:デフォルトの名無しさん [2010/02/11(木) 13:05:19 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): #include <stdio.h> int main(void){ int a=0,k; for (k=0;k<100;k++){a++; if(a%5==0&&a%9==0)printf("A\n"); else if(a%5==0)printf("B\n"); else if(a%9==0)printf("C\n"); else printf("%d\n",a); }return 0;} この処理のプログラムをスペース、改行を含み140字以内で書き直したい。 [3] 環境 [3.1] OS:Windows XP Pro [3.2] コンパイラ名とバージョン:VisualStudio2005 [3.3] 言語:C [4] 期限: [5] その他の制限:特になし よろしくお願いします。
603 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 13:29:10 ] >>602 #include <stdio.h> int main(){ int k; for (k=1;k<=100;k++){ printf(k%5==0&&k%9==0?"A\n":k%5==0?"B\n":k%9==0?"C\n":"%d\n",k); }}
604 名前: ◆/91kCCQXBo mailto:sage [2010/02/11(木) 13:54:38 ] #include <stdio.h> int main(void){ int a; for(a=1;a<=100;a++) printf(a%45?a%5?a%9?"%d\n":"C\n":"B\n":"A\n",a); return 0; }
605 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:04:38 ] >>602 変な問題ですが無理なのでは166byte
606 名前:デフォルトの名無しさん [2010/02/11(木) 14:05:22 ] 602です。 <<603 <<604 の方ありがとうございます。 助かりました。
607 名前:605 mailto:sage [2010/02/11(木) 14:05:28 ] 失礼3項演算子があったのね
608 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:11:20 ] >>555 きっと反則技なんだろうけど。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10517.c
609 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:34:45 ] >>602 code golfするの? a;main(){for(;++a<101;)printf(a%45?a%5?a%9?"%d\n":"C\n":"B\n":"A\n",a);}
610 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:11:13 ] >>555 int a; scanf("%ld %ld %ld%*c", (long *)&a, (long *)&argc, (long *)&argv); じゃだめか Windows XP HomeEditionって64bitないよね
611 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:54:33 ] >>610 たった3行の制約条件を見逃すようじゃ、お前マの適性ない。 転職を勧める。
612 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:00:07 ] >>555 もう需要ないかと思うが、面白そうなのでやってみた。 バブルソートのありがたみを出すため、かつ、4bit余ったため、入力する値を4つに勝手に変更。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10519.txt
613 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:03:56 ] >>612 1〜10だよ。
614 名前:612 mailto:sage [2010/02/12(金) 01:26:00 ] >>613 1〜10にしてますよー。
615 名前:デフォルトの名無しさん [2010/02/12(金) 01:32:57 ] [1] 授業単元:計算機実習 [2] 問題文(含コード&リンク): hermes.esys.tsukuba.ac.jp/~sano/NumCompEx/project2.pdf [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン:VisualStudio2008 [3.3] 言語:C [4] 期限: 3/5 [5] その他の制限:特になし よろしくお願いします。
616 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:49:14 ] >>611 その前に就職をしないと
617 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:43:57 ] >>615 問題文が理解できません! orz
618 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:44:18 ] このスレの人ってちょっと考えると皆精神病院予備軍だな >>585 とか >>548 を解いて喜ぶ人とかw
619 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:49:19 ] >>618 パズルを解く感覚だよ
620 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:50:35 ] さすが現役精神病の方は言うことが違うね
621 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:21:53 ] トルヒーヨのハルディンはここですか?
622 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:30:20 ] >>555 n番煎かしれんがオラも参加! kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10521.c
623 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:31:59 ] >>622 それは突っ込み待ちか?
624 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:33:42 ] >>622 キレイに書くねー。
625 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:21:21 ] >>555 n+1番煎じしてみた。 どこにも「同じ数字が複数回入力された場合、まとめてはならない」なんて書いてないよね。 ttp://codepad.org/C0n9Shhq
626 名前:625 mailto:sage [2010/02/12(金) 20:26:28 ] ミスった… × #define PSHORT_A(x) (((uint16_t*)&x)+2) ○ #define PSHORT_A(x) (((uint16_t*)&x)+1) SHORT_Aも同様。
627 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:48:01 ] >>555 の問題って、入力がintの範囲内であることは暗黙の了解としても、[0, 10]の範囲にあることの確認は不可能だよね? charの範囲内としたら、(たとえintが規格的に最小な16bitでも)できそうだが。
628 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 02:07:59 ] >>627 お前は何を言っているんだ。
629 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 03:01:56 ] 答えが多すぎて、このパターンだけでいいか。出席を取ります。 @intをポインタとして実際使うメモリはintの配列 Aintを分解して4バイトとして4個の数字を使う B1個の数字しか使わない pc12.2ch.net/test/read.cgi/tech/1255277760/l2
630 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 03:58:19 ] >>628 「半角文字以外に「あ」とか「阿」のような全角文字が入力される場合まで考えると、正しい結果が得られなくなる場合があるのでは?」 って言ってるんだと俺は推測する。 JISとかユニとかの知識が乏しいので、俺には実際どうなのかはわからんが。
631 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 04:33:14 ] 誰も>>585 のコード見て苛つかないの? 同レベルだとみなされかねないし... 常連回答者だったら清書したくならないか?
632 名前:622 mailto:sage [2010/02/13(土) 05:17:54 ] んじゃ、マクロを大文字に修正 #n s/v(\(.\))/V(\1)/g s/swap/SWAP/g s/w\([^h]\)/W\1/g p
633 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:50:31 ] しかしこういうビット演算は今までまったくやったことが無いので、 回答者のみんながホントスゲーんだなと分かる。 >>625 さんのようなバケットソートぽいのを自分でも書こうと思ったが、 まったく書けなかったのが辛いところ。
634 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 12:54:49 ] >>633 まずは愚直なコードからでもいいから一歩を踏み出す事が大事。
635 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:42:25 ] >>555 たぶんできてるはず。570のインスパイヤ #include <stdio.h> #include <stdlib.h> int compareInt(int * left, int * right) { return *left - *right; } FILE * OUT; int length = 3, * ans, * vals; void createSwitch(int current, int * vals) { int i; if (current == length) { for (i = 0; i < length; i++) ans[i] = vals[i]; qsort(ans, length, sizeof(int), (int(*)(const void*, const void*)) compareInt); fprintf(OUT, "printf(\""); for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, " "); fprintf(OUT, "%%d"); } fprintf(OUT, "\\n\", "); for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, ", "); fprintf(OUT, "%d", ans[i]); } fprintf(OUT, ");\n"); return; } fprintf(OUT, "val = getchar() - '0';\ngetchar();\nswitch (val) {\n"); for (i = 0; i < 10; i++) { vals[current] = i; fprintf(OUT, "case "); fprintf(OUT, "%d", i); fprintf(OUT, ":\n"); createSwitch(current + 1, vals); fprintf(OUT, "break;\n"); } fprintf(OUT, "default:\nputs(\"input error\");\nreturn 1;\n}\n"); } int main(void) { OUT = fopen("shukudai555.c", "w"); vals = (int *) malloc(sizeof(int) * length); ans = (int *) malloc(sizeof(int) * length); fprintf(OUT, "#include <stdio.h>\nint main(void) {\nint val;\n"); createSwitch(0, vals); fprintf(OUT, "return 0;\n}"); return 0; }
636 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:44:07 ] C言語の宿題と聞いて飛んできました。
637 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 20:28:20 ] >>629 @Aは、環境が書いてあるから、intを4bytesとして扱ったりポインタとして扱ったりの環境依存コードがかけるという解釈なんだろうか。
638 名前:568 mailto:sage [2010/02/13(土) 20:45:46 ] >>571 ありがとうございました。自分今のところFORTRANしか 組めないんでFORTRANに移植するのやってみます。
639 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:33:20 ] >>635 すげ〜 といいたいところだが>>584 と同レベルかそれ以下である ということを示していない気がしないでもない
640 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:40:48 ] >>555 >>570 をマクロで見やすくしてみた ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10525.c
641 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:14:51 ] うむ。 マクロを使うとここまで短く出来るんだな。 行数で稼いでいるプログラマは犯罪的だ という教条の根拠か... しかしこれは逆に言えば、マクロを使うことが 禁止された時、それを読む人が地獄の責め苦 を受けることをまた意味しているとも言えるなw
642 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:42:56 ] >>612 を改良した。 ・入力する値を5つに勝手に変更。この方法だと6つ以上は俺には無理だな・・・ ・マクロの使用で見やすくした。 ・範囲外(全角文字も含む)が入力されても、問題なく再入力を促すのを確認。(01や09は範囲外としている) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10526.txt
643 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:50:52 ] >>641 コードのアセンブリ(実行最小単位)に対する圧密 度はC言語の出身地であるシステム記述の分野 では非常に重要な評価ポイントらしいね その世界ではコードは圧密に書けば良いというもので もなく逆に極端に希薄に書けば良いというものでも なく結構奥深いらしい。 それにしても>>584 と>>640 の例は同じ記述が書き 方によって極端に変わる良い例なんだろな
644 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 01:32:40 ] >>640 おみごと
645 名前: ◆/91kCCQXBo mailto:sage [2010/02/14(日) 12:09:11 ] 555 たぶんできてるはず。570のインスパイヤ >>639 >>635 のを借りて見た目I/Oを改良 #include <stdio.h> #include <stdlib.h> FILE *OUT; int length = 3, *ans, *vals; int compareInt(int *left, int *right) { return *left - *right; } void createSwitch(int current, int *vals) { int i; if (current == length) { for (i = 0; i < length; i++) ans[i] = vals[i]; qsort(ans, length, sizeof(int), (int(*)(const void*, const void*)) compareInt); fprintf(OUT, "puts(\""); for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, " "); fprintf(OUT, "%d", ans[i]); } fprintf(OUT, "\");"); return; } fprintf(OUT, "while((val=1, printf(\">\"), scanf(\"%%d%%*c\", &val)) != 1 || val<1 || val>10) {\n" "\t\t\t\t\tprintf(\"ERROR\\n\"); if(val==1) scanf(\"%%*s\");}\n\tswitch (val) {\n"); for (i = 0; i < 10; i++) { vals[current] = i + 1; fprintf(OUT, "\t\tcase "); fprintf(OUT, "%d", i + 1); fprintf(OUT, ": "); createSwitch(current + 1, vals); fprintf(OUT, " break;\n"); } fprintf(OUT, "\t}\n\t\t\t"); } int main(void) { OUT = fopen("shukudai555.c", "w"); vals = (int *) malloc(sizeof(int) * length); ans = (int *) malloc(sizeof(int) * length); fprintf(OUT, "#include <stdio.h>\nint main(void) {\n\tint val;\n\t\t\t\t"); createSwitch(0, vals); fprintf(OUT, "return 0;\n}\n"); /* return 0; */}
646 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 12:45:49 ] あのー。誰も突っ込まないので俺が言う。 >>555 > 但しmain関数内ではint変数一つだけが使えるものとします。 > またmain関数の再帰呼び出しも出来ません。 > (main関数の引数、argc,argvをint変数として使用することも勿論禁止します) > main関数のみで構成されるプログラムとして下さい。 お前一人だけどうあがいても落第だよw
647 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 13:36:52 ] ソースを生成するんだろうけど、出てくるのはつまらなそうだね。 これなら、秀丸のマクロでいいんじゃね。
648 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:47:49 ] >>555 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10527.c
649 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:57:40 ] なんか、問題自体が不毛だよなぁ。
650 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:00:58 ] とんち合戦の様相を呈してきたな。
651 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:06:28 ] いやむしろIOCCC2ch版というべきか
652 名前:633 mailto:sage [2010/02/14(日) 16:09:58 ] あ、思いついちゃった。 >>648 さんの方法で、データを0-9で保存して1-10と表示させると、 INT_MAX.to_s.sizeの個数の数を扱えそう。 けどソートはどうするんだろうw
653 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:53:38 ] てか依頼者が消えた問題にいつまでも拘泥するのは 宿題スレのマナー違反
654 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 11:25:56 ] 【質問テンプレ】 [1] 授業単元:データ構造とアルゴリズム [2] 問題文(含コード&リンク): 生徒数1000人分の学力テスト(五教科)の得点データが有る。ここで、任意の生徒Aと 得点の傾向が一番近い生徒の番号を高速で抽出できるようデータ構造を組みなさい。 (合計点が近い、ではなく、各教科の得点の傾向が大事のようです。) [3] 環境 [3.1] OS: WinXP [3.2] コンパイラ名とバージョン: VC++ [3.3] 言語: どちらでも可 [4] 期限: 無期限 [5] その他の制限: 無し 生徒のデータはstruct seito{int tensuu[5];};こんな感じです。 単に全部検索して得点差を計算したのを提出したらダメと言われました。 こういう問題を解く定石のようなものがあるのでしょうか・・・ 先輩方、よろしくお願いします。
655 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 11:34:10 ] >>654 簡単に考えれば、 0-20をE 21-40をD 41-60をC 61-80をB 81-100をA みたいに評価をつけて、同じものを抽出すればいい気がする。 もうちょっと細かくランク分けしたほうがいいかな
656 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 12:33:42 ] >>654 プログラムを組む以前の問題として、どうゆう回答をすれば先生が満足するのか そこがイマイチ不明だ・・・。 傾向が似ているかどうか、というだけなら、各教科の得点を偏差値に変換して、 5次元空間上にプロットした時に、任意の生徒Aとのユークリッド距離が 最も近い生徒を選べばいい気がする・・・。 仮にそれでいいとして、高速抽出するためのデータ構造を組め、ってなると 要は任意の生徒Aに最も近い得点の傾向の生徒Bを予め計算しておいて AとBを対で持たせておけばいいとか、そうゆうことかな?
657 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 12:44:28 ] モデル化してそれに最適なデータ構造考えろと言ってるんだろ。 モデル化の部分はこれまで授業で触れられていると思う。
658 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 13:54:43 ] >>654 皆全員0点だった場合は誰を選べばいい?
659 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:14:59 ] 誰でもいいんじゃね? みんな一緒だし。
660 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:16:28 ] 656 のやり方で、データを読み込むとき予めソートしておくというのはどう?
661 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:17:26 ] 日本語おかしいな。 データを読み込むときソートした状態にスレばいいんじゃないか?
662 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:19:12 ] >>654 極端な例の場合 ある生徒の得点分布が(50,51,52,53,54) の場合(52,52,52,52,52)よりも(95,96,97,98,99) の人のほうを選出したほうがいいの?
663 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 15:04:57 ] (0,20,40,60,100)のほうが近いとオモ
664 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 15:42:32 ] 単に差を出したらダメって言ってるんだから、{52,52,52,52,52}だろうよ
665 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 17:17:46 ] >>654 「傾向が近い」というのは、例えば A (70,63,77) B (70,70,70) C (90,81,99) だと、A≒B じゃなくて A≒C、という解釈 ・・・でいいのか?
666 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 17:32:36 ] 1) 合計の偏差値を取り、Aに近い10%を抽出候補を絞る 2) 五科目点数の総当たりの大小比較を行い、Aと共通なら1異なったら0として その合計が最大のBを選出。 3) Bが複数出たらさてどうするか。
667 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:21:10 ] 取り敢えずまだまだC言語で純正に一気に解決終了! って出来る問題じゃなさそうだな 数学の複素多様体の知識とかデータベースの知識も要りそう な問題で他のシステム(殆どが固有の言語を持つ)との 連携も要るような..
668 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:23:34 ] [4] 期限: 無期限 てのも何かコエーよw
669 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:29:58 ] foreach(生徒 in 生徒たち) { if(指定生徒 == 生徒) continue; match_average = 0; for(科目番号 = 0; 科目番号 < 5; 科目番号++) { diff = 生徒の得点[科目番号] - 指定生徒の得点[科目番号]; match_average += diff * diff; } if(best_match_average > match_average) { best_match_average = match_average 傾向が似ている生徒 = 生徒 } } 考え方は、これでいいのかな? match_average は、ユークリッド距離とか平均二乗偏差を意味する数値だけど、 あえて平方根をとらないことが高速化になってるしw
670 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:34:10 ] >>667 問題によっては複数の支援ツールからなるソリューションパッケージは あっても単独ソルバーアプリにまではとても出来てない問題って沢山あ るからな
671 名前:669 mailto:sage [2010/02/15(月) 18:56:34 ] >>654 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10528.zip うpしてみる
672 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 19:22:00 ] 俺だったら「極座標」を使い、生徒の得点を中心からの距離と 緯度、経度とかの角度で表す。 「成績球」を半径方向と角度方向の非合同領域に分割し 生徒がどこに所属しているかで似ているかどうかを決める。 データ入力の段階で所属を決めるから、検索はデータの1回の 通読だけで至って単純。 だが領域の取り方が相当恣意的になりデータの分布が事前に 分かっていたら結果のコントロールもかなり出来るんで 敢えて書くべきコードじゃないと思うんでパス (実際の問題では球の中に決して一様に分布しないんで この方法は不適)
673 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 20:02:38 ] >672 出だしと、まとめが矛盾してるぞ? まあ、つべこべ言わずにコードを書いてみろ。 言ってることが難しすぎて俺にはトンと理解できねえ、 どんなコードになるのか興味あるわ。 書いてください、お願いします。
674 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 20:12:17 ] >>670 CとかC++とかJavaがソリューション系では好かれない理由は 書くべきプログラムは音楽みたいにmainで始まりトップダウ ンに一気に終了ってパターンであるという固定観念を印象づ けるからじゃね?ソリューション系ではどっちかというと 「絵」とか「図」を書くに近いんで。 多くのC/C++ Javaプログラムの実際はそうではないことは ベテランにはわかってるんだが、教育プロセスにおいて OJTで新人に教える時にコード字面から植え付けられる先入観が 結構邪魔してると認識されることが多いんじゃないかと
675 名前:671 mailto:sage [2010/02/15(月) 20:25:39 ] >651 問題をよく読んでいなかった、データ構造を組まなきゃいけないのね。 0点だわwww
676 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 22:13:02 ] >>654 類似度は得点を正規化して内積を取ったものとしている kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10529.c
677 名前:676 mailto:sage [2010/02/15(月) 23:03:19 ] >>676 一番近いものだけ分かればいいから qsort じゃなくてもよかった
678 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 23:25:17 ] 依頼者(今回は質問者かな?)のレベルに追いついたことはわかったw
679 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 01:41:40 ] >>615 問題を解説してくれたまへ ここまでで挫けた ステップ1 double v(double x){ return 4*(pow(x, -12)-pow(x, -6)); } v(x)==εn (但しεn=-0.75) となる二つの x を二分法で求めよ ステップ2 ステップ1 で求めた xin xout を用いて次の積分を計算せよ s(εn)=2*γ*∫sqrt(εn-v(x))dx ステップ3 ステップ2 の結果を用いて n を求めよ ステップ4 ??? ステップ1〜4 を使って γ の値を変化させ…頑張れ
680 名前:デフォルトの名無しさん [2010/02/16(火) 01:59:58 ] ちょっと関係ないかもしれないんだが、今の時期って大学とか休みだから、今ある質問って何の宿題? 長期休暇とかの?それとも高校のか?
681 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 03:16:24 ] 大学院の専門分野での研究課題や入試問題を貼ってて、その後何も反応が 無い依頼は釣りだと思って、スルーしてたんだけど(´・ω・`) チガウノカナ?
682 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 04:12:58 ] >>681 ?
683 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 05:08:42 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10530.zip [3] 環境 [3.1] OS: WindowsVista [3.2] Visual C++ 2008 [3.3] 言語: C++ [4] 期限: 2月17日まで [5] その他の制限: 特になし よろしくお願いします。
684 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 07:39:27 ] >>681 研究室レベルのものはあったが(>>615 ) 入試はみかけない。
685 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 08:02:15 ] 実際に解く内容は簡単だけど 問題を理解するのが難しいw
686 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 08:57:46 ] >>684 例えば >>554 とか、プログラム作成を除けば、東京大学大学院の 入試問題↓とほとんど同じだったりするからさ。 www.i.u-tokyo.ac.jp/edu/course/ci/pdf/2005_8_ci_istmajor_all.pdf 普通の回答依頼かとも思ったんだが、真面目に答えて後釣り宣言されるのも アレだから、微妙に情報系を逸脱する宿題はスルーして様子を見てることにしてる
687 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 09:58:04 ] >>684 >>615 は、基礎的な数値計算だろ。学部1年生レベル。
688 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 10:04:02 ] 数式こそ長くて複雑だが、やってることは方程式の解を求めることや数値積分だ。 2分法、セカント法、シンプソン公式を使えばいい。
689 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 14:48:36 ] >>676 これは>654の求めてるものと違うんじゃないかな? 『使いまわしの効かない検索用情報』の収集を フルスキャンで行っているので、力まかせの探索にしかなってないよね。
690 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 16:36:07 ] >>689 一応正規化した段階の情報だけは使いまわせる
691 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:40:44 ] >>654 >>676 の改造版 先に全ての生徒間の類似度を計算してみた 予め O(N^2) のコストがかかっているので、検索回数が N に比べて十分に多いときだけ有効 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10531.c
692 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:45:15 ] データ数が増えた時のパフォーマンスの低下率 条件付きUPDATE処理に置ける実更新率 こういった観点からデータ構造に見直しが入る やりかたは一つじゃなく、データの分布に 前提条件を置くことによって、相当のパフォーマンス 改善になるが、汎用性と信頼性は犠牲になる
693 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 19:02:05 ] k-dimension tree の出番ですか。
694 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 20:36:27 ] >>693 ある範囲内をすべて列挙するのは簡単そうだけど ある場所の近所だけを調べるってのは簡単なの?
695 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:44:01 ] C言語固有の問題では無さそう。 データベース板か数学板で聞いてからの ほうが良さげ。てか依頼者はもう見てないのか?
696 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 03:38:52 ] >>654 傾向の近さの指標として相関係数を使用。gccを使用しているので、VC++では改変が必要かも。 また高速化の余地は十分あると思います。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10532.zip
697 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 05:59:24 ] こういう問題は、「相関度」は外部関数としてブラックボックス として扱うんじゃね?
698 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 06:09:13 ] 相関度に最適なデータ構造の設計も課題なのだが。 そうだ、これもブラックボックスにしよう。
699 名前:デフォルトの名無しさん [2010/02/17(水) 06:34:49 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10533.txt [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (VC8) [3.3] 言語: (C++) [4] 期限: ([2010年2月17日12:00まで] 非常に短い期間を設定していますがあくまで希望納期です
700 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 10:01:02 ] >>699 無料デバッガ募集でつか?(・∀・)ニヤニヤ
701 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 10:04:06 ] 無料デバッグしてやるでつよ(・∀・)ニヤニヤ m_SumList.AddTail((void*)&List1); m_SumList.AddTailに渡すのは(void *)(CStringList **)&List1で本当にいいんでつか?
702 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 11:34:42 ] >699 いくらでも生じる可能性はある それにしてもC++で(void *)とか何考えているんだ
703 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:03:40 ] funkてw
704 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:52:59 ] >>697 そうだね。だが難しい。相関度に適当な仮定を入れないと 無理だろ >>698 は回答として完全にナンセンスだが、それ以前に 問題も曖昧過ぎかもね。
705 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 21:09:00 ] [1] 授業単元:C [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10535.c [3] 環境 [3.1] OS: 問わず [3.2] Cがコンパイルできれば・・・ [3.3] 言語: C [4] 期限: 今日 [5] その他の制限:左側の要素をしきい値としたクイックソートです.閾値と等しい場合は右側へ お願いします
706 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:00:48 ] >>697 この問題の場合は高速で処理できることも重視されてるようだから、 ブラックボックス化しても処理速度が同等以上ならそのほうが良いけれど、 そうでなければ、どちらがいいかは一概には言えないよ。
707 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:32:12 ] >>705 今日迄というのはいくら何でも んG
708 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 16:28:57 ] [1] 授業単元: 期末レポート [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10536.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) FreeBSD バージョンは知りません [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc バージョンは知りません [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2月末日まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) C言語どころか、UNIXマシンの操作もおぼつきません。急ぎませんので 片付けて頂ければうれしいです
709 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:06:42 ] >>708 int binarycopy(FILE *, FILE *); int main(int argc, char **argv){ FILE *src, *dest; if (argc != 3) return -1; src = fopen(argv[1], "rb"); if(src == NULL) { fprintf(stderr, "%s が開けない\n", argv[1]); return -1; } dest = fopen(argv[2], "wb"); if (dest == NULL) { fprintf(stderr, "%s が作成できない\n", argv[2]); return -1; } if(!binarycopy(src, dest)) { remove(argv[2]); fprintf(stderr, "複製に失敗\n"); return -1; } fclose(src);fclose(dest); return 0; }
710 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:07:25 ] >>708 続き。 int binarycopy(FILE *s, FILE *d) { #define BUFFSIZE 256 char buff[BUFFSIZE], size = sizeof (char); size_t n = 0, total = 0, buffsize = BUFFSIZE; #undef BUFFSIZE for (;;) { n = fread(buff, size, buffsize, s); n = fwrite(buff, size, n, d); total += n; // エラーが生じた場合や、end-of-file(ファイルの最後)に達した場合、 // 返り値は指定した個数よりも小さい値(またはゼロ)となる。 if (n == 0 || n < buffsize) break; } return total; }
711 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:35:42 ] >>699 いf(pぃst2){ POSITION pos2 = plist1->GetHeadPositon(); CString str = plist1->GetNext(pos2); }
712 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:37:02 ] >>711 pぃst2じゃねーや1だ
713 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:26:05 ] HPはどのページも3クリック以内でたどり着けるのが良いとされています。 さて問題です。どのページからも、すべてのページへこの条件を満たすようにするには 各ページにリンクはいくつ必要でしょうか。 link(n)をページnのリンク数としたとき min { link(n) } を決定するという問題です。
714 名前:713 mailto:sage [2010/02/19(金) 15:27:42 ] ページ数は、1000から1万の任意の値が与えられる物とします。
715 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:38:17 ] min(Σlink(n))じゃなくて? インデックスページを作り、 他のページはインデックスページへ1つのリンクを持てば どのページへも2クリックで行けるから min(link(n))はインデック以外のページすべて=1
716 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:43:44 ] ∩★テンプレに即していないんで★雑談扱いとさせて頂きます★∩
717 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:53:55 ] min(max(link(n)))
718 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:59:21 ] ページのリンクの最大数を、最も小さくするようにするってことでした。
719 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:03:43 ] 面白いけど奥深すぎ
720 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:16:00 ] >>654 クラスタリング k-meansでググれ
721 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:10:58 ] >>713 ページ数Nに対して 2√N くらいじゃないかね 戦略: ・全部のページを同じ大きさのm個のグループに分ける(各グループには N/m ページある) ・各グループにインデックスページを作り、 グループ内の他の全てのページと相互リンクする ・各グループのインデックスページを全て相互リンクする ・任意の2ページ間は多くても 自グループのインデックス→目標グループのインデックス→目標ページ の3クリックで移動できる 一番リンクの数が多いのは各グループのインデックスページで、 max(link(n)) = (インデックス間の全結合) + (グループ内のリンク) ≒ m + N/m これが最小になるのは m=√N のときで min(max(link(n))) ≒ 2√N
722 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:29:14 ] >>721 を書いてから半分にできることに気づいた 戦略: ・全部のページを同じ大きさのm個のグループに分ける ・グループ内のページは全て相互リンクする ・グループ内の(m-1)個のページにそれぞれ担当のグループを割り当て、 グループ間の担当のページ同士を相互リンクする ・任意の2ページ間は多くても 自グループの担当ページ→目標グループの担当ページ→目標ページ の3クリックで移動できる このとき、リンクの数が一番多いのはグループ間を繋ぐ担当のページで、 max(link(n)) = (グループ内の全結合) + (担当グループへのリンク) = N/m-1 + 1 最も効率が良くなるのは、グループ内の全てのページが他のグループの担当ページになるとき、 つまり N/m = m のときで、そのときm = √Nであって、 min(max(link(n))) = √N。
723 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:41:52 ] 独り言を書くのは俺も含めて勝手だが... >一番リンクの数が多いのは... と勝手に決めて、それが最小になるのは... とする論法は頂けませんなw 希望的見積もりというのなら分かるが... このスレで常連回答者やってる人どんな質問にも 答えがあって、答えなければいけないんだと 思い込む空気が醸成されておりそれに毒されてしまっ てるかもしれないことに常に気をつけなければならないね。 プログラミングの場合は、数学の問題と違って 必ずしも正解があるとは限らない対象も扱わざるを得ない 場合が多くて大変だからこそ...
724 名前:722 mailto:sage [2010/02/20(土) 01:51:03 ] >>723 >>一番リンクの数が多いのは... >と勝手に決めて、それが最小になるのは... >とする論法は頂けませんなw ごめんなさいごめんなさい。>>721 の勢いで適当なこと書きました。 ちゃんと計算したら max(link(n)) ≒ N/m + m/(N/m) で、 min(max(link(n)) ≒ 1.89*(N)^(1/3) くらいでしたorz というかC/C++の宿題じゃないな、その点についても謝る
725 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:56:24 ] 論点がずれてた件… 「この戦略のもと」ってちゃんと書かないといけないな 採った戦略が厳密に最適かは分からんが、 それでも準最適な戦略を考え出すのがプログラムに必要な能力
726 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 02:03:49 ] >>713 最適解かどうかは不明だけど、実現可能な解 #include<stdio.h> #include<stdlib.h> int max_min(long n) { long i, j; if(n==1) return 0; if(n<=4) return 1; for(i=0;;i++) { for(j=1;j<=i;j++) { if(j*(i-j+1)*(i+1)+j>=n) return i; } } return -1; } int main(int argc, char *argv[]) { int n=1000; if(argc==2) n=atoi(argv[1]); printf("%d\n", max_min(n)); return 0; }
727 名前:726 mailto:sage [2010/02/20(土) 02:32:46 ] >>726 間違ってたorz
728 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 02:53:03 ] 頭の中のハイパーリンクも含めたらそうなるなw
729 名前:726 mailto:sage [2010/02/20(土) 03:03:20 ] >>713 これで実現可能になった…はず #include<stdio.h> #include<stdlib.h> int max_min(long n){ long i, j; if(n==1) return 0; if(n<=4) return 1; if(n<=7) return 2; for(i=2;;i++){ for(j=2;j<=i;j++){ if(j*(i-j+1)*(i-j+1)+j>=n){ return i; } } } return -1; } int main(int argc, char *argv[]){ int n=1000; if(argc==2) n=atoi(argv[1]); printf("%d\n", max_min(n)); return 0; }
730 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 03:23:33 ] 正解と汚解ってかW >>555 に対する>>570 とかの解答とかな
731 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 04:06:13 ] >>615 codepad.org/R1c1NLXp γ=100を計算するところまで。解析解との比較は面倒だからやってない。 x_in、x_outが単調に増減してるからそんなに間違ってないはず。 γ変えて議論するのは自分でやってくれ。γは128行目
732 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 04:54:56 ] スレ違いだけど解きたくなっちゃうのは仕方ないよな
733 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 05:01:57 ] 解くべきはまずはその問題の出所。というよりも問題意識に共感できること。 そして実は対象に問題はなく真の問題は解きたいと思う汝自身に発している かも知れないということも考えると間違いは少ない。 以上チラ裏
734 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 06:13:09 ] >>713 pc12.2ch.net/test/read.cgi/tech/1261443439/740
735 名前: ◆/91kCCQXBo mailto:sage [2010/02/20(土) 10:52:17 ] pc12.2ch.net/test/read.cgi/tech/1261443439/739 #include<stdio.h> int main(void){ int n,m,i,j; float ans; /* 解答 */ printf("ページ数:"); scanf("%d%*c", &n); m=n; ans = (n+1)/3.0; if((n=ans) != n) n++; printf("\n%d[page] %d[link/page]", m, n); /* 結果 */ for(i=1;i<=m;i++){ printf("\n%d:",i); for(j=0;j<n;j++){ printf("%d ", (i + j*(n-1))%m+1 ); } } puts(""); return 0; }
736 名前: ◆/91kCCQXBo mailto:sage [2010/02/20(土) 11:05:35 ] なんか、今見たら違ってる。
737 名前: ◆/91kCCQXBo mailto:sage [2010/02/20(土) 13:18:05 ] もっと減らせそう #include<stdio.h> int main(void){ int n,m,i,j; float ans; /* 解答 */ printf("ページ数:"); scanf("%d%*c", &n); m=n; ans = (n+1)/3.0; if((n=ans) != n) n++; printf("\n%d[page] %d[link/page]", m, n); /* 結果 */ for(i=1;i<=m;i++){ printf("\n%d:",i); for(j=0;j<n;j++){ printf("%d ", (i + j*3)%m+1 ); } } puts(""); return 0; }
738 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:17:55 ] >>737 >>722 のアルゴリズムの場合 ページ数 20 のときリンクの最大数は 4 これより減ることはあっても増えるのは無しだろう 1 : 2 3 4 5 2 : 1 6 7 8 3 : 1 2 9 10 4 : 1 2 11 12 5 : 1 2 13 14 6 : 1 2 15 16 7 : 1 2 17 18 8 : 1 2 19 20 9 : 1 2 10 : 1 2 11 : 1 2 12 : 1 2 13 : 1 2 14 : 1 2 15 : 1 2 16 : 1 2 17 : 1 2 18 : 1 2 19 : 1 2 20 : 1 2
739 名前:738 mailto:sage [2010/02/20(土) 14:50:48 ] >>722 のアルゴリズムじゃねーw
740 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 21:27:37 ] 実際にリンク組んで確かめるプログラムはないんですか。
741 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 23:30:28 ] ていうか、あってるかどうか確認するプログラムって、オーダはどうなる? ページ数をN、最大クリック数をCとしたら、NCでできるのか?
742 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 00:10:35 ] U個のユニットに分け、ユニットをそれぞれG個のグループに分ける。 各々のグループにはn枚目のページがあるとする。 また、n >= Uという条件をつける。 このとき、総ページ数N = U*G*n まず、グループ内のn枚のページで、相互リンクを貼る。 相互リンクの数は (n-1)個 次に、グループ内のm枚目のページにm番目のユニットの各々のグループ内のページ(どれでもいい)各1枚へのリンクを貼る。 グループ外リンクの数は、G個 こうすると、(ユニット, グループ, ページ) = (u1, g1, p1)から(u2, g2, p2)へ行くのに、最大でも (u1, g1, p1) -> (u1, g1, u2) -> (u2, g2, ??) -> (u2, g2, p2)の3クリックで行ける。 また、このとき合計リンク数はG + (n-1)個 G + (n-1)が最小となり、N = U*G*n, n >= Uを満たす数字を考えると ・まず、Uを増やして数を稼ぎたいので、U=n ・よって、N=G*n^2を満たし、G+(n-1)が最小となるn, Gを求める ・計算の結果、それはn^3=2N, G=n/2のとき
743 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 00:19:18 ] 例えば、64ページあるとき、 Unit 0{ Group 0{ Page 0 = [(0,0,1), (0,0,2),(0,0,3),(0,1,0)], Page 1 = [(0,0,1), (0,0,2),(0,0,3),(1,0,0),(1,1,0)], ...} Group 1{ Page 0 = [(0,1,1), (0,1,2),(0,1,3),(0,0,0)], Page 1 = [(0,1,1), (0,1,2),(0,1,3),(1,0,0),(1,1,0)], ...} } Unit 1{ Group 0{ Page 0 = [(1,0,1), (1,0,2),(1,0,3),(0,0,0),(0,1,0)], Page 1 = [(1,0,1), (1,0,2),(1,0,3),(1,1,0)], ...} Group 1{ Page 0 = [(1,1,1), (1,1,2),(1,1,3),(0,0,0),(0,1,0)], Page 1 = [(1,1,1), (1,1,2),(1,1,3),(1,0,0)], ...} } ... になって、グループ数=2, ユニット数=ページ数=4で、最大リンク数は5
744 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 00:57:26 ] ヒューリスティックアプローチを探したいものだが C/C++言語ではやめたほうがいいかも VM上で実行できる処理系でないと カーネルコードが書ける処理系ではお勧め出来ない
745 名前:738 mailto:sage [2010/02/21(日) 02:02:28 ] >>738 のアルゴリズムで解いた結果は 総ページ数 1000 のとき、最大リンク数 18 総ページ数 10000 のとき、最大リンク数 40 合ってるかどうか未確認 詳細内容 50kB ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10538.lzh
746 名前:デフォルトの名無しさん [2010/02/21(日) 08:46:43 ] [1] 授業単元: UNIX C Programming [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10541.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Mac OSX 10.5.8 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 4.0.1 [3.3] 言語: どちらでも可 [4] 期限: 2010年2月24日夜7時まで [5] その他の制限: 可能であれば強引な方法でも構いません。 上記リンクはCで書いてありますが、C++でも構いません。 何卒よろしくお願いします。
747 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:06:11 ] >>713 です。みなさんサンクスです。動かして確認してみます。
748 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:08:02 ] >>745 1000個のほうはあってたよ。 10000個のほうは、おれの作った糞ツールでは、検証不能w よかったらソースうpしてくれないか? ちなみに>747とは別人です。
749 名前:738 mailto:sage [2010/02/22(月) 00:03:29 ] >>713 >>748 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10543.c 6割近く何も指してないのが気に入らない
750 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:03:49 ] >749 ありがと。 ここにあがってる回答はどれも不正解だった。 自分も正解はわからないけど、手計算で次の最適解を発見した。 ページ数 8 の答えは 2 ページ数 12 の答えは 3 ページ数 8 の最適解の例 1: 2 3 2: 4 5 3: 6 7 4: 8 1 5: 2 3 6: 4 5 7: 6 7 8: 8 1
751 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 10:46:32 ] floor(n^(1/3))でいけそうなものだけどだめなのかね
752 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 10:48:17 ] ceilだねごめん。
753 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:59:14 ] リンク3、リンク4で賄える最大ページ数を求める方が良いと思う。 それが決まればその表引きで求まる。
754 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 15:17:41 ] どの2点とっても、3つ以内の矢印でつながってるってことだろ。 総当たりやると矢印生成でかなり時間かかるな。 それを全ての2点でつながるかチェック。このチェックは時間かからないが、塵も積もれば山となる。
755 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 15:24:23 ] 同じ場所へ複数リンクが付くと無駄なので、最大リンク3なら 初めの方はリンクがかぶらないように配置していいはずだな。 リンク3なら、総数が3*3*3=27より上には出来ないから、この範囲で増減しながらしらみつぶしでやるか。 1: 2 3 4 2: 5 6 7 3: 8 9 10 4: 11 12 13
756 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 15:39:56 ] このスレでちょくちょく出る宿題のテーマの道具 使えば最適解とは違うかも知れないがそれに肉薄 するのは簡単に出せるだろ? 但しヒューリスティックス系はC/C++では 書かないほうがいい。個人でやるのは止められないが ネット公開するのはやめたほうがいい。今時。
757 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 15:42:47 ] 1000は18で出来るらしいが17以下の解見つけた人
758 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:25:32 ] >>746 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10545.txt 汚くなってしまいましたが、どうぞ。
759 名前:548 mailto:sage [2010/02/22(月) 16:53:39 ] >>579 >>580 無事提出できました。 ありがとうございました。最初は どちらのほうを参考にさせてもらえ ばよいのか悩みましたが、結局 友達と相談しながらやったらみなさんと 同じ結果が出るようになったので そちらをだしました。
760 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:13:50 ] >>757 1: 1 2 3 4 5 6 7 8 9 10 2: 11 12 13 14 15 16 17 18 19 20 以下略 金太郎飴方式恐るべし
761 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:36:20 ] 金太郎飴方式 yowa
762 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:38:26 ] >>760 どこが金太郎飴かわからんけど、その調子でもう少し書いてみようか
763 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:46:01 ] 金太郎飴方式 towa?
764 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:49:27 ] ろだで10539で質問した者ですが、また質問です。入門書などによくある*印でピラミッドを造るプログラムを作ったのですが、10行目と11行目の部分は削除しても同じように動作しました。 なぜでしょうか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10546.c
765 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:54:01 ] >>764 バイナリが更新されていないからじゃないかな
766 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:57:07 ] >>765 どういう意味なのでしょうか?
767 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:57:42 ] >>762 問題によっては最適解近辺は金太郎飴の断面みたい な状況であることを原理とした探索法のことではな いかと想像
768 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:03:46 ] >>766 修正前の実行ファイルを動かしたまま ソース修正 → コンパイル → リンク (で、実行ファイルが上書きできなくて エラー) → 再実行 →あれ? 古いままの挙動じゃん → 実行ファイルのタイムスタンプ確認 アチャー
769 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:06:04 ] >>768 試してみましたが、それはないと思います。実際自分が作ったものは10.11行があっても動きますが、実際本に書いてあるのは それの10,11行目がないものが書いてありました。
770 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:08:33 ] >>768 申し訳ありません。もう一度試してみたらうまくいきました。どうやらその行をctrl+xで切り取ったあと再び貼り付けてしまったようでした。 本当に申し訳ありませんでした。
771 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:09:20 ] 俺試してみたけど削除したらピラミッドなんて出てこんよ
772 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:12:09 ] >>764 こちらで試したところでは、10行目、11行目を省くとピラミッドにはなりませんでした。 段数を入力してください。(0から40まで) 5 * * * * *
773 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:17:30 ] >>770 >うまくいきましたというのは768さんのいう通りということです。 すいません。
774 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:22:32 ] つまり?
775 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:24:16 ] >>774 ?
776 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:24:51 ] >763 どこを切り取ってみても、数字がおなじ規則で並んでいる。 >760 の 1 の例だと 1 クリック目 9 種類のページにアクセス可能 2 クリック目 9 * 10 種類のページにアクセス可能 3 クリック目 9 * 10 * 10 種類のページにアクセス可能 もともといたページを含めて、ちょうど千種類のページにアクセスできる。 これは、どこを切り取ってみても、同じように数字が並んでいるので、 1 以外の数字についてもあてはまる。 規則的にならんでいるので、検証するにしても、 1 だけ検証できれば全部OKみたいな感じ。 1クリック目の選択肢が 9 種類しかなくて、n^3 の爆発力をかなり損しているけど ぎりぎり届いてた。n^3 の爆発力が重要な問題だった。
777 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:25:41 ] 数学的なことはわからんけど、こんな法則をみつけた。 a = pow(N, 1/3) /* ページ数の3乗根をとる */ min = floor(a) /* 天井とそこをとる */ max = ceil(a) min = pow(min, 3) /* 3乗して元に戻す */ max = pow(max, 3) if(min < N && N <= max) { /* レンジに収まってれば */ printf("答えは %f だよ", ceil(a)) } else { printf("答えは %f だよ", floor(a)) }
778 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:37:05 ] >>750 のように一つずつずらしていけば、3クリック以内で到達できるようにできるってことか。
779 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:44:05 ] 1000なら10個でいいってこと? 1000から999へいけるか。 1000 -> 1(2-11) -> 11(102-110) -> 110で最大到達地点は110では。
780 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:46:45 ] 間違えた。一手目が1だけではない。再考する。
781 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:56:59 ] 1から初めて全部いけそうだな。他の数字も純粋しているだけだから同様ってことか。 1 2- 2 12- 3 22- ・・・・ 10 92- 11 102- 12 112- ・・・・ 100 992- ・・・・ 998 972- 999 982- 1000 992-
782 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:59:44 ] >>776 9通りがよくわからなかったが今わかった。1は自分自身に向かわせてるからね。 2から初めて他所で自分自身に向かわなければこっちの方が効率良いはず。
783 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:02:36 ] 一番重要なことは、金太郎飴方式だと、 リンク先のユニーク性を簡単に確保できることだね。 N^3 + N^2 + N + 1 >= N この付近が最適解だってのはわかってたけど、 ユニーク性の確保が悩みの種だったし。 1クリック目のとび先と、2クリック目の飛び先がかぶってたら 大きなロスになるし。
784 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:52:22 ] max(links(n)) * Σlinks(n) これで評価してみれば?
785 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:16:13 ] N=8の時の金太郎飴状態なリンク例 1:4 7 2:1 7 3:1 6 4:7 5:1 6 6:1 8 7:5 8 8:2 3