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


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

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



1 名前:デフォルトの名無しさん [2009/06/24(水) 23:28:21 BE:454421568-DIA(282072)]
あなたが解けない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++の宿題片付けます 127代目
pc12.2ch.net/test/read.cgi/tech/1244449887/

446 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:35:45 ]
ポインタ使用不可ってのは「*」使用不可ってことなのか?
a[i]だろうが*(a + i)だろうがポインタを使ってることに変わりないんだが

447 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:37:14 ]
やっぱ荒れだすなww


448 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:43:45 ]
>>446
確かにそうだけど、>>424の問いが言いたいのは
定義後に保持するアドレスを自由に変更できるポインタ変数の便利さを知れってことでしょ。
そう考えれば配列は使っていいことになる。

出題者が本当にそういう意図で出したのかどうかは知らん。

449 名前:425 [2009/07/02(木) 15:54:16 ]
>>434
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9655.txt
かなり適当だけど「単純なオセロ」ぐらいにはなってるかと。

450 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:14:04 ]
>>443
/* 課題1 */
#include <stdio.h>
#include <math.h>
int main() {
struct Vertex { double x, y; } verA, verB, verC, verD;
printf("verA (x, y): "); scanf("%lf %lf", &verA.x, &verA.y);
printf("verB (x, y): "); scanf("%lf %lf", &verB.x, &verB.y);
printf("verC (x, y): "); scanf("%lf %lf", &verC.x, &verC.y);
printf("verD (x, y): "); scanf("%lf %lf", &verD.x, &verD.y);
if (verA.y != verB.y || verC.y != verD.y) {
printf("error\n");
} else {
printf("area: %g\n", (fabs(verA.x-verB.x)+fabs(verC.x-verD.x))*fabs(verA.y-verC.y)/2);
}
return 0;
}

451 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:14:06 ]
[1] 授業単元:プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9656.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ:gcc
 [3.3] 言語:C
[4] 期限: 7/6
 よろしくお願いします。

452 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:17:23 ]
>>443 無理やり1レスでスマソ
/* 課題2 */
#include <stdio.h>
#include <stdlib.h>
struct Node { int value; struct Node *next; };
struct Node *init_list() {
struct Node *root = (struct Node *)malloc(sizeof(struct Node));
root->value = 0; root->next = NULL; return root;
}
void add_node(struct Node *root, int value) {
struct Node *p = root->next, *q = root;
while (p) { q = p; p = p->next; }
p = (struct Node *)malloc(sizeof(struct Node));
p->value = value; p->next = NULL; q->next = p;
}
void make_list(struct Node *root) {
int value;
printf("Insert:\n");
while (scanf("%d", &value) != EOF) { add_node(root, value); }
}
void show_list(struct Node *root) {
struct Node *p = root->next;
printf("Show:\n");
while (p) { printf("%d\n", p->value); p = p->next; }
}
void free_list(struct Node *root) {
if (root) { free_list(root->next); free(root); }
}
int main() {
struct Node *root = init_list();
make_list(root); show_list(root); free_list(root); return 0;
}

453 名前:デフォルトの名無しさん [2009/07/02(木) 16:44:35 ]
>>449
ありがとうございます。
動作確認しました、問題なかったです。
たすかりました^v^

454 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 17:41:54 ]
[1] 授業単元: 情報プログラミングC
[2] 問題文(含コード&リンク): 7リットルと5リットルのバケツを使って、どちらか一方のバケツに4リットルの水を入れる方法を探す。
[3] 環境
 [3.1] OS: 窓VISTA
 [3.2] コンパイラ名とバージョン: visual studio 2008
 [3.3] 言語: C
[4] 期限: 7/2
[5] その他の制限: 実行できる操作
(a)水道から新たに水を入れてバケツを満杯にする(b)バケツの水を全部捨てる
(c)一方のバケツの水を他方のバケツが満杯になるまで注ぐ(d)一方のバケツの全部の水を他方のバケツに注ぐ
初期状態は両方0リットル。幅優先探索と待ち行列を使用。ただし、ポインタと構造体は使わない。



455 名前:デフォルトの名無しさん [2009/07/02(木) 17:52:28 ]
>>450>>452
非常に助かります
ありがとうございました

456 名前:デフォルトの名無しさん [2009/07/02(木) 19:10:32 ]
>>454
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9657.txt
待ち行列を使用ってのがよくわからんかった。
current_rankは削除しそこねなんで消して(それで再アップするのもなんなんで)。

457 名前: ◆/91kCCQXBo mailto:sage [2009/07/02(木) 19:54:17 ]
>>454 3を5に、4を7に置き換えればOK。
データの受け渡しにポインタ使ってるけど。乱数使ってるから待ち行列に近いのかも。
add cup 7.
transfer from cup7 to cup5.
cup7=2, cup5=5
empty cup 5.
transfer from cup7 to cup5.
cup7=0, cup5=2
add cup 7.
transfer from cup7 to cup5.
cup7=4, cup5=5

>4リットルの容器と、3リットルの容器があり、これらを使って4リットルの容器に2リットルをはかる。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9266.txt

458 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:11:16 ]
> 乱数使ってるから待ち行列に近いのかも。
意味が分からん

459 名前:454 mailto:sage [2009/07/02(木) 20:14:36 ]
>>456>>457
どうもありがとうございました
助かります

460 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:32:20 ]
>>457
乱数使う意味がわからんけど、猿ソートっぽいことやってんの?

461 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:43:13 ]
ヒトだ。ソートは使っていない。
猿解説すると、次の4パターンの動作しかないので、3回の中でその順番をランダムに代えている。
・7リットルのカップを満タンにする(次は、7リットルのカップの中身を5リットルのカップに移す)
・5リットルのカップを満タンにする(略)
・7リットルのカップを空にする(略)
・5リットルのカップを空にする(略)

462 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:03:57 ]
>>446
ポインタを使うなっていうのは、
ポインタ変数を使うなってことでしょ。

aを配列で宣言していれば、
aは(ポインタに変換され得る)配列型の変数であって、
ポインタ型の変数じゃない。

463 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:21:24 ]
[1] 授業単元:Cプログラミング初級演習
[2] 問題文(含コード&リンク):
10個のdouble型の数値を読み込み、最小値の1個を除いた9個の数値の和を出力せよ。
例:1 2 3 4 5 6 7 8 9 10
  54.000000
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc 
 [3.3] 言語:C
[4] 期限: 7/6まで

よろしくお願いいたします。


464 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:29:15 ]
>>463

#include <stdio.h>
#include <float.h>

int main(void){
double n;
double low = DBL_MAX;
double ans = 0;
int i;

for(i=0; i<10; ++i){
scanf("%lf", &n);
ans += n;
if(n < low) low = n;
}
ans -= low;
printf("%f\n", ans);
return 0;
}




465 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:32:12 ]
>>435
>>435
ありがとうございました

466 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:45:37 ]
>>464ありがとうございました

467 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:56:51 ]
>>461
あ、猿とはちょっと違ったのか。
てっきりランダムでごりごりやって気が済んだところでの最適解を使うとかそんなんかと。

468 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:09:43 ]
[1] 授業単元:プログラミング上級
[2] 問題文(含コード&リンク):
C言語を使ってどんな方法でもいいので
コナミコマンド、↑↑↓↓←→←→BAの順番に
ボタンを押されたか判断するプログラムを作成すること。
ヒント1:指定のキーが押される度に、フラグを立てて
最後に「A」が押されたら、処理を判断する
ヒント2:違う順序、または途中で違うキーが押されたらフラグをリセットする
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2009年7月6日10:00まで
[5] その他の制限:DXライブラリを使うこと

469 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:21:30 ]
初級上〜中級下ってとこじゃん

470 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:27:26 ]
ヒントがもはや解答に見える。

471 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:29:00 ]
慣れてないと結構面倒だな
ボタンの取得とか

472 名前:デフォルトの名無しさん [2009/07/02(木) 23:29:21 ]
[1] 授業単元:C言語実習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9658.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:7/10
[5] その他の制限:特にありませんがなるべく簡単なものでお願いします

473 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 23:36:22 ]
>>472
結果が変わってないんだが?

474 名前:デフォルトの名無しさん [2009/07/02(木) 23:42:20 ]
>>473
すみません結果は

1 5 11 13 19
2 6 12 14 21
2 7 15 17 23
4 8 16 20 24
9 10 18 22 25

です



475 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 23:59:50 ]
>>472 >>474

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9659.c

476 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:21:16 ]
>>468ってけっこう簡単に見えて難しくないか?
てかコナミの入社試験でこんなのが昔あったな

477 名前:471 mailto:sage [2009/07/03(金) 00:24:00 ]
慣れてないと難しいよ
脳内にロジックはあるけど昨日の夜にパワー使ったのでいまいち乗らん
せめて中身は無くていいのDXライブラリの読み込んでウインドウを表示するのだけでもあれば・・

478 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:25:58 ]
方向キーの入力を取得するとか言う時点で
WindowsAPIかもっと上位のライブラリ使わないといけないしな

先生も
88224646ba
くらいで勘弁して上げたらいいのに

479 名前:471 mailto:sage [2009/07/03(金) 00:27:30 ]
>>478
DXライブラリはゲーム用なのでその辺は簡単

480 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:35:25 ]
>>468
環境合ってる?

481 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:42:12 ]
>>468をやるには最低限これはwin依存なんだとおもうけどgccで処理できたっけ?

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
}

482 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:42:15 ]
DXライブラリの仕様

--------------------------------------------------------------------------------

必須環境及びソフト

 Windows98以降のOS
 VisualC++ 6.0以降 又は BorlandC++ Compiler 5.5

483 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:44:22 ]
まあVS2008のVC++2008でやってるからそれもってくればいいよ
あとこのライブラリは龍神録が使ってるからそこを見れば基本的なことはわかるよ

484 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:49:58 ]
>>481
gccでもできるよ
コンパイル・リンクするときにどんなオプションつければいいかは忘れたけど



485 名前:468 [2009/07/03(金) 00:56:27 ]
すみません。コンパイラはVisualStudio2008でした。
よろしくお願いします。

486 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:10:05 ]
>>468
#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    int cmd[] = { KEY_INPUT_UP, KEY_INPUT_UP, KEY_INPUT_DOWN, KEY_INPUT_DOWN,
        KEY_INPUT_LEFT, KEY_INPUT_RIGHT, KEY_INPUT_LEFT, KEY_INPUT_RIGHT,
        KEY_INPUT_B, KEY_INPUT_A };
    int key, cnt, num;

    ChangeWindowMode(TRUE);
    DxLib_Init();

    DrawString(5, 5, "Waiting for your namco command...", GetColor(0xFF, 0xFF, 0xFF));

    cnt = 0;
    num = sizeof(cmd) / sizeof(int);
    while(key = WaitKey()){
        if(cmd[cnt] == key) cnt++;
        else cnt = 0;
        if(cnt >= num) break;
    }
    DrawString(5, 30, "Your namco command was accepted! Press any key to exit.", GetColor(0xFF, 0xFF, 0xFF));
    WaitKey();

    DxLib_End();

    return 0;
}

487 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:11:34 ]
あ、頭にナムコがあってnamcoなんて入れてしまった。
namco command → konami commandで。

恥ずかしい。

488 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:21:12 ]
宿題じゃないけど聞きたいのですが
テキストファイルの中身を出力したいと思っています。
そこで次のようなプログラムを作ったのですが
FILE *fp;
fp=fopen("hoge.txt","r");
for(i=0; i<10; i++){
printf("%c\n",fp);
*fp++;
}
fclose(fp);
文字化け?みたいな状態になってしまいました。
そのまま出力したい場合にはどのようにすればいいでしょうか?

489 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:23:22 ]
fpじゃ読めないよ
読み込み関数あるからfopen関連で調べてみ

490 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:24:39 ]
>>488
そのポインタが何を指していて、どのようにして内容を読み出し変換されるかをすっ飛ばしてるなぁ。

491 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:49:10 ]
>>488
こんなかんじか

#include <stdio.h>
#include <stdlib.h>

int main(void){
FILE *fp;
fp = fopen("hoge.txt", "r");
if(fp == NULL) exit(-1);
for(;;){
int c = getc(fp);
if(c == EOF) break;
putc(c, stdout);
}
return 0;
}


492 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:50:02 ]
>>491
あ、fcloseしてなかった

493 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:02:07 ]
[1] 授業単元:Cプログラミング入門編
[2] 問題文(含コード&リンク):www-it.sci.waseda.ac.jp/CPR1/class08/kadai2.htm
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ: gcc
 [3.3] 言語: C
[4] 期限: 09年07月16日
[5] その他の制限: ど素人です。本当にごめんなさい。よろしくお願いします。


494 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:04:17 ]
↑補足です。
main関数を使えとの指示がありました。



495 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:13:07 ]
だれ・・・・か・・・・

[1] 授業単元:C++プログラミング
[2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9636.txt
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語: C++
[4] 期限: 09年7月2日
[5] その他の制限:

496 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:22:42 ]
>>495
昨日かおととい同じものがあったよw

497 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:25:03 ]
抽出してみたら>>342だな

498 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:27:16 ]
完成してなかったのかw

499 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:38:30 ]
完成してないです・・・何度も同じ書き込みするのはよくないとわかっていつつも・・・この宿題を出さないと

500 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:43:44 ]
>>495
って>>440は確認したか?

501 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:50:09 ]
>>440さんの見逃してました・・・・。
本当に申し訳ございません!!!!
>>500さんと>>440さんありがとうございます!

502 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 03:22:20 ]
>>471
DXの関数はある程度知ったが、アルゴリズムを考える力が圧倒的に足りない感じなのか
ヒント通りにやろうとするからめんどくさいのであって、各ゲーのコマンド判定ロジックと同じようにすれば楽かと思うよ

503 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 03:22:27 ]
>>489
すぐに返事をいただけまして助かりました。ありがとうございます。
>>491
ご丁寧にプログラムまでいただきありがとうございます。
fopen関係を調べまして何とか自力で解決に至る事ができました。
私はfscanfを用いましたので、1文字ずつのプログラムは助かります。
本当にありがとうございました。

504 名前:451 mailto:sage [2009/07/03(金) 07:43:26 ]
問題のサンプルプログラムが間違ってました。申し訳ないですが再度投稿します。
[1] 授業単元:プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9662.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:7/6
よろしくお願いします。



505 名前:未解決課題 mailto:age [2009/07/03(金) 12:23:34 ]
>>493(waseda/kadai2) 2問。N×N行列とN次の列ベクトルをかける関数を作り、v_0を とし、行列Pを としたときにあらかじめ決めたnに対してベクトルv_1,v_2,...,v_nのすべての要素を に従って計算し表示せよ。 7月16日
>>451>>504 最短路問題を解くアルゴリズムとしてベルマンフォード法がある。 7月6日
>>292 SimMipsにデータキャッシュのヒット率を測定する仕組みを追加し、ヒット率を測定せよ。 7月4日 15:00
>>286(CODE) ルンゲクッタ法 テンプレ無し(不明)
>>273 シンプレックス法のプログラム 7月1日
>>234 >>251(9608)(2) 正規乱数の発生 (ボックスミュラー法)。平均値を求める関数 標準偏差を求める関数 ヒストグラムを作成 7月5日12:00
>>213 アルゴリズムの異なる2つのプログラムを作成し、処理時間の違いを比較せよ。例:マージソートとバブルソート 7月7日
>>192 >>195(10_3)マージソート。 6月30日20:00
>>184 2問。T,スタックによる処理順序を確認するU,キューによる処理順序を確認する 6月29日
>>157 f(x)=xe^x-3を、ニュートン法と二分法で解く 6月29日15時
>>134 2問(往復)。整数と4つの演算子(+, -, *, /)から成る計算木から計算式の文字列を作成する関数 6月30日
>>126 クイックソートで昇順に並べ替える。二分木の中間走査によって昇順に並び変える。 6月28日

506 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:51:52 ]
>>325
コンパイルできなくて、エラーがでました。
ld: 0711-317 ERROR: Undefined symbol: .cos
ld: 0711-317 ERROR: Undefined symbol: .pow
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.

どうしたらいいかわからないんで教えてください

507 名前:デフォルトの名無しさん [2009/07/03(金) 13:13:41 ]
>>506
math.hが上手く読み込めてないからだとは思うけど。
#include <math.h> 、消してない?

ダメそうなら、コンパイル環境を教えてもらえれば。

508 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:18:19 ]
>>506
コンパイルの引数に、
-lm
を追加

509 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:27:00 ]
>>506
#include <stdio.h>
#include <math.h>
>>508 それはコンパイルエラーではないはず。

510 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:39:39 ]
>>509
エラーメッセージを出しているのは、ld つまりリンカ。
外部参照のシンボル cos が未定義、見つからないよと言っている。
だから、そのありかを教えてやれば良い。

511 名前:デフォルトの名無しさん [2009/07/03(金) 14:55:39 ]
[1] 授業単元:情報基礎B
[2] 問題文(含コード&リンク):試験の点数10人分をキーボードから入力し、以下の内容を出力するプログラムを作成せよ。
平均点、標準偏差、得点の高い順の点数リスト(出来れば、バブルソート以外のアルゴリズムでお願いします。)
[3] 環境
 [3.1] OS: Turbo Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月7日まで
[5] その他の制限:特にありません。よろしくお願いします。

512 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:35:32 ]
>>493
最後の方の問題がよくわからなかったので、途中までだけれど
codepad.org/vgTW6ME3

『ベクトルv_1,v_2,...,v_nのすべての要素を計算し表示せよ。』まで実装済み
80行あたりまでが汎用の行列演算処理で、それ以降が今回の問題を解いている

513 名前:512 mailto:sage [2009/07/03(金) 15:39:58 ]
「MltMatrix」って略し方に絶望した そこは「MulMatrix」だろぉぉぉorz
あと、SetMatrixRow関数の呼び出しでコンパイルエラーがでるようならコメントアウトを外してみて
SetMatrixRow(mat, 0, (NUM[]){3}/*&_v0[0]*/); → SetMatrixRow(mat, 0, &_v0[0]);

514 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:45:50 ]
ピタゴラス数が生成されるみたいだね



515 名前:デフォルトの名無しさん [2009/07/03(金) 16:07:54 ]
>>511
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9663.txt

516 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:22:29 ]
>>514
この方法(ピタゴラス数を行列で計算する)は面白いな。初めてみた。
ぐぐったら「ピタゴラス行列」とか呼ばれてて、算数の愛好家には有名みたいだ。

517 名前:デフォルトの名無しさん [2009/07/03(金) 16:32:04 ]
>>512さん
本当にありがとうございます。とても助かります。
ちょっとコンパイルしてみます。

518 名前:511 mailto:sage [2009/07/03(金) 16:32:13 ]
>>515

/tmp/cc9mdrSa.o(.text+0x1f2): In function `main':
: undefined reference to `pow'
/tmp/cc9mdrSa.o(.text+0x217): In function `main':
: undefined reference to `sqrt'
collect2: ld はステータス 1 で終了しました


コンパイルしてみたのですが、こんな表示が出ました。
これはどういうことでしょうか?

519 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:35:28 ]
>>518
>>508

520 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:36:58 ]
>518
その二つの関数が無かったよと

コンパイルの最後にmathが提供してる関数をくっつける作業があるんだけど
そのリンクの段階でもなかったよといわれてる

コンパイルで -lm つけないと

521 名前:デフォルトの名無しさん [2009/07/03(金) 16:37:29 ]
初歩的なことですが・・・
std::string aa;
aa.size(128);
char bb[128];
aaにbbを指定バイト分コピーするにはどうしたらいいですか?
ちなみにbbには0x00を含むバイナリデータも含んでいます。

522 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:37:53 ]
どこにつけていいかわからないなら
makefileの中晒して

523 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:43:22 ]
>>521
aa.assign(bb, bb + sizeof bb)

524 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:49:36 ]
>>523
できました。ありがとうございます。



525 名前:522 mailto:sage [2009/07/03(金) 16:50:07 ]
makefileって何ですか??

526 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:55:43 ]
出題がgccである事をいい事にまたC99でソースを書いてるカスがいるな

527 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:59:09 ]
>>525
拡張子無しのmakefileというのがあるんだけど
コンパイルってmakeとかmake rebuildとかコマンドでやてるんでしょ?

528 名前:511 mailto:sage [2009/07/03(金) 17:02:35 ]
>>527

cc ファイル名.c ってやるとコンパイルできるタイプなんですが・・・・


529 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:10:43 ]
ソースは何で編集してるんだろうww
linuxのコマンドとかそんなのまで説明しないといけないのか?

530 名前:511 mailto:sage [2009/07/03(金) 17:13:45 ]
kwrite編集して、コンソールでこんぱいるしておます。


531 名前:511 mailto:sage [2009/07/03(金) 17:15:49 ]
kwriteで編集して、コンソールでこんぱいるしておます。


532 名前:511 mailto:sage [2009/07/03(金) 17:31:32 ]
>>529

いま言われた通りやってみたらできました!!!

ご迷惑お掛けしました。ありがとうございました!

533 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:56:21 ]
まじ神っす!!

534 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 19:01:05 ]
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
例えば下図に示すように,通行可能なマス目に'0'が,障害物があって通行不能なマス目に'+'が記されている盤がある.
盤の左上をスタート地点,右下をゴール地点として,経路を表示するプログラムを作りなさい.
盤の例
0 0 + 0 +
+ 0 0 0 +
0 + + 0 0
0 0 + 0 0
+ 0 0 0 0

例えばこのようなアルゴリズムが考えられる.

1) 現在位置を表示の後、進行方向に対して,右に進めるなら右に,そうでなければ直進,それもだめなら左に,さらにそれもダメなら後退する.
2) 1を繰り返してゴールに達したらその旨を表示する.ただし,マス目の数分だけ移動してもゴールに達しない場合はその時点で終了する.

入力形式は、

%> ./a.out 00+0+ +000+ 0++00 00+00 +0000

とする.

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7/13

お願いします。



535 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:06:23 ]
>>534 右手沿い
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char *argv[]){
int width[100]={0}, height, try_count=0, i, j, x=-1, y=0, d, pd=0;
int vx[4]={ 1, 0,-1, 0}, vy[4]={ 0,-1, 0, 1};

if(argc<2) return 1;
height=argc-1;
for(i=0;i<height;i++){
try_count+=(width[i]=strlen(argv[i+1]));
for(j=0;argv[i+1][j];j++) printf("%c ", argv[i+1][j]);
printf("\n");
}
for(i=0;i<try_count;i++){
for(j=0;j<4;j++){
d=(pd+j+3)%4;
if(x+vx[d]<0 || x+vx[d]>=width[y] || y+vy[d]<0 || y+vy[d]>=height) continue;
if(argv[y+vy[d]+1][x+vx[d]]!='0') continue;
x+=vx[d];
y+=vy[d];
pd=d;
break;
}
if(x==width[y]-1 && y==height-1) break;
}
if(i<try_count) printf("\nゴールに達した\n");

return 0;
}

536 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:35:10 ]
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): 乱数を使って配列に値を代入するようにせよ。サイズを変化させて時間を計測してみせよ。
サイズが十倍になると計算結果は何倍になるか?
[3] 環境
 [3.1] OS: Windows/vista
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C++
[4] 期限: ([2009年07月9日まで]
[5] その他の制限: 乱数はrand()関数、clock()関数を利用する。

537 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:38:01 ]
>>536の参照データっぽいもの
#include<stdio.h>
void soft_swap(int *x,int *y)
{
int temp;
if(*y<*x){temp=*y;
*y=*x;
*x=temp;}}
void sort_array(int a[],int size){
int i,j;
for(j=0;j<size-1;j++){
for(i=0;i<size-1;i++){
soft_swap(&a[i],&a[i+1]);}}}
int main()
{
int a[100],i,size;
printf("数列のサイズを入力してください\n");
scanf("%d",&size);
printf("数列を入力してください\n");
for(i=0;i<size;i++){
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i<size-1;i++){
sort_array(a,size);}
for(i=0;i<size;i++){
printf("%d",a[i]);}
printf("\n");
return(0);

538 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 21:14:23 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9667.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:7月8日 17:00
[5] その他の制限:

539 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 21:56:21 ]
>>538 課題5
始めにファイル名入れる?

540 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:08:20 ]
1] 授業単元: 数値計算プログラミング
[2] 問題文(含コード&リンク): (1)√57を求めよ (2)三乗根の7を求めよ
               (3)f(x)=3x^3+2x^2+5x-15=0の解を求める
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C++
[4] 期限: ([2009年07月10日まで]
[5] その他の制限:ニュートン法を用いる 初期値 x0=1

541 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:24:47 ]
>>536
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9669.c

こんなくだらない内容だと解釈したけど本当に合ってるのだろうか・・・。

542 名前: ◆/91kCCQXBo mailto:sage [2009/07/03(金) 22:43:48 ]
>>538 課題4 % gcc -o score score.c
jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/11
>>538 課題5 % gcc -o score2 score2.c
jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/12

543 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:07:12 ]
>>540
// ニュートン法で「f(x) = 0」を解く
#include <iostream>
// f(x) および f'(x)
double f1(double x) { return x*x - 57; }
double f1d(double x) { return 2*x; }
double f2(double x) { return x*x*x - 7; }
double f2d(double x) { return 3*x*x;}
double f3(double x) { return 3*x*x*x + 2*x*x + 5*x - 15; }
double f3d(double x) { return 9*x*x + 4*x + 5; }
int main() {
int n; double x; // 繰り返し回数、初期値
n = 10; x = 1.0;
while (n--) { x -= f1(x) / f1d(x); }
std::cout << "(1) " << x << std::endl;
n = 10; x = 1.0;
while (n--) { x -= f2(x) / f2d(x); }
std::cout << "(2) " << x << std::endl;
n = 10; x = 1.0;
while (n--) { x -= f3(x) / f3d(x); }
std::cout << "(3) " << x << std::endl;
return 0;
}

544 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:50:03 ]
いきなりですいません!!
コンパイラしてくれるサイトってありませんでしたっけ??
以前使ったんですけど忘れてしまって...CやらC++やら選択できてコンパイルしたいデータ貼っつけてって感じのダウンロードいらずのサイトなんですけど。。;;
ネットで調べているんですが出てこなくて。
場違いなのはわかっていますが
ここの人なら知ってると思いまして。。
本当すいません



545 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:52:49 ]
>>544
codepad でググるとか

546 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:07:07 ]
そう!それです!codepadでした!!
早くも返答ありがとうございます!
なんかスッキリしましたw
これでレポートだせそうです。
ありがとうございます!






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

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

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