質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

6回答

5959閲覧

電卓を作りたい

Tutti

総合スコア83

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2016/08/01 13:41

小数点の計算もできる電卓のプログラムを作ろうと思っています。
ですが、考えれば考えるほど分からなくなってしまいます。
電卓のプロセス、考え方やヒントを教えていただけませんか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

ベストアンサー

フローチャートで書こうとするとわけわからなくなるので
状態遷移図で動作をまとめたほうがよいかと

投稿2016/08/02 03:09

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/08/02 03:48

なるほど。確かに、状態遷移図のほうが動きが分かりやすそうです。 アドバイス、ありがとうございます。
guest

0

逆ポーランド記法、という物について調べるとヒントが得られるかもしれませんよ

投稿2016/08/02 01:59

drednote

総合スコア336

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/08/02 02:11

分かりました!早速調べてみます!ありがとうございます!!
guest

0

電卓は同じボタンを押しても常に同じ結果になるとは限りませんよね。
それは状態を持っているからです。
状態は基本的にクラスのメンバ変数で管理するということを意識するとやりやすいと思います。
(自分で考えたアルゴリズムなので○○状態のようなものは別に正式名称があるとかそういうわけではありません。)

ボタンの種類

  • 0-9 .(小数点)

値入力状態にする

  • 演算子 +-*/

演算子入力状態にする

  • 結果表示 =

結果表示状態にする

  • その他

数字消し 値入力状態でのみ一番右の桁の数字を消す
操作取り消し 直前の状態に戻す
クリア 表示を消して初期状態に戻す

状態

  • 初期

値を入力すると入力された値を設定して値入力状態に。
演算子を入力すると値を0に設定して演算子入力状態に。

  • 値入力

値を入力すると桁数が増えてゆく。
演算子を入力すると計算結果を表示して、演算子入力状態に。
=で計算して結果表示状態に。

  • 演算子入力

演算子を入力すると最新のものに切り替わる。
値を入力すると、入力された値を設定して入力状態に。
=で直前の値を複製して計算し結果表示状態に

  • 結果表示

値を入力すると入力された値を設定して値入力状態に。
演算子を入力すると値を表示されている結果に設定して演算子入力状態に。
=で直前の計算を繰り返す(電卓で2*====と入力されると2,4,8,16と増えていくやつ)

・例
1 + 12 = 13
・入力値
値 演算子 値値 =
・状態遷移
初期 値 演算子 値 結果表示

どこか抜けがあるとは思いますが、一応頭の中や紙の上で動かしてみるとある程度それらしい動きをするはずです。

投稿2016/08/02 01:47

intelf___

総合スコア868

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/08/02 02:10

どうも詳しく分かりやすく教えていただき、ありがとうございます!!! 参考にさせていただきます!!!!!!!!
guest

0

java 電卓 プログラム
で google 検索すると、情報を得ることができると思います。

例:

投稿2016/08/01 22:10

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/08/01 23:05

今、フローチャートを作っている段階なのです。インターネットのサイトはコード例が書いてあるものを何個も閲覧したのですが、エラーの位置などループの位置などをいろいろ考えていると混乱してしまいました。 もう一度サイトを見て位置から考え直してみます。 ありがとうございます。
guest

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/08/01 21:54

このサイトは見てみたのですが、、、。 もう一度見てみます。 ありがとうございます。
guest

0

floatやdoubleで計算すれば普通に出来ると思うのですが…
UIのことや精度のことで悩んでいるのでしょうか?

投稿2016/08/01 13:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/08/01 21:52

何を使ってプログラムを書いていくのかはわかっているつもりなのですが、書き方やどこまでループをすればいいのかエラーがでた時などを考えると混乱してしまいます。
退会済みユーザー

退会済みユーザー

2016/08/02 02:52

とりあえず(公開するのでなければ)エラーは考えなくて良いと思いますよ 自分で考えたいという気持ちは立派なことだと思いますけどそのレベルでわからないなら サンプルとかを「模写」してそれがどういう行程で動いているのか検証する方が効率的かも知れません 因みにループを使うならループをネスト(入れ子)にして抜けたらまた別ループに入る構造とかなら考えやすいかも知れませんよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問