2倍と2乗の変数名の区別の付け方について教えて
下さい。

例えば「s」という変数があった場合に

(1)sの2乗
(2)sの2倍

を格納する変数を新たに設ける場合は、一般的に
どのような変数名にすれるのが良いでしょうか?

s2、_2s、$2s、sPow2

など色々思いつきますが、どれが適切なのか
わかりません。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

その変数が何を意味するか


それを名前にするのが一般的ね。
その変数は~の2乗という意味しかないのかしら?

面積ならsAreaとかsSquareとか
そんな風に命名すればいいわ。
計算の途中経過でも意味がある変数なら
きちんと名前を付けてあげればいいし
一時的に利用するならtempで十分よね。
    • good
    • 0

うん, 2*s とか s*s って簡単な計算で書けるからね.... しかも, 式の上で「2倍する」とか「2乗する」と書いてあるのであれば, 普通は式をそのままコードにするでしょう.


もちろん「何回も計算することがわかっていて, そのために必要な時間を (ちょっとでも) 減らしたい」というときは変数を作ります. 面倒なら s2 でもいいし, がんばるなら動詞を使って double とか square とかを付けると思います. べき乗は power だけど, 2乗は square, 3乗は cube と特別な単語があるのでこれを使うのがよいと思います.
    • good
    • 0
この回答へのお礼

なるほど、動詞を使ったり、特別な単語を使うんですね!!

勉強になりました。

ありがとうございます!!

お礼日時:2009/05/19 00:49

「一般的に」って言ったら, 「そんな変数をわざわざ作らない」のが普通だと思うなぁ.


まあ強いていうなら sSquared とか sDouble とかか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

作らないのが普通なんですね。

参考になりました。

お礼日時:2009/05/17 17:35

このQ&Aに関連する人気のQ&A

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

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

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

Q文字列型の一般的な変数名は?

おはようございます。

サンプルコードで
数値型の変数名は
Dim i As Long
のようにiをよく見かけます。

ただ、私が勉強不足のため
文字列型の変数名の一般的な文字に何が使われているのかわかりません。
(str?moji?など?)

サンプルコードを書くときに使用する
文字列型の変数名を教えてください!

Aベストアンサー

こんにちは。私の場合は自己流ですが、ネットなど見て他の方を
参考にして今日に至っています。

ルールは簡単で変数に何を(何の型)格納するかによって変えています。
・長整数の数字を格納する場合:Dim lngXXX as Long
・文字列を格納する場合:Dim strXXX as String
・ワークシートを格納する場合:Dim Wsh as WorkSheet

などです。「変数の型」を「変数の名前」に使います。
これで時間が経過した後にプログラムを読み返した時に
思い出しの助けとなります。
「XXX」の部分も同様で変数を使う目的の名前を含ませると、
後で読んだときにさらに助けになると思います。
例えばString型で何からの「名前」を格納するときには
Dim strName as String
などXXX→Nameとすると可読性が上がると思います。
他の方の回答でもあるように日本語の変数は使わないように
しています。

なお、変数名でアルファベット大文字、小文字混在を使うことで
変数を入力時にすべて小文字で入力したときに変数を打ち間違えていると
気づきやすくなりこれも小さい便利です。

こんにちは。私の場合は自己流ですが、ネットなど見て他の方を
参考にして今日に至っています。

ルールは簡単で変数に何を(何の型)格納するかによって変えています。
・長整数の数字を格納する場合:Dim lngXXX as Long
・文字列を格納する場合:Dim strXXX as String
・ワークシートを格納する場合:Dim Wsh as WorkSheet

などです。「変数の型」を「変数の名前」に使います。
これで時間が経過した後にプログラムを読み返した時に
思い出しの助けとなります。
「XXX」の部分も同様で変数を使う目的...続きを読む

Q変数名の付け方

変数名の前にアンダーバー「_」をつけて「_hensu」などどしている変数名がありますが、このアンダーバーはどんな意味があるのでしょうか。
昔からある何かの習慣なのでしょうか。

Aベストアンサー

インスタンス変数につける場合がありますね。
逆に、「ローカル変数につける!」 という人も見かけますし…
とりあえず、スコープの違いを分かりやすくする目的であることが多いです。

オープンソースのコードや業務で見るコードでも、Javaではあまり多数派ではないと思います。
よく見かけるのは、JavaScriptなどのアクセス修飾子がない言語です。
「"_"がついてるメンバには直接アクセスしない」などのルールを積極的に使ったりします。

QVB6変数の宣言dim j,k,p,m,n as Integerは良くない?

お世話になります。

VB暦1年です。

汎用の変数宣言でタイトルのように
dim j,k,p,m,n as Integer
dim ssa,ssb as String

など、カンマ区切りで変数宣言を使っていたのですが
最近、知人にasの手前の変数は型どおり宣言されるが
その手前の変数はVariant型で宣言されてしまうと指摘されました。

指摘されるまで気にはしていませんでしたが
ウォッチで確認すると変数に代入されるまでは
型がVariant/Emptyとなってます。

以後、気をつければいいのですが
過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。
後々、問題になるのかな?

Aベストアンサー

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというようなバグの原因になりやすいので、型を明示できるような状況で敢えてVariant型を使うべきではないです。

しかし、すでに納品してしまったコードについては、問題はメモリを余計に使ってしまうことくらいではないでしょうか?
他の人が気づかなかったことから考えるに、多分狭いスコープで使っていますよね? 比較対象や代入するべき型を誤るというようなロジックの誤りがない限り、少なくとも動作上の問題は発生しないと思います。ただ、直せる機会があるのであれば、直した方がいいとは思いますが。

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというよう...続きを読む

Q変数に入っている変数の値を参照したい場合には

var a1="123";
var a2="789";
と 変数に文字が登録されている場合、
引数として、1又は2を渡し、
1の場合にはa1を
2の場合にはa2の値を
参照することは可能ですか?
switchやif文を使わずに、
別の変数に、"a"+引数を代入し、
その変数に代入されている変数を参照する
というようなことは可能ですか?

意味わかりますか?
すみません。
よろしくお願い致します。

Aベストアンサー

eval()で変数名などを作れます。

function f(){
a1 = 123;
n = 1;
val = eval("a" + n);
alert(val);
}

Q変数名やサブプロシージャーの名前を英語ではなく日本

VBAにおいて
変数名やサブプロシージャーの名前を英語ではなく日本語でつけると
どのような不具合が発生しますか?
ネット上のサンプルコードなどを見ていると、
Dim i As Long
など、変数名を英字にしてありますが
自分は
Dim 行 As Long
Dim 数 As Long
などにしてしまいます。

このように日本語で変数名をつけると
どのようなデメリット・不具合が発生するのでしょうか?

コードとして見にくいだけですか?
ご回答よろしくお願いします。

Aベストアンサー

日本語を表示できない環境とか、日本語が理解できない人が読む場合とか、そういう自明なデメリットを除くと特にないはずです。

QajaxでPOSTする変数の変数名を動的に変えたい

ajaxでPOSTする変数の変数名を動的に変えたいのですが、方法が分かりません。

unction Addnt(num){
var pnum = $("#p"+num).val();
var num = num;
$.ajax({
type: "POST",
url: "addnt.php",
data: {"'p'+num+":pnum,"num":num},
dataType: "json",
success: function(data, status){


},
error: function(XMLHttpRequest, status, errorThrown){
alert("入力をご確認ください。");
}
});
}

と言う風に
data: {"'p'+num+":pnum,"num":num},
としたのですがうまくいきません。
p+numのkeyでpostしたいのです。
PHP側でどのように飛んだか確認する方法ってないですよね・・・。
よろしくお願いします。

Aベストアンサー

No.1の回答訂正、
JSONリクエストだから、確認テスト用のPHPは
<?php
header("Content-type:text/javascript");
print_r(json_encode($_POST));
?>
これだけ
これを使ってNo.2の回答を試したら、
少なくともその部分は正常に出来てました。

Q後ろから訳すは?

私は中学時代、塾や学校で、英文は後ろから訳すと習いました。
しつこく言われました。
一部をのぞき、後ろから訳すでなんとかなりました。
私は高校はレベルが低い学校だったため、中学レベルのことしか習いませんでした。だから、高校レベルの英語も後ろから訳すのか気になっています。
どうなんでしょうか。
教えてください。

Aベストアンサー

「意味が解る」=「訳せる」だと思い込んでいる人は、
ある程度以上、英語が解るようになりません。

「意味をとる」ことと、「訳す」ことは、別のことで、

「意味をとる」には、原則、文の頭から順に、言葉の塊ごとに
意味をとっていかないといけません。(すんなり解らなくて、
ちょっと前に戻ったり、みたいなことは必要になるので、
頭から、を、絶対の真理のように考えるのも間違って
いますが)

「訳す」というのは、「意味をとった」内容を、日本語として、
ふさわしい語順や、繋がる形で作り上げていく作業で、
そのときに、英語と日本語の言葉を並べる順番の違いで
後ろから訳すと考えると、具合がいいことが多いのですが、
いつでも通用する訳ではありません。

実は、本当は、中2くらいの教科書の文でも、ちょっと長めで
複雑めなものでは、後ろから訳すだけでは、間に合わない
ことが多いのですが、幸い、そこまで大変なものは、数が
少ない、高校レベルになると、よほどすんなりした文でないと、
後ろからでは間に合わないし、一度に訳ができてしまうことも
ない、

地道に、前から「意味をとり」、それを、日本語になるように
整理して「訳す」、こうするしかありません。

これから、勉強をしようというのであれば、
#1さんが、解りやすい例を挙げてくださっているので、
それを見習って、中学の英語から、そういう手順で
考えられるように、がんばってみてください。

そうすれば、高校レベルの英語も、そこまでかけ離れて
難しいものとしてではなく、努力すれば、手の届くものに
なっていくはずです。

「意味が解る」=「訳せる」だと思い込んでいる人は、
ある程度以上、英語が解るようになりません。

「意味をとる」ことと、「訳す」ことは、別のことで、

「意味をとる」には、原則、文の頭から順に、言葉の塊ごとに
意味をとっていかないといけません。(すんなり解らなくて、
ちょっと前に戻ったり、みたいなことは必要になるので、
頭から、を、絶対の真理のように考えるのも間違って
いますが)

「訳す」というのは、「意味をとった」内容を、日本語として、
ふさわしい語順や、繋がる形で作り上げていく作...続きを読む

Q変数内容が'変数名'の文字列なので、短く書きたい

下記のような変数が大量にあります。
変数内容は、全て'変数名'の文字列です。
var AAAAAAAQWE = 'AAAAAAAQWE', BACDCFRF = 'BACDCFRF', VZAAAWW = 'VZAAAWW',……

・変数宣言を短く書き直したいのですが、何か良い方法はあるでしょうか?
・何度も同じことを書くのは非効率な気がするのですが…

Aベストアンサー

thisは基本的にはスコープチェーンに入っていないので
thisのプロパティに設定しても
this.AAAAAAAQWEとしないと参照できないですね。
(thisがグローバルオブジェクトの場合は、参照可能になります。)

withを使えばオブジェクト名を省略して
プロパティを参照できるようになります。

var array = ['AAAAAAAQWE','BACDCFRF','VZAAAWW'];
var obj = {};
for(var i=0; i<array.length; i++) obj[array[i]] = array[i];
with(obj){
 alert(AAAAAAAQWE); //withの中では、obj. を省略できる
}


withは非推奨なのであまり使いたくないですけどね。



> ・既存コード調整なので、存在意義はとりあえずおいといていただけると有難いです
変数を全部文字列に置換するような調整はできないのでしょうか?
(AAAAAAAQWE → 'AAAAAAAQWE' みたいに置換すれば、変数宣言自体不要。)

thisは基本的にはスコープチェーンに入っていないので
thisのプロパティに設定しても
this.AAAAAAAQWEとしないと参照できないですね。
(thisがグローバルオブジェクトの場合は、参照可能になります。)

withを使えばオブジェクト名を省略して
プロパティを参照できるようになります。

var array = ['AAAAAAAQWE','BACDCFRF','VZAAAWW'];
var obj = {};
for(var i=0; i<array.length; i++) obj[array[i]] = array[i];
with(obj){
 alert(AAAAAAAQWE); //withの中では、obj. を省略できる
}


withは非推奨なの...続きを読む

QエクセルVBAでの変数のスコープ

基本的なことなのですが、教えて下さい。

当方、PHPやjavascriptを中心にプログラムしてきたのですが、
今回、エクセル+VBAでプログラムすることになり、VBAを勉強しているところなのですが、ちょっと戸惑っています。

いままでは、グローバル変数をなるべく使わないように、プログラミングをしてきたのですが、
VBAの勉強で、参考にしている本のコードは、全てグローバル変数を使っています。
そもそも、エクセルのシート・セルがグローバル変数のようなもの(?)なので、変数のスコープにこだわってもあまり意味がないのかな?とも思います。

エクセル+VBAである程度の規模のプログラムを作る際、
変数のスコープはどのように使い分けるのが良いのでしょうか?

すみませんが、ご教授の程、よろしくお願いします。

Aベストアンサー

誤解されているかもしれないので・・・釈迦に説法だったらごめんなさい。
[XL] Visual Basic for Applications 変数の適用範囲
http://support.microsoft.com/kb/141693/ja

あと、こちらはVB6の話ですがVBAにも共通する点が多いので一読を
http://hp.vector.co.jp/authors/VA020977/kouza/kouza000.htm
の最後に有る
『VBちょっといい話』

QHTML id名とjavascript変数名

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>test</title>
<script type="text/javascript">
window.onload = function() {
console.log('test' in window);
test.addEventListener('click', function() { alert('click') }, false);
};
</script>
</head>
<body>
<div id="test">test</div>
</body>
</html>

何かすごい勘違いをしていたらお恥ずかしいのですが、

上のコードFIREFOX以外(IE、Chrome、safari)'true'でtestをクリックするとalertが

出るのですが、これって自動的にid名がグローバル変数になってるって

ことなのでしょうか??

id名と同じ名前で変数を宣言していて、ぶち当たりました。

どうぞよろしくお願いいたします。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>test</title>
<script type="text/javascript">
window.onload = function() {
console.log('test' in window);
test.addEventListener('click', function() { alert('click') }, false);
};
</script>
</head>
<body>
<div id="test">test</div>
</body>
</html>

何かすごい勘違いをしていたらお恥ずかしいのですが、

上のコードFIREFOX以外(IE、Chrome、safari)'true'でtestをクリックするとalertが

出るのですが、これって自動...続きを読む

Aベストアンサー

<form name="form1"> としておくと、document.form1と書けるようになるのと同じような物で、
JScriptというIE用のJavaScript互換言語仕様です。
他にも、document.all.testという書き方ができます。

Opera、Safari、ChromeはJScriptの多くの部分をサポートしていますので、id属性を付与したHTML要素はidがグローバル変数として使えるようになっています。


Firefoxは何かの設定(about:configだった気がします)を変更することで、この機能を使えるようになると思います(記憶があやふやです)。


HTML5 WebAPIで標準仕様に定めようと言う動きもありますが、反対意見もあるため、今後標準化されるかはわかりません。
標準化されなくてもFirefoxがサポートするようになれば、メジャーなすべてのブラウザで使える独自規格となります。
すべてのブラウザで使えるから問題無しとするか、標準仕様だけを使うべきとするかは、制作者の考え方次第だと思います。
(HTML-DOMを使用してdocument.getElementById('test')とするのが、すべてのブラウザで使用できる標準規格です。)

ちなみに、consoleは標準ではありません。。。なかったと思います。

<form name="form1"> としておくと、document.form1と書けるようになるのと同じような物で、
JScriptというIE用のJavaScript互換言語仕様です。
他にも、document.all.testという書き方ができます。

Opera、Safari、ChromeはJScriptの多くの部分をサポートしていますので、id属性を付与したHTML要素はidがグローバル変数として使えるようになっています。


Firefoxは何かの設定(about:configだった気がします)を変更することで、この機能を使えるようになると思います(記憶があやふやです)。


HTML5 WebAPI...続きを読む


人気Q&Aランキング

おすすめ情報