
プログラミング経験ほとんどゼロで電卓プログラムを作ることになって、
現在いろいろと調べながら悪戦苦闘しているところです。
一点だけわからない点があるので質問させていただきます。
http://vcpp.seesaa.net/category/3783110-1.htmlのサイトを参考にしながら
電卓を作成しているのですが、ー(マイナス)ボタンの実装で
ans =ans - now;
now=0;
とするとansがマイナスの値となってしまいうまくいきません。
どのようにすればよいでしょうか?
No.4ベストアンサー
- 回答日時:
★きっと C 言語でしょうね。
>visual C++で作っているところです。
↑
C言語、C++言語、C++/CLI(.NET)のどれか補足して欲しかった。
『Visual C++』はマイクロソフト社製のコンパイラを使っているのはタイトルから
分かりますよ。使っている言語です。補足して欲しかったのは言語のタイプ。
・C、C++、C++/CLIの区別が付いていないのなら C 言語を始めたばかりで電卓を
作ろうとしているのでしょうかね。
あと電卓は GUI(ウインドウが出るタイプ)ですか?
電卓のアルゴリズムの問題ですので、最初はコマンド・プロンプトタイプで作成して
から GUI に組み込むようにしてみてはどうですか?
コマンドライン上でも電卓が作れなければ GUI 電卓は無理ですからね。
>変数についてですが、
>ansは最終的な答え用です。
>nowは現在入力した数値です。
↑
変数名から想像は付きます。
補足して欲しかったのは ans、now 以外に電卓で使用する変数です。
ans、now だけでは電卓は作れない気がしますので。
最初に載せた電卓の構造体のようなものは定義していますか?
定義しているのなら変数名とその意味を補足して欲しいのです。
>要領を得ない質問で申し訳ありませんでした。
↑
C 言語の初心者さんですか?
Windows プログラムの初心者さんですか?
どの程度の何を理解していますか?
・とりあえずこの『回答への補足』と『回答へのお礼』にソースを貼り付けて下さい。
それからアドバイスしますよ。
・以上。→文字数が足りない場合は省略しないで貼り付けられる部分だけで良いです。
No.3
- 回答日時:
>visual C++という言語を使っています。
それは言語でなく開発環境です。。。そうではなくて、
VCは2005とかだと C も C++ も C++/CLI も使えるから、
どの範囲まで使ってつくるのかを質問されています。
>ans =ans - now;
>now=0;
>とするとansがマイナスの値となってしまいうまくいきません。
どううまくいかないのでしょうか?
計算結果が0未満なら負の値になるのは正しいと思いますが。。。
どのような動作を期待されているのでしょうか?
No.1
- 回答日時:
★情報が不足しています。
>ans =ans - now;
>now=0;
↑
これだけではね分かりませんよ。
ブログのサイトを参考にしているようですけど C++/CLI ですよ。
本当に参考になっている?
・ans にマイナスが入るなら 0 以下なら絶対値を代入して
符号フラグを ON にしたらどうですか?
hokkah5003 さんが電卓の変数などをどのように管理しているのかが
こちらでは分からないためこれ以上はアドバイスできません。
ちなみに昔電卓ソフトを作ったときには
// 簡単な多倍長整数の構造体
typedef struct number_t {
int len;
int exp;
int num[ MAX_DIGIT ];
} number_t;
// 電卓管理の構造体
typedef struct calc_t {
int sign; // マイナス時のフラグ
int ope; // 現在の演算記号(+ - * / =)
int ope2; // 1つ前の演算記号(+ - * / =)
int flags; // AC/C/-/.などのフラグ
number_t inp; // 入力専用(X)
number_t ans; // 演算結果(Y)
number_t mem; // 独立メモリ
number_t tax; // 消費税変数(1.05)
} calc_t;
こんな感じだったと思います。
・以上。構造体なども参考に。
回答ありがとうございました。
visual C++で作っているところです。
変数についてですが、
ansは最終的な答え用です。
nowは現在入力した数値です。
要領を得ない質問で申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
今のプログラミング言語
-
C言語とhtmlの違いを どな...
-
著作権法について
-
VBScriptで引数を省略したい場合
-
括弧のネストが多くて深いと・・・
-
COBOLでのNOT = の AND条件
-
プログラミング入門
-
一般的な市販PCゲーム(美少...
-
プログラムに書かれる"%"記号の...
-
ビット演算を理解するための参...
-
web2.0以前のインターネットで...
-
VBSでDim、Private、Publicの違い
-
なんの言語でしょうか?
-
リピート再生が出来ません
-
数学、プログラミング、物理、...
-
VBA フォルダ アクセス権限付与
-
仮想ドライブ
-
フリーゲームを解析したい
-
VisualStudio2008にこのような...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
著作権法について
-
C言語、C+、C++、C#の違い
-
今のプログラミング言語
-
COBOLでのNOT = の AND条件
-
COBOLで文字タイプを数字...
-
ウェブサイトから特定の文字列...
-
プログラムに書かれる"%"記号の...
-
プログラムからアイコンファイ...
-
C言語とhtmlの違いを どな...
-
C++ ってなんて読む?
-
C++における継続行
-
プログラム言語について c言語...
-
VBScriptで引数を省略したい場合
-
Excel VBAで文字化けする (英語...
-
パスカルケースの由来。
-
UNITY Float型の接尾辞fって
-
TANDEM言語ってあるんですか?
-
HTMLとC++で、どんなホームペー...
-
VCとVC++
-
VBSでDim、Private、Publicの違い
おすすめ情報