ぼるじょあがC/C++の宿題を片づけますYO! 41代目

このエントリーをはてなブックマークに追加
1ぼるじょあ ◆yBEncckFOU
(・3・)アルェー 一回おきに登場することにしたC++房のぼるじょあですYO!
わからない宿題を片づけますYO!

――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

【歴代スレは>>2-13
2ぼるじょあ ◆yBEncckFOU :05/02/28 07:09:11
3ぼるじょあ ◆yBEncckFOU :05/02/28 07:10:45
4ぼるじょあ ◆yBEncckFOU :05/02/28 07:11:30
5ぼるじょあ ◆yBEncckFOU :05/02/28 07:14:17
ぼるじょあ◆yBEncckFOU は共同体で連続体で群生体だから
 無限の知識と無尽蔵の体力を持ってるんだYO 24時間365日、いつでも質問かかって来いYO

(・3・) アルェー こっちが嫌になるほど質問しろYO

ぼるじょあ◆yBEncckFOU はコテハンじゃないYO
名前欄に「ぼるじょあ#ぶるじょあ」で、キミも今日から ぼるじょあ◆yBEncckFOU だYO

ぼるじょあ◆yBEncckFOU の心得
  良い子には優しく、悪い子はむっしっし、自作自演はちょっとだけだYO

ぼるじょあ ◆yBEncckFOU のフリーソフトとか置いてくれてるHPだYO
http://www.geocities.co.jp/SiliconValley/3908/
6デフォルトの名無しさん:05/02/28 07:27:15
unsigned char array[8];  ←この書き方ってダメ?

Error E2040 ..\lab3.c 18: Declaration terminated incorrectly
↑このエラーはどういうことでしょうか?
7デフォルトの名無しさん:05/02/28 07:29:25
>>6
要素数は16の倍数でなければならない。
8デフォルトの名無しさん:05/02/28 07:39:47
>>1
実生活では誰にも相手してもらえないから、せめてここではかまってもらいたくて
こんなクソスレ立てるんだね
どこまでも迷惑な奴だ
9デフォルトの名無しさん:05/02/28 07:44:08
>>1
早すぎな気もするが乙。
10デフォルトの名無しさん:05/02/28 09:09:56
>7
よくわかんないです。
unsigned char array[8];
この8を16に変えたんだけど、同じエラーが出ました。
よかったら、もう少し細かく説明もらえませんか?
11デフォルトの名無しさん:05/02/28 09:32:28
>>10
前の行がきちんと終了していないか、副作用のあるマクロ定義があるかも試練。
周辺のソースを貼ってみるよろし。
但し、宿題でないのならスレ違い。
12デフォルトの名無しさん:05/02/28 17:23:31
>>6
直訳すると
「失敗 E2040 ..\lab3.c 18: 宣言が間違って終了した」
心当たりはないですか?
すぐ上の行でセミコロンがないとか・・・
13デフォルトの名無しさん:05/03/01 01:52:09
14デフォルトの名無しさん:05/03/01 01:59:03
>>6
コンパイルしたけどそんなエラーでなかった。
15デフォルトの名無しさん:05/03/01 11:40:14
[1] 授業単元: OS
[2] 問題文(含コード&リンク):
問題文というか、宿題の中の分からない事なのですが質問させてください。

1.ユーザーから実行ファイル名を含むコマンドラインを受け取り、いずれかのexecにより実行せよ。
  (例 "emacs test.txt"等と入力されたらそれを実行する。
   だけど、プログラムによっては引数が複数あるのでどのexecを使えばいいのでしょう?)
2.もし、コマンドラインの最後に"&"がある場合は特殊な動作をせよ。
  (例 "emacs test.txt &"等
   strtokを使っているのですが、最後のトークンを特定して引き出すのはどうすればよいのでしょうか)

変な質問の形になってしまいましたがよろしくお願いします。

[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン): G++
 [3.3] 言語:C
16デフォルトの名無しさん:05/03/01 11:45:39
>>15
はしょりすぎ
意味不明
1715:05/03/01 11:55:39
すみません。orz
とりあえず1はなんとかしますので2をお願いします。

シェルもどきのような簡単なコマンドプロンプトを作る宿題なのですが、
fgets( cline, 128, stdin );
cline[strlen(cline)-1] = '\0';
のような形でユーザーからclineにスペースによって分けられた文字列を受け取ります。
それをstrtokで一つ一つ読み込んでいるのですが、”もし最後の文字列が"&"なら〜をせよ”と書いてありまして、
最後のトークンだけ先に引き出すのは可能なのかお聞きしたかったのです。
それともやはり、ループで一つ一つ呼んでNULLになったらその一つ手前が最後、みたいにしなければならないのでしょうか。
18デフォルトの名無しさん:05/03/01 12:08:45
結局すべてのトークンが揃わないと何もできないんだから
全部トークンに分けてから最後が&か見ればいいと思う

1915:05/03/01 12:20:19
分かりました、そうします。
ありがとうございます。

あと、すみませんができればもう一つお願いします。
execv関数を使いたいのですが、
char cline[128];
fgets( cline, 128, stdin );
で得た文字列をchar* []型にするにはどうすればよいのでしょうか。
どのサイトを見てもargv用だと書いてあって、何を試してもcannot convertかinvalid initializerしか出てくれません。orz
20デフォルトの名無しさん:05/03/01 12:43:05
// トークン数がn個までとわかってるなら↓
char** token;
token=malloc(sizeof(char**)*n);
for(i=0;i<n;i++){
token[i]=malloc(128);
}

// なんか処理

// 解放
for(i=n-1;i>=0;i--){
free(token[i]);
}
free(token);
21デフォルトの名無しさん:05/03/01 12:51:08
LNK2005: _DllMain@12 がでます。たすけてください
22デフォルトの名無しさん:05/03/01 12:55:19
↑ちゃんとプロジェクト作り直す
23デフォルトの名無しさん:05/03/01 13:14:44
includeに入るDOS.hって何でしょうか?
24デフォルトの名無しさん:05/03/01 13:19:18
>>23
知るかボケ
25デフォルトの名無しさん:05/03/01 13:29:46
↑↑ms-dos寄りの関数のヘッダ
int21とかエロいのが入ってる
26デフォルトの名無しさん:05/03/01 18:24:32
最近のDOS.Hにはレジスタ関連の構造体入ってないんやね
27デフォルトの名無しさん:05/03/02 07:41:34
リアルタイムにネットワークの転送量を表示したいのですが、
式はどうなるのでしょうか?
dwInOctets
dwInUcastPkts
dwInNUcastPkts
は表示できるのですが、Octetsは通信してない時も値が入ってますし・・
どうかよろしくお願いします。
28Cとアセンブリの混合:05/03/02 12:03:16
charデータをストリーミングファイルから読み16ビット
unsigned numberのodd parity を計算して、
8ビット(7ビット+parity bit)をアウトプット書き出す作業をして
ボーランドプロジェクトとしてコンパイルするという
cコード書けという問題です。

"Odd parity" forces the number of "1s" to be odd including
the parity bit.
Some examples are: x1001110 -> 11001110 x0011001 -> 00011001

どなたかヒントください。

29デフォルトの名無しさん:05/03/02 12:04:32
>>28
マルチは市ねよ
30デフォルトの名無しさん:05/03/02 12:53:47
>>28
うるせーよ
マジ消えてくれ
31デフォルトの名無しさん:05/03/02 13:51:37
>>28
どこがCとアセンブリの混合なんだ?
バカ?
32デフォルトの名無しさん:05/03/02 15:12:38
アセンブリはアセンブリでも、6502のアセンブリで書いてやれw
33デフォルトの名無しさん:05/03/02 15:24:50
ここのスレは宿題片付けんじゃねーのか??
34デフォルトの名無しさん:05/03/02 15:26:29
テンプレも読めん奴のことなど知らん
35デフォルトの名無しさん:05/03/02 15:28:19
いきがってますねー。
36デフォルトの名無しさん:05/03/02 15:31:52
ぼるじょあが片付けるのであって、俺らは知らんよ
37>>28:05/03/02 15:38:03
こいつらは分かってねーだけだよ。親切な私が解いて差し上げました。
 この問題は一つ一つのビットをxorでmaskしたりするのなんかもある。
 unsigned short mask;
unsigned int result = 0;
for ( mask = 0x40; mask; mask >>= 1 ) ここまでの結果はbitsの中の1の数によって0になったり1になったりする。
{
result ^= !!(mask & value); ←odd parity
}
   if ( odd )
{
result = !result;
}
  value |= result << 7;
 unsigned short parity(unsigned short value, int odd)
{
/* ... */
return value;
}
parity(0x4E,1) = 0xCE ←test results
parity(0x19,1) = 0x19
38デフォルトの名無しさん:05/03/02 19:00:04
[1] 授業単元:ファイル処理
[2] 問題文(含コード&リンク):下記参照
[3] 環境
 [3.1] OS:汎用
 [3.2] コンパイラ(バージョン):gcc
 [3.3] 言語:c++
[4] 期限:無期限
[5] その他の制限:なし

問題文:
CSV形式のテキストファイルを読み込み、2次元配列に展開しなさい。
1行のフィールド数は行ごとに可変個であり、フィールドには数字が格納されているものとする。
メモリー効率を考慮して配列のサイズは最小限に留める事。

10, 20, 30
20, 30, 40, 50
30, 40, 50

よろしくお願いします。
39デフォルトの名無しさん:05/03/02 20:15:53
10,,30,30 とか
20,40,50, とか
12,13,3F,ab とか
あったらどうすればいいの?
40デフォルトの名無しさん:05/03/02 20:18:53
>>39
死ねばいいだろ
41デフォルトの名無しさん:05/03/02 20:22:38
馬鹿だな、これを使えば楽勝よ!
http://www.fides.dti.ne.jp/~oka-t/cpplab-boost-spirit.html
4238:05/03/02 20:26:42
>>39
>1行のフィールド数は行ごとに可変個であり、フィールドには数字が格納されているものとする。
数字というのは10進数のことです。
文面から察するに空のフィールドは存在しないと思います。
43デフォルトの名無しさん:05/03/02 21:55:52
AからZの文字を1から26に変換しなさい。
また、27はAA,28はABとなります。

上記の変換が出来れば逆の変換も考えなさい。


さっぱり出来ないです…
44デフォルトの名無しさん:05/03/02 21:59:54
>>43
>>1
45デフォルトの名無しさん:05/03/02 22:08:30
>>43
char c = 'A';
printf("%d", c-'A'+1);
46デフォルトの名無しさん:05/03/02 22:13:06
>>43
>また、27はAA,28はABとなります。

AAが27になるんじゃなくて?
どっちにしても逆の変換もあるなら同じか
4746:05/03/02 22:35:07
>>43
#include <stdio.h>
#include <string.h>
#include <ctype.h>
unsigned alpha2int(const char * s) {
    unsigned n = 0;
    const char * const alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for (; isupper(*s); ++s) {
        n *= 26;
        n += strchr(alpha, *s) - alpha + 1;
    }
    return n;
}
int main(void) {
    char s[256];
    while (scanf("%255s", s) == 1)
        printf("%s -> %d\n", s, alpha2int(s));
    return 0;
}
4843:05/03/03 00:18:06
>>44
失礼しました。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):VC++
 [3.3] 言語:C/C++/どちらでも可

[問題]
AからZの文字を1から26に変換しなさい。
また、AAは27,ABは28となります。

上記の変換が出来れば逆の変換も考えなさい。



英数から数値は、>>45 >>46のレスで理解できました。
ありがとうございます。

数値から英数を自分なりに考えたんですが
26進数でやれば良いんでしょうか?
それだと、0〜25になるし・・・
49デフォルトの名無しさん:05/03/03 00:58:57
'A'+0〜25
50デフォルトの名無しさん:05/03/03 01:20:24
[1] 授業単元:C言語
[2] 問題文:スキュターレ暗号文を以下に示すように自動解読するプログラム
Level1B.Cを作成しなさい。

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ
 [3.3] 言語:C
[4] 期限:今日の朝まで・・

例:
原文
あすミケーネでアテネぐんをむかえうつ

暗号文
あでをすアむミテかケネえーぐうネんつ

暗号文
さいれがいてるんしんよばはをうろよとにう

実行結果
何文字ごとに読みますか?3
さがるんはろにいいんよをようれてしばうと
何文字ごとに読みますか?4
さいしはよいてんがとれるようにがんばろう

明日の再試の問題です、
どなたかお助けを・・さっぱりわかりません。3問あります><
夜分遅くにすみませんが、お願いします!!!!
512問め:05/03/03 01:36:05
[1] 授業単元:C言語
[2] 問題文:吉○家のメニューデータを管理できる構造体を作成し、以下のように必要データランキング
を収集するプログラムlevel2a.c(main)level2b.c(func:並替表示関数)、level2.hを作成しなさい
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ
 [3.3] 言語:C
[4] 期限:今日の朝まで・・
522問め:05/03/03 01:36:41
豚丼     583kcal 320円
牛焼肉丼   785kcal 420円
牛カレー丼  510kcal 290円
焼鳥丼    740kcal 380円
豚キムチ丼  605kcal 370円

実行結果
吉○屋メニューランキング
1:カロリーランキング
2:安価ランキング
etc:終了
No.?1
品名     カロリー 値段
牛焼肉丼   785kcal 420円
焼鳥丼    740kcal 380円
豚キムチ丼  605kcal 370円
豚丼     583kcal 320円
牛カレー丼  510kcal 290円

吉○屋メニューランキング
1:カロリーランキング
2:安価ランキング
etc:終了
No.?2
品名     カロリー 値段
牛カレー丼  510kcal 290円
豚丼     583kcal 320円
豚キムチ丼  605kcal 370円
焼鳥丼    740kcal 380円
牛焼肉丼   785kcal 420円
533問め:05/03/03 02:03:21
[1] 授業単元:C言語
[2] 問題文:Mバーガーのメニューデータより注文したい商品番号と数量と時刻に対する
売上分布の結果を出力するプログラムlevel3a.c(main)、level3b.c(func:集計用関数)level3.hを作成せよ
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ
 [3.3] 言語:C
[4] 期限:今日の朝まで・・

543問め:05/03/03 02:05:39
Mバーガーメニューデーター
甘辛チキンバーガーセット    504円
ベーコンエッグバーガーセット  556円
エビカツバーガーセット     525円
てりやきバーガーセット     504円
フィシュバーガーセット     504円
ハンバーガーセット       399円
チーズバーガーセット      399円

実行結果
1:甘辛チキンバーガーセット    504円
2:ベーコンエッグバーガーセット  556円
3:エビカツバーガーセット     525円
4:てりやきバーガーセット     504円
5:フィシュバーガーセット     504円
6:ハンバーガーセット       399円
7:チーズバーガーセット      399円
0:集計
何番?6
数量?3
何時?12
553問め:05/03/03 02:06:18
1:甘辛チキンバーガーセット    504円
2:ベーコンエッグバーガーセット  556円
3:エビカツバーガーセット     525円
4:てりやきバーガーセット     504円
5:フィシュバーガーセット     504円
6:ハンバーガーセット       399円
7:チーズバーガーセット      399円
0:集計
何番?6
数量?4
何時?13

1:甘辛チキンバーガーセット    504円
2:ベーコンエッグバーガーセット  556円
3:エビカツバーガーセット     525円
4:てりやきバーガーセット     504円
5:フィシュバーガーセット     504円
6:ハンバーガーセット       399円
7:チーズバーガーセット      399円
0:集計
何番?5
数量?2
何時?20
1:甘辛チキンバーガーセット    504円
2:ベーコンエッグバーガーセット  556円
3:エビカツバーガーセット     525円
4:てりやきバーガーセット     504円
5:フィシュバーガーセット     504円
6:ハンバーガーセット       399円
7:チーズバーガーセット      399円
0:集計
何番?0
563問め:05/03/03 02:08:05
1:甘辛チキンバーガーセット 2:ベーコンエッグバーガーセット 3:エビカツバーガーセット 4:てりやきバーガーセット
5:フィシュバーガーセット 6:ハンバーガーセット  7:チーズバーガーセット
どのデータ売上分布を見たいですか?5

0時 0個 : 1時 0個 : 2時 0個 : 3時 0個 :
4時 0個 : 5時 0個 : 6時 0個 : 7時 0個 :
8時 0個 : 9時 0個 : 10時 0個 : 11時 0個 :
12時 0個 : 13時 0個 : 14時 0個 : 15個 0個 :
16時 0個 : 17時 0個 : 18時 0個 : 19時 0個 :
20時 2個 : 21時 0個 : 22時 0個 : 23時 0個 :
フィッシュバーガーセット売上個数:2個
フィッシュバーガーセット売上金額:1008円

0時 0個 : 1時 0個 : 2時 0個 : 3時 0個 :
4時 0個 : 5時 0個 : 6時 0個 : 7時 0個 :
8時 0個 : 9時 0個 : 10時 0個 : 11時 0個 :
12時 3個 : 13時 4個 : 14時 0個 : 15個 0個 :
16時 0個 : 17時 0個 : 18時 0個 : 19時 0個 :
20時 2個 : 21時 0個 : 22時 0個 : 23時 0個 :
ハンバーガーセット売上個数:7個
ハンバーガーセット売上金額:2793円

3問目が長すぎで読みづらくなってすみません。。
朝まで待ってみます。どうか〜!!
57デフォルトの名無しさん:05/03/03 03:38:30
おまえマルチやったんかい
58デフォルトの名無しさん:05/03/03 04:03:43
>>57
すいません、さっきのスレにも書きました。
今日のテストがんばります!
59デフォルトの名無しさん:05/03/03 04:15:18
> cat level2.h
#include <stdio.h>
#include <stdlib.h>

struct menu {
char name[16];
int cal;
int val;
};

void display(struct menu *m, int n);
void func(struct menu *m, int n, int f);
60デフォルトの名無しさん:05/03/03 04:16:39
> cat level2a.c
#include "level2.h"

struct menu yoshimaruya[] = { { "豚丼", 583, 320 }, { "牛焼肉丼", 785, 420 }, { "牛カレー丼", 510, 290 }, { "焼鳥丼", 740, 380 }, { "豚キムチ丼", 605, 370 } };

int main(void)
{
int n, f;
n = sizeof(yoshimaruya) / sizeof(struct menu);
display(yoshimaruya, n);
while(1){
printf("吉○屋メニューランキング\n");
printf("1:カロリーランキング\n");
printf("2:安価ランキング\n");
printf("etc:終了\n");
printf("No.?");
scanf("%d", &f);
switch(f){
case 1:
func(yoshimaruya, n, 1);
break;
case 2:
func(yoshimaruya, n, 2);
break;
default:
return 0;
}
}
}
61デフォルトの名無しさん:05/03/03 04:17:11
> cat level2b.c
#include "level2.h"

void display(struct menu *m, int n)
{
int i;
for(i = 0; i < n; i++){
printf("%-16s %5dkcal %5d円\n", m[i].name, m[i].cal, m[i].val);
}
}

int sortfunc1(const void *a, const void *b)
{
return ((struct menu *)b)->cal - ((struct menu *)a)->cal;
}

int sortfunc2(const void *a, const void *b)
{
return ((struct menu *)a)->val - ((struct menu *)b)->val;
}

void func(struct menu *m, int n, int f)
{
if(f == 1)
qsort(m, n, sizeof(struct menu), sortfunc1);
else
qsort(m, n, sizeof(struct menu), sortfunc2);
display(m, n);
}
62デフォルトの名無しさん:05/03/03 05:44:23
>level2a.c
#include <stdio.h>
#include "level2.h"

int main(void)
{
MenuData md[5] = {{"豚丼", 583, 320}, {"牛焼肉丼", 785, 420}, {"牛カレー丼", 510, 290},
{"焼鳥丼", 740, 380}, {"豚キムチ丼", 605, 370}};
int i;

while (1) {
//入力待ち
printf("\n吉○屋メニューランキング\n1:カロリーランキング\n2:安価ランキング\netc:終了\nNo.?");
scanf("%d", &i);

switch (i) {
case 1:
case 2: //並び替え
func(md, i);
break;
default:
return 0;
}
}
}
63デフォルトの名無しさん:05/03/03 05:52:03
#include <stdio.h>
#include "level2.h"
void func(MenuData *lpmd, int fSort) {
int i, j;
MenuData mdTemp;
switch (fSort) {
case 1://カロリーランキング
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 5; j++) {
if (lpmd[i].Calorie < lpmd[j].Calorie) {
mdTemp = lpmd[i];
lpmd[i] = lpmd[j];
lpmd[j] = mdTemp;
}}}
break;
case 2: //安価ランキング
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 5; j++) {
if (lpmd[i].Price > lpmd[j].Price) {
mdTemp = lpmd[i];
lpmd[i] = lpmd[j];
lpmd[j] = mdTemp;
}}}
break;
}
//結果表示
printf("品名 カロリー 値段\n");
for (i = 0; i < 5; i++) {
printf("%-10s%6dkcal%6d円\n", lpmd[i].Name, lpmd[i].Calorie, lpmd[i].Price);
}
return;
}
64デフォルトの名無しさん:05/03/03 05:52:33
>level2.h
typedef struct _MenuData {
char *Name;
int Calorie;
int Price;
} MenuData;

void func(MenuData *, int);
65デフォルトの名無しさん:05/03/03 05:55:48
>level3a.c
#include <stdio.h>
#include "level3.h"
int main(void)
{
MenuData md[7] = {{"甘辛チキンバーガーセット", 504, 0}, {"ベーコンエッグバーガーセット", 556, 0}, {"エビカツバーガーセット", 525, 0},
{"てりやきバーガーセット", 504, 0}, {"フィッシュバーガーセット", 504, 0}, {"ハンバーガーセット", 399, 0}, {"チーズバーガーセット", 399, 0}};
int i, amount, hour;
while (1) {
//入力待ち
for (i = 0; i < 7; i++) {
printf("\n%d:%-29s%5d円", i + 1, md[i].Name, md[i].Price);
}
printf("\n0:集計\n何番?");
scanf("%d", &i);
switch (i) {
case 0://集計
func(md);
return 0;
case 1: case 2: case 3: case 4: case 5: case 6: case 7: //数量と時間の入力待ち
printf("数量?");
scanf("%d", &amount);
do {
printf("何時?");
scanf("%d", &hour);
}while (!(hour >= 0 && hour <= 23));
md[i - 1].Amount[hour] += amount;
break;
}
}
}
66デフォルトの名無しさん:05/03/03 05:57:38
>level3b.c
#include <stdio.h>
#include "level3.h"

void func(MenuData *md)
{
int i, j, total;
while (1) {
//入力待ち
for (i = 0; i < 7; i++) {
printf("\n%d:%s ", i + 1, md[i].Name);
}
printf("\nどのデータ売上分布を見たいですか?");
scanf("%d", &i);
switch (i) {
case 1: case 2: case 3: case 4: case 5: case 6: case 7: //集計表示
--i;
total = 0;
for (j = 0; j < 24; j++) {
if (j % 4 == 0) {
printf("\n");
}
printf("%2d時:%4d個 : ", j, md[i].Amount[j]);
total += md[i].Amount[j];
}
printf("\n%s売上個数:%d個\n%s売上金額:%d円\n", md[i].Name, total, md[i].Name, md[i].Price * total);
break;
default:
return;
}
}
}
67デフォルトの名無しさん:05/03/03 05:58:04
>level3.h
typedef struct _MenuData {
char *Name;
int Price;
int Amount[24];
} MenuData;

void func(MenuData *);
68デフォルトの名無しさん:05/03/03 06:01:31
あ、>>63はlevel2b.cね。
69デフォルトの名無しさん:05/03/03 06:25:14
>>500
ありがとうございました!間に合いそうです。
がんばるぞぉぉー!本当に夜分遅くから朝早くにかけてお世話になりました。
本当に感激です、、ここはイイ板ですね。イイ住人さん達がいるから


みなさん、問題をたくさん張ったりたくさん書き込みしちゃって
見ずらしくなしたり色々と迷惑かけちゃってすいません。迷惑かけた分
自分はテストがんばってきます。ありがとうございましたー!!!!!
70デフォルトの名無しさん:05/03/03 06:25:35
>>500
ありがとうございました!間に合いそうです。
がんばるぞぉぉー!本当に夜分遅くから朝早くにかけてお世話になりました。
本当に感激です、、ここはイイ板ですね。イイ住人さん達がいるから


みなさん、問題をたくさん張ったりたくさん書き込みしちゃって
見ずらしくなしたり色々と迷惑かけちゃってすいません。迷惑かけた分
自分はテストがんばってきます。ありがとうございましたー!!!!!
71デフォルトの名無しさん:05/03/03 07:01:15
500?
72デフォルトの名無しさん:05/03/03 07:03:32
73デフォルトの名無しさん:05/03/03 10:45:46
なんで >>62-68http://pc5.2ch.net/test/read.cgi/tech/1109394073/500
だと思ったんだ?自演厨か?
74デフォルトの名無しさん:05/03/03 13:43:32
これからはうpろーだーを使うこと!
75デフォルトの名無しさん:05/03/03 13:45:28
76ななし:05/03/03 17:44:41
levele3.h
levele3a.c
levele3b.c
levele2.h
levele2a.c
levele2b.c
って間違ってない?コンパイル出来ないけど。大丈夫ね?
77デフォルトの名無しさん:05/03/03 17:59:55
>>76
先生が気づかなければOK
78デフォルトの名無しさん:05/03/03 19:26:34
(´・ω・`)
79デフォルトの名無しさん:05/03/03 19:31:48
              ,,,,,,,,,,,,,,,,,,,,
             /": : : : : : : : \
           /-─-,,,_: : : : : : : : :\
          /     '''-,,,: : : : : : : :i
          /、      /: : : : : : : : i     ____________
         r-、 ,,,,,,,,,,、 /: : : : : : : : : :i    /
         L_, ,   、 \: : : : : : : : :i   / 先生に気づかれたら
         /●) (●>   |: :__,=-、: / <    負けかなと思ってる  
        l イ  '-     |:/ tbノノ    \    
        l ,`-=-'\     `l ι';/      \  回答者(年齢・性別不詳)
        ヽトェ-ェェ-:)     -r'          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         ヾ=-'     / /  
     ____ヽ::::...   / ::::|
  / ̄ ::::::::::::::l `──''''   :::|
80デフォルトの名無しさん:05/03/03 20:35:43
        _....._{{ 〃
      , - ' ,..、、.ヾ{{フ'⌒`ヽ、
    /  ,:', -‐‐` ´ '´⌒ヽ ヾ:、
.   ,'   ,'´ ,ィ ,ィ ,' ,   `ヽ',  ',-<
    ,'   .i  /|. /.| { i,  i,  }.  }_,,}}        
   ! |  ! .,'-.{ ! !|; |`、.}゙!.! |.  ! ヽ.       
   ', ', |Vァ=、゙、 `゙、!-_:ト,リ', l ! |   ゙',     
    ヽ、', l:!Kノ}.     f:_.}i゙i: リ ! l ル'  
     | l!iヾ- ' ,   .!__:ノ ゙ ,リ l リ'´     ほえ〜、知世ちゃん
.     ',|!!、    r‐┐   ` ノ' /,イ       プログラミングわかんないよ〜
      'i!゙、ヽ、 ゙ー'  _, ィ,:',:''´         
      ゙:、ィ、jヾー::: 'iヘ ノ',リ              
   ,、- '´ ヽ、゙、   { `>"、              
  /\\    ',   }   //`ヽ
            _,.. ----- 、_
81デフォルトの名無しさん:05/03/03 21:23:00
>>79
気づかれた負けなのは質問者じゃないの




(´・ω・`)
82デフォルトの名無しさん:05/03/04 06:39:52
昨日、再試の問題について質問したものです。無事出来ました!
親切な方々、どうもありがとうございます。。
83デフォルトの名無しさん:05/03/04 06:51:00
おめでと。
84デフォルトの名無しさん:05/03/04 07:51:07
お、無事に済んだのか。よかったな。
85デフォルトの名無しさん:05/03/04 14:12:00
今日は赤飯だな。
86デフォルトの名無しさん:05/03/04 14:40:36
俺の家では青飯だ
87デフォルトの名無しさん:05/03/04 15:37:10
>>86
何入れて青くするの?
88デフォルトの名無しさん:05/03/04 16:11:27
塩化銅
89デフォルトの名無しさん:05/03/04 18:38:27
硫酸銅で良くない?
90デフォルトの名無しさん:05/03/04 19:04:51
まぁ何か拘りがあるんだろうよ
91デフォルトの名無しさん:05/03/04 19:49:17
[1] 授業単元:C++
[2] 問題リンク:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=235
[3] 環境
 [3.1] OS:Win
 [3.2] コンパイラ(バージョン):Visual C++
 [3.3] 言語:C++
[4] 期限:明日
[5] その他の制限:なし

今、航空シュミレーションっていうのをやってるんですけど、
なかなかおもしろそうな課題なんですけど、手強い…。
92デフォルトの名無しさん:05/03/04 19:49:46
問題文は、
「仮定」
#滑走路は1本。
#すべての離陸にかかる時間一定。
#すべての着陸にかかる時間一定。
#着陸と離陸にかかる時間が同じである必要はない。
#飛行機はランダムタイムでくる。
#飛行機がくる時間は確立によって与えられる。
#着陸の飛行機は離陸の飛行機より優先。
「インプット」
#着陸にかかる時間。
#離陸にかかる時間。
#着陸にくる飛行機の平均時間(確率)
#離陸にくる飛行機の平均時間(確率)
#クラッシュなしで着陸する飛行機がまてる最大の時間
#ランニングタイムの時間
「アウトプット」
output参照。
93デフォルトの名無しさん:05/03/04 19:50:17
手伝ってください。よろしくお願いします。
94デフォルトの名無しさん:05/03/04 19:56:39
ふつう、シミュレーションって書かない?
95デフォルトの名無しさん:05/03/04 20:00:12
こいつは今までずっとシュミレーションと言ってきたのだろうか…
周りも指摘してやればいいのに
96デフォルトの名無しさん:05/03/04 20:01:11
いや、>>91 は趣味でやってるからそれであってる
97デフォルトの名無しさん:05/03/04 20:05:10
シュミレーションで検索 約 513,000 件
シミュレーションで検索 約1,490,000 件
98デフォルトの名無しさん:05/03/04 20:09:45
>>97
何からとってきたソースなのか書いていない。
しかも、件ってどういう単位だよ。どう比較すればよいのかも書いていない。
それが意味するところは?

役に立たない資料だな。

おまえしねよ。
99デフォルトの名無しさん:05/03/04 20:10:02
趣味だから良いんだよ バーカ
100デフォルトの名無しさん:05/03/04 21:28:32
すいません。シミュレーションでした。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/241.cpp
一応、やってみたのですが・・・。

Car Wash 問題のような一方向だと、わかるのですが、
この問題の場合、2方向から来て、一方向が優先をもっているんですけど、
それをとくアルゴリズムがよくわからないんです。
101デフォルトの名無しさん:05/03/04 22:19:02
102101:05/03/04 22:35:33
間違ったところあった…
103デフォルトの名無しさん:05/03/04 22:40:10
101さん最高ーーーーーーーーーー!!!!!まじで超うれしーーーーー!!!!
本当、ありがとうごさいました。
104デフォルトの名無しさん:05/03/05 00:31:39
VC++でもいいのかな?
105void:05/03/05 00:52:28
[1] 授業単元:C言語
[2] 問題文:32bitの掛け算
long型×long型→long型の配列[2]([0]は上位32bit、[1]は下位32bitが格納される)
[3] 環境
 [3.1] OS: Unix
 [3.2] コンパイラ:GCC
 [3.3] 言語:C
[4] 期限:月曜まで
106113:05/03/05 02:49:17
>>105

long long 型を使っていいんだったら簡単なんだけど
配列に戻す意味がないような・・

#include<stdio.h>

static void
Mul( long p1, long p2, long pV[2] ) {
long long w = (long long)p1 * (long long)p2;
pV[ 0 ] = (long)( w >> 32 );
pV[ 1 ] = (long)w;
}

static void
Test( long p1, long p2 ) {
long v[ 2 ];
Mul( p1, p2, v );
printf( "%lx * %lx = %llx\n", p1, p2, ( (long long)v[ 0 ] << 32 ) | ( v[ 1 ] & 0x00000000ffffffffLL ) );
}

107デフォルトの名無しさん:05/03/05 03:02:18
>>106
シフトと加算でやろうと思ったが、符号付きなので面倒くさくてヤメタ。
Cだとキャリーフラグもオーバーフラグも使えないのでマンドクセ。
108デフォルトの名無しさん:05/03/05 03:46:24
>>107
出来ない言い訳をわざわざ書いて恥をさらしてる椰子発見
109デフォルトの名無しさん:05/03/05 03:53:53
>>108
アホか。long longを使わないで何とかしてやろうと思ってたんだが、
ビール飲んだので頭が回らなくなったんだよ。
110デフォルトの名無しさん:05/03/05 03:56:35
>>107じゃないけど、出来たから晒してみまつ。
#include <stdio.h>
#include <stdlib.h>

#define LOWORD(l) ((unsigned short)(l))
#define HIWORD(l) ((unsigned short)(((unsigned long)(l) >> 16) & 0xFFFF))

int main(void)
{
unsigned long i, j, k[2];
unsigned long L1, L2, H1, H2, H1H2, H1L2, L1H2, L1L2;
unsigned long HH, HL, LH, LL;

scanf("%lx,%lx", &i, &j);
L1 = LOWORD(i);
H1 = HIWORD(i);
L2 = LOWORD(j);
H2 = HIWORD(j);
H1H2 = H1 * H2;
H1L2 = H1 * L2;
L1H2 = L1 * H2;
L1L2 = L1 * L2;
LL = LOWORD(L1L2);
LH = HIWORD(L1L2) + LOWORD(L1H2) + LOWORD(L1H2);
HL = HIWORD(LH) + HIWORD(L1H2) + HIWORD(L1H2) + LOWORD(H1H2);
HH = HIWORD(HL) + HIWORD(H1H2);
k[0] = (HH << 16) + LOWORD(HL);
k[1] = ((unsigned long)LOWORD(LH) << 16) + LL;
printf("0x%.8lx * 0x%.8lx = 0x%.8lx%.8lx\n", i, j, k[0], k[1]);
return 0;
}
111デフォルトの名無しさん:05/03/05 04:17:00
>>110
これだと引数が負のとき、うまくいかないのでは?
112デフォルトの名無しさん:05/03/05 06:39:35
>>105
long long を使わないとこんな感じかな
#include<stdio.h>

static void
_Mul( unsigned short p1[ 4 ], unsigned short p2[ 4 ], unsigned short pV[ 4 ] ) {
int i, j;
for ( i = 0; i < 4; i++ ) {
for ( j = 0; j + i < 4; j++ ) {
int wI = i + j;
unsigned int w = p1[ i ] * p2[ j ];
while ( w ) {
w += pV[ wI ];
pV[ wI++ ] = (unsigned short)w;
if ( wI >= 4 ) break;
w >>= 16;
}
}
}
}

113デフォルトの名無しさん:05/03/05 06:40:22
>>112 の続き
staticvoid
Nanashi( long p, unsigned short pV[ 4 ] ) {
pV[ 0 ] = (unsigned short)p;
pV[ 1 ] = (unsigned short)( p >> 16 );
if ( p < 0 ) {
pV[ 2 ] = pV[ 3 ] = (unsigned short)-1;
} else {
pV[ 2 ] = pV[ 3 ] = 0;
}
}

static void
Mul( long p1, long p2, long pV[2] ) {
unsigned short w1[ 4 ];
Nanashi( p1, w1 );
unsigned short w2[ 4 ];
Nanashi( p2, w2 );
unsigned short wV[ 4 ];
wV[ 0 ] = 0;
wV[ 1 ] = 0;
wV[ 2 ] = 0;
wV[ 3 ] = 0;
_Mul( w1, w2, wV );
pV[ 1 ] = wV[ 1 ] << 16 | wV[ 0 ];
pV[ 0 ] = wV[ 3 ] << 16 | wV[ 2 ];
}

114デフォルトの名無しさん:05/03/05 06:41:13
>>113
static void
Test( long p1, long p2 ) {
long v[ 2 ];
Mul( p1, p2, v );
long long w = ( (long long)v[ 0 ] << 32 ) | ( v[ 1 ] & 0x00000000FFFFFFFFLL );
printf( "%lx * %lx = %llx(must be %llx)\n", p1, p2, w, (long long)p1 * (long long)p2 );
}

115デフォルトの名無しさん:05/03/05 07:06:27
116デフォルトの名無しさん:05/03/05 07:10:53
117デフォルトの名無しさん:05/03/05 10:07:48
116です。確率をdoubleで入れるの忘れてただけでした。
出来ました。
118デフォルトの名無しさん:05/03/05 11:34:21
>>117
とりあえずcoutでlcとtcが逆になってるところある
あと<algorithm>は消し忘れた
119デフォルトの名無しさん:05/03/05 16:38:41
[1] 授業単元: C++
[2] 問題文(含コード&リンク): http://www.geocities.jp/yanmaniyanmani/gazou.txt
[3] 環境
 [3.1] OS: win
 [3.2] コンパイラ(バージョン):Visual C++
 [3.3] 言語:C++
[4] 期限:2005年3月6日
[5] その他の制限: CGIに書き換えて提出

自力で多少考えたのですがどうしてもCGIに書き換える事が出来ませんでした
助力をお願いいたします
120デフォルトの名無しさん:05/03/05 17:10:02
何この糞コード。
121デフォルトの名無しさん:05/03/05 17:10:34
つーか、関数ってコメントの後の大量の変数は一体何さ。
122デフォルトの名無しさん:05/03/05 17:24:24
CGIってなんなのさ?
123デフォルトの名無しさん:05/03/05 17:36:15
最後のprintfで結果を出力している部分にタグ出力を追加すればいいのかな。

それにしてもこのソースをリファクタリングしろって問題の方がふさわしい気がする。
この問題を出した先生を知りたい。
124デフォルトの名無しさん:05/03/05 17:44:07
なんかかわいそうだな…
125119:05/03/05 17:44:36
このC++で作成したプログラムをCGI上で実行させるために書き換えたいのですが
どうしたらいいか分かりません

関数の算術式ですが
   

S=1−(V-V')/(V+V')

V=√ i=n j=m
Σ Σ V^2
i=0 j=0  ij

という式を使っています
126デフォルトの名無しさん:05/03/05 17:51:44
入出力だけちゃんとすればあとは弄らなくてもいいよ
127デフォルトの名無しさん:05/03/05 20:23:08
先ずは入出力を整理して、出力は必要ならタグにするって処かな。
128デフォルトの名無しさん:05/03/05 20:44:34
>>119
問題はやらなくていい。
そのソース書いたキチガイを滅多打ちにしてこい。
129デフォルトの名無しさん:05/03/05 21:37:15
俺CGI言語って知ってるよ。
なんかDragonForceとかいうやつが考え出した言語らしいよ。
想像(妄想)するだけでプログラムができるみたい。
DragonForceの得意言語の中にも”CGI”ってあった。
130119:05/03/05 22:11:29
とりあえず入出力の部分をいじってみます
みなさまの助言ありがとうございました
131デフォルトの名無しさん:05/03/05 23:03:33
Intelは、プログラマーが数百のコアを載せたプロセッサを活用する手助けをする
新しいプログラミング言語「Baker」に取り組んでいる。同社はこの言語を複数の処理エンジンを持つ
自社のネットワークプロセッサでテストしており、またこの言語が作業負荷の変化を検出して、
必要な処理コアを割り当て、不必要なコアの消費電力を削減する方法をデモした。

http://www.itmedia.co.jp/enterprise/articles/0503/04/news030.html

※ローマ字読みしないように
132デフォルトの名無しさん:05/03/05 23:42:18
声優と、グラフィッカーをはげしく募集していますよ。力を試してみませんか?
MMO製作企画を立ち上げました。協力できる人はこちら
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm

2chスレ
http://game10.2ch.net/test/read.cgi/mmominor/1108379282/l50

ただ今職人(プログラマ、グラフィッカー)はげしく募集中!
あなたの力を思う存分発揮してください。


133最凶VB厨房:05/03/05 23:43:01
>>119
ワロタ
134デフォルトの名無しさん:05/03/06 00:11:58
>>133
目クソが鼻クソを笑ってんじゃねえよ
135デフォルトの名無しさん:05/03/06 01:00:28
>>119
何がおかしいか書いて味噌。
136デフォルトの名無しさん:05/03/06 07:52:15
>>119
詳細きぼんぬ。
そのソースって自分で書いたわけじゃないの?
137デフォルトの名無しさん:05/03/06 12:50:57
>>119
すごいなこのソース。
一番びっくりなのはC++と書いてありながらC++な記述がないところだな。
コメントは最近のCコンパイラだと微妙だし。
138デフォルトの名無しさん:05/03/06 12:58:48
>>135
せめて配列使えって
139デフォルトの名無しさん:05/03/06 13:08:06
>>119
134行目、void Input_image(void);って意味を成してないな。
140ゆう:05/03/06 13:24:23
大学でファイルをやってるんですが、
ファイルをオープン、文字を1文字づつ読み込んで表示、
クローズ、オープンの時のエラー処理あり。のプログラムを
Cでお願いします。
141デフォルトの名無しさん:05/03/06 13:33:07
>>140
>1の質問テンプレくらい使ってくれ
142デフォルトの名無しさん:05/03/06 13:34:32
それ以前に>>140はマルチですから!残念!
二度とくるなよ
143ゆう:05/03/06 13:44:22
【質問テンプレ】
[1] C言語
[2] ファイルをオープン、文字を1文字づつ読み込んで表示、
クローズ、オープンの時のエラー処理あり。
[3] 環境 →テストに向けての暗記のためなし
 [3.1] OS: Windows 
 [3.2] コンパイラの暗記したいだけなのでなし
 [3.3] 言語:C
[4] 期限:今日の夕方
[5] その他の制限:簡単に、とにかく簡単に‥
すみません‥よろしくです‥
144デフォルトの名無しさん:05/03/06 13:47:06
>>139
確かに、意味がわからないな。
ここまでくるとわざとやってるとしか思えないな。
145デフォルトの名無しさん:05/03/06 13:47:18
>>143
他所で答えてもらってただろ
何が不満なんだ
146デフォルトの名無しさん:05/03/06 13:50:24
簡単がいいっていってんだろ
147デフォルトの名無しさん:05/03/06 13:52:32
どんなに簡単に書いても文句言ってくるだろうな
148デフォルトの名無しさん:05/03/06 13:55:28
それはいえてるな‥
149デフォルトの名無しさん:05/03/06 14:02:07
暗記云々とかわけわからん
150デフォルトの名無しさん:05/03/06 14:03:11
しょうがないなぁ

int main(void){
char b;
long size,i;
FILE* in = fopen(ファイル名,モード);
if(in == NULL)exit(0);
fseek(in,0,SEEK_END);
size = ftell(in);
fseek(in,0,SEEK_SET);
for(i = 0;i < size;i++){
fread(&b,1,1,in);
fputc(b,stdout);
}
fflush(stdout);
if(fclose(in) < 0)puts("Close Fault");
return 0;
}
151デフォルトの名無しさん:05/03/06 14:43:25
>>150
size要らないじゃん。
fread()よりfgetc()の方が適当だろうし。

>>143
入力ストリームのクローズではエラーが発生しないよ。
152デフォルトの名無しさん:05/03/06 14:57:46
>>143
>コンパイラの暗記したいだけなのでなし
ならスレ違い
153デフォルトの名無しさん:05/03/06 16:04:56
>>151
・ファイルをオープン、
・文字を1文字づつ読み込んで表示、
・(ファイルを)クローズ
・オープンの時のエラー処理あり。

の箇条書きでは
154デフォルトの名無しさん:05/03/06 19:35:56
>>119のソースを関数化してみたんだけど、大体200行ちょっとになったよ。
C++を普段触らないんで、細かいところは間違いまくってるとは思いますが、、、。
スパゲッティーというか無駄無駄ソースだね。これ教師のソースじゃねーでしょ?

ところでこいつの閾値以上のカウントのところでよいアルゴリズムないですか?
漏れの頭じゃどうしても糞な方法しか思いつきませんでした。

データ用意するのマンドクセかったのでデバッグシテマセン。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/247.txt
155デフォルトの名無しさん:05/03/06 23:27:46
[1] 授業単元:ガウスの消去法
[2] 問題文:ガウスの消去法を用いて以下の連立一次方程式を解きなさい。
|2 -2 1| |x1| |-9|   |x1| |-2|
|1 -1 2| |x2|=|-3| 解  |x2|=| 3|
|-1 3 1| |x3| |12|   |x3| | 1|
[3] 環境
   OS:Rinux
   言語:C
どなたか教えて下さい。お願いします。
156デフォルトの名無しさん:05/03/06 23:30:39
>>155
いつまでだよ
157デフォルトの名無しさん:05/03/06 23:43:52
もうぐぐれば腐るほど出てくるのに・・・Σ( ゜д゜)釣りか
158155:05/03/06 23:44:49
>>156
1週間後です…。
159デフォルトの名無しさん:05/03/06 23:46:25
>>155
Rinux というOSがある場所または購入できる店を教えてくれ
160デフォルトの名無しさん:05/03/06 23:56:15
プログラミング上達させるコツってありますか?
161デフォルトの名無しさん:05/03/07 00:00:10
>>160
何でこのスレで聞くんだよボケ
162デフォルトの名無しさん:05/03/07 00:32:08
>>160
1.質問する前に自分がすべきことを考え、実行すること
2.質問のタイミングを見極めること
3.質問の仕方、内容を充分に吟味すること
プログラミングに限らないと思うけどな
163デフォルトの名無しさん:05/03/07 02:40:43
「物を知らない」ってのは何の障害にもならない。知らなきゃ調べればいいだけ。
でも「調べ方を知らない」ってのは致命的。おまいらの周りにもそういう奴いない?
164デフォルトの名無しさん:05/03/07 12:39:32
[1] 授業単元: C
[2] 問題文: 従業員番号、氏名、年齢を1組にsた構造体の変数をmain関数で宣言し、そのアドレスを副関数に引き渡す
副関数では、従業員番号、氏名、年齢を入力し、main関数にもどる。main関数で構造体の内容を表示する

[3] 環境
 [3.1] OS: win
 [3.2] コンパイラ(バージョン):Visual C
 [3.3] 言語:C

よろしく        








 おねがいします
165デフォルトの名無しさん:05/03/07 13:35:28
>>164
#include <stdio.h>
typedef struct {int no; char name[64]; unsigned age;} EMPLOYEE;
int in(EMPLOYEE * e) {
    return scanf("%d%63s%u", &e->no, e->name, &e->age) == 3;
}
int main(void) {
    EMPLOYEE e;
    if (!in(&e)) return 1;
    printf("no == %d\nname == %s\nage == %u\n", e.no, e.name, e.age);
    return 0;
}
166デフォルトの名無しさん:05/03/07 22:03:43
ts
167デフォルトの名無しさん:05/03/08 10:59:27
[1] 授業: Cプログラミング
[2] 問題文 (下記のプログラムを参照して ) 次のオプションを加えよ。
wordcase(各語の最初の文字だけを大文字に変換  例:hello world -> Hello World)
        sentencecase(各文の最初の文字だけを大文字に変換 例: see spot. see spot run. -> See spot. See spot run.)
        reverseall (ファイルの文を逆に並べよ 例: the quick brown fox. -> .xof nworb kciuq eht)
[3] 言語: C
[4] 期限: 早ければ早いほどいいです。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
FILE *f1 = fopen("file1.txt","r");
FILE *f2 = fopen("file2.txt","w+");
char buff[128];
int br;
while( (br = fread(buff, 1,1, f1)) > 0) {
int i;
for (i = 0 ; i < br ; ++i) {
buff[i] = toupper(buff[i]);
}
fwrite(buff, 1, br, f2);
}
fclose(f1) ;
fclose(f2);
return 0;
}
168デフォルトの名無しさん:05/03/08 12:24:31
>>167
関数だけ
void wordcase(char buff[128]){
int i;
for(i=0;i<128;i++){
if(buff[i]=='\0'){return;}
if(i==0 || (i>=1 && buff[i-1]==' ')){
if(buff[i]>=0x61 && buff[i]<=0x7A){
buff[i]=buff[i]-0x20;
}}}}
void sentencecase(char buff[128]){
int i;
for(i=0;i<128;i++){
if(buff[i]=='\0'){return;}
if(i==0 || (i>=1 && buff[i-2]=='.')){
if(buff[i]>=0x61 && buff[i]<=0x7A){
buff[i]=buff[i]-0x20;
}}}}
void reverseall(char buff[128]){
int i,l=0;
char rebuf[128];
for(i=0;i<128;i++){if(buff[i]=='\0'){break;}l++;}
for(i=0;i<l;i++){rebuf[l-i-1]=buff[i];}
for(i=0;i<l;i++){buff[i]=rebuf[i];}
}
169デフォルトの名無しさん:05/03/08 13:15:10
>>168

 ありがとうございます。
 しかし、これをどうmainと関連付けたらいいのでしょうか?
170デフォルトの名無しさん:05/03/08 14:00:48
自分で考えろ低脳
171デフォルトの名無しさん:05/03/08 14:57:20
>>169
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/248.txt

こんなかんじかな
./〜.exe english.txt オプション番号
172デフォルトの名無しさん:05/03/08 19:56:03
>>170
そういう言い方はないと思います。
173デフォルトの名無しさん:05/03/08 21:34:29
自分で考えろ無能
174デフォルトの名無しさん:05/03/08 23:26:54
あんまり酷いこと言わないで下さい。
自殺したい心境なんですから。
175デフォルトの名無しさん:05/03/09 01:14:20
つ[練炭]
176デフォルトの名無しさん:05/03/09 01:28:11
>>174
するならWebカメ回しながら首吊ってくれ
177デフォルトの名無しさん:05/03/09 10:45:40
文字列逆順に並べるやつ、たしかライブラリ関数であったよね。
なんだったかな・・・
178デフォルトの名無しさん:05/03/09 10:58:24
>>171
しかし、パッと見むだの多いぷろぐらむだな。
179デフォルトの名無しさん:05/03/09 12:24:10
>>177
そんなのないヨ。自分で作りましょうネ
180デフォルトの名無しさん:05/03/09 12:34:16
std::reverseとかか?
Cのstrrevなら非標準だし
181デフォルトの名無しさん:05/03/09 14:29:07
>>178
すいませんmain関数は僕が作りました。
ぱっと見の無駄という部分を教えて頂ければ今後の勉強にもなるので
どうか教えてください m(_ _)m
182デフォルトの名無しさん:05/03/09 14:38:37
同じインタフェースの関数を使い分けるんなら、
関数ポインタの配列にしろとか?

つか >>167 のmainって、1文字ごとに fread なんかして、
しかも読んだ個数でループして、むしろこっちの方が無駄が多い。
183デフォルトの名無しさん:05/03/09 16:18:41
ところで、171の 使用方法:%s の %s には何の意味があるんですか?
184デフォルトの名無しさん:05/03/09 16:21:40
>>181
確かにパッと見で気になるできだったので列挙してみた。
main()
・使用方法表示のfprintf()は何度も呼び出さない。必要なら文字列リテラルの連結を使うといい。
・コマンドラインのargcのチェックとファイルオープンは別にした方が見通しがよくなる。
・ファイルオープンできないときにも使用方法を表示するのに、オプション番号が異常の時には何も表示が無くアンバランスな設計になっている。
・全く同じ構造のwhileループが3つもある。ループ内で分岐しても問題はないだろう。

a2i()
・atoi()を使わないのは何故? #使用禁止ということなら仕方ないが。

wordcase()
・この関数で長さ制限する理由は? 単純に文字終端に達するまでループすればよい。
#寧ろそうしないのであれば、128文字以上の行で誤動作することになる。
・文字をコードで表すのは判りにくい。単純に0x61ではなく'a'を使うほうがよい。
・toupper()を使わない理由は? そうでなくても0x20ではなく'a' - 'A'などとする方がよい。

sentencecase()
・行の先頭を見つけるロジックとして、行の先頭かピリオドを見つけたらフラグを立て、最初の英文字を大文字化したらフラグを落とすという戦略はどうだろう。
#wordcase()にも応用しやすいし、空白が複数来た場合にも対応できる。

reverseall()
・ここでは何故文字列終端を見つけるのにstrchr()を使わないのだろう。
・一次バッファを動的に確保するようにすれば、この関数も文字数制限が無くなる。
#このままでは128文字以上の行で破綻を来たす。
・一次バッファから戻すときにstrcpy()を使わない理由は?

全体
・一文でも複文化するのはいいが、その場合は一行野郎に拘る必要ないだろう。
185184:05/03/09 16:23:26
>>183
おーほんとだ。これは拙いな。こんな感じにでもしとくのがいいね。
fprintf(stderr, "Usage: %s ...\n"
"option_number:\n"
"1:...\n"
"2:...\n"
"3:...\n", argv[0]);
186デフォルトの名無しさん:05/03/09 16:29:05
ところで、なぜ171はfputs つかわないで、removeN なんてうんちな関数作ったんですか?
187デフォルトの名無しさん:05/03/09 16:37:16
argc<2 || argc>3
これって argc != 3 でよくなくない?
188デフォルトの名無しさん:05/03/09 16:39:20
ひどいでつね、これは
189184:05/03/09 17:01:37
>186が何を言いたいのか判らない…

>>187
ですね。
コマンドラインの設計としては、オプション番号を先にしてファイル名は任意なのがいいけど。
#その場合、ファイル名が無ければ標準入力、複数あったらそれぞれのファイルを処理すると。
190デフォルトの名無しさん:05/03/09 17:22:42
>>183-189さま

指摘ありがとうございます。 m(_ _)m

>使用方法:%s の %s
これは>>185さんの指摘通りargv[0]を表示させようと思ってて書き忘れてました^^;

>argc<2 || argc>3
確かにargc!=3ですね^^;

精進します。。
191デフォルトの名無しさん:05/03/09 18:14:41
>>189
なにがわからないんだ?
printf("%s\n",s); を fputs にかえりゃいいっつってるだけですが
192デフォルトの名無しさん:05/03/09 18:16:04
そうすれば、removeN をわざわざ作らなくていい。わかった? >>189
193デフォルトの名無しさん:05/03/09 18:18:34
>>191
fputsじゃなくてputsだろ。
194デフォルトの名無しさん:05/03/09 18:19:42
>>191
あのやり方だとreverseallで改行ごとひっくり返して
まずいことになりますけど。
195デフォルトの名無しさん:05/03/09 18:31:50
なにいってんの?
196184=189:05/03/09 18:33:46
>191-192 =>186?
阿呆は引っ込んでていいよ。
197デフォルトの名無しさん:05/03/09 18:36:02
ちなみに俺が 171 のをやるとこんな感じだなぁ ( ´,_ゝ`)プッ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/249.txt
198デフォルトの名無しさん:05/03/09 18:41:44
返信がとぎれたんですけど。
184 でやったみたく、ツッコミどころ満載のソースに偉そうに長文レスしてみろよ
199184=189:05/03/09 18:47:46
>>197
・opt_numのチェックをしとかんと。ついでに言えば、配列は0オリジンで仕様は1-3。
・sentencecase()のスイッチは','じゃなくて'.'じゃないと。
・で、そのスイッチ(sw)、グローバル変数にする理由は?
・改行コードの扱いは?
200デフォルトの名無しさん:05/03/09 18:48:23
やべ、微妙なところで間違えだらけだな。
もういないのか?
201デフォルトの名無しさん:05/03/09 18:49:39
ほへほへ、じゃ、次は君がソース作ってお手本みせてちょ
待ってるよ
202184=189:05/03/09 18:52:46
>>197
他にもあるっぽいけど確認するの面倒だからパス。

>>201
指摘したことを念頭に丹念に書き直せば大体同じようなものになるよ、きっと。
203デフォルトの名無しさん:05/03/09 18:55:55
・opt_numのチェックをしとかんと。ついでに言えば、配列は0オリジンで仕様は1-3。ー>reverseall 間違ってますね。確かにチェックはあった方がいいか
・sentencecase()のスイッチは','じゃなくて'.'じゃないと。ー>ほんとだ
・で、そのスイッチ(sw)、グローバル変数にする理由は? −>引数を減らそうと思って
・改行コードの扱いは? ー>いまいちわからん

作ってください、できるでしょ、すぐに。使用に詳しい人のソースが見たいなぁ
204デフォルトの名無しさん:05/03/09 18:57:58
>>197
気になったところだけ追記。
・「間違え」ではなく「間違い」。
・exit()の引き数はEXIT_FAILUREなのにmain()からのreturnでは0。
・toupper()の*++pはおかしかないか?
205デフォルトの名無しさん:05/03/09 19:02:13
・toupper()の*++pはおかしかないか?
これは絶対いわれると思ったけど、なにがいけないの?
206デフォルトの名無しさん:05/03/09 19:05:32
>>205
副作用完了点が曖昧コードは保守性を落とす。
それに、先にインクリメントしちゃダメじゃね?
207デフォルトの名無しさん:05/03/09 19:06:09
けっきょく作る気はないのか。
おまけに日本語の指摘をされてお仕舞いとは。
208206:05/03/09 19:06:24
じゃねぇや、スイッチの直後が先頭文字って仮定が問題なのか。
209デフォルトの名無しさん:05/03/09 19:08:54
>副作用完了点が曖昧コードは保守性を落とす。
けど、だいたいの本は、優先順位が、前置演算が一番高かったりするわけなのだが・・・

少し、スレを汚しすぎたのでこれぐらいにしときます。
210184=189=204:05/03/09 19:13:45
>>208
そういうこと。

>>209
私なら別の文にするねぇ。

>>207
最早作る気ないよ。
だって既に二人も作ってるんだから0から作る楽しみがないし、
改修するにしても既に指摘済みだから同じことの繰り返しになっちゃう。
似たような別の問題があったらそんときはやらんでもないけど。

ついでに日本語の指摘をもう一言。
主語を省くなら、二文の主語を一致させないと混乱の元。
作る気がないのは私だけど、指摘されるのは私じゃない。
211デフォルトの名無しさん:05/03/09 19:19:48
>>209
toupperは実装がマクロである可能性がある。特にCコンパイラでは。
212デフォルトの名無しさん:05/03/09 23:42:27
213デフォルトの名無しさん:05/03/10 00:24:58
[1] 授業単元:配列
[2] 問題文(含コード&リンク):
1.標準入力よりgetchar()関数で文字列を入力し、暗号文字にして出力する。暗号文字にするには%→&に、1→2に、A→BにZ→[に{→|に…
とひとつずつずらすやり方で変換する(アスキーコード表による)ただし入力は0x20〜0x7dのにゅうりょくとし、それ以外は変換しない。また入力は50文字を限度とする。
2.2次元配列に各月の英単語を宣言時に初期化する。
各月の単語はjanuary〜decemberの文字列で。
しょりとして標準入力より月数を入力すれば表より対応する英単語を出力する。
これを999が入力されるまで繰り返す。
(入力は数値の入力とし、正常な月数でなければ"input ERROR!!"を出力する。また数値以外の場合のエラー処理は考えなくてもいい。)
[3] 環境
 [3.1] OS:WINNT
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:明後日
[5] その他の制限:printfやscanf程度の命令文で
214ぼるじょあ:05/03/10 00:30:40
>>213
(・3・) エェー  そんくらい自分でやれYA
215デフォルトの名無しさん:05/03/10 00:36:04
ぼるじょあが片付けると言ってるわりには何もやってねえよな
216デフォルトの名無しさん:05/03/10 00:37:29
>>215
>>214 は偽物だろYO!
217デフォルトの名無しさん:05/03/10 00:40:34
偽者であろうがなかろうが
ぼるじょあが片付けると言ってるわりには何もやってねえよな
218ぼるじょあ:05/03/10 00:50:01
>>215
(・3・) エェー  じゃあ嫌々やってやるYO
           カップラーメンくったらNE
219デフォルトの名無しさん:05/03/10 00:52:17
ぼるじょあが嫌々宿題を片付けるスレかよ
220デフォルトの名無しさん:05/03/10 00:54:57
>>218
はやくやれグズ
221デフォルトの名無しさん:05/03/10 01:07:13
結局やらねえのか
222ぼるじょあ:05/03/10 01:17:38
(・3・) エェー  飯くったけど無理
           getcharで文字列入力って意味わかんない
223ぼるじょあ:05/03/10 01:21:04
(・3・) エェー  なに?1文字毎にエンター押すの?
           50字限度って言ってるけどそれより短い状態で終わりたいときはなにをもって終わりとするの?
224デフォルトの名無しさん:05/03/10 01:23:01
>>223
バカかお前
225ぼるじょあ:05/03/10 01:25:21
>>224
(・3・) エェー  馬鹿だから教えてYO
           つか、getcharなんて使ったことねーYO
226デフォルトの名無しさん:05/03/10 01:29:25
今宿題やって下さるぼるじょあさんはいらっしゃいますか?
227デフォルトの名無しさん:05/03/10 01:32:36
>>226
馬鹿のぼるじょあしかいません
228デフォルトの名無しさん:05/03/10 01:34:58
ぼるじょあさんがいらっしゃるのに、私めごときが答えるわけにはいきません
229デフォルトの名無しさん:05/03/10 01:35:00
>>223
Ctrl-Cに決まってるダロ!
230ぼるじょあ ◆yBEncckFOU :05/03/10 01:40:02
>>229
(・3・) エェー  EOF?
           なんか僕ダメポだから君がやってYO
           getcharわかんね
231デフォルトの名無しさん:05/03/10 01:40:43
>>230
(・3・) エェー  そんくらい自分でやれYA
232デフォルトの名無しさん:05/03/10 01:41:52
[1] 授業単元: 単元って科目名ですか?科目はC++言語です
[2] 問題文(含コード&リンク):簡単な四則演算プログラムの作成

キーボードもしくはファイルから入力して、そのデータの四則演算を行う
処理結果をファイルに出力を行うこと
二項演算が出来ればよい
各演算の処理ごとにメンバ関数を作成すること
プログラムの動作と機能を説明せよ
クラスやストリームI/OなどC++の機能を使って作成せよ

[3] 環境
 [3.1] OS: windowsXP pro
 [3.2] コンパイラ(バージョン): Microsoft Visual C++ 6.0
 [3.3] 言語:C++
[4] 期限:2005年3月10日 午前9時半提出(9時までにお願いします)
[5] その他の制限: 作成時の苦労した点も発表しなきゃいけないんで出来ればお願いします
233ぼるじょあ ◆yBEncckFOU :05/03/10 01:44:53
>>231
(・3・) エェー  gets使っていい?
234デフォルトの名無しさん:05/03/10 01:46:10
>>213
#include<stdio.h>
void
Q1( void ) {
int i;
for ( i = 0; i < 50; i++ ) {
int wC;
if ( ( wC = getchar() ) == -1 ) break;
putchar ( wC < 0x20 || wC > 0x7d ? wC : wC + 1 );
}
}
void
Q2( void ) {
char wMeses[][ 12 ] = {
"enero", "febrero", "marzo", "abril", "mayo", "junio",
"julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"
};
int wMes;
while ( scanf( "%d", &wMes ) == 1 ) {
if ( wMes == 999 ) break;
if ( wMes < 1 || wMes > 12 ) fprintf( stderr, "input ERROR!!\n" );
else printf( "%s\n", wMeses[ wMes - 1 ] );
}
}

235デフォルトの名無しさん:05/03/10 01:47:01
>>233
むちゃくちゃじゃねーか!もう
236234:05/03/10 01:48:10
月の名前が西語になってるのは英語でのスペルに自信がなかったからで他意はありません。
237デフォルトの名無しさん:05/03/10 01:49:00
Ctrl-C≠EOF



ここのぼるちゃんのらべる低いなぁ…
238ぼるじょあ ◆yBEncckFOU :05/03/10 01:50:18
>>234
(・3・) エェー  なんでお前がやってんだYO
           ぼるじょあがんばってやってんだYO
           余計なことするなYO
239ぼるじょあ ◆yBEncckFOU :05/03/10 01:51:28
(・3・) エェー  ぼるじょあ増殖中だZO!!
240デフォルトの名無しさん:05/03/10 01:54:40
>>230
WindowsのEOFはCtrl-Zだ!
つーか、Ctrl-CでEOFって何?OS/2?
241デフォルトの名無しさん:05/03/10 01:55:51
>>232
作成時の苦労した点
1:問題が曖昧すぎて何をさせたいのか推測するのが大変でした。
2:組み込み演算子を使えばいいものをわざわざメンバ関数にする意図がわからず苦労しました。

と苦労する前に予測してみる。
242ぼるじょあ ◆yBEncckFOU :05/03/10 01:57:14
(・3・) エェー  しらねーYO!!
243232:05/03/10 01:57:54
>241
組み込み演算子とか習ってないんですよまだ
好きなように記述していいんでしょうけどかえってよくわかりません
ここって今いる人が居なくなっちゃったら夕方まで人来ませんよね……
244デフォルトの名無しさん:05/03/10 02:02:07
>>243
+とか-とか*とか/とか習ってないって?
245デフォルトの名無しさん:05/03/10 02:02:08
>>243
組み込み演算子って、+ とか - とかのことよ?
246デフォルトの名無しさん:05/03/10 02:03:56
>245
あ、それは習いました!さらにメンバ関数を作るってことだと思います
247デフォルトの名無しさん:05/03/10 02:13:12
誰かがやってくれてると信じて、また9時に参ります。よろしくお願いします。
248デフォルトの名無しさん:05/03/10 02:16:59
>>213
短いし簡単な関数しか使ってないYO!内容も簡単になっているからこのまま
コピペして出してNE!

1問目。改行で終了するようになっているのは勝手に直してNE!
#include <stdio.h>
int main(void){int c,i=0;while((c=getchar())!='\n'&i++<50)putchar(31<c&c<126?++
c%125:c);}

2問目。
#include <stdio.h>
int main(void){char m[][10]={"january","february","march","april","may","june",
"july","august","september","october","november","december"};int i;for(;;){
scanf("%d",&i);if(0<i&i<13){puts(m[i-1]);continue;}if(i==999)break;puts(
"input ERROR!!");}}
249デフォルトの名無しさん:05/03/10 02:19:19
>248
ぼるじょあさん 名前名前!
250デフォルトの名無しさん:05/03/10 02:23:47
>>247
#include <iostream>
using namespace std;

struct Calc {
double Add( double p1, double p2 ) { return p1 + p2; }
double Sub( double p1, double p2 ) { return p1 - p2; }
double Mul( double p1, double p2 ) { return p1 * p2; }
double Div( double p1, double p2 ) { return p1 / p2; }
};
int
main() {
double w1, w2;
cin >> w1 >> w2;
Calc wC;
cout
<< wC.Add( w1, w2 ) << endl
<< wC.Sub( w1, w2 ) << endl
<< wC.Mul( w1, w2 ) << endl
<< wC.Div( w1, w2 ) << endl
;
}

ファイル出力は ./a.out > ファイル名、これがやだったら ofstream でググってね。
苦労した点は 241 に書いた通りだよ。
>>249
忘れたことに書き込みボタンを押した直後に気がついたYO!
252247:05/03/10 02:33:34
>250
ありがとうございました。これでやっと卒業できます(つдと)
253デフォルトの名無しさん:05/03/10 02:37:33
>>252
最初からそう言えば誰もやらなかったのに・・・
254デフォルトの名無しさん:05/03/10 02:44:47
>253
^^
255デフォルトの名無しさん:05/03/10 03:58:19
>>248
なんという酷いコードだ!
256デフォルトの名無しさん:05/03/10 11:24:33
ここの住人ってわざわざ文字コードを使うよね…
文字定数を使えば処理系依存を無くせるのに…
あと ctype.h の関数も覚えた方がいいよ…
257デフォルトの名無しさん:05/03/10 11:30:37
( ´_ゝ`)フーン
258デフォルトの名無しさん:05/03/10 11:40:50
文字定数は使ってるけど、ctypeなんてコンソールじゃなきゃ使わないからなぁ。
てかcinしかつかわね。
259デフォルトの名無しさん:05/03/10 12:49:21
cursesライブラリの端末制御関数を利用、言語はC、OSはLINUXでKtermを使っています。
ソース内とは別にあるpbmファイルを読み込むようにするためには、ソースをどのように実行&コンパイルすれば良いでしょうか?
260デフォルトの名無しさん:05/03/10 12:52:28
>>259
includeすれば?
261デフォルトの名無しさん:05/03/10 12:53:11
>>1を読んでね。お願いだから
262デフォルトの名無しさん:05/03/10 14:10:13
>>256
激しく同意+あげ
263デフォルトの名無しさん:05/03/10 14:15:15
>>262
ほう、EBCDICもOKとな、すげーな
264デフォルトの名無しさん:05/03/10 15:08:38
>>256
お手本を見せてください。
265256:05/03/10 15:37:49
256 なんか(・∀・)イイ って気づいた

>>262 ナカーマ(*・∀・)人(・∀・*)
>>263 'A' - 'a' みたいのはダメだヨ。規格は '0' から '9' までは続いている事を保証してるけどネ
>>264 目的が違うけど >>212 で ctype.h 使ったヨ。ツッコミあればどうぞ
266デフォルトの名無しさん:05/03/10 19:57:14
char CH[] = { 'A', 'B', 'C', ... , 'Z' };
char ch[] = { 'a', 'b', 'c', ... , 'z' };

OK
267デフォルトの名無しさん:05/03/10 22:40:10
[1] 情報処理
[2] 次の微分方程式を解くプログラムを作成せよ
L(d^2Q/dt^2)+R(dQ/dt)+Q/C=V
L=100(mH)、C=0.01(μF)、R=510Ω、V=1(V)
t=0でQ=0とする
[3] 環境
 [3.1] win
 [3.2] CPad for Borland C++Compiler Ver2.31
 [3.3] C
[4] 3月11日夜12時までにメールで提出
[5] 特になし

LCR回路についての方程式です。どなたかお願いします〜
268デフォルトの名無しさん:05/03/10 23:00:58
>>267
2階の微分方程式なのに、
初期条件1つって、
何か書き忘れてない?

あと、解析的に解けると思うけど、
数値積分して、プロットする必要があるのかなあ?
269デフォルトの名無しさん:05/03/10 23:25:30
>>268
ああー言っちゃったw
意外とこの先生面白いよ
270デフォルトの名無しさん:05/03/11 00:31:33
>>267
専門的すぎて分からん。
だいたい、微分方程式ってもいろいろ方法あった気がするんだが指定されてないのか?
271デフォルトの名無しさん:05/03/11 00:43:08
オイラー法とかルンゲ・クッタ法だね。ポピュラーなものは。
それから>>268の言うように、t=0の時のdQ/dtの初期値がわからないと
どちらにしろ解けん。
272デフォルトの名無しさん:05/03/11 01:00:09
/** ==== 俺用memo ====
やったなぁ昔、なつかしい。>電気回路
L di/dt + Ri + 1/c S i dt = Vに変換するんだったっけ。忘れた。
明日暇なので教科書引っ張り出してやってみよ。
==== 俺用memo ==== **/
273267:05/03/11 01:22:58
確かに初期条件1コ抜けてました・・・スマソ
ステップ電圧をかけたときだから、t=0で(dQ/dt)=0です。
これが終わらないと俺に春休みが来ない・・・つД`)

方法は特に指定されてないッス。
>>272
お願いします!
274デフォルトの名無しさん:05/03/11 01:24:37
もう一つの条件

>LCR回路についての方程式
275267:05/03/11 01:29:09
あとついでに抵抗にかかる電圧Vr=RIも出してもらえるとむっちゃ助かります。

連投スマソ
276ぼるじょあ ◆yBEncckFOU :05/03/11 01:33:19
(・3・) エェー  ぼるじょあが皆の質問聞き流してやるYO
277デフォルトの名無しさん:05/03/11 01:35:50
>>267

double Q(double t){
    return 0.01-(2201*cosh((sqrt(2201)*t)/20.)+51*sqrt(2201)*sinh((sqrt(2201)*t)/20.))/(220100.*pow(2.71828182845904523536029,(51*t)/20.));
}
278デフォルトの名無しさん:05/03/11 01:39:13
>>277
( ゚Д゚)ゴルァ!!Mathematica使ったら反則。
279デフォルトの名無しさん:05/03/11 01:43:21
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):

整数10個を入力し、その中の同じものの個数をかぞえる
プログラムを作成せよ。

入力例 10 20 30 16 12 10 43 30 10 12

入力  回数
出力結果
10 3
20 1
30 2
16 1
12 2
43 1
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン): borland 5.5
 [3.3] 言語:C
[4] 期限:明日の昼までに提出
[5] その他の制限:

高校のプログラミングの時間に出された宿題です。
自分で悩んでやってましたが、
入力した数値が10個全部出てしまい、上手く
出力結果通りなりませんでした。
どうかどなたかご教授願います。
280277:05/03/11 01:43:22
>>278
ばれたか。しかし単純な線形微分方程式だからプログラムで
解くまでもない…例が悪いよなぁ。
281デフォルトの名無しさん:05/03/11 01:49:33
>>279
自分で書いたソース出してみなされ
282デフォルトの名無しさん:05/03/11 01:50:58
>>276
少しはまともな答え出してみろボケ
283デフォルトの名無しさん:05/03/11 02:02:15
>>279
int
main( void ) {
int i, j;
int w[ 10 ];
for ( i = 0; i < 10; i++ ) {
if ( scanf( "%d", &w[ i ] ) == 0 ) return;
}
int wC[ 10 ];
for ( i = 0; i < 10; i++ ) wC[ i ] = 1;
for ( i = 0; i < 9; i++ ) {
if ( wC[ i ] ) {
for ( j = i + 1; j < 10; j++ ) {
if ( w[ i ] == w[ j ] ) {
wC[ i ] += wC[ j ];
wC[ j ] = 0;
}
}
}
}
for ( i = 0; i < 10; i++ ) if ( wC[ i ] ) printf( "%d\t%d\n", w[ i ], wC[ i ] );
}

284267:05/03/11 02:02:19
書き方悪かったかな。方程式を解くっていうか、Q,RIのtに対する値を返すプログラムを作成せよ、でした。
度々スンマソン
285デフォルトの名無しさん:05/03/11 02:13:09
>>274
それは何の条件も意味しない
286279:05/03/11 02:16:09
#include<stdio.h>
int main(void)
{
int a[10],i,j;
int kaisu;
printf("数を10個入力してください:\n");
for(i = 0; i < 10; i++)
scanf("%d", &a[i]);
for(i = 0; i < 10; i++){
kaisu = 1;

for(j=i+1; j<10;j++)
if(a[i]==a[j]) kaisu++;
printf("%d %d \n",a[i],kaisu);
}

return 0;
}
このようにやってみたのですが、上手く数えれませんでした。
根本的な考えが間違ってるのかもしれませんが
どうかよろしくお願いします。
287ぼるじょあ ◆yBEncckFOU :05/03/11 02:48:40
(・3・) エェー  ぼるじょあ最強だZO
288デフォルトの名無しさん:05/03/11 04:06:12
まずkaisu=1の初期値の場所が・・・
289デフォルトの名無しさん:05/03/11 09:41:06
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
 二つのbinary search treeを作り、与えられたコマンドを実行する。
 
 コマンド:
 Ix string1 string2 .... //x番目のtreeのデータにstringを挿入
 Dx string1 string2 .... //x番目のtreeから与えられたstringを削除
 Px  //x番目のtreeのデータを表示(post-order)
Sx string //x番目のtreeに与えられたstringがあるかどうか示す
 IS //二つのtreeが同じ形をしているかどうか示す
 ID //二つのtreeが全く同じものかどうか示す

xには1か2が入ります。
 コマンドは上の書式で書かれていて、ファイルから読み込む。

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ(バージョン): borland 5.5
 [3.3] 言語:C++
[4] 期限:4-5時間内
[5] その他の制限:
 期限を見てアホかと思われるでしょうが、
 どなたかお力添え頂けないでしょうか。

もしもの時の連絡先:nyamuri@ホットメール
290279:05/03/11 09:46:57
>>283さん
色々参考にさせてもらいました。
無事解決し、提出できそうです。
どうもありがとうございました。
291デフォルトの名無しさん:05/03/11 13:44:44
>>289
まだ間に合う?
292デフォルトの名無しさん:05/03/11 13:48:08
おかげさまで留年決定しました
293デフォルトの名無しさん:05/03/11 13:49:22
>>291
あと1時間くらいあります。

IS、IDがどうにもこうにも。
294デフォルトの名無しさん:05/03/11 14:05:04
>>293
 IS //二つのtreeが同じ形をしているかどうか示す
 ID //二つのtreeが全く同じものかどうか示す

「同じ形」は何となく意味がわかるけど
「全く同じ」はどういう意味なんだろう?
295デフォルトの名無しさん:05/03/11 14:23:10
>>294
データも同じって事です。
bool ID(node t1, node t2)
{
if(t1->data != t2->data)
return false;

else{
return ID(t1->right, t2->right);
return ID(t1->left, t2->left);
}

return true;
}

こんなんかと。

296デフォルトの名無しさん:05/03/11 14:44:19
>>295

だとすると、こうじゃない?

bool ID( node t1, node t2 ) {
if ( t1->data != t2->Data ) return false;
if ( ! ID( t1->right, t2->right ) ) return false;
if ( ! ID( t1->left, t2->left ) ) return false;
return true;
}

IS は if ( t1->data != t2->Data ) return false;
の代わりに if ( strcmp( t1->data, t2->Data ) ) return false;
かな?
297デフォルトの名無しさん:05/03/11 14:53:42
bool is_id::iSO(BinaryNode<string> *&t1, BinaryNode<string> *&t2)
{
if((t1->right != NULL)&&(t2->right == NULL))
return false;
else if((t1->right == NULL)&&(t2->right != NULL))
return false;
else if((t1->left != NULL)&&(t2->left == NULL))
return false;
else if((t1->left == NULL)&&(t2->left != NULL))
return false;
else
{
iSO(t1->right, t2->right);
iSO(t1->left, t2->left);
}
return true;
}

長すぎますよね。。
strcmpか。
298デフォルトの名無しさん:05/03/11 14:55:56
>>295
分かりやすく書けば、こんな感じかなあ。
t1 == null で言いたいことが伝わればいいけど。
末端の扱いだけ注意すれば、再帰で一発。

bool ID(node t1, node t2)
{
if (t1 == null && t2 == null) return true;
if (t1 == null && t2 != null) return false;
if (t1 != null && t2 == null) return false;

return ( (t1->data == t2->data) // IS はここを省略
&& ID(t1->right, t2->right)
&& ID(t1->left, t2->left) );
}
299デフォルトの名無しさん:05/03/11 15:06:28
>>298
なるほどです。
ありがとうございます。

300デフォルトの名無しさん:05/03/11 15:09:34
>>298
最初の3行
if ( t1 == null ) return t2 == null;
if ( t2 == null ) return false;
でもいいね。
301デフォルトの名無しさん:05/03/11 15:19:26
ちょっと別の質問になるんですが、
"BinarySearchTree"(insert,delete,search,print用)ってクラス(A)と、
"is_id"(IS,ID用)ってクラス(B)を作りまして、BはAをインクルードしてます。

mainがAもBもインクルードしているんですが、これって問題でしょうか?

インクルード自体は問題ないのかもしれないけど、
main内に
BinarySearchTree T1,T2;
is_id(T1,T2);
としたら、”外部シンボル〜が未解決”を食らいました。


まったりで結構です。
期限過ぎた。。

IS,IDを加えられないまま提出しました。
302デフォルトの名無しさん:05/03/11 15:27:50
>>300
分かりやすくということで大目に見てください。
実際には、>>297のように親ノードの段階で、
子ノードの有無を確認した方がいいでしょうし。
303デフォルトの名無しさん:05/03/11 20:27:40
#include<stdio.h>

void main(void)
{
int moto[8]={8,5,1,4,2,3,6,7};//←
int n;
int i=7;
int tmp=0;
int tmp2=0;
int nn;
int s=0;

for(n=7;n>0;n--)
{
if(moto[i]<moto[i-1])
{

tmp=moto[i];
tmp2=moto[i-1];
moto[i-1]=tmp;
moto[i]=tmp2;
}
i--;
}
for(n=7;n>0;n--)
{
printf("%d",moto[n]);
}
return 0;
}こうやった場合、うまくバブルソートされません、、
どうしてー・・・(つДT)
304デフォルトの名無しさん:05/03/11 20:31:33
面倒でも実際にトレースしてみろ
あと数字を入れ替えるのに必要な変数は1つだ。2つも要らん
305デフォルトの名無しさん:05/03/11 20:56:15
>>304
すいません、実際紙に書いてやるとできました。m(_ _)m
306デフォルトの名無しさん:05/03/11 20:56:55
おめでとう、じゃあそのコードは間違っていないんだよ
307デフォルトの名無しさん:05/03/12 08:11:33
よかったじゃないか。
308デフォルトの名無しさん:05/03/12 09:58:29
>301
>としたら、”外部シンボル〜が未解決”を食らいました。
エラーメッセージはなるべく全部書きましょう。
あなたには意味不明でも識者には有用であったりします。

ちなみに
1.C/C++言語ではコンパイルはソースファイル単位で行われる。つまり他のソースとの整合性はチェックしない。
2.includeは単にそのソースファイルにincludeのファイルを挿入するだけである。
3.コンパイル時には関数宣言があるかはチェックするが、定義があるかどうかをチェックするわけではない。
4.関数を呼び出してるところと関数の定義をするのはリンカの仕事である。

で宣言があって定義がない関数とかはリンカがエラーをはく。
VC++あたりだとおまえさんが少し書いたようなエラーメッセージを出す。
309308:05/03/12 09:59:59
間違えた。
4.関数を呼び出してるところと関数の定義をするのはリンカの仕事である。

4.関数を呼び出してるところと関数の定義をリンクするのはリンカの仕事である。
310デフォルトの名無しさん:05/03/12 12:18:41
[1] 授業単元: C言語
[2] 問題文 次のプログラムが実行されたとき各変数の値がどうなってるか書け
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ(バージョン):Visual C++
 [3.3] 言語:C
[4] 期限:なるべく早く
     ・・・
char c = 'x', *p;

p = &c;
(*p)--; /* ? */
 ・・・
311デフォルトの名無しさん:05/03/12 12:21:06
  ・・・
int a[] = {1,2,3} , *q;

q = &a [ 1 ]
*(q+1) += * (q) ; /* ? */
・・・

?の部分がわかりません
基本かもしれませんがわからないのでお願いします
312デフォルトの名無しさん:05/03/12 12:35:10
>>310
char c = 'x', *p;
p = &c;
//c の値はxの文字コード、pはcへのポインタ

(*p)--;
//ここでpの指しているものにデクリメントをかけている。
//pはcを指しているのでcの値が1減る。
//cの値は文字コードでxの一つ前、wになるハズ。

>>311
int a[] = {1,2,3} , *q;
q = &a [ 1 ];
//aは要素数3のint配列、qはintへのポインタ
//qが指しているのはa[1]、つまりaの二番目の要素

*(q+1) += * (q) ;
//*(q)はaの二番目の要素、*(q+1)はaの三番目の要素、
//aの三番目にaの二番目を加えているから
//a[0] == 1, a[1] == 2, a[2] == 5 になるはず。

313デフォルトの名無しさん:05/03/12 20:19:54
>>310-311
コメントの中は何書いても大丈夫
314デフォルトの名無しさん:05/03/12 20:25:15
先生の悪口とか書いたら大丈夫じゃないだろ
315デフォルトの名無しさん:05/03/13 01:23:04
[1] 授業単元:配列
[2] 問題文(含コード&リンク):
1.9行9列の二次元配列に掛け算の九九の値を格納し、格段ごとに出力する。
2.scanfにより文字列データを入力し、最後から一文字ずつ縦に出力する。ただし入力は20文字までとし、エラーは考えない。
[3] 環境
 [3.1] OS:WINNT
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:なるべく早め
[5] その他の制限:printfやscanf程度の命令文で
316デフォルトの名無しさん:05/03/13 01:25:55
>>315
文字コードは?
317デフォルトの名無しさん:05/03/13 01:28:07
nn[9][9] = {
{1, 2, 3, 4, 5, 6, 7, 8, 9},
{2, 4, 6. 8. 10, 12, 14, 16, 18},
.....
};
終わり
318315:05/03/13 01:33:53
>>316
普通のキャラ文字入力でいいんでないでしょうか?
319デフォルトの名無しさん:05/03/13 01:37:13
わかるところまで書いてみろ
適当に手直ししてやるから
320ぼるじょあん:05/03/13 02:20:22
#include <stdio.h>

int main(void){
long i,j;
long kuku[9][9];

for(i=0;i<9;i++){
for(j=0;j<9;j++){
kuku[i][j] = (i+1)*(j+1);
}
}

for(i=0;i<9;i++){
for(j=0;j<9;j++){
printf("%d ",kuku[i][j]);
}
printf("\n");
}
return 0;
}
( ・ 3 ・ ) エェー こんな漢字?
321ぼるじょあん:05/03/13 02:21:03
#include <stdio.h>

int main(void){
char sos[21];
long i=0;

scanf("%s",&sos);
while(sos[i] != '\0'){
i++;
}

for(;i>0;i--){
printf("%c",sos[i-1]);
}
return 0;
}

( ・ 3 ・ ) エェー なもたいなもたいYO
322ぼるじょあん:05/03/13 02:26:20
#include <stdio.h>

int main(void){
char sos[21];
long i=0;

scanf("%s",&sos);
while(sos[i] != '\0'){
i++;
}
printf("\n");
for(;i>0;i--){
printf("%c\n",sos[i-1]);
}
return 0;
}

( ・ 3 ・ ) エェー 出力縦だからこうだNE
323デフォルトの名無しさん:05/03/13 02:31:12
お馬鹿なソースだなおい
324デフォルトの名無しさん:05/03/13 02:40:26
>>315
1.
#include <stdio.h>
int main(void){
    int i, j, res[9][9];
    for (i = 1; i <= 9; i++)
        for (j = 1; j <= 9; j++)
            res[i - 1][j - 1] = i * j;
    printf("   1  2  3  4  5  6  7  8  9\n");
    for (i = 1; i <= 9; i++){
        printf("%d", i);
        for (j = 1; j <= 9; j++)
            printf("%3d", res[i - 1][j - 1]);
        printf("\n");
    }
}
325デフォルトの名無しさん:05/03/13 05:09:46
ぼっぼぼぼぼるじょあ〜〜〜ん
326デフォルトの名無しさん:05/03/13 13:05:13
>[5] その他の制限:printfやscanf程度の命令文で
ってあるから仕方ないが,
>>324のprintf("\n"); は冗長に見えてしまう。
putchar('\n'); とか puts(""); とかする人挙手!!
327デフォルトの名無しさん:05/03/13 13:12:58
|Д`)
328デフォルトの名無しさん:05/03/13 13:14:09
>>326
改行するためだけにputsを使うのは許せない俺がいるw
329デフォルトの名無しさん:05/03/13 13:38:26
小さい春、み〜つけたw
330デフォルトの名無しさん:05/03/13 15:11:33
gccでprintf("\n")と書いてもputs("")に置き換えられる罠。
331デフォルトの名無しさん:05/03/14 14:07:38
>>324
冗長なのがやなら、こうすればいいんじゃない?
for (i = 1; i <= 9; i++) {
printf("%d%3d%3d%3d%3d%3d%3d%3d%3d%3d\n" , i
,res[i - 1][0], res[i - 1][1], res[i - 1][2]
,res[i - 1][3], res[i - 1][4], res[i - 1][5]
,res[i - 1][6], res[i - 1][7], res[i - 1][8]
);
}
332デフォルトの名無しさん:05/03/14 18:00:48
冗長なのが嫌だったら最初から配列に格納したりしない罠。
333デフォルトの名無しさん:05/03/15 05:05:46
>>332
問題の把握もできない素人
334デフォルトの名無しさん:05/03/15 05:24:33
[1] 授業単元: 数学?(ゲーム作ってて必要になった)
[2] 問題文 円と直線の共有点を求める
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ(バージョン):Visual C++ .NET
 [3.3] 言語:C
[4] 期限:無

共有点って解が無い時と複数出る時があるけど
そこら辺をどうCで対処すればいいのか解らんとです。
335デフォルトの名無しさん:05/03/15 06:37:33
中心から直線までの距離はすぐ出せるよな?
それが半径と一緒か大きいか小さいかで全部判るよな?
336デフォルトの名無しさん:05/03/15 06:48:49
337334:05/03/15 06:59:04
>>335
スマソ説明足らんかった
共有点の「座標」が求めたいんでつ
338デフォルトの名無しさん:05/03/15 07:47:14
>>337
円と直線がどういう形式(構造体)で与えられるか
決め手もらえると、とっつきやすいんだが。
どういうレベルかも分かって、説明の手間が省ける。
339デフォルトの名無しさん:05/03/15 09:20:41
つーか、流石にそのくらい自力でできなきゃ話にならんだろ。
340334:05/03/15 09:48:57
>>338
直線はY=AX+Bより、AとB
円は半径Rと中心点(a,b)が既に値が入ってる状態です。

頭で計算する分には連立方程式解けばいいだけなんだけど
プログラムとなると解が複数出る場合
左辺の変数とかどうすりゃいいのかで悩んでるっす
341334:05/03/15 10:07:52
あぁ、さらに簡潔に言うと
例えばx*x+x=2の場合xは-2と1の解を持つけど
プログラムの場合、xの値を求めるにはどうプログラムを書けばいいのかで悩んjです

なんかマジで無能でスマソorz
342デフォルトの名無しさん:05/03/15 10:36:28
二次方程式には解の公式があるのをご存知無いとですか?
343334:05/03/15 12:07:07
>>342
ぐぐってみたら確かにあったねぇ。つかこの公式の存在すっかり忘れてたORZ
あとは自分でなんとかしまふ。皆参楠です。
344デフォルトの名無しさん:05/03/15 12:44:47
・・・
345デフォルトの名無しさん:05/03/15 13:41:10
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS:LINUX
 [3.2] コンパイラ(バージョン): gcc
 [3.3] 言語:C
[4] 期限:明朝まで
[5] その他の制限:特にありません。
346デフォルトの名無しさん:05/03/15 13:41:50
問題:

ファイル table.c は、表の合計を計算するプログラムの未完成なソースである。
このプログラムの入力データは次のような表である。

2 3
1 3 5
2 4 6

ただし、1 行目は表の大きさ(2 行 3 列)を表わす。実行結果は、次のようになる。

   1   3   5 |   9
   2   4   6 |   12
-----------------------+--------
   3   7   11 |   21

このプログラムについて、以下の問題を解け。レポートには、最終的に得られる 4 つのファイル(3 つの分割ソースファイルおよび Makefile)の内容を書くこと。

(1) コメント Q1 部の ?????????? 欄に適切なコードをおぎなえ。
(2) コメント Q2 部の ?????????? 欄に適切なコードをおぎなえ。
(3) コメント Q3 部の消滅関数 void FreeTable(Table *t) を定義せよ。
(4) コメント Q4 部のアクセス関数 void TableSetVal(Table *t, int row, int col, int val) を定義せよ。
  ただし、表の外部へアクセスした場合、何も書き込まないようにすること。
(5) コメント Q5 部のアクセス関数 int TableGetVal(Table *t, int row, int col) を定義せよ。
  ただし、表の外部へアクセスした場合、0 を返すこと。
(6) ソースコードを次の 3 つのファイルへ分割せよ。

main.c: main(),LoadTable() など,本プログラムの中心的な処理(表構造体に対する応用的な操作)を行なう関数群
table.c: NewTable() など,表構造体に対する基本的な操作を行なう関数群
table.h: table.c の関数のプロトタイプなど

(7) 分割コンパイルのための Makefile を作成せよ。
347デフォルトの名無しさん:05/03/15 13:50:11
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/253.txt

ソースファイル、長くなったのでupしました。
どなたかよろしければお願い致します・・・。
348デフォルトの名無しさん:05/03/15 16:48:55
(1)malloc(sizeof(Table))
(2)calloc(row * col, sizeof(int))
(3)
void FreeTable(Table *t)
{
    free(t->val);
    free(t);
}

(4)
void TableSetVal(Table *t, int row, int col, int val)
{
    t->val[t->col * row + col] = val;
}

(5)
int TableGetVal(Table *t, int row, int col)
{
    return t->val[t->col * row + col];
}
349デフォルトの名無しさん:05/03/15 17:04:35
(7)
Makefile
================================
main : main.o table.o
  cc -o main main.o table.o
main.o : main.c
  cc -c main.c
table.o : table.c table.h
  cc -c table.c
================================
350デフォルトの名無しさん:05/03/15 17:12:49
351345:05/03/15 17:29:38
>>348-350
涙出るほど感激です。
ありがとうございました、本当助かりました。
352デフォルトの名無しさん :05/03/16 00:52:32
[1] 授業単元:データベース
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS:WindowsMe
 [3.2] コンパイラ(バージョン): gcc
 [3.3] 言語:C?
[4] 期限:明日いっぱいまで
[5] その他の制限:特にありません
353デフォルトの名無しさん:05/03/16 00:54:06
以下のサンプルプログラムは、PostgreSQLのサンプルデータベース(test_db)に対してデータを検索して表示するプログラムである。

問題:サンプルのデータベースの内容をpoinの値で降順で表示するプログラムに変更しなさい。


#include<stdio.h>
#include<stdlib.h>
#include"libpq-fe.h"

main(int argc,char *arrgv[])
{
char query_string[512];
PGconn *conn;
PGresult *res;
int i;

conn=PQconnextdb("dbname=test_db");
if(PQstatus(conn)==CONNECTION_BAD){
fprintf(stderr,"Connection to database failed.\n%s",PQerrorMessage(conn));
exit(1);
}

sprintf(query_string,"SELECT *FROM test_db where point>50");
res=PQexec(conn,query_string);

for(i=0;i<PQntuples(res);i++){
printf("%s %s\n",PQgetvaluee(res,i,0),PQgetvalue(res,i,1));
}
PQclear(res);
PQfinish(conn;
}
354デフォルトの名無しさん:05/03/16 00:56:52
学生以外は受け付けません
355デフォルトの名無しさん:05/03/16 01:00:18
学生です。プログラムとかが全くわからないダメ学生です。本当問題の意味がわからないんです。本当助けてください。
356デフォルトの名無しさん:05/03/16 01:03:23
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:下記
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン):Visual C++
 [3.3] 言語:C
[4] 期限:明日まで

<問題文>
xとyをそれぞれ0から10まで1きざみで変え、その全てを組み合わせた平面上の
11*11個の点(x,y)を考える。これらの点のうちで、
y=−(x−4)^2+10
y=3
の2つの線に囲まれた領域内(線上は除く)に含まれる点の数を出力する
プログラムを作成せよ。

色々考えましたがわかりません。どなたか教えて下さい。
357デフォルトの名無しさん:05/03/16 01:12:21
>>355
本当か?
俺が先生なら、postgreじゃ無く、
INICED file を教える
358デフォルトの名無しさん:05/03/16 01:20:45
>>357
マジです。この課題出来ないと卒業できないって言われました。わらをもすがる思いです・・・
359cen ◆Pm9xOTJuM. :05/03/16 01:20:46 ID:??? BE:8252328-#
>>356
こうかな?
#include<stdio.h>

void main(){
int i,j,y,num=0;

for(i=0;i<=10;i++){
for(j=0;j<=10;j++){
y=-(i-4)*(i-4)+10;
if(y>3 && j>3 && j<y){num++;}
}
}
printf("%d\n",num);
}
360356:05/03/16 01:34:08
>>359
ありがとうございます!スッキリ解決しました!
361デフォルトの名無しさん:05/03/16 13:17:39
>わらをもすがる思い
まあ、なんというか、我々はワラにされてしまったわけだが。
362デフォルトの名無しさん:05/03/16 15:39:26
>>361
妙なテンプレができてからこのスレは藁にも満たん。
363デフォルトの名無しさん:05/03/16 15:49:28
>>362
どれの事だ?
364デフォルトの名無しさん:05/03/16 16:31:38
365デフォルトの名無しさん:05/03/16 16:45:38
>>364
どれの事だ?
366デフォルトの名無しさん:05/03/16 17:35:02
>>365
【質問テンプレ】の事ですよ。
367デフォルトの名無しさん:05/03/16 17:38:19
>>366
【質問テンプレ】のどこが妙だと聞いてるんだボケ
368デフォルトの名無しさん:05/03/16 17:50:37
>>367
あれができてから気軽に丸投げする雰囲気じゃなくなったと思う。
369デフォルトの名無しさん:05/03/16 17:53:03
>>368
【質問テンプレ】のどこが妙だと聞いてるんだボケ
370デフォルトの名無しさん:05/03/16 18:02:58
>>369
強いて言えば「授業単元」なんかの項目があるところかね。
どっちにしても俺はテンプレの存在自体が気に食わん。
371デフォルトの名無しさん:05/03/16 18:04:08
テンプレ要らないね。
372デフォルトの名無しさん:05/03/16 18:05:02
>>370
あっそう。
では、去れ。
373デフォルトの名無しさん:05/03/16 18:05:49
>>372
そうしよう。
374デフォルトの名無しさん:05/03/16 18:11:14
質問テンプレ要らないわ。
375デフォルトの名無しさん:05/03/16 18:33:26
あったほうがいいのでないの
Cでやった後になってC++で書き直してくださいとか言われると面倒だし
どういう授業かによって書き方も変えたりするし
例えば、初級C言語とかの場合、難しい書き方とかするとかわいそうだし
376デフォルトの名無しさん:05/03/16 18:35:36
要ると思う、
質問の仕方わかんないやつ多いし
377デフォルトの名無しさん:05/03/16 18:37:08
まったく役に立たないぼるじょあ要らないわ。
378デフォルトの名無しさん:05/03/16 18:37:32
それは言えてる
379デフォルトの名無しさん:05/03/16 18:38:40
ぼるじょあはNGワードです。
380デフォルトの名無しさん:05/03/16 18:39:33
アホなコードしか出さないからなぁ
381デフォルトの名無しさん:05/03/16 18:40:42
ここは大原ゆきに帰ってきてもらうしかない
382デフォルトの名無しさん:05/03/16 21:07:00
【質問テンプレ】
[1] 授業単元: Data Structure in C++
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=255
[3] 環境
 [3.1] OS:Win XP
 [3.2] コンパイラ(バージョン):Any
 [3.3] 言語:C++
[4] 期限:明日
[5] その他の制限: ExprTree はリンクの6.1.cppと類似性をもつこと。
383デフォルトの名無しさん:05/03/16 21:08:04
Expression Tree(Tree, Stack) : 二分木、stackを使っての計算
参照 : http://www.programmersheaven.com/articles/images/expressionexptree.gif
3つのコードファイルを作成 ExprNode.h, ExprTree.h and ExprTree.cpp
【class ExprNode】ExprNode::Eval()、ExprNode::PrintInfix()を含む。
ExprNode::Eval() 計算する
ExprNode::PrintInfix() プリントする。
【class ExprTree】ExprTree constructors、ExprTree copy constructor、ExprTree destructor、ExprTree::Clear()、
Overloaded operators、ExprTree::Build(const string expr)、ExprTree::Evaluate()、ExprTree::PrintInfix()含む
ExprTree::Clear()、二分木をclearにする。プライベート関数。
Overloaded operators、「+, -, *, /, ^」
ExprTree::Build(const string expr)
ExprTree::Evaluate() 計算
ExprTree::PrintInfix() プリント

どうか、よろしくお願いします。
384デフォルトの名無しさん:05/03/17 00:58:08
静かだな・・・・
385デフォルトの名無しさん:05/03/17 02:12:42
[1] 授業単元:関数の作成
[2] 問題文:int judgement(int x,int y)という関数を作成せよ。
〔関数の意味〕入力パラメータであるx,yを組み合わせた平面上の点(x,y)を考え、
この点が
y=-(x-2)^2+10
y=4
の二つの線に囲まれた領域内(線上は除く)に含まれるなら戻り値は1、
含まれないなら戻り値は0.
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン):Visual C++
 [3.3] 言語:C
[4] 期限:明朝

ご教授ください。お願いします。
386デフォルトの名無しさん:05/03/17 02:23:46
教授する気はないが、こんなもんかな。

int judgement(int x,int y)
{
int y1 = -(x - 2) * (x - 2) + 10;
int y2 = 4;
return y1 < y2 && y1 < y && y < y2 || y1 > y2 && y1 > y && y > y2;
}
387デフォルトの名無しさん:05/03/17 10:58:56
>>386
ANSI-Cの論理演算の結果って必ず0か1になる事が保証されてるん?
0か0以外の値じゃなかった?
388デフォルトの名無しさん:05/03/17 11:10:20
>>387
保証されてる
あと ANSI は古いんじゃないか?
389デフォルトの名無しさん:05/03/17 11:18:52
>>387
されてる
390デフォルトの名無しさん:05/03/17 12:26:00
>>387
なんだなんだ?VB厨が紛れ込んだのか?
391デフォルトの名無しさん:05/03/17 14:13:52
>>386
y1 < y2 && y1 < y && y < y2
こっちは囲まれてるとは言わないのでは?
392デフォルトの名無しさん:05/03/17 17:59:03
そうか、無限の彼方が開放なのか。
393デフォルトの名無しさん:05/03/17 20:11:39
>>387
(a == b ? 1 : 0)と、(a == b)の結果は等しい。
if(n)が真となるのはn != 0のとき。
これがごっちゃになってるのでは。
394デフォルトの名無しさん:05/03/17 21:58:45
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
角速度=(今回入力した角度ー前回入力した角度)/(今回入力した時刻ー前回入力した時刻)
を求めるプログラムを求める。
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ(バージョン): gcc
 [3.3] 言語:C
[4] 期限:できれば今日中でお願いします。
[5] その他の制限:特にありません。
395デフォルトの名無しさん:05/03/17 22:06:36
>>394はマルチなので質問を却下とします
396394:05/03/17 22:09:25
そこをなんとかお願いします。
この板のこと知らなかったもので、すいません。
397デフォルトの名無しさん:05/03/17 22:18:37
1から100までの自然数を素因数に分解して出力しなさい

誰かC言語でプログラム書いてもらえませんか?
398デフォルトの名無しさん:05/03/17 22:22:05
>>397はマルチなので質問を却下とします
399デフォルトの名無しさん:05/03/17 22:33:06
>>394
if 2回目以降 then
  角速度=(今回入力した角度−前回入力した角度 )/(今回入力した時刻−前回入力した時刻)

これでわかっただろ?
400デフォルトの名無しさん:05/03/17 22:41:10
>>394
>>397
氏ね
401デフォルトの名無しさん:05/03/17 22:44:06
>>397

int sPrimes[ 4 ] = { 2, 3, 5, 7 };
void
PrintFactor( int p ) {
int i;
for ( i = 0; i < 4; i++ ) {
if ( ( p % sPrimes[ i ] ) == 0 ) {
printf( " %d", sPrimes[ i ] );
return PrintFactor( p / sPrimes[ i ] );
}
}
if ( p != 1 ) printf( " %d", p );
}
int
main( void ) {
int i;
for ( i = 2; i <= 100; i++ ) {
printf( "%d:", i );
PrintFactor( i );
printf( "\n" );
}
}

402デフォルトの名無しさん:05/03/17 22:51:41
>>399
>>401
氏ね
403デフォルトの名無しさん:05/03/17 22:54:47
>>402
きっと>>399の説明じゃ>>394はわからないから大丈夫だ。
404デフォルトの名無しさん:05/03/17 22:58:47
>>401
空気嫁ボケ
405デフォルトの名無しさん:05/03/19 03:47:21
【質問テンプレ】
[1] 授業単元: Data Structure in C++
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=255
[3] 環境
 [3.1] OS:Win XP
 [3.2] コンパイラ(バージョン):Any
 [3.3] 言語:C++
[4] 期限:明日
[5] その他の制限: ExprTree はリンクの6.1.cppと類似性をもつこと。
406デフォルトの名無しさん:05/03/19 03:49:10
Expression Tree(Tree, Stack) : 二分木、stackを使っての計算
参照 : http://www.programmersheaven.com/articles/images/expressionexptree.gif
http://santamartadotnet.hp.infoseek.co.jp/documents/cpp/polish.html
3つのコードファイルを作成 ExprNode.h, ExprTree.h and ExprTree.cpp
【class ExprNode】ExprNode::Eval()、ExprNode::PrintInfix()を含む。
ExprNode::Eval() 計算する
ExprNode::PrintInfix() プリントする。
【class ExprTree】ExprTree constructors、ExprTree copy constructor、ExprTree destructor、ExprTree::Clear()、
Overloaded operators、ExprTree::Build(const string expr)、ExprTree::Evaluate()、ExprTree::PrintInfix()含む
ExprTree::Clear()、二分木をclearにする。プライベート関数。
Overloaded operators、「+, -, *, /, ^」
ExprTree::Build(const string expr)
ExprTree::Evaluate() 計算
ExprTree::PrintInfix() プリント

期限まであと5時間くらいしかないんですが、どなたか本当に助けてください。
407デフォルトの名無しさん:05/03/19 05:04:09
マンドクサ
408デフォルトの名無しさん:05/03/19 05:22:26
そういわずにお願いします。
なんかC++のヘルプの会社みたいところにお願いしたのですが、出来なかったと言われました。
もう最悪。。。
409デフォルトの名無しさん:05/03/19 05:38:39
>>408
C++のヘルプの会社?

とりあえず、自分が手をつけた範囲をアップすれば、マンドクサ度も減って、手伝ってくれるぼるじょあが現れるかも。
あと5時間で、ゼロってことはないよね。
410デフォルトの名無しさん:05/03/19 05:42:26
411デフォルトの名無しさん:05/03/19 06:24:56
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
まだこの程度しか出来ていません。もうだめぽ。。。
412デフォルトの名無しさん:05/03/19 06:26:16
413デフォルトの名無しさん:05/03/19 06:37:39
そう。他のクラスがテスト等で超超忙しくて、この宿題できないなって思って、
宿題ヘルパーみたいなところに、頼んだんだけど、
6時間前になって、いきなり出来ませんでしたって言われちゃいました。
このクラス、落第鴨。。。
414デフォルトの名無しさん:05/03/19 06:44:59
先生の心境からすると、がっかりです。
415デフォルトの名無しさん:05/03/19 06:58:24
416デフォルトの名無しさん:05/03/19 07:16:39
これは何をしろと?
417デフォルトの名無しさん:05/03/19 07:44:10
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=255
たぶん、stackなしだと、この一番したのやつになると思うのですが、
6.1.cppに類似したstackの形に変形しなければならないと思うのですが・・・。
418デフォルトの名無しさん:05/03/19 07:59:51
時間切れ?
419デフォルトの名無しさん:05/03/19 08:10:11
いや、まだあと1時間半ある。
そのファイル変だったので、直しました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=255
これをどうstackの形にすればいいんだろう。。。
420デフォルトの名無しさん:05/03/19 08:26:09
あ、でも、main.cppみたらExprTreeに入ってくるのは、stringなんだ・・・・。
あ〜、もうわかんない。。。。
421デフォルトの名無しさん:05/03/19 08:31:05
>>420
そのstring ってSTL (#include <string> )を使えばいいの?
422デフォルトの名無しさん:05/03/19 08:35:56
そうそう
423デフォルトの名無しさん:05/03/19 08:37:43
Treeを使ってるけどstackなしのexpression Tree、
stack使ったexpressionはネットにたくさんのってるんだけど、
両方使うっての、ないんだよね〜(泣)
424デフォルトの名無しさん:05/03/19 09:02:05
>>423
アップしました。手抜きしまくり(数字は一桁のみ対応)ですが参考になれば。
これだけでコンパイルできるはずです。
stackの使い方が、出題者の意図に適っているか不明ですが。
425デフォルトの名無しさん:05/03/19 09:40:56
時間切れです
426デフォルトの名無しさん:05/03/19 09:41:27
すご!短時間に!!とりあえず、転ばないようにダッシュでガッコー行ってくる。
427デフォルトの名無しさん:05/03/19 10:46:15
>>424
助けてくれてありがとうございました。
ヘルプセンターからは、全額refundされました。
世界トップの大学卒のエキスパート揃いって、ありゃ嘘ですね。
3日あって直前になって出来ませんでしたって・・・。
まぁ、頼む人間が一番悪いのは承知なんですが。。。。
てか、やっぱ2ch凄いよ。
428デフォルトの名無しさん:05/03/19 11:38:38
ちょっと待って。そのヘルプセンターって何よ?(AA略)
人の宿題で金儲けする会社? そんな商売ありえないwww

じゃ、ここでCM入ります。
429デフォルトの名無しさん:05/03/19 11:50:24
>>428
たぶん、ここで手伝っている人は、絶対そこではエースになれると思う。
アメリカのサイトだから、英語できなきゃいけないけど、
コンピューター用語とか英語だから、大丈夫じゃないかな。
そういう系のサイト(ネットを通じてチューター)、アメリカじゃよくあるよ。
プログラミングだと、問題を受け取り、プログラムして、exe fileだけ渡す。
お金を振り込んでもらって、cpp file渡すみたいな流れね。
モノによるけど、平均したらだいたい30分$30くらい、もらえるんじゃないかな。
能力給だから、ここにいる人達は、もっと貰えそうだね。
430ぼるじょあ ◆yBEncckFOU :05/03/19 16:28:07
ほー!
431デフォルトの名無しさん:05/03/19 16:33:06
           ,,. : ‐'' "´;;;;;``'ー- 、..,,_
          /. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヽ,
       ,,./. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .\
      〃. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヽ
     , 彳. ;,;;;;;;;;;;;;;;;;;;;;;;;/バ;ヾメ;:`ミ_;;;;;;;;;;;;;;;;;;;;;;;,; .゙、
    //. ;,;;;;;;;;;;;;;;;;;;;;;;;;;//:7- __ _  ヾ;;;;;;;;;;;;;;;;;;;;;,; .ヽ
    ´/. ;,;;;;;;;;;;;;;;;;;;;;;;;;//_/ ̄      ゙、;;;;;;;;;;;;;;;;;;;;;,; .',
   〃. ;,;;;;;;;;;;;;;;;;;;;;;;;// /      _,,._ i;;;;;;;;;;;;;;;;;;;;;;;,; .゙,
   《, ;,;;;;;;;;;;;;;;;;;;;;;;;;;∧ヾ、    ,;ii〃"゙`ミ;.i;;;;;;;;;;;;;;;;;;;;;;;,; .i|
  、{. ;,;;;;;;;;;;;;;;;;;;;;;;/ト〈、`゙,.  , ´ ,._.,.,、,_ `゙|;;;;;;;;;;;;;;;;;;;;;;;;,; .゙,
  i". ;,;;;;;;;;;;;;;;;;;;;;リヘソ,> Y! i〃 <.(;・),゙ゞノ;;;;;;;;;;;;;;;;;;;;;;;,; .《     ふぉおぅ!
  ((. ;,;;;;;;;;;;;;;;;;;;;;;;人"´`.:;;l l;.゙ `^''ーヾ`,リ!;;;;;;;;;;;;;;;;;;;;;;;;;,; .リ
  ソ. ;,;;;;;;;;;;;;;;;;i      r'(;. );:..      l |;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヾ,
 ゞ. ;,;;;;;;;;;;;;;;;;;;i┘    ヽヘ、;ハ ,)      /!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ゞ  
ヾ". ;,;;;;;;;;;;;;;;;;;;;|ヾ;:            ,:; 人;;;;;;;;;;;;;;;;;;;;;;;;;,; .((._
.`゙》. ;,;;;;;;;;;;;;;;;;;;| :;;i 、-‐‐:v.‐-:、_  〃;:  !;;;;;;;;;;;;;;;;;;;;;;;;;;,; .〃
.ノリ. ;,;;;;;;;;;;;;;;;;;;;゙、:;| `ヾニゞ‐;;;;ニフ  j|;.  /;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .{{
((. ;,;;;;;;;;;;;;;;;;;;;;;;;;;`、   - ̄    ,./;:. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ソ,
_.)). ;,;;;;;;;;;;;;;;;;;;;;;;;/ilヽ、._  ;,.    ,.:-‐'"/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ノノ
432デフォルトの名無しさん:05/03/19 16:42:20
ここってそんなにすごい人達ばっかりなんですか?
433デフォルトの名無しさん:05/03/19 16:48:30
まぁ、マイケルもいるし・・・
434デフォルトの名無しさん:05/03/19 16:54:05
スリラーのレーザーディスク持ってる(´・ω・`)
あの頃は良かった。
435デフォルトの名無しさん:05/03/19 17:13:29
>>432
ここには淫乱メス豚しかおりません。
436デフォルトの名無しさん:05/03/19 17:22:47
すいません
VisualStuido.net2003で、Tahomaフォントを選びたいのですが、
なぜか、Tahoma Boldしかえらべません。
これって仕様?
437デフォルトの名無しさん:05/03/19 17:23:52
>>436
スレ違い。
438デフォルトの名無しさん:05/03/19 18:37:10
>>429
そんな低レベルなのに金取ってるのかよ('A`)
ありえねえことになってるな。
439デフォルトの名無しさん:05/03/19 19:14:10
>>429
ほとんど振り込め詐欺だな。
440デフォルトの名無しさん:05/03/19 19:48:15
勉強できないやつを食い物にする、うまいねw
441sage:05/03/19 22:52:33
ここの人たちってプログラム歴何年くらい?
442デフォルトの名無しさん:05/03/19 22:53:04
プログラム暦10年。
セックスよりプログラムが好きです。
443デフォルトの名無しさん:05/03/20 04:14:17
ここにいる人達は、在宅プログラマーですか?
444デフォルトの名無しさん:05/03/20 04:51:13
ここにいる人達は、ホモプログラマーですか?
445デフォルトの名無しさん:05/03/20 05:19:56
レズプログラマーです
446デフォルトの名無しさん:05/03/20 09:12:17
えっ女?
447デフォルトの名無しさん:05/03/20 09:29:07
iteratorがいまいち、よく分からないんですけど、
ポインターでなぞるのと、どう違うの?
448デフォルトの名無しさん:05/03/20 09:37:11
ポインタ∈イテレータ
449デフォルトの名無しさん:05/03/20 09:59:01
あ、わかった。
イテレータってその時々で自分でクラスを作らなきゃいけないんだよね?
Treeのときや、Queueの時など。。。
違う?
450デフォルトの名無しさん:05/03/20 11:07:08
クラスとインスタンスの区別がつかない馬鹿がいるスレはここかな?
451デフォルトの名無しさん:05/03/20 11:30:16
今学生で学習中なんで。。。
インスタンスって初めて聞いた。。。
452デフォルトの名無しさん:05/03/20 11:37:52
インスタンス=オブジェクト

CMyData data;
 ↑     ↑
クラス   インスタンス 
453デフォルトの名無しさん:05/03/20 11:41:43
>>452
インスタンス∈オブジェクト
454デフォルトの名無しさん:05/03/20 12:08:36
class A
{
.............

class B{
..............
}
}
ってなってるのって、
class A{
............
}
class B{
............
}
ってのと、同じ?
455デフォルトの名無しさん:05/03/20 12:29:06
>>454
試せば判るが、スコープが違う。
456デフォルトの名無しさん:05/03/20 12:33:22
classにスコープ?
457デフォルトの名無しさん:05/03/20 12:37:18
質問は質問スレへいけ、はげ。
458デフォルトの名無しさん:05/03/20 12:42:12
つーか、名前空間か。
459デフォルトの名無しさん:05/03/20 13:49:23
[1] 授業単元:ファイル処理
[2] 問題文(含コード&リンク):下記参照
[3] 環境
[3.1] OS: Windows 2000
[3.2] コンパイラ(バージョン): G++
[3.3] 言語:C C++ どちらでもOK

問題文: ソースファイルのコメントを削除するツールを作成せよ。
    ソースファイルをその実行モジュールにドラッグ&ドロップすることで、
    以下の形式に従った部分を削除する。

1./* */ に囲まれた部分
2.//  がある行
3.なお、出来る人は、#if 0 〜 #endif に囲まれた部分も削除するように作る。

※注意
 ”(ダブルクォート)に囲まれたところは文字列として扱うためそこには注意すること。

おねがいします。
460デフォルトの名無しさん:05/03/20 13:53:23
>>459
それどこの大学の課題?
461デフォルトの名無しさん:05/03/20 14:06:01
テキストデータが入ってる先頭ポインタから、順次検索していけばよろしい。
検索して検出されたら、その開始と終了位置のポインタを取り出して、
再度ソースファイルをファイル操作でWriteするとき、取り除けばいい。
簡単な話だ。
462デフォルトの名無しさん:05/03/20 14:19:35
簡単な話でも僕にはわかりません。
特に、※注意 printf("/*"); とかってあると、誤って
検出されてしまいます。さらに、// */ なんて部分も入れたりすると、
もうフラグ管理なんてしてたら頭ぐちゃぐちゃになっちゃって。
模範解答・・・ください。
463デフォルトの名無しさん:05/03/20 14:25:51
>>462
// */は単に"//"が現れたら無条件に'\n'まで読み飛ばせば良いだけでは?
464デフォルトの名無しさん:05/03/20 14:30:02
質問スレじゃねぇんだから、グダグダ言ってねぇで、できるんだったらさっさと回答示せばいいんだよ。
465デフォルトの名無しさん:05/03/20 14:33:03
>”(ダブルクォート)に囲まれたところは文字列として扱うためそこには注意すること。

単に、""文字列内を検索してるときは、コメントの検出をオフにすればいいだけのこと。
466デフォルトの名無しさん:05/03/20 14:33:50
467デフォルトの名無しさん:05/03/20 14:37:24
468デフォルトの名無しさん:05/03/20 14:40:14
まぁ、模範解答だけよこせや。
そんなこと説明されたところで、俺でもわかるしな。要は同じものを藻前らが
どうやって作るか知りたいだけだし。
469デフォルトの名無しさん:05/03/20 14:41:15
470459:05/03/20 14:44:57
違います!
偽者消えてください!
471デフォルトの名無しさん:05/03/20 14:51:38
>>462 = >>464 = >>468 = >>470-
472デフォルトの名無しさん:05/03/20 14:58:47
結局、御託は並べられるが、コーディングはできない奴らばっかか。
たぶん>>419みたいのは稀なんだろうな。
473デフォルトの名無しさん:05/03/20 15:11:35
>>459
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/264.txt

マクロがいやだったら自分で展開しといて。
474デフォルトの名無しさん:05/03/20 15:31:14
ドラッグ&ドロップすることでって条件は満たされていなかったみたいですけど、
本当にこんな短時間でやってのけてしまうとは。
475デフォルトの名無しさん:05/03/20 15:35:03
K&Rでこういう問題あったよね
自分で解いたことあったからHDにソース眠ってるかも
476デフォルトの名無しさん:05/03/20 15:40:53
この手の問題は、誰しも組んだことがあるからHDDの中に眠ってたりするよ。
477デフォルトの名無しさん:05/03/20 15:56:21
俺も似たような課題をやらされたな
印刷した紙しか残っていないが
478デフォルトの名無しさん:05/03/20 15:56:39
ちなみに、煽るだけ煽っといてなんか恥ずかしくなっちゃいました。>>459 = >>468 でした。すみません。
自分のソースも晒しときます。英語は適当です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/265.cpp
自分は5時間ぐらい考えました。
479デフォルトの名無しさん:05/03/20 16:19:14
>>478
一応突っ込み。
入力://**/
出力(誤):/
出力(正):
480475:05/03/20 22:41:49
やっぱ眠ってた。
K&R2の演習1-23だった

>>459
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/267.txt
481デフォルトの名無しさん:05/03/21 00:06:41
[1] 授業単元:Intro C++
[2] 問題文(含コード&リンク):下記参照
[3] 環境 BCC developer
[3.1] OS: Windows XP home
[3.2] コンパイラ(バージョン): BCC
[3.3] 言語:C++
[4] 期限:二千五年年三月二十二日まで
[5] その他の制限:下記の268.zipの中にあるClassを使わなければいけない。
カジノダイスゲーム作成
1.ユーザーに何度もプレイさせることが出来るダイスゲームプログラムを
2.所持金$100で毎ゲームごとに掛け金を入力させ、その所持金をゲーム終了時に表示させる。
3.特別なルールを加える
例:以下の条件を加えてください。
 T.2か3がオープニングロールで振られた場合ユーザーの勝利
 U.7か11か12がオープニングロールで振られた場合ユーザーの負け。
 Va.もし次のロールで3,4,9,10,11が出た場合、ユーザーは0の利益($5賭けた場合$5が返済)
 Vb.もし次のロールが2か12の場合ユーザーは二倍の掛け金を得ることができる。
 Vc.もし次のロールが5,6,7,か8ならばユーザーの負け。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/268.zip = 乱数クラスファイル

一応自分で書いたプログラムも・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/269.txt

よろしくお願いします。

482デフォルトの名無しさん:05/03/21 01:53:47
>>473
cool.
483デフォルトの名無しさん:2005/03/21(月) 19:47:10
>459

"状態遷移"って知ってるか?
通常、""文字列中、/**/のコメント中、//のコメント中
の4状態で考えろ
484デフォルトの名無しさん:2005/03/21(月) 22:39:45
>>481
つ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/270.txt
あなたの書いたプログラムと>481の仕様が異なる気がします。
今回は仕様のように仕上げました。ただ、あなたのプログラムを書き換えた形なので若干汚いです。

Rondomクラスを使うには、Rondom randomObj()を用いてインスタンス化して、
randomObj.draw()などと関数を呼び出します。
私はクラス重複を防ぐためにMyRandomとしていたので、Randomに直してください(3行目)
あと、Random.hをインクルードしてください。
他にも足りないヘッダファイルあるかも…
485デフォルトの名無しさん:2005/03/21(月) 22:52:25
ありがとうございます・・助かりました。 
自分でSystem clockを使って乱数を発生させるようにしてみたのですが上にあげているRandomクラスを使わなければいけなかったようでプログラムをどの様に変えていいのか迷っていました。
仕様が違うのは後で気づいた為です、混乱させてしまってすみません。なので自分の書いたほうの仕様は違っていて問題として書いたほうが実際にしなければならないことです。
書いていただいたプログラムに#include "random.h"を忘れずインクルードします。忠告ありがとうございました。忘れないようにしたいと思います。
486デフォルトの名無しさん:2005/03/22(火) 16:51:52
移転完了!
487デフォルトの名無しさん:2005/03/23(水) 11:12:38
[1] 授業単元:C言語
[2] 問題文:下記
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ:
 [3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:特にありません。

長さ4の文字列に数字を初期設定し、4桁の10進数に変換して表示するプログラム

#include < stdio.h >

int main(void)
{
char suuji[5]="1234";
unsigned int r1=0,r2;
unsigned int mask= @ ;
int cnt;

for(cnt=0;cnt<4;cnt++){
r2 = (unsigned int)suuji[cnt];
r2 = r2 A mask;
r1 = (r1 B 3) + (r1 C 1);
r1 = r1 + r2;
}
printf("10進数= %u\n",r1);
}

@には16進数の値
AからCには演算子を補うそうです。
どなたかよろしくお願いします。
488デフォルトの名無しさん:2005/03/23(水) 11:22:25
@0x30 もしくは'0'
A-もしくは^
B<<
C<<

@,Aは0x09 、&
かも
489デフォルトの名無しさん:2005/03/23(水) 11:23:10
訂正
0x09じゃなくて0x0fだった…
490デフォルトの名無しさん:2005/03/23(水) 12:07:54
>>488-489さん
解決できました、本当に助かりました。
ありがとうございます。
491デフォルトの名無しさん:2005/03/23(水) 13:02:02
何で16進数のfとそれらの演算子になるんですか?
漏れは>>487じゃないけど、もしよかったらそこも補足して欲しいかも
492デフォルトの名無しさん:2005/03/23(水) 13:14:52
文字コードをASCIIと仮定すると
'0' = 0x30,,,'9' = 0x39
まずコレの下4bitを取り出すために0x0fで論理積を取る
(面倒なら0x30との差を取ってもいい)
そうすると一桁分が取れるからあとはぐるぐる回しながら
10進数なので10倍しつつ加算していけばいい
この時、出題者は10倍をわざわざビットシフトでやらせたいらしい
2*2*2*a+2*a = 10*a
493デフォルトの名無しさん:2005/03/23(水) 13:36:03
>>492
なるほど。即レスありがとうございます。
494デフォルトの名無しさん:2005/03/23(水) 13:41:06
あほらし。おまえらアホだ。もううんざりだ。こんな場所なくなってしまえばいいのに!!!
495デフォルトの名無しさん:2005/03/23(水) 13:52:41
>>494
ここは宿題できないアホのためのスレ
ここは宿題できるあるいはしたい回答者のためのスレ

他の理由でここに住み着くやつもいるが
>>494のためのスレではない
無くなって欲しいなら
ほざいてないで削除依頼でも出すか
>>494が消えてください

のし
496デフォルトの名無しさん:2005/03/23(水) 13:53:47
>>495
2ch自体社会的に迷惑なんだよ!!!
497デフォルトの名無しさん:2005/03/23(水) 13:55:04
>>495
違う。CやC++スレで宿題やってくれと言うアホを隔離するスレだ。
498デフォルトの名無しさん:2005/03/23(水) 13:55:47
>>496
それが何か?
499デフォルトの名無しさん:2005/03/23(水) 13:58:28
>>498
社会的に迷惑で害になるからどんどんスレをなくしていけばいいんだ!
そうすれば誰も来ない!!!ふはははは
500デフォルトの名無しさん:2005/03/23(水) 14:17:37
>>499
社会に出てない君がなにいってんのwww
501デフォルトの名無しさん:2005/03/23(水) 14:20:13
>>499 ここは幼稚園児が来るスレではないぞ
幼稚園児でも社会に貢献はできるからがんばれ
502デフォルトの名無しさん:2005/03/23(水) 14:27:00
>>500-501
アホだ こいつアホだーーーーー!!!!!!!!!
503デフォルトの名無しさん:2005/03/23(水) 14:28:33
ともかく、この2chは今日限りで閉鎖です。

みなさん、今までありがとうございましたー。
504デフォルトの名無しさん:2005/03/23(水) 14:51:47
>>494 (´,_ゝ`)プ

>>496 ( ´_ゝ`) フーン

>>499 (´,_ゝ`)プ

>>502 ( ´_ゝ`)y-^

>>503 (´,_ゝ`)プ
505デフォルトの名無しさん:2005/03/23(水) 14:55:49
なんだよ!俺だけが悪者かよ!!

みんな2chなんかが残って欲しいのかよ!!!!
506デフォルトの名無しさん:2005/03/23(水) 15:11:53
>>505
>なんだよ!俺だけが悪者かよ!!
どう悪者なのか説明してあげる

・何が「あほらし。」なのか説明がない
・「おまえらアホだ。」って思う理由がない
・「2ch自体社会的に迷惑なんだよ!!! 」って思う根拠がない
・「社会的に迷惑で害になるから」の主語がない。もしかして自分のこと?なら納得
・スレは誰でも建てられるから
 「どんどんスレをなくしていけばいいんだ! 」なんてイタチごっこ
 そもそも削除依頼出した?どうやってスレを無くすの?
・説明になっていないのに「そうすれば誰も来ない!!!」って一人で納得してる
・「ふはははは」もはや電波。意味不明
・アホのための隔離スレだと説明があるのに
 「アホだ こいつアホだーーーーー!!!!!!!!! 」って頭悪いですね
・自分の発言を無効にする「ともかく」って何?バカですね

>みんな2chなんかが残って欲しいのかよ!!!!
・それを2chで話し合おうっての?
・板違い。なぜム板?
・すれ違い。なぜ宿題スレ?
507デフォルトの名無しさん:2005/03/23(水) 15:29:46
>>506アホだアホだー!!!気づいてねー!!!!!!
508デフォルトの名無しさん:2005/03/23(水) 15:33:57
気づいてないのは>>507
残念!!

-------------------以下何事もなかったかのように宿題スレをお続けください-------------------
509デフォルトの名無しさん:2005/03/23(水) 15:43:11
>>508
死ねよボケ!死ねよったら死んじまえ!!!!!
510デフォルトの名無しさん:2005/03/23(水) 15:50:37
ばか者ドモ質問出せ、冷やかしてあげるから
511デフォルトの名無しさん:2005/03/23(水) 15:51:49
>>509
通報しますた。アク禁になってから泣くなよw
512デフォルトの名無しさん:2005/03/23(水) 16:21:59
>>511
自演乙
513デフォルトの名無しさん:2005/03/23(水) 16:22:38
アク禁にされる理由がないぞ(藁
514デフォルトの名無しさん:2005/03/23(水) 18:17:11
>>509
ぎゃはははは お前アク禁でやんの!!!!! アホだアホーーーーーーー
515デフォルトの名無しさん:2005/03/23(水) 18:25:11
春ですねぇ…私も最近ようやく風物詩と思えるようになりました。
516デフォルトの名無しさん:2005/03/23(水) 19:22:57
>>515
お前ひきこもりだろ?
だからそんな事にしか季節を感じられないんだろ
517デフォルトの名無しさん:2005/03/23(水) 21:09:32
日本語が読めないと悲惨ですね
518常識人 ◆WWkTvYxtEs :2005/03/23(水) 21:23:24
フーン。
私がしばらくいない間に、スレが荒れてますね。
私の一番嫌いなものは荒らしなんです。
荒らしは何も生み出さず、ただ無駄にスレを消費するからね。
そういう輩は、きっとプログラムコンプレックスに陥っているんだろうね。
確率の問題で、どうしてもそういう人間が世に出てしまうが、
私としては、その存在を全力で否定したく思う。
私は善の権化であり、このスレのオーソリチーであり、このスレ住人からの信頼も厚いし、
私自身、その使命をまっとうする覚悟がある。


519デフォルトの名無しさん:2005/03/23(水) 21:24:40
>>518
あなた、誰です?
520デフォルトの名無しさん:2005/03/23(水) 21:27:22
>>518
またお前か。
せっかくしばらく消えてくれてこっちはせーせーしていたのによ。
荒らしが嫌い?
へぇ〜じゃあ毎日自己嫌悪に陥ってるんだろうねぇw
俺がこのスレで一番嫌いなやつの名前を教えてやるよ。

常 識 人 

お前だ、お前。
スレが腐るからもう二度とくるんじゃねーぞ。
ごのごみ以下のくそ蛆蝿うんこやろうが。
521デフォルトの名無しさん:2005/03/23(水) 21:30:00
またこの一連のコピペか
522常識人 ◆WWkTvYxtEs :2005/03/23(水) 21:33:04
>>520
私は、荒らしではない。
なぜなら、私のレスには心があるから。
やすらぎ、癒しがあるから。
下らないコピペ、バカアホだけのおもしろみのかけらもない荒らしと
私のどこかノスタルジーにも似た気持ちを抱くレスとは似て非なるもの
という意見が多数を占めていると聞く。
私はどちらかというと、癒し系だから。
プログラミングで溜まったストレスを私のレスで癒す。
それがこのスレの一つのあり方であってもいいと思う。
523デフォルトの名無しさん:2005/03/23(水) 21:36:15
また宿題欠乏の禁断症状ですか。
524デフォルトの名無しさん:2005/03/23(水) 21:41:25
>>522
常識人君。
君ねぇ。どうも妄想癖、虚言癖があるようだねぇ。
お前みたいなやつは、ロボトミー手術でも受けて
廃人にでもなってしまえばいいと思うよw
ああ、ごめん。君はすでに廃人だったねw
廃人よりもっと下かぁ・・・
う〜ん・・・
やっぱ、氏んだほうがいいんじゃない?
曰く、生きているだけで邪魔になるw
525デフォルトの名無しさん:2005/03/23(水) 21:42:34
わかりやすいなぁ
(・∀・)ニヤニヤ
526デフォルトの名無しさん:2005/03/23(水) 21:43:55
あー、ちょっといい?ねたがないからってダラダラやめてくんない?
スクロールさせるのめんどいから。
527デフォルトの名無しさん:2005/03/23(水) 21:45:40
え?
ダラダラする合間に宿題をするスレじゃないの?
528デフォルトの名無しさん:2005/03/23(水) 22:44:25
>>527
やるべき宿題が今ないのが問題
早く宿題やらせろよなー、マルチでもなんでもいいから
529デフォルトの名無しさん:2005/03/23(水) 23:38:08
おまえらアホだろ なに自作自演にだまされてんの? アホアホだ。アイダホポテトでも食べてろwww
530デフォルトの名無しさん:2005/03/23(水) 23:47:25
春休みだからなぁ。どうしても宿題は少なくなるわな。やっぱり
一番楽しいのは夏休みの終わりでしょ(w
531デフォルトの名無しさん:2005/03/23(水) 23:51:13
>>529
君、>>516だろ。
532デフォルトの名無しさん:2005/03/23(水) 23:53:27
>>531
お前もアホかwww アホが多いなぁ、この板は。ははは
533デフォルトの名無しさん:2005/03/24(木) 00:45:27
誘導

最高に頭悪そうな発言してください in ム板 (IV)
http://pc8.2ch.net/test/read.cgi/tech/1108989422/
534デフォルトの名無しさん:2005/03/24(木) 01:22:19
癒し系というより、卑しい系?
535デフォルトの名無しさん:2005/03/24(木) 01:39:42
【質問テンプレ】 
[1] 授業単元:己を磨け。Failed。 
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=158 
のNo.278
シンプルにメソッド・Prevを実装せよ。
・メソッド・Nextのデクリメントバージョン。
--デクリメントというのは、ポジションのことです。リバースしたりはしないでください。
・要約すると、クラス変数のtopとbtmをゴニョゴニョしてメソッド・Nowを呼ぶと動作するようになっています。
--ゴニョゴニョとは、topは切り出す場所の頭を、btmは切り出す場所の尻尾を指すことになっています。
・このクラスは、パーサーのためのクラスで、区切り文字を含まず、区切り文字から区切り文字までを切り出すクラスです。
--文字コードはchar型きめ打ちです。
[3] 環境 
 [3.1] OS: 問わず。
 [3.2] VC7.1 
 [3.3] 言語:C++ のクラス関連。 
[4] 期限:3月26日 
[5] その他の制限: 

よろしくお願いします。
536535:2005/03/24(木) 01:49:20
ところで、たとえばboostとかそこら辺にこんな感じ(>>535)のクラスってありますか?
車輪の再発明は面倒なので、既にあるならそっちを使いたいのですが。
多分、既にあるほうがパワフルで使い勝手も良いことでしょうから。
537デフォルトの名無しさん:2005/03/24(木) 02:21:59
>>536
boost::tokenizerとiterator使えば同じことができそうだけど…
パッと見ただけだから違ってたらスマソ。
StrTalkerってTokenizerのTypoか?
538デフォルトの名無しさん:2005/03/24(木) 02:59:39
【質問です】
[1] 授業単元: クラスのインヘリタンス
[2] 問題文: 下記記入
[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ(バージョン): VC++6.0
 [3.3] 言語:C++
[4] 期限:無期限
[5] その他の制限: 総合点算出時、privateの変数にアクセスできず計算ができないので
他のやり方があれば教えてください。
下記クラスを使い、数名の科目別成績を入力し総合点を算出する。
class SEISEKI
{
public:
SEISEKI();
~SEISEKI();
private:
 int nEnglish; //英語
 int nMath; //数学
 int nKokugo; //国語
};
class GAKUSEI
{
public:
 GAKUSEI();
 ~GAKUSEI();
 SEISEKI clsSeiseki;
private:
 char pchName[ NAME_LEN_SIZE + 1 ]; //名前
};
539538:2005/03/24(木) 03:03:03
例)
・Aさん:英語90点 数学100点 国語85点
・Bさん:英語100点 数学80点 国語60点
総合英語:190点
総合数学:180点
総合国語:145点

簡単な問題だとは思いますが、C++始めたばかりで理解に苦しんでます。
教えてください。
540デフォルトの名無しさん:2005/03/24(木) 03:05:57
>>538
SEISEKIにはアクセサなどは一切付けたらだめなのか?
541デフォルトの名無しさん:2005/03/24(木) 03:08:27
キャストして無理やりいじれってこと・・・?
542デフォルトの名無しさん:2005/03/24(木) 03:11:16
#define private public
543デフォルトの名無しさん:2005/03/24(木) 03:12:07
>>542
それは盲点だった
544535:2005/03/24(木) 03:12:34
>>537
英語苦手なんです。それはいいとして。
boost::tokenizerは区切り文字を指定できるかどうかですね。
ちょっと調べてみよう。
545デフォルトの名無しさん:2005/03/24(木) 03:14:40
>>544
char_separatorとかで。
546デフォルトの名無しさん:2005/03/24(木) 03:22:14
std::string str = "abcdeefghijkkklnm opqrstuvwxyz";
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
boost::char_separator<char> separator("aek ");
tokenizer tk(str, separator);

for (tokenizer::iterator it=tk.begin(); it!=tk.end(); ++it)
  std::cout << *it << std::endl;
547544=535:2005/03/24(木) 03:25:10
ttp://boost.cppll.jp/HEAD/libs/tokenizer/char_separator.htm
ここ見るとできそうですね。

>>545
当たりだと思います。
しかも、自作よりもパワフル。
良いですな。
548544=535:2005/03/24(木) 03:33:24
>>546
レスthx!リロードしてなかった。
まさに探してた機能ですよ。
あー。すごいなー。
549デフォルトの名無しさん:2005/03/24(木) 04:02:52
>>538
C++の場合。というか、最近の流行だと、メソッドとしてgetterという総称のものをつけるんですよ。
まー、僕は手を抜いて合計だけ実装とかやりますけどね・・・。
それと、ワンポイントとして、学生の名前は、std::stringにしたほうが、安全だし便利だよ。<string>に書かれているよ。もー目からうろこ。

550デフォルトの名無しさん:2005/03/24(木) 09:37:26
#include<stdio.h>
#include<stdlib.h>

int main()
{
int i,x,y;
int count;
count = 0;

printf("何回試行するか?");
scanf("%d",&y);

for(i=1;i<y+1;i++){
x=rand();
if(x==1){
count++;
}
printf("%d回目 %d \n",i,x);
}
printf("\n1 %d回",count);
return 0;

}

指定回数試行して1〜32765まで何回出たかカウントしていきたいです。
1は出すことは出来るんですが・・・orz

2〜32765まで出すにはどうすればいいんでしょうか?
お願いします。
551デフォルトの名無しさん:2005/03/24(木) 09:54:54
unsigned long count[32766];
for(i=0;i<y;++i){
++count[x = rand()];
printf("%d回目 %d \n",i+1,x);
}
for(i=0;i<32765;++i)printf("%5d: %d\n",i,count[i]);

こんな感じかなぁ
552デフォルトの名無しさん:2005/03/24(木) 09:59:28
>>550 先越されたけどもったいないから貼り付けるヨ
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define N 32765
int main(void) {
    unsigned times, i, count[N] = {0};
    srand((unsigned)time(0));
    printf("何回試行するか?");
    if (scanf("%u", ×) != 1) return 1;
    for (i = 0; i < times; ++i) {
        int n = rand();
        if (n < 1 || N < n) continue;
        ++count[n-1];
    }
    for (i = 0; i < N; ++i) printf("%5u - %3u回\n", i+1, count[i]);
    return 0;
}
553552:2005/03/24(木) 10:09:19
あれ?&times が × になってるヨ
なにこれ?こんな実体参照があるの?知らなかったヨ
554デフォルトの名無しさん:2005/03/24(木) 12:55:49
これか&times
www.w3.org/TR/html4/sgml/entities.html
555552:2005/03/24(木) 15:27:40
>>554 激しく板違いだけど勉強になった
&times は multiplication sign なんだね
ありがd
556デフォルトの名無しさん:2005/03/24(木) 15:58:44
正確には&times;な
557デフォルトの名無しさん:2005/03/24(木) 19:27:29
time(&x)

x = time();
って書き方どっちがいいの。
558デフォルトの名無しさん:2005/03/24(木) 19:47:02
その場合、どっちでもいいんじゃない?
559デフォルトの名無しさん:2005/03/24(木) 20:25:30
>>557
timeには引数を与えないとだめだろ。
x = time(0);
560デフォルトの名無しさん:2005/03/25(金) 01:01:02
C++なら
time_t x = time(0);
と書くのが自然だろうなぁ。
561538:2005/03/25(金) 02:29:44
>>540
アクセサについて調べたんですがいまいちわかりませんorz
クラスの中に関数を作ってるかんじですか??

むずい・・・_| ̄|○
562デフォルトの名無しさん:2005/03/25(金) 02:32:08
なんで継承していないの?
563デフォルトの名無しさん:2005/03/25(金) 02:36:31
>>561
??
メンバ変数をいじくりたいときは、アクセサとかいう、まぁ、ただのメンバ関数を定義して
アクセスするようにするってこと。
メンバ変数をいじるときは決められたいじくりかた以外は禁止したいのね。
だから、いじくりかたを制限するためにアクセサを使うの。
564デフォルトの名無しさん:2005/03/25(金) 02:47:45
つうか、継承の課題なんだから、ちゃんと継承しろよ。
565デフォルトの名無しさん:2005/03/25(金) 23:31:37
次スレはこのスレを継承しません。
566デフォルトの名無しさん:2005/03/25(金) 23:35:10
>>565
次スレはこのスレをコンポジットします
567デフォルトの名無しさん:2005/03/26(土) 11:48:13
次スレは独立です。
568デフォルトの名無しさん:2005/03/26(土) 17:09:38
[1] 情報
[2] 1000以下の3つの正の整数を入力しそれぞれの長さを3辺とする三角形が直角
三角形である場合にはYES,NOと出力して終了するプログラムを作成してください
[3] 環境
 [3.1] winXp
 [3.2] CPad for Borland C++Compiler Ver2.31
 [3.3] C
[4] 無期限
[5] 入力
 辺1 (整数)
 辺2 (整数)
 辺3 (整数)

整数なので3:4:5の倍数で判断すればいいと思うのですが倍数かどうかを判断させるための
書き方がわかりません。お願いします
569デフォルトの名無しさん:2005/03/26(土) 17:25:01
>>568
3,4,5に相似なやつ以外にもあるよ。5,12,13とか。
a*a + b*b = c*c
570デフォルトの名無しさん:2005/03/26(土) 17:57:32
とりあえず、いらなくなったぽいけど
一応、割って余りが出なかったら倍数だからね
571568:2005/03/26(土) 18:04:18
ありがとうございます。
なんか中学の数学の自信がなくなってきました・・・
572デフォルトの名無しさん:2005/03/26(土) 18:22:29
let is_right_triangle a b c =
let a2 = a*a and b2 = b*b and c2 = c*c in
a2+b2=c2 || a2+c2=b2 || a2=b2+c2;;
573デフォルトの名無しさん:2005/03/26(土) 18:29:52
>>568
#include <stdio.h>
#define SWAP( p1, p2 ) { p1 ^= p2; p2 ^= p1; p1 ^= p2; }
static void
Body( int p1, int p2, int p3 ) {
if ( p1 > p2 ) SWAP( p1, p2 );
if ( p2 > p3 ) SWAP( p2, p3 );
puts( p1 * p1 + p2 * p2 == p3 * p3 ? "YES " : "NO" );
}
int
main() {
int w1, w2, w3;
if ( scanf( "%u%u%u", &w1, &w2, &w3 ) != 3 ) return;
Body( w1, w2, w3 );
}
574デフォルトの名無しさん:2005/03/26(土) 18:31:07
>>573
効率悪
575デフォルトの名無しさん:2005/03/26(土) 18:38:18
>>573
スワップさせるのは無駄。
a2+b2+c2 == max(a2, b2, c2)*2;
ぐらいか?
576デフォルトの名無しさん:2005/03/26(土) 19:00:53
>>575
と思ったが、足し算が2回増えるのは痛いかも。
まあ、最後の足し算は並行して処理できるので、それほど悪くはない気もするが。
577デフォルトの名無しさん:2005/03/26(土) 19:33:16
>>572
付け加えてやるよ。

let is_right_triangle a b c =
let a2 = a*a and b2 = b*b and c2 = c*c in
a2+b2=c2 || a2+c2=b2 || a2=b2+c2;;

let rec loop lst =
match lst with
a::b::c::[] ->
if is_right_triangle a b c then print_endline "YES"
else print_endline "NO"
| _ -> loop ((read_int ())::lst) in
loop [];;
578デフォルトの名無しさん:2005/03/26(土) 19:35:22
数字以外だと例外発生するから対策しとこう。
let rec loop lst =
match lst with
a::b::c::[] ->
if is_right_triangle a b c then print_endline "YES"
else print_endline "NO"
| _ -> loop ((read_int ())::lst) in
try
loop []
with
Failure _ -> print_endline "数字ちゃうやん";;
579デフォルトの名無しさん:2005/03/26(土) 19:40:35
何語?
580デフォルトの名無しさん:2005/03/26(土) 19:43:31
>>578
OCamlで書くと効率良く書けるって言いたいのはわかったから、いい加減スレ違いだ
581デフォルトの名無しさん:2005/03/26(土) 20:28:20
>>578
    _
  '´    ヽ
 !  j リノ))))
 l ll ;゚ ヮ゚ノ∫ まんこ濡れてきた
 li人 Y /
 |!( ヽ し
  (_)_)
582デフォルトの名無しさん:2005/03/27(日) 00:42:27
>>568
#include <stdio.h>
#define D(i) printf("辺%d ",i);scanf("%d",&a##i);
#define Q(x,y,z) a##x*a##x+a##y*a##y==a##z*a##z
int main(void){int a1,a2,a3;D(1)D(2)D(3)(a1>a2?a1-a2:a2-a1)<a3&a3<a1+a2&(Q(1,2,
3)|Q(1,3,2)|Q(2,3,1))?puts("YES"):puts("NO");}
583デフォルトの名無しさん:2005/03/27(日) 02:08:55
入出力部はおいといて。直角三角形かどうかの判定ってばこんなカンジか?

int is_tyokkaku(long a, long b, long c)
{
  long tmp;
  if (a < 1 || b < 1 || c < 1) return 0; /* 0や負の長さの辺なんてない */
  /* c に長辺が来るようにする */
  if (a > c) { tmp = a; a = c; c = tmp; }
  if (b > c) { tmp = b; b = c; c = tmp; }
  if (a + b <= c) return 0; /* 3角形なら長辺より残りの辺の長さの和のほうが大きいはず */
  if (a*a + b*b == c*c) return 1;
  return 0;
}
584デフォルトの名無しさん:2005/03/27(日) 02:16:45
if (a*a + b*b == c*c) return 1;
if (b*b + c*c == a*a) return 1;
if (c*c + a*a == b*b) return 1;
return 0;
585デフォルトの名無しさん:2005/03/27(日) 02:49:10
int AA = a*a,
BB = b*b,
CC = c*c;

#define check(A,B,C) (A+B==C)

puts ((check(AA,BB,CC) ||
check(AA,CC,BB) ||
check(CC,BB,AA)) ? "OK" : "NG");
586デフォルトの名無しさん:2005/03/27(日) 20:47:05
【質問です】
[1] 授業単元:再帰
[2] 問題文:下記参照
[3] 環境
 [3.1] OS:windows XP
 [3.2] コンパイラ(バージョン):Borland C++Compiler5.5
 [3.3] 言語:C
[4] 期限:2005年03月28日07:00まで
[5] 整数値1〜5まで
 C初心者です。
 power関数を再帰呼び出して入力したxのy乗を返したいのですが、
 再帰の方法が分からず悩んでます。
 どうか宜しくお願い致します。

/* power関数の定義 */
int power(int x,int y)
{
int i;
int pw=1;
for(i=1; i<=y; i++) {
pw=pw * x;
}
return (pw);
}
587デフォルトの名無しさん:2005/03/27(日) 20:55:36
>>586
if (y==0) return 1;
else if(y>0) return pw * power(x,--y);
else return pw / power(x,++y);

あってるか知らんが再帰はこうする。
y==0で定数を返すのが味噌。
588デフォルトの名無しさん:2005/03/27(日) 21:06:20
OCamlだとこんなに簡単!

let rec power x y =
match y with
0 -> 1
| 1 -> x
| _ -> x * (power x (y-1));;
589デフォルトの名無しさん:2005/03/27(日) 21:09:35
すばらしいのは分かるんだが、
いいかげんOCamlで書きたい奴は
OCaml宿題スレでも作っては如何か?
590デフォルトの名無しさん:2005/03/27(日) 21:09:54
それをCで書き換えると、
int power (int x, int y) {
if (y == 0) return 1;
else if (y == 1) return x;
else return x * power (x, y-1);
}
591デフォルトの名無しさん:2005/03/27(日) 21:11:16
>>589
だって、だってぇ…
592デフォルトの名無しさん:2005/03/27(日) 21:13:20
>587 
レスありがとうございます。
しかしコンパイルが通りませんでした。><
593587:2005/03/27(日) 21:13:29
if (y==0) return 1;
else if(y>0) return x * power(x,--y);
else return 1/x * power(x,++y);

こうか。相変わらず試してないが。
594デフォルトの名無しさん:2005/03/27(日) 21:19:43
普通、Cで書けばこうだろ?

int power(int x, int y)
{
return !y ? 1 : x * power(x, y-1);
}
595デフォルトの名無しさん:2005/03/27(日) 21:20:19
int power(int x, int y)
{
    if(y == 0) return 1;
    else if(y > 0) return x * power(x, y - 1);
    else return 1 / power(x, -y);
}

こんなもん?脳内コンパイルは通った。
elseは要らんなぁとは思うが・・・。
596デフォルトの名無しさん:2005/03/27(日) 21:23:16
1〜5までならいらんわな
intなら0にされて意味ないし^^;
597586:2005/03/27(日) 21:28:13
コンパイルも通り上手く行きました。
みなさん本当にありがとうございました。
598デフォルトの名無しさん:2005/03/27(日) 21:41:01
お前ら馬鹿だな
これで瞬殺じゃないか
#include <math.h>
int power(int x, int y) {
return pow(x, y);
}
599デフォルトの名無しさん:2005/03/27(日) 21:50:39
どこで再帰使ってるのか教えて貰いたい所だ。
600デフォルトの名無しさん:2005/03/27(日) 21:50:57
[1] 情報技術
[2] 2004/01/01から2004/12/31までの日付を入力し、その日の曜日を出力して終了するプログラムを作成しなさい
2004/01/01は木曜日であり2004年はうるう年であることに注意すること
[3] 環境
 [3.1] winXP
 [3.2] CPad for Borland C++Compiler Ver2.31
 [3.3] C
[4] 無期限
[5] 特にありません、お願いします

601デフォルトの名無しさん:2005/03/27(日) 22:34:15
>>586
他のよりちょっと早いはず。

int power(int x, int y) {
 int r=1;
 if(y) {
  r=power(x, y/2);
  r*=r;
  if(y%2) r*=x;
 }
 return r;
}
602デフォルトの名無しさん:2005/03/27(日) 22:57:05
>>600
#include <stdio.h>
int day_of_week(int y, int m, int d) {
    return y -= m < 3, (y + y/4 - y/100 + y/400 + "032503514624"[m-1]-'0' + d) % 7;
}
int main(void) {
    char * week[] = {"日","月","火","水","木","金","土"};
    unsigned year, month, day;
    if (scanf("%u/%u/%u", &year, &month, &day) != 3) return 1;
    puts(week[day_of_week(year, month, day)]);
    return 0;
}
603デフォルトの名無しさん:2005/03/27(日) 22:58:26
実測しました。
>>601>>588>>590>>593>>598
604デフォルトの名無しさん:2005/03/27(日) 23:01:44
>>601
r=power(x, y/2);

r=power(x, y>>2);
にしたら2倍速くなった
605デフォルトの名無しさん:2005/03/27(日) 23:05:26
つーかさ、
再帰を使うことが指定されている問題で
速さを競って一体どうするつもりなのさ?
606デフォルトの名無しさん:2005/03/27(日) 23:22:12
遊びでしょ。
607601:2005/03/27(日) 23:25:36
>>604
そんじゃy%2もy&1にしてみればどうよ
608デフォルトの名無しさん:2005/03/27(日) 23:32:17
>>607
2%だけ高速になった。
609デフォルトの名無しさん:2005/03/28(月) 07:59:27
>>604
そりゃあ2で割ってるものを4で割るようにすればな。
610デフォルトの名無しさん:2005/03/28(月) 15:01:09
質問ないっすか!!!!!!!!!!!!!!!!!!!!
611デフォルトの名無しさん:2005/03/28(月) 16:11:38
本当に質問ないんすかねぇ!!
612デフォルトの名無しさん:2005/03/28(月) 16:16:41
>>610-611
日本語読めないんですか?
613デフォルトの名無しさん:2005/03/28(月) 16:23:05
>>612
なに言ってるの
614デフォルトの名無しさん:2005/03/28(月) 16:39:47
ここは質問スレじゃないって言いたいんだろ
615常識人 ◆WWkTvYxtEs :2005/03/28(月) 19:29:23
私の出番ですかね?
616デフォルトの名無しさん:2005/03/28(月) 19:33:49
>>615
あなたは出てこない方がいいです
617デフォルトの名無しさん:2005/03/28(月) 20:06:45
>>615
うるせーよ。
お前みたいなやつは
ttp://pokkuri.web.infoseek.co.jp/art/music/po-tu/index.htm
これでも聞いとけやw
618デフォルトの名無しさん:2005/03/29(火) 01:22:54
スレ伸びないね。やっぱりスレタイがry・・・・
619デフォルトの名無しさん:2005/03/29(火) 01:26:24
春休みちゃうんかぃ
620デフォルトの名無しさん:2005/03/29(火) 01:30:31
一週間後には大賑わいと予想。
621デフォルトの名無しさん:2005/03/29(火) 11:37:07
お願い致します

標準入力から読み込んだ文字列に対し,ランレングス符号化を行うプログラムを作成せよ.
ランレングス符号化とは,データ内における同記号の列を,その記号と数値で置き換えることで情報圧縮を行う技術のことである.
例えば,
aaaaabbbccdddda
の入力に対し,
a5b3c2d4a1
と出力する






(* ここに解答を書き加える *)

int main(void){
char buf_r[1024] = {0};
char buf_w[1024] = {0};
int length;

printf("文字列の入力\n");
scanf("%s",buf_r);
runlength(1024,buf_r,buf_w);
printf("[ランレングス符号化]\n%s\n",buf_w);
return(0);
}

622デフォルトの名無しさん:2005/03/29(火) 11:45:05
あなたはお願いされますか・・・
623デフォルトの名無しさん:2005/03/29(火) 12:51:16
>>621
C言語勉強して三日目の俺が答えてやる
間違ってても知らん

#include <stdio.h>
#include <string.h>

void runlength(int max, char *buf_r, char *buf_w)
{
int i, cnt = 0;
char str[120];

for (i = 1; i < max ; i++){
if (buf_r[i - 1] == buf_r[i]){
cnt++;
} else {
sprintf(str, "%c%d", buf_r[i - 1], cnt + 1);
strcat(buf_w, str);
cnt = 0;
}
}
}
624デフォルトの名無しさん:2005/03/29(火) 15:35:30
>>621
いっしょうけんめい考えました。しょうがく6ねん生です。
void runlength(int max, char *buf_r, char *buf_w)
{
int err=0,cnt=0,fig=1,rgl ;
char ch ;
ch = *buf_r ;

for( ; ; err++, buf_r++ ){
if( err == max )
{printf("over flow.\n"); break ;}
if( ch != *buf_r ){

*(buf_w)++ = ch ;
while( fig <= cnt ) fig *= 10 ;
fig /= 10 ;
while( cnt ) *(buf_w)++ = ( rgl = cnt / fig ) + '0', cnt -= rgl * fig, fig /= 10 ;
*(buf_w) = '\0', ch = *buf_r ,cnt = 1, fig = 1 ;
if( *buf_r == '\0' ) break ;
}
else cnt++ ;
}
}
625デフォルトの名無しさん:2005/03/29(火) 16:12:20
>>624
× while( cnt )
○ while( fig )
626デフォルトの名無しさん:2005/03/29(火) 16:44:22
>>621
一つの文字が10個以上続いた場合はどうするの?
627デフォルトの名無しさん:2005/03/29(火) 17:05:44
疑問点
(1)626が言うように10個以上続いた場合
→Aが12個の場合 … A9A3 or A3A9に?
(2)出力バッファが足りなかったら?
→止めるだけ?
(3)main()のint length;って何?何使うの?
→まぁ関係無いか
628デフォルトの名無しさん:2005/03/29(火) 17:20:08
>>621
aaaaaaaaaa の時 a9a1 になるタイプで作ってみたヨ
#include <stdio.h>
void runlength(size_t max, const char * in, char * out) {
    size_t size = 0;
    while (*in) {
        size_t len = 0;
        for (*out = *in; len < 9 && *in == *out; ++in, ++len) ;
        ++out;
        *out++ = len + '0';
    }
    *++out = '\0';
}
629621:2005/03/29(火) 18:45:52
すいませんレス書くの遅れました
みなさん解答ありがとうございます
>>623さんの解答で正解もらえました
630デフォルトの名無しさん:2005/03/29(火) 21:09:41
>>629
他の人は不正解かよ!!
631デフォルトの名無しさん:2005/03/29(火) 21:10:12
しょうがねーな。OCamlの答えを出してやろうか
632デフォルトの名無しさん:2005/03/29(火) 21:18:23
>>631 ドゾー
633デフォルトの名無しさん:2005/03/29(火) 21:19:33
>>631
デタナ










ドゾー
634デフォルトの名無しさん:2005/03/29(火) 21:26:11
let run_char buf n =
let len = String.length buf and
c = String.get buf n in
let rec loop n =
if len <= n then n
else if String.get buf n = c then loop (n+1)
else n in
loop n
;;

let enc c n =
let rec loop s nn =
if nn = 0 then s
else if nn <= 9 then s^c^(string_of_int nn)
else loop (s^c^"9") (nn-9) in
loop "" n
;;

let runlength buf =
let len = String.length buf in
let rec loop s n =
if n >= len then s
else
let next = run_char buf n in
loop (s^(enc (String.sub buf n 1) (next - n))) next in
loop "" 0
;;

print_string (runlength "aaaaaaabbbbbcccc1111111111111111")
;;
635デフォルトの名無しさん:2005/03/30(水) 00:03:50
>>634
OCaml乙
636デフォルトの名無しさん:2005/03/30(水) 00:08:34
(s^c^"9")
637デフォルトの名無しさん:2005/03/30(水) 11:00:30
>>634
次はOS(規模はお好きにどうぞ)書いてくれ。
Windowsなどの上で動作する仮想的なものではなく
本当のOS。
638デフォルトの名無しさん:2005/03/30(水) 16:14:44
[1] 情報技術
[2] 英語の文章に出現する単語の中で文字数が最も多い単語を出力して終了する
プログラムを作成しない。入力データには英文字、スペースのみが含まれているものとします。
単語とは、スペースで区切られた連続する英文字の列です。文章の文字数は80文字以下です。
ひとつの単語の文字数は32文字以下です。最長の文字数を持つ単語は文中にただ一つだけ存
在します。
[3] 環境
 [3.1] WinXP
 [3.2] CPad for Borland C++Compiler Ver2.31
 [3.3] C
[4] 無期限
[5] 文字数のカウントを単語できっていく方法がわかりません。スペース
をカウントの終了条件にすればいいと思いますがそこで止まってしまいます
お願いします
639デフォルトの名無しさん:2005/03/30(水) 16:17:36
「英語の文章に出現する単語の中で文字数が最も多い単語を出力して終了する
プログラムを作成しない」ってなめてんの?
640デフォルトの名無しさん:2005/03/30(水) 16:29:05
じゃあ作成しねーよヽ(`Д´)ノウワァァァン
641デフォルトの名無しさん:2005/03/30(水) 16:33:37
>>638
int main(void)
{
return(0);
}
642638:2005/03/30(水) 16:34:41
よりによってとんでもないところで脱字を・・・orz
「作成しない」→「作成しなさい」
でお願いします。
643デフォルトの名無しさん:2005/03/30(水) 17:05:29
天然? むちゃワロタ
644デフォルトの名無しさん:2005/03/30(水) 19:07:33
一行しか入力できんけど
適当にやったからたぶん間違ってる
#include<stdio.h>
#include<string.h>
char* aaa( char* ) ;
int main( void )
{
char buf[255] ;
fgets( buf, sizeof buf, stdin ) ;
buf[strlen(buf)-1] = '\0' ;
printf( aaa( buf ) ) ;
return 0;
}

char* aaa( char* s )
{
char *p = s, *max= s;
int cnt = 0, maxlen = 0 ;
while( *s != '\0' ){
if( *s == ' ' ){
maxlen < cnt ? maxlen = cnt, max = p : 0 ;
cnt = 0,*s='\0',s++, p =s ;
continue ;
}
else
cnt ++ ;
s++ ;
}
return max ;
}
645デフォルトの名無しさん:2005/03/30(水) 19:31:07
ボクも適当にやってみた。たぶん間違ってる。
#include <stdio.h>
#include <string.h>

int main()
{
char str[1024];
char *tp;
char *temp;
int max, length;

puts("文章を入力してください");
gets(str);

tp = strtok(str, " "); /* 最初の文字列を取り出す */
temp = tp; /* 文字列を保存 */
length = strlen(tp); /* 文字列の長さを得る */
max = length; /* 文字数の最大値として保存 */
646デフォルトの名無しさん:2005/03/30(水) 19:31:38
というか全く同じ問題を過去何度も見てる希ガス…
647デフォルトの名無しさん:2005/03/30(水) 19:31:41
while( tp != NULL){ /* 最後の文字列までを取り出す */
tp = strtok(NULL, " ");
if (tp != NULL){
length = strlen(tp);
if (max < length){
max = length;
temp = tp;
}
}
}

printf("\n文字数が最も多い単語は%s\n", temp);
printf("その文字数は%d\n", max);
return 0;
}
648デフォルトの名無しさん:2005/03/30(水) 19:53:00
非決定性有限オートマトンだよー
649デフォルトの名無しさん:2005/03/30(水) 19:53:40
正規表現を扱う関数なんか作ろうと考えないでねー
650デフォルトの名無しさん:2005/03/30(水) 21:18:18
>>638
let maxlength text =
let rec loop p (mb,mn) (b,n) =
if p = (-1) then
let (mmb,mmn) = if mn < n then (b,n) else (mb,mn) in
String.sub text (mmb-mmn+1) mmn
else match String.get text p with
'a'..'z' | 'A'..'Z' | '0'..'9' | '-' ->
loop (p-1) (mb, mn) ((if b = 0 then p else b), (n+1))
| _ -> loop (p-1) (if mn < n then (b, n) else (mb, mn)) (0, 0)
in loop (String.length text-1) (0, 0) (0, 0)
;;

print_string (maxlength "Day before yesterday I saw a rabbit, and yesterday a deer, and today, you.")
;;
651デフォルトの名無しさん:2005/03/31(木) 00:37:27
>>650
OCaml厨はウザイしスレ違い。今度書いたらアク禁要望出すよ。
652デフォルトの名無しさん:2005/03/31(木) 00:41:28
>>651
どうぞご自由に
653デフォルトの名無しさん:2005/03/31(木) 00:51:10
だから>>589で言ったのに。
OCamlは良いと思うけど、ここにソース上げまくっても反感買うだけで意味内でしょうに。
普及活動したいなら、他のトコでやるべきでしょうよ。
654デフォルトの名無しさん:2005/03/31(木) 01:58:48
どうせ過疎だしなぁ。
OCamlも行くとこないだろうし、いいんじゃね?
655デフォルトの名無しさん:2005/03/31(木) 02:06:27
じゃ、考える過程でOCamlを使った。それを元にCで書く、っていうのはどう?
656デフォルトの名無しさん:2005/03/31(木) 02:30:03
OCamlスレを作ればいいのか?これ以上ガタガタ言うならそっちでやれよ
657デフォルトの名無しさん:2005/03/31(木) 02:32:14
>>656
そんなの寂れるにきまってるやん。
ひどいよぉ。一緒にやろうよぉ。こっちの方が人が多いんやもん。
658デフォルトの名無しさん:2005/03/31(木) 02:37:19
そんな義理は無い
せめてもの情けだ、テンプレを作れ。それで立ててやる
テンプレ作らないのであれば、こちらが適当に作る
659デフォルトの名無しさん:2005/03/31(木) 02:40:40
>>658
でも、こんなにたくさんスレがあるのに、全部超過疎スレですよ?
重複スレを増やしてもしょうがないと思います。

関数型言語ML(SML, OCaml, etc.), Part 3
http://pc8.2ch.net/test/read.cgi/tech/1103606223

関数型言語Part IV
http://pc8.2ch.net/test/read.cgi/tech/1083649982

let t = 関数型プログラミング言語ML 2
http://pc8.2ch.net/test/read.cgi/tech/1058630709
660デフォルトの名無しさん:2005/03/31(木) 02:43:36
>>659
ここでOCamiやっても反感買うだけだと思います。荒らしのつもりですか。
661デフォルトの名無しさん:2005/03/31(木) 02:45:05
HSPスレでやればいいのに
662デフォルトの名無しさん:2005/03/31(木) 02:49:54
>>660
だから、荒らしにならないように、OCamlはただの前置きにして、本番のC/C++のソースコードも張ります。
OCamlで書いたものをC/C++に移植する事によって、C/C++のコードに関数的な設計という+αを備えさせる
事が楽になります。
663デフォルトの名無しさん:2005/03/31(木) 02:51:25
どうでもいいけど、ここはC/C++の宿題スレだから
関数型言語の考え方をするのは勝手だけど、貼るのはスレ違い。
解答になってないし。
664デフォルトの名無しさん:2005/03/31(木) 02:52:00
>>662
わかったわかった。スレ立ててやるからテンプレ作れ。
まだ続けるなら適当に立てる。
665デフォルトの名無しさん:2005/03/31(木) 02:56:02
>>664
もし宿題スレにするなら、絶対に過疎になります。
なぜなら、もともとOCamlを教材に使っている講義はとても少ないからです。
宿題が出なければ宿題すれは成り立ちません。
質問をするだけなら>>659のスレで十分まかなえます。
これ以上OCamlのスレは必要ではないのです。
666デフォルトの名無しさん:2005/03/31(木) 02:56:44
連動スレという手もありますが…。
667デフォルトの名無しさん:2005/03/31(木) 02:57:59
わかりました。引き下がります。
668デフォルトの名無しさん:2005/03/31(木) 02:58:58
迷惑だ。
669デフォルトの名無しさん:2005/03/31(木) 03:06:13
>>668
なんだと!!!!!
670デフォルトの名無しさん:2005/03/31(木) 03:18:01
OCaml厨よ、関数型MLスレにでも頼んで、
コッチの宿題の回答張らせてもらえば?
若しくはそう言うスレ1個立てるとか。過疎化は覚悟で。
んでコッチには、Cの回答+OCamlスレの該当レスへのURLを張る。
OCamlに興味がある奴は辿るだろうし、興味ない奴にも
1行URLが増えるだけだから、反感は買い難いと思う。

まぁ、障りない程度なら、いい刺激にもなるんだよ。
特に宿題が今少ないから目先が移っていけないことでもない。
ただ、今までの君のやり方は一方的押し付けでしかない。
そこらを考慮してくれれば、こちらのスレにも理解が生まれると思う。
671デフォルトの名無しさん:2005/03/31(木) 03:22:13
>>670
生まれねえよ
黙ってろクソ野郎
672デフォルトの名無しさん:2005/03/31(木) 03:23:10
>>671
OCamlなんて知らなかったが、結構面白そうだと思ったぞ
673デフォルトの名無しさん:2005/03/31(木) 03:25:35
OCaml云々言ってるやつは>>672含めて一人だけなわけだが。
674667:2005/03/31(木) 03:28:41
>>673
ちゃうて。
675デフォルトの名無しさん:2005/03/31(木) 03:38:28
どうでもいいが宿題をくれ
676デフォルトの名無しさん:2005/03/31(木) 03:39:28
学校が休みだっちゅうねん。
677デフォルトの名無しさん:2005/03/31(木) 04:01:35
http://dada.perl.it/shootout/
↑このHPを見て、OCamlはなかなか優秀だと思っていたが、このスレに
粘着しているようなOCaml厨がいるから嫌いになっちゃったよ。
678デフォルトの名無しさん:2005/03/31(木) 04:14:39
>>677
あなたのようなアンチな人がいるのはかまいませんが、うざいです。
OCamiが嫌いならスルーすればいいのです。
679デフォルトの名無しさん:2005/03/31(木) 04:16:26
>>678
お前がうざいよOCaml厨ふぜいが。
680デフォルトの名無しさん:2005/03/31(木) 04:23:17
>>679
いやですねぇ。あなた自身が粘着という自覚が無い人は。
681デフォルトの名無しさん:2005/03/31(木) 04:30:19
>>680
粘着特有の言い回しを使って、厨丸出しですよ。あら恥ずかしー
682デフォルトの名無しさん:2005/03/31(木) 04:32:56
>>681
いやですねぇ。あなた自身が厨という自覚が無い人は。
683デフォルトの名無しさん:2005/03/31(木) 04:36:33
二人ともウザイぞ!どこか他行ってやれ!!!!
684デフォルトの名無しさん:2005/03/31(木) 06:26:13
宿題なくて失職中だからそういうことになるんだよ
はやく喧嘩する暇ないくらい宿題だしてやれ
685デフォルトの名無しさん:2005/03/31(木) 07:18:09
2数の最大/最小値を求める関数int max(a,b), int min(a,b) を作りなさい。
それらを用いて、2数の最大/最小値を同時に返す関数void max_and_min(a,b,max,min)を作りなさい。

よろしくです
686デフォルトの名無しさん:2005/03/31(木) 08:51:41
int max(int a, int b)
{
return a >= b ? a : b;
}

int min(int a, int b)
{
return a <= b ? a : b;
}

void max_an_min(int a, int b, int* max, int* min)
{
if(a >= b) {
*max = a;
*min = b;
} else {
*max = b;
*min = a;
}
}
687デフォルトの名無しさん:2005/03/31(木) 09:07:18
#include <algorithm>
// max(), min() の戻り値の型から、int を取り扱えばいいと仮定。
//
int max(int a, int b) {return std::max(a, b);}
int min(int a, int b) {return std::min(a, b);}
void max_and_min(int a, int b, int & max, int & min) {
max = std::max(a, b); min = std::min(a, b);
}
688デフォルトの名無しさん:2005/03/31(木) 09:08:41
あ、「それら」を使ってないや。
void max_and_min(int a, int b, int & max, int & min) {max = max(a, b); min = min(a, b);}

って、名前が被るからコンパイルできねぇって。
689デフォルトの名無しさん:2005/03/31(木) 13:21:09
>>687
int max(int a, int b) {return std::max(a, b);}
int min(int a, int b) {return std::min(a, b);}
おい、この定義に意味はあんのかい?
690デフォルトの名無しさん:2005/03/31(木) 13:26:32
>>689
俺もオモタ
691デフォルトの名無しさん:2005/03/31(木) 13:40:32
int max (int a, int b) { return a > b ? a : b; } やね。
692デフォルトの名無しさん:2005/03/31(木) 13:47:05
【不幸のレス】
このレスを見た人間は四日以内に死にます。
※あなたに訪れる死を回避する方法が
一つだけ/⌒ヽあります。
それは / ´_ゝ`)5つの板のスレに十分以内に
これを |    / コピペすることです。
      | /| | 
     // | |  
     U .U    失礼。ここ通らないと行けないので、ちょっと通りますね・・・
693デフォルトの名無しさん:2005/03/31(木) 13:51:37
バーカ
694デフォルトの名無しさん:2005/03/31(木) 13:53:32
宿題:
Brainfuckのインタプリタを作りなさい。
C言語
期限は明日まで。
695デフォルトの名無しさん:2005/03/31(木) 14:01:57
>>694
既出
696デフォルトの名無しさん:2005/03/31(木) 15:32:30
>>689-691
>688はalgorithmのmax/minを使いたかったんジャマイカ。
#つーか、ネタだろ。
697デフォルトの名無しさん:2005/03/31(木) 15:41:56
>>638

#include <stdio.h>
int main(void){int ch,maxlen=0,count=0;while(EOF!=(ch=fgetc(stdin))){if(ch==' '){if(maxlen<count)maxlen=count;count=0;}else count++;}printf("%d\n", maxlen);return 0;}
698デフォルトの名無しさん:2005/03/31(木) 15:46:59
>>685

#include <stdio.h>

int max(int a, int b) {
return a>b?a:b;
}

int min(int a, int b) {
return a<b?a:b;
}

void max_and_min(int a, int b, int* a_max, int* a_min) {
*a_max = max(a, b);
*a_min = min(a, b);
}
699デフォルトの名無しさん:2005/03/31(木) 15:47:18
>>697
1行で書くな。見にくい。
700デフォルトの名無しさん:2005/03/31(木) 15:50:22
>>697
I am Sam,and He is Taro.
これはどう評価するの?Sam,andっていうのは2つの単語だよね。
701デフォルトの名無しさん:2005/03/31(木) 15:56:12
>>700
英字と空白だけだってさ。(>638参照)
それはいいけど、>699といい他の連中といい、空白が複数並んでいたら破綻来たすって気付かないんだろうか。
702デフォルトの名無しさん:2005/03/31(木) 18:05:19
[1] 授業単元:C言語
[2] 問題文:自己参照構造体をつかって
4つのデータをファイルの保存するプログラムをつくりなさいという問題で
Add Delete Search Editの機能がいります
Delete Search EditともにIDで検索で削除 表示 変更という感じです
4つのデータというのは
int ID char 名前 int 年齢 long 電話番号 です
説明がわかりにくくてすみません よろしくお願いします
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ(バージョン):borland c++ 5
 [3.3] 言語:C
[4] 期限:一週間後です
703デフォルトの名無しさん:2005/03/31(木) 21:30:27
>>702
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/281.txt
ファイルへの保存以外はこんなカンジでどうかな。
実は仕事中なんでのこりはまたいずれ。あるいは他の人よろ。
704702:2005/03/31(木) 23:01:38
>>703
ありがとうございます

コードきれいにまとまってますね
自分のは無駄に変数使ってて見にくいって気づきました

ファイルの保存なんですけど
かなり行き詰まってます
705デフォルトの名無しさん:2005/03/31(木) 23:09:08
ヘタレなOCaml厨はどこ逝った?
706デフォルトの名無しさん:2005/03/31(木) 23:13:11
705 == ヘタレなOCaml厨
707デフォルトの名無しさん:2005/03/31(木) 23:19:07
>>706
あなたの非論理的な思考にはついて行けません。
708デフォルトの名無しさん:皇紀2665/04/01(金) 00:18:44
なに?やっぱりOCamlが恋しくなったの?
709703:皇紀2665/04/01(金) 00:25:43
>>704
めんどいのでファイルへの保存はあえて残したままにしとく。
この宿題のなかでは一番めんどい部分かもしれんが、
これくらいは自分でやってみるのも一興。

最近はScheme(Lispの方言)で遊んでたので、
変数を導入すると間違いの元ってことと、
「スコープを限定する」ってのがかなり重要と気づいた。

このスレに粘着してるOCaml厨くんも、
単にOCamlがすばらしいってことだけじゃなくて、
そこから学んだことをC/C++の宿題で悩む人に啓蒙していく
方が建設的ではないかなと思うわけだ。
710デフォルトの名無しさん:皇紀2665/04/01(金) 01:47:51
OCamlがいかに素晴らしくても、それを使う人間の根性が腐ってるんじゃねぇ┐(´ー`)┌
711デフォルトの名無しさん:皇紀2665/04/01(金) 15:20:16
>>703
idって0固定?
712デフォルトの名無しさん:皇紀2665/04/01(金) 15:21:08
あ、ごめん++
713デフォルトの名無しさん:皇紀2665/04/01(金) 15:22:16
>皇紀2665/04/01(金) 15:21:08
てか、いつだこれ
714デフォルトの名無しさん:皇紀2665/04/01(金) 15:32:05
>>703
// タブ区切りで出力
// AddressBook->nameには区切り文字が入ってないことが前提
int write(const char* filename)
{
Record* p;
FILE* fp;

fp=fopen(filename,"w");
if(fp!=NULL){
for(p=AddressBook; p!=NULL;p=p->nextRecord){
fprintf(fp,"%d\t%s\t%d\t%d\n",p->ID,p->name,p->age,p->tel);
}

fclose(fp);
return 1;
}
return 0;
}
715デフォルトの名無しさん:皇紀2665/04/01(金) 16:28:25
>>714
C++でfopen()かよ。ってのはまぁいいとして、
折角エラーチェックするならfprintf()とfclose()もエラーチェックした方が…
…まぁいいか。
716デフォルトの名無しさん:皇紀2665/04/01(金) 18:22:12
今、宿題やってるんですけど、
2 5,11 3 5 9
みたいなインプットをint arrayの中に収めたいのですが、上手くいきません。
9を読み込むと終わるプログラムです。
5,9だと続行です。
int main(){
int count = 0;
int command_array[10];
char temp;
int curr=0,prev=0;
cout << "\tEnter commands : " << endl;

while(true){
cin >> temp;
if(temp!=','&&temp!='.'){
curr = static_cast<int>(temp);
command_array[count] = curr;
if(count!=0)
prev = command_array[count-1];
count++;
}
cout << curr << prev<< endl;
if(prev!=5&&curr==9)
break;
}

return 0;
717デフォルトの名無しさん:皇紀2665/04/01(金) 18:24:18
char tempをint型のものに代入しようとすると、違う数字が入ってしまうんですよね。
cout << tempだとちゃんとそのままの数字が表示されるのに・・・
718デフォルトの名無しさん:皇紀2665/04/01(金) 18:26:19
>>715
言語はCって>>702に書いてあるだろ。
C++使えるならvectorで書いてるよ。
宿題スレなんだから宿題っぽい回答でいいじゃん。
本格的に利用するならそもそも単純なリストじゃ話にならん。
719デフォルトの名無しさん:皇紀2665/04/01(金) 18:26:55
例えば5,9だと","を無視して、int arrayにその数字を5 9のように収めたいのです。
720デフォルトの名無しさん:皇紀2665/04/01(金) 18:28:07
>>716
特に指定が無ければscanfを使うのが宿題ってものさ。
721デフォルトの名無しさん:皇紀2665/04/01(金) 18:29:22
>>719
それを厳密な仕様で固めてみろ。
それができれば書くのなんてすぐできる。
722デフォルトの名無しさん:皇紀2665/04/01(金) 18:29:35
c++なんですけど・・・。
723デフォルトの名無しさん:皇紀2665/04/01(金) 18:53:35
>>716
じゃあ、入力の次の行に
','入力されたフラグ変数でも追加すれば?
ループ抜けるときの条件に加えればOKだと思うけど
変数増やしちゃだめなの?
724デフォルトの名無しさん:皇紀2665/04/01(金) 18:55:09
>>717
tempの中身が数字ならtemp - '0'でint型の値になる。
725デフォルトの名無しさん:皇紀2665/04/01(金) 18:56:14
良いです。
つまり、読み込みからint型で読み込むということですか?
int temp;
cin >> temp;
みたいな。
でも、”,”を読み込むと、どうやってもうまくいかないんですよね。
フラグ変数をどういう風に使えば良いのでしょうか?
726デフォルトの名無しさん:皇紀2665/04/01(金) 19:01:13
>>725
いやわざわざint型に変えんでも
if(temp!=','&&temp!='.'){
の部分を活用すれば...
後は自分で考えるべし
727デフォルトの名無しさん:皇紀2665/04/01(金) 19:11:41
本当はこれは関数の一部で、このint arrayをあとでいろいろいじくるんですよ。
ただinput : 3 5 7 5,11 9 をarrayに 3 5 7 5 11 9といれたいだけなんですよ。
読み込みの際に、int tempを使うと、","を読み込むと、プログラムがおかしくなっちゃう。
char tempを使うと、int arrayに入れるときに、全く違う数字が入ってしまうんです。
例えば、
char temp;
cin >> temp; // 1
cout >> temp; // 1
int num = temp;
cout << num; //49
となるんですよね
728デフォルトの名無しさん:皇紀2665/04/01(金) 19:12:38
729デフォルトの名無しさん:皇紀2665/04/01(金) 19:13:45
>>727
tempに入っているのは文字としての'1'であり、数値の1とは別物。
730デフォルトの名無しさん:皇紀2665/04/01(金) 19:15:17
>>727
atoiつかっちゃだめなの
それか48ひくとか
731デフォルトの名無しさん:皇紀2665/04/01(金) 19:23:30
読み込みの際に、charを使ってはいけないことに気付きました。
なぜなら、2桁の整数を読み込むこともあるからです。
atoiですか?
初めての言葉なので、ちょっと調べてみます。
732デフォルトの名無しさん:皇紀2665/04/01(金) 19:27:00
一行ずつ処理なさいな。
733デフォルトの名無しさん:int 2ch =05/04/01(金) 20:19:26
>>727
C++を使わずにCの範囲でやってみた。
エラーチェックとかはぜんぜんしてないし、
コンパイルが通るかも疑問だけど。
配列の最初に9が来た場合に不正な参照が起こることと、
数値以外は全部空白扱いってことに注意。

int main(void) {
 int array[10];
 char temp[10];
 int i=0, j=0;
 while(EOF != (ch=getc(stdin))) {
  if(isdigit(ch)) temp[i++]=ch;
  else {
   temp[i] = '\0';
   if(i!=0) array[j++] = atoi(temp);
   if(array[j-2] != 5 && array[j-1]==9) break;
   i=0;
  } } }
734デフォルトの名無しさん:int 2ch =05/04/01(金) 20:30:43
これも有限状態オートマトンで解ける問題だな。
735デフォルトの名無しさん:int 2ch =05/04/01(金) 20:43:58
日付欄いまいちだな。シロウト臭い。
736デフォルトの名無しさん:int 2ch =05/04/01(金) 20:45:02
今日は土曜か。明日は休みだ。
737デフォルトの名無しさん:int 2ch =05/04/01(金) 21:02:44
>>727
一様できました
>>733
なるほど、俺のはだめだな余分な処理が多くて
暇なひとは指摘してくだされ
int main(){
int count = 0;
int command_array[10];
char temp[10];
int curr=0,prev=0,flag=0;
cout << "\tEnter commands : " << endl;
while(!(prev==5 && curr==9 && flag)){
flag = 0;
cin >> temp;
const int ilen = strlen(temp);
for(int i = 0; i<ilen; i++) {
if(temp[i] == ',' && curr==5){
flag = 1;
} else {
curr = static_cast<int>(temp[i]-'0');
command_array[count] = curr;
if(count!=0)
prev = command_array[count-1];
count++;
if(0<=curr && curr<=9)
cout << curr << endl;
}
}
}
return 0;
}
738デフォルトの名無しさん:int 2ch =05/04/01(金) 21:06:53
>>737
> 一様できました
一応ね。
739デフォルトの名無しさん:int 2ch =05/04/02(土) 09:33:22
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
 ■機能
 WindowsXPのようこそ画面(ユーザーアイコンの並んだログイン画面)
 において、マウスでクリックすることなく、自作アプリからログインしたい。

 ■状況・条件等
 ・ログインしたいユーザー名とパスワードは分かっています。
 ・ようこそ画面は表示したままで、自動的にログオンしたいです。
 ・ようこそ画面上で、自作アプリの起動は、できています。
 ・トップウィンドウにフォーカスをあてて、キーを送信(矢印キーとパスワード)
  してもログインできました。が、沢山のユーザーがある場合、非常に見た目が悪い。
 ・GINA?!とかいう画面差し替えの技術は使わないで行いたいです。
  何かAPI一発で出来そうな気もするのですが、WEBを検索しても見つけることができませんでした
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ(バージョン): Visual C++ V6.0
 [3.3] 言語:C++
[4] 期限:2005年04月06日
[5] その他の制限:
740デフォルトの名無しさん:int 2ch =05/04/02(土) 10:29:21
>>733,737
なるほど。ありがとうございます
741デフォルトの名無しさん:int 2ch =05/04/02(土) 11:38:38
>>739
スレ違い
742デフォルトの名無しさん:2005/04/03(日) 00:01:02
日付の"int 2ch="は激しくうざいな。そもそもどの言語だ。
743デフォルトの名無しさん:2005/04/03(日) 00:02:25
…とか書いた時点で無くなってる…(´・ω:;.:...
744デフォルトの名無しさん:2005/04/03(日) 00:42:47
どんまい
745デフォルトの名無しさん:2005/04/03(日) 03:46:04
[1] 授業単元: C
[2] 問題文(含コード&リンク): zlibを使い、文字列を圧縮・展開する関数compression(char *instr[], char *outstr[]);  decompression(char *instr[], char *outstr[]);を作りなさい。
[3] 環境
 [3.1] OS: WindowsMX SP2
 [3.2] コンパイラ(バージョン):VC .NET2003(VC7.1)
 [3.3] 言語:C
[4] 期限:2005年04月12日05:00
[5] その他の制限: zlib以外のライブラリは使えません。
746デフォルトの名無しさん:2005/04/03(日) 05:01:12
WindowsMXとか書くバカは市ね
747デフォルトの名無しさん:2005/04/03(日) 05:15:40
ワロタw
WinMeの後継OSか?w
748デフォルトの名無しさん:2005/04/03(日) 05:20:38
はぁ?おまえらWindowsMX知らないの?そんなんでよくプログラマやってんな
749デフォルトの名無しさん:2005/04/03(日) 05:31:57
この板来てる奴がプログラマだけとは限らん
750デフォルトの名無しさん:2005/04/03(日) 06:02:23
WindowsMX の検索結果のうち 日本語のページ 約 840 件中 1 - 50 件目 (0.39 秒)

もしかして: Windows me
751デフォルトの名無しさん:2005/04/03(日) 08:16:01
はて、Windows MeにSP2なんてあったっけ?
752デフォルトの名無しさん:2005/04/03(日) 11:43:11
WindowsXPのアカデミックパックのことだろ。
「WindowsMX」なんてOSは存在しないから。
753デフォルトの名無しさん:2005/04/03(日) 20:09:43
>>745
int compression(char *inbuf, char *outbuf, int inbufsize, int outbufsize)
{
z_stream z;
int status;
z.zalloc = Z_NULL;
z.zfree = Z_NULL;
z.opaque = Z_NULL;
if(deflateInit(&z, Z_DEFAULT_COMPRESSION) != Z_OK){
fprintf(stderr, "deflateInit: %s\n", (z.msg) ? z.msg : "???");
return -1;
}
z.next_in = (Bytef *)inbuf;
z.avail_in = strlen(inbuf) * sizeof(char);
z.next_out = (Bytef *)outbuf;
z.avail_out = outbufsize;
status = deflate(&z, Z_FINISH);
if(deflateEnd(&z) != Z_OK){
fprintf(stderr, "deflateEnd: %s\n", (z.msg) ? z.msg : "???");
return -1;
}
return 0;
}
3,4の引数は適当に改造してくれ。
754デフォルトの名無しさん:2005/04/03(日) 20:10:16
int decompression(char *inbuf, char *outbuf, int inbufsize, int outbufsize)
{
z_stream z;
int status;
z.zalloc = Z_NULL;
z.zfree = Z_NULL;
z.opaque = Z_NULL;

if(inflateInit(&z) != Z_OK){
fprintf(stderr, "inflateInit: %s\n", (z.msg) ? z.msg : "???");
return -1;
}
z.next_in = (Bytef *)inbuf;
z.avail_in = strlen(inbuf) * sizeof(char);
z.next_out = (Bytef *)outbuf;
z.avail_out = outbufsize;
status = inflate(&z, Z_FINISH);
if(inflateEnd(&z) != Z_OK){
fprintf(stderr, "inflateEnd: %s\n", (z.msg) ? z.msg : "???");
return -1;
}
return 0;
}
755デフォルトの名無しさん:2005/04/03(日) 21:06:04
>>753-754
多分、それ不可逆圧縮になる悪寒w
756デフォルトの名無しさん:2005/04/03(日) 21:29:09
>>755
どこが?
757デフォルトの名無しさん:2005/04/03(日) 21:47:47
まず
>z.avail_in = strlen(inbuf) * sizeof(char);
\0はどーすんだ。
758デフォルトの名無しさん:2005/04/04(月) 08:22:56
[1] 授業単元:C++独習
[2] 問題文(含コード&リンク):複数の生徒の成績をテキストファイルから読み込み二つの異なった評価方法でのGPAを表示させるプログラムを作成する。
例:Student #1 Old GPA: 2.71 New GPA: 2.64 
  Student #2 Old GPA: 2.88 New GPA: 3.08等
二つの異なったGPAのテーブル表と具体的な例を、あぷろだに置かせてもらってます。↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/291.txt
[3] 環境:BCC developer
 [3.1] OS:Windows XP
 [3.2] コンパイラ(バージョン):BCC
 [3.3] 言語:C++
[4] 期限:2005年二月五日まで
[5] その他の制限
制限 1.次の関数を含まなければいけない。num_students(これはファイルの中に書かれている生徒数の数) num_class(これはファイルに書かれている生徒の取ったクラスの数)
2.メイン関数はCompute_Student_GPAとしなければならない。ファイルストリームをパラメーターとして扱わなければいけない。 ファイルはリファレンスを通さなければならない。(よくわからないので無視して下さっても結構です。)
3.Old GPAとNew GPAどちらも表示させる。
よろしくお願いします。
759デフォルトの名無しさん:2005/04/04(月) 14:03:24
>>758
制限がよく判らない。
特に、"1"の関数ってどれ? 生徒の数やクラス数を返す関数を用意するということ?
"2"では、「ファイルはリファレンスを…」が意味不明。
大体プログラムはイメージできたけど、私が書くと当然クラスを使うことになる。
それは問題ないのかな?
それとも、あくまでもBetterC程度にしておいた方がいいのかな?
760デフォルトの名無しさん:2005/04/04(月) 14:04:59
既に期限を過ぎてる件について
761デフォルトの名無しさん:2005/04/04(月) 17:04:43
>>758
一応物はできたけど、練習と思ってあれこれ実験しながら作ったから汚い汚いw
今夜辺りまでにMoreBetterSolutionがなければ貼り付けるけど、制限はほぼ無視状態。
762デフォルトの名無しさん:2005/04/05(火) 00:33:46
>>758
制限を勝手に解釈して作ってみた。かなり適当
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/292.txt

C++で組んだのはこれがはじめて・・・
763761:2005/04/05(火) 01:44:17
お〜、OtherSolutionが提示されたから私のはお蔵入りでいいね。

>>758
処で、A+は4.3じゃないのかな?
764758:2005/04/05(火) 01:56:02
わざわざありがとうございます!! Vector等まだ習い始めたものも書いてあったので参考になりました。 
独習なので自分で期限を決めているだけなので多少遅れてもなんてことはありませんでした。 
後はこれで成績ファイルを作成して読み込ませて確認して、仕組みを理解してから次を学ぼうかと思います。
ありがとうございました。
765758:2005/04/05(火) 01:59:37
A+も4ですね。 どこかの大學のサイトのGPA計算表を見て作ろうと思ったのですが。
もしよければ761氏のプログラムも参考にみさせていただくと幸いです。
766761:2005/04/05(火) 02:44:52
>>758
同じと頃の293.txt。
そうそう、NewMethodとOldMethodを共通化しちゃってるので要注意。
#あとなんかあったかなぁ…
767デフォルトの名無しさん:2005/04/05(火) 13:31:43
http://petitmomo.com/mm/

ここがちょっぴりエッチ系のめぐが運営している出会いサイトです。
もしよかったら使ってみて、、、
ヨロシクです。

めぐ(^o^)-☆
768デフォルトの名無しさん:2005/04/06(水) 00:11:16
うギャー
769デフォルトの名無しさん:2005/04/06(水) 06:28:58
こういうブラクラに引っかかる香具師多いよな
770デフォルトの名無しさん:2005/04/07(木) 14:36:49
>>762
デストラクタ怖いな
771デフォルトの名無しさん:2005/04/07(木) 17:32:29
>>770
なんで?
772デフォルトの名無しさん:2005/04/07(木) 21:10:00
>>771
770じゃないけど
counts を NULL で初期化してなくない?
もし new 失敗したら例外をはかない環境だと値が不定になって
delete のときにセグメンテーションフォルトになるよ
773デフォルトの名無しさん:2005/04/07(木) 21:15:42
>>772
ふむふむ。
つーか、new失敗したら直後のmemset()が拙い悪寒。
774デフォルトの名無しさん:2005/04/07(木) 21:30:28
いっとくがatoiは予期せぬ入力があったときの動作不定だったと思う。
775デフォルトの名無しさん:2005/04/07(木) 22:31:07
予期せぬ入力ってなんだろ。数字以外の文字が出現したら変換終了なんだけどな。
776デフォルトの名無しさん:2005/04/07(木) 22:34:41
>>775
int で表現できない場合,結果は処理系依存
だが,>>774はたぶん分かっていなかっただろう
777デフォルトの名無しさん:2005/04/07(木) 23:52:50
>>762
メンバ変数の初期化には、
初期化リストを使ったほうがいいんじゃないかな。

あと、コーディング規約みたいなのは適用しないの?
num_clas は numClass とか統一したほうが。。
あ、これってもしかしてメンバ変数とメンバ関数の
名前がかぶらないように num_clas にしたの??
それだったらひどい気がするんだけど。。
メンバ変数は numClass_ とか m_numClass にしたほうがよくない?
num_clas --- num_class()
num_student --- num_students()
これはひどいと思う。

record::record() : m_numClass(0), m_number(0), m_count(0)
{
    ++s_numStudent;
    ++s_currentNumber;
    m_number = s_currentNumber;
    m_count = new double[NEW_METHOD_SIZE];
    if(m_count){
        memset(m_count, 0, sizeof(double) * NEW_METHOD_SIZE);
    }
}
778デフォルトの名無しさん:2005/04/08(金) 15:12:16
>>777
doubleをmemsetするかねぇ…
というかm_countのif分岐は無駄
779デフォルトの名無しさん:2005/04/08(金) 16:20:08
つーかそもそも設計がおかしくね?
なんだってまたいちいちstaticメンバでカウントしたり妙なグローバル変数使うかな。
780デフォルトの名無しさん:2005/04/08(金) 16:22:27
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/293.txt
何故誰もこっちに突っ込みいれないんだろう…
>in >> tmp.unit() >> tmp.grade();
この辺、一次変数に代入してからsetterでも呼ぶ方がいいんでない?
781デフォルトの名無しさん:2005/04/08(金) 21:51:49
MS もよく
T* = new T;
if (T == NULL) { ... }
とか書いてるが、正直アホかと思う。何考えてんだろ
782デフォルトの名無しさん:2005/04/08(金) 21:57:36
>>781
なんでアホなの???
783デフォルトの名無しさん:2005/04/08(金) 21:59:07
まだ春休みなの?
784デフォルトの名無しさん:2005/04/08(金) 21:59:42
NULLになることはありえる事だよ??なんでアホなのか納得できる説明を。
785デフォルトの名無しさん:2005/04/08(金) 22:00:07
>>782
例外をキャッチしてないからじゃね
でも VC6 とかはその例外自体が壊れてなかったっけ
786デフォルトの名無しさん:2005/04/08(金) 22:06:18
>>782=>>784か?
787デフォルトの名無しさん:2005/04/08(金) 22:08:10
T* t = new(std::nothrow) T;
if (t == NULL) { ... }
なら分かるんだがな

つかバカばっかだなここ
788デフォルトの名無しさん:2005/04/08(金) 22:11:55
一応移植性を考えれば、古いコンパイラ対策でNULLチェックするのは分かるけど
例外をcatchせずにNULLチェックだけしてるのはどうかと思う
789デフォルトの名無しさん:2005/04/08(金) 22:14:57
またお前ら悦にはいってますね。
790デフォルトの名無しさん:2005/04/08(金) 22:15:26
質問が少ないから暇なんだよ
791デフォルトの名無しさん:2005/04/08(金) 22:18:13
VC6は酷かったな…
792デフォルトの名無しさん:2005/04/08(金) 22:18:57
>>787
C厨だからC++はよくワカランのだ
ちゃんとコード書いてから煽っているところ好きだぜ
793762:2005/04/08(金) 23:01:42
>>770-779
いろいろつっこまれてる。(^^;)
もっともなご指摘です。ためしにNULLでmemsetしたら
 
・・・の命令が0x0000000のメモリを参照しました。・・・

のエラーが発生。このエラーNULLでメモリアクセスしたときに発生してたのか。
new失敗を気にすると常にtry catchか>>787のように書いたほうがよいのでしょうか?

>>778
doubleをmemsetするのは自分でもなにか気持ち悪いのですが、他の方法が思い浮かばなかったものでつい
ところでdoubleでの0.0の表現が0x00....という保証はあるのだろうか・・・

>>779
たしかに設計に問題がありますね・・・

おすすめのコーディング規約教えて下さい
794デフォルトの名無しさん:2005/04/09(土) 00:47:34
>>793
>ところでdoubleでの0.0の表現が0x00....という保証はあるのだろうか・・・
処理系依存
795デフォルトの名無しさん:2005/04/09(土) 01:42:52
>>793
細かいことは兎も角、>780のは設計方針として参考にならない?
コンストラクタでファイル読み込みを全部やるのは如何なものかと思うけど。
796デフォルトの名無しさん:2005/04/10(日) 16:42:14
こんなスレののびが悪いなら宿題スレはこのスレで最終回にするか。
797デフォルトの名無しさん:2005/04/10(日) 17:28:04
まだ大学は本格的に授業始まってないからなぁ
もうちょっと傍観
798デフォルトの名無しさん:2005/04/11(月) 06:16:58
[1] 授業単元: 計算機(C/C++)
[2] 問題文(含コード&リンク):
標準入力で
(名前) 得点1 得点2 得点3(enter) …*  
を項目の間はTABで区切って入力し、"data.txt"というファイルに(追加)出力する
また以下の条件に沿うこと
(1) *の条件に合わない入力があった場合プログラムを終了させる
そうでない場合は入力を続ける。
(2) "data.txt"は
 ・1行が "(名前) 得点1 得点2 得点3(改行)"で項目はTABで区切られていること
 ・得点1、得点2、得点3の合計で昇順になっていいること
(3) 名前は終端'\0'含めて半角16文字。得点はintで扱える値であること。
 これに関して構造体を用いてもかまわない

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン): 汎用(gcc,bcc)
 [3.3] 言語:C
[4] 期限:2005/04/15 まで
[5] その他の制限: ライブラリはstdio.h,stdlib.hおよびstring.hのみ認める。
799デフォルトの名無しさん:2005/04/11(月) 12:33:31
>>796
まだ学校は始まったばかりですよ。
800デフォルトの名無しさん:2005/04/11(月) 14:00:22
宿題依頼と言うか、質問です。スルーしてもらっても構いません。でも、出来たら力を貸してください。

[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
・隣接リスト形式の入力データを読み込み、頂点を順に表示する。(原点はどこでもいい)
入力データ例:
1 3 4
2 4
3 1 4
4 2 1 3

1 2 4
2 1 3
3 2 4
4 1 3

出力データ例:
グラフ1
1, 3, 4, 2

グラフ2
1, 2, 4, 3

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ(バージョン):borland C++ 5.51
 [3.3] 言語:C++
[4] 期限:2,3日中
[5] その他の制限:
グラフ1のみ、2のみ、という様になら出来たのですが、
与えられているように、いくつかのリストが空行で分けられている時の
空行の判別方がわからずに困っています。
801デフォルトの名無しさん:2005/04/11(月) 14:54:37
>>800
取り敢えず、できたものを晒して味噌。
データ数固定でもいいから。
802デフォルトの名無しさん:2005/04/11(月) 14:56:25
>>798
未だ時間があるから少しは自分でやってみ。
803デフォルトの名無しさん:2005/04/11(月) 15:51:28
>>800
一行をfgets()などで読み込み、strtok()で取り出した数字をatoi()などで
数字に直す。トークンが一つもなければ空行とみなし、その時点で深さ優先
探索もしくは幅優先探索を行い、頂点を出力。

探索が終わったら、メモリをfree()して、改めて最初に戻る。
804デフォルトの名無しさん:2005/04/11(月) 18:51:01
>>798
やってみたけど↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/296.txt

>・得点1、得点2、得点3の合計で昇順になっていいること
これの 合計で昇順 の意味がよくわからないデス。
data.txtの中身を具体的に書いてくれたらソースを書き直します。
805デフォルトの名無しさん:2005/04/11(月) 19:01:37
>>800
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/297.txt

ソースがごちゃごちゃしているし、幅優先探索が再帰版なので頂点を辿る順が
逆になっていたりしますが、こんな感じで書けると思います。
806デフォルトの名無しさん:2005/04/11(月) 19:02:15
×再帰版
○スタックを使っている
807デフォルトの名無しさん:2005/04/11(月) 23:36:14
>>798
「入力」ってのが曖昧だヨ
手入力バージョンを作ってみたヨ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/298.txt
808807:2005/04/11(月) 23:43:42
標準入力って書いてあった…
ってことは stdin からであってるね

今のコードだと合計の降順にソートされる(バグだヨ)
どうすれば昇順になるかはすぐ分かるよね
これだけ宿題
809デフォルトの名無しさん:2005/04/12(火) 00:20:23
え、入出力部分はbridgeパターンで作るんじゃないの?
810800:2005/04/12(火) 03:05:56
>>803,805 アドバイス及びコード例、ありがとうございます。
とりあえずやってみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/299.txt

ですが、コンパイル出来ているのに走ってくれません。。
BFSに問題は無いと思うので、やっぱり読み込みが出来ていないのかな。

「〜がオカシイ」等ありましたら、是非とも助言をお願いします。
811800:2005/04/12(火) 09:04:31
僕のやったの、アレーも無駄に使ってますね。
行列とそんなに変わんないじゃない。

やっぱり読み込みがおかしいのかな・・・
812デフォルトの名無しさん:2005/04/12(火) 09:47:25
とりあえず、ぱっと見てぁゃιぃと思った部分を。
#includeの上3つ → .hを無くす。
下3つ → cstdio cstring cstdlib にする。同様に .h 不要
char *str, *numbers → malloc 等されていないのに free されてる。ついでに言うと str はプログラムの最後までは free 不要。

CとC++がごっちゃになって読みづらいよぅ。
813デフォルトの名無しさん:2005/04/12(火) 09:54:56
>>811
42行に追加
str = (char *)malloc(num_size * sizeof (char));
46行を変更
while(numbers != NULL && isnumber(numbers[0]))
59行の後に追加
if (feof(input)) break;
114行のfreeは削除

ちゃんと見てないけど、こんなもんでとりあえずは動く?
fopenのIってのはよく分からんが、問題ないのかな。
814デフォルトの名無しさん:2005/04/12(火) 10:05:55
問題大蟻だろう。
"I"じゃなくて"r"だね。
それから、sizeof(char)は常に1なので掛ける必要なし。
815デフォルトの名無しさん:2005/04/12(火) 10:13:21
>>813はどうか知らないが
あえてsizeof(char)を書くセンスの良さというものもある
816デフォルトの名無しさん:2005/04/12(火) 10:21:05
ふつう、あえて書くよな。
817800:2005/04/12(火) 10:31:54
レスありがとうございます。

>>812
インクルード部分、訂正しました。

どこがCでどこがC++なのかよくわからないのです…
ごめんなさい。自分でも見づらいと思う。

>>813
fopen の "I"、本を見間違えてました…小文字の r でした。
isnumber関数が見つからなかったので、
<cctype>の isdigit(int ch) で代用してみたんですが、
あ、ダメか。numbersはポインタだ。


>>814
r でした。。
mallocしなくていいという事ですか?
これがmemory allocationの略だと知ったのもついさっきなので。。

コンパイル後の強制終了は無くなったんですが、
"output.txt"に何も出力されていない状態です。
聞いてばかりで申し訳無いですが、何がおかしいのでしょうか。
while(!Q.empty()) の中身には届いてる筈だと思うのですが。
818800:2005/04/12(火) 10:53:45
どうやら、visitの動きがおかしいみたいです。
やってみます。
819800:2005/04/12(火) 11:36:20
動きました!
本当にありがとうございました。

と言いたいんですが、何故かgccコンパイラだと、実行したらsegmentation faultが出ました。
↓ボーランドでコンパイルして、XP上で動いたものです
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/300.txt

よい解決方法はありませんでしょうか。
何度も何度も申し訳無いですが、これで最後になる筈なので、どうかよろしくお願いします。
820デフォルトの名無しさん:2005/04/12(火) 12:15:44
↑の追記ですが、
g++ main.cpp -o pj3
でコンパイルしました。バカの一つ覚えです。
./pj3
を実行すると、segmentation faultが出ます。

bccで動いたのに、どうしてgccでダメなのかもわかってません。
アドバイスを戴けませんでしょうか。
821デフォルトの名無しさん:2005/04/12(火) 13:15:54
手違いにより、時間が迫っているので、上げさせてもらいます。

セグメンテーションフォルトって事は、コードが全然ダメなのかな・・・
822デフォルトの名無しさん:2005/04/12(火) 13:22:50
>>821
VCでコンパイルしたら普通に警告(値の割り当てられていない変数への参照)が出たんだが、
char *str;
↑こいつを初期化してないのに

fgets(str, num_size, input);
これはマズいだろう。
どこに書き込んでるんだ…
823デフォルトの名無しさん:2005/04/12(火) 13:44:23
>>822
とりあえず、strにスペースを入れてみました。


しかし、何でbccでは動くのか。ばぐ?
824デフォルトの名無しさん:2005/04/12(火) 13:54:15
>>823
スペースじゃなくて…
char *str = new char[num_size];
mainの最後の方で
delete [] str;
825デフォルトの名無しさん:2005/04/12(火) 14:00:00
>>824
「ポインタ作ったら消せ」って事ですか。

あー、ホントすいません。
頭弱杉だ。
826デフォルトの名無しさん:2005/04/12(火) 14:09:39
>>824
やばい。動いた。
ちゃんと動いた。gccで。

いいのかな。これで。

全部正しく表示するには
入力データの最後に一行空行が必要みたいだけど、
これはほっといてもいいと思うし。


なんてお礼を言えばいいのかわかりませんが、
800からお付き合いいただいた方々、本当にありがとうございました。

あなた達からしたら大した事じゃ無いものなんだろうけど、
わざわざ僕なんかのために貴重な時間を割いていただいて、本当にありがとうございました。
マジで。

軽く涙目ですよマジで。宿題一つで大げさですけど。

あー、また来る。来るなとか言われても来るよ。マジ感謝。
いつか教える側になってみたいね。全然そんなレベルじゃないですけど。

あー、駄文スマソ。ありがと。
827デフォルトの名無しさん:2005/04/12(火) 14:13:31
質問おねがいします。
複素数を標準入力で入れたいのですが方法がわかりません。
普通のだと %d%c%d%*c で、大丈夫なのですが
i や、 4 などと入力する場合があるので
文字列からやればいいのかどうすればいいのか全くわかりません
828デフォルトの名無しさん:2005/04/12(火) 15:24:38
>>827
質問お願いされても困ります。
つーか、何を言いたいのか判りません。
あれやらこれやらごちゃごちゃ書いてありますが全く判りません。
829デフォルトの名無しさん:2005/04/12(火) 15:36:39
>>827
複素数の入力形式が何種類あるのかまずはっきりしろ。
それから、そのすべての形式に対応する入力解析ルーチンを作るしかない。
830デフォルトの名無しさん:2005/04/12(火) 17:57:10
>>827
i は 0+1*i
4 は 4+0*i
と入力するのはダメかい?
831デフォルトの名無しさん:2005/04/12(火) 19:20:57
悪いことは言わない、こうしとけ、
(%はプロンプト)

%complex_input.exe
% 実数部を入れてください > 10
% 虚数部を入れてください > -5
% あなたの入力したのは 10 - 5 i です。
%
832デフォルトの名無しさん:2005/04/12(火) 19:33:46
>>831
日本語がダメ。

あなたが入力したのは 10 - 5 i です。
833デフォルトの名無しさん:2005/04/12(火) 20:23:54
あなたの入力した複素数は 10 - 5 iです。
834デフォルトの名無しさん:2005/04/12(火) 22:14:36
あなたらは馬鹿ですか?
835デフォルトの名無しさん:2005/04/12(火) 22:19:47
>>834
俺たち馬鹿だろ?
836デフォルトの名無しさん:2005/04/12(火) 22:53:06
*NULL=ぬるぽ
837デフォルトの名無しさん:2005/04/12(火) 23:02:26
大学を主席で卒業できました。いままでありがとうございました。
838デフォルトの名無しさん:2005/04/13(水) 13:39:21
>>837 誰?おまい
839デフォルトの名無しさん:2005/04/13(水) 18:02:47
【質問テンプレ】
[1] 授業単元: Data Structure using STL
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=217
の301-303
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ(バージョン): MS VC++
 [3.3] 言語:C++
[4] 期限:なるべく早く
[5] その他の制限: なし
840デフォルトの名無しさん:2005/04/13(水) 18:04:24
上の追加
(a){4,6,1,6,9}を使って6つの整数をinputし、平均をoutputする。
(b)vector of 10 accumulator objects を宣言する。
  vector<accumulator<int>> count(10)
100万のランダム整数(範囲0-9)を生成しする。
count[value]をインクリメントする。
アウトプットする。
==================
そもそも、
vector<accumulator<int>> count(10)が初めてでよくわからないのです。
よろしくお願いします。
841デフォルトの名無しさん:2005/04/13(水) 18:29:01
>>840
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/304.txt
作ってみたが、このままだと32bit intでは、100万回も乱数を足すと、オーバーフロー
を起こして結果がマイナスになる事があるぞ。その辺はどう言われてる?
842デフォルトの名無しさん:2005/04/13(水) 19:01:16
>>841
ありがとうございます。
これは、本の問題なので、先生からは何も言われてません。
そもそも後半のvector<accumulator<int> > count(10);からがよく分からなかったんですよね。
乱数0-9のいずれかを100万回足すというのですが、それでもオーバーフローになりますか?
843デフォルトの名無しさん:2005/04/13(水) 19:02:23
0〜9なら大丈夫かと
844デフォルトの名無しさん:2005/04/13(水) 19:03:40
もしかして、r.random()%10 にすべきなのかな?
845デフォルトの名無しさん:2005/04/13(水) 19:11:46
なんか上手くできました。
ありがとうございました。
846助けて:2005/04/13(水) 20:58:31
質問です。
整数を一桁ずつを一文字として、文字列に格納したい。
これは、1000 を 1,000のようにカンマで区切ってあらわしたいからです。
どのような関数を使ってやるのかどうか。。。
さっぱりわかりません。知識ある人どうか教えてください。
説明不足だと思うので、いろいろ質問してくださいm( __ __ )m
847デフォルトの名無しさん:2005/04/13(水) 21:02:25
>>846
char str[10];
sprintf(str, "%d", 100);
848846:2005/04/13(水) 22:04:57
>847 レスありがとうです

さっきの質問なのですが、もう少し詳しい状況を説明します。

@数値を入力 >A 文字列に交換 >B 出力 をしたいです。

Aの文字列に変換する目的は、例えば1000を入力した場合、1,000というように
3桁ごとにカンマを挟みたいからです。

文字列を交換する部分には、 itoa  という関数を使用し、
main関数から呼び出そうと考えています。

そこで、知りたいことは何かというと、
itoa関数を使って、何桁かの数値を
3桁ごとにカンマで区切って表示する、、、、
プログラムを教えてください。


849デフォルトの名無しさん:2005/04/13(水) 22:06:15
itoaよりsprintfの方がよい。(Cなら)
850デフォルトの名無しさん:2005/04/13(水) 22:17:56
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):

学籍番号、氏名、電話番号、住所 がsample.txtに
001,名前1,09012345678,日本
002,名前2,09012222222,韓国
003,名前3,08012345678,台湾
とある。この時、
問1:sample.txtを読み込み、,を抜かしてDOSプロンプトに表示せよ。
問2:適当な構造体を作成し、問1で読み込んだデータ郡を格納せよ。
問3:問2で構造体に格納したデータをsample.csvに出力せよ。その際、学籍番号
の前に行番号を付加せよ。
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:2005年04月19日
[5] その他の制限:
お願いします。
851BYヌルポ:2005/04/13(水) 22:26:31
http://tmp4.2ch.net/test/read.cgi/mog2/1108463145/l50
↑逝ってなんかカキコしてちょ。(☆W☆)
852デフォルトの名無しさん:2005/04/13(水) 22:28:01
>>848
itoa()は処理系依存の関数だから、使わない方がいいよ。
sprintf()を使ったものを書いておくが、どうしてもitoa()を使いたいなら
簡単に改造できるはず。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/305.txt
853デフォルトの名無しさん:2005/04/13(水) 22:35:08
>>848
ぐおっ、マルチかよてめえ。
次からレス付かなくなるぞ。
854デフォルトの名無しさん:2005/04/13(水) 22:44:03
>>850
#include <stdio.h>
typedef struct {
    unsigned num;
    char name[6];
    char tel[12];
    char address[5];
} PERSON;
int main(void) {
    FILE * in_f, *out_f; int c, i; PERSON p;
    if ((in_f = fopen("sample.txt", "r")) == NULL) return 1;
    if ((out_f = fopen("sample.csv", "w")) == NULL) {
        fclose(in_f);
        return 1;
    }
    while ((c = getc(in_f)) != EOF) if (c != ',') putchar(c);
    rewind(in_f);
    for (i = 1; fscanf(in_f, "%u,%5s,%11s,%4s", &p.num, p.name, p.tel, p.address) == 4; ++i)
        fprintf(out_f, "%d,%03u,%s,%s,%s\n", i, p.num, p.name, p.tel, p.address);
    fclose(in_f);
    fclose(out_f);
    return 0;
}
855846:2005/04/13(水) 22:46:19
すいません。
書き込むとこがよくわからなくって、結果マルチになってしまいました。
不快にさせてすいません。
そして、ありがとう
856850:2005/04/13(水) 22:52:01
>>854
さっそくの書き込みありがとうございました。
857デフォルトの名無しさん:2005/04/14(木) 00:42:23
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):自然数nを入力し、x^2+y^2=z^2(x<y)を満たすようなn以下の自然数の組(x,y,z)
がいくつあるかを出力するプログラムをお願いします。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ(バージョン): cygwin
 [3.3] 言語:C
[4] 期限:明後日
858デフォルトの名無しさん:2005/04/14(木) 01:05:44
cygwinはコンパイラじゃない。
859デフォルトの名無しさん:2005/04/14(木) 01:13:22
>>858
すいません、gccでした。
860デフォルトの名無しさん:2005/04/14(木) 01:21:19
>>857
#include <stdio.h>

int main(void)
{
    int n, x, y, z, count = 0;
    scanf("%d", &n);
    for (x = 1; x <= n; x++)
        for (y = x; y <= n; y++)
            for (z = 1; z <= n; z++)
                if (x * x + y * y == z * z) count++;
    printf("%d", count);
    return 0;
}
861デフォルトの名無しさん:2005/04/14(木) 01:23:29
>>860を少々改良してスピードを速くしてみた。
#include <stdio.h>
#include <stdlib.h>
#define MAXL 128

int main(void)
{
 int i, x, y, n, count = 0;
 char buf[MAXL];

 printf("自然数 n = ");
 fgets(buf, MAXL, stdin);
 n = atoi(buf);

 if (n <= 0) {
  fprintf(stderr, "nは1以上の整数を入力して下さい\n");
  exit(1);
 }

 for (i = 1; i <= n; i++)
  for (y = 1; y < i; y++)
   for (x = 1; x < y; x++)
    if (x * x + y * y == i * i) {
     count++;
     printf("%d^2 + %d^2 = %d^2\n", x, y, i);
    }
 printf("%d個見つかりました\n", count);

 return 0;
}
862デフォルトの名無しさん:2005/04/14(木) 01:31:30
>>861
どうもありがとうございます!
863デフォルトの名無しさん:2005/04/14(木) 01:31:48
>>850
なんだかよくわかりませんが、トーカナイザ書いときますね。

int tokenizer (char* tok, FILE* fin) {
int i;
char c;
for (i = 0; i < MAX_TOKSIZE; ++i) {
c = fgetc (fin);
switch (c) {
case ',':
case '\n': tok[i] = '\0'; return 1+strlen (tok);
case EOF: tok[i] = '\0'; return EOF;
default: tok[i] = c;
}
}
}
864デフォルトの名無しさん:2005/04/14(木) 01:44:12
自然数って0を含むか含まないか、人によって違うよね。
>>857はどっちのタイプ?
865デフォルトの名無しさん:2005/04/14(木) 01:45:43
典型的な数学では自然数は0を含まないのだが。
866デフォルトの名無しさん:2005/04/14(木) 01:54:20
>>857
haskellなら1行なんだがなあ。
f n = length [(x,y,z)|(x,y,z)<-[(x,y,z)|x<-[1..n],y<-[1..n],z<-[1..n]],x<y,x^2+y^2==z^2]
867デフォルトの名無しさん:2005/04/14(木) 01:55:28
0は自然数か

大学1年生に「0は自然数である」と言うと、「本当ですか!」とか、
「高校では、自然数は1から始まる、と教わりました」という反論がかえってきます。
また『広辞苑』には,「正の整数」として「自然数」が定義されています.
このコラムをお読みの貴方はどう考えますか。結論を急がず、しばし一緒にお考え下さい。
http://www.ss.u-tokai.ac.jp/~itai/column/three.html
868デフォルトの名無しさん:2005/04/14(木) 01:55:59
>>865
それは高校までの数学でしょ?
869デフォルトの名無しさん:2005/04/14(木) 01:58:37
0を含むのはブルバキ流。それだけのこと。
870デフォルトの名無しさん:2005/04/14(木) 01:59:06
>>865は工房って事でFA
871デフォルトの名無しさん:2005/04/14(木) 02:00:08
別にどちらでもいいんじゃないか?
872デフォルトの名無しさん:2005/04/14(木) 02:02:29
大変です〜答えが変わってしまいます〜
873デフォルトの名無しさん:2005/04/14(木) 02:02:41
>>861
早くするなら、これを利用する手もある。
http://www.geocities.jp/ikuro_kotaro/koramu/seisuu.htm
O(N^3) → O(N^(3/2))と劇的にスピードアップする。
874デフォルトの名無しさん:2005/04/14(木) 02:09:18
古典数学の時代には0は発見されていなかった
875デフォルトの名無しさん:2005/04/14(木) 07:49:13
下に示す行列x,y,の積を求めるプログラムを作成せよ。
x[2][3] = { { 1 , 2 , 3 } , { 4 , 5 , 6 } } 
y[3][2] = { { 1 , 5 } , { 5 , 3 } , { 8 , 1 } }
って問題なんですが、for文を使ってやることは分かるんですが、どういう式を書けばいいのかわかりません。
よろしくおねがいします
876デフォルトの名無しさん
>>875
int z[2][2];
int sum;
for (i=0; i<2; i++) {
 for (j=0; j<2; j++) {
   sum = 0;
   for(k=0; k<3; k++) sum += x[i][k]*y[k][j]
   z[i][j] = sum;
 }
}