トップページ⇒tech
1001コメント402KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG?2BP(12)
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 76代目
http://pc8.2ch.net/test/read.cgi/tech/1162771475/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0488デフォルトの名無しさん2006/11/28(火) 00:44:24
>>487
何を勘違いしているんだ?
ここは教えるところなんかじゃないぜ
0489デフォルトの名無しさん2006/11/28(火) 00:46:47
自分でやった方が自分のためになると思うけど

一応ヒント

アドレス士官
0490デフォルトの名無しさん2006/11/28(火) 00:46:58
ここは宿題がやりたくてやりたくてたまらない人が集うスレであって
宿題を持ってきたやつがどうなろうと知ったこっちゃない
0491デフォルトの名無しさんNGNG?2BP(200)
とりあえず和歌山大学の学生は無条件で落とすことに決定。
0492デフォルトの名無しさん2006/11/28(火) 00:49:56
新卒落とされたね
0493デフォルトの名無しさん2006/11/28(火) 00:52:11
そして本人は公務員にしか眼中が無いという展開
0494デフォルトの名無しさん2006/11/28(火) 00:52:12
別に中小企業に落とされたとしても
痛くも痒くもないですよw
0495デフォルトの名無しさん2006/11/28(火) 01:08:20
1]win
2]gcc  Cのみ
3]2006'11'30

映像を取り込み、
その映像を基にして
長さを調べて表示する
プログラムを作成しろ

よれしくおねがいします
0496473〜4752006/11/28(火) 01:10:27
少し前に書き込みしたのですがどなたかお願いします。
もし問題に不手際があったらそれだけでも教えてもらえるととても助かります
0497デフォルトの名無しさん2006/11/28(火) 01:10:55
>>478
一応出来たけど答はいくらになればいいの?
0498デフォルトの名無しさん2006/11/28(火) 01:14:47
>>495
映像って具体的になんだ?
0499デフォルトの名無しさん2006/11/28(火) 01:14:50
>>495
写真に載っている物質の長さを求めるらしいです。

対象物とレンズの距離が毎度違うと思うので
分かりません

どうやってはかるの?
0500デフォルトの名無しさん2006/11/28(火) 01:16:24
2次元の映像に奥行きを求める?

0501デフォルトの名無しさん2006/11/28(火) 01:19:09
言い忘れてました。

ヒシャタイ
の実寸らしい
0502デフォルトの名無しさん2006/11/28(火) 01:22:38
市販されている3Dソフトの応用らしいのですが
意味がサッパリなので悩んでます
0503デフォルトの名無しさん2006/11/28(火) 01:26:37
>>495
はっきり言う
それは億単位の案件になるので
たった2日では無理です。
申し訳無い

0504デフォルトの名無しさん2006/11/28(火) 01:31:09
>>503
学校の宿題ですよw

大学内のみの流通のみで
物理学部に提供するらしい。
0505デフォルトの名無しさん2006/11/28(火) 01:32:13
>>503
あの条件から見積もりだすお前がすごい
0506デフォルトの名無しさん2006/11/28(火) 01:33:44
今日のSE大賞をあげよう
>>503
0507デフォルトの名無しさん2006/11/28(火) 01:40:33
とりあえず>>495は
>>1を声に出してよく読んで、テンプレを元にして書き直し
0508デフォルトの名無しさん2006/11/28(火) 01:52:52
大学のみの流通とは言え他者に提供するのなら
それは既に宿題ではないんではないだろうか
0509デフォルトの名無しさん2006/11/28(火) 01:53:42
>>497 exp(1.0)だろ、常識的に考えて。
0510デフォルトの名無しさん2006/11/28(火) 01:57:47
>>497
小さい方から足してるだろうな?積み残しが出るぞ。
0511デフォルトの名無しさん2006/11/28(火) 01:59:27
>>509
e^1は1/0!+1/1!+1/2!+1/3!・・・だろ?
478の課題は
1/0!-1/1!+1/2!-1/3!・・・の逆数を求めろって言ってるぜ
0512デフォルトの名無しさん2006/11/28(火) 02:02:17
>>510
ちゃんと100000から計算していってるよ
0513デフォルトの名無しさん2006/11/28(火) 02:03:55
おまえら糞か
ハヤクシロや
0514デフォルトの名無しさん2006/11/28(火) 02:08:44
>>511
おいおい。寝ぼけてるのか?

exp(x) = 1 + x + x^2/2 + x^3/3 + ...
exp(-1) = 1 - 1 + 1/2! - 1/3! + ...
1/exp(-1) = exp(1)
0515デフォルトの名無しさん2006/11/28(火) 02:10:52
>>514
あ、なるほどな

ののしるがいいさ さげすむがいいさ
0516デフォルトの名無しさん2006/11/28(火) 02:24:33
という訳でバグ取れたから貼るか
>>478

#include <stdio.h>
#define N 100000

main(){
double i=N,y=1;
while(i>=1) y=1-y/i--;
printf("%f\n",1/y);
}
0517デフォルトの名無しさん2006/11/28(火) 02:31:52
デフゥルトゥイラネだろ
0518デフォルトの名無しさん2006/11/28(火) 02:42:10
>>517
レベルの低い素人は口を挟むな
0519デフォルトの名無しさん2006/11/28(火) 02:45:48
[1] 授業単元:コンピュータプログラミング
[2] 問題文(含コード&リンク):正整数nと実数xを入力して、多項式
               1+x+xの二乗+xの三乗+…+xのn乗
               を計算するプログラムつくりなさい。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2006年11月29日
[5] その他の制限:関数定義使う
0520デフォルトの名無しさん2006/11/28(火) 03:00:30
ループだけじゃん
0521デフォルトの名無しさん2006/11/28(火) 03:29:18
>>519
#include <stdio.h>

double keisan(double x,int n);

main(){
double x;
int n;
printf("xを入力してください\n");
scanf("%lf",&x);
printf("nを入力してください\n");
scanf("%d",&n);
printf("f(%f,%d)の答えは%fです。",x,n,keisan(x,n));
}

double keisan(double x,int n){
double y=1;
for(int i=0;i<n;i++) y=1+x*y;
return y;
}
0522デフォルトの名無しさん2006/11/28(火) 03:46:25
ブブー
0523デフォルトの名無しさん2006/11/28(火) 03:48:25
計算式おかしい。
ループかけるまえに
1を宣言して
ループしたのを足していけばいいんだお
0524デフォルトの名無しさん2006/11/28(火) 03:50:17
y=1+x;
0525デフォルトの名無しさん2006/11/28(火) 04:00:31
>>523
n=1の時
y=1+x
n=2の時
y=1+x*(1+x)
n=3の時
y=1+x*(1+x*(1+x))
 ・
 ・
 ・
05265162006/11/28(火) 04:31:48
この方が良いな
>>478
#include <stdio.h>
#define N 100000

main(){
double i=N+1,y=1;
while(--i) y=1-y/i;
printf("%f\n",1/y);
}
05275162006/11/28(火) 05:28:09
最終版。
>>478に俺に感謝する心が1バイトでもあるなら是非これを提出して欲しい

#include <stdio.h>
#include <float.h>
#define Nmax 100000

double tenkai(double n){
double i=n+1,y=1;
while(--i) y=1-y/i;
return y;
}

double kousuu(void){
double y=1;
int i=1;
while(i<N&&y>DBL_EPSILON) y/=++i;
return i;
}

void main(){
double n=Nmax;
double n2=kousuu();
if (n2<N) printf("n=%.0fまで計算した結果%.16f\n愚かにも",n2,1/tenkai(n2));
printf("n=%.0fまで計算した結果%.16f\n",n,1/tenkai(n));
}
05285162006/11/28(火) 05:48:15
あ しまったNの名前変えたの忘れてた

while(i<N&&y>DBL_EPSILON) y/=++i;
↓
while(i<NMAX&&y>DBL_EPSILON) y/=++i;
0529473〜4752006/11/28(火) 08:05:16
すみません、周りの人もわからないっていっててもうお手上げなんです。
どなたか解いてもらえないでしょうか。
0530デフォルトの名無しさん2006/11/28(火) 08:50:15
>>529
前の日の晩に質問するなんて無謀な
今から知り合い増やそう
0531デフォルトの名無しさん2006/11/28(火) 08:57:52
>>473-475ってほとんど答えそのものだろ

node root;

// idx番目の要素を操作対象に設定
node *target = &root;
for(i=0;i<idx;i++)
target = target->next;

// 追加
InsertMigi(target, n);

// 削除
Remove(target);

printfやscanfくらい自分で書け
05324782006/11/28(火) 09:13:53
皆さんいろいろとありがとうございます!

ですが…わからないものばかりで…
defineやらreturnやらvoidというのは習ってないんです。
すみません。

100000はscanfから読み込んでやるはずだったんですが、
説明不足ですみません。

答えは 2.71828に近づきます。
もしよろしければ、もう一度おねがいしたいのですが…
0533デフォルトの名無しさん2006/11/28(火) 09:17:54
defineはともかく、returnとvoidを習ってないってのはありえなくない?
0534デフォルトの名無しさん2006/11/28(火) 09:25:25
>>532
習ってないからといって使っていけないというわけでもないし、ぐぐれば理解できるだろ
scanfで読み込むように書き直すくらい自分でできるだろうし
05354782006/11/28(火) 09:36:21
>>533
えっ!?そうなんですか…でも本当に習ってないんです。

>>534
わかりました。なんとかやってみます。
0536デフォルトの名無しさんNGNG?2BP(200)
「習ってない」をNGワードに。
0537デフォルトの名無しさん2006/11/28(火) 11:29:56
>>531
// idx番目の要素を操作対象に設定をどこにいれていいのかわからないです
何度もすみません
0538デフォルトの名無しさん2006/11/28(火) 12:47:36
[1] 授業単元:計算機演習2
[2] 問題文(含コード&リンク):4個の1桁の数字からなる順列を乱数で生成
キーボードから4個の数字の順列を入力
生成した順列と入力の順列を比較
位置が合っている場合はhit,位置が間違っている場合はblowとし、
ヒット数とブロー数を表示させる
順列があたるまで入力を繰り返すプログラムを作りなさい
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12月5日 12時まで
[5] その他の制限: long random(void)まではヒントが与えられています。
宜しくお願いします。
0539デフォルトの名無しさん2006/11/28(火) 13:24:40
random() なんてあったっけ
0540デフォルトの名無しさん2006/11/28(火) 13:32:03
関数つくれって事だろ
0541デフォルトの名無しさん2006/11/28(火) 13:41:15
>>539-540
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/random.3.html
M系乱数のはず。
0542デフォルトの名無しさん2006/11/28(火) 14:09:12
[1] 授業単元: Cによるプログラミング実習II
[2] 問題文(含コード&リンク):
キーボードから入力された文章を単語単位で切り出し
総単語数と各単語の文字数を表示する
Cプログラムを書きなさい。単語の区切りは半角スペースのみとする。

但し、単語数の上限は30、1単語数の最大の文字数は20と仮定する。

【実行例】
文を入力してください: This is an apple
合計4単語です。 各文字数は
This:4文字
is:2文字
  an:2文字
apple:5文字

[3] 環境
 [3.1] OS:Windows XP SP2 Pro
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2006年12月01日19:00
[5] その他の制限:
文字の入力には gets 関数を使うこと
関数の中身はブラケット演算子なしでポインターだけで書く

よろしくお願いいたします。
0543a2006/11/28(火) 14:23:34
整数値を要素にもつk 行m 列行列A とm 行n 列行列B を定義し,それらの要素をキーボー
ドから入力させ,C = A×B を計算して画面表示するプログラムを作成しなさい.ただし,k,m,
n については,k≠m,m≠n,k≠n,k≧2,m≧2,n≧2 を満たす任意の値を設定してよい
0544デフォルトの名無しさん 2006/11/28(火) 15:25:10
[1] 授業単元:Cプログラミング演習
[2] 問題文:疑点法を用いてf(x)=x-cosx=0の近似解を小数点以下15桁まで求めるCプログラム
擬点法とは f(a1)f(b1)<0 となるような近似解の組
x=a1 x=b1 から出発して、漸化式
   bk*f(ak)− ak*f(bk)
xk=――――――――――   (k=1,2,3,・・・)
     f(ak) − f(bk)

         (ak,xk) if f(ak)*f(xk)<0
(ak+1,bk+1)=
         (xk,bk) otherwise 

により、次々とより良い近似解x=xk(k=1,2,3・・)
をもとめていこうとするものです。このプログラムは
f(xk)=0 or x1,x2,x3・・が十分に収束したと判断できる
時点で終了する今回の出発点は
a1=0,b1=1とします
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: Cのみ
[4] 期限: 2006年12月08日12:00まで
[5] その他の制限:
int型、double型、数学的関数を使う。constは使わない。
for,do-while構文習得。増分・減分演算子習得。
最初に#define f(x) ((x)-cos(x))
    #define EPSILON (1e-15)   を使う
Simpsonの公式は習った。
05455442006/11/28(火) 15:27:46
皆さん宜しくお願いします。
0546デフォルトの名無しさん2006/11/28(火) 16:39:32
>>544
VCC++だと#define EPSILON (1e-15)が解決できなかったので
代わりにfloat.hのDBL_EPSILON使ってある
気に入らなかったら自分で直して

#include <stdio.h>
#include <math.h>
#include <float.h>
#define f(x) ((x)-cos(x))
void main(){
double x=1,xBefore=0,a=0,b=1,fa=f(a),fb=f(b);
while(f(x)!=0&&fabs(x-xBefore)>DBL_EPSILON){
xBefore=x;
x=(b*fa-a*fb)/(fa-fb);
if(fa*f(x)<0) {
b=x;
fb=f(b);
}
else {
a=x;
fa=f(a);
}
}
printf("x=%.15fの時f(x)=%.15f\n",x,f(x));
}
05475462006/11/28(火) 16:50:06
改良版
#include <stdio.h>
#include <math.h>
#include <float.h>
#define f(x) ((x)-cos(x))

void main(){
double x=1,xBefore=0,a=0,b=1,fa=f(a),fb=f(b),fx=f(x);
while(fx!=0&&fabs(x-xBefore)>DBL_EPSILON){
xBefore=x;
x=(b*fa-a*fb)/(fa-fb);
fx=f(x);
if(fa*fx<0) {
b=x;
fb=fx;
}
else {
a=x;
fa=fx;
}
}
printf("x=%.15fの時f(x)=%.15f\n",x,f(x));
}
0548デフォルトの名無しさん2006/11/28(火) 19:20:49
[1] 授業単元: データ構造とアルゴリズム
[2] 問題文(含コード&リンク): ファイルを読み込み、各行が逆順に出るようなプログラムを書きなさい。作成したプログラムに対して、空の入力と、作成したプログラム本体のソースコードを入力し、出力結果を報告しなさい。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: mingw-jp
 [3.3] 言語: C++
[4] 期限: 明日の午後8時(2006年11月29日(水))
[5] その他の制限: 一行の文字数や、行数の制限を行わない。
         同じファイルを二回以上オープンしない。但し、メモリに異常が発生した場合は、検知し、確実に異常終了させる。

分かる方、いたらお願いします!!
0549デフォルトの名無しさん2006/11/28(火) 19:43:41
>>548
このスレを検索
0550デフォルトの名無しさん2006/11/28(火) 19:45:55
>メモリに異常が発生した場合は、検知し、確実に異常終了させる
そりゃ不可能だ。
仮にメモリ異常が単にmalloc()/new失敗と言う意味に解釈したとしても、
その状況で確実に異常終了できるかどうかは実はOS次第だからな。
0551デフォルトの名無しさん2006/11/28(火) 19:49:29
[1] 授業単元: コンピュータプログラミング
[2] 問題文:

点数をいれるとSABCDを出力するプログラムを作りなさい。ただし
100〜90点  S
89〜80 A
79〜70 B
69〜60 C
59点以下 D
とする。以下の実行結果を参考にして考えよ。
./kadai 70 80 85
1教科目はBです。
2教科目はAです。
3教科目はAです。

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラとバージョン: gcc
 [3.3] 言語:C言語
[4] 期限:11月29日20時まで

当方プログラミング歴2ヶ月で今回の課題がさっぱりわからないので
誰か分かる方がいらっしゃいましたら助力お願いします。
0552デフォルトの名無しさん2006/11/28(火) 20:12:53
>>542
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3048.c
05535372006/11/28(火) 20:17:27
あの後もう一度必死に頭使ってみたら、なんとか理解できて課題を完成させることができました。
ありがとうございました
0554デフォルトの名無しさん2006/11/28(火) 20:19:53
>>551
#include<stdio.h>

const char *hyouka(int value){
  if(value>100)  return "unknown";
  if(value>=90)  return "S";
  if(value>=80)  return "A";
  if(value>=70)  return "B";
  if(value>=60)  return "C";
  return "D";
}

int main(int argc, char *argv[]){
  int i, value;

  for(i=1;i<argc;i++){
    sscanf(argv[i], "%d", &value);
    printf("%d教科目は%sです。\n", i, hyouka(value));
  }
  return 0;
}
0555デフォルトの名無しさん2006/11/28(火) 20:42:18
unknownカッコヨス
0556デフォルトの名無しさん2006/11/28(火) 21:11:11
>>426お願いできないでしょうか。行列に2次元配列が使われておらず、全く理解できないのです。
期限には間に合いませんがよろしくお願いします。
0557デフォルトの名無しさん2006/11/28(火) 21:50:49
>>538
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3049.txt
0558デフォルトの名無しさん2006/11/28(火) 22:10:28
>>548 ってさ。>>103と同じっぽくない?
0559デフォルトの名無しさん2006/11/28(火) 22:11:46
>>548
new()が使われてない場合はこれじゃだめかも。
#include <string>
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void putReverse(ifstream& infile)
{
string s;
try{
while(!infile.eof()){ getline(infile, s); cout << string(s.rbegin(), s.rend()) << endl;}
}
catch(bad_alloc){
cerr << "メモリ確保失敗";
infile.close();
abort(); //エラーコード返すとかじゃなく、お望み通り異常終了。
}
}
int main(int argc, char* argv[])
{
if(argc != 2){ cerr << "読み込むファイルを一つ指定してください"; return -1;}
ifstream inFile(argv[1]);
if(inFile.fail()){ cerr << "ファイルを開けません"; return -2;}
putReverse(inFile);
return 0;
}
0560デフォルトの名無しさん2006/11/28(火) 22:14:00
1.教授が問題を作る。
2.模範解答をTAに作るように命令。
3.TAがここで問題を丸投げ。
4.生徒が問題を受け取る。
5.生徒がここで問題を丸投げ。 ← いまここ
0561デフォルトの名無しさん2006/11/28(火) 22:18:47
>>560
全米が震撼した
0562デフォルトの名無しさん2006/11/28(火) 22:26:02
(((( ;゚Д゚)))ガクガクブルブル
0563デフォルトの名無しさん2006/11/28(火) 22:29:41
[1] 授業単元: 計算機
[2] 問題文(含コード&リンク):∫ e^x/x dx(x:1→3)の値を台形およびシンプソンの公式により求めよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11/30
[5] その他の制限: 等分数は2から倍々と増やしていき、積分値が変化しなくなるまで行うこと。

等分数を最初に設定して計算することは出来たのですが、
制限の>>等分数は2から倍々と増やしていき、積分値が変化しなくなるまで行うこと。
これのやり方が分かりません。
誰か分かる方がいらっしゃいましたらよろしくお願いします。
0564デフォルトの名無しさん2006/11/28(火) 22:33:59
>>563
なんでだよwww
>等分数を最初に設定して計算することは出来た
ここが一番の山じゃねーか
もう終わったようなもんだろwwwwwwwww

あとはforループで、2^iで分割して、
今の値-前の値の絶対値が十分小さかったら終了でいいじゃん
0565デフォルトの名無しさん2006/11/28(火) 22:34:38
>>558
そのふたつだけじゃなくて
>>42
も同じ課題だと思う
0566デフォルトの名無しさん2006/11/28(火) 22:53:25
>>554
質問者じゃないけど、こういうのもアリですかね?

const char* hyouka(int value)
{
switch (value / 10) {
case 10:
case 9:return "S";
case 8:return "A";
case 7:return "B";
case 6:return "C";
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:return "D";
default:return "unknown";

}

}
0567デフォルトの名無しさん2006/11/28(火) 22:59:02
>>565
>>42じゃなくて>>40じゃね?
0568デフォルトの名無しさん2006/11/28(火) 23:01:09
>>567
あ、
>>40だった。スマソ
0569デフォルトの名無しさん2006/11/28(火) 23:12:07
[1] 授業単元: プログラミングII
[2] 問題文(含コード&リンク):

出版社M社で自社のライトノベル・DVD購入者に対し懸賞を行うことになった。
応募券を切り取り、ハガキに貼ってを送ってきた人に対し

10人にオリジナル図書カードを
50人にオリジナルストラップを
100人にオリジナルステッカーをプレゼントすることになった。

公平を期すためにC言語で乱数を用い当選者を決定させたい。
ここで応募してくる人は過去の傾向からみて1000人以下であると考えられる。

※なおライトノベル、DVD両方の応募券がついている客は
DVDのみの応募券、ライトノベルのみの応募券がついているユーザーの2倍の当選確率である。

※なお、同一人物(同じ名前)での2重当選はありえない。(当選は1人1回である)

※またA君、B君、C君は前回の懸賞で特賞が当たっているため、今回応募があっても当選しない。

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

よろしくお願いいたします。
0570デフォルトの名無しさん2006/11/28(火) 23:14:05
>>569
問題文それだけ?
0571デフォルトの名無しさん2006/11/28(火) 23:15:17
>>570
提示された物は全てです
0572デフォルトの名無しさん2006/11/28(火) 23:15:52
>>569
入力するデータが欲しい
0573デフォルトの名無しさん2006/11/28(火) 23:15:59
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
y=sin(2x)×cos(x)について区間0≦x≦π/4での積分値を計算するプログラム
を作成せよ。
計算結果として、積分範囲・刻み数・積分結果を出力させること。
刻み数は
#define n 20
とする。
πはM_PIとする。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日の朝10時00分までです。
[5] その他の制限: 特にないです。

よろしくお願い致します。
0574デフォルトの名無しさん2006/11/28(火) 23:16:32
>>569
問題文そのまま?
なんか色々省略してない?
0575デフォルトの名無しさん2006/11/28(火) 23:23:35
>>572
A君B君C君をはじけばいいらしいです。
D君以降は適当にDVDのみ、ノベルのみ、両方適当でいいっていってました

>>574
とくに省略はしていません
0576デフォルトの名無しさん2006/11/28(火) 23:24:02
>>571
じゃぁ先生にこんな問題文じゃ解けないって突き返せ
0577デフォルトの名無しさん2006/11/28(火) 23:24:43
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
以下は入力された整数値の大小に基づいて2分木を生成するものである。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3050.txt
すべてのノードの左の子と右の子を交換する関数void ReverseTree(struct BTREE *ptr)
を再帰呼び出しによって実現せよ。この手続き後にTraverseTreeを実行すると数値は降順に表示されるはずである。
また、指定データと同じ値のデータを持つノードの個数を出力するint CountData(struct BTREE *ptr,int searchdata)を
再帰呼び出しによって完成させよ。
Reverse Tree

[3] 環境
 [3.1] OS: Windows Xp
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日夜
[5] その他の制限:


お願いします!
0578デフォルトの名無しさん2006/11/28(火) 23:29:32
>>573
台形公式でよければ >>212 を少し変更すればおk
return 4/(1+x*x);
↓
return sin(2*x)*cos(x);

printf("%f\n", f_integral(0, 1, 1000));
↓
printf("%f<x<%f %d %f\n", 0., M_PI/4, n, f_integral(0., M_PI/4, n));
0579デフォルトの名無しさん2006/11/28(火) 23:48:39
>>577
void ReverseTree(struct BTREE *ptr) {
    struct BTREE *temp;
    if (ptr == NULL) return;
    ReverseTree(ptr->left);
    ReverseTree(ptr->right);
    temp = ptr->left;
    ptr->left = ptr->right;
    ptr->right = temp;
    return;
}
int CountData(struct BTREE *ptr, int searchdata) {
    if (ptr == NULL) return 0;
    return CountData(ptr->left, searchdata) + CountData(ptr->right, searchdata) + (ptr->data == searchdata);
}
0580デフォルトの名無しさん2006/11/28(火) 23:51:31
>>564
ありがとうございます。
for文の中を前の値==今の値とかやって悩んでましたw
0581デフォルトの名無しさん2006/11/29(水) 00:00:30
>>573
#include <math.h>
#include <stdio.h>
#define n 20
double f(double x) {
    return sin(2 * x) * cos(x);
}
int main(void) {
    int i;
    double a = 0., b = M_PI / 4, h = (b - a) / n, s = 0.;
    for (i = 1; i < n; ++i) s += f(a + i * h);
    s *= 2;
    s += f(0) + f(n);
    s *= h / 2;
    printf("%f", s);
    return 0;
}
0582デフォルトの名無しさん2006/11/29(水) 00:05:04
>>569
応募者が賞品の数より少ない場合、
1.A君、B君、C君でも当選する?
2.賞品の当選の優先順位は決まってる?

ちなみに全員ハズレにするのもアリ?
0583デフォルトの名無しさん2006/11/29(水) 00:09:14
>>582
お前、ふだんからいい仕事してるんだろうな
0584デフォルトの名無しさん2006/11/29(水) 00:11:56
>>548
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <string>
int main(int argc, char* argv[]) {
    if (argc != 2) return 1;
    std::ifstream ifs(argv[1]);
    std::string line;
    while (std::getline(ifs, line)) {
        std::copy(line.rbegin(), line.rend(), std::ostream_iterator<char>(std::cout));
        std::cout << std::endl;
    }
    return 0;
}
↑と↓を実行して、求める結果が得られた方を提出せよ。
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <list>
#include <string>
int main(int argc, char* argv[]) {
    if (argc != 2) return 1;
    std::ifstream ifs(argv[1]);
    std::string line;
    std::list<std::string> list;
    while (std::getline(ifs, line)) list.push_back(line);
    std::copy(list.rbegin(), list.rend(), std::ostream_iterator<std::string>(std::cout, "\n"));
    return 0;
}
05855732006/11/29(水) 00:22:07
>>578
ありがとうございます。
講義で台形公式の話をしていたので、台形が公式で十分というか台形公式の
方が良いです。
ただ、エラーが出てコンパイルできません。

>>581
ありがとうございます。
しかし、値が1つしか表示されません。
0586デフォルトの名無しさん2006/11/29(水) 00:25:04
>>585
>>1も読めないのか?わざとなのか?
0587デフォルトの名無しさん2006/11/29(水) 00:27:10
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): int型で有効長lenの配列arrに対し、要素を巡回的に後にずらす関数 arr_cycle(arr, len) を作成する。
例えば、 arr[] = {0, 1, 2, 3} のとき、この関数によって arr[] = {3, 0, 1, 2} と更新される。最後の要素を先頭に挿入すればよい。
[3] 環境
 [3.1] OS: windows XP
 [3.2] コンパイラ名とバージョン:bcc32
 [3.3] 言語: C言語
[4] 期限: 明日昼12時
[5] その他の制限: 授業で配列に入ったばかり。
■ このスレッドは過去ログ倉庫に格納されています