C/C++の宿題片付けます 156代目at TECH
C/C++の宿題片付けます 156代目 - 暇つぶし2ch384:ナナシ
12/02/23 00:30:35.45
>>381
お気持ちはありがたいですけど2の補数についてじゃなくて2の補数をC言語で利用するのが出来ないんです

385:375
12/02/23 00:31:38.51
ワロタw

386:ナナシ
12/02/23 00:32:29.64
テンプレを書いたのにもうダメなんでしょうか・・・

387:361
12/02/23 00:33:03.74
誠に自分勝手で申し訳ないのですが、自己解決いたしました。
単に配列xの値をx[n-1]までしか定義してなかったのに、x[n]の値を呼び出そうとしてエラーが起きていただけでした。

388:デフォルトの名無しさん
12/02/23 00:34:03.16
>>383
printf("%x\n", ~2+1); --> fffffffe
printf("%x\n", -2); --> fffffffe

こういうこと?

389:ナナシ
12/02/23 00:34:13.68
いいですか?
あなたがたがテンプレを書けといったからこっちは書いたんです
それなのに何ですかこの対応は。人としておかしいと思いませんか?

390:デフォルトの名無しさん
12/02/23 00:35:03.49
off-by-one errorありがちですね

391:ナナシ
12/02/23 00:35:24.01
>>389も僕が書いたんじゃありません

392:デフォルトの名無しさん
12/02/23 00:35:33.75
もうマジでよぉ、トリつけろや

393:デフォルトの名無しさん
12/02/23 00:36:30.48
>>391
ほらよ
URLリンク(detail.chiebukuro.yahoo.co.jp)

394:ナナシ
12/02/23 00:36:46.15
>>388
00101110というのを
11010011という風に変えたいんです。
でも、2の補数がプログラムで組めないので出来ないです・・・

395:ナナシ
12/02/23 00:37:12.10
折角簡単な問題を出してやってるんだから感謝してください
こちらが謝礼を貰っても良いくらいですが
今回は特別にタダで解かせてあげます

396:ナナシ
12/02/23 00:38:11.45
>>395の人も酷いのです・・・

397:デフォルトの名無しさん
12/02/23 00:39:56.67
そんなこんなしているうちにもう納期まで10分を切ろうとしているわけだが

398:ナナシ
12/02/23 00:41:11.12
早く寝たいので、
すみませんが早くしてください。

399:ナナシ
12/02/23 00:42:01.90
>>398
どうしてそんなことするんですか?
僕はそんなこと思ってないです

400:デフォルトの名無しさん
12/02/23 00:42:13.13
そろそろ首釣る社員も出てくるレベル

401:デフォルトの名無しさん
12/02/23 00:42:26.68
素直さがないやつはいつか破綻する
残念だったな

402:ナナシ
12/02/23 00:43:12.62
どうしても教えてくれないんですか・・・

403:デフォルトの名無しさん
12/02/23 00:43:22.18
すげーいいこと教えてやるわ
リファレンス読め
急がば回れ

404:デフォルトの名無しさん
12/02/23 00:46:36.57
ナナシまじでアホだなぁ

素直にテンプレ書いてればとっくの昔に答えが出てたのに

405:デフォルトの名無しさん
12/02/23 00:50:09.92
>>318に指摘されてるのをスルーしたのを見て、俺はイラッとしたなぁ。
たまにこういうやつ紛れ込んでくるけど、いつもイラッとする。

406:デフォルトの名無しさん
12/02/23 00:52:28.13
釣りだと思うけど、違うのか?


407:デフォルトの名無しさん
12/02/23 00:52:56.30
あー納期過ぎちゃった会社オワタ
まあ釣りだろ

408:ナナシ
12/02/23 00:54:22.15
はい、すいませんでした・・・
テンプレを書かずに質問していて。
以後気をつけるので今回は許して頂けないでしょうか

409:ナナシ
12/02/23 00:56:42.41
>>406
釣りじゃなくてマジで分からないんです・・・

410:デフォルトの名無しさん
12/02/23 00:57:37.04
おそらくもうしばらくすると颯爽とQZが現れて
驚きのコードを貼っていってくれるでしょう

411:ナナシ
12/02/23 00:59:11.08
ほんとですか!?
じゃあ待ってます

412:ナナシ
12/02/23 00:59:46.91
QZさんはビット幅とか無視するのでいりません

413:デフォルトの名無しさん
12/02/23 01:00:43.29
も の ほ ん ナ ナ シ も、 え せ ナ ナ シ も
い い か げ ん に し ろ

414:ナナシ
12/02/23 01:01:42.52
いいかげんにと言われても・・・
分からないので諦めるわけには

415:デフォルトの名無しさん
12/02/23 01:02:57.33
ってか、みんな書けてるよね。

416:デフォルトの名無しさん
12/02/23 01:06:46.42
もう皆がナナシでいいんじゃね?w

417:デフォルトの名無しさん
12/02/23 01:07:08.45
俺がナナシだ

418:デフォルトの名無しさん
12/02/23 01:07:51.32
俺が……俺たちがナナシだ

419:デフォルトの名無しさん
12/02/23 01:08:50.43
マジレスしとくと10進かなんかで書かんと数値わからんぞ

420:デフォルトの名無しさん
12/02/23 01:08:52.81
しぃた&ぱずぅ「バルス!」

421:デフォルトの名無しさん
12/02/23 01:10:03.38
ビットを反転するのはにょろ演算子。

422:デフォルトの名無しさん
12/02/23 01:11:18.27
>421
俺にょろ使わんかったわー。

423:デフォルトの名無しさん
12/02/23 01:12:41.94
折角だから俺はこのひく演算子を使うぜ

424: ◆QZaw55cn4c
12/02/23 02:46:12.11
>>362
URLリンク(ideone.com)

425:デフォルトの名無しさん
12/02/23 05:24:37.01
>>423
マニアックすぎる、このスレでは俺にしか通じないと思うがw

426:デフォルトの名無しさん
12/02/23 05:33:40.97
ネットじゃ有名すぎるネタなのに何言ってんだw
どうせプレイしたこともない知ったかだろw

427:デフォルトの名無しさん
12/02/23 07:51:14.20
糞ゲーなんかわざわざプレイするかよwww
ネタとして知ってりゃいいレベル

428:デフォルトの名無しさん
12/02/23 09:08:42.40
>>362
URLリンク(ideone.com)

429:デフォルトの名無しさん
12/02/23 15:12:24.63
QZのコードなんでこんなに長いの?

430:デフォルトの名無しさん
12/02/23 16:00:04.51
元PASCALプログラマだったとか

431:デフォルトの名無しさん
12/02/23 16:11:57.50
無駄を省いてシンプルに書くことができないのは頭が悪すぎるから

432:デフォルトの名無しさん
12/02/23 16:54:48.22
少なくとも頭が良すぎてシンプルに書きすぎて結果多くを書く羽目に陥った経験がある人とは違うだろな

433:デフォルトの名無しさん
12/02/23 17:07:52.29
お前ら、プログラミング以外だと生き生きしてるなw

434:デフォルトの名無しさん
12/02/23 17:24:16.81
生き生きとプログラミングをするのは初心者か廃人

435:デフォルトの名無しさん
12/02/23 17:38:59.56
生き生きしてられるのは、みんなでホワイトボード囲んでラフな設計してる時くらいだな。

436:デフォルトの名無しさん
12/02/23 17:48:27.12
試作(失敗・やり直しは可)と設計(失敗・やり直しは不可で責任問題になる)
は根本的に違うだろうな

437:デフォルトの名無しさん
12/02/23 17:54:05.57
生き生きするのは帰る前30分だけ

438:デフォルトの名無しさん
12/02/23 17:55:02.06
生き生きするのはデスクトップマスコットのマミちゃん(仮称)に話しかけている時だけ

439:デフォルトの名無しさん
12/02/24 01:30:30.61
>>426-427
糞ゲーネタって一般的なのか、すまんかった

440:デフォルトの名無しさん
12/02/24 04:17:02.02
>>426
>>425じゃないけどポスターもってる。R-TYPEみたいな画風の。

441: ◆QZaw55cn4c
12/02/24 06:04:11.39
>>432
スレリンク(tech板:889番)


442:デフォルトの名無しさん
12/02/24 06:10:29.14
日本語が読めなかったときのコードを貼ってなにがしたいんだ?

443: ◆QZaw55cn4c
12/02/24 06:16:27.95
>>442
スレリンク(tech板:899番)

444:デフォルトの名無しさん
12/02/24 06:20:18.89
自分じゃ割り切れることも理解できてない計算するとかw

445:デフォルトの名無しさん
12/02/24 06:46:35.60
>>443
スレリンク(tech板:859番)

446:デフォルトの名無しさん
12/02/24 10:08:58.63
頭が良すぎてシンプルに書きすぎて突っ込まれて何度も書く羽目になったみたい

447:デフォルトの名無しさん
12/02/24 21:38:35.82
亀レスだが、電卓プログラムを書いてみた。
コンソール画面から*、(、)を入力させるのが面倒だったので、文字列を与えるようにした。
URLリンク(ideone.com)

448:デフォルトの名無しさん
12/02/26 00:11:20.20
>>447
ずいぶん昔にぼくが依頼したプログラムですねw
もう授業も終わって春休みだけどありがとうございます

449: ◆QZaw55cn4c
12/02/26 17:37:33.57
>>146
スレリンク(tech板:39番)

450:デフォルトの名無しさん
12/02/26 18:54:34.04
質問させていただきます。PGを書く問題ではないのですが、
「ソートプログラムとデータ構造について
具体的なソートプログラムの名前をあげ、
とのようなデータ構造(配列、単方向リスト、双方向リスト、循環リストなど)が
なぜ適しているか述べろ。

が分かりません!教えてください

451:デフォルトの名無しさん
12/02/26 18:56:59.72
>>450
スレチ
wikipedia でも丸写ししとけ

452:デフォルトの名無しさん
12/02/26 20:38:16.02
>>451

のってないから聞いてます

453:デフォルトの名無しさん
12/02/26 20:40:58.08
煽り方が単調
5点

454:デフォルトの名無しさん
12/02/26 20:46:40.98
>>450
スリープソート
ソート対象を数値で表した時に値域が狭い場合に適する

455:デフォルトの名無しさん
12/02/26 20:52:29.34
>>450
シャッフルソート
リストをシャッフル→ソートされているかをチェック の2段階からなる

ものの論文によれば、リストが小さい時、
シャッフルソートはバブルソートよりも早く終わる確率が高い


456:デフォルトの名無しさん
12/02/26 22:03:29.62
>>449
単語カウントだけの用途だと、ハッシュ値が衝突するとハッシュを使う意味が無いが、
このプログラムはハッシュ値が衝突するんじゃないか?

457:デフォルトの名無しさん
12/02/26 22:13:02.00
QZな人だから許される。

458: ◆QZaw55cn4c
12/02/26 22:31:06.27
>>456
チェインハッシュ法を採用しました。チェイン方法としては双方向線形リストを使い、この線形リストは頻度順になるようにデータ挿入ごとに並び替えを行っています。

459:デフォルトの名無しさん
12/02/27 03:53:09.24
プログラムの宿題で困ってる高校生いるから助けてやってくれ!!!

URLリンク(live.nicovideo.jp)
URLリンク(live.nicovideo.jp)
URLリンク(live.nicovideo.jp)
URLリンク(live.nicovideo.jp)
URLリンク(live.nicovideo.jp)


460:デフォルトの名無しさん
12/02/27 17:06:47.43
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):

(1)2つのdouble型 変数 a,bをメンバとして持つ構造体 struct cmplxを作成せよ。
cmplexを複素数、a, bをそれぞれその実部と虚部と考え、
二つの複素数za, zbの積 を返す関数 struct cmplx cprod(struct cmplx za, struct cmplx zb)を作成せよ。
この関数を用いて二つの複素数 1 + 2i, 2+4iの積の結果を表示するプログラムを作成せよ。

(2)
URLリンク(ideone.com)

上のプログラムを参考にして。現在の時刻を “○時△分□秒”の形式で表示する関数 void put_time(void)を作成し、
それを用いて現在の時刻を表示するプログラムを作成せよ。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語: C
[4] 期限:今日中
[5] その他の制限:特になし。

よろしくお願いします。

461:デフォルトの名無しさん
12/02/27 17:50:00.32
>>460
(2)の方 これをコピペ

printf("%02d時%02d分%02d秒",
local->tm_hour,
local->tm_min,
local->tm_sec);


462:デフォルトの名無しさん
12/02/27 19:23:00.98
>>461

ありがとうございます。
ただ申し訳ないのですが、もう少し詳しく説明していただけると助かります。

463:デフォルトの名無しさん
12/02/27 19:39:36.42
>>462
直感による

local->tm_year
local->tm_mon
local->tm_mday
local->tm_wday

これらのあとには、大抵、hour,min,secとかが続くから、
何も考えずに local->tm_ の後を書き換えればいい


464:デフォルトの名無しさん
12/02/27 20:07:41.28
>>463

ありがとうございます。

書き換えて見たのですが、コンパイルに失敗し、

エラー E2141 en15-02.cpp 22: 宣言の構文エラー(関数 put_date() )
エラー E2139 en15-02.cpp 28: 宣言に ; がない(関数 put_date() )
エラー E2134 en15-02.cpp 28: 複合文に } がない(関数 put_date() )
警告 W8004 en15-02.cpp 28: 'wday_name' に代入した値は使われていない(関数 put_date() )
*** 3 errors in Compile ***

と表示されます。どういう意味なのかわからないので、どなたかわかる方はお教えください。

465:デフォルトの名無しさん
12/02/27 20:21:51.26
>>464
URLリンク(ideone.com)


466:デフォルトの名無しさん
12/02/27 20:32:38.47
>>465

ありがとうございます。何が違ったのかちゃんと見てみます。

どなたかわかる方がいましたら>>460の(1)もお手数ですがよろしくお願いします。

467:デフォルトの名無しさん
12/02/27 20:51:33.65
>>466
URLリンク(ideone.com)

468:デフォルトの名無しさん
12/02/27 21:29:13.08
[2] 問題文(含コード&リンク):

URLリンク(ideone.com)

上ののプログラムを参考にして、unsigned型整数をビット表記した時の下から4ビット(20 から23の桁)を表示する関数 void print_4bits ( unsigned x) を作成せよ。
またこの関数を用いて、0から15までの整数を4ビットで表示するプログラムを作成せよ。


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: 今日中


よろしくお願いします。

469:デフォルトの名無しさん
12/02/27 21:47:24.09
>>468
void print_4bits(unsigned x)
{
int i;
for ( i = 3; i>=0; i--)
putchar( ( (x >> i) & 1U) ? '1' : '0');
}


470:デフォルトの名無しさん
12/02/27 22:00:17.24
>>469

ありがとうございました。

471: ◆QZaw55cn4c
12/02/27 22:18:17.99
>>456
追記:確かに >>449 のハッシュ関数の実装は適当で性能は最悪でしょう。MD5/RFC1321 も一度は採用してはいたのですが、MD5 ルーチンの記述量が全体の5割以上になってしまうので、とりやめました。
宿題用途でお手軽に記述できてかつそこそこの性能を発揮するハッシュ関数としてはどんな実装になるのでしょうか?

472:デフォルトの名無しさん
12/02/27 22:50:08.22
なんかすごい難しいことやってるな
世間で流通してるハッシュ関数ならハッシュコードを使うのが普通とは思うけど、
宿題&単語カウントってキーワードから考えると、ハッシュは単なる辞書機能のことを指してて最初の提示例で十分じゃないかと思うのは自分だけ?

473:デフォルトの名無しさん
12/02/27 23:16:14.38
それは野暮ってもんだ
宿題やってほしい勢と、俺のプログラムを見ろ勢の利害が一致して成り立ってるスレだし

474:デフォルトの名無しさん
12/02/28 01:34:38.56
ハッシュ法で暗号学的ハッシュ関数……?

475:デフォルトの名無しさん
12/02/28 12:43:59.74
ま裁判官だったら一発で弾劾裁判されるタイプだろな

476: ◆QZaw55cn4c
12/02/28 20:12:41.07
>>472
>最初の提示例
ん?どれ?

477: ◆QZaw55cn4c
12/02/29 03:07:06.35
>>146
お手ごろなハッシュ関数(FNV Hash関数:URLリンク(www.isthe.com))をみつけましたので、それにさしかえました。
スレリンク(tech板:43番)

478:デフォルトの名無しさん
12/03/01 01:19:54.82
[1] 授業単元: プログラミング実習
[2] 問題文: 構造体の型の成績をqsortを用いて
点数を高いものから順に並び替えよ
動作例:
student[1]:76
student[2]:65
student[3]:82
  ・
  ・
------------------------
成績順にソートしました。
------------------------
student[3]:82
student[1]:76
student[2]:65
  ・
  ・
  ・

[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語:C言語
[4] 期限:3月1日(今日)の18時30分まで
[5] その他の制限:
stdlibをインクルードし、qsortを使って解くこと。
「student」は必ず構造体を用いること。
できるだけ簡潔で分かりやすいプログラムを心がけること。
ソースコードは多くても70行以内に収めるのが望ましい。

お願いします。

479:デフォルトの名無しさん
12/03/01 01:24:10.13
ちょっと訂正します。
動作例の上のほうのstudenは入力です。

あと、studentと、scoreの二つをを
stdataという構造体で扱って解いてほしいです。

追記になり少々見苦しいかもしれませんが
よろしくお願いします。

480:デフォルトの名無しさん
12/03/01 01:33:17.28
>>478を見ると、入力は点数の数値だけを連続し入力し、入力が終わったら、
そのままソートして結果出力してるように見える

stdataという構造体作ったとしても、scoreが点数として、studentには何を格納するの?


481:デフォルトの名無しさん
12/03/01 01:34:57.11
番号

482:デフォルトの名無しさん
12/03/01 01:53:56.30
>>481
さんくす
そりゃそうだ

483:デフォルトの名無しさん
12/03/01 02:00:06.34
初めはこういう程度でいいのかと思ったんだが、
題意とはデータ構造が違うっぽいな

URLリンク(ideone.com)

484:デフォルトの名無しさん
12/03/01 02:21:48.86
>>483
夜分遅くにありがとうございます。
せっかく解いていただいたところ、申し訳ないのですが、
どうやら、成績はEOF(ctrl+Z)が入力されるまで自分の手で
入力していくプログラムのようです。
よろしければ修正していただくことは可能でしょうか。
もし可能であればお願いしたいです。

485:デフォルトの名無しさん
12/03/01 02:37:02.09
>>484
やってみた
EOF または 空エンターで入力打ち切り

URLリンク(ideone.com)


486:デフォルトの名無しさん
12/03/01 16:57:33.87
>>485
     -ーー ,,_
   r'"      `ヽ,__
   \       ∩/ ̄ ̄ ヽつ
  ノ ̄\ /"ヽ/ "   ノ   ヽi
 |  \_)\ .\    >  < |\
 \ ~ )     \ .\_  ( _●_)\_つ   ありがとう。
    ̄       \_つ
無事提出することができて、たすかりました。

487:デフォルトの名無しさん
12/03/01 17:46:31.18
>>485,486
>URLリンク(ideone.com)


>>478
>点数を高いものから順に並び替えよ
なので、x、y逆じゃね?

X return ((stdata*)x)->score - ((stdata*)y)->score;
O return ((stdata*)y)->score - ((stdata*)x)->score;


488:デフォルトの名無しさん
12/03/01 18:10:08.14
>>487
URLリンク(ideone.com)

489:デフォルトの名無しさん
12/03/02 18:27:35.63
[1] 授業単元:C言語演習
[2] 問題文:
キーボードで入力された名前をchar型の一次元の配列nameに入れていきます。
各名前の先頭アドレスをp_nameに入れます。
p_nameのアドレスをptrptrに入れます。
最後に一番長い名前と一番短い名前、変数ptrptr、p_name、nameのアドレスを表示します。
実行例:
名前を10個まで入力できます。桁数は最大30です。
name1: tanaka
name2: nakabayashi
name3: hama
   ・
   ・
一番長いのは"nakabayashi"で、11桁。
一番短いのは"hama"で、4桁。
Adress of name: 231191 Adress of p_name: 231511 Adress of ptrptr: 231551

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: CPad for Borland
 [3.3] 言語: C
[4] 期限: 2012年3月4日中まで
お願いします。

490:デフォルトの名無しさん
12/03/02 19:52:15.78
キーボードで入力された名前をchar型の一次元の配列nameに入れていきます。
名前を10個まで入力できます。桁数は最大30です。
char name[300];

各名前の先頭アドレスをp_nameに入れます。
char (*p_name)[10];

p_nameのアドレスをptrptrに入れます。
char *(*ptrptr)[10]);

こういうこと?
C言語より日本語のが難しいわ

491:デフォルトの名無しさん
12/03/02 19:54:56.60
最後間違えた。こうかな
char (**ptrptr)[10];

492:489
12/03/03 00:59:31.66
>>490
そういうことなんですかね。
とりあえず実行例にあるように、適当にキーボードから名前を入力していったあとに、
一番長い名前とその桁数、一番短い名前とその桁数、nameのアドレス、p_nameのアドレス、
ptrptrのアドレスを表示するようなプログラムを作成したいです。
全然できない状況です。よろしくおねがいします。

493:デフォルトの名無しさん
12/03/03 02:00:33.46
>>489
URLリンク(ideone.com)

494:デフォルトの名無しさん
12/03/03 02:01:03.93
>>489
元の問題文がその通り書いてあるなら出題に不備がある感が…
ダブルポインタの練習のための問題だと思うけど
char name[300]; って宣言と
char * name[10]; って宣言の2パターンある希ガス。
まあchar * name[10];のほうだと、p_nameにアドレス入れるのが冗長になるから
問題を好意的に捉えれば前者なんだろうけど。
コードも出さずに偉そうなこといって申し訳ない

495:デフォルトの名無しさん
12/03/03 02:08:04.23
>>493
ぐあ。すげえ。
書きもしないで問題に文句言ってた自分が恥ずかしや

496:489
12/03/03 03:53:48.10
>>493
わぁすごい。
本当にありがとうございます!

497:デフォルトの名無しさん
12/03/03 08:36:56.98
>>493
一番長い名前、一番短い名前が複数あったらどうするの?

498:デフォルトの名無しさん
12/03/03 09:31:50.02
こういうクソ意地悪い系列が入力された時の最大最小の動作なんて
質問者・回答者はおろか出題者すら考えてねーんだろーな

tanaka
yamada
kagaya
kaneko
koyano
sasaki
sakuma


499:デフォルトの名無しさん
12/03/03 09:39:15.57
こういう問題なら一つ表示すれば十分

500:デフォルトの名無しさん
12/03/03 09:45:42.37
この問題はまだましだけど、たまに本当に意味わからん宿題があるよな
ああいうの出される所で勉強してるとプログラミング嫌いになるんだろうなぁ

501:デフォルトの名無しさん
12/03/03 11:53:40.64
スレチだけど、アセンブリの授業教えてる先生が意地悪っつーか凝ってるっつーか
わざとバグを仕込んであるアセンブリコードのデバッグの宿題とか死にかけたな。懐かしい

502:デフォルトの名無しさん
12/03/03 15:01:19.24
>>501
>わざとバグを仕込んであるアセンブリコードのデバッグの宿題

期待される動作をきちんと説明してあれば、いい教材になりうるけどな。
教える側のイメージが曖昧で、何通りにも解釈可能ってのはたまによくある。

503:デフォルトの名無しさん
12/03/03 16:10:22.23
>>502
> たまによくある。

お前の人生自体も失敗がたまによくありそうだな。

504:デフォルトの名無しさん
12/03/03 17:03:37.94
わぁ、おもしろーい

505:デフォルトの名無しさん
12/03/03 18:41:48.63
>>496
310に変えておいたほうがいいよ

506:デフォルトの名無しさん
12/03/04 06:05:40.84
address

507:デフォルトの名無しさん
12/03/04 11:12:49.10
【質問テンプレ】
[1] 授業単元:Discrete systems
[2] 問題文(含コード&リンク):URLリンク(www.scribd.com)
URLリンク(www.mediafire.com)
[3] 環境
 [3.1] OS: windows7/xp
 [3.2] コンパイラ名とバージョン: Visual studio 2008
 [3.3] 言語: C
[4] 期限: 3/5 19:00
[5] その他の制限: なし

LEDパネルを表示させる系のプログラムですが
Exercise 3からまったくわかりません><

508:デフォルトの名無しさん
12/03/04 12:34:09.60
[1] 授業単元:C++
[2] 問題文(含コード&リンク):以下のようなコードはバグである。理由を考察すること。
①{
char hoge[11];
char *poge = "aa.bb.cc";
char *tok = NULL;
char *ptr1 = NULL;
char *ptr2 = NULL;

memset(hoge, '\0', 11);
strcpy_s(hoge, 11, poge);

ptr1 = strtok_s(hoge, ".", &tok);
ptr2 = strtok_s(NULL, ".", &tok);

ptr1 = strtok_s(poge, ".", &tok);
ptr2 = strtok_s(NULL, ".", &tok);
}

②for(int i=0; i<plName->Getlength(); i++)
※XMLの読み込みで、取得したタグ名の全ての要素についてループさせる処理です。

[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン: Visual studio 2008
 [3.3] 言語: C++
[4] 期限:3/4 23:00
[5] その他の制限: なし
問題②について、要素の数が膨大になる場合、パフォーマンスが劣化する。
という解答では×とのことでした。

以上です。よろしくお願いします。

509:デフォルトの名無しさん
12/03/04 15:07:29.94
>>508
strtokは第一引数の文字列を直接変更する。
pogeは変更してはいけない

510:デフォルトの名無しさん
12/03/04 15:09:22.85
②はそれだけじゃバグは見当たらない。
はしょった?

511:デフォルトの名無しさん
12/03/04 15:18:19.03
>>508
>②for(int i=0; i<plName->Getlength(); i++)

Getlength()の返り値が途中で変わったらまずいだろうけど、他にあるかな?


512:デフォルトの名無しさん
12/03/04 21:36:43.09
ループの中で plName が変わり意図とは違う回数で終わるとか?

513:デフォルトの名無しさん
12/03/04 22:07:23.10
>for(int i=0; i<plName->Getlength(); i++)
int len = plName->Getlength();
for(int i=0; i<len; ++i)
とかじゃないよね?

514:508
12/03/04 22:42:09.41
>>509-513
皆さんありがとう。
②についてだけど、少しはしょってた。申し訳ない。
以下全文です。

MSXML2::IXMLDOMDocument2Ptr pDoc;
MSXML2::IXMLDOMNodeListPtr INodeListPtr;

pDoc->load("sample.xml");
INodeListPtr plName = pDoc->getElementsByTagName("aaa");
for(int i=0; i<plName->Getlength(); i++)
{
//ここまで

問題があるのはforループの箇所


515:デフォルトの名無しさん
12/03/04 22:46:02.44
18分でどーしろというんだ
アホかこいつ


516:デフォルトの名無しさん
12/03/04 23:03:10.01
まぁ普段使ってなきゃ無理だね
しかもXMLの処理は.NETが異常に捗るからMSXML使ってる人なんてもういないだろ

517:デフォルトの名無しさん
12/03/04 23:08:07.39
>>514
問題の意図がわからんな
パフォーマンスを求める前にエラーチェックをするべきでしょ

518:デフォルトの名無しさん
12/03/05 03:23:48.78
>>514
forループの箇所に問題はないけど、それ以外に問題ありのように思うわ。
23時には間に合わなかったけど、18分もかかるほどの内容ではなかった。

519:デフォルトの名無しさん
12/03/05 03:46:42.95
>>514
typedefがないってことではないよなぁw


520:デフォルトの名無しさん
12/03/08 10:20:08.22
>>514
>for(int i=0; i<plName->Getlength(); i++)

X int i
O long i

521:デフォルトの名無しさん
12/03/08 12:12:24.06
>>519
無かったらコンパイル通らないし
いや、まさか・・・

522:デフォルトの名無しさん
12/03/09 20:25:50.41
[1] 授業単元: 情報処理
[2] 問題文
(1)
URLリンク(ideone.com)

上記のプログラムはオープンするファイルが abc に限られている。
キーボードからファイル名を読み込んで、そのファイルをオープンするように変更せよ。

(2) 台形公式を用いて、分割数 N を増やしながら f(x) = x 3 を 0から1の範囲で積分し、
その計算結果と解析解(1/4)の差が0.001未満になったら計算を終了するプログラムを作成せよ。
Nの初期値を1として、Nについての for文を用いること。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語: C
[4] 期限:今日中
[5] その他の制限:

(1)で使用したサイトであげていただけると助かります。
よろしくお願いします。

523:デフォルトの名無しさん
12/03/09 22:49:18.09
>>522
(1) URLリンク(ideone.com)
(2) URLリンク(ideone.com)

数学苦手だから (2) はちょっと自信ない

524:デフォルトの名無しさん
12/03/09 23:09:14.96
>>523

ありがとうございます。

525:デフォルトの名無しさん
12/03/09 23:51:00.61
>>524, 523
2番目はこんな感じじゃなかろうか
URLリンク(ideone.com)

526:523
12/03/10 00:14:37.57
>>525
あ、なるほど
そっちが正解だわ

527:デフォルトの名無しさん
12/03/15 21:50:23.21
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
KMP法のアルゴリズムの関数を作成せよ。
[3] 環境
 [3.1] vista
 [3.2] VC 2008
 [3.3] 言語: C
[4] 期限: 3月16日まで

分かる方いらしたらよろしくお願いします

528:527
12/03/15 21:52:00.17
>>527
申し訳ありません、追記です。文字列照合においてのKMP法です。

529:デフォルトの名無しさん
12/03/15 21:52:28.99
>>527
宿題は、出された問題をそのまま書かないと、誰もやってくれないよ

530:デフォルトの名無しさん
12/03/15 22:08:20.14
>>527
分かる方って、自分では調べてやってみた?

531: ◆QZaw55cn4c
12/03/15 23:45:54.92
>>527
URLリンク(www.amazon.co.jp)
の p389 に 30 行ほどでのってるよ。algo.lzh っていうこの本のサンプル集もどこかに転がってるんじゃないかな。
最近の図書館は24時間営業じゃなかったっけ。この時期なんかは特に。

532:デフォルトの名無しさん
12/03/16 10:39:01.00
URLリンク(oku.edu.mie-u.ac.jp)

533:デフォルトの名無しさん
12/03/16 10:43:17.37
>>327
URLリンク(codepad.org)

おら、動いたぞ。

534:デフォルトの名無しさん
12/03/18 06:20:26.52
[1] 授業単元: -
[2] 問題文:URLリンク(judge.u-aizu.ac.jp)
[3] 環境
 [3.1] OS: ?
 [3.2] コンパイラ名とバージョン: ?
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限: URLリンク(codepad.org)
一応書いてみたのですが正解として受け入れられませんでした。
微妙にスレチな気もしますが宜しくお願いします。

535: ◆T7UZkyB.V6
12/03/18 07:57:32.20
>>534
#include <stdio.h>
#include <math.h>
int main(){
  int in1, in2, in3;
  char buf[80];

  while(!eof(stdin)){
    gets(buf);
    sscanf(buf, "%d%d", &in1, &in2);
    in3 = in1 + in2;
    printf(int(log10(in3)+1));
  }
}
微妙にノーコンパイルにしておいた。

536:デフォルトの名無しさん
12/03/18 08:47:19.81
>>534
何がダメで不正解じゃなかったのか書かないと
意味ねーじゃん


537:デフォルトの名無しさん
12/03/18 08:56:21.53
>>535
code.c: In function ‘main’:
code.c:11: error: expected expression before ‘int’
だそうです

>>565
不正解の時は「Wrong Answer」としか言ってくれない

538: ◆T7UZkyB.V6
12/03/18 09:01:32.24
英語圏の教授か?
#include <stdio.h>
#include <math.h>
int main(){
int in1, in2, in3;
char buf[80], *p;
while(1){
  if(feof(stdin)) break; // ddd ddd[EOF]
  if(!gets(buf)) break; // ddd ddd[NEWLINE][EOF]
  sscanf(buf, "%d%d", &in1, &in2);
  in3 = in1 + in2;
  printf("%d\n", (int)log10((float)in3)+1);
}return 0;}

539:デフォルトの名無しさん
12/03/18 09:28:00.11
ほんとにただ解きたいから解いてるだけなやつだなw
コミュニケーションとれてないw

540: ◆T7UZkyB.V6
12/03/18 10:03:57.37
>>ww
#include <stdio.h>
#include <math.h>
int func(int sum){
  int i;
  for (i = 0; sum; i++)
    sum /= 10;
  return i;}
int main(){
  int in1, in2, in3;
  char buf[80], *p;
  while(1){
    if(feof(stdin)) break; // ddd ddd[EOF]
    if(!gets(buf)) break; // ddd ddd[NEWLINE][EOF]
    sscanf(buf, "%d%d", &in1, &in2);
    in3 = in1 + in2;
    printf("%d\n", func(in3));
  }return 0;}

541:デフォルトの名無しさん
12/03/18 10:20:05.90
3時間以上かけてそんなプログラム書いてるの?


542:デフォルトの名無しさん
12/03/18 10:28:04.60
そこの素数求める問題をエラトステネスの篩で書いたら時間切れくらって以来やってないな

543:デフォルトの名無しさん
12/03/18 10:29:36.05
>>538
/tmp/cceCITzA.o: In function `main':
code.c:(.text+0x24): warning: the `gets' function is dangerous and should not be used.

>>540
/tmp/cc4nIZbg.o: In function `main':
code.cpp:(.text+0x75): warning: the `gets' function is dangerous and should not be used.


\(^o^)/


544: ◆T7UZkyB.V6
12/03/18 10:45:47.20
[3] 環境
 [3.1] OS: Unix
 [3.2] コンパイラ名とバージョン: cc
 [3.3] 言語: C
    if(!fgets(buf,80,stdin)) break; // ddd ddd[NEWLINE][EOF]

545:デフォルトの名無しさん
12/03/18 10:46:15.07
>>542
自分が解いた限りではそんな問題なかったぞ

546:デフォルトの名無しさん
12/03/18 10:53:49.67
>>545
これ
URLリンク(judge.u-aizu.ac.jp)

547:デフォルトの名無しさん
12/03/18 10:56:44.91
>>546
一回計算した値は使いまわせば余裕

548:デフォルトの名無しさん
12/03/18 11:36:22.02
>>534
致命的な間違いがあるけど、指摘されてんのはそこじゃねーんだよな

549:デフォルトの名無しさん
12/03/18 11:46:25.99
>>534
jについてのループおかしくね?
数字以外の入力もそのまま処理されるのもまずい気がする

それと>>535のはprintfのsyntax errorとeof()がまずいらしい(理由は知らん)
こう書き直したら動いた
#include <stdio.h>
#include <math.h>
int main(){
int in1, in2;
char buf[80];

while(gets(buf) != NULL) {
sscanf(buf, "%d %d", &in1, &in2);
printf("%d\n", (int)log10(in1 + in2)+1);
}
}

550:デフォルトの名無しさん
12/03/18 11:56:28.06
>>549
/tmp/ccmsA2nL.o: In function `main':
code.c:(.text+0x7d): warning: the `gets' function is dangerous and should not be used.

getsは使ったらダメなようです

551:デフォルトの名無しさん
12/03/18 12:08:54.95
これで通るだろ
#include<stdio.h>

int main(void)
{
int a, b;
char buf[16];

while(scanf("%d%d", &a, &b)==2)
{
printf("%d\n", sprintf(buf, "%d", a+b));
}

return 0;
}

552:デフォルトの名無しさん
12/03/18 12:37:13.86
>>551
すげぇ・・・通った
天才だわ

553:デフォルトの名無しさん
12/03/18 12:57:10.81
>>552
解けた人数が難易度の目安になる
200人のは簡単
100人くらいのを解こうとしたら動的計画法を使えるようにならないとだめ
50人くらいのを解こうとしたら思いつきがいる

554:デフォルトの名無しさん
12/03/18 13:07:01.25
>>553
今回の問題1647人いるんですが・・・

555:デフォルトの名無しさん
12/03/18 13:17:21.84
なんで正答率じゃなくて人数を目安にするんだ?

556:デフォルトの名無しさん
12/03/18 13:19:26.26
>>555
やれば分かる

557:デフォルトの名無しさん
12/03/18 13:31:35.50
初めて書き込みます。よろしくお願い致します。固定長バイトの文字列の中の一部を抜き出すところがわかりませんでした。
1] 授業単元:C言語
[2] 問題文(含コード&リンク):
文字列A(固定長150バイト)一万行以上と文字列B(CSV)一万行以上のそれぞれのテキストデータ・ファイルがある。文字列A
の5文字目から6文字分と文字列Bの2カラム目の4文字目から6文字分を比較し、同じなら、文字列Aの
77文字目から50バイト分を文字列Bの4カラム目を置き換える。文字列Bの4カラム目が50バイト以下なら
" "空白で埋める。50バイトより大きい場合50バイトまでの大きさを対象とする。
置き換え対象領域は日本語全角漢字含む文字列となる。
文字列Aの対象領域は2バイトx20文字+1バイト10文字で整形されている。
文字列AはSolaris10上のファイル。文字列BはエクセルファイルをCSV保存してFFFTPでSolaris10へコピーしたもの。
文字コード:文字列A(EUC-JP)、文字列B(sjis2eucで変換)
[3] 環境
 [3.1] OS: 実行環境はSolaris10(x86)、開発環境はCentOS5.8、文字列AはSolaris上のファイル。文字列BはエクセルをCSVで保存しSolarisへコピー。
 [3.2] コンパイラ名とバージョン: 実行環境(Solaris-gcc3)、開発環境(CentOS-gcc4.1.2)
 [3.3] 言語: C言語
[4] 期限: 3月21
[5] その他の制限:特になし
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)


558:デフォルトの名無しさん
12/03/18 13:42:15.97
これ宿題なの?

○文字目っていうのは全角も考えたうえでの数?
全部全角だとすると77文字目って142バイト目くらいから始まることになるけど


559:デフォルトの名無しさん
12/03/18 13:45:18.02
食卓に欠かせない存在って言えばやはり塩と醤油ですよね。「あれ?これ味薄くない?」「これ味違くない?」
という言葉を言い出せない僕らにとって無くてはならないアイテムです。もちろんこの醤油的存在はアジア圏を
中心に大活躍しているわけですが、昨日のコンビニ弁当と学校給食に続き、お隣韓国の醤油工場をご紹介です。
しかも摘発された工場です。

無許可で経営していたとの理由で摘発された韓国醤油「魚醤(エクジョッ)」製造工場なのですが…。

URLリンク(spytune.net)

ウジ虫が主原料になっちゃってるぅぅぅぅ!!!!

これ無許可の前に食品衛生法違反で逮捕して!ちなみに観光客や市民に向けて出荷されていたそうです…。

URLリンク(spytune.net)


560:デフォルトの名無しさん
12/03/18 13:54:19.44
csvの仕様をちゃんと実装するのはめんどくさい
エスケープとかクォートとか

561:デフォルトの名無しさん
12/03/18 14:11:10.87
>>534
たぶん、xをターミネーションしてない


562:デフォルトの名無しさん
12/03/18 14:15:45.97
>558
間違いました。1ー66バイトが1バイト、67ー126が変換対象(日本語混じり)124ー150が1バイト
となります。
学校ではなく、職場の(自己啓発)プログラミング講座の課題です。

563:デフォルトの名無しさん
12/03/18 14:18:27.65
訂正
1ー77バイトが1バイト、77ー126が変換対象。126ー150が1バイト
です。

何度もスミマセン。

564:デフォルトの名無しさん
12/03/18 14:20:38.52
>>562
自力で解かなきゃ意味ないじゃんwwwww

565:デフォルトの名無しさん
12/03/18 14:21:07.07
>>564
それを言ってしまったらこのスレ全部アウト

566:デフォルトの名無しさん
12/03/18 14:24:34.04
>>565
これで給料もらってるなら話は別だろ

567:デフォルトの名無しさん
12/03/18 14:35:51.95
>>566
そういうもんかね。AOJとかの質問するほうがどうかしてると思うけど。

>>557
> 固定長バイトの文字列の中の一部を抜き出すところがわかりません
それが必要な場面がないけれど、

必要なら
strncpy(dst, src+startoffset, wantlength);
dst[wantlength] = '\0'
とかやればいいよ

568:デフォルトの名無しさん
12/03/18 14:41:16.10
>>567
AOJのは高専向けの問題の中でも超入門の過去問だろ

569:デフォルトの名無しさん
12/03/18 14:56:15.68
>>567
ありがとうございます。この問題では
文字列Aのキーになる文字列を抜き出し、ループの中で文字列Bのキーになる文字列
を抜き出し比較しif文でマッチしたら、
文字列Aの対象文字列前,後の文字列を抜き出し間にBの文字列を差し込みファイル出力
という処理を考えていました。文字列を抜き出さずに比較する方法とは
どのようなものでしょうか?


570:デフォルトの名無しさん
12/03/18 15:18:51.15
>>569
そのやり方でいいと思うよ

571: ◆T7UZkyB.V6
12/03/18 15:35:18.88
URLリンク(codepad.org)

572: ◆QZaw55cn4c
12/03/19 12:34:06.63
>>571
>char str[256], x[256], y[256];
決め打ちか‥‥。

573:デフォルトの名無しさん
12/03/19 13:10:45.21
>>572
>>534

574:デフォルトの名無しさん
12/03/19 18:34:33.39
>>569
文字列A側の1万行以上のそれぞれの行にたいして、
一致する行を文字列Bの一万行以上から捜して、
文字列置換して、文字列A側がEOFになるまで繰り返す
という問題ではないのか?

575:デフォルトの名無しさん
12/03/19 20:39:22.99
>>574
何が変わったん

576:デフォルトの名無しさん
12/03/19 20:41:40.94
比較対象が一行か複数行か

577:デフォルトの名無しさん
12/03/19 22:25:18.22
>>557
他に条件ないの?csvパースするの面倒なんだけどw
昔書いたモジュールぶち込むのも面倒だし。。。

578:デフォルトの名無しさん
12/03/19 23:01:56.76
エクセルで作ったCSVだから割とまじめなCSVだろうしなぁ。
ある程度でいいんじゃないかなぁ。面倒でやる気でないけど…

579:デフォルトの名無しさん
12/03/20 00:21:34.08
パースはどうでもいいけど
head -n 100でもしてデータぐらいは上げて欲しいな

580:デフォルトの名無しさん
12/03/20 02:07:42.81
>>サンプルのダミーデータです。
URLリンク(ideone.com)


581:デフォルトの名無しさん
12/03/20 02:56:01.08
> 文字列Aの対象領域は2バイトx20文字+1バイト10文字で整形されている。
TTTとかMMMとかは半角だけど、>>580が伏せるときに間違えただけ?

582:デフォルトの名無しさん
12/03/20 03:26:33.13
>>580
なぜ、AとBを別々に上げないの?
なぜEUC-JPではなくUTF8なの?
なぜ1行目(コメントヘッダ除く)でいきなり150バイト超えてるの?
Bの4カラム目ってどこなの?2列しかないのに。

583:デフォルトの名無しさん
12/03/20 03:29:49.29
言語どうこう以前に習得しておくべきことが多いwww


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch