C/C++の宿題やらせてください。9代目

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:03/06/30 23:28
いや、でもまだまだ知りたいことがあるんで。
中学生なんですけど、僕もAPIについて
知りたいです。でも、猫なんとかってのはまだ難しすぎました。
基本的なことからやりたいので、超初歩的なことから書いてある
サイトを知らないでしょうか?
>>953
CやC++は理解したのかな?ぼうや。
955953:03/06/30 23:43
一通り、Cは理解しました。
C++もAPIを使う以前に必須ですか?
APIはWIN32APIと脳内変換すべきか・・・
957953:03/06/30 23:49
API=WIN32APIでいいんですか?
CでWinアプリを作るっていうのも
要するにWIN32APIを使うってことなんですかね
>>894
コードを短くするのに悩みそうなのでアイデアだけ。
以下では3次元ベクトル u, v の内積と外積を i(u,v), o(u,v) で表す。
またPを任意の点とする。四点A,B,C,Dに対し、
a0,a1,a2,a3,b0,b1,b2,b3 をそれぞれベクトル
AP,AB,AC,AD,BP,BC,BD,BA とし、
s1 = o(a2,a3), s2 = o(a3,a1), s3 = o(a1,a2), t1 = o(b2,b3)
とするとき、四面体ABCDの体積を vol は vol = fabs(i(s1,a1))/6 で求まる。
そして点Pが四面体ABCDの内部にあることは次と必要十分。
vol != 0 &&
i(s1,a1)*i(s1,a0) >= 0 &&
i(s2,a2)*i(s2,a0) >= 0 &&
i(s3,a3)*i(s3,a0) >= 0 &&
i(t1,b1)*i(s0,b0) >= 0

なぜなら、s1 = o(a2,a3) は△ACDを含む平面の法線ベクトルなので
この平面に関して点Pと点Bが同じ側にある場合に限り、
内積 i(s1,a1) と i(s1,a0) の正負は一致する、
つまり i(s1,a1)*i(s1,a0) >= 0 となる。ただし、等号は
vol == 0 の場合か△ACDを含む平面上に点Pが存在する場合に成立。
同様の検査が4つの面について合格し、なおかつ体積 vol が 0 でない場合、
そしてその場合に限り、点Pは四面体ABCDの内部にあるといえる。
>>957
C&API直打ちでプログラムを作るのは骨が折れるぞ。
そこそこのプログラムを作りたいならC++とオブジェクト指向に
関する理解は必須。
初学者の変な言葉づかいを容認して話を進めようとするのはあまり感心しない
961デフォルトの名無しさん:03/07/01 04:02
すみません、超初心者なので行き詰まってます・・・
10桁までの整数を読み込み1桁ずつchar型配列ketaに格納するには
どうすれば良いですか?
例えば3254と入力されたら
keta[0]=3,keta[1]=2,keta[2]=5,keta[3]=4という具合に。
スキャンを使ってもうまくいきません。
どうかお願いします。


>>961
char keta[1024];
int n;

scanf("%d",&n);
sprintf(keta,"%d",n);

こうやる

つーか単に
char keta[1024];
fgets(keta,sizeof keta,stdin);
でいいと思うが。10桁以内か、数字列かどうかの判断はその後するということで。
963C++:03/07/01 04:58
↓よろしくお願いします。

複数個の整数データを読み込むものとする.
その和が 107 を超えるか,または,読み込んだデータの個数が 8 個になった時点で
データの読み込みを中止し,読み込んだデータの和と個数を出力するプログラムを書け.
結果は,和と個数を1つ以上のスペースで区切って出力すること.
>>961
あと最後に
for(i=0 ;i<10 ;i++)
keta[i] -= '0';
#include <iostream>
int main()
{
int const max_num = 8;
int const end_threshold = 107;

int num = 0;
int sum = 0;
while( sum <= end_threshold && num < max_num )
{
int n;
if( std::cin >> n )
{
sum += n;
++num;
}
else
{
return 1;
}
}
std::cout << sum << ' ' << num << std::endl;
return 0;
}
>>965
どうもありがとう。
>>961
>>962
10桁以内ではintが64bitでもないと
968_:03/07/01 05:48
char keta[11];
int i;
fgets(keta,11,stdin);
for( i=0; keta[i] && i<11; i++ )
keta[i] -= '0';
970_:03/07/01 07:40
971_:03/07/01 09:09
972デフォルトの名無しさん:03/07/01 16:38
すみません、教えていただけませんか?

a0 = 0, a1=1, an+2 = an+1 + an (n は 0 以上)
で定まる数列 an を求める関数 int fibonacci(int n) を、
再帰を使って作成しなさい。
動作確認をするために、20項まで出力する main 関数も作成しなさい。
この数列は、Fibonacci(フィボナッチ)数列と呼ばれ、
a2 = 1, a3 = 2, a4 = 3, a5 = 5, a6 = 8, a7 = 13, ・・・となる。


973ガイシュツ:03/07/01 16:56
#include <stdio.h>
int fibonacci(int n) {
 if (n == 0) return 0;
 else if (n == 1) return 1;
 else return fibonacci(n - 1) + fibonacci(n - 2);
}
int main(void) {
 printf("%d\n", fibonacci(20));
 return 0;
}
974972:03/07/01 17:05
>>973ありがとうございました!
本当に助かりました
>>973
きっつい再帰やなぁ。
すみません。下のような式の場合、a はどのような値になるのでしょうか?

a = x && y;
xとyに拠る
978デフォルトの名無しさん:03/07/01 22:08
>>977
そんな977が好き。
979デフォルトの名無しさん:03/07/01 22:11
指定されたデータを削除する配列のプログラムはどうしたらいいんですか?
削除して空いた場所に、最後のデータを移動するのと、
後のデータを1個ずつずらすものをつくりたいです。配列は順序よく並んでいません。
デリートを使ってお願いします
>>976
aの型にもよる
さてエスパーに電話するか
俺のセブンセンシズによると
>>979
配列を格納したリストがつくりたいのだと小宇宙が語っている
983デフォルトの名無しさん:03/07/01 22:59
一辺10の立方体の内部に整数値を座標にした点を4つランダムに
生成し、その4点を頂点にした四面体の体積および四面体が
立方体の中心を含むか含まないかを表示するプログラムを作成しなさい。

ヒント
点Pが四面体ABCDの内部にあるかどうかは、四面体ABCDの各面とPにより
形成される4つの四面体PABC,PBCD,PCBD,PDABの体積の和が、
の四面体の体積よりも大きい場合にはPは四面体の外部にある。

お願いします。
984デフォルトの名無しさん:03/07/01 23:02
3次元空間内の4点を頂点とする四面体の体積を求める関数
3次元ベクトルを扱う関数の定義ファイル "vector.h" を使ってお願いします。

お願いします
>>984
このスレの住人には無理
宇治社中で聞くとか
うむ俺たちには vector.h は無理だな。
vector なら使えるが。
宇治社中って何ですか?
>987
vectorでお願いします
vector は使えるが、おそらく vector.h の代わりにはならないんだなこれが。
そうなんですか?全く何のことやら分からないです
↓STLマンセーなヤシ
vector_3d<T>

無視された958に黙祷。。。
995983:03/07/01 23:19
>>994
おお凄い!
次スレまだ〜?
997983:03/07/01 23:20
しかし、意味不明
>>997
日本語は正しくな。
「しかし漏れはバカだから理解できません」
だろ?
999デフォルトの名無しさん:03/07/01 23:23
>>996
依頼してくる
1000デフォルトの名無しさん:03/07/01 23:23
1000げとー
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。