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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

1156閲覧

javascriptで電卓を作る機能の実装をしたい

ooooo11

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/01/28 04:37

前提・実現したいこと

javascriptで簡易的な電卓を作成するための課題が出ました。
ですがある程度学校側でコードが決められており、色々自分で調べたりもしたのですが、変数の意味などがわからず・・・。丸投げだとはわかっているのですが、どうしてもわからないのでたすけてほしいです

発生している問題・エラーメッセージ

ソースコード中のsvNumberやsvButtonの意味が分からない状態です。
そのため穴あきのところが答えられず困っています。

該当のソースコード

javascript

1<!DOCTYPE html> 2<html lang=ja> 3 <head> 4 <meta charset="UTF-8" /> 5 <title>簡易電卓</title> 6 <style type="text/css"> 7 button { 8 height : 50px; 9 width : 50px; 10 } 11 button.equal { 12 height : 160px; 13 } 14 button.zero { 15 width : 160px; 16 } 17 div#panel { 18 height : 25px; 19 width : 100%; 20 border : 1px solid #000000; 21 text-align : right; 22 padding-right : 5px; 23 } 24 25 </style> 26 <script type="text/JavaScript"> 27 var panelNumber ="0"; 28 var svButton =""; 29 var svEnzanshi =""; 30 var svNumber = 0; 31 32 function clPanel() { 33 panelNumber = __ア__; 34 svButton =__イ__; 35 svEnzanshi =__ウ__; 36 svNumber = __エ__; 37 document.getElementById(__オ__).innerText = panelNumber; 38 } 39 function pushNum(pushNumber) { 40 svButton = __カ__; 41 42 if(panelNumber == __キ__){ 43 panelNumber = __ク__; 44 } 45 else{ 46 panelNumber += pushNumber; 47 } 48 49 document.getElementById(__ケ__).innerText = __コ__; 50 } 51 function keisan(__サ__) { 52 var panel = document.getElementById(__シ__); 53 var number = parseFloat(panel.innerText); 54 var answer = null; 55 56 if(__ス__ == "/" __セ__ number == __ソ__) { 57 alert("ゼロで除算はできません"); 58 return; 59 } 60 if (__タ__ == "+" 61 ||__タ__ == "-" 62 ||__タ__ == "*" 63 ||__タ__ == "/") 64 { 65 __チ__ = enzanshi; 66 }else{ 67 switch(svEnzanshi) { 68 __ツ__ "+": 69 answer = svNumber + number; 70 __テ__; 71 __ツ__ "-": 72 answer = svNumber - number; 73 __テ__; 74 __ツ__ "*": 75 answer = svNumber * number; 76 __テ__; 77 __ツ__ "/": 78 answer = svNumber / number; 79 __テ__; 80 } 81 82 if (answer !=null) { 83 panel.innerText = answer; 84 } 85 86 panelNumber = "0"; 87 svButton = __ト__; 88 svEnzanshi = __ト__; 89 svNumber = parseFloat(panel.innerText); 90 } 91 } 92 </script> 93 </head> 94 <body> 95 <table border="0"> 96 <tr> 97 <td calspan="5"><div id="panel">0</div></td> 98 </tr> 99 <tr> 100 <td><button onclick="pushNum('7')">7</button></td> 101 <td><button onclick="pushNum('8')">8</button></td> 102 <td><button onclick="pushNum('9')">9</button></td> 103 <td><button onclick="keisan('+')">+</button></td> 104 <td><button onclick="clPanel()">C</button></td> 105 </tr> 106 <tr> 107 <td><button onclick="pushNum('4')">4</button></td> 108 <td><button onclick="pushNum('5')">5</button></td> 109 <td><button onclick="pushNum('6')">6</button></td> 110 <td><button onclick="keisan('-')">-</button></td> 111 <td rowspan="3"><button class="equal"onclick="keisan('=')">=</button></td> 112 </tr> 113 <tr> 114 <td><button onclick="pushNumber('1')">1</button></td> 115 <td><button onclick="pushNumber('2')">2</button></td> 116 <td><button onclick="pushNumber('3')">3</button></td> 117 <td><button onclick="keisan('*')">×</button></td> 118 </tr> 119 <tr> 120 <td colspan="3"><button class="zero"onclick="pushNum('0')">0</button></td> 121 <td><button onclick="keisan('/')">÷</button></td> 122 </tr> 123 </table> 124 </body> 125</html> 126

試したこと

簡易的な電卓のコードは他の方はどのように書かれているのかなど参考にしつつ色々見てみたのですが、やはり変数の意味が分からなく、穴あき問題を埋めることができない状態です。
丸投げかとはおもいますが、助けて欲しいです。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/01/28 04:56 編集

丸投げするのであれば、友達に助けてもらうか、お金を払ってクラウドソーシングを使ってください
tomy-c

2021/01/28 07:55

既定のコードを変更できない問題で、穴埋め系であれば、おおよそ変数の型を見積もって適当なパラメータを入れてデバッグしながら何をしているか絞っていったほうが良いかもしれません。
guest

回答2

0

こんにちは。ヒントでよろしいのでしょうか?

たとえば、panelNumber = __ア__;ですが、これはclPanel関数の中にあるので、まず、clPanel関数の機能を知ることが手掛かりになります。
コード上で検索すると、<button onclick="clPanel()">C</button>から呼ばれており、おそらくはクリアボタンなんだと思います。
そうだとすると、clPanel関数の機能は表示のクリアや変数のリセットだと思われます。
リセット、ということは初期値に戻すということですから、初期値定義を探せばいいわけで、panelNumberで検索してみるとそれっぽい値が見つかりますよね?
同様に__エ__まではこれで解けるはずです。

その次のdocument.getElementById(__オ__).innerText = panelNumber;ですが、clPanel関数の機能は表示のクリアですから、表示部分の要素を探せばいいわけで、これもすぐ見つかりますよね?

あとはがんばりましょう。

投稿2021/01/28 05:12

Lhankor_Mhy

総合スコア36156

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

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

Lhankor_Mhy

2021/01/28 05:29

ただ、これ、あれですね、穴を埋めてもバグありますよね。 学校からの課題がこれそのままだとすると、ちょっとひどい。
guest

0

変数名自体に意味なんてありません。
そういう文字列の集合体でしかないです。

スコープと中になにが入っているかだけ見てください。
何が入ってるか見たい場合はデバッグしてください。

投稿2021/01/28 05:13

編集2021/01/28 05:13
m.ts10806

総合スコア80859

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問