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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
あなたが解けない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++の宿題を片付けます 102代目
pc11.2ch.net/test/read.cgi/tech/1197132472/

463 名前:デフォルトの名無しさん [2008/01/22(火) 22:25:56 ]
問2
4個の変数
  a 整数
  b 実数
  c 精度の高い実数
  d 文字
を宣言し、それぞれに
適当なデータを代入する。
そして次のように画面表示
するプログラム

 a の値は ... です
 b の値は ... です
 c の値は ... です
 d の値は ... です
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



getch();
}


464 名前:デフォルトの名無しさん [2008/01/22(火) 22:27:09 ]
37から229までの整数を加算し
その結果を表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){


for( )
{


}

printf( );

getch();
}


465 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:30:03 ]
山下さんおつかれさまです

466 名前:デフォルトの名無しさん [2008/01/22(火) 22:33:08 ]
x = 0 から出発し、x の値を
0.001 づつ増加させることを
繰り返し、x^2 + 7x - 1 の値
が初めて正となった時点で
繰り返しを終了し、そのときの
x の値を表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



while( )
{

}

printf( );

getch();
}


467 名前:デフォルトの名無しさん [2008/01/22(火) 22:33:51 ]
キーボードから整数を入力させ
その数を x に代入する。
x が 100 より大きいとき、

「入力した数は 100 より大きい」

と表示し、x が 100 以下のとき、

「入力した数は 100 以下です」

と表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



getch();
}


468 名前:デフォルトの名無しさん [2008/01/22(火) 22:38:11 ]
キーボードからアルファベットを1文字入力させ、それが「a」のとき、「a です」「b」のとき、「b です」
「c」のとき、「c です」「d」のとき、「d です」「e」のとき、「e です」
と表示し、それ以外のとき「a,b,c,d,e 以外の文字」と表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



switch( )
{


}

getch();
}




469 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:40:01 ]
死ねカス

470 名前:デフォルトの名無しさん [2008/01/22(火) 22:40:12 ]
問10
縦 100m、横 120mのグランド
がある。
縦横それぞれ同じ長さ x だけ
長くして面積が 13000u と
なるようにしたい。
x を少数点以下1桁までの精度
で求めるプログラム。
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){

float x=0;

while( )
{
x = x + 0.01;
}

printf("縦横 %5.1f b広げればよい\n",x);

getch();
}

471 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:42:01 ]
>>462-470

問7
キーボードから実数を一つ入力させ、それを x に代入する。
x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」と表示するプログラム

問8
1 + 4 + 9 + 16 + ・・・と加えて行き、
和が初めて 10000を超えたとき、
その和の値、および最後に加えた数を求めて表示するプログラム

問9
次に書かれた数の総和を求め、結果を表示するプログラム:
1
1+2
1+2+3
1+2+3+4
 ・
 ・
 ・
1+2+3+4+5+・・・+ 10





472 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:48:04 ]
>>463,464,466,477
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5863.txt

丸投げスレだから問題丸投げはいい。でも>>1に長いならうpろだ使えってかいてあるよね?

473 名前:455 mailto:sage [2008/01/22(火) 22:52:54 ]
>>461さん
問題文をそのまま記述したのですが、そうなりますかね?
でも私には判断できないです....。


474 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:54:16 ]
>>473
おそらく1〜1000の書き間違いだろ
気にするな

475 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:56:31 ]
>>473
1から1000までの範囲にしといた


#include <stdio.h>
#define N 300

int f(int);
int k=0,array[N]={0};

int main(void) {
int n,a,b=0,c;
for(n=1;n<=1000;n++) {
a=f(n);k=0;
if(a>b) {
b=a;
c=n;
}
}
printf("%d %d\n\n",c,f(c));
for(n=0;n<=b;n++) printf("%d ",array[n]);
return 0;
}

int f(int n) {
array[k++]=n;
if(n==1) return k-1;
if(n%2==0) f(n/2);
else f(3*n+1);
}

476 名前:472 mailto:sage [2008/01/22(火) 23:01:36 ]
>>472の安価>>477>>467の間違い

>>468,470,471
>>471の問9に関して題意が不明確なのでこっちで勝手に解釈した。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5864.txt

>>472含めすべてのプログラムの動作未確認、コンパイルもしていない。
間違ってたらごめんちゃい。

477 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:06:23 ]
兄です。KRDで弟がお世話になっています。特定しましたんでヨロシク!


478 名前:461 mailto:sage [2008/01/22(火) 23:08:43 ]
>>473
>>474が言ってるように、1〜1000なら正しい。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5865.txt

479 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:11:57 ]
Lets to the best today! マジで?

480 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:17:31 ]
>>470

#include <stdio.h>
#include <conio.h>

#include <math.h>

void main(){

float x=0;

while(0)
{
x = x + 0.01;
}
x=floor((-110+10*sqrt(131.0))*10+0.5)/10;
printf("縦横 %5.1f b広げればよい\n",x);

getch();
}

481 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:20:33 ]
明日もビジネスマナー研修頑張ってください by兄



482 名前:455 mailto:sage [2008/01/22(火) 23:28:36 ]
すみませんでした!私の書き間違いでした。
1≦n≦10000の範囲で大きな関数を求めることは正しいのですが、
ちなみに〜の下りの問題文の方では皆さんのおっしゃる通り
「1≦n≦1000の範囲」においてはnは871でした。

>>474さん
よく確認してから記述するよう以後気を付けます。すみませんでした。

>>475さん>>478さん
ありがとうございます!今自分でもプログラムを組んでいたのですが、
教えて頂いたプログラムを参考にして正しく実行できました。
本当に助かりました。




483 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:45:52 ]
>>480
x = -110 + sqrt(13100);

484 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:55:24 ]
>>483
>>480さんの、顔に、泥を、塗るな!!!!。

485 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:56:56 ]
>>484
なんで、そんな、しゃべり方、なの?

486 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:22:45 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5868.txt
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/25
[5] その他の制限:なし

よろしくお願いします

487 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:28:45 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5869.txt
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語:C
[4] 期限:1月25日
[5] その他の制限:

どなたかよろしくお願いします

488 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:36:44 ]
[1] 授業単元: プログラミング入門
[2] 問題文(含コード&リンク):
コマンドラインから入力された文字列に小文字のアルファベット
が含まれていた場合は全て大文字に変換し、文字列を昇順にソー
トして表示するプログラムを作成して下さい
パラメータ文字列が2つ以上入力されなかった場合には、エラー
メッセージうぃ表示して終了させて下さい
sample One
usage : sample STRING1 STRING2 [STRING3 ... ]
sample matsui ichiro
** String data **
matsui
ichiro
** Changed string **
ICHIRO
MATSUI
sample sample1 sample2 sample3
** String data **
sample3
sample2
sample1
** Changed string **
SAMPLE1
SAMPLE2
SAMPLE3
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++ 2005
 [3.3] 言語: C
[4] 期限:1月24日
お願いしますm(_ _)m

489 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:53:53 ]
>>487
#include<stdio.h>
#define MAX 5
int main(){
int a[MAX]={1},i,j;
for(i=1;i<=30;i++){
for(j=0;j<MAX;j++)
a[j]*=i;
for(j=0;j<MAX-1;j++)
a[j+1]+=a[j]/10000000,
a[j]%=10000000;
}
for(i=0;i<MAX;i++)
printf("%08d",a[MAX-i-1]);
printf("\n");
return 0;
}

490 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:10:09 ]
【時間切れ】 (1/22)
>335

【未解決問題】
>>488 1/24
>>404 1/25
>>453 1/25
>>486 1/25
>>395 1/27 23:59
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>79 無期限
>144 無期限 問題文>148

491 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:11:10 ]
>>490
まとめおつん



492 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:16:21 ]
>>487
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5871.txt

493 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 04:03:32 ]
>>488
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
int cmp( const void * l, const void * r ) { return strcmp( *((char **)l), *(( char **)r) ); }
int main( int argc, char **args )
{
int i;
if ( argc < 3 ) {
fprintf( stderr, "usage: sample STRING1 STRING2 [STRING3 ... ]\n" );
exit( 1 ) ;
}
argc --; args ++;
puts( "** String data **" );
for ( i = 0; i < argc; ++i )
puts( args[ i ] );
puts( "** Changed string **" );
qsort( args, argc, sizeof( char * ), cmp );
for ( i = 0; i < argc; ++i ) {
char *p;
for ( p = args[ i ]; *p != '\0'; ++p )
putchar( toupper( *p ) );
puts("");
}
return 0;
}

494 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 04:48:22 ]
>>453
#include <stdio.h>
#define N 10
int get_gcd( int m, int n ) { return ( m < n ) ? get_gcd( n, m ) : ( n == 0 ) ? m : ( m % n == 0 ) ? n : get_gcd( n, m % n ); }
int get_lcm( int m, int n ) { return ( m == 0 || n == 0) ? 0 : m * n / get_gcd( m, n ); }
int main( int argc, char ** args ) {
int nums[ N ] = {0}, i, l, gcd, lcm;
puts( "input numbers. " );
for ( i = 0; i < N; ++i ) {
scanf( "%d", &nums[ i ] );
if ( nums[ i ] < 1 ) { break ; }
}
l = i;
gcd = lcm = nums[ 0 ];
for ( i = 1; i < l; ++i ) {
gcd = get_gcd( gcd, nums[ i ] );
lcm = get_lcm( lcm, nums[ i ] );
}
for ( i = 0; i < l; ++i ) {
printf( "%d ", nums[ i ] );
}
printf( "\nLCM:%d, GCD:%d\n", lcm, gcd );
return 0;
}
10個入れるか,0以下の数を入れるかで入力をやめるようにしてみた


495 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 07:36:23 ]
>>486
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5872.c

496 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:23:18 ]
[1] 授業単元:プログラミング
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5873.txt
 このプログラムを実行すると1つのxにつき100個の誤差付きのyが出てくるので
 それぞれのxにおけるyの平均値(=(狽凵j/100)を求めたい
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語: C
[4] 期限: 2008/1/24
[5] その他の制限:

よろしくお願いします

497 名前:デフォルトの名無しさん [2008/01/23(水) 11:29:13 ]
#include <stdio.h>
#include <stdlib.h>

void fileread(int,char *);
void filewrite(int,char *);

int main(int argc ,char *argv)
{
if(argc!=3){
printf("次回から引数を入力してください\n");
return 0;
}
fileread(argc,argv);
filewrite(argc,argv);
return 0;
}

void fileread(int argc,char *argv){
FILE *fp;
char *buffer;
fpos_t start_fpos;
int filesize;
if(!strcmp(argv[2],"r")){
fp=fopen(argv[1],"r");
fgetpos(fp,&start_fpos);

498 名前:デフォルトの名無しさん [2008/01/23(水) 11:29:44 ]
fseek(fp,0,SEEK_END);
filesize=ftell(fp);
fsetpos(fp,&start_fpos);
buffer=(char *)malloc(sizeof(char)*filesize);
while(fgets(buffer,filesize,fp))printf("%s",buffer);
free(buffer);
}
}


void filewrite(int argc,char *argv){
FILE *fp;
char *buffer,*stock;
int buffer_size=1000,count=0;
if(!strcmp(argv[2],"w")){
fp=fopen(argv[1],"w");
buffer=(char *)malloc(sizeof(char)*buffer_size);
while(fgets(buffer,buffer_size,stdin)){
count++;
stock=realloc(buffer,sizeof(char)*count);
sscanf(buffer,&stock[count-1]);
}
fputs(stock,fp);
free(buffer);
}
fclose(fp);
}

499 名前:497 [2008/01/23(水) 11:33:24 ]
>497-498
コンパイルエラーが出ます。
passing argument 1 of ‘fopen’ makes pointer from integer without a cast
fopenの箇所が整数値を吐き出してるのだとは分かるのですが、
どう修正していいのか理解できません。ご教授ください。

500 名前:390 mailto:sage [2008/01/23(水) 11:53:55 ]
>>437

大変参考になりました、ありがとう御座います。
strcmp()とstrcpy()については授業でそれを教えたから
とにかくそれを使わせて習得させるという方針っぽいです。

構造体structも次回の講義で始めて習うという初歩っぷりですので
基礎的な部分から稚拙さが漂ってくるのかもしれませんが…
structの勉強もできて非常にためになりました、多謝です

501 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:04:02 ]
>>497
スレ違い.

main( int argc, char * argv ) ;じゃなくて
main( int argc, char * argv[] ) ;

void fileread(int argc,char *argv) じゃなくて
void fileread(int argc,char *argv[]) にしないと




502 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:38:41 ]
>>496
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, j;
double x, y, sum;
char buf[100];
FILE *fp;
if (argc != 2)
return 1;
fp = fopen(argv[1], "r");
if (fp == NULL)
return 1;
for (i = 0, sum = 0.0; i <= 10; i++) {
for (j = 0; j < 100; j++) {
fgets(buf, sizeof(buf), fp);
sscanf(buf, "%lf %lf\n", &x, &y);
sum += y;
}
printf("%lf\t%lf\n", x, sum/100);
}
return 0;
}

503 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:55:40 ]
>>501
馬鹿発見。スレ違いと言う点には同意するので、どこら辺が馬鹿なのかは割愛。

504 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:13:10 ]
>>503
501じゃないけど解説求む

505 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:15:49 ]
そこだけ変えても意味がないってことだろ。根本的に作りがおかしいんだから。

506 名前:デフォルトの名無しさん [2008/01/23(水) 13:40:59 ]
>>494
ありがとうございます。
因みにLCMが最大公約数でGCMが最小公倍数なんですかね?

507 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:42:12 ]
>>506
いいえ。

508 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:42:41 ]
>>506
lcm と gcd でググれば何の略か分かる

509 名前:デフォルトの名無しさん mailto:sage!=501 [2008/01/23(水) 16:17:14 ]
>>503
fopenの引数が間違ってる、という説明に留めろという理解でよろしい?
確かに、
>main( int argc, char * argv ) ;じゃなくて
>main( int argc, char * argv[] ) ;
というのは先走り感が否めないが。

510 名前:395 mailto:sage [2008/01/23(水) 16:29:49 ]
>>444
argument error
と出てしまいます

511 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:33:20 ]
プログラム実行時に data.txt を後に加えて実行すればおk



512 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 17:55:25 ]
[1] 授業単元:プログラム入門
[2] 問題文:2つあるので下に書いていきます
[3] 環境
 [3.1] OS:Windows
 [3.2] gcc 3.4
 [3.3] 言語:C
[4] 期限: 明後日

1.0から1000までの数を1行に10個ずつカンマ区切りで表示する。
  末尾にはカンマを加えない。

実行例
  0,1,2,3,4,5,6,7,8,9
10,11〜〜〜〜
  〜〜〜〜〜〜998,999
1000

2.文字列を入力して、その文字列の中にアルファベットと数字をそれぞれカウントして結果を表示する。
実行例
  入力して:nurupo ga!!!!1111
  アルファベットは8文字
  数字は4文字
  それ以外は4文字

2つも出してしまい、申し訳ないですがかなり切羽詰ってます。
プログラムに関しては先月始めたばかりで初心者中の初心者です、なのでそこまで難しいことは習ってないと思います。
ですが分からないのでお力を貸してください。

513 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:01:12 ]
>>512
スペースは普通その他だろ

514 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:04:17 ]
>>513
すいません、見落としてました。スペースもそれ以外に追加します。

515 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:34:24 ]
>>512
#include<stdio.h>
int main(void){
int i;
for(i=0;i<=1000;i++){
if(i%10==0) printf("%d", i);
else printf(",%d", i);
if((i+1)%10==0) printf("\n");
}
return 0;
}

#include<stdio.h>
#include<ctype.h>
int main(void){
char buf[256];
int i, alphanum=0, digitnum=0, othernum=0;
printf("入力して:");
fgets(buf, sizeof(buf), stdin);
for(i=0;buf[i]!='\0';i++){
if(isalpha(buf[i])) alphanum++;
else if(isdigit(buf[i])) digitnum++;
else othernum++;
}
printf("アルファベットは%d文字\n", alphanum);
printf("数字は%d文字\n", digitnum);
printf("それ以外は%d文字\n", othernum);
return 0;
}

516 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:41:40 ]
>>515
>for(i=0;buf[i]!='\n';i++){

の方がいいかもNE!

517 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:48:57 ]
>>515、516
ありがとうございます。
今、外なんで家に帰ってから実行してみようと思います。

518 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:01:42 ]
[1] 授業単元: C言語
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5874.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 今日中です。。。
[5] その他:長くてめんどくさいかもしれませんが、どうかよろしくお願い致します。

519 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:22:42 ]
1] C言語
[2] 台形公式を用いて∫0^2 √4-x^2 の近似値を求めるプログラミングを作成しなさい
[3] 環境
 [3.1] OS: Linux
 [3.3] 言語: (C言語
[4] 期限:明日
[5] その他の制限: お願いします

520 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:32:49 ]
>>519

#include <iostream.h>

void main(){cout << "どう見ても0です << endl;}

521 名前:デフォルトの名無しさん [2008/01/23(水) 20:47:29 ]
>>519
#include <stdio.h>
#include <math.h>
#define E 0.00001

double TrapMethod(double (*f)(double), double a, double b, double e)
{
    if (fabs(b - a) < e) return 0.5 * (f(a) + f(b)) * fabs(b - a); 
    else {
        double t = 0.5 * fabs(b - a);
        return TrapMethod(f, a, a + t, e) + TrapMethod(f, a + t, b, e);
    }
}

double func(double x) { return sqrt(4 - x * x); }

int main(void)
{
    printf("%.10f\n", TrapMethod(func, 0.0, 2.0, E));
    return 0;
}



522 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:54:30 ]
>>487
つ265252859812191058636308480000000

523 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:41:10 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5879.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/26
[5] その他の制限:特になし

よろしくおねがいします

524 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:44:04 ]
[1] 授業単元:C言語
[2] 問題文:ファイル中の文字数,単語数,行数をカウントするプログラムを作成せよ。
単語の切れ目はアルファベット以外の文字、行の終わりは改行文字またはファイルの終端とします。
この課題のソースファイルで動作確認しなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/25
[5] その他の制限:特になし

お願いします

525 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:53:51 ]
>>523
#include <stdio.h>

int main(void)
{
int i, j, n, num[] = {1000, 500, 100, 50, 10, 5, 1};
char roman[] = "MDCLXVI";

while(1) {
printf("Input integer (0 quit) ====>");
scanf("%d", &n);
if(n==0) break;
printf("%d ====> ", n);
for(i=0; n; i++) {
int c = n / num[i];
for(j=0; j<c; j++) putchar(roman[i]);
n %= num[i];
}
putchar('\n');
}
return 0;
}


526 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:10:52 ]
>>523
繰り返しでやってみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5881.txt

527 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:12:42 ]
去年と同じ問題だw

528 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:18:31 ]
>>524
適当 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5882.txt

529 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:27:37 ]
>>524
ミスあった >>528 修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5883.txt

530 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:31:13 ]
>>526
勘違いしてたから修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5884.txt

531 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:45:02 ]
[1] 授業単元:cprograming2
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5885.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C
[4] 期限:2008/1/25 am 0:00
[5] その他の制限: 特に無し
よろしくお願いします



532 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:31:43 ]
【時間切れ】 (1/23)
>518

【未解決問題】
>>531 1/25 0:00
>>404 1/25
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>79 無期限
>144 無期限 問題文>148

533 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:38:17 ]
>>529
なんで、そんなに括弧で囲む必要があるんだい?

534 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:39:28 ]
>>518
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5887.c

すでに時間切れ 且つ なぜかリスト構造を使ってしまったけど、一応動いたのでうp

535 名前:デフォルトの名無しさん [2008/01/24(木) 01:39:57 ]
[1] 授業単元:アルゴリズム2
[2] 問題文
 最小全域木問題

で以下のコメント文の
 e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない
をどうやって書くのか分かりません。トレースの問題で躓いてしまいます。
プログラムが分かればトレース出来そうなのでよろしくお願いします。

void mst(int i, int k, int weight) {
if (k == n - 1) {
if (weight < best_weight) {
best_weight = weight;
配列 best_tree に t をコピー;
}
}
else if (i <= m) {
if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){
t[k] = i;
mst(i + 1, k + 1, weight + w[i]);
}
mst(i + 1, k, weight);
}
}
[4] 期限:1/24 9am test..!

536 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:46:51 ]
一応情報はランダムにこんな感じで与えられます。
これをどう利用して記述して求めているのかが分かりません。

辺の番号 1 2 3 4 5 6 7 8 9 10 11 12
端点1 4 3 1 2 4 6 1 8 5 6 7 5
端点2 6 7 5 3 5 1 2 4 4 2 8 2
重み 9 16 13 8 7 12 10 5 11 15 4 2


537 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:56:17 ]
>>533
 データ(変数)を尊重し、できるだけそのデータが使われるときに、宣言し使う。
こうすることで、必要のないデータを他のブロックで誤って書き換えられることを防いでいる。
 いわゆる、データ指向プログラミング。

 >>529 fclose忘れてるな。別にいいけど。

538 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:05:12 ]
>>534
ありがとうございます!!!

539 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:42:42 ]
>>529 >>537
{NULL};が気になる。普通{0}じゃね?残りは0で埋められるわけだし。
NULLだとアドレスかと思ってしまうな

まぁ実用上はまったく問題ないと思うけど

540 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:43:52 ]
>>535
配列eのメンバがわからないことには何とも言えない。
つーか、ソースうp。

541 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:54:33 ]
スイマセン
再うp。

まず、バックトラックによって、グラフGの最小全域木を求める
次のようなアルゴリズムを考えます。ここで、n はGの 頂点数、m は辺の数で、e[i] (i = 1, ..., m) はGのi番目の 辺を表し、w[i] はその重み(正整数)を表すものとします。
また、int 型の配列 t と best_tree は大域変数であるとします。

void mst(int i, int k, int weight) {
if (k == n - 1) {
if (weight < best_weight) {
best_weight = weight;
配列 best_tree に t をコピー;
}
}
else if (i <= m) {
if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){
t[k] = i;
mst(i + 1, k + 1, weight + w[i]);
}
mst(i + 1, k, weight);
}
}


関数mstへの呼び出しと戻りを「イベント」と呼ぶことにします。 n = 8, m = 12 であり、Gの頂点が 1, 2, ..., n であって、 Gの m 本の辺の各端点と重みが次のように与えられるとします。
辺の番号 1 2 3 4 5 6 7 8 9 10 11 12
端点1 6 7 5 4 3 1 6 7 8 4 5 2
端点2 7 5 4 3 1 2 4 3 6 8 3 8
重み 14 11 15 12 4 9 6 16 8 7 10 2




542 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 03:36:47 ]
>>537
そこまでするならサブルーチン化した方がいいような気もするが。読みづらいしな。

543 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:12:22 ]
>>531
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5888.txt
ヘロンの公式は使ってないけど。眠い。

544 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:17:09 ]
>>531
純粋な興味として聞きたいんだが、どうして座標が整数値で与えられているのにヘロンの公式を使うんだろう。

545 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:36:59 ]
 >>543
 ちょ、間違ってる。

546 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 08:21:22 ]
[1] 授業単元:C入門
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5876.txt
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:study C
 [3.3] 言語:C
[4] 期限:今日の15時
[5] その他の制限:入門科目なので簡単なコードでお願いします。

547 名前:デフォルトの名無しさん [2008/01/24(木) 10:54:30 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):0<N <100,000,000の整数を入力したとき、Nの素因数分解結果を出力するプログラムを作成せよ。

 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C++
[4] 期限:1/25 15時
[5] その他の制限:
2から √Nまでの素数について、小さい順にNを割ってみて割り切れたらその素数aはNの素因数である。
割り算の結果N1についてa から √N1 までの素数について小さい順にN1を割り切れたらその素数b も
Nの素数である。以上を割り算の結果Nxが素数になるまで繰り返す。Nx もNの素因数である。
ということを使ってやれと言われました。

簡単なコードでお願いします。

548 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 10:56:22 ]
>>546
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5889.txt
入力チェックはしてない。

549 名前:デフォルトの名無しさん [2008/01/24(木) 11:24:20 ]


550 名前:546 mailto:sage [2008/01/24(木) 12:25:04 ]
>>548
助かりした
無事単位を取得できそうです
ありがとうございました!

551 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 12:35:11 ]
単位wwwどんだけしょぼい大学だよ



552 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:04:35 ]
大学行ってないから基準が分からないんだね。

553 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:06:27 ]
本来なら大学は自分で勉強するべきとか考えないとすれば
90分×14回 = 21時間 だから、無理もない
たったの二日で何が習得出来るって話だ

554 名前:548 mailto:sage [2008/01/24(木) 13:14:10 ]
>>550
これで単位か・・・羨ましいような羨ましくないような。

>>547
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5891.txt

555 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:09:37 ]
>>502
ちょっと解説してもらえませんか?

556 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:43:55 ]
>>555
回答した本人じゃないが、
for (i = 0, sum = 0.0; i <= 10; i++) {
for (i = 0, sum = 0.0; i <= 10; i++, sum=0.0) {
にすれば問題ないのでは?

557 名前:デフォルトの名無しさん [2008/01/24(木) 15:30:11 ]
>>550
ちょっWwおまWw
どこの大学だよ
それで単位認定って
笑った

558 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:33:44 ]
文系が理系をちょっとかじるようなゼミだとそんなもんじゃね?

559 名前:デフォルトの名無しさん [2008/01/24(木) 15:40:41 ]
【質問テンプレ】
[1] 授業単元:CG
[2] 問題文(含コード&リンク):対戦型シューティングゲームを作ったんですけど、
もう1つのポットから、玉が出ないんです。どうしたら、出るようになるんでしょうか?
教えてください。あと、当たり判定も作ったんですが、これよりもっといいプログラムは
ありますか?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5893.c
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: Cで書いてあります
[4] 期限: 今日の18時まで
[5] その他の制限:なし

560 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:42:32 ]
>>559
よくあるのはベクトルのノルムで判定する方法

561 名前:デフォルトの名無しさん [2008/01/24(木) 15:43:21 ]
[1] 授業単元: プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5892.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特にないです。。。

お願いします。



562 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:51:24 ]
>>561
ファイルに書き出すときのテキストのフォーマットは?

563 名前:デフォルトの名無しさん [2008/01/24(木) 18:13:49 ]
>>562
txt形式でお願いします。






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

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

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