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

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

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

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

2回答

6243閲覧

電卓アプリ(android)での平方根の機能実装について

novoovoss

総合スコア6

Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

0クリップ

投稿2015/03/27 14:03

編集2015/04/01 02:14

現在、android studioでアプリを作成しています。
サンプルとして下記のURLの通り電卓アプリを作成しました。
+アルファとしてルートの機能(平方根)を実装しようとしているのですが、うまく行きません。
(新たにルートのオペレーションを作成しました。)

レイアウトは出来たのですがルートのボタンを押しても無反応です。
どのように実装すればよいか教えて頂けますでしょうか。

http://codezine.jp/article/detail/5957

追加
状態遷移表は以下になります。これで正しいのか不安はあります。
![イメージ説明]WIDTH:600

平方根のコードはこのように記入しました。

lang

1 2public class Sqrt{ 3 public static void main( String args[] ){ 4 double x = 0; 5 { 6 double x = Math.sqrt(x); 7 } 8 9 } 10 } 11 1213コード

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

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

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

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

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

guest

回答2

0

URLを見る限りいわゆる普通の電卓をつくろうとしているのだと思うのですが,
貴方自身が平方根の動作を把握していないような気がします.
普通の電卓で平方根をおした時は画面に出ている数値の平方根を出すのが一般的なのですが,
あなたの状態遷移図だと平方根という演算子を「記憶」しています.
記憶してどうしたいのかが謎です.

私なら,一般的な電卓を踏襲すれば平方根の列は
AおよびB:ディスプレイの数値の平方根をディスプレイに表示し,変数AまたはBに反映→R'(新たな数字入力があった場合は,直前の状態(AまたはB)に遷移する特殊な結果表示状態)
C:ディスプレイの数値の平方根をディスプレイに表示し,変数Bに反映→R'(同上)
R:ディスプレイの数値の平方根をディスプレイに表示→A

こんな感じになるのではないかなと.個人的には四則演算のRでの挙動とか"="のRでの挙動が気になりますが一旦スルーします.

コードも,mainメソッドで定義しているのがよくわかりません.URLの作り方に沿うのであれば
Stateインタフェースの抽象メソッドとしてonInputSqrtとでもイベントを定義して,
上の動作を書けばいいのではないかなと思います.
そもそもあなたのコードだと色々問題有りです.(ローカル変数が重複定義されていたり無意味なブロックが入っていたり)

投稿2015/04/01 04:18

swordone

総合スコア20651

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

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

0

平方根のボタンは、+ - x / のボタンとは動作が異なります。
状態遷移で 平方根のボタン のイベントとその時の動作を組み込む必要があります。

どのような状態遷移表をつくり、それをどのようにコードに落としたかを教えていだければ、もうすこし具体的な回答ができるかもしれません。

投稿2015/03/27 14:14

katoy

総合スコア22324

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

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

katoy

2015/04/01 13:32

遷移表で √ の遷移が四則演算とおなじにしてますね。 おそらくこれではうまくいきません。 √ を押したときは、   ディスプレーしている値の 平方根を計算、   ディスプレーをクリア、計算した平方根の値を表示,   結果表示状態へ とするのがよいと覆います。 そのような遷移をコードであらわしてみると動作するようになると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問