C++BUILDERの質問です。 – プログラミング – Home

通知
すべてクリア

[解決済] C++BUILDERの質問です。


初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

C++builderでプログラミングをしています。質問お願いします。

for文で計算をするのですが逐次計算結果を出力したいのですがどのように
すればいいのでしょうか?

例えば
 k=0;
for (i=0;i==5;i++){
k=k+1;}

出力結果

 0
 1
 2
 ・・・

見たいな感じです。
for文の{}のなかに Edit[i]->Text =k;
見たいな感じにすればいいのかなと思っても出来なかったので。。

どなたかお願いします!


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> for文の{}のなかに Edit[i]->Text =k;
てことはWindowsアプリケーションかなんかで、5つのテキストボックスかなんかに
計算結果を表示したいということでしょうか?
 
> 見たいな感じにすればいいのかなと思っても出来なかったので。。
実際にできなかったソースを提示してくれませんか?
これだけでは解答できないかと。

それと、出力結果が全角文字なのは意図があるのでしょうか?

# いちおうVC++ ラウンジなんだけど、SDKだったらおんなじなのかなぁ。。。


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

void __fastcall Tb::ButtonRecogClick(TObject *Sender)
{
int i,j,k;
int numRecog; //認識文字番号
float distMin; //距離の最小値
int numMin; //最小距離の登録番号
float dist[20];
float xAverage,yAverage;
double norm;

for (k=0;k <= numEntry-1;k++)
{
if (numStrokeUn != numStroke[k]){ //もしストローク数が違うなら距離をでかく
dist[k]=1000000000;}
else
{dist[k]=0;
for (i=0;i <= numStrokeUn-1;i++){
for (j=0;j <= numPoint-1;j++){
dist[k]=dist[k]+(xx[i][j]-xs[k][i][j])*(xx[i][j]-xs[k][i][j]) +(yy[i][j]-ys[k]
[i][j])*(yy[i][j]-ys[k][i][j]);

}void __fastcall Tb::ButtonRecogClick(TObject *Sender)
{
int i,j,k;
int numRecog; //認識文字番号
float distMin; //距離の最小値
int numMin; //最小距離の登録番号
float dist[20];
float xAverage,yAverage;
double norm;

for (k=0;k <= numEntry-1;k++)
{
if (numStrokeUn != numStroke[k]){
dist[k]=1000000000;}
else
{dist[k]=0;
for (i=0;i <= numStrokeUn-1;i++){
for (j=0;j <= numPoint-1;j++){
dist[k]=dist[k]+(xx[i][j]-xs[k][i][j])*(xx[i][j]-xs[k][i][j]) +(yy[i][j]-ys[k]
[i][j])*(yy[i][j]-ys[k][i][j]);
}
Edit[i-1]->Text = dist[k];
}}

こんなかんじです。分りづらくてすいません。どうやらEdit[i-1]のように配列の表記
自体がいけないような感じのエラーでした。
ちなみにエラーはこれです。
[C++ Error] Unit1.cpp(223): E2451 Undefined symbol 'Edit'

あと出力結果が全角なのはまったく意図はありません。
よろしくお願いします!


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

すいません。変な風にコピペしてました。。
正しくは
void __fastcall Tb::ButtonRecogClick(TObject *Sender)
{
int i,j,k;
int numRecog; //認識文字番号
float distMin; //距離の最小値
int numMin; //最小距離の登録番号
float dist[20];
float xAverage,yAverage;
double norm;

for (k=0;k <= numEntry-1;k++)
{
if (numStrokeUn != numStroke[k]){ //もしストローク数が違うなら距離をでかく
dist[k]=1000000000;}
else
{dist[k]=0;
for (i=0;i <= numStrokeUn-1;i++){
for (j=0;j <= numPoint-1;j++){
dist[k]=dist[k]+(xx[i][j]-xs[k][i][j])*(xx[i][j]-xs[k][i][j]) +(yy[i][j]-ys[k]
[i][j])*(yy[i][j]-ys[k][i][j]);
}
Edit[i-1]->Text = dist[k];
}}
です。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> こんなかんじです。分りづらくてすいません。どうやらEdit[i-1]のように配列の表記
> 自体がいけないような感じのエラーでした。
> [C++ Error] Unit1.cpp(223): E2451 Undefined symbol 'Edit'
Editが定義されていませんよ 見たいなエラーですね。
肝心なEditとは?型は何?クラスメンバなのですか?
(C++Builderは触ったことないのでEditというクラスがあるのかも、、、)

結局、どの画面に出力されるのでしょうか?


返信引用
島
 島
(@島)
ゲスト
結合: 22年前
投稿: 238
 

C++ Builder のバージョンと、Tb と Edit とが何者かがわかる説明と位は言われなくても
書いてください


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

var6です。ちなみにEditは文字を入力するコンポーネント?の一種です。
本来ならEdit1->Text = ;
のように使います。上のプログラムではEdit[i-1]のように配列の形にした
のがいけないようです。Edit1のように配列ではなく数字を普通に入れれば
エラーは出ませんでした。


返信引用
Kazuki
 Kazuki
(@Kazuki)
ゲスト
結合: 22年前
投稿: 41
 

間違いの内容としては…
int a1, a2, a3, a4, a5;

for(int i = 1; i <= 5; i++) {
a[i] = 10;
}
これと同じようなことしてます。

解決策の1つとしては
TEdit *edit;
みたいなものをForm1(かな?)のメンバ変数に用意します。
Form1のコンストラクタかOnCreate(だったかな)あたりで
edit = new TEdit[エディットボックスの数];
edit[0] = Edit1;
edit[1] = Edit2;
...
...
みたいに初期化してやれば,他の所でedit[i]という形で
使う事が出来るようになります。

# 初心者さん名前くらい書いて…


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> float dist[20];
> Edit[i-1]->Text = dist[k];

> Edit1のように配列ではなく数字を普通に入れれば
C++BuilderのEdit::Textは代入時に文字列に変換しなくてもいいのか?(疑問)

Kazukiさんのいうように
> TEdit *edit;
> edit = new TEdit[エディットボックスの数];
> edit[0] = Edit1;
> edit[1] = Edit2;
となっているならば、Edit[0]->TextではなくEdit[0].Textで代入します。

> 結局、どの画面に出力されるのでしょうか?
で、この回答は?なんのためのEditの配列でしょうか?


返信引用
bibrebibre
 bibrebibre
(@bibrebibre)
ゲスト
結合: 19年前
投稿: 1
 

C++Builderでの
数字の文字列変換には、
整数には、IntToStr()
小数には、FloatToStr()
が使えます。

例:
Edit1->Text = FloatToStr(dist[0]);
こんな感じで。

C++Builderの質問掲示板はこちらにあります。

http://gimite.ddo.jp/bcbqtree/


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

うーむ、板違いなので結局、レスが付くのに時間が掛かっているような。

bibrebibreさんが紹介されているようなC++Builder関連の掲示板に行った方が
効率も良いし、無駄も少ないとおもいます。


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

ありがとうございます


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました