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


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

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



1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)]
あなたが解けない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++の宿題を片付けます 115代目
pc11.2ch.net/test/read.cgi/tech/1217741118/

541 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:01:36 ]
[1] 授業単元:C
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7823.txt
問1.このプログラムではxの零乗が3x{0}と表示されるため3と出力されるようにする
問2.このプログラムでは入力の逆順に単項式が出力されるためそれを入力した順番に単項式が出力するようにする
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: お任せ
 [3.3] 言語: C
[4] 期限: 2008年10月24日hh:mmまで



542 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:25:10 ]
画像を読み込み、引き算したプログラムを自分なりに作ったんですが

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#define XL 900
#define YL 900

int main(int argc, char**argv)
{
FILE *fp1, *fp2, *fp3;
int i;
float opx, px1, px2;

fp1 = open("argv[1]", "rb");
fp2 = open("argv[2]", "rb");
fp3 = open("argv[3]", "wb");

for(i=0; i<XL*YL; i++){

fread(&px1,sizeof(float),1,fp1);
fread(&px2.sizeof(float),1,fp2);
opx = px1-px2;
write(&opx,sizeof(float),1,fp3);
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
コンパイルが通らず、エラーがでてしまいます;
アドバイスを頂けるとうれしいです

543 名前:デフォルトの名無しさん [2008/10/22(水) 19:26:15 ]
380
>>407
遅くなりましたが、回答ありがとうございました!!
もっと自分で学習せないかんですね・・・

544 名前:デフォルトの名無しさん [2008/10/22(水) 19:27:58 ]
fread(&px1,sizeof(float),1,fp1);
fread(&px2.sizeof(float),1,fp2);
write(&opx,sizeof(float),1,fp3);
&いるっけ?

545 名前:デフォルトの名無しさん [2008/10/22(水) 19:28:47 ]
ごめん、いるわw
勘違いでした

546 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:47:51 ]
×fp1 = open("argv[1]", "rb");
○fp1 = open(argv[1], "rb");

×fread(&px2.sizeof(float),1,fp2);
○fread(&px2.sizeof(float),1,fp2);
        ^

547 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:48:27 ]
ああ、まちがえた。
×fread(&px2.sizeof(float),1,fp2);
○fread(&px2,sizeof(float),1,fp2);
        ^

548 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:11:32 ]
483 484 お二人ともありがとうございました。質問の内容がわかりにくくてすいません。
ありがとうございました

549 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:26:48 ]
>>541
問1
最後のfor内を次のようにする

printf("%+d", pwork->coef);
if(pwork->degree_of_x)
printf("x^{%d}", pwork->degree_of_x);

問2
printf("Input the coefficient: ");の前にpmx->next = poly;を入れる
poly = pmx;の後ろのpmx->next = poly;を消す



550 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:22:28 ]
[1] 授業単元: 信号処理
[2] 問題文(含コード&リンク):
 @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。
 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。
 この作業をファイルの最後の2097152個目の値までやりなさい。
 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。
 ヒント:malloc関数

 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。)
 kissho6.xii.jp/14/src/1yon14506.zip.html
 DLKey:data
 
 A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。
 同様に3行目、4行目、・・・と順次最大値を出力させなさい。
 例:peak.txt →  472 234 800 578 ・・・・
           677 347 554 532 ・・・・
           843 637 347 551 ・・・・
           ・
           ・
           ・
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: LSI−86
 [3.3] 言語: C
[4] 期限: 2008年10月23日午後3時
[5] その他の制限: 特になし

>>500 gccでコンパイルしてみたんですが、うまくいきませんでした。
エラー表示 → main.c:56: undefined reference to`_nao_DList_t_ctor'

よろしくお願いします。


551 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:25:05 ]
>>497>>550 問題文修正しました
[1] 授業単元: 信号処理
[2] 問題文(含コード&リンク):
 @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。
 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。
 この作業をファイルの最後の2097152個目の値までやりなさい。
 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。
 ヒント:malloc関数

 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。)
 kissho6.xii.jp/14/src/1yon14506.zip.html
 DLKey:data
 
 A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。
 同様に3行目、4行目、・・・と順次最大値を出力させなさい。
 例:peak.txt →  472 234 800 578 ・・・・
           677 347 554 532 ・・・・
           843 637 347 551 ・・・・
           ・
           ・
           ・
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc または LSI−86
 [3.3] 言語: C
[4] 期限: 2008年10月23日午後3時
[5] その他の制限: 特になし

>>500 gccでコンパイルしてみたんですが、うまくいきませんでした。
エラー表示 → main.c:56: undefined reference to`_nao_DList_t_ctor'

よろしくお願いします。

552 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:31:09 ]
[1] 授業単元: C++
[2] 問題文(含コード&リンク):

標準入力から山の名前とその標高を入力し、標高の高い順にソートして、山の名前を表示するプログラムを作れ。

STLのpairを使うこと。 


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


553 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:44:28 ]
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):

void desc_array(int n, int *array)
{
int i;
for (i = n-1; i >= 0; i--)
array[i] = i;
}

降順にソートされた配列を作成したいが、上の関数では昇順に配列が作成されてしまうので誤りである。
そこで上の関数を正しい形に修正し、ディスプレイに表示し実際に降順となっていることを確かめられるプログラムを作れ。
(降順というのはたとえば、a[0] = 0, a[1] = -1, a[2]= -2, ..., a[n-1] = -(n-1)となっていればいい。)

[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 10月23日
[5] その他の制限:無し

お願いします。


554 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:56:59 ]
>>551
あれ、だめだったのか。
Terminalから、makeするだけでいいはずなんだけどconfigure作ってなかったからかもしれないなぁ。
READMEファイルでも読んで、ダメだったらどうしよう。
kissho1.xii.jp/7/src/7jyou16183.zip.html
DLkey : foo
処理の効率化とかヘッダファイルに使いかたとか書いといたので、うまくいかなかったらソース自体変更してみてね。

555 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:17:30 ]
>>553
array[i] = i;

array[i] = -i;

556 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:20:37 ]
>>554
:set backupdir=/tmp
とでもするといいよ。ってemacsでも~作るんだったらそっちはわかんね><

557 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:29:17 ]
>>552
こんなん?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7824.txt

558 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:49:48 ]
>>556
ありがたく追加させていただきました。
基本viを使っています。たまにvimになったり、geditになったりもしますが、emacsは使いません。
でも、S式っていいよね、とか言ってみるてst。

559 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:22:08 ]
>>551
これでいい?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7827.txt



560 名前:デフォルトの名無しさん [2008/10/22(水) 23:31:34 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):x^3-7x^2+16x-10=0 の解をニュートン法を用いて求めるプログラムを作りなさい。
[3] 環境 OS: Windows
[4] 期限: 2008.10.24

お願いします。


561 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:47:43 ]
>>560
はい。
#include<stdio.h>
#include<math.h>
#define EPS 0.0001
//x^3-7x^2+16x-10
double f(double x){ return x*(x*(x-7)+16)-10; }
//3x^2-14x+16
double df(double x){ return x*(3*x-14)+16; }

int main(){
double x,next=0;
do{
x=next;
next = x - f(x)/df(x);
}while(fabs(next-x) > EPS*fabs(x));
printf("%f\n",next);
}

562 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:51:22 ]
[1] 授業単元: C
[2] 問題文(含コード&リンク):
プログラムの冒頭で
#define YEAR 2005
#define MONTH 12
#define DATE 24
#define HOUR 00
#define MIN 00
#define SEC 00
#define STEP 20
と定義して、STEP秒毎の西暦、月、日、時、分、秒を99STEP分出力する関数を作成せよ。
「出力例」
01:2005/12/24/00:00:00
02:2005/12/24/00:00:20
03:2005/12/24/00:00:40
04:2005/12/24/00:01:00
    ・
    ・
    ・
99:
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: borland c++5.5
 [3.3] 言語: C
[4] 期限: ([2008年10月24日まで]
[5] その他の制限: なし

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

563 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:04:47 ]
>>555
ありがとう。作成した配列をディスプレイに表示する所が分からないのですが、
printf内にどうやってdesc_arrayで作成したarray[i] = iの部分を書けばいいのでしょうか?

564 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:06:39 ]
printf("array[%d] = %d,i,srray[i])

565 名前:デフォルトの名無しさん [2008/10/23(木) 00:11:11 ]
>>561
ありがとうございます。

566 名前:デフォルトの名無しさん [2008/10/23(木) 00:19:41 ]
すいません>>560ですが
コンパイルしようとすると
bccは内部コマンド、外部コマンド
操作可能なプログラムコマンドまたはバッチファイルとして認識しません。
と出るんですが、どうすればいいのですか??

567 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:25:41 ]
bcc32じゃないの? つーかそもそもコンパイラはいってるの?

568 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:26:32 ]
宿題以前だろ…

569 名前:デフォルトの名無しさん [2008/10/23(木) 00:38:00 ]
>>567>>568
すいませんでした・・・
解決しました。



570 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:40:20 ]
>>562
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7829.c

571 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:42:54 ]
>>562
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define YEAR 2005
#define MONTH 12
#define DATE 24
#define HOUR 00
#define MIN 00
#define SEC 00
#define STEP 160000
int main(){
int i;
char buf[1024];
struct tm date;
time_t now;
date.tm_year = YEAR - 1900;
date.tm_mon = MONTH - 1;
date.tm_mday = DATE;
date.tm_hour = HOUR;
date.tm_min = MIN;
date.tm_sec = SEC;
for(i=1;i<=99;i++){
if((now = mktime(&date)) == -1) return 1;
strftime(buf,sizeof(buf),"%Y/%m/%d/%X",&date);
printf("%02d:%s\n",i,buf);
date.tm_sec += STEP;
}
}

572 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:17:36 ]
[1] 授業単元:C
[2] 問題文(含コード&リンク):3つの整数を入力し,それらを比較して,大,中,小を判定しなさい.
3つの整数が同じ値の場合,あるいは2つの整数が同じ値の場合でも
正確に判定ができるように対応すること.
全ての条件を場合分けするプログラムは不可とする.
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 10月30日13:00
[5] その他の制限: 特になし

お願いします

573 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:18:46 ]
下記のように出力するプログラムをprintf,getsを用いて作成せよ.

./a.exe

学籍番号は? XXXXXXXXX
名前は? AAAA BBBB

学籍番号: XXXXXXXXX
名前 :AAAA BBBB

574 名前:573 mailto:sage [2008/10/23(木) 01:21:05 ]
>>573の続き
↓じゃ出力のAAAAが出ないのですがどうしたらいいですか?

#include<stdio.h>

int main()
{
char st1[80];
char st2[80];

printf("学籍番号は?");
scanf("%s",st1);

gets(st2);

printf("名前は?");
scanf("%s",st2);

gets(st2);

printf("学籍番号:%s\n",st1);
printf(" 名前 :%s\n",st2);
}

575 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:23:25 ]
>>574
scanfいらない

576 名前:573 mailto:sage [2008/10/23(木) 01:25:35 ]
>>573の補足

学籍番号は? XXXXXXXXX      補足→ XXXXXXXXXはキーボードで打ちます
名前は? AAAA BBBB        補足→ AAAA BBBBはキーボードで打ちます

577 名前:573 mailto:sage [2008/10/23(木) 01:27:02 ]
>>575
即レスありです。

両方ともいらないですか?

578 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:35:17 ]
>>577
両方いらないです。

579 名前:573 mailto:sage [2008/10/23(木) 01:41:48 ]
名前はちゃんと出ましたが学籍番号がちゃんと出ません><



580 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:02:51 ]
>>579
記載ミスだと思ってスルーしてましたが
1つめのgetsの引数は st1 にしていますよね?

581 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:03:35 ]
>>574
#include<stdio.h>

int main()
{
char st1[80];
char st2[80];

printf("学籍番号は?");
gets(st1);

printf("名前は?");
gets(st2);

printf("学籍番号:%s\n",st1);
printf(" 名前 :%s\n",st2);

return 0;
}


582 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 04:59:48 ]
>>572
#include<stdio.h>
int main(void){
int a, b, c, flag = 0;
printf("Input Number (a,b,c) : ");
scanf("%d,%d,%d", &a, &b, &c);
if(a >= b) flag |= 0x01;
if(b >= c) flag |= 0x02;
if(c >= a) flag |= 0x04;
printf("大中小\n");
switch(flag){
case 0x01: printf("%2d%2d%2d\n", a, c, b); break;
case 0x02: printf("%2d%2d%2d\n", b, a, c); break;
case 0x03: printf("%2d%2d%2d\n", a, b, c); break;
case 0x04: printf("%2d%2d%2d\n", c, b, a); break;
case 0x05: printf("%2d%2d%2d\n", c, a, b); break;
default: printf("%2d%2d%2d\n", b, c, a);
}
return 0;
}

583 名前:573 mailto:sage [2008/10/23(木) 08:21:48 ]
>>581
ありがとうございます。

584 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 09:54:51 ]
>>564
#include<stdio.h>

void desc_array(int n, int *array)
{
int i;
for (i = n-1; i >= 0; i--)
array[i] = -i;

}

int main()
{
int n,i;
int *array;
n =8;
desc_array(n,array);

printf("array[%d] = %d",i,array[i]);
return 0;
}

mainの中のどこが違うんでしょうか?セグメントエラーを吐きます。

585 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:00:08 ]
>>554
>>556
ありがとうございました。うまくコンパイルすることができました。
本当に助かりました。m(__)m

>>559
シンプルでわかりやすいプログラムありがとございます。
まだちゃんと解読してないんですけど、peak.txtの出力した最大値が
1024個中5個だけってことなんでしょうか? 一応、求めた平均値より突飛して高い値(最大値とする)
をpeak.txtに出力したいんですけど・・・最大値の数は特に指定はないです。

586 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:11:17 ]
>>584
main() 無効なアドレスをさしている変数 array
たぶんやりたいのは、
#include <stdlib.h>を、#include <stdio.h>のしたあたりに追加。
n = 8;の後に、array = (int *)malloc(sizeof(int) * n);
if ( array == NULL ) {
fprintf(stderr, "Error : Bad alloc !\n");
exit(8);
}
その後、desc_array(n, array);
で、arrayを使わなくなったら、free(array);

587 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:17:06 ]
MCIでデータ1データ2データ3を同時に鳴らした時、
コールバックでどのデータが終了したか
どうやって判断したらいいですか?

588 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:47:44 ]
[1] 授業単元: 情報工学演習
[2] 問題文(含コード&リンク):
数独のような問題を解くプログラムと、ポーカーでの強さを判定するプログラム
詳細は下のテキストファイルに書いてあります
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7830.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 10月24日13時まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
main関数は必ずテキストファイルに書いてあるもののままにしてください。
それ以外の部分もなるべくそのままでお願いします。
また、なるべく理解したうえで少し自分なりに手直したいので、
どんな手順で判定を行っているのかなど、軽く説明していただけると助かります。

できれば今日中にお願いします。急なお願いで申し訳ありません。

589 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:49:54 ]
>>584
int *array;

int array[8];
にしたらいい




590 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 11:37:57 ]
>>584
そもそも i に値がはいってないな。

591 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:22:37 ]
>>585
なんか5個だと思い込んでたw
てか最大値って言葉わかりにくいー極大値とか外れ値とかそんな感じ??
飛び抜けて大きな値って平均値の何倍かとかで調べたいんですか?
よくわかんないので標準偏差の何倍かで調べるようにしてみました。
てかこのまえupした画像で考えると、グラフで飛び出した点を求めなきゃいけないとするといったん並べ替えるのはよくないのだろうか・・・??
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7831.txt

592 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:56:53 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
ユーザから2から100までのいずれかの整数を受け取り、1からその数までの総和を計算する
プログラムをfor文を使って書け。利用者が範囲外の数値を入力した場合、「値が範囲内にありません」
などのエラー表示を行え。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名 gcc
 [3.3] 言語: C
[4] 期限: 2008/10/25
[5] その他の制限:まだ初めて日が浅く、習ったのはif else文やforループくらいまでです。

よろしくお願いします。

593 名前:デフォルトの名無しさん [2008/10/23(木) 13:03:19 ]
1] 授業単元:c++ builder
[3] 環境
 [3.1] OS:Widows XP
 [3.3] 言語:C++
[4] 期限:2008/10/24
[5] その他の制限:Cの基本言語程度

Memo1に60行の配列の乱数を出したのですが、そのMemo1にある60行の乱数の平均の数を
Edit1に出すプログラムがどうしてもできません。
どなたか教えていただけないでしょうか。よろしくおねがいします。

594 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:19:31 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):100 個の整数型配列を宣言して,各要素に2〜200 の偶数値を格納し,配列要素の
総和を求めて出力するプログラムをつくりなさい。ただし,配列への値の格納,総和の
計算ともポインタを用いて実行すること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:08年10月24日24:00まで

どうかお願いします。

595 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:55:57 ]
>>588 問2
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7832.txt
これでいい?
問題文にあった3つの動作例でしかチェックしてない。

596 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:07:55 ]
[1] 授業単元:プログラム・C言語
[2] 問題文(含コード&リンク):
以下のようなプログラムを作成しなさい

まず標準入力から、姓と名をそれぞれ別のchar配列型変数で受取る。
次に別の空のchar配列型変数に名と姓の間にスペースを挿入して格納し、表示するプログラム。
※ヒント 
空のchar配列型変数に「名」を入れる時はstrcpy()、スペースと「姓」を追加する時はstrcat()を使う
とよい。

実行例
./a
family name? sato
first name? zin

zin sato

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名 gcc
 [3.3] 言語: C
[4] 期限: 2008/10/25
[5] その他の制限:まだ序の口レベルです。 #include <stdlib.h>のみでお願いします。

何卒よろしくお願いします。

597 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:19:28 ]
>>592
#include <stdio.h>

int main(void)
{
int n, i, sum=0;

printf("値を入力してください\n");
scanf("%d", &n);

if(n < 2 || n > 100)
{
printf("値が範囲内にありません\n");
}
else
{
for(i=1; i<=n; i++)
{
sum += i;
}
printf("総和 = %d\n", sum);
}

return 0;
}

598 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:22:11 ]
>>596
#include <stdio.h>
#include <string.h>

int main()
{
char family_name[16], first_name[16], name[32];

printf("family name? ");
gets(family_name);
printf("first_name? ");
gets(first_name);

strcpy(name, first_name);
strcat(name, " ");
strcat(name, family_name);

printf("%s", name);

return 0;
}

599 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:29:38 ]
>>594
#include <stdio.h>

void Set(int *buf)
{
int i;

for(i = 0; i < 100; i++)
buf[i] = (i+1)*2;
}

int Sum(int *buf)
{
int i, sum = 0;

for(i = 0; i < 100; i++)
sum += buf[i];

return sum;
}

int main()
{
int buf[100];

Set(buf);

printf("%d", Sum(buf));

return 0;
}



600 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:40:52 ]
>>595
返答ありがとうございます。

無理でしたら構いませんが、なるべく関数poker_hand内で全ての動作を
記述している形がよいので、できればその形に組みなおしていただきたいのですが
とりあえず参考にしつつ自分でも作ってみておきます。
問1に関してもできればnumber_place内で全て記述している形でお願いします。
無茶な要求をしてしまって申し訳ありません。

601 名前:デフォルトの名無しさん [2008/10/23(木) 14:59:44 ]
[1] 授業単元:CG(C言語使用)
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7835.zip
OpenGLによるCGを用いたプログラムを、自由に設計する課題を作成。
条件として、「アニメーションが行えること」、「キーボード入力によって何らかの
操作が行えること」、「シェーディングやテクスチャマッピングを適切に使用できること」
です。前者2つとシェーディングは何とか理解出来ますが、テクスチャマッピングが
思うように設計できません。どなたか専門知識をお持ちの方、私が添付したプログラムのどの
辺にどのような関数をセットすればよいかなど、いわゆる作成方法についてご指導
お願いします。なお、テクスチャマッピングは壁を設計する予定です。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Borland C++(bcc32)
 [3.3] 言語:C
[4] 期限:2008年10月23日22時半

なお、期限については今日中としますが、今日中に良い意見が集まらなければ明日も
募集する予定です。宜しくお願いします。

602 名前:デフォルトの名無しさん [2008/10/23(木) 15:02:17 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7833.lzh

↑↑の画像の一番明るい場所を、
画像の中心を(0,0)とした座標として表示するプログラムを
つくりなさい。また、その明度の値も表示するようにしなさい。
例に示した画像はjpeg形式ですが、非圧縮bmp(白黒)
の場合でも可能です。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C
[4] 期限:今月中
[5] その他の制限:なし

よろしくお願いします。

603 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:08:51 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

文字列を入力し、その文字列が外部のテキストファイルに存在すれば、OK!と表示するプログラムを作れ

外部テキストは

apple
egg




のように10万個ほどの単語が書かれている。

効率的に探せるならば、C++のSTL等を用いてよい


[3] 環境
 [3.1] OS: Xp
 [3.2] VC 6.0
 [3.3] 言語: C++
 [4] 期限:明日
[5] その他の制限:


お願いします

604 名前:592 mailto:sage [2008/10/23(木) 15:12:26 ]
>>597
早いレスで助かります。
どうもありがとうございました。

605 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:22:15 ]
>>600
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7836.txt
もうやだ。こんなプログラム見たくねえorz

606 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:33:58 ]
ただのストレートでも 10 → A いけるんだとしった
ロイヤルの時だけだと思ってたわ

607 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:36:11 ]
>>582
ありがとうございます

608 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:38:37 ]
>>588
問1
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7837.txt

合ってるといいなw

609 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:03:17 ]
>>603
こんなでいい?
#include<iostream>
#include<fstream>
#include<string>
#include<set>
using namespace std;
typedef set<string> Dictionary;
int main(){
string word;
Dictionary dict;
ifstream ifs("in.txt");
if(!ifs.is_open()) return 1;
while(!ifs.eof()){
ifs >> word;
dict.insert(word);
}
ifs.close();
while(1){
cout << "Search:";
cin >> word;
if(dict.find(word) != dict.end()) cout << "OK!" << endl;
else cout << "Not found." << endl;
}
}



610 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:09:27 ]
>>599

丁寧な回答ありがとうです!




611 名前:デフォルトの名無しさん [2008/10/23(木) 17:50:21 ]
[1] 授業単元:文字列の探索
[2] 問題文(含コード&リンク):
(1)ファイルの先頭からテキストを1行ずつ(1行の文字数は999文字以下とする)読み込み、
  何行目の何文字目に検索文字列の先頭が存在するか出力する。
(2)探索文字列中に同じ文字が複数含まれる場合について検索方法を改良する。

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

[3] 環境 
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc (ver不明です)
 [3.3] 言語: C言語
[4] 期限: 2008年10月27日23:59まで
[5] その他の制限:問題文中のプログラムの「//ここにボイヤームーア法」の場所を補ってプログラムを組む感じです。
どうかお願いします。。

612 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 19:16:59 ]
>>602
libjpeg 使っていいんだったら
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7840.txt

613 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 19:37:45 ]
>>598

あなたのお陰で非常に助かりました。
ありがとうございます。

614 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 19:41:20 ]
[1] 授業単元: アルゴリズムとデータ構造
[2] 問題文:次の関数のゼロ点を求めるプログラミングをせよ。
        f(x) = x^4-10x^3+ 35x^2-50^x+24
        探索区間はx = 0から5(数学的表現では、x = [0; 5))であり
        実数解が4個あることを留意せよ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 10月24日1300まで
[5] その他の制限:2分法を使って組んでいただけませんか。

615 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 20:49:21 ]
>>614
#include <stdio.h>
#include <math.h>
double f( double x )
{
return pow(x,4) -10 * pow(x,3) + 35 * pow(x,2) - pow(50,x) + 24;
}
int main()
{
double x = 1.0;
printf( "f(%lf) = %lf\n", x, f(x) );
return 0;
}

616 名前:614 mailto:sage [2008/10/23(木) 20:54:54 ]
>>615
おい
ふざけんな

617 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:09:28 ]
【質問テンプレ】
[1] 授業単元:仕事
[2] 問題文(含コード&リンク):
"00 00 01 bd 80 80 ...."
とスペースや改行も含めた
テキストファイルから
0x00 0x00 0x01 のバイト列に
変換するコードをください

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C/C++どちらでも可
[4] 期限: 2008/10/24 10:00
[5] その他の制限:特に無しです

よろおね

618 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:11:04 ]
>>614
実数解が1個しか無いんだが。。。
#include <stdio.h>
#include <math.h>
#define DELTA 1e-4

double f(double x) { return pow(x, 4) - 10*pow(x, 3) + 35*pow(x, 2) - pow(50, x) + 24; }
int main(int argc, char *argv[])
{
double left = 0.0, right = 5.0, mid = 2.5;
if (f(left) * f(right) > 0) {
return 1;
}
while (fabs(f(mid)) > DELTA) {
mid = (left + right) / 2;
if (f(left) * f(mid) < 0)
right = mid;
else
left = mid;
}
printf("x = %f\n", mid);
return 0;
}

619 名前:614 mailto:sage [2008/10/23(木) 21:16:10 ]
すいません関数が間違っていました
f(x)=x^4-10*x^3+35*x^2-50*x+24



620 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:27:33 ]
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):

mozi1_mozi2_mozi3のように_で区切られた文字列を標準入力から入力し、stringに格納する。

char *list1[5] = {"test","test2","test3","test4","test5"} と *list2[3] = {"hoge",hoge2","hoge3"} の文字列へのポインタの配列
がある。

mozi1はlist1の文字列と比較し、一致するものがあればその添え字を表示し、
mozi2はlist2の文字列と比較して、同様の動作をするプログラムを作れ。

mozi1がtest2であれば1を表示
mozi2がhoge3であれば2を表示する。一致するものがなければその旨を表示すること



[3] 環境 
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: C++
[4] 期限: 2008年10月25日
[5] その他の制限

お願いします。

621 名前:615 mailto:sage [2008/10/23(木) 21:43:09 ]
>>619
>>616

622 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:55:07 ]
>>611
質問が
BM法ってリスト2つ使った奴じゃないと駄目?
それとも簡略版でいいのかしら

623 名前:デフォルトの名無しさん [2008/10/23(木) 22:49:19 ]
1] 授業単元: C++
[2] 問題文: ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7841.txt
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:Visual stdio2005
 [3.3] 言語:C++
[4] 期限:10月 24日(土)まで

期限が短いですがお願い致します。


624 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 22:53:58 ]
ここってGUIも受け付けてもらえますか?

625 名前:デフォルトの名無しさん [2008/10/23(木) 22:56:54 ]
受け付けてもらえます

626 名前:611 [2008/10/23(木) 22:57:38 ]
>>622
ありがとうございます。
講義内でも問題文に書かれた以上のことは言われなかったのですが、簡略版で大丈夫です。
とりあえず、「力まかせの探索」でなければ大丈夫とのことでした。

627 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 22:58:21 ]
[1] 授業単元: 信号解析
[2] 問題文(含コード&リンク):

一定周期を持つ弱い外力f(t) とガウス分布するノイズξ(t) を受けながら、ポテンシャル
Vo(x) 中を動く玉の運動は、玉の座標をx(t) として、

τdx/dt = -dV/dx + ξ(t)
< ξ(t)ξ(t') > = A * б (t - t')
< ξ(t) > = 0 …@

で記述される。ここで、A はノイズの強さ、τ は系の時定数である。また、全ポテンシャル
V (x; t) は、時間と共に周期的にその形を変える:

V(x,t) = Vo(x) - f(t)x
= -1/2*ax^2 + 1/4*bx^4 - hxcos(wt)

で与えられる。
a = 1.0 * 10^(-3)、b = 1.0 * 10^(-5)、 h = 2 * 10^(-3)とする。
t = 0 において、玉はx = 10 にあるとする。
τ = 1.0 * 10^(-4)、ノイズの分散 A = 7.0*10^(-4)、ω = 2π/10とする。
@式を時間発展させて、玉の位置と周期的な外力f(t)に比例する量である10cos(ωt)をグラフに表せ。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年10月24日23:59まで
[5] その他の制限: 特になし

 よろしくお願いします

628 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:00:13 ]
>>624
では書きます。

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
ファイルを開く・保存のコモンダイアログを使い、選択されたファイルをテキストに書き出すプログラムを作れ。
ファイルは複数選択される場合もある。
express版の場合、外部のリソースエディタは用いてかまわない。


出力されるファイル
test.bmp
data.wav
data2.wav




[3] 環境 
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual studio 2008
 [3.3] 言語: C or C++
[4] 期限: 2008年10月26日
[5] その他の制限

629 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:02:11 ]
>>627 問題文修正しました
[1] 授業単元: 信号解析
[2] 問題文(含コード&リンク):

一定周期を持つ弱い外力f(t) とガウス分布するノイズξ(t) を受けながら、ポテンシャル
Vo(x) 中を動く玉の運動は、玉の座標をx(t) として、

τdx/dt = -dV/dx + ξ(t)
< ξ(t)ξ(t') > = Aб(t - t')
< ξ(t) > = 0 …@

で記述される。ここで、A はノイズの強さ、τ は系の時定数である。また、全ポテンシャル
V (x; t) は、時間と共に周期的にその形を変える:

V(x,t) = Vo(x) - f(t)x
= -1/2*ax^2 + 1/4*bx^4 - hxcos(wt)

で与えられる。
a = 1.0 * 10^(-3)、b = 1.0 * 10^(-5)、 h = 2 * 10^(-3)とする。
t = 0 において、玉はx = 10 にあるとする。
τ = 1.0 * 10^(-4)、ノイズの分散 A = 7.0*10^(-4)、ω = 2π/10とする。
@式を時間発展させて、玉の位置と周期的な外力 f(t) に比例する量である 10cos(ωt) をグラフに表せ。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年10月24日23:59まで
[5] その他の制限: 特になし

 よろしくお願いします



630 名前:デフォルトの名無しさん [2008/10/23(木) 23:03:31 ]
この分野では、Sunday のアルゴリズムが究極では?


表 : 実行結果

: 時間 (秒) : 比較回数
-------------------------------
力任せ : 0.133 : 149,938
BM 法 : 0.046 : 30,168
BMH 法 : 0.041 : 29,728
quick : 0.033 : 25,094

www.geocities.jp/m_hiroi/light/pyalgo11.html

631 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 00:41:06 ]
名前を変えるほど改良されてる訳でもない気がしないでもない

632 名前:デフォルトの名無しさん [2008/10/24(金) 01:09:30 ]
Quick Search algorithm www-igm.univ-mlv.fr/%7Elecroq/string/node19.html

The C code
void preQsBc(char *x, int m, int qsBc[]) {
int i;

for (i = 0; i < ASIZE; ++i)
qsBc[i] = m + 1;
for (i = 0; i < m; ++i)
qsBc[x[i]] = m - i;
}


void QS(char *x, int m, char *y, int n) {
int j, qsBc[ASIZE];

/* Preprocessing */
preQsBc(x, m, qsBc);

/* Searching */
j = 0;
while (j <= n - m) {
if (memcmp(x, y + j, m) == 0)
OUTPUT(j);
j += qsBc[y[j + m]]; /* shift */
}
}



633 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 01:11:48 ]
[1] 授業単元:C
[2] 問題文: (1)1〜50までの整数の中から異なるいくつかをえらんび、
掛け合わせても一の位が0にならないようにする。選ぶことができる整数は40個。
上の文をプログラムで出力せよ。

(2)1〜50までの全てを掛け合わせると末尾の0を数えるプログラムを書け。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 10月24日8:00
[5] その他の制限:特になし

(1)は2の倍数、5の倍数が少なくとも1個ずつ入ったときにだけ1の位が0になる
ので2の倍数と5の倍数が同居しないように計算します。

634 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 02:25:39 ]
>>633
(2)
#include <stdio.h>

int main(void)
{
int i, c1 = 0, c2 = 0;

for(i=1; i<=50; i++) {
int temp = i;
for(; !(temp%2); c1++) temp /= 2;
for(; !(temp%5); c2++) temp /= 5;
}

printf("%d", c1 < c2 ? c1 : c2);

return 0;
}

635 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 02:55:22 ]
>>634
あたまいいなあ

636 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 03:09:59 ]
(2)は50を5^nで割った商を足してけばいいと思う
int cnt=0,t;
for(t=5;50/t;t*=5){
cnt+=50/t;
}
printf("%d\n",cnt);

637 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 03:12:31 ]
理由は素因数として2より5の方が少ないから。
数字を並べてみて1~50までに因数の5がいくつあるか数えるには?

638 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 03:36:40 ]
理由はもっともだが>>636にはハテナがたくさんだ

639 名前:デフォルトの名無しさん [2008/10/24(金) 04:41:46 ]
>>623
期限は10月24日(金)の11:00でした。
書き間違えてすみません。
よろしくお願いします。



640 名前:639 mailto:sage [2008/10/24(金) 06:35:26 ]
期限はアメリカ東海岸時間(EST)の10月24日(金)の11:00です
日本時間だと10月25日の11:00になります。
再再度訂正すみません

641 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 06:43:17 ]
すいません、C/C++以外の課題を聞けるスレってあります?






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

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

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