プログラミングやアプリケーションで遭遇した 「ちょっとした問題」について、気が向いたときに書いてます。 このブログは有用であることを願って公開されますが、 *全くの無保証 *です。
VBA プログラミング
こんにちは。プログラミングで複数の値をまとめる考え方には、数学に端を発する2つの流れがあります。 プログラミングの初歩で、複数のデータを記録しようとすれば「配列(array)」というコンセプトに出会うことになります。 配列は、連続するメモリ空間にデータを順次記録してい...
Excel プログラミング
こんにちは。Excelでデータ集計をするときに、関数とマクロのどちらで解決すべきか悩むことは結構あると思います。 そんなときには、関数とマクロの性質の違いに着目してください。 --- 関数には、「必ず一意に定まる」という特徴があります。 つまり、関数の結果...
Java OSS プログラミング
こんにちは。Javaプログラミングで乱数を制御する必要があったので、シンプルに導入できるメルセンヌ・ツイスタを探しました。 --- 松本眞氏と西村拓士氏によるC言語版をDavid Beaumont氏がJavaに移植したものが都合よく、一つのソースコードをインポ...
プログラミング レビュー 本棚
C++のARM(注解 C++リファレンスマニュアル; The Annotated Reference Manual)を読んでいます。 基底クラス(base class)とスーパークラス(super class)という 2つの用語のニュアンスの違いについての記述が 興味深かったので...
Windows プログラミング
PCのブラウザで閲覧しているphp(ログインが必要なページ)から出力されたWebページを簡単に分析に回せるシステムが欲しくて、少し調べてみました。 いちいちソースを保存して、分析スクリプトにかけるのも煩わしいので、何かうまいやり方がないかと探したのですが… Androidでできる...
Java プログラミング
ゲームなどでセーブデータを管理するためのオブジェクトのひな形を作りました。 Serializableインターフェースの使い方の実例になると思います。 SaveData.java import java.io.FileInputStream; import java.io....
プログラミング レビュー
プログラムの設計はいくつか本を読んでみたのですが、結局、適当にしてコードを書きながら付け足していくことが多いです。そんなことありませんか。 行き当たりばったりなのですが、もう少しシステマティックに(体系化)できないかなとよく思います。 関数型プログラミングの関連で興味を持った本...
Javaでの、C言語でいうsprintfのような関数はString.formatです。 String.format(String format, Object... args) => String コード例 public class SprintF { publ...
^\s*$ 空白行にマッチする正規表現 テキスト処理で空白文字のみの行を除外したい場合は多いのではないでしょうか。よく使うのでメモです。 Javaで簡単にテストしています。 import java.util.regex.Pattern; public class Bla...
プログラミング
値をmin <= v <= maxのように範囲内に収める計算をよくするのですが、 そういう関数の名前を調べてみたところ、clamp( ぎゅっと 締める )というそうです。 参考: C++1z 値を範囲内に収めるclamp()関数 動作アルゴリズムを適当な疑似言語で...
こんにちは。自分のプログラムのコアでない部分は独自のインタープリタを作って、スクリプトにしたい場合がよくあるのですが、その設計についてまとめてみます。 デザインパターンののInterpreterで1から実装するのも大変なんですよね。 Yaccに代表されるパーサージェネレータ...
java.langパッケージは暗黙的にimportされます。 数値処理クラス --- Math, Integer, Boolean, Double … 文字列クラス --- String, StringBuilder, StringBuffer オブジェクト操作...
こんにちは。 Javaの自分のクラスをどういうパッケージでまとめるかについての考えをまとめてみたいと思います。 基本的には内部動作の関係でまとめるよりも、利用文脈の近さでまとめる方がよいように思います。 例えば、モデルとビューを分離していくつかのクラスを作る場合、モデル...
デザインパターンについて調べ直してみました。はじめに習ったころに比べて、いろいろな意見があるようです。出たころは斬新だったとしても今となっては陳腐化されてしまったデザインもありますしね。 頭で把握するには23個は多すぎるので、関連や違いをすっきり整理したいところです。 2つの...
コレクションと言うのは大きさが決まっていない配列のようなものです。各コレクションの基本操作をまとめてみます。 java.util.ArrayList java.util.LinkedList java.util.HashMap コレクションの生成 ArrayL...
単純なものですが、 Point (int x, int y) Dimension (int width, int height) Rectangle ( Point p, Dimension d) Rectangle (int x, int y, int width,...
VBA プログラミング 講座
昔からあるシンプルな関数を使って、文字列を操作してみましょう。 使う関数は、以下の4つです(Lenは使っていませんでした・・・) Len(s) = 文字列sの文字数を返す Left(s, n) = 文字列sの左からn文字目までの部分文字列を返す Mid(s, n,...
VBAで繰り返しと変数を利用してみましょう。 A列に0~100の数を B列に2の累乗を表示します。 変数i(Iterator)では累乗の数をカウントします。 変数n(Number)を2倍にしていきます。 変数r(Row)は結果を書き込むセルの行番号を保持します。 ...
VBAの変数は、プロシージャに参照を渡すと Aliasのように参照元も書き変えることができます。 Sub inc(ByRef i) i = i+1 End Sub Sub test_inc Dim k k = 20 inc k inc k ...
VBAのCollectionクラスを連想配列のように使うという話。 VBAの基本のデータ型はいまいち使いにくいですが、 平たくいうと、RubyでいうHashのようなものです。 順不同のデータを気軽にストックしておきたい場合に使います。 コード Sub test_co...