C/C++の宿題片付けま ..
[2ch|▼Menu]
232:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/27 02:29:00
>>227
URLリンク(codepad.org)
左端の数字は元の行数。修正した行には/*修正*/
修正内容は
・後半のソートの呼び出しの引数が逆になっていたのを修正(26行目)
・ & を && に変更(42行目)
・ ++p などを p++ に変更(11,42-45行目)

N=10000だと表示がアレなんだがN=100くらいだとちゃんと表示される

235:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/27 02:31:52
>>233
bool even(int sc){
return (sc%2 == 0);
}

237:デフォルトの名無しさん
10/01/27 03:28:16
>>235
実行してみたんですが、できないんですが、どうしてでしょうか

238:デフォルトの名無しさん
10/01/27 04:37:48
>>237
「できないんです」 は禁句
何を期待したか、どんな操作をしたか、そしてどんな結果になったかの 3 点を書かないと
何が問題なのか見た人には分からない

239:デフォルトの名無しさん
10/01/27 07:51:08
>>230
ありがとうございました!

240:227
10/01/27 12:07:55
>>234
ありがとうございます。大変面倒な課題のほうたった2時間余りで
迅速にやって頂けて試験前なので助かりました。
(1月31日位になるかと思ってました)
実はもっと長いもの(数値計算関連で長さ約300行)も出てい
るので(そちらのほうは必須ではないですが試験が出来なかっ
た場合に提出していれば不可になる確率がずっと低くなるそうで)
そちらもやって頂けると非常に嬉しいのですがよろしいでしょうか?

241:147
10/01/27 13:09:03
147をどなたかお願いできないでしょうか?
よろしくお願いします。

242:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/27 13:38:14
>>238でしたすみません。

244:デフォルトの名無しさん
10/01/27 14:22:57
>>147
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

245:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/27 17:47:37
>>246
ありがとうございます!

248:デフォルトの名無しさん
10/01/27 17:55:11
>>234
よくこんな糞問題に手を出すなぁw

show()が2つあるのはソート前後の比較用でしょ
ソート途中を示すものじゃないと思うよ
N=10000でもエディタの設定で折り返しなしにすれば
見れないことは無いけど1行8000バイトだからひどいもんだ

249:デフォルトの名無しさん
10/01/27 18:02:03
>>242
main() を書きましたか?

250:デフォルトの名無しさん
10/01/27 20:23:38
[1] 授業単元:情報処理演習
[2] 問題文(含コード&リンク):
次のプログラムで作成される縞パターンを縦にした画像を作成するプログラムを作成せよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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:デフォルトの名無しさん
10/01/27 21:09:22
>>250
txtでうpしてるのに何でインデント潰すの?
必要なスペースまで潰すのは嫌がらせ?

//if(i>=75 && i<=125){
if(j>=150 && j<=250){ //元々の数字がマジックナンバーなので好きに替えてくれ

252:デフォルトの名無しさん
10/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
10/01/27 21:21:49
>>145
URLリンク(codepad.org)
期限切れでしたか。残念です。

254:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/27 21:35:57
依頼者が見てるか確認してから貼るのがマナーだよん
見てるかどうか確かめても返事がない場合や、見てそうにも
ない場合で、世間を騒がせたまま逃げ出した依頼者の尻拭い
をしたいという気持ち(大抵の場合は杞憂)でコードを貼る
場合はアンカーは>>1にしようぜ

256:デフォルトの名無しさん
10/01/27 21:43:16
>>252
スレタイ嫁
hello worldからやり直して貼り付けろカス

257:デフォルトの名無しさん
10/01/27 21:44:21
>>254
URLリンク(codepad.org)
問題自体は関数を実装せよ、ということでしたから、回答者は関数 score() だけを回答した(と思います)のですが、
実際に score() の動作を確かめたいというのであれば、こんな感じで main() から書かないといけないでしょうね。

>>255
> 依頼者が見てるか確認してから貼るのがマナーだよん
そんなマナーがあるのですか?そんなマナーにどんな意味があるのですか?

258:デフォルトの名無しさん
10/01/27 21:49:36
>>252
エラーは要約しないで、丸ごとコピペしろ。


259:デフォルトの名無しさん
10/01/27 22:05:15
>>257
プログラムを作成せよじゃないから多分そうですね。一応、>>236はどうすると実行ができますか?

260:デフォルトの名無しさん
10/01/27 22:23:44
>>253
いえいえ!ありがとうございます!!

261:デフォルトの名無しさん
10/01/27 22:33:34
>>200
順列を生成するクラスだけで十分そうなので、後はご自分でどうぞ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

262:デフォルトの名無しさん
10/01/27 22:38:52
>>261
next_permutation使えば?
C限定ならまだ分かるけど。

263:デフォルトの名無しさん
10/01/27 22:48:15
>>262
それは>>200の人に言ってあげてください。

264:デフォルトの名無しさん
10/01/27 22:49:39
>>263
>[3.3] 言語: C++
>[5] その他の制限: 特にありません
え?

265:デフォルトの名無しさん
10/01/27 22:50:58
>>264
だから>>200の人に言ってあげてください。

266:200
10/01/27 22:54:07
>>261
うおおーありがとうございます!
Cの最低限しか学んでないんで
C++っぽいclassとかの使い方の勉強にもなります。

>>262
ぐぐるとそれ使えばいけそうですね。ありがとうございます!

いやーそうか、やりたいことのキーワードで検索すれば
ライブラリであったりするんだな。
今回は順列でpermutationか。
そういった意味でも勉強になりました。ありがとうございました!

267:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/27 22:58:43
>>265
え?理由は?

269:デフォルトの名無しさん
10/01/27 23:40:40
>>268
理由は、必要としているのは私ではないから。
便利な道具があることを教えるのもいいことだと思います。
個人的には、(テーマが「宿題」ということもあり)ブラックボックスのままよりは、
多少勉強のネタになる状態で提供するのも、悪くはないかなという意見ですが。

270:200
10/01/27 23:52:51
わたし非常に勉強になりましたのでいいじゃないですか!

271:デフォルトの名無しさん
10/01/28 00:15:16
>>269
えと、あなたのレスに疑問を抱いたのに
質問者にあれこれ問い質しても意味不明ですよね?
自分が学生時代のころは
特に明記の無い限り標準関数の車輪は減点対象でしたので。


272:デフォルトの名無しさん
10/01/28 01:07:12
>>270
私もちょっと困惑気味…

>>271
「next_permutation使えば?」と言われましたが、使う機会の無い私に言われるのも
意味不明ですから、質問者へのアドバイスとして言われればよいと判断したまでです。
また、何が減点対象で何が加点対象かは、時代背景も無いとはいいませんが、主には
講義や目的や教授の方針に依るよるでしょうから、質問者が適切に判断されれば良いと
思いますけれど。車輪を自分で発明をするのも勉強のうちですし。

273:デフォルトの名無しさん
10/01/28 01:12:27
「講義や目的や」は「講義の目的や」の間違いです。すみません。

274:デフォルトの名無しさん
10/01/28 01:24:25
基本的にここ、質疑応答スレじゃないんで。
知力、実力共に実態が質問者と教授回答者
であっても、形式的かつ論理的かつ法的には
依頼者と作業実行者の関係になります。

275:デフォルトの名無しさん
10/01/28 01:32:55
要するに宿題代行を依頼する人もコード記述を代行する人も
かかる行為が世に100%賛同されているとは
言い切れないという認識は常に頭の片隅にでも...

276:デフォルトの名無しさん
10/01/28 02:09:45
>>272
明らかな糞ソースを張って突っ込みが入ったとしても
苦情は質問者に言ってくれ!ってことね。おkw

277:デフォルトの名無しさん
10/01/28 02:10:52
誰か>>259を教えてください

278:デフォルトの名無しさん
10/01/28 02:18:28
依頼者が代行者のコードに苦情を言うのはマナー違反
だが程度問題

偶然の別代行者が代行者のコードを見てあれこれ
アドバイスするのは美徳でないとは言い切れない。

別の代行者からコードを受け取ったことがわかって
いる時点でコードを渡すのは美徳とは言い切れない。

複数の代行者が同調していたとしても
依頼者の依頼の仕方が悪いと決めつけられ
るかは状況依存

279:デフォルトの名無しさん
10/01/28 02:33:20
>>278
不毛だな
宿題スレ代行者のレスを添削するスレ
とか出来そうだ

280:233
10/01/28 03:01:29
>>236で回答もらったんですがboolってやつを習ってないんですよね…double.int.charとかは習ったんですが…しかしそれ以外だと出来ないとするとそれが正解ですよね

281:デフォルトの名無しさん
10/01/28 07:41:59
>>280
bool を int に置き換えればOK

282:デフォルトの名無しさん
10/01/28 16:20:52
>>281
それをintに変えたんですが>>257で書いてもらった感じで実行もするんですよね…

283:257
10/01/28 18:04:29
>>282
ん、そうです。自力でかけば力がつくことでしょう。

284:デフォルトの名無しさん
10/01/28 18:16:16
>>283
これじゃダメなんですよね…

#include <iostream>
using namespace std;
int even(int num) {
if(0 == sc%2) {
return true;
}
return false;
}


285:デフォルトの名無しさん
10/01/28 18:25:57
>>284
int main() から実行されますから、int main() を書かなくてはいけません。>>257 をちょっと変えればいいです。がむばってください。

286:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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
10/01/28 18:30:39
あ、失礼。
元々、
>>233
> [2] 問題文(含コード&リンク): 入力された数字が偶数なら、trueを返す関数。それ以外ならfalse
>  [3.3] 言語:C++

なのか。だったら
bool even(int sc){
return (sc%2 == 0);
}
か。

289:デフォルトの名無しさん
10/01/28 18:33:01
>>288
return に括弧はいらない。

290:デフォルトの名無しさん
10/01/28 18:41:19
自分で書いて使うだけなら括弧はいらないが、
省略する癖はつけないほうが良い

291:デフォルトの名無しさん
10/01/28 18:43:15
だからといって
return (0)とか
return (1.0)とか
return ("aho-desuka?")
とかはやり過ぎ
式には括弧を付ける癖をつけましょう

失礼しました

292:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/28 18:52:44
return 0とかreturn 1とかは何か習ったみたいですがboolとかどこにもないんですよね

294:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/28 19:55:20
1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:2010年1月29日16:00まで
[5] その他の制限: 特にありません
よろしくお願いします。

296:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/28 20:01:53
>>294
三行目に書いたところは、scじゃなくてnumでした。すみません。boolalphaってなんですか?

298:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/28 20:28:30
[1] 授業単元:コンピュータリテラシー
[2] 問題文(含コード&リンク):
あるファイルの名簿を呼びだし、名前もしくは名字で検索しその結果を新しいファイルに保存する。あるファイルの名簿は特に決められていない。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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:デフォルトの名無しさん
10/01/28 20:38:42
>>295
URLリンク(kansai2channeler.hp.infoseek.co.jp)


301:デフォルトの名無しさん
10/01/28 20:40:23
>>193
今更なんですが、『厳密解』って所に『double exact=63』ってあるんですが、これを計算するプログラムを作るんじゃないんですか?これをプログラムに書いてもいいんですかね?

302:301
10/01/28 20:42:52
でも
//厳密解 の部分は出力される結果は同じですね。入れるとどう違うんですか

303:298
10/01/28 20:43:48
て、訂正! >>296さん気をつけて。

×delete p; // メモリを解放
○delete[] p; // メモリを解放


304:デフォルトの名無しさん
10/01/28 20:44:22
>>301
大丈夫?中学校からやり直す?

305:デフォルトの名無しさん
10/01/28 20:52:41
>>304


306:デフォルトの名無しさん
10/01/28 20:56:54
ごめんなさい。納得しました

307:デフォルトの名無しさん
10/01/28 20:57:01
[1] Cプログラミング入門:
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc(すいませんバージョンがわかりません)
 [3.3] 言語:C
[4] 期限: 2010年1月31日23:59まで
[5] その他の制限: 特にないです。

お願いします。

308:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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
10/01/28 21:24:53
すみません。転記ミスです
×
☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。
ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合
深度=nとする。


☆新しいテキストファイルのNが判明した時点で、改行とそのファイル名、改行を標準出力する。
ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでタブがn回(n>=0)現れた場合
深度=nとする。

311:デフォルトの名無しさん
10/01/28 21:32:45
>>308
わざわざご返答ありがとうございます。そうですか…無茶振りすいません。
一応引き続き、>>299お答え出来る方いらっしゃいましたら厚かましいですが宜しくお願い致します…

312:デフォルトの名無しさん
10/01/28 21:40:54
>>310
スペースがいくら続こうともタブが一つも無ければ深度=0ですか?



313:デフォルトの名無しさん
10/01/28 21:50:33
>>311
freopenもダメなんでしょ?

314:デフォルトの名無しさん
10/01/28 22:02:09
>>313
すみません。習ってないのでわからないです…

315:デフォルトの名無しさん
10/01/28 22:03:34
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp) 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual studio 2003
 [3.3] 言語:C
[4] 期限:2010年2月2日正午まで
[5] その他の制限: 特にありません

よろしくお願いします。

316:デフォルトの名無しさん
10/01/28 22:04:06
>>307
URLリンク(codepad.org)

ヒントがひどいよ(´;ω;`)
一応ヒントに沿う形で書いたけどいろいろ酷い…。
こちらの環境では動いてるけど、そちらの環境で動くかどうか不明。
codepadでOutput: 1 Segmentation faultとか出ちゃってるから。



317:デフォルトの名無しさん
10/01/28 22:06:10
>>315
問題文URLでミスしました。再投稿します。

[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual studio 2003
 [3.3] 言語:C
[4] 期限:2010年2月2日正午まで
[5] その他の制限: 特にありません

今度こそ、よろしくお願いします。


318:316
10/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:デフォルトの名無しさん
10/01/28 22:26:00
>>311
その条件で問題を解くのは不可能だから、
あきらめるか、条件を見直すしかないね。


320:デフォルトの名無しさん
10/01/28 22:39:27
>311
あ、コマンドラインパラメタとパイプ・リダイレクトを使えばいけるな。

type 入力ファイル | 宿題.EXE 検索語句 > 出力ファイル

こんな起動方法はあり?

321:デフォルトの名無しさん
10/01/28 22:43:19
>>307
どうぞ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

322:デフォルトの名無しさん
10/01/28 22:44:06
>>316 >>318
どうもありがとうございます。一人ではどうにもなりませんでした。


323:デフォルトの名無しさん
10/01/28 22:49:08
>>321
ありがとうございます!
なんとかのりきれそうですm(_ _)m

324:デフォルトの名無しさん
10/01/28 22:52:05
>>320
あの…
名簿の人数が大体5人と考えてみても無理でしょうか?
その中から一人検索するので…
条件が習ってる範囲なので変えることができないのですが。


325:デフォルトの名無しさん
10/01/28 23:03:15
>324
データ数は関係ない。
その条件だとファイルの読み書きができない。
使用可能関数に記述もれは無いのか?
fで始まる名前の関数を習って無いのか?


326:デフォルトの名無しさん
10/01/28 23:07:18
>>299
> fp while float else puts gets
>strlen strcpy strcat 以外は使用しないでください。
これだけだと、ファイルに入出力できない。

>>320 タソが言ってる方法もあるが・・・

> 名簿の人数が大体5人と考えてみても無理でしょうか?
人数は関係ないかと。
というか、名簿のフォーマットは決められていないですか?

ファイルの入出力関数について何も習ってないならば、
この問題は解けないと思います。

とりあえず、講義資料とかノートとか読み返して、
fgetsとかfputsとかを習っていないか確認してください。


327:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/28 23:16:59
翻弄された回答者が(´・ω・)カワイソス

329:デフォルトの名無しさん
10/01/28 23:17:22
>>320
>>326
すみません!!見直したところfscanf、fprintf、fputsとfgetsも使ってました。
不注意でご迷惑お掛けしました…



330:デフォルトの名無しさん
10/01/28 23:18:53
>>329
なら308でいいよね?

331:デフォルトの名無しさん
10/01/28 23:29:58
>>330
それがEOFとbreakがつかえないもので…すみません。


332:デフォルトの名無しさん
10/01/28 23:45:17
連投すみません。これ以上書くと私物化も甚だしいので控えます。
頂いたヒントで頑張ります。情報不足でご迷惑お掛けしました。
本当にありがとうございました。


333:デフォルトの名無しさん
10/01/29 04:07:06
下痢便飲みたいのかそうか

334:デフォルトの名無しさん
10/01/29 16:23:54
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
 [3.1] OS:WindouwsXP
 [3.2] コンパイラ名とバージョン:Microsoft VisualC++2008 Express Edition
 [3.3] 言語:C
[4] 期限: (2010年1月31日17:00まで
[5] その他の制限:特になし

ファイルの入出力について理解したいので、
すみませんが、よろしくお願いします。

335:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/29 20:20:50
[1] 授業単元: 情報処理B
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows vista
 [3.2] Cygwin
 [3.3] 言語: C
[4] 期限:2月9日まで
[5] その他の制限: とりあえずstrcpyは習っています。

課題5以外はプログラム中の省略を補っていただきたいです。多いですがよろしくお願い致します。


337:200
10/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:デフォルトの名無しさん
10/01/29 23:26:09
>>335さん。
詳しい解説助かります。本当にありがとうございました。

339:デフォルトの名無しさん
10/01/30 01:16:49
>>337
「B組の隣にA組を並ばせる」「身長差を最小にする」
の2つを同時に満たす解があるとは限らないので、よくあるのは重みWを利用して
  点数=(1-W)×(Bの隣にAがいるか?)+W×(身長差が最小か?)
で並びを評価する。2つの条件のどちらを重視するかでWの値を調節する。
あとは色々とアルゴリズムあると思うけど、ランダム山登り探索でもすればいいんじゃないかね
 @今の並びの点数を計算
 Aランダムに2つ選んで交換してみる
 B交換したあとの点数を計算
 C点数が高くなっていたら交換を採用、低くなっていたら元に戻す
を繰り返していって、何回か連続で失敗したら終了。

340:デフォルトの名無しさん
10/01/30 03:04:51
>>336
課題1 URLリンク(codepad.org)
課題2 URLリンク(codepad.org)
課題3 URLリンク(codepad.org)

341:デフォルトの名無しさん
10/01/30 09:16:33
>>339
これは組み合わせ最適化ってカテゴリになるんですかね?
う〜ん、なかなか手の込んだことしないといけないっぽいなぁ。

342:デフォルトの名無しさん
10/01/30 11:14:15
>>337

計算途中で、過去の最小を超えたら中止したらいいんじゃね?
少しはラクになるはずw

343:デフォルトの名無しさん
10/01/30 11:19:52
身長順にソートして、
隣の組の子と手を繋がせて、
A組の子を元の順に並べる。

これじゃダメなの?


344:342
10/01/30 11:33:03
あ、中止つうのは、端折って次へ、という意味。

345:デフォルトの名無しさん
10/01/30 12:09:33
>>341
宿題のレベル超えるから最適化アルゴリズムでも調べてくれ
>>342
それをやったとしても計算量のオーダーには寄与しないよ
テクニックとしては重要だが。
>>343
そのやり方だと「AとBが隣り合う」という条件を完全に満たして、
「身長差が小さい」についてはそこそこ、という解が得られる。
そういう解が欲しいときにはその手の方法がベストだと思う。
>>200の問題文を見る限り、その解釈でいいと思う。

346:デフォルトの名無しさん
10/01/30 13:21:56
Microsoft社 Visual Studio C++のソフトウェアを用いて
チャットアプリケーションを作れと言われたのですが、
当方C言語系がとても苦手で困っています;;

システムの仕様は
・1対1の環境でのみ動作。
・サーバ側はポート番号を指定して、クライアントからの接続を待つ。
・クライアント側はサーバのIPアドレスとポート番号を指定して、サーバに接続する。
・この時の通信はTCPで行う。
・クライアントが通信をやめたい場合は"endc"
・サーバ側がやめたい場合は"ends"と入力。
・WinSockを使用してWindowsのコンソールプログラムとして基本的な簡易なチャット

以上の条件でプログラミングしていただけると幸いです。
よろしくお願いします m__)m

347:デフォルトの名無しさん
10/01/30 13:38:34
>>346
>>1

348:200
10/01/30 14:21:39
身長順にソートできれば確かに楽になりそうですね。
ただ>>200の問題はもっと複雑なものの一部分を抜き出したもので、
本当は身長順というよりも2次元平面上で距離が近いもの同士って感じなんです。
そうなると・・・ちょっと安易にはソートできないかな?

なんにしても宿題としては提出してしまっているので自分が気になってるだけです。
最適化アルゴリズムでいろいろ見てみようと思います。

349:デフォルトの名無しさん
10/01/30 14:45:58
Cマガのプログラミング研究会を思い出した。

350:デフォルトの名無しさん
10/01/30 15:26:06
>>345
343じゃないけど、>>343のやり方で、
身長差が最小とならない場合って、どんな場合?
計算してみたら、常に最小になりそうなんだが。

それとも「そこそこ」ってのは
「最小にならない場合がある」って意味ではない?

351:デフォルトの名無しさん
10/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
10/01/30 15:42:36
と、思ったけど、AとBが隣り合わない場合を考慮すると、
343のやり方では、身長差が最小とならない場合がある、
という意味だったのね。
失礼、読み違えてました。

353:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/30 16:16:35
>>351
31分でコードを作ってもらおうという考えは非常識

355:デフォルトの名無しさん
10/01/30 17:51:17
>>351
前にIPAの試験に出てたので、そのまま作ってみたよ
URLリンク(codepad.org)

356:デフォルトの名無しさん
10/01/30 18:07:34
[1]情報科学特論 (大学院講義レポート課題)
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] OS:Solaris GNU-C-compiler 4.0 C言語
[4] 2/11迄
[5] 面倒なのでよろしく

357:デフォルトの名無しさん
10/01/30 18:28:17
[1] 授業単元:計算機自論
[2] 問題文(含コード&リンク):
LISPはCと同じで関数型言語ではないということを200文字以内で表現してください
[3] 環境
 [3.1] OS: すべて
 [3.2] コンパイラ名とバージョン: すべて
 [3.3] 言語: 日本語
[4] 期限: 無期限

358:デフォルトの名無しさん
10/01/30 19:15:44
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindouwsXP
 [3.2] コンパイラ名とバージョン:VisualC++2008 Express Edition
 [3.3] 言語:C
[4] 期限:2010年2月2日15:00まで
[5] その他の制限:特になし

なんとか途中まで頑張りましたが、今の自分ではこれが限界でした・・・。
問題文リンク先の≪問題と条件≫の全てを満たすソースを、お教え下さい。
お手数かけますが、よろしくお願いします。

359:デフォルトの名無しさん
10/01/30 19:21:19
>>351
なんか変数いっぱい散らかしてもっちゃりしてるけど。
処理もなんかぐねぐねぐねぐねとしてるし。駄目だな。
URLリンク(codepad.org)

>>355さんのを見て勉強しなおしてきます。

360:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/30 20:26:12
360さん。回答ありがとうございます。
早速、このソースでコンパイルしたところ問題なくビルドは出来ました。
しかし、その後の「デバックなし」で実行してみましたが、
「引数が不正」と表示されてしまい、上手く出来ません。
これは何故でしょうか?しょぼい質問ですいません・・・。

362:デフォルトの名無しさん
10/01/30 20:38:24
>>361
≪問題と条件≫
第1引数に指定したファイルからバイナリーモードで1バイトずつファイルを読み込み、
ファイルの内容を16進数で示したものを第2引数に指定したファイルに書き込むプログラムを作成せよ。ただし、16バイトごとに改行を入れること。
(実行)
>free1.exe test.txt test2.txt

でしょ?

363:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/30 20:45:52
>>362
はい、そうです。

365:デフォルトの名無しさん
10/01/30 20:51:31
>>363
はい、test.txtとhoge.txtは、あらかじめ作成している状態です。

366:デフォルトの名無しさん
10/01/30 20:57:08
分かってねー

367:363
10/01/30 20:59:19
>>365
だったら実行時に指定しないと。
VC++でどうやって指定するか分かんないけど

368:デフォルトの名無しさん
10/01/30 21:11:35
>>365
コマンドライン引数というものが分かってないので
URLリンク(www9.plala.or.jp)
URLリンク(www.geocities.jp)
この辺読みましょう


369:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/30 22:43:05
>>358です。
稚拙ですが、質問をURLにまとめたので、よろしくお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

371:デフォルトの名無しさん
10/01/30 22:46:23
>>370
>>368を読め。

372:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/30 23:03:50
>>340

ありがとうございます!助かりました!

課題4、5については引き続きどなたかよろしくお願い致します。。

374:デフォルトの名無しさん
10/01/30 23:30:33
>>353
ファイルの入出力はファイルポインタを用いたものに変更してます。
(インデントが変な所はタブをスペース4つに換えて下さい)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

375:デフォルトの名無しさん
10/01/31 00:04:17
372さん。回答ありがとうございます。
アドバイス通りにしてみて、実行したのですが、
「Lhaplus slef extractor」というのが
表示されます。展開先のフォルダはC:\free を選べるのですが、
展開されるファイルが何故かfree1.cしか選べません・・・。
何度も見直して実行したのですが、結果は一緒です。
これは、なにか他に原因があるのでしょうか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4948日前に更新/264 KB
担当:undef