卒業研究で昨日からC++Builderを使うようになったのですが、まったくわかりません。
「慣れれば普通にプログラム作るより簡単だ」と教官はいいいますが…
それで昨日課題が出ました。
C++Builderでサイコロを作成し、クリックすれば数字が変わる用にしろ との事。
ずっとやってるのですが…ランダムに数字を表示するのってどうゆうの使うんですか?

…もぅ初歩的な質問ですいません…
穴があったら入りたい…

A 回答 (3件)

私もC++ Builderを最近少し触る機会がありましたので、その経験から少し。


(もともとはVisual C++を使ってましたので、初めてBuilderを見たときは
 使いにくそうだと思いました。)
私が使用したのはBorland C++Builder Ver.5です。
まず表示は単にサイコロを表示するだけなので、
[ファイル]-[新規作成]のタブのなかから[プロジェクト]を選択し、
アプリケーションウィザードで適当な雛型を作ればいけるでしょう。
主な質問はランダム数値についてのようですので、これはBuilderとか関係なく
ANSI-Cの標準関数であるsrandとrand関数を使用して乱数を発生させれば
良いと思います。

例えばstdlib.hとtime.hをインクルードしておいて、
#include <stdlib.h>
#include <time.h>

srand((unsigned)time(NULL));

のように乱数を時刻で初期化しておけば、毎回実行するたびに発生する
乱数値を変えることが出来ます。
その後rand関数を使って
ransuu=(rand()/(RAND_MAX/6))+1; //+1で0~5を1~6に変更
のようにして、1~6の乱数を発生させ、それに対応した1~6のビットマップ画像
を表示するなり、その数の円を書く(BuilderではEllipse関数で描画可能)
なりすれば良いと思います。
BuilderではFORMと呼ばれるウィンドウを親として、文字入力のボックスや
ウィンドウ、ボタンなどの子供となるツールがあらかじめ用意されていますので、
オブジェクトインスペクタという画面上で対応する親もしくは子を選択し、
イベントタブでマウスクリックのイベントを拾えば、クリックによって
異なる反応をさせることができます。
私の場合あまりヘルプを熟読せずに使ってたのですが、イベントをダブルクリック
したらそれに対応する関数が自動的に追加されたりして、結構直感的に
何とかなりました。
Builderではウィンドウ(FORM)を流れ作業で作成できますので、なれれば
一からウィンドウを構築するより、はるかに労力を省けますよ。
    • good
    • 0
この回答へのお礼

1ヶ月も前の質問の御礼を今ごろ申し訳ございません(涙)
なんとか乗り切りましたがもう限界です・・・
はぁぁぁぁ・・・
ありがとうございました

お礼日時:2001/05/10 14:22

parinさんの初心者度(?)がどの程度かわからないので、


とりあえず、超初心者と想定して…

#include <ctime.h>
#include <stdlib.h>


srand(time(0));
int x = rand(); // これで、xは乱数です。

あとは、表示系は、C++Builderのラベルコンポーネントや、その他、
とにかく表示できるものを使用することになりますね。

ボタンコンポーネントと、ラベルコンポーネントをフレームに「ポチッとな」
と配置して、ボタンのアクションの「OnClick()」メソッド(かな?)を作り(ダブルクリックとかすると自動的に作成される) その作られた関数の中に、上記の2行を書きます。(ヘッダファイルは上の方に入れといてくださいね)
そして、さらに、その関数に、発生した乱数をラベルの文字列に反映させる行も必要ですね。

多分 label1->text = x; とかいう感じになるでしょう。(正確でもなんでもなく、雰囲気的に…)

まぁ、学習課題っちゅうことなので、あとは自分でやりなされ。
    • good
    • 0
この回答へのお礼

1ヶ月も前の質問の御礼を今ごろ申し訳ございません。
じつはもう情報工学科に入って5年目なんですけどね(笑)
パリンにプログラム作成はむりですね(涙)
では、ありがとうございました

お礼日時:2001/05/10 14:21

ランダムに数字を表示って・・・



C++Builderに限らず、ANSI-Cでも持っているはず。
そのままsrand関数などを使用すれば問題はないと
思いますが・・・

表示面に関しては、ヘルプをご確認ください。
ではでは☆
    • good
    • 0
この回答へのお礼

1ヶ月も前の質問の御礼を今ごろ申し訳ございません。
なんとかプログラムもできて・・・
パリンにプログラム作成は無理だとわかりました。

お礼日時:2001/05/10 14:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC++でコンテナを扱う際の質問です。

C++でコンテナを扱う際の質問です。

確保されるメモリ位置が最後まで保証されているコンテナは存在するのかを知りたいです。

Vectorは連続性が保障されていることから間違いなくアドレスは変わると思うのですが、Deque、Listなどはどうか知りたいです。

固定されているならアドレスをMapのkeyのように扱えるかも?などと考えた次第です。

Dequeだと削除しないかぎり変わらないよ!などといった条件がある場合はそれも教えていただけると尚嬉しいです。

よろしくお願いします

Aベストアンサー

コンテナなどは、連続性といっても見かけの連続性だけを保証するのが普通です。

その意味からは、物理的なアドレスが固定されているかどうかは断言できません。
そういうわけで、コンテナの場合は、ポインタ経由ではなくて、イテレータ経由でアクセスするわけです。

ただ、deque は、[] をサポートしているので、

std::deque<int> que;

に対して、 que[0], que[1] などは、期待通りの動作をするはずです。(未確認)
残念ながら、list は、[] をサポートしていませんので、同じ記述はできません。

もともと、配列のレベルであっても、連続性は厳密には、

・ &a[n] - &a[m] が、n - m に等しくなる
・ ptr = &a[n] のとき、*(ptr + m) は、a[n + m] をポイントする

ということであって、あからさまに、物理的なメモリのアドレスは出てこないですから。
なので、ポインタ同士の減算も、「両方のポインタが同じ配列にあるか、一度に malloc() された同じ領域をポイントしている場合」しか、保証されていなかったりします。

コンテナなどは、連続性といっても見かけの連続性だけを保証するのが普通です。

その意味からは、物理的なアドレスが固定されているかどうかは断言できません。
そういうわけで、コンテナの場合は、ポインタ経由ではなくて、イテレータ経由でアクセスするわけです。

ただ、deque は、[] をサポートしているので、

std::deque<int> que;

に対して、 que[0], que[1] などは、期待通りの動作をするはずです。(未確認)
残念ながら、list は、[] をサポートしていませんので、同じ記述はできません。

もともと、...続きを読む

QC++BuilderのMemoコンポーネントについて

現在Memoコンポーネントに実行結果を出力するプログラムを作っているのですが、

Memoコンポーネントの編集を不可にすることはできるのでしょうか。

また、MemoコンポーネントにあらかじめLinesで書き込んでおいた文字列を選び、リンクのようなものを貼り、違うフォームを開くなんてことはできるのでしょうか。

初心者で簡単な質問かもしれませんが、よろしかったらアドバイスお願い致します。

Aベストアンサー

Memoコンポーネントを編集不可にするには
ReadOnlyというプロパティをtrueにします。

QVisual C++ 6.0とVisual C++ 2005 についてですが・・・

Visual C++ 6.0でワークスペースと呼ばれていた物がVisual C++ 2005になるとソリューションと言う名前になったと聞きました。
また、Visual C++ 6.0で製作したファイルはVisual C++ 2005でも開けるけどVisual C++ 2005製作したファイルはVisual C++ 6.0では開けないと聞いたのですがVisual C++ 2005製作したファイルをVisual C++ 6.0でも開ける様に互換性を持たせる方法はありませんか?
学校と家で使っている環境が違うので互換性がもてれば両方で使えてとても便利になります。
御存知の方がいましたら御伝授お願いします。

Aベストアンサー

ソースファイルやヘッダファイル(拡張子CPP/C/H/HPPなど)はVisual C++ 6.0と2005で共用できるので、6.0用のプロジェクトファイル&ワークスペースと、2005用のプロジェクトファイル&ソリューションファイルを用意すれば両方の環境で開発を進めることができるでしょう。

但し、以下の点にご注意下さい。
・ソースファイルの追加や削除は両方のプロジェクトに対して行うこと。
・Visual C++6.0ではManaged C++が使えないのでManaged C++は使わないこと。
・MFCの仕様がだいぶ違うので、MFCも避けること。MFCを知り尽くしているのでしたらチャレンジはご自由に。
・C++コンパイラとしても若干仕様が違うので(for文内で定義された変数のスコープなど)、常に両方の環境でコンパイルできるか考えながら開発する必要があること。

QVC++又はC++Builderでもいいのですが

VC++又はC++Builderでもいいのですが
マウスをドラッグしながら移動すると
範囲を表示する線がでますが
あれはどうやっているのでしょうか?
わかりにくくてすいませんが
よろしくお願いいたします

Aベストアンサー

DrawFocusRectかな?

マウスカーソルが移動されるたびに、以前の座標と新しい座標でこのAPIを呼び出しているんだと思います。

QCかC++どちらを覚えるべきですか?

初めまして。せいじと申します。よろしくお願いします。
プログラミング経験なしです。今30歳です。
遅すぎますが、これからC言語かC++言語をマスターしたいと思っています。
Windows 98 + Borland C++ Compiler 5.5
で勉強しようと思ってます。

Cの拡張されたものがC++だからC++を覚えようと思って、C++の本を買いました。
・新C++言語入門 ビギナー編 SOFTBANK Publishing 林 晴比古 著
・詳説C++             SOFTBANK Publishing 大城 正典 著
2冊ともまだ最初の方を読んで実践しただけです。

クラス、オブジェクト指向プログラミング等々が何なのか分かっていないのに、
C++をする意味があるのか、まずはCで十分ではないのか?
と思うようになってきました。

実際どうしたら良いのでしょう。
何も知らないならC++からでも良いのでしょうか。
違いが分からないならCで十分なのでしょうか。
みなさんの意見を聞かせてください。

よろしくお願いします。

初めまして。せいじと申します。よろしくお願いします。
プログラミング経験なしです。今30歳です。
遅すぎますが、これからC言語かC++言語をマスターしたいと思っています。
Windows 98 + Borland C++ Compiler 5.5
で勉強しようと思ってます。

Cの拡張されたものがC++だからC++を覚えようと思って、C++の本を買いました。
・新C++言語入門 ビギナー編 SOFTBANK Publishing 林 晴比古 著
・詳説C++             SOFTBANK Publishing 大城 正典 著
2冊ともまだ最初の方を読んで実...続きを読む

Aベストアンサー

seiji-h さん。こんにちわ。
プログラミングを今後主に何の目的で使いますか?

(1)仕事でC++が必要。
 頑張っておぼえましょう。

(2)文書データの加工など。。。
 今すぐPerl言語に切り替えましょう。

(3)趣味でWindowsアプリなどの作成を目指して。。
 そのままコツコツC++を続けていってください。

(4)歯ごたえのあるプログラミング言語を。。。
 そのままコツコツC++を続けていってください。

>実際どうしたら良いのでしょう。
>何も知らないならC++からでも良いのでしょうか。
どのようなことに興味をおぼえるかで、Cから始めるべきか、C++から始めるべきか
向き不向きがあります。

★簡潔な文法をもとに、ガリガリと自分の思うままに、プログラミングしたい。
とにかく自分で動くものを作りたいということなら、Cから始めるのが向いていると思われます。
★プログラミングすることよりも、プログラミング言語「自体」に興味があって、
一種の研究の対象と考えている場合は、C++の方が、おもしろおかしく学べると思います。

seiji-h さん。こんにちわ。
プログラミングを今後主に何の目的で使いますか?

(1)仕事でC++が必要。
 頑張っておぼえましょう。

(2)文書データの加工など。。。
 今すぐPerl言語に切り替えましょう。

(3)趣味でWindowsアプリなどの作成を目指して。。
 そのままコツコツC++を続けていってください。

(4)歯ごたえのあるプログラミング言語を。。。
 そのままコツコツC++を続けていってください。

>実際どうしたら良いのでしょう。
>何も知らないならC++からでも良いのでしょうか。
...続きを読む

QC++ Builderでの自作関数

C++ Builderでの自作関数

初心者のため、初歩的な質問で恐れ入ります。

今、C++ Builderを使いアプリを作成中なのですが、
下記のような自作関数を使いたいのですがどのように書くと
エラーがでなくなるのでしょうか?


main関数中で、あるif文に該当すると自作関数の内容を行いたいと思っています。
自作関数には、テキストファイルへ文字列データの書き出しをする内容を書いています


今、引数にはvoidを使っていますが、
「TForm1のサイズが不明、あるいはゼロ」「宣言の構文エラー」というエラーが出てしまいます。


voidにしているのが原因でしょうか?
何もわかっていなく恐縮ですが、よろしくお願いします!

Aベストアンサー

これでは、残念ながら回答は不能です。

なぜなら、

> main関数中で、あるif文に該当すると自作関数の内容を行いたいと思っています。
> 自作関数には、テキストファイルへ文字列データの書き出しをする内容を書いています

とういう情報だけでは、「普通に関数を書けば大丈夫です」としか言えないレベルだからです。

>「TForm1のサイズが不明、あるいはゼロ」「宣言の構文エラー」

というエラーは、大抵、関数宣言の書き方が間違っているときに出るものではありますが。

ひとつ気になるのは、C++ Builder で、TForm1 に関わるエラーが出ているというのは、VCLを使ったフォームアプリケーションだと思いますが、フォームアプリケーションだと、main()(実際には、WinMain() だと思いますが)、だとすると、WinMain() には手を付けない方がいいです。

本来、ここには処理の追加をする必要はないはずなので、ここで何か処理を仕様とするというのは、本来なら、どこか別のところで処理をするべきものを、間違って書こうとしている可能性が感じられます。

これでは、残念ながら回答は不能です。

なぜなら、

> main関数中で、あるif文に該当すると自作関数の内容を行いたいと思っています。
> 自作関数には、テキストファイルへ文字列データの書き出しをする内容を書いています

とういう情報だけでは、「普通に関数を書けば大丈夫です」としか言えないレベルだからです。

>「TForm1のサイズが不明、あるいはゼロ」「宣言の構文エラー」

というエラーは、大抵、関数宣言の書き方が間違っているときに出るものではありますが。

ひとつ気になるのは、C++ Builder で...続きを読む

QVisual C++を使用するには,C++の知識は必要?

Visual C++ を使用する必要が生じたのですが,C言語の知識しかなく,
VC++を使用するにあたり,新たにC++を勉強しなければならないか分かりません。
C++を勉強してから,VC++を勉強し始めるべきなのでしょうか?
また,もしC++の勉強をしなければならない場合,使用する参考書として「独習C++」を考えているのですが,この参考書で事足りるでしょうか?
回答よろしくお願いします。

Aベストアンサー

ANo.1の方に同感です。

私はMS-DOSでのC言語からVC++へジャンプしました。

VC++を理解するということは
 1.C++という言語
 2.windowsOS,API
 3.MFC
を理解するということです。

私のとっかかりの本は、3冊のシリーズで
 1.Windowsプログラミングについて
 2.C++について
 3.MFCについて(だった思う)
に分かれており、C言語の知識とwindowsのアプリを触った経験があれば順を追って素直に理解できるものでした。
#処分してしまったので正しい書籍名はわかりませんが、クリーム色のカバーでした。

ただ、これはあくまで入門書で、その後C++に関する本、MFCに関する本、WIN32APIに関する何冊か読まないと、やはり仕事はできません。

QTreeViewの追加 C++Builder

TreeViewが2つあるとします。
TreeView1へTreeView2のツリーを追加したい場合
どのようにすればよいでしょうか?

TreeView2の複数のノードを追加したいのですが。
どなたか、お願いします。

Aベストアンサー

追加したいのは1つのノードから始まるツリーということでいいんでしょうか?
それでよければ、TTreeView::Selectedで選択ノードを取得して、TTreeNode::Itemでその子ノードを取得して1つづつ追加してゆくことになります。

やりたいことをもっと具体的に提示した上で質問されたら、もう少し具体的なアドバイスも出来るのですが。

QC/C++でアプリ開発

C/C++でアプリ開発

いまどきC++でアプリ開発なんてしないのででしょうか。
C/C++を使うのは組み込み分野とかぐらいなんでしょうか?
もし新卒の大学生がC/C++でアプリ開発するならどういう会社に入ればよいでしょうか?

Aベストアンサー

ソフトウェアハウスとかなら今でもC言語が必要になる案件は多いです
Windows向けソフトウェアの受託とか、Linuxアプリケーションとか。

ただ、C言語でそれなりの結果を出している
というわけでは無いのでしたら、
無理してC言語にこだわらない方がいいかもしれません。
Cで開発するだけの自信があるのでしたら、
それ以外の言語の仕事も十分に出来ますし、
そっちの方が仕事が捕まえやすいというのもあります。
それにC言語の仕様の多さは他の言語には類を見ないくらいに大きいですから、
他の言語の仕様を覚えてからでも、十分に役立たせることが出来る。

QC,C++,C++/CLIの構造体とクラス

C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが
privateかpublicかという違い「だけ」しか全くないのでしょうか?

クラスにおける
value class / ref class
という分類はC++/CLIのもので
これについては
value class の方は C言語の構造体に近いという事でいいでしょうか?

ref classの方は
ネイティブのC++のクラスを
マネージ用にしたようなもので

C++/CLIの構造体は
C++のそれと同じで
OKですか?

そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか?

Aベストアンサー

> ということは、structも継承可、という事でしょうか?

structでも継承可能です。

> 継承のアクセス指定の方は
> クラスと構造体ではどうなるのでしょうか?

class A : Base {};



class A : private Base {};

と等価です。
一方、

struct A : Base {};



struct A : public Base {};

と等価です。

> そして「集成体」というのが初めて知ったのですが
> これはいわゆる、配列や・・・ある条件下でのクラス・・?
> なのでしょうか?

配列と以下の条件をすべて満たすクラスのことです。
・ユーザー定義のコンストラクタを持たない
・非公開または限定公開のメンバを持たない
・基底クラスを持たない
・仮想関数を持たない

ちなみにC言語の集成体は、配列と構造体の総称です(共用体は集成体ではありません)。


人気Q&Aランキング

おすすめ情報