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


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

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



1 名前:デフォルトの名無しさん [2007/10/23(火) 23:48:35 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 97代目
pc11.2ch.net/test/read.cgi/tech/1191937213/

196 名前:78&153 mailto:sage [2007/10/25(木) 20:56:58 ]
>>195の続き

[5] その他の制限:実装仕様として、
@int mystrlen(const char*s)
第一引数:文字列のポインタ
 戻り値:文字列の長さを返す

Achar*mystrcpy(char*s1,const char*s2);
第一引数:コピー先バッファのポインタ
 第二引数:コピー元文字列のポインタ
 戻り値:第一引数の文字列へのポインタを返す

Bint myatoi(const char*nptr);
第一引数:変換元の数値文字列
 戻り値:変換された値を返す

Cchar*myioa(int value,char*buff,int radix);
第一引数:変換元の整数
 第二引数:変換後の数値文字列を格納するバッファのアドレス
 第三引数:基数(何進数で変換するか。2〜36の範囲内で指定可能)
 戻り値:第二引数の文字列へのポインタを返す

と、なっております。
すいませんが回答の方をよろしくお願いします

197 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:03:26 ]
>>66 = >>71 = >>93 = >>130 = >>194

198 名前:デフォルトの名無しさん [2007/10/25(木) 21:28:40 ]
>>195 >>196
いまさら?これから変更するの面倒だし
期限:2007年10月26日朝5:00
ってことは残り7時間、無理。
がんばれノシ

199 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:31:16 ]
標準ライブラリ使っちゃダメって書いてないんだからそのまま引数渡せばいいだろ。

200 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:31:22 ]
>>123
ありがとうございます!
感謝します!

201 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:36:03 ]
よろしくお願いします。
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
次のクラス定義を参照して、関数 func 内の処理を記述してください。
関数 func 内では p が派生クラス MagazineMotorcycle のインスタンスを指すかどうかを調べて、
もしそうならメンバー関数 Reserve を呼び出してください。そうでなければ false を返してください。

class Magazine
{
public:
virtual bool Order(int amount = 1) = 0;
};
class MagazineMotorcycle : public Magazine
{
public:
bool Order(int amount = 1) {}
bool Reserve() {}
};
bool func(Magazine* p)
{
// 可能ならば MagazineMotorcycle::Reserve() を呼び出す処理
}

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C++
[4] 期限: 10/26 12:00
[5] その他の制限:なし


202 名前:78&153 mailto:sage [2007/10/25(木) 21:45:03 ]
>>198
昨日書き込んで、今日間違い気づいたんですよorz
できればお願いします。自分にとっては、これってホントに初級編!?って
いうぐらい難しい

203 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 21:46:42 ]
>>201
bool func(Magazine* p)
{
    // 可能ならば MagazineMotorcycle::Reserve() を呼び出す処理
    if (MagazineMotorcycle* mm = dynamic_cast<MagazineMotorcycle*>(p))
        mm->Reserve();
    return false;
}

これでおk?

204 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:03:47 ]
[1] 授業単元:データ構造とアルゴリズム1
[2] 問題文(含コード&リンク):stack.cpp 中のpushとpop関数を完成せよ。
stack.cpp:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5154.txt

[3] 環境
 [3.1] OS:win xp
 [3.2] Microsoft Visual Studio .NET 2003
 [3.3] 言語:c++
[4] 期限:2007年10月26日9:30まで
[5] その他の制限:(どこまで習っているか)構造体、ファイル処理まで

どうかよろしくお願いします。



205 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:10:08 ]
>>203
ありがとうございます。
こちらを提出してみます。

206 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:12:28 ]
>>201
bool func(Magazine* p)
{
    // 可能ならば MagazineMotorcycle::Reserve() を呼び出す処理
    if (MagazineMotorcycle* mm = dynamic_cast<MagazineMotorcycle*>(p))
        return mm->Reserve();
    return false;
}

こんどこそおk?

207 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:26:15 ]
>>204

// データvalをスタック x に積む
void push(int *x,int val)
{
    // (1) スタックがオーバフローかどうかをチェック
    if (stack_pointer < stack_size) {
        // (2) オーバフローでなければデータ val をスタック x につむ
        x[stack_pointer++] = val;
    }
}

// データをスタック x からおろす
void pop(int *x)
{
    // (1) スタックがアンダーフローかどうかをチェック
    if (stack_pointer > 0) {
        // (2) アンダーフローでなければスタックxからデータをおろして、
        // スタックポインターを調整    
        stack_pointer--;
    }
}

これでおk?

208 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:41:25 ]
>>207おkです。感謝です。
本当にありがとうございます。
助かりました。

209 名前:57 mailto:sage [2007/10/25(木) 22:54:44 ]
>>60
レスありがとうございます。
今日の朝、main関数を作って動かしてみたのですが、
おかしいです。
例えば、連結リストのaの値を10、11、12とすると、
11、10、56787
と、一番最後が変な数値になってしまいます。
並び替える前に表示すると、10、11、12となってちゃんと動作するので、
表示する関数は間違ってないと思います。
一応補足として、自分が扱っている連結リストは一番最初に、aに値が
含まれていない要素があり、その後からaに値が含まれる要素が並びます。

210 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:10:52 ]
>>202
#include<stdio.h>
int mystrlen(const char *s)
{
int len=0;
while(*s++!='\0') len++;
return len;
}
int myatoi(const char *nptr)
{
int i,n=0,sign=0,len=0;
const char *s=nptr;
while(*s++!='\0') len++;
if(*nptr=='-'){
sign++; len--; *nptr++;
}
for(i=0;i<len;i++)
n=10*n+*nptr++-'0';
return sign ? -n : n;
}
mystrcpy,myitoaは>>83のままで仕様満たしてるのでそれ以外を。

211 名前:デフォルトの名無しさん [2007/10/25(木) 23:11:09 ]
>>147さん
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5149.txt
っていう課題が新たに出されたので、やっていただけませんか?
以前のプログラムがとても見やすかったので、よろしくお願いします。


212 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:19:38 ]
>>168さん、この生産管理プログラムの期限はいつまででしょうか。

213 名前:78&153 mailto:sage [2007/10/25(木) 23:21:11 ]
>>83>>210
遅い時間に本当にありがとうございます。
お手数おかけ致しました。(TT)

214 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:21:23 ]
>>209
糞リストの仕様を書かなかったほうが悪い。



215 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:22:42 ]
お願いします!!

[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
 1:int型整数をchar型配列の文字列に変換するitoa関数を作れ
 2:long型整数をchar型配列の文字列に変換するltoa関数を作れ
 3:float型小数をchar型配列の文字列に変換するftoa関数を作れ
[3] 環境
 [3.1] OS: XP sp2
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 明日26日(金)の16時まで

216 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:33:35 ]
>>215
1.
char* itoa(int n){static char c[16];sprintf(c,"%d",n);return c;}
2.
char* ltoa(long n){static char c[16];sprintf(c,"%ld",n);return c;}
3.
char* ftoa(float n){static char c[16];sprintf(c,"%f",n);return c;}

217 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:34:03 ]
>>215
itoaは >>83 にあるよ。ltoaはitoaとほとんど変わらん。
ftoaも小数点以下あるだけであんま変わらないな。

218 名前:57 mailto:sage [2007/10/25(木) 23:37:20 ]
>>214
申し訳ないです。

リストの仕様は以下の様になります。
・リストは連結リストで片方向リストです。
・次の要素がない場合(リストの一番最後)は、次の要素へのポインタをNULLとします。
・リストの一番最初には、aに値が含まれていない要素があります。

よろしくお願いします。

219 名前:デフォルトの名無しさん [2007/10/25(木) 23:42:13 ]
木曜日の15時までです。

220 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:45:52 ]
>>218
static struct c *re_internal(struct c *l)
{
struct c *p;
if(l->n==NULL) return l;
p = re(l->n);
l->n->n = l;
l->n = NULL;
return p;
}
struct c *re(struct c *l)
{
if(l->n) l->n = re_internal(l->n);
return l;
}

221 名前:デフォルトの名無しさん [2007/10/25(木) 23:49:08 ]
再帰は?

222 名前:215 mailto:sage [2007/10/26(金) 00:03:01 ]
>>216
さすがにsprintfは使うわけにはいかないかと・・・w

>>217
ありがとうございます。
>>83を参考にしてやってみようと思います。

223 名前:57 mailto:sage [2007/10/26(金) 00:03:47 ]
>>219
減点はするけど、出さないよりは、ましだから今週の課題と一緒に来週に
出しなさいと言われました。

>>220
ありがとうございます。
リストの仕様は>>218に書いた通りですが、
問題自体は>>57に書いた通り、再帰を使わないと…

224 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 00:08:57 ]
>>220
re_internalの中でre呼び出してる



225 名前:57 mailto:sage [2007/10/26(金) 00:23:54 ]
>>224
再帰って自分自身の関数を呼び出すんじゃないですっけ?
これだと、他の関数を呼び出してるだけな気がするのですが…
一つの関数で作ることって出来ないのですかね?


226 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 00:24:24 ]
>>218 直した
static struct c *re_internal(struct c *l)
{
struct c *p;
if(l->n==NULL) return l;
p = re_internal(l->n); // <- この行
l->n->n = l;
l->n = NULL;
return p;
}
struct c *re(struct c *l)
{
if(l->n) l->n = re_internal(l->n);
return l;
}

>>224 thx

227 名前:57 mailto:sage [2007/10/26(金) 00:50:35 ]
>>226
ありがとうございます。

228 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 00:58:09 ]
リストの先頭にデータを入れないことによってどんな利点があるの?

229 名前:168 [2007/10/26(金) 00:58:45 ]
>>147・212
28日までにお願いしたいんですけど・・・
よろしくお願いします。

230 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 07:29:15 ]
1] 授業単元: C言語
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5156.txt
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2007年10月26日
[5] その他の制限: ライブラリ関数は使ってもおkです

徹夜で考えたんですが分からなかったのでお願いします

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5155.txtのよに書いたのですが
セグメントエラーが出てしまいます。
ダメなところとかがあったら直して教えてください。

231 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 07:51:19 ]
>>230
比較用演算子 == を使うこと.
if(fop=NULL)
if(fout=NULL)

あと、終盤で下記不要
> heikin=goukei/NUM;
> fprintf(fout,"番号\t平均点との差\n");
> for(i=0;i<NUM;i++)
> {
> fscanf(fop,"%d%d",&gakusei[i].bangou,&gakusei[i].seiseki);
> goukei=+gakusei[i].seiseki;
> }

最後は goukeiもNUMも整数なのでgoukei/NUMは整数となるのを防ぐ
heikin=(double)goukei/NUM;

232 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:09:19 ]
>>230
14〜21行目: 使わない変数 (fairu, cp, sirusi1, sirusi2) の宣言は外しましょう

21行目: heikin は int 型でいいんじゃない?
double 型で行きたい場合、int型変数 (seiseki, goukei等) との計算をするときにキャストとか考えた方が良い

24,26行目: scanf("%s", &open); → scanf("%s", open);
ポインタを習っているかは知りませんが、配列名は単独で使用するとポインタ型になります

30,42行目: if (fop=NULL) → if (fop == NULL)
C言語での比較演算子は == です

56行目: goukei=+gakusei[i].seiseki; → goukei += gakusei[i].seiseki;
演算子を見直しましょう

63〜70行目: 平均2回計算してるから消そう

74行目: "%d\t%dn" → "%d\t%d\n"
改行文字は "\n" で表します

233 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:16:51 ]
>>231さん
>>231さん
朝早くだったのにレスありがとうございます。

おかげ様でセグメントエラーも出ないで実行できました
来週中間試験があるので
もっと勉強しなきゃいけないなと思いました。

ホントにお世話様でした

234 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:46:17 ]
中間試験って紙にコード書くの?



235 名前:課題お願いします [2007/10/26(金) 09:05:21 ]
[1] 授業単元:プログラミング演習
[2] 問題文:n個からr個を選ぶ組み合わせは、nCr = n!/r!(n-r)! ただし、n! = 1*2*3*…*(n-1)*nで求められる。そこで、n!を求める関数functorial(n)を定義し、それを3度呼び出す形で、組み合わせnCrをもおめるプログラムを作成せよ。
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語: C
[4] 期限: 今日の昼までに。
[5] その他の制限: 授業で配列とポインタは習いました。この問題は「関数」というセクションの問題です。大学の授業なのであまり難しくなり過ぎないようにお願いします。


236 名前:235 mailto:sage [2007/10/26(金) 09:07:30 ]
書き間違いorz
[2] 問題文:n個からr個を選ぶ組み合わせは、nCr = n!/r!(n-r)! ただし、n! = 1*2*3*…*(n-1)*nで求められる。そこで、n!を求める関数functorial(n)を定義し、それを3度呼び出す形で、組み合わせnCr を求めるプログラムを作成せよ。

237 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 09:09:55 ]
int function(int n)
{
return n<2 ? 1 : n * function(n-1);
}

int nCr(int n, int r)
{
return function(n) / function(r) / function(n-r);
}


238 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 09:11:28 ]
一瞬で片付くというのもある意味爽快だ

239 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 09:20:03 ]
>>234
中間試験は筆記と実技があって
実技は端末からサーバーにアクセスして書きます。

実技は今のままじゃ、受かる気がしません…
ファイル処理、ポインタがかなりヤバイです

240 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 09:23:34 ]
関数名functorialだw
階乗ならfactorialだし、関数ならfunctionだからfuncだけみて間違っちまった。

241 名前:デフォルトの名無しさん [2007/10/26(金) 10:59:15 ]
1] 授業単元: プログラミング
[2] 問題文:3人の昼食代を入力し、その平均を関数aveにて計算し、
「割り勘で△円」と表示するプログラム
(定義例:double ave(double c1,double c2,double c3))
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: ([2007年10月26日まで] できれば早いほうがうれしいです。
[5] その他の制限:定義例を使ってください
if,while,switch,forは習いました

お願いします

242 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:01:22 ]
なんで金額がdoubleなんだよ・・・

243 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:05:00 ]
>>234
別人だけど、フロッピーでソース提出とか、メールで添付とかもあるけど、一番多いのは紙。

正直、このご時勢で紙でやるのは馬鹿だと思う。

244 名前:デフォルトの名無しさん [2007/10/26(金) 11:14:18 ]
>>242
小数点出てもいいらしいです。要はaveを使って計算したいのだと思います。



245 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:18:40 ]
俺の高校は紙にVBA書かされたぜ

246 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:19:06 ]
>>243
国がやってる情報処理系の資格試験は、全部紙だぞ?

247 名前:デフォルトの名無しさん [2007/10/26(金) 11:24:49 ]
先日はありがとうござました。

[1] 授業単元: C言語演習U
[2] 問題文(含コード&リンク):
前回の授業で"姓/名"という形式の文字列を入力すると、これを姓と名を表す2つの文字列に分割するプログラムを作成した。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5158.txt

このプログラムを関数を用いた形に書き換えようと思い、次のプログラムを作成した。

このプログラムを実行すると、おかしな出力になってしまった。

問題1:このプログラムのどこが間違っているのか、その理由を答えよ。
    (ヒント:pt_s,pt_mはローカル変数)
問題2:プログラムを書き直せ。
    (配列を渡す方法、ポインタのアドレスを渡す方法などある)

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限:29日(月)

248 名前:デフォルトの名無しさん [2007/10/26(金) 11:34:38 ]
>>239
うちも紙〜

さすがにプログラムを卓上で作りコード全部書けは無いけど、
5〜6行くらいの穴埋めでプログラムを完成させよとか。

249 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:59:09 ]
流石に資格試験でソース全部書けは無いだろ。
あったら死ねるけどw
普段書かない記号とか書かなきゃならんし、
インデント一つ追加しようと思ったらその間書き直しだし、
書いてる事がタイプ以上に考えてる事に追いつかないし、
変数名チェックも全部自分でしなけりゃならんから面倒だし。

250 名前:デフォルトの名無しさん [2007/10/26(金) 12:01:52 ]
>>239
うちは進んでるよ。
テストプログラムを当日教室で下してきて実行すると、P検みたいなプログラムが走って画面左半分が問題書いてあって、右半分の上がコマンドプロンプト?で下がテキストパッドになってる。

問題にある仕様のプログラムをテキストパッドで作って、「実行」ボタンがその下にあるから押すとコマンドプロンプトで自動的にコンパイル+実行してくれる。

作ってる途中のものを試しでコンパイルする度、実行はうざかった。

問題全部作ったら問題1番最後の回答終了を押すと自動で結果をサーバーに送信して、プログラム終了。

ファイヤーウォールに引っ掛かって提出できないとか、提出時に回線が込んでて提出できないとかで、良悪あるけどね。

251 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 13:04:09 ]
>>250
なんだかすごい環境だな。

252 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 13:09:33 ]
>>239
高専電気科の情報の授業では
ごく普通にPCでやってるぞ
しかも、授業で書いたコードを参照してもいいというオマケ付きで。

授業理解度を確かめるのならこういう方式でもよさげな気がする。

253 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 13:12:10 ]
>>241
これは……一見するととても簡単そうなプログラムに見える……
そう見えるのはオレだけか……?

254 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 14:03:27 ]
strcpyの使い方で質問があるんですが、
strcpy(a+(変数),b+(変数));
これはどういう意味でしょうか?+が特に分からないんですが…
a、bは配列です



255 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 14:06:41 ]
>>250
せっかくプログラミングやってんだから、
講師の側でもそんな感じでテスト用プログラム作って欲しいもんだな

>>252
そういう方式もいいよなあ
実際のプログラミングだとソース参照し放題、ネットで調べ放題なわけで
それでもできない人がいるんだから、十分実力測れるだろう
プログラミングは暗記じゃない

256 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 14:38:19 ]
>>254
その配列a, bの +変数分以降のみの文字列をコピーするという意味。
変数が 2 だったらaの先頭 2 文字は変化しない。

257 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 15:04:04 ]
>>256
分かり易い解説ありがとうございました

258 名前:235 mailto:sage [2007/10/26(金) 15:23:52 ]
>>237
ありがとうございました!!

259 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:17:50 ]
>>247
元のプログラムではポインタ変数は仮引数なので呼び出し元に結果が反映されない
#include <stdio.h>

void namesplit(char [], char **, char **);

int main(void){
char full[200];
char *pt_sei, *pt_mei;

printf ("姓/名で入力せよ:");
scanf("%s", full);

namesplit(full, &pt_sei, &pt_mei);

printf("姓:%s\n 名:%s\n", pt_sei, pt_mei);
return 0;
}

void namesplit(char f[], char **pt_s, char **pt_m)
{
/*pt_sとpt_mをfの先頭アドレスにセット*/
*pt_s = f; *pt_m = f;
/*スラッシュまでpt_mを移動*/
while (**pt_m != '/')
(*pt_m)++;
**pt_m = '\0';
(*pt_m)++;

/*これで、pt_seiとpt_meiはそれぞれ姓と名を指す場所に移動した?*/
}

260 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 17:08:00 ]
>>253
わかる人は簡単だよ
でも、習ったばっかりなんだろ
最初はみんなわからないもんだよ

261 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 17:32:12 ]
一分で書けるけど書かない

262 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 18:04:04 ]
なぜ書かない?

263 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 18:17:14 ]
単純に3つの引数とって平均を求める関数て言えばいいのに、なんで割り勘とか余計な設定つけてんだよ。
一人一人の代金がわかってるなら、割り勘になんてしないだろ。

264 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 18:43:15 ]
>>263
「相乗平均じゃなくて相加平均だよ^^ お前ら間違えんなよ^^」て言いたかったんだよ
気の回る良い先生じゃないか



265 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 19:40:50 ]
宿題マダァ?(・∀・ )っ/凵⌒☆チンチン

266 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 22:09:36 ]
ひつまぶしキボンヌ

267 名前:デフォルトの名無しさん [2007/10/26(金) 22:12:45 ]
質問テンプレ】
[1] プログラミング
[2] 自然対数の底eを求めるプログラムをSRT除算を用いて求めよ。
exp(x)=Σ(n=0,∞){1/n!}=1/0!+1/2!+1/3!+…+1/n!
   =1+(1+1/2(1+1/3(1+…+1/n)))
固定小数点で、整数部を16ビット、小数部を48ビットとする(n≧17)
[3] 環境
 [3.1] Vine Linux
 [3.2] gcc
 [3.3] C言語
[4] 2007年10月29日8:40まで でも早い方がいいです。
[5] ループを使用してお願いします。

268 名前:デフォルトの名無しさん [2007/10/26(金) 22:12:55 ]
全ディレクトリのファイルを調べてサイズが一致するファイルをプルパスで出力せよ

269 名前:デフォルトの名無しさん [2007/10/26(金) 22:19:18 ]
journal.mycom.co.jp/column/architecture/087/index.html

270 名前:デフォルトの名無しさん [2007/10/26(金) 22:22:06 ]
>>265
自分で要求するほど、宿題を回答してやりたいのか。

この掲示板の鏡だな、解けない問題は無いってか?

271 名前:デフォルトの名無しさん [2007/10/26(金) 22:25:20 ]
SRT除算は簡単ではないな

272 名前:デフォルトの名無しさん [2007/10/26(金) 22:43:03 ]

[1] プログラミング
[2] doiob.net/doiob/uploader/src/up11903.jpg
シンプソンの公式を用いて定積分を求めるプログラムを作成し、
以下2つの定積分を計算せよ。ただし刻み幅 h=0.1 とする。
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C言語
[4] 2007年10月29日

お願いします

273 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 22:46:03 ]
>>269
これはむずい
もう少し前のページから見ないと単語がわからなすぎる

274 名前:デフォルトの名無しさん [2007/10/26(金) 22:54:36 ]
シンプソンは簡単 関数をf(x)とし、 区間(a,b)を一分割で積分するとする
m=(a+b)/2 、d=(b-a)とするとき積分値は d/6 * (f(a)+f(b)+4f(m))だ
N分割のときはこの値を使えばいい



275 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 22:57:47 ]
>>274
なぜコードで示さないんだ

276 名前:デフォルトの名無しさん [2007/10/26(金) 22:59:44 ]
具体的には、区間(a,b)をN分割するならば、

F(s,t)= (t-s)/6 * (f(s)+f(t)+4f(s+t /2)) 、 d = (b-a)/Nとおくとき

n=0,・・・,N-1に対しF(a+nd, a+(n+1)d)の和を計算すればよい

277 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 23:02:42 ]
>>276
擬似コードだけなら単位はやれないな

278 名前:デフォルトの名無しさん [2007/10/26(金) 23:03:56 ]
>>275
プログラム自体は計算と結果の出力だけの簡単なものだからチャレンジしてみなってことじゃない?

計算内容自体は>>274が解説してくれてるし。
もしくは作成中か。

279 名前:デフォルトの名無しさん [2007/10/26(金) 23:08:01 ]
>>259
ありがとうございます。ポインタ変数が問題だったんですね。

仮引数だったのをポインタのポインタで呼び出しが出来るようにしたと。

なるほど納得しました。

280 名前:デフォルトの名無しさん [2007/10/26(金) 23:09:01 ]
#include <stdio.h>
#include <math.h>

double f(double x){return exp(-x*x);}
double g(double x){return exp(1/sqrt(1+x*x*x*x));}

#define F(a,b) (f(a)+f(b)+4*f((a+b)/2))*(b-a)/6
#define G(a,b) (g(a)+g(b)+4*g((a+b)/2))*(b-a)/6


int main(){
double x,d=0.1,sum;
sum=0;
for(x=0;x<1;x+=d)sum+=F(x,x+d);
printf("%f\n",sum);

sum=0;
for(x=0;x<1;x+=d)sum+=G(x,x+d);
printf("%f\n",sum);
}

281 名前:デフォルトの名無しさん [2007/10/26(金) 23:10:31 ]
訂正
double g(double x){return 1/sqrt(1+x*x*x*x);}

282 名前:デフォルトの名無しさん [2007/10/26(金) 23:12:03 ]
値があっているか確認したいが数値計算ソフトだれか持っている?

283 名前:デフォルトの名無しさん [2007/10/26(金) 23:12:09 ]
何にせよ動作するリストを出すのがこのスレってもん

284 名前:デフォルトの名無しさん [2007/10/26(金) 23:12:15 ]
>>274 >>276
で組み込む計算式作ってくれてるから、もう課題出来てるも同然な気がする。

だって、その式を表示するだけで完成でしょ。



285 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 23:17:30 ]
>>272 カウンタは整数のが良いと思うので便乗
#include <stdio.h>
#include <math.h>

double func1(double x)
{
    return sqrt(pow(x, 4) + 1);
}

double func2(double x)
{
    return exp(-pow(x, 2));
}

int main(void)
{
    double l = 0.0, r = 1.0, h = 0.1, s = 0;
    int i;

    for(i = 0; i < (r - l)/h; i += 2)
        s += h/3*(func1(l + i*h) + 4*func1(l + (i + 1)*h) + func1(l + (i + 2)*h));
    printf("%g\n", s);

    for(i = 0; i < (r - l)/h; i += 2)
        s += h/3*(func2(l + i*h) + 4*func2(l + (i + 1)*h) + func2(l + (i + 2)*h));
    printf("%g\n", s);

    return 0;
}

286 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:03:16 ]
[1] 授業単元: コンピューター
[2] 問題文(含コード&リンク):整数演算と浮動小数点演算で自分のプロセッサのスピードをテストするプログラムと結果を示しなさい。 テストするのは整数、浮動小数点ともに、加減乗除の4つづ、計8つです。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:
[5] その他の制限: 結果はcygwinのtimeを使えってばっちゃが言ってました。
お願いします。


287 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:07:31 ]
ふざけてんの

288 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:13:39 ]
>>280
副作用乙

289 名前:デフォルトの名無しさん [2007/10/27(土) 00:18:05 ]
なんで6で割っているんだぜ?

290 名前:デフォルトの名無しさん [2007/10/27(土) 00:34:16 ]
>>289
#include <stdio.h>
#include <math.h>

double f(double x){return exp(-x*x);}
double g(double x){return exp(1/sqrt(1+x*x*x*x));}

#define F(a,b) (f(a)+f(b)+4*f((a+b)/2))*(b-a)/6
#define G(a,b) (g(a)+g(b)+4*g((a+b)/2))*(b-a)/6

int main(){
double x,d=0.001,sum;
sum=0;for(x=0;x<1;x+=d)sum+=F(x,x+d);
printf("%f\n",sum);

sum=0;for(x=0;x<1;x+=d)sum+=G(x,x+d);
printf("%f\n\n",sum);

//単純な定積分
int n,N=1/d;
sum=0;for(n=0;n<N;n++)sum+=d*g(n*d);
printf("%f\n",sum);}

291 名前:デフォルトの名無しさん [2007/10/27(土) 00:47:03 ]
Integral(f,a,b,d)って出来るの? 関数わたし

292 名前:デフォルトの名無しさん [2007/10/27(土) 00:55:29 ]
スマソ全然見てなかったわ

293 名前:272 [2007/10/27(土) 01:03:57 ]
ありがとうございました
解説で分かってきたので色々と試してみます

294 名前:291 [2007/10/27(土) 01:09:38 ]
できた
#include <stdio.h>
#include <math.h>

double f(double x){return exp(-x*x);}
double g(double x){return 1/sqrt(1+x*x*x*x);}
#define F(a,b) (f(a)+f(b)+4*f((a+b)/2))*(b-a)/6

typedef double (*func)(double);
double Integral(func f,int a,int b, double d){
int n,N=(int)1/d;double s=0;
for(n=0;n<N;n++)s+=F(n*d,n*d+d);
return s;}

int main(){
double d=0.001;
printf("%f\n",Integral(f,0,1,d));
printf("%f\n",Integral(g,0,1,d));}



295 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 01:19:55 ]
先こされた。
#include<stdio.h>
#include<math.h>
double quadInterpol( double (*fun)( double ), double begin, double end )
{
return ((*fun)(begin) + 4*(*fun)( (begin+end)/2 )
+ (*fun)(end)) * (end-begin)/3;
}
double integral( double (*fun)( double ), double begin, double end, double h )
{
double result = 0.0;
double pos = begin;
while( pos <= end )
{
result += quadInterpol( (*fun), pos, pos+h );
pos += h;
}
return result;
}
double f(double x)
{
return exp(-x*x);
}
int main(void)
{
const double diff = 0.1;
printf("result=%f\n",integral(f,0.0,1.0,diff));
return 0;
}


296 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 01:26:36 ]
>>294
出題者じゃないんだが。

typedef double (*func)(double);
これってなにやってるの?






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

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

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