[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 08/02 19:37 / Filesize : 264 KB / Number-of Response : 786
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 134代目



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/

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 が作成されました。おしまい。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef