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


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

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



1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ]
あなたが解けない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++の宿題を片付けます 103代目
pc11.2ch.net/test/read.cgi/tech/1200318925/

396 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:58:57 ]
>>394
訂正のとおりに実行してみたら無事にできました。お早い返答ありがとうございました。

397 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:54:24 ]
www.nicovideo.jp/watch/sm2417405
これか


398 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:00:08 ]
>>397
どれだよw

399 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:09:19 ]
www.akibablog.net/archives/2008/02/hardcore-080221.html
こちらか

400 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:10:21 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 巡回セールスマン問題の厳密解を求めるプログラムを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 2008 Exp
 [3.3] 言語: どちらでも可
[4] 期限: 2/25 12:00 ごろ

動的計画法で求めようとしているのですが、最小コストは求まったものの
そのルートを求める方法がいまいちわかりません。

dist[a][b] には a -> b の距離が入っています (a->b = b->a)
n は巡回頂点数です

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

401 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:13:14 ]
>>400
ちょっと質問

ソースとか全然みてないでいうんだが、問題文は「厳密解」になってるけど
動的計画法って「近似解」を求める方法じゃない?

402 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:19:46 ]
>>401
すまn
漏れの勘違いだったorz

403 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:00:32 ]
>>400
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6086.c

・cost のサイズがでかすぎで手元でコンパイル通らなかったので減らした
・n や dist や CITY_NUM の定義が分からなかったので適当に補間した

以後ソースを挙げるなら定義の部分も含めてくれ
実行可能であることが最も望ましい

404 名前:403 mailto:sage [2008/02/25(月) 02:01:47 ]
>>403
>コンパイル通らなかったので減らした
これは間違いで、コンパイルは通ったが実行時エラーが出たので減らした



405 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:53:48 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6089.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2月29日正午ごろまで(できれば28日中)
[5] その他の制限:
問題文の例の図がずれて見づらくなっちゃってます。すみません。
←valueの行で‖と‖の間が空白の場所は数値が入っておらず、演算子に対応してる位置だと思ってください。
また、大分長くなってしまってもいいので、なるべく簡単なプログラムでお願いします。
可能であればでいいので、何を目的とした部分なのか程度の注釈をいくつかつけてくださると助かります。

406 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:57:34 ]
[1] プログラミング
[2] 問題文長くなるので下に書くごめんなさい
[3] 環境
 [3.1] OS: Windows2000
 [3.2] すいませんわかりません
 [3.3]C 言語
[4] 期限: ([2008年2月26日まで] できるだけ早くお願いしたいです。
[5] 制限は特になし
機動及びmain関数(kin_main.c)
このプログラミングの実行ファイルの名称は(kintai)のする。起動時に因数として勤怠情報ファイルを引数を与える。
>kintai kin0004
引数なしで機動した場合には、ファイル名を入力するようにメッセージを表示させる。
>kintai
>勤怠情報ファイルパスを指定してください。

このプログラミングのmain関数。初期化処理(kin_init()),勤怠情報記録ファイル読み込み処理(kin_file_read()),
入力情報論理チェック機能(kin_logic_chk()),勤怠計算機能(kin_calc()),標準出力機能(kin_display),CSVファイル生成機能(kin_create_csv()),
を順次に呼び出し。各関数の戻り値がエラーの場合にはその時点でmain関数に戻る。プログラムを終了にするにはmain関数
出なければならない。エラー情報はいかに示す。

エラーディファイン       出力情報                  意味
ERR_INIT 初期化エラー                初期化関数内でエラー
ERR_FILE_ACCESS ファイルアクセスエラー          ファイルアクセスに失敗した場合
ERR_LINE_NUM_OVER 勤怠情報ファイル文字数オーバー  勤怠情報ふぁいるの1行分文字数が所定の値を超える場合
ERR_PARSE 勤怠ファイル構文エラー         勤怠情報記録の構文が誤ってる場合
ERR_TIME_LOGIC 論理チェックエラー             入力された勤怠情報に誤りがある場合
NG 内部処理エラー               上記のエラーに該当しない場合。


丸なげでごめん 

407 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:04:29 ]
>>406
勤怠情報ファイルのフォーマットもなしどうしろと?
丸なげどころか、情報がたりなすぎる

408 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:19:28 ]
>>407
すまんまだはじめたばっかで
フォーマットを検索してもわからん
でもこんな感じになるはずなんだ

  yutori.2ch.net/test/read.cgi/news4vip/1203862807/

>>4>>5

409 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:24:18 ]
>>408
見えない
なんで検索しないといけないのかも分からんよ

410 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:26:18 ]
>>406
とりあえずツッコミどころが満載だな……

・CSVファイル生成機能(kin_create_csv())でのエラーは捕まえないの?
・エラーを出すのなら、その逆として「●●の処理は成功しました」と順次表示していくと親切じゃない?
・NG→ERR_internal の方がかっこよくない?
・ERR_TIME_LOGICで、「一ヶ月の勤務日数が32日です」とか
 「終業時刻+残業時間が、退勤時刻を超えてる」とかも出したほうが親切じゃない?

411 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:32:10 ]
int main(int argc,char **argv){
  int Result=0;
  if(argc<2){
    puts("勤怠情報ファイルのパスを指定してください");
  }else{
    FILE *pFile=fopen(argv[1],"rb");
    if(pFile==NULL){
      printf("%s はオープンできないよ\n",argv[1]);
    }else{
      printf("%s をオープンしたよ\n",argv[1]);
      puts("閉じるよ");
      Result=kin_init();
      if(Result<0)printf("kin_init()が %d だと言ってる\n",Result);
すまんこんな感じになると思うんだ

412 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:34:46 ]
>>410
すごい親切だと思うけどどうやるかさっぱりわからん

413 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:36:34 ]
最初のif else 文からしてあやしい。
fopenを二回やることになるぞ

・引数ありで起動した場合
・引数なしで、ファイルパスを指定(入力?)する場合

414 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:47:15 ]
>>411のは昨日やってもらったやつなんだ
引数与えないと起動しないようにするらしい
kintai kin0004.txtをつけるなければきどうしないようにする
0004は日付が入るyymmでyyが西暦の下二桁mmが該当月
.txt入らないと起動しないようにするみたいなです



415 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:53:12 ]
>>414
「ファイル構文」という用語を持ち出すほどだから、
勤怠情報のファイルフォーマットはxmlくらいのものだと思った
CSV出力があるのなら、最初からCSV形式で勤怠情報のファイルフォーマットを策定すればいいんじゃない?

古い諺だが

  データ構造+アルゴリズム=プログラミング

と言うし。

416 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:58:06 ]
>>415
ありがと
でも初心者の俺にはさっぱり意味がわからん


417 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:15:29 ]
もしかして勤怠情報ファイルのフォーマットは決まってないのか?

418 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:32:40 ]
正直フォーマットって言葉がでてこないから決まってないです。
問題文にkintai kin0004.txtだった 。.txtぬけてたすまん

419 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:22:08 ]
週末、勢い込んでカレー作った。
たまねぎ炒めるところから始めて、
かなり気合入れて作った。
たまねぎの量、土日あわせて6玉。
うまかった。
でも今日の屁が死ぬほどくさい。

420 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:27:19 ]
余ったタマネギは犬猫に食べさせちゃだめだよ!!!

でも実験という名目ならいいのかな??

421 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:33:19 ]
だるいから嫌

422 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:33:53 ]
だるいから嫌

423 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:35:56 ]
だるいから嫌

424 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:03:54 ]
だるいから嫌



425 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 02:25:49 ]
>>405
多少問題文とやり方が違うし、あんま自信ないけど、一応できたのでうp
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6091.txt

426 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 04:07:54 ]
だるいから嫌

427 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 07:14:34 ]
>>425
乙です
ありがとう

428 名前:デフォルトの名無しさん [2008/02/26(火) 11:45:04 ]
[1] 授業単元: C
[2] 問題文(含コード&リンク):
3次元配列を用いたカレンダー生成プログラム
任意の西暦年数nを与えて、n年のカレンダーを下記の仕様により、作成せよ。
 1)3次元配列day[12][6][7]を使用する。
 2)出力形式は
  1月 2月 3月 4月
  5月 6月 7月 8月
  9月 10月 11月 12月
 とする。
 3)うるう年にも対応させる。
[3] 環境
 [3.1] OS:MacOSX 10.5
 [3.2] コンパイラ名とバージョン:gcc 4.0.1
 [3.3] 言語:Cでお願いします。
[4] 期限:2/27に提出です。
[5] その他の制限:特にありません。できれば、配列に組み込む部分と出力部分には関数を使ってほしいです。
日を配列に組み込むところで、つまってしまい、どうにもならなくなってしまいました。
最終的には理解できるようにしたいので、簡単なコメントなどつけてくれると嬉しいです。
急ぎで申し訳ありませんが、よろしくお願いしますm(_ _)m

429 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 12:11:46 ]
わざわざ配列に入れる必要なんてないと思うけど

430 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 12:32:22 ]
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
個人課題 )IDカードを読み込んだら、その番号を"IDList.txt"に出力せよ。

buf[]にはそれぞれ二桁の16進数が入ってるのですが、それを繋げて、
strとしました。このstrに入った値を"IDList.txt"に書き込んでいきたいのです。

略)
sprintf(str, "%02x%02x%02x%02x%02x\n", buf[0], buf[1], buf[2], buf[3], buf[4]);

これ以降をよろしくお願いします。

※カードを読み込むたびにstrは変わります。

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:VS2005pro
 [3.3] 言語:C++
[4] 期限:特になし
[5] その他の制限:特になし
ド素人な課題で申し訳ないのですがよろしくお願いします。

431 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:21:29 ]
>>430
それ本当にC++の授業なのか?
C++の特色のひとつは、Cから格段に進化した文字列操作だぞ

432 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:31:08 ]
>>430
つーかそれ、FILE * fp = fopen("IDList.txt", "w")してsprintf(str, ...)をfprintf(fp, ...)にすればいいだけじゃん。

433 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:55:13 ]
>>431
C++の授業ではないのですが、C言語の授業の延長の授業で、
環境がC++だったんでそのように書きました、申し訳ありません。
確かにやっていることは++は含んで無いのだと思います。
>>432
ありがとうございます。
"a"にしたら望んでいた物になりました。

434 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:43:10 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6092.txt
[3] 環境
 [3.1] OS: Linux /Windows
 [3.2] コンパイラ名とバージョン: (Linux)gcc /(Windows)コマンドプロンプト上でコンパイル
 [3.3] 言語: C
[4] 期限: 2月28日中
[5] その他の制限:長いプログラムになっても構いませんので簡単めなプログラムでお願いします。
設問1と設問3は自分で考えて辿り着いた答を書いてます。違っていたら指摘お願いします。
問2のコメント以下は実際に実行時間を計測して考察しろ的なものだと思うのですが、
どうやればいいのかいまいち分からないため簡単にでいいのでどうやればいいのか教えてください。



435 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:53:38 ]
>>434
これ問題文そのまま「コピペ」してるか?

436 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:59:02 ]
>>434
設問2
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6093.c

設問3
NULL: 「これ以上前の文字が存在しない」はOK、「次の文字に移る」は、違う
DEL: 「これ以上後の文字が存在しない」はOK、「全文字の並べ替え終了」は、違う
s1 スタックには下→上に、文字が小→大で積まれる
s2 スタックには下→上に、文字が大→小で積まれる
ので、s1,s2のスタックに有効な文字データが無い状態をチェックするために使用している(番兵)

つまり、2.aの処理の場合にNULL文字がなければ、
s1スタックにデータが無いという状態をチェックする文( if (s1が空) { ... } のような文 ) が必要になるが、
番兵(NULL文字)を用いることにより、その必要がなくなる
(番兵については、wikiでもみてね)

437 名前:400 mailto:sage [2008/02/26(火) 20:51:48 ]
>>403
ありがとうございます。
説明不足で余計なお手数をおかけしてしまい申し訳ありません。

確かに、double では静的確保に成功する配列サイズなのに、
int で同じ添え字の配列を確保しようとすると確かにクラッシュするようです。不思議ですね。
その点は malloc で動的確保することで無事に動作しました。

438 名前:438 mailto:sage [2008/02/26(火) 21:23:50 ]
>>428 行数制限のため入出力は関数にしなかったが。
#include<stdio.h>
int day[12][6][7];
int z(int y,int m,int d){
if(m<3)y--,m+=12;
return(y+y/4-y/100+y/400+(m*13+8)/5+d)%7;
}
int main(void){
int y,s,m,w,d;
while(1){
printf("y=");
scanf("%d",&y);
//格納
for(m=0;m<12;m++)
for(w=0;w<6;w++)
for(d=0;d<7;d++){
day[m][w][d]=w*7+d+1-z(y,m+1,1);
if(day[m][w][d]<1||day[m][w][d]>(z(y,m+2,1)-z(y,m+1,1)+7)%7+28)
day[m][w][d]=0;
}
//表示
for(s=0;s<3;s++)
for(w=0;w<6;w++,printf("\n"))
for(m=0;m<4;m++,printf(" "))
for(d=0;d<7;d++)
if(day[s*4+m][w][d]>0)
printf("%2d",day[s*4+m][w][d]);
else
printf(" ");
}
return 0;
}

439 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:11:44 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
文字頻度と文字の連接頻度をカウントするプログラムを作成せよ。
尚、入力ファイルにhamlet3-1をWebからダウンロードして使い、tsv形式で結果を出力せよ。($./a.out hamlet3-1.txt > hamlet.tsv としてプログラムを実行)
‐処理
・入力ファイルを「読み込みモード」でオープンする
・ファイルの銭湯から1文字ずつ読み込みながら小文字にそろえて、'a'〜'z'の範囲にある場合は以下の処理を行う。
@'a'〜'z'の各文字g亜出現する頻度を計数する。
A連続する2文字の連接頻度をa-a,a-b,...z-zまで計数する。
途中にスペース、改行などアルファベットが入った場合は連接していないとする。
・計数結果を標準出力に出力
hamlet3-1
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6095.txt
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2008/02/27 23;59迄
[5] その他の制限:特にありません。
よろしくお願いします。

440 名前:デフォルトの名無しさん [2008/02/27(水) 00:17:52 ]
[1] 授業単元:プログラミング演習
[2] 問題文:
空気中でつるされている銅球の温度変化は以下の式で求まる。

Cp・ρ((πd^3)/6)dT/dt=-πd^2((λ/d)Nu)(T-Tair)

周辺空気の温度Tair=300K、流速3m/sのときの銅球の温度変化を計算しなさい。
なお、t=0sで銅球の初期温度はT0=700K、銅球の温度分布は無視し、各物性値は500Kで計算のこと。
(Cp=1.03kJ/kgK、ρ=8813kg/m^3、λ=39.71×10^3W/mK、Nu=11.04)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C++
[4] 期限: 2008年2月27日15:00
[5] その他の制限:使用したアルゴリズムは全て関数化する。
ルンゲクッタ法を使用

どうしてもわからないのですみませんがお願いします。


441 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:26:00 ]
>>440
微分方程式を解くのか?

442 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:32:01 ]
>>441
そうなんだと思います。

443 名前:デフォルトの名無しさん [2008/02/27(水) 01:23:12 ]
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: Windows
 [3.2]コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: 2008年2月27日 12:00

2つの文字列A,Bに入力し、、
それぞれの文字列の先頭から順に一文字づつ抜き出し、
交互に出力するプログラムを作成しなさい。
Str関数を使用しない
例:
文字列Aにabcd
文字列Bに123456
と入力すると
出力結果 a1b2c3d456
が出力されるようにする。

よろしくおねがいします

444 名前:デフォルトの名無しさん [2008/02/27(水) 01:29:42 ]
>>439
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6096.txt



445 名前:デフォルトの名無しさん [2008/02/27(水) 01:31:44 ]
>>444は間違い。

446 名前:デフォルトの名無しさん [2008/02/27(水) 01:38:15 ]
>>439
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6097.txt

こっちが正しい。

447 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:44:13 ]
>>443
#include <stdio.h>

int main(void)
{
char bufA[32], bufB[32];
int i=0;

printf("文字列Aの入力:");
fgets(bufA, sizeof(bufA), stdin);
printf("文字列Bの入力:");
fgets(bufB, sizeof(bufB), stdin);
while(bufA[i] != '\n' && bufB[i] != '\n')
{
putchar(bufA[i]);
putchar(bufB[i]);
i++;
}
if(bufA[i] != '\n') puts(bufA+i);
if(bufB[i] != '\n') puts(bufB+i);
return 0;
}

448 名前:デフォルトの名無しさん [2008/02/27(水) 01:46:34 ]
Str関数ってなんだろう。Str関数を作れって意味ではなさそうだし。
str〜関数を使えってことかな?

449 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:15:44 ]
>>439
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6098.c
>>444-446
連接の解釈が違うきがする

450 名前:デフォルトの名無しさん [2008/02/27(水) 02:22:55 ]
>>449
ああああああ!!!
そうか、そういうことか。

451 名前:443 [2008/02/27(水) 02:27:24 ]
>>447
すみません、書き忘れてましたorz
配列でなくポインタででした・・
>>448
strのとこはstrcpyとか使わないでということです。


452 名前:!= 447 [2008/02/27(水) 02:48:15 ]
>>451
bufA[i]←こういうのがあってはいけないってことかな?
ならば、

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

int main(void)
{
char *bufA, *bufB;
int i=0;

bufA=malloc(32);
bufB=malloc(32);
printf("文字列Aの入力:");
fgets(bufA, 32, stdin);
printf("文字列Bの入力:");
fgets(bufB, 32, stdin);
while(*(bufA+i) != '\n' && *(bufB+i) != '\n')
{
putchar(*(bufA+i));
putchar(*(bufB+i));
i++;
}
if(*(bufA+i) != '\n') puts(bufA+i);
if(*(bufB+i) != '\n') puts(bufB+i);
free(bufA);
free(bufB);
return 0;
}

453 名前:440 [2008/02/27(水) 04:50:45 ]
微分方程式は手計算で解いてみたんですがソースを作ってみても解が出てきません…
どうすればいいかもまったくわからないです…
どのような解法でもいいのでどなたか本当にお願いします。

454 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:02:02 ]
>>440
この温度変化の微分方程式の本質は

  dT(t)/dt = a * T(t) + b

という形になるはず。
この解は、微分しても同じ形の関数T(t)が出てくるので、

  T(t) = c * e^t

のように、指数関数になる、っていうのまではいいのか?



455 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:15:33 ]
>>454
それはよくないんじゃないか?

456 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:18:02 ]
>>453 ルンゲクッタ法を調べる

457 名前:440 [2008/02/27(水) 10:58:22 ]
>>454
そこまではわかったんですが…どのようにソースを作ればいいのかがわからないです。
ルンゲクッタ法を用いてやってみているんですが解が求まりません…

458 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:01:17 ]
>>446,449
ありがとうございます!

459 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:02:55 ]
>>457
ある程度できてるならソース張って添削してもらった方が早いと思うぞ。

460 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:45:16 ]
>>440
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6100.cpp

461 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:47:16 ]
>>454
T(t) = c e^t だったら温度が指数関数的に吹っ飛ぶことになるが

462 名前:440 [2008/02/27(水) 12:43:05 ]
以下が自分で作成したソースです。
曖昧なところが多々あってすいません。

double Onndo(double t0, double T0, double h,double k)
{
int i;
int x,y,k1,k2,k3,k4,h2;
double K ; /* 解法で得られた値を格納する変数 */
x=t0;y=T0;
h2=h/2.;
for(i=0;i<=y;i++){
k1=f(x,y,k);
k2=f(x+h2,y+h2*k1,k);
k3=f(x+h2,y+h2*k2,k);
k4=f(x+h,y+h*k3,k);
x=t0+(double)i*h;
y+=(k1+2.*k2+2.*k3+k4)*h/6.;
}
K=x;

return K;
}

463 名前:440 [2008/02/27(水) 12:44:34 ]
>>462

*---- 関数f(x,y)の設定 ----*/
double f(double x, double y,double k)
{
double f;
f=k*(y-300)*x;
return f;
}

/*----- 解の設定 -----*/
double Ans_f(double y,double x,double k)
{
return exp(-k*x);
}

k=(-6*ramu*Nu)/(Cp*ro*d*d);として計算しています。


464 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:31:19 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6101.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 28日24:00まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
まだ講義ではそこまで深くプログラミングを学んでいないため、if文for文など簡単な文を多めに使う感じにしてください。
プログラムでなく考察を要求してるところを横棒で区切りました。
そちらの方にも軽くヒントなどいただきたいです。



465 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:53:39 ]
>>440

Cp……銅の比熱(500K)
ρ……銅の密度(500K)
d……???
λ……熱伝達係数
Nu……ヌッセルト数


流速3m/s はどこで使うの?
d は何?
πd^2((λ/d)Nu) の部分は πdλNu と約分できそうだけど、ホントにこのままでいいの?
それともd^2ってのは二階微分を表してるの?

466 名前:465 mailto:sage [2008/02/27(水) 16:39:07 ]
>>440
そもそも、その銅球の半径は?
それがd?

467 名前:デフォルトの名無しさん [2008/02/27(水) 22:56:46 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
     コマンド ライン引数に指定されたファイルすべてに対して、 改行文字以外の各行を、
逆さまにして表示するプログラムを書いてください。
なお、対象のファイルには英数字などの半角文字のデータのみが入っているものとし、
漢字などの全角文字は含まれていないものとします。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 2008年2月28日 11:00
[5] その他の制限:
     1.文字列の最後の文字から先頭に向かって、順に 1 文字ずつ表示
(ただし、文字列の最後の文字が改行文字の場合、その次から始める)
2. 1 で改行文字があったならば、改行文字を表示

だれかよろしくお願いします

468 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:26:20 ]
// >>467
#include <stdio.h>
#include <string.h>

static void flip(char * str)
{
char * tail = strchr(str, '\n');
if (tail == NULL) tail = strchr(str, '\0');
for (--tail; str < tail; ++str, --tail) {
char foo = * str;
* str = * tail;
* tail = foo;
}
}
static void flipCat(const char * fileName)
{
FILE * fp = fopen(fileName, "r");
char buf[1000];
while (fgets(buf, sizeof(buf), fp) != NULL) {
flip(buf);
fputs(buf, stdout);
}
fclose(fp);
}
int main(int argc, char ** argv)
{
for (int ic = 1; ic < argc; ++ic) {
flipCat(argv[ic]);
}
return 0;
}

469 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:43:38 ]
>>464
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6103.txt

こんな感じかな?
再帰関数を使っているのであんまりサイズが大きい配列だとプログラムが異常終了するかも
あと時間の計測方法は知らん

適当にmain関数を使っていじってみて

470 名前:デフォルトの名無しさん [2008/02/28(木) 07:54:50 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):以下の条件を満たしロトのプログラムを作成しなさい。
1 1〜42の中から6つの数字と1つのボーナス数字を選ぶことができます。ただし同じ数字を選ぶことはできません。
2 7つの数字は1次元配列の中になければなりません。
3 1つ1つの問題に対して関数定義を作り1つのプログラムで完成させなさい(関数を使う)
4 すべての関数はポインタを使いなさい。

問1 6つの数字と1つのボーナス数字を選ぶプログラム(エラー表示を含む)
問2 選らんだ数字とボーナス数字を1次元配列で表示しなさい
問3 選んだ数字とボーナス数字を小さい順に並べなさい
問4 ランダムに抽選されるプログラムを作り選んだ数字と比較し、以下の中の1つを表示させなさい

Match 6 Jackpot
Match 5 + Bonus Almost - just 1 away
Match 5 Holidays paid for
Match 4 + Bonus Night out
Match 4 Full petrol tank
Match 3 + Bonus Grub at local takeaway
問5 何回数字を選んだか表示しなさい (例)1はx回選ばれました
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C言語
[4] 期限:2008年3月3日まで
[5] その他の制限:ありません

丸投げです。どなたかよろしくおねがいします。



471 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 09:24:35 ]
>>470 久々に書くと酷いな
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6104.txt

472 名前:470 [2008/02/28(木) 09:35:36 ]
>>470 ほんとうにありがとうございます。
質問なんですが問4のランダム抽選はどのように表示されますか?

473 名前:470 [2008/02/28(木) 09:56:40 ]
↑アンカーミスです。。
>>471 ほんとうにありがとうございます。 

474 名前:デフォルトの名無しさん [2008/02/28(木) 10:20:39 ]
>>468 ありがとうございます。さっそくやってみたのですが、
test2.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。
test2.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。
test2.c(26) : error C2143: 構文エラー : ')' が '型' の前にありません。
test2.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。
test2.c(26) : error C2065: 'ic' : 定義されていない識別子です。
test2.c(26) : warning C4552: '<' : 演算子にプログラム上の作用がありません。作用
を伴う演算子を使用してください
test2.c(26) : error C2059: 構文エラー : ')'
test2.c(26) : error C2065: 'ic' : 定義されていない識別子です。
test2.c(26) : error C2143: 構文エラー : ';' が '{' の前にありません。
test2.c(27) : error C2065: 'ic' : 定義されていない識別子です。
と表示されるのですが…



475 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 10:47:43 ]
>>474
int ic;
for (ic = 1; ic < argc; ++ic) {

に変えたら?

476 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 13:38:15 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):キーボードから整数の入力を4回繰り返し,それらの値を2次元配列 A の各要素に順に代入し,その行列のそれぞれの要素と行列式を表示するプログラムを作成せよ.
結果例
1行1列の要素? 6
1行2列の要素? 5
2行1列の要素? 4
2行2列の要素? 3
行列A =
6 5
4 3
行列式 = 2

[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: C++
[4] 期限: 本日夕方6時まで

もしよろしければどなたかお願いします。

477 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 13:50:12 ]
>>476
#include <stdio.h>

int main(void)
{
int a[2][2],i,j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("%d行%d列の要素? ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("行列A =\n%d %d\n%d %d\n",a[0][0],a[0][1],a[1][0],a[1][1]);
printf("行列式 = %d",a[0][0]*a[1][1]-a[0][1]*a[1][0]);
return 0;
}

478 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 14:10:59 ]
>>477
早すぎるお仕事、ありがとうございました

479 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 21:18:18 ]
宿題マダー?

480 名前:デフォルトの名無しさん [2008/02/28(木) 21:29:27 ]
では300Mのテキストファイルを速くブロックソートするプログラム作ってくれよ
昨日から作ってるけど速くならない

481 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:31:48 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6106.txt
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2008年3月1日
[5] その他の制限:

482 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:56:15 ]
>>480
どんな環境でどんなデータに対してどれだけ時間がかかるのが遅いって言うんだ?
基準をplz

483 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:06:59 ]
>>481
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#define BSIZE 128
int main(int argc, char **argv){
int rfd, rdnum
char buf[BSIZE];
if ((rfd = open(argv[1], O_RDONLY)) == -1) {
perror(argv[1]);exit(1);
} else {
printf("ファイルのオープンに成功しました\n");
}
while(1){
if ((rdnum=read(rfd,buf,BSIZE))<1) break;
printf(" %d\n",rdnum);
}
close(rfd);
return 0;
}


484 名前:デフォルトの名無しさん [2008/02/29(金) 01:11:21 ]
>>482
全文字列を展開してソートした場合

#include <iostream>
#include <string>
#include <set>
#include <time.h>
using namespace std;

class gou{
public: string str; int num;
gou(string a, int b){str=a; num=b;}
bool operator<(const gou& a)const{return str<a.str;}};

main(){
int sz=20000,n;
string a(sz,'\0');
for(n=0;n<sz;n++)a[n]=rand()&255;

multiset<gou> s;
int cl=clock();
for(n=0;n<sz;n++){ s.insert(gou(a,n)); a=a.substr(1)+a[0];}
cl=clock()-cl; cout<<"20kのブロックーソート "<<(cl+0.0)/1000<<"sec \n";
}



485 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:15:30 ]
>>483
トン

486 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 02:33:11 ]

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
 1) 3つの「点」からなる構造体「三角形」を作成しなさい。1つの「三角形」を構成する3つの頂「点」の座標を読み込み、三角形の重心を求めなさい。
2) 「三角形」の重心を計算する関数を作成しなさい。この関数を用いて問題1を行いなさい。
3) 2つの「三角形」の「頂点」の座標を読み込み、どちらの「三角形」の中心点が原点に近いか求めなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland C++Compiler Version 2.31
 [3.3] 言語:C++
[4] 期限: 2008年2/29日中
[5] その他の制限: なし
  切羽詰って依頼します。よろしくお願いします。




487 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 03:54:35 ]
>>486
3)は、「中心点が原点に近いか」じゃなくて「重心が原点に近いか」じゃないの?

488 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 07:58:42 ]
重心の求め方がわからない?
各座標のx,yをそれぞれ足して3で割るだけじゃん。

489 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:57:25 ]
>>486
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6107.txt

490 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 17:06:38 ]
>>484 多少は早いんじゃないかと思う。 20kで動かせないからわからないけど
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/time.h>
#include<math.h>
typedef unsigned char byte_t;
int srcsize;
int comp(const void *p1, const void *p2){ return memcmp(*(byte_t**)p1, *(byte_t**)p2, srcsize); }
int main(void){
int n;
byte_t *src, *blockarea, *tmp, **blocklst;
struct timeval stv={0}, etv={0};
srcsize=20000;
src = (byte_t *)calloc(sizeof(byte_t),srcsize);
blockarea = (byte_t *)calloc(sizeof(byte_t),(srcsize*srcsize));
blocklst = (byte_t **)calloc(sizeof(byte_t*),srcsize);
if(src == NULL || blockarea == NULL || blocklst == NULL){ return 1; }
for(n=0;n<srcsize;n++)src[n]=rand()&255;
gettimeofday(&stv, NULL);
memcpy(blockarea, src, srcsize);
blocklst[0] = blockarea;
for(n=1,tmp=blockarea+srcsize; n<srcsize; n++, tmp+=srcsize){
memcpy(tmp, src+n, srcsize-n);
memcpy(tmp+srcsize-n, src, n);
blocklst[n] = tmp;
}
qsort(blocklst, srcsize, sizeof(byte_t*), comp);
gettimeofday(&etv, NULL);
fprintf(stderr, "time %g sec\n", (etv.tv_sec-stv.tv_sec)+abs(etv.tv_usec-stv.tv_usec)/1000000.0);
return 0; }

491 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 17:30:14 ]
>>490
あっ、インデックス保持してやないや
メモリの解放もわすれてるし・・・
どうも、ボケてるな

492 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:18:41 ]
486です。レス遅くなってしまったがありがとうございました。

493 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 13:33:08 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
<四則演算機の作成>
テキストファイルから数式を読み出し、計算結果を別ファイル名で出力する。
数式には、+−*/()を含む。計算結果は整数とし、小数点以下は切り捨てる。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2008年3月3日10:00まで
[5] その他の制限:逆ポーランド記法に並び替えて計算するという手順で
プログラムを作成しなさいとの説明がありました。逆ポーランド記法に
並び替えるプログラムで詰まってしまい先に進めらなくなってしまいました。
丸投げなのですがよろしくおねがいします。

494 名前:デフォルトの名無しさん [2008/03/02(日) 16:00:36 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
<copying-GCをC言語で作成 >
授業で行ったcopying-GCをC言語でせよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2008年3月5日00:00まで
[5] その他の制限:なし
C言語が大の苦手で、今遅れを取り戻そうとしているのですが。
期限が迫り、自分ではやってみるもののまったくわからないのでお願いします。



495 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:09:41 ]
これはひどいwwwww

496 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:17:11 ]
おい、だれかエスパーを呼んでくれ






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

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

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