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」の部分も同様で変数を使う目的...続きを読む

QStringクラスの変数の格納アドレスを知りたい

いつもお世話になります。

Javaの文字列クラスのStringは参照型ですが、この変数の値が格納されたアドレスを知るためにはどうすればよいのでしょうか。eclipse上で、文字列の変数に対してtoString()を試してみたところ、格納されている文字列が出力されました。

※自作したクラス、たとえばtest.MyClassだとすれば、toString()を用いれば「test.MyClass@01234」というような表記で出力されますが、このような情報を取得するにはどうすればよいでしょうか。

宜しくお願いします。

Aベストアンサー

「test.MyClass@01234」の@以降の部分は変数の格納アドレスを表していませんし、そもそもStringの格納アドレスを知って何をしたいのでしょうか。
本当にアドレスを知りたいのであれば、一番簡単なのはJNIを使うことだと思います。

Q【Java】参照型で宣言された変数名の抽出

現在、Javaを学習中の大学生です。

Javaのソースコードを解析し、その中で宣言されている変数名を抽出して、
変数表のようなものを作成するJavaプログラムを書いているのですが、
参照型(クラス型)で宣言されている変数名を抽出する方法が思いつきません。
よろしければ、何かアイディアをいただけないでしょうか。

プリミティブ型の変数については、StreamTokenizerクラスを利用しています。
コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
するという、単純な方法を使っています。こちらも、改良すべき点などあれば、
アドバイスいただけるとありがたいです。

デバッガを使えば出来ないことはないようですが、
出来ればデバッガは使わない方法でお願いします。

Aベストアンサー

ひとまず
>コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
この方法だとローカル変数も抽出してしまうと思いますが
ローカル変数も抽出の対象にするんでしょうか?

ローカル変数を対象としないなら、alice_asahina様の回答にある様にリフレクションが楽でしょう。
ただし、その場合は抽出元がソースコードでは無くクラスファイルになる事に注意して下さい。

あくまでソースコードを対象として処理するのであれば、
>コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
でしなければならない事の概要としては間違っていないと思いますが、
実装の上ではjavaがフリーフォーマットである事に注意して下さい。
型名の途中にホワイトスペースが挟まる事はありませんが、配列の場合こんな書き方も出来ますので。

int a
[
];

また、その際にローカル変数を抽出の対象にしないのであれば、
更に宣言スコープ等を考慮する必要が出てきますし、
これに内部クラスや匿名クラスのフィールドも混ざってくると非常にややこしい事になると思いますが、不可能ではありません。
がんばってください。

ひとまず
>コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
この方法だとローカル変数も抽出してしまうと思いますが
ローカル変数も抽出の対象にするんでしょうか?

ローカル変数を対象としないなら、alice_asahina様の回答にある様にリフレクションが楽でしょう。
ただし、その場合は抽出元がソースコードでは無くクラスファイルになる事に注意して下さい。

あくまでソースコードを対象として処理するのであれば、
>コードをトークンに分解して、型名の次に来るワードトークン...続きを読む

Qテキストファイルの内容を変数に格納したい

$(function() {
$item = "";
$.ajax({
url: 'data/data.txt',
success: function($data) {
$item = $data;
}
});
alert($item);
});

上記のように外部のテキストファイルを読み込んで、その中身の文字列をajaxの外で宣言している変数に格納したいのですが、何も格納できていません。
テキストファイルのパスが間違っているということや、中身が何もないということはありません。
ajaxのsuccess内にalertを置いた場合は値が正しく表示されるのですが、ajaxの外ではやっぱだめです。
ajaxではなくloadでやろうとも思ったのですが、loadの場合はHTML上のタグにしか出力できないので、今回の目的には合いません。
なんとかして、変数にテキストファイルの中身を渡せないのでしょうか。

Aベストアンサー

デフォルトでは ajax() は指定されたデータに基づきファイルを非同期に読み込みます。
この「非同期に」というところがミソで、これは要するに読み込み処理を現在の処理とは別の流れで行います。そのとき現在の処理は ajax() を行った箇所以降を即時に実行します。

現実世界にたとえるならあなたがやりたいのは、どこかに資料の郵送を要求してその資料が届かないうちにその資料を読みたいということです。どう考えても無理ですよね。
ですので、同期的に読み込むように指示する必要があります。

パラメータに
 async : false
を追加すれば ajax() は同期的にファイルを読み込むことになります。
ただし、上記の修正を行った場合は、ファイルの読み込みが終わるまでブラウザの操作ができなくなります。

QC言語のfloat型変数の値代入と表示について

float型変数の値代入と表示について質問があります。

#include <stdio.h>

int main(void)
{
 float flVal = 50.456;
 printf("float型変数:%f", flVal);
 return 0;
}

上記を実行すると、「float型変数:50.456001」と表示されました。
また、float flVal = 50.1; と変えて実行すると、「float型変数:50.099998」と表示されました。

それぞれ期待していた結果は、
「float型変数:50.456000」、「float型変数:50.100000」だったのですが
代入した値と結果が微妙に異なる理由は何でしょうか。よろしくお願いします。

Aベストアンサー

IBMのページから
http://www-06.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/729933
基本的に小数点以下の数値を含むものは(0.5,0.25、0.125などを除き)、誤差が生じるため。

実際の浮動小数点演算プログラムでは、許容できる範囲であれば一致しているとみなして処理を行うことが多い。

irb(rubyの対話型インタプリタ)やpythonのプロンプトで
irb> 0.1 +0.2 == 0.3 (Enter) とすると
falseが返る。

金額計算などでは単位未満(日本での銭単位とか)を扱う場合はこれでは困るので、小数点以下でも有効桁数内では誤差が生じない固定小数点型が用いられる。

COBOLが何のかんのと言われながら、勘定系取引でシェアが高かったのも基本が固定小数点型を採用していた事が大きい

SQLでも整数型、浮動小数点型、固定小数点型みんなあります。
(Oracleは長いこと、固定小数点型で全部こなしてましたが)

JavaではBigDecimalクラスが固定小数点です。ただ、Java演算子のオーバーロードが出来ないので、いちいちadd、sub、multiply、divideメソッドを使わなければならないのがちょっと面倒。

.Net Framwork( VB.NET、C# )のdecimalクラスの方が直感的かもしれない。

ちなみにrubyにもあります。
http://www.ruby-lang.org/ja/man/html/BigDecimal.html

IBMのページから
http://www-06.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/729933
基本的に小数点以下の数値を含むものは(0.5,0.25、0.125などを除き)、誤差が生じるため。

実際の浮動小数点演算プログラムでは、許容できる範囲であれば一致しているとみなして処理を行うことが多い。

irb(rubyの対話型インタプリタ)やpythonのプロンプトで
irb> 0.1 +0.2 == 0.3 (Enter) とすると
falseが返る。

金額計算などでは単位未満(日本での銭単位とか)を扱う場合はこれでは困るので、小数点以下でも...続きを読む

Qオブジェクトを格納するためのローカル変数のデータ型について

ずっとCOBOLユーザで、初めてJAVAを勉強しています。
初歩的なところで、早くも躓いています・・・。

オブジェクトを格納する為のローカル変数の「データ型」について、
私が使用している本に「格納するオブジェクトのクラスがデータ型と
なります。」と書かれていますが、ピンと来ません。

クラス名がデータ型になるって、どういうことなんでしょう?
どなたか、こんな私に判るように説明していただけませんか?
よろしくお願いします。

Aベストアンサー

クラスについては、オブジェクト指向という考え方が生まれる以前のいくつかの方法論を
継承してできあがった概念ですので、一言で説明しようとすると、やや難しい部分が
あります。(特に従来のプログラミングの経験を積んだ方には、なおのこと。)

出発点として、ファイルのレコードのようなものだと考えると分かりやすいかもしれません。
例えば、顧客情報のファイルがあったとします。個々の顧客の情報は一人一人違っていて
当然ですが、同じファイルの中のデータは、通常すべて同じ形式の情報でできています。
Aさんのデータは住所と氏名と・・・とを含みます。Bさんのデータも住所と氏名と・・・とを
含みます。Cさんのデータも・・・ということになっていたとしたら、一般的に
「住所と氏名と・・・とを含むもの」という概念を作ったら便利だと思いませんか?
これがつまり「データ型」であり、Javaでは「クラス」と呼ばれるものです。
すると、例えば「Xさんのデータは顧客情報(クラス)のデータです。」と表現しただけで
「Xさんのデータは氏名と住所と・・・を含みます。」と言ったのと同じことになります。
Javaの文法で表現すると、こんなことになります。
class KokyakuJouhou {
String Shimei;
String Juusho;
:
}
KokyakuJouhou Asan;

とりあえず、こんな理解から始めてみて下さい。

クラスについては、オブジェクト指向という考え方が生まれる以前のいくつかの方法論を
継承してできあがった概念ですので、一言で説明しようとすると、やや難しい部分が
あります。(特に従来のプログラミングの経験を積んだ方には、なおのこと。)

出発点として、ファイルのレコードのようなものだと考えると分かりやすいかもしれません。
例えば、顧客情報のファイルがあったとします。個々の顧客の情報は一人一人違っていて
当然ですが、同じファイルの中のデータは、通常すべて同じ形式の情報でできて...続きを読む

Q 日付型なら変数の先頭になんてつけてますか?

変数名で、
文字列型なら
Dim str組織名 As String
数値型なら
Dim intNo As Long
としてるのですが、
日付型なら変数の先頭になんてつけてますか?

Dim date月日 As Date
にしようかなと思ったのですが
なんかくどいかなって感じます。

Aベストアンサー

 ご質問のカテゴリが [デジタルライフ] - [ソフトウェア] - [Office系ソフト] ですので「VBA(Visual Basic for Applications)」でのお話しとして回答いたします。

 Office 系の解説で有名な「インストラクターのネタ帳」に
●変数のプレフィックス一覧
http://www.relief.jp/itnote/archives/001268.php
というページがありますが、ここに、

'-- ここから引用------------------------------------------------------
対象:Visual Basic for Applications

変数名にデータ型がわかるようなプレフィックス(プリフィックス)をつける記述スタイルがありますが、どのデータ型のときにどんなプレフィックスをつけるか、Microsoftのサイトを元に一覧にまとめておきます。
'-- ここまで引用------------------------------------------------------
として、
データ型/プレフィックス/変数の例
文字列型 (String)/str/strFName
日付型 (Date)/dtm/dtmStart
のように掲載されています。

 ちなみに、上記ページにある論拠としての「Microsoftのサイト」ですが、リンク切れになっておりますので、こちらをご覧ください。
http://web.archive.org/web/20050309034601/http://www.microsoft.com/japan/developer/library/VBCon98/vbconconstantvariablenamingconventions.htm

 ご質問のカテゴリが [デジタルライフ] - [ソフトウェア] - [Office系ソフト] ですので「VBA(Visual Basic for Applications)」でのお話しとして回答いたします。

 Office 系の解説で有名な「インストラクターのネタ帳」に
●変数のプレフィックス一覧
http://www.relief.jp/itnote/archives/001268.php
というページがありますが、ここに、

'-- ここから引用------------------------------------------------------
対象:Visual Basic for Applications

変数名にデータ型がわかるようなプレフィックス...続きを読む

Qphpから値をとってきて変数に格納するには?

phpから値をとってきて変数に格納するにはどうすればいいのでしょう?
ちなみにjavascriptはほとんどさわったことのない初心者です。

やりたいことを具体的に説明します。
p.php

<?php
yy = "test string";
//?(1)
?>


js.html

<script language="javascript">
var xx;
//?(2)
</script>


最終的に、php内の変数「yy」の内容をjavascriptの変数「xx」にいれたいのです。

よろしくお願いします。

Aベストアンサー

イロイロやり方はありますがとりあえずはこんな感じで

//p.php
<?php
$yy="test string";
?>
xx="<?=$yy;?>";

//js.html
<script type="text/javascript" src="x.php"></script>
<script type="text/javascript">
alert(xx);
</script>

Q変数の型を定義しなかった場合どうなりますか?

現在、VBAを使ってプログラミングを行っているところなのですが、
一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、このように型を定義しなくとも使うことが出来ます。もし定義しなかった場合、その変数の型は何に設定されているのでしょうか?
では型を定義するメリット及び、せずに使った場合のデメリットは何なのでしょうか?

私が使っているのはVBAですが、他の言語では型を定義しなければ、その変数を使うことが出来ないというようなものもあるのでしょうか?

Aベストアンサー

こんばんは。

>一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、

もし、入門者に対して、そのようなことを言う人は、経験のあるインストラクターではないと思います。有名な教本などには、そのようなことは書かれていないはずです。

変数を使う時の問題点をあえて書かせていただきます。

私は、今のところ、VBA専門の回答をしていますが、VBAの入門レベルの人は、変数のデータ型を宣言すると、初心者には分からないエラーが時々出るようになります。入門レベルでは、宣言するというのは、入力間違いを減らすために、モジュールの先頭に、Option Explicit と入れ、プロシージャ内で単に Dim 〇〇 とすればよいです。

データ型が決められていないなら、データ型の宣言しないほうが分かりやすいはずです。無理に入れたところで、初心者は、どうしてエラーが発生したか分かりません。それは、扱うデータ型のサイズなどが分からないからです。

VBAの変数のデータ型には、ほとんど、それしかないというものがあるのですが、そういう変数が分かるようになるまでは、しばらくは、テキストを参考にしたり、自分でトライアンドエラーを繰り返し、VBEditor のローカルウィンドウを確認しながら入れてもらうしかありません。ローカルウィンドウには、Variant/Long とか、本来のデータ型が出てきます。

私は、そういう話は、決まりきったことであっても、説明するのは面倒だと思うことが多いです。私は、あまり入門者に対しては教えることはしませんが、分からなければ、あえて使わなくてもよいと言います。

今のPCのスペックで、変数を宣言しないからといって、言うほどの大きな違いがあるとは思えません。Variant 型やString 型は、2Gまでの余裕があるのですが、VBAでは、それ以前に、アプリケーションがVBAに割付されたメモリの制限があり、そこでトラブってきてしまいます。まず、変数自体で、どうこうなるとは思えないです。

本格的には使いこなしは、建前論ではなく、本来、明示的に入れないと意味がありません。

主に、丸め誤差に対してデータ型のゆらぎが発生します。
'-------------------------------------------
'計算結果はどれも 0 となるはずです

Sub Sample1()
  Dim dbl_A As Double
  Dim sng_B As Single
  Dim cur_C As Currency
  Dim var_D As Variant
'リテラル値は変数型に影響を受けます。
'Variant型にしておいて、リテラル値に型宣言文字を使用するのは関心しません。
  dbl_A = 0.5 - 0.4 - 0.1
  sng_B = 0.5 - 0.4 - 0.1
  cur_C = 0.5 - 0.4 - 0.1
  var_D = 0.5 - 0.4 - 0.1
End Sub
'-------------------------------------------

>私が使っているのはVBAですが、他の言語では型を定義しなければ、その変数を使うことが出来ないというようなものもあるのでしょうか?

プログラミング言語自体は、ほとんどデータ型の宣言をしないといけないと思います。それだけ、前提となる敷居が高いということです。

逆に、VBAの親戚のVBScript の場合は、データ型の宣言が出来ません。それだけに、例えば、文字と数字の比較は、そのまま比較してはならないわけです。VBAの場合も本来は、If 文字 = 数字 Then という比較すること自体が間違いのはずですが、それがまかり通ってしまうのですから、そういう点でデータ型があやふやになってしまっているわけです。だから、そういうアプリケーションの便利な機能に助けられてコードが成り立っているわけですから、厳密に大きな問題にはならないと思います。

'-------------------------------------------
'VBAサンプルプログラム(本来は、間違いのはずです)

Sub Sample2()
Dim i As Long
Dim j As String
i = 1
j = "1"
If i = j Then
 MsgBox "OK"
Else
 MsgBox "different"
End If
End Sub
'-------------------------------------------

こんばんは。

>一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、

もし、入門者に対して、そのようなことを言う人は、経験のあるインストラクターではないと思います。有名な教本などには、そのようなことは書かれていないはずです。

変数を使う時の問題点をあえて書かせていただきます。

私は、今のところ、VBA専門の回答をしていますが、VBAの入門レベルの人は、変数のデータ型を宣言すると、初心者には分からないエラーが時々出るよ...続きを読む

Q$(this)を変数に入れないと動作しない理由

「WebデザイナーのためのjQuery入門」という書籍でjQueryの勉強をしています。

リンク先 http://gihyo.jp/book/2012/978-4-7741-4856-4

この書籍の中のロールオーバーボタンのスクリプトで質問があります。

以下のスクリプトは書籍に載っているスクリプトですが、これにより画像ボタンにポインタがのる・のらないでボタン画像が切り替わります。

---------------

$(function(){
$('.rollover').each(function(){
var a = $(this);
var img = a.find('img');
var src_off = img.attr('src');
var src_on = src_off.replace('_off','_on');
$('<img />').attr('src','src_on');
a.hover(function(){
img.attr('src',src_on);
},function(){
img.attr('src',src_off);
});
});
});

---------------

htmlは以下になります。※<body>内のみ抜粋

---------------

<body>
<div class="header">
<ul class="menu">
<li><a href="index.html" class="rollover"><img src="menu01_off.png" alt="Home"></a></li>
<li><a href="index.html" class="rollover"><img src="menu02_off.png" alt="Products"></a></li>
<li><a href="index.html" class="rollover"><img src="menu03_off.png" alt="Company"></a></li>
</ul>
</div>
</body>

---------------


質問したいのは、スクリプトの上から3行目の「var a = $(this);」です。

var a = $(this);
var img = a.find('img');

上記を、

var img = $(this).find('img');

とした場合、なぜか画像が切り替わりません。

どちらも同じような気がするのですが、不具合の原因が分かりません。

お分かりの方がいっらしゃいましたら、お手数ですがご回答よろしくお願いいたします。

「WebデザイナーのためのjQuery入門」という書籍でjQueryの勉強をしています。

リンク先 http://gihyo.jp/book/2012/978-4-7741-4856-4

この書籍の中のロールオーバーボタンのスクリプトで質問があります。

以下のスクリプトは書籍に載っているスクリプトですが、これにより画像ボタンにポインタがのる・のらないでボタン画像が切り替わります。

---------------

$(function(){
$('.rollover').each(function(){
var a = $(this);
var img = a.find('img');
var src_off = img.attr('src');
var src_on = sr...続きを読む

Aベストアンサー

>上記を、
>var img = $(this).find('img');
>とした場合、なぜか画像が切り替わりません。

そうしてしまうと、aの値が設定されないから、下のほうにある

a.hover(function(){

が正常に動作しなくなる。


人気Q&Aランキング