C/C++の宿題を片付けます 107代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
【前スレ】
C/C++の宿題を片付けます 106代目
http://pc11.2ch.net/test/read.cgi/tech/1209810861/
0153121
2008/05/19(月) 20:30:14たぶん答えとしては意味合いが違ってるだろうけどはっとく
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6611.txt
0154側近中の側近 ◆0351148456
2008/05/19(月) 21:18:10(っ´▽`)っ
小行列式に分割するってのはどうなの?
再帰を使えばできるような気がするよ
0155デフォルトの名無しさん
2008/05/19(月) 21:26:23前スレで解答出てるんならそのリンクも張って具体的にどこがどう分からないのかも書けよ
あと、「多倍長」でググレ
0156デフォルトの名無しさん
2008/05/19(月) 22:05:52期待してる
0157側近中の側近 ◆0351148456
2008/05/19(月) 22:06:37(っ´▽`)っ
がんばってる☆
0158デフォルトの名無しさん
2008/05/19(月) 22:07:58[2] 文字列sを先頭から順に1行に1文字ずつ表示する関数putvを作成せよ。
void putv(const char*s)
[3]
[3.1]Windows XP
[3.3]C++
[4] 期限 5月20日の午後3時まで
[5] 特になし
よろしくお願いします
0159デフォルトの名無しさん
2008/05/19(月) 22:21:12void putv(const char*s)
{
for(int i = 0 ; s[i] != '\0' ; i++)
{
printf("%c\n",s[i]);
}
}
0160デフォルトの名無しさん
2008/05/19(月) 22:22:26#include <stdio.h>
#include <string.h>
void putv(const char*s)
{
size_t len = strlen(s);
size_t i;
for(i = 0; i < len; i++){
putchar(s[i]);
putchar('\n');
}
}
0161デフォルトの名無しさん
2008/05/19(月) 22:36:01強烈に難しいです…できた人は神!
内容:
[1] 授業単元: プログラミング概論第二
[2] 問題文(含コード&リンク):
ANNという最近傍探索のアルゴリズムがある。
このアルゴリズムは以下のステップを用いる
1)n次元k個のデータ群からkd木を作成する
2)探したいあるn次元のクエリから、kd木に格納されている点を探す
3)クエリと探し出された点との距離をdとする
4)距離dの超球を書く
5)「超球に触れているすべてのkd木で作成されたbox」内にあるすべての点をリストアップする
6)リストアップされた点を元に最も距離の近い点を探す。
というものです。
1〜4までは作りましたが
5)がよくわかりません…解決できる方どうか助けてください!
[3.1] OS:windows
[3.2] visual studio 2007
[3.3] 言語: C
[4] 期限: 2008年5月20日まで]
[5] なし
0162161
2008/05/19(月) 22:40:18(nlogn)の計算量を極力スポイルしないよう、(5)のステップに注意し作成せよ
だそうです。
0163デフォルトの名無しさん
2008/05/19(月) 22:54:150164側近中の側近 ◆0351148456
2008/05/19(月) 22:57:25#include <stdio.h>
#include <stdlib.h>
#define MATRIX_FACT(row, col) a[(row) * rowLength + (col)]
#define PART_MATRIX_FACT(row, col) partMatrix[(row) * (rowLength - 1) + (col)]
double getDeterminant(double *a, int rowLength, int colLength);
int main(void){
double a[4][4] = {{1, 2, 3, 0}, {4, 5, 6, 0}, {7, 8, 9, 0}, {2, 4, 6, 8}};
//double a[4][4] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}};
int rowLength = 4;
int colLength = 4;
//double a[3][3] = {{0, -2, 0}, {-1, 3, 1}, {4, 2, 1}};
//int rowLength = 3;
//int colLength = 3;
double determinant = (double)0;
determinant = getDeterminant((double *)a, rowLength, colLength);
printf("determinant=%f\n", determinant);
return 0;
}
(続く)
0165側近中の側近 ◆0351148456
2008/05/19(月) 22:58:08double getDeterminant(double *a, int rowLength, int colLength)
{
double determinant = (double)0;
double minorDeterminant = (double)0;
double *partMatrix = NULL;
int i = 0;
int j = 0;
int k = 0;
if(rowLength < 2 || colLength < 2 || rowLength != colLength){
goto catch;
}
if(rowLength == 2){
determinant = MATRIX_FACT(0, 0) * MATRIX_FACT(1, 1) - MATRIX_FACT(0, 1) * MATRIX_FACT(1, 0);
}
else{
for(i = 0; i < rowLength; i++){
partMatrix = (double *)malloc(sizeof(a[0]) * (rowLength - 1) * (colLength - 1));
for(j = 0; j < i; j++){
for(k = 0; k < colLength - 1; k++){
PART_MATRIX_FACT(j, k) = MATRIX_FACT(j, k + 1);
}
}
for(j = i; j < rowLength - 1; j++){
for(k = 0; k < colLength - 1; k++){
PART_MATRIX_FACT(j, k) = MATRIX_FACT(j + 1, k + 1);
}
}
(続く)
0166側近中の側近 ◆0351148456
2008/05/19(月) 22:58:48printf("partMatrix={");
for(j = 0; j < rowLength - 1; j++){
printf("{");
for(k = 0; k < colLength - 1; k++){
printf("%f,", PART_MATRIX_FACT(j, k));
}
printf("\b},");
}
printf("\b}\n");
minorDeterminant = getDeterminant(partMatrix, rowLength - 1, colLength - 1);
printf("minorDeterminant=%f\n", minorDeterminant);
free(partMatrix);
determinant += minorDeterminant * (i % 2 == 0 ? 1 : -1) * MATRIX_FACT(i, 0);
}
}
catch:
return determinant;
}
0168デフォルトの名無しさん
2008/05/19(月) 23:29:040169側近中の側近 ◆0351148456
2008/05/19(月) 23:35:01|▽`)っ ニヤニヤ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6613.txt
0170デフォルトの名無しさん
2008/05/19(月) 23:35:03不必要にスレが流れるのを考慮して、マナーとして使うべきだろ
0171側近中の側近 ◆0351148456
2008/05/19(月) 23:36:07(っ´ω`)っ いきててごめんね
0172デフォルトの名無しさん
2008/05/20(火) 00:04:07[2] 問題文(含コード&リンク):
作成した「画像表示」のプログラムを、同じ画像を横に並べて
表示するように修正せよ(「画像表示」のボタンに対応するプログラムを修正)。
作成したプログラムはこちらです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6615.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: visual studio 6.0
[3.3] 言語:C++
[4] 期限:20日正午まで
[5] その他の制限:
「画像表示」のボタンに対応するプログラムは下の通りです。
CWnd* myPICT=GetDlgItem(IDC_PICT);
CClientDC myDC(myPICT);
CRect myRECT;
my PICT->GetClientRect(myRECT);
int x,y;
for(y=0;y<height;y=y+1)
for(x=0;x<width;x=x;1)
myDC.SetPixel(x,y,RGB(r[y][x],g[y][x],b[y][x]));
よろしくお願いします。
0173デフォルトの名無しさん
2008/05/20(火) 00:04:21質問です。
今、最近傍探索を調べているのですが、意味がよくわからないところがありますので、教えていただけますでしょうか。
1) k次元(ユークリッド)空間R^k 内にデータが n個散らばっている。
2) ここに、点P がある。
3) 点P にもっとも「近い」データを探し出したい。
というのが最近傍探索で、問題のアルゴリズムは、
4) , 3) でもっとも近いデータを探すのに「n 個のデータすべてについて距離を求め、一番距離が小さいものを求める」のは計算量が多くて大変!
5) そこで、とりあえず適当なデータQ と P との距離dを求め、
6) 辺の長さが 2d, 中心がP, 辺は座標軸に平行である k次元立方体 S を考え、
7) 領域探索アルゴリズムにて S 内にあるデータをすべて列挙し、
8) S 内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
ということでしょうか。
そうすると、5) の Q をとりあえず探す、というのが、非常に大事で、まかりまちがって P から遠い Q を選んでしまうと計算量を少なくできないですが、Q の選び方はどうすればよろしいのでしょうか?
以上の解釈でいいのでしょうか。
0174デフォルトの名無しさん
2008/05/20(火) 00:38:41int x,y;
for(y=0;y<height;y=y+1)
for(x=0;x<width;x=x;1)
myDC.SetPixel(x,y,RGB(r[y][x],g[y][x],b[y][x]));
↓
int x,y,x2;
for(y=0,x2=0;y<height;y=y+1)
for(int i=0;i<2;i++)
for(x=0;x<width;x=x+1,x2++)
myDC.SetPixel(x2,y,RGB(r[y][x],g[y][x],b[y][x]));
0175デフォルトの名無しさん
2008/05/20(火) 01:13:11#include <stdio.h>
#define MAX 11
void putv(const char *s) {
do { putchar(*s++); printf("\n");
}while( *s != NULL && *s!='\n');
}
int main(void) {
char str[MAX];
fgets(str,MAX,stdin);
putv(str);
return 0;
}
0176151 ◆rGsyzf.Kp2
2008/05/20(火) 01:58:21やってくれるかたがいればおねがいします。
0177デフォルトの名無しさん
2008/05/20(火) 02:12:50ありがとうございました。
言い忘れたんですけど画像と画像の間を少し空けて表示させたいんですけど
どうなるでしょうか?
0178デフォルトの名無しさん
2008/05/20(火) 02:37:37#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
void putv( const char* );
int main()
{
char s[] = "teststring";
putv( s );
}
void putv( const char* s )
{
string str( s );
copy( str.begin(), str.end(), ostream_iterator< char >( cout, "\n" ) );
}
どうすか、この華麗なるSTL。w
0179デフォルトの名無しさん
2008/05/20(火) 02:49:070180デフォルトの名無しさん
2008/05/20(火) 02:59:130181デフォルトの名無しさん
2008/05/20(火) 03:23:570182デフォルトの名無しさん
2008/05/20(火) 03:40:330183デフォルトの名無しさん
2008/05/20(火) 03:45:320184デフォルトの名無しさん
2008/05/20(火) 03:48:490185デフォルトの名無しさん
2008/05/20(火) 04:00:19たとえばこの板でもおすすめの入門書
Accelareted C++ にもこういう構文が普通にでてくる。
「何やってんだかわかりにくい」ってのは STL の勉強不足だろ単に。
0186デフォルトの名無しさん
2008/05/20(火) 04:01:20面倒な、処理時間が掛かるようなことをして何がしたいんだと?
0187デフォルトの名無しさん
2008/05/20(火) 04:06:56しかし課題の趣旨にはあわんな。
0188デフォルトの名無しさん
2008/05/20(火) 04:10:32Effective C++くらい読もうよ。
0189デフォルトの名無しさん
2008/05/20(火) 04:17:28do { printf("%c\n",*s++);}while( *s != NULL); }
と比較したら、倍近く差が出るぞ?
0190デフォルトの名無しさん
2008/05/20(火) 04:21:52課題がCではなくあえてC++だってところがミソだな。
Cライクなコードは書くなってことだから
型安全性と拡張性を持たないライブラリ関数は
いくら早くてもNGだろう。
ここまで */
0191デフォルトの名無しさん
2008/05/20(火) 04:25:310192デフォルトの名無しさん
2008/05/20(火) 04:53:43使いどころをわきまえてない。
0193デフォルトの名無しさん
2008/05/20(火) 04:55:38> いくら早くても
日本語でおk。C++だろうとwhileは特定の言語のものじゃないんで、あしからず。
あと、C++って結局Cの拡張。何か別物と勘違いする奴って笑われるぞw
0194側近中の側近 ◆0351148456
2008/05/20(火) 06:40:30>>169はどう?
0195デフォルトの名無しさん
2008/05/20(火) 06:54:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6617.txt
0196デフォルトの名無しさん
2008/05/20(火) 07:01:21ちゃんとは見ていませんが、Cプログラムとしては
なかなか良い作品ではないかと思いまつ。
だけど一般次数の行列式の計算なんてC言語のプログラミング実習
の問題の適切な範疇を遥かに超えてしまった課題じゃないかと思います。
C言語の世界はシステム記述が中心で一般論を非常に重視する世界だと思
います。
数値計算は数学の教科書の一般論がなかなか適用できず、問題に応じて
適切な方法を選択(考案)しなければいけない世界です。相当、系統の
違う専門分野だと思います。(一般論は欲しいのですが...)
0197デフォルトの名無しさん
2008/05/20(火) 07:29:36これは・・・w
0198139
2008/05/20(火) 07:43:59早速ありがとうございます。実行して出力した結果がどういうものか分からないんですが、
partMatrixとminorDeterminateがなにを表しているのか教えてください
あとプログラムの使い方も教えてほしいです。
たとえば3x3の行列式
4x+6y+2z=4000,2x+8y+6z=5000,6x+4y+4Z=4200
の場合と4x4の行列式
2w+1x+4y+3z=5,3w+2x+5y+0z=0,4w+3x+2y+1z=3,5w+0x+3y+2z=0
の場合の解を求めるには
このプログラムをどのようにすればいいのでしょうか?
0199デフォルトの名無しさん
2008/05/20(火) 07:51:46whileの話じゃない。詳しくはEffective C++参照。
0200173
2008/05/20(火) 07:56:47時間切れです。残念です。
こっそり仕事中にやれるのならやりますので(苦笑)、16:00 以降 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm をチェックしてください。
k-d tree の多次元化ははじめてで、おもしろいのではありますが‥‥‥、こういうおもしろい問題は、もっとはやく投げてほしかったですね。
まだエラーがとれないものを、http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6618.txt においておきます。
眠い。
0201デフォルトの名無しさん
2008/05/20(火) 07:58:16<stdio.h>が<cstdio>になり、<iostream>を使うよう推奨されても
<stdio.h>を使う人間は使い続ける。
0202デフォルトの名無しさん
2008/05/20(火) 08:03:41流儀
変数の命名の方法とか、所有権とか...
デフォを決めとかないと、コードが大きくなってしまった
場合に急ぎの作業が入ったらキツクなるから
流儀が設定されることもある。
必要悪
0203デフォルトの名無しさん
2008/05/20(火) 08:11:43C++プログラムで<stdio.h>を使う人は10年以上前にC++を習得した人。
つまりおっさんPG。
0204デフォルトの名無しさん
2008/05/20(火) 08:14:08Cに関しても10年以上前に習得した人ってこと。
どう考えてもおっさんPG。
0205デフォルトの名無しさん
2008/05/20(火) 08:19:020206デフォルトの名無しさん
2008/05/20(火) 08:22:50「アジャイルプラクティス-達人プログラマに学ぶ現場開発者の習慣」より
0207デフォルトの名無しさん
2008/05/20(火) 08:25:28C プログラムとしての指摘:
> double a[4][4] = ...
> getDeterminant((double)*a, ...)
これは多くの処理系で動くけれど、
ANSI Cの規格には従っていないことに注意。
アルゴリズムとしての指摘:
余因子展開で行列式を計算するのは O(n!) かかるので、非常に遅い。
ガウスの消去法などを用いると O(n^3) で計算できる。
0208デフォルトの名無しさん
2008/05/20(火) 08:26:54見出しだけだと誤解を招くよ
0209デフォルトの名無しさん
2008/05/20(火) 08:29:37「行列式 (determinant)」という言葉を調べてこい。
4x+6y+2z=4000,2x+8y+6z=5000,6x+4y+4Z=4200 みたいなのは
行列式とは言わない。せいぜい 3×3連立方程式。
0210デフォルトの名無しさん
2008/05/20(火) 08:33:50ウェブも本もcstdioはなかなかないのでは
0211デフォルトの名無しさん
2008/05/20(火) 08:36:060212デフォルトの名無しさん
2008/05/20(火) 08:41:35現代において、自分が知っていることだけがすべてだと思う
思い上がりの方がバカを通り越した井の中の蛙だろ
0213デフォルトの名無しさん
2008/05/20(火) 08:46:53光に関しても関わってくる話ではあるが、光速度を知らなかったのだよ、
アインシュタインは。何が重要か?必要に応じて必要なものを
取り込む頭がない奴は、現代のような無駄な生活をしていても
その無駄さえも 必要 という勘違いを始めるから困る。
または、無駄を省かない、省けない。誰かに指摘されるまでそうしている。
0214デフォルトの名無しさん
2008/05/20(火) 08:48:14<cstdio>よりも<iostream>を使うことが推奨されているから
<cstdio>を使っているC++の本は少ないだろうけど
<stdio.h>を使っているC++の本は(多分もう)一冊もないだろうと思う。
古い本でも版を重ねると直しているくらいだし。
少なくともC++の宿題に今<stdio.h>を使ったら
歳の行った人に答えを聞きましたってばれちゃう。
学校でもC++の授業で<stdio.h>は教えないだろうから。
0215デフォルトの名無しさん
2008/05/20(火) 08:54:10それは間違いだ。
アインシュタインの相対性理論は、光速度一定と言う仮定の上に成り立っている。
と言うことは、実際の速度がどれくらいかは兎も角光速度を知らないということにはならないな。
処で、馬鹿といわれて過剰に反応するのは何故だろう。余程、自覚があるのだろうか。
0216デフォルトの名無しさん
2008/05/20(火) 08:59:590217デフォルトの名無しさん
2008/05/20(火) 09:15:16チームメンバーから袋だろ。w
名前空間を汚染するなって。
0218デフォルトの名無しさん
2008/05/20(火) 09:25:06その流儀に宗教が紛れ込みやすい。
というか完全に除去するのは不可能。
宗教は流儀に強い信頼性を与えるから
だろうけど。
修羅場で無くなった状態で、流儀が伝統
になってしまうとそこに潜む宗教という強い
力が全体を緩慢かつ堅固に拘束していくと
やっかい。
0219デフォルトの名無しさん
2008/05/20(火) 09:25:39脱線すんな
0220デフォルトの名無しさん
2008/05/20(火) 09:54:27C++標準にSTLが組み込まれたのは同時期だから
いまだに<stdio.h>を使う人が
STLを使ったコードを理解できなくても不思議はない。
0221デフォルトの名無しさん
2008/05/20(火) 10:02:1610年以上前の規格を使い続けるやつなんて存在価値なし。
0222デフォルトの名無しさん
2008/05/20(火) 10:02:32さすがに知らないとか理解できないとか、うざい。
あのコードが 無駄 だと気づけw
0223デフォルトの名無しさん
2008/05/20(火) 10:08:55> どうすか、この華麗なるSTL。w
こいつだろ、さっきっから理解できない奴がいる、自分は知ってるみたいな
華麗とか、マジでそれ 糞 だからw
0224デフォルトの名無しさん
2008/05/20(火) 10:14:22おまえら反応しすぎ。どこまでコンプレックスなんだ。
0225デフォルトの名無しさん
2008/05/20(火) 10:17:31ふぅ〜ん、もう10年以上前ってレベルじゃねーぞっ。んで、知っているからって何?
知らない奴を見つけて楽しんでいるわけ?ケツの穴が小せぇなぁ。性格悪ぅ〜〜。
知っている奴もいるが、何そんなに必死に知らない奴を探してんの?って思われるだけだぞw
0226デフォルトの名無しさん
2008/05/20(火) 10:19:58IOマニピュレータ面倒すぎ
0227デフォルトの名無しさん
2008/05/20(火) 10:21:44過去に(模擬)宿題として出てたような
0228デフォルトの名無しさん
2008/05/20(火) 10:25:49いつものやつっぽいからそっとしておいてやれ
0229デフォルトの名無しさん
2008/05/20(火) 10:26:050230デフォルトの名無しさん
2008/05/20(火) 12:15:45うちはC++の講義すら無い件。
Cの講義のみでひたすら<stdio.h>
0231デフォルトの名無しさん
2008/05/20(火) 12:46:13[2] 体重と身長の値から算出される指数の1つに
Body Mass Index(BMI)がある。
体重[kg]を身長[m]の2乗で割って計算し,
標準値は22.0とされている。
【問題】
キーボードから身長と体重を入力すると,
BMIが画面に出力されるプログラムを作成しなさい。
[3] 環境
[3.1]Windows
[3.2]VC?(よくわかりません)
[3.3]C++
[4]5月27日 17時まで
[5]特にありません。
よろしくお願いします!
0232デフォルトの名無しさん
2008/05/20(火) 13:19:11// 「キーボードから入力」と「画面に出力」が標準入出力のことじゃないならしらね。
#include <iostream>
int main()
{
int height;
int weight;
std::cin >> height >> weight;
std::cout << weight / (height / 100.0 * height / 100.0);
return 0;
}
0233161
2008/05/20(火) 14:45:22えっと、ここにc++版があります。
http://www.cs.umd.edu/~mount/ANN/
力不足なことに、私はc++を全く理解することができません。理解は時間があればできそうですが、時間が足りません(汗
>今、最近傍探索を調べているのですが、意味がよくわからないところがありますので、教えていただけますでしょうか。
>1) k次元(ユークリッド)空間R^k 内にデータが n個散らばっている。
>2) ここに、点P がある。
>3) 点P にもっとも「近い」データを探し出したい。
>というのが最近傍探索で、問題のアルゴリズムは、
>4) , 3) でもっとも近いデータを探すのに「n 個のデータすべてについて距離を求め、一番距離が小さいものを求める」のは計算量が多くて大変!
>5) そこで、とりあえず適当なデータQ と P との距離dを求め、
>6) 辺の長さが 2d, 中心がP, 辺は座標軸に平行である k次元立方体 S を考え、
>7) 領域探索アルゴリズムにて S 内にあるデータをすべて列挙し、
>8) S 内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
>ということでしょうか。
最近傍探索の考えはあっています。
ですが
5)まずkd木を探索して、点Pがどの立方体に所属するかどうかをさがし、その立方体の中に入っている点Q と P との距離dを求め超球を書く
6)超球に接している立方体、超球の中にある立方体をすべてリストアップする
7) 領域探索アルゴリズムにて 立方体群内にあるデータをすべて列挙し、
8) 立方体群内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
のうち領域探索アルゴリズムがわかりません。
どのようなアルゴリズムを組めば計算量が少なくて済むのか知恵を御借りしたいと考えて質問させていただきました。
0234デフォルトの名無しさん
2008/05/20(火) 14:47:52[2] 以下の処理を順に行うプログラムを作成しなさい。
>232 ありがとうございました!
まだ問題があったのでまたよろしくお願いします!
1. キーボードから整数を入力する。
2. 入力された整数が3の倍数のとき,
画面に「3の倍数です」と表示する。
[3] 環境
[3.1]Windows
[3.2]VC
[3.3]C++
[4]5月27日 17時まで
[5]なし。
0235デフォルトの名無しさん
2008/05/20(火) 14:55:48if ( 入力 % 3 == 0 )
{
出力 3の倍数です
}
>>232 の内容と組み合わせて作りな
0236c言語素人 ◆K0sCe6ES.U
2008/05/20(火) 16:05:08[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
各自で、カラー自然画像(出来れば画像中のオブジェクトが豊かな物)をみつけ、
kmeansによって画像中の要素を分類せよ。さらに、分類の数を変えながら、変化を観察せよ。(原文のまま)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限: 2008年5月23日 13:00まで
[5] その他の制限: 制限は特にありません。
ppmフォーマットの画像を読み込んで分類する(クラスター分析?)プログラムと言われたのですが、さっぱりわからないです・・・orz
どうかみなさんご協力おねがいしますm(_ _)m
0237161
2008/05/20(火) 16:05:14ちなみに、233で書いたやつがANNという手法です。
ちなみに
>4) , 3) でもっとも近いデータを探すのに「n 個のデータすべてについて距離を求め、一番距離が小さいものを求める」のは計算量が多くて大変!
>5) そこで、とりあえず適当なデータQ と P との距離dを求め、
>6) 辺の長さが 2d, 中心がP, 辺は座標軸に平行である k次元立方体 S を考え、
>7) 領域探索アルゴリズムにて S 内にあるデータをすべて列挙し、
>8) S 内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
にあるように、超球の中にある点すべてについて探索するというのでは、結局全点について距離を比較しないといけなくなるので、
結局n^2の話になってしまいます。
kd木のnlognをスポイルしたくないというのはここに絡んできます。
ANNのこの手法が理解できればいいのですが…
ちなみに期限が延びましてあと2日になりました。
最悪223に書いたサイトからソース引っ張ってきてcで書いた私のソースとc++で書かれているソースをドッキングして性能を確かめることを考えていますが…
0238デフォルトの名無しさん
2008/05/20(火) 17:45:01このtxtに追加して提出するように言われました。
助けてくれる方お願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6619.txt
0239デフォルトの名無しさん
2008/05/20(火) 17:54:20何その頭の悪そうな日本語もまともに書けていない問題。
おまけに、C++でお願いされる内容がC言語理解度確認って何さ。
挙句の果てに、「文字列変数」ってstd::stringじゃないのかよ。
0240デフォルトの名無しさん
2008/05/20(火) 17:55:250241デフォルトの名無しさん
2008/05/20(火) 17:59:180242デフォルトの名無しさん
2008/05/20(火) 18:23:060243デフォルトの名無しさん
2008/05/20(火) 19:16:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6621.c
これで間違いなく優だぜb
0244デフォルトの名無しさん
2008/05/20(火) 19:21:41you 要修正
0245デフォルトの名無しさん
2008/05/20(火) 19:36:23問10の回答って再起呼び出し? LISP?
0246デフォルトの名無しさん
2008/05/20(火) 19:37:08[2] 問題文int型変数x,yをキーボードから値を入力し、その大小を判定する関数funcを作成せよ
[3] 環境
[3.1] OS: xp
[3.2] コンパイラ名とバージョン: VC 6.0だと思います
[3.3] 言語: C
[4] 期限:今週中
[5] その他の制限: ポインタを使用する
お願いしますm(_ _)m
0247デフォルトの名無しさん
2008/05/20(火) 19:40:36包丁でたまねぎを半分に切るのはどうすれば?っていう、そんなかんじ。
0248デフォルトの名無しさん
2008/05/20(火) 19:52:50再帰
0249デフォルトの名無しさん
2008/05/20(火) 19:53:55int func(int* x, int* y){
if (*x > *y) {
return 1;
} else if (*x < *y) {
return -1;
}
return 0;
}
一応こんな感じで作ってみた。
まぁ>>247の言う通りこの位自分でやるべきだとは思ったけどもね
0250デフォルトの名無しさん
2008/05/20(火) 19:55:11#define MAX_VAL(x,y) return(x>y?x:y)
初めて引数付きマクロ書いた
動くか分からん
0251デフォルトの名無しさん
2008/05/20(火) 19:55:44if (*x > *y) {
return 1;
} else if (*x < *y) {
return -1;
}
return 0;
}
0252デフォルトの名無しさん
2008/05/20(火) 21:13:49[2] 問題文(含コード&リンク):
入力された数値を\とカンマ区切りに編集する関数YenConvertを作成せよ。
int YenConvert(int kingaku,int mode,char *buffer,int result);
引数1:編集用の数値(4桁以上でかつint型の範囲内の入力のみと仮定)
引数2:編集モード
1:引数1の先頭に\を付ける(1000→\1000)
2:引数1の先頭に\を付け、カンマを挿入(1000→\1,000)
引数3:数値編集の格納領域アドレス
引数4:引数3のアドレス先の領域サイズ
戻り値は正常:0 モード誤り:-1 編集用領域不足:-2
[3] 環境
[3.1] OS:XP(自宅) / Vista(実習室)
[3.2] コンパイラ名とバージョン:VC6.0
[3.3] 言語: C言語
[4] 期限:(0時を挟むので)明日 午前2時頃
[5] その他の制限:特にありません。
春季基本情報合格祝いという名目で、ポインタなんて名前しか知らないのに課題が出ました…。
無茶と失礼は承知の上で、寝るまでの期限でお願い致します。
■ このスレッドは過去ログ倉庫に格納されています