Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gongo/889831 to your computer and use it in GitHub Desktop.
Save gongo/889831 to your computer and use it in GitHub Desktop.

記録:Kたくさん

変数とは

  • 定数、引数
  • グローバル

変数と定数の違いはなんですか?

まずは定数

定数は中身を変更できない。 いつ、どういった場面でつかうのよくかわからない。 枠がきまっているような場面(サイズとか)、定数になるんじゃないかな。 型のサイズとか、決まっているよね。

// こんなイメージじゃないかな?: C っぽく

String a[128]; // 数字が直書きされていると
String b[128]; // 書かれている場所を、全部おきかえる
String c[128]; // のが面倒

const int BUFFER_SIZE = 128;
String a[BUFFER_SIZE]; // 定数をつかうと
String b[BUFFER_SIZE]; // 他の場所にある数字を
String c[BUFFER_SIZE]; // おきかえなくてもよくて、楽
' こんなイメージじゃないかな? VB っぽく
Dim YEAR_STRING_SIZE as Integer
YEAR_STRING_SIZE = 4
Private const YEAR_STRING_SIZE as Integer = 4
year_s AS String * YEAR_STRING_SIZE

他の人が修正するときに、その定数を使うかわからないじゃ ないですか。なら、変数でいいじゃないですか。

定数は、ほかの場所でかってに宣言することは少ない。 (使われてない可能性が高い)

使いたい値が変数に入れちゃってると、後で変わってしまう。 値を使うときに変わってないことを調べてあげないといけない。

変数がどれだけ変化するのかってのを出してみる。

みんなコーディング規約をちゃんと守りましょう。

変数名をみた瞬間に定数か変数かわかるようにしよう。

一人でプログラムを書くときは、定数とかあんまり意識しない。 多人数でプログラムするときに、 はじめて意味がでるものじゃないかなと。

定数のまとめ

  • 僕にだっていみがあるんですという主張
  • 絶対に書き換わらない、プログラム側での保障
    • 変数はどっかで書き換わる可能性がある
  • 多人数で書くときへの気使い

次は?

引数は、ちょっと飛ばして。次はグローバル変数。

VBでのグローバル変数の宣言いろいろ

Global Var as integer

Global はつけないことが多い。 惑星では、変数は上にまとめることが多い。 Global ってつけて書いても、上に書いてもあんまかわりはない。

共通バス? hoge.bas <= こういうファイルによくつかうものをまとめる

上で宣言するとのと、バスで宣言するのはどう違う?

;; 会長は hoge 好き。

バスファイルは、あんま編集しちゃだめ。 触るんなら、声かけてね!って言われる。 <= 社内のルール!

バスの中でしか Global できない? Global って使ったことないから、よくわからない。 フォームファイルの中で、 Global は使ったことがない。

配列

配列のイメージ

Dim a(5) as Int
Redim a(5)  ' <= 配列サイズを再指定

変数を宣言して、その変数

Dim v as Int
v = 4
Dim a(v) as Int  ' <= こうするとエラー <= 定数だとどうなる
Dim a() as Int
Dim v as Int
v = 4
Redim a(v) as Int '  <= こうするとできる
Private const c as Int = 4
Dim a(c) as Int '  <= これは、なんだかできそう?
  • Redim は、配列初期化に使うことが多い。
  • ループでまわるときの前に使っていることが多い。
    • 業務によってかわるみたいw

配列は好きです!

他に配列で注意すること。インデックスが 0 始まりか 1 始まりかなど。

定数の配列ってあるの? python にはある!

>>> a = (1, 2, 3)  <= python にはタプルがある
>>> a[0]
1
>>> a[0]=2
Traceback (most recent call last):   <= タプルは読み込み専用なのでエラーになるFile "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> a = [1, 2, 3]
>>> a[0]
1
>>> a[0] = 2
>>> a
[2, 2, 3]

次回はこんな感じ

  • 配列の続き
    • 二次元、三次元
  • 関数
  • 引数
  • 戻り値
  • 戻り値の型

R行さんの発表

地球最後の日 ~ 地球が破滅する日を算出してみよう~

  • 階乗を計算するプログラムを作成
  • フィナボッチ数列を計算するプログラムを作成
  • ハノイの塔を計算するプログラムを作成

今日は、ここまで!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment