ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

2周年を迎えて~近々の予定報告

当ブログは2周年を迎えたわけですけども、考えてみたら私は中学三年生になったんですね。

やべえ…やべえ…。

プロフィールページを更新しないといけませんね。

あと、ついでなので、「当ブログの利用規約」とかも見直します。


そういえば、当ブログと相互リンクしている方々の大部分が高校生に進学しました。

おめでとうございます。


相互リンク中の皆さん、ちょっと前まで中2だったんですけどね~。
私もちょっと前まで中1だったんですが(笑)


今後の目標はとりあえず、小遣い帳ソフト(仮称)を完成させることですね。

GUIを作れば完成です。

正式タイトルも考えないといけません。
タイトルは悩みます。


というわけで、昨日もいいましたが、
これからもブログ「サイバー少年」をよろしくお願いいたします!

tag:

祝!ブログ「サイバー少年」、2周年!!!

ブログ「サイバー少年」 2周年記念!!!

当ブログ「サイバー少年」はとうとう開設から2周年を迎えました!

もう2年ですよ。

去年、ブログ1周年を迎えたときの記事「祝!ブログ「サイバー少年」、1周年!!!」では、

たったの1年間ですが、かなり長く感じました。

と書きましたが、今回の1年はあっという間だったなぁという印象です。


今年度は特に新しいことに挑戦することはありませんでしたが、
なんといっても記憶に残っているのはライブラリ「Plugin-Load Library」の制作ですね。

今年度の大部分がこれの制作でした。

まぁ、作業をサボりまくっていただけですが…。

この作品の制作以外でも色々とやっていることはやっていた1年です。


例えば、PICマイコンとPICマイコン用ライターを買いました。
(記事「PICマイコン購入!」を参照)

「買ったんだから早くなんか作れよ!」という声を華麗にスルーしております。

なかなか難しいんですよね…。
アセンブラだけじゃなくて、回路設計が難しいんですよ。

プログラムを組んで終わりじゃないですからね。
電源の繋ぎ方とか、電流を安定させるためにコンデンサを繋ぐ~とか難しいです。

というわけで、優先順位は低めですが、勉強中ということにしておきます。


あとは、WPFを始めましたね。

まだまだ不明なことが多いですが、Gridの使い方や、簡単なデータバインディングやTriggerは使えるようになりました。


また、これは結構、大きめの成果なんじゃないかと思いますが、データ構造をいくつか勉強しました。

・スタック、キュー
・連結リスト
・二分探索木、AVL木
・ハッシュテーブル、辞書

ただ、ソートアルゴリズムや探索アルゴリズムは全然、勉強していないので、これからの目標はこれですね~。


あとは数学ですね。

三角関数について勉強した時期があったので、高校でも少し有利になる…かな。


主に勉強したことはこのくらいですね。



当ブログは6年間、続けていくことを目標としています。

当ブログ1件目の記事「はじめまして」にも書いてあります。


ところで、当時は一人称が「僕」だったんですね。
ブログ開始1か月後にはもう「私」になっているみたいですが。

「僕」のほうが中学生らしいさわやかさがあって良かっただろうか…。
今となっては直せませんけどね。


話を戻すと、当ブログは6年間、続けていくつもりです。
当ブログURLにcyberboy6と、6が付いているのもそのためです。

まぁ、cyberboy.blog.fc2.comが獲れなかったからなんですけどね。


というわけで、6分の2が終わりました。

来年はちょうど、目標期間の半分を迎えるので、今年度よりも少しテンション高めで祝おうと思っています。


そろそろ書き終わりましょう。

皆様、2年間ありがとうございました。
もっとアクセスください!


今後も当ブログ「サイバー少年」をよろしくお願いいたします!!!

tag:

当ブログ2周年記念の画像を貼りました!

明日が当ブログの2周年の日だと思っていたのですが、今日でした。

まぁ、それについては今日書く予定のブログ2周年記念の記事でも話します。


当ブログは2周年を迎えました!

というわけで、昨年同様に2周年記念の画像をトップに貼りました。

トップを見れば分かりますが、撤去した後に見る人もいると思うので貼ります。


当ブログは2周年を迎えました!
当ブログは2周年を迎えました!


CYBERBOY'S BLOG
2ND ANNIVERSARY!



昨年もそうでしたが、当ブログのタイトル画像を継承した、宇宙風の背景と、かっこいいフォントの文で構成されています。


ただ、昨年よりもシンプルになっていますね。
(記事「当ブログ1周年記念の画像を貼りました!」を参照)

昨年の画像はブログタイトル画像をそのまま含めたりしていました。


さて、この宇宙風の画像を作るときに毎回お世話になる、このかっこいいフォントですが、

Iconian Fonts
http://www.iconian.com/

というサイトを運営されている方が制作された「Vindicator」というフリーフォントを使用させていただいております。


海外の方なので、謝辞は日本語で言っても通じません。

もし当ブログをご覧になってしまったときのために、毎度のことですが
Thank you!
と書いておきます。


この画像、現在はブログのトップに貼っておりますが、1,2週間でトップから撤去する予定です。

冒頭でも言いましたが今日はこの後、ブログ2周年記念の記事も書きます。

tag:

[C#] 継承の仕組みと仮想メソッドテーブル

私、Jimmyさんという方(昔コメントを頂いたことがあります)がやっているブログを見ていまして、

型の疑問[Java]#スーパー型にサブ型を代入した時、スーバー型がどのようにサブ型のメンバを管理しているのか分からない - Newt Net(ひよっこプログラマー日記)
http://newtgecko.blog.fc2.com/blog-entry-213.html

という記事にコメントしたんですよ。

ただ、コメントを書いてあるあいだに自分でもよくわからなくなってきて、矛盾していることを書いたりしてしまったので、こちらでまとめようと思います。


テーマは継承についてです。

継承というのはどういう仕組みで実現されているのかを書いていきます。

また、仮想メソッドテーブルという物についても書きます。


C#前提で話していきますが、Javaにも通用すると思います。
↑最近こればっかり言っている気がする…。
続きを読む

tag:

祝!ブログアクセス5万件突破!!! & もうすぐブログ2周年

ブログアクセス5万件突破!!!

当ブログへのアクセス数(ページビュー)が5万件を突破しました!


いつも当ブログをご覧くださっている皆様、ありがとうございます。

そしてさらに、たまにTwitterで話題になったときは、1日に200件くらいのアクセスが来ます。

これも5万件突破を大きく支えてくれました。
ありがとうございます。




過去記事を見たところ、アクセス数4万件を突破したのが2013年11月25日のようです。

(記事「アクセス数4万件突破ああああああ!!!」を参照)

ちょうど4ヶ月前ですね。
4ヶ月で1万アクセスとは素晴らしい。

続きを読む

tag:

小遣い帳ソフト、GUIのイメージ図!

現在、GUIのデザイン段階にある小遣い帳ソフト(仮称)ですが、今日はデザインのイメージを少し考えてみました。

とは言っても、とくに言及すべきことはなく、普通のデザインなんですけどね…。


新規登録ダイアログ
新規登録ダイアログ


これは支出または収入を新規に登録するさいのダイアログです。

ですので、メインの画面が別にあって、
その画面から「新規登録」ボタンを押すと、このダイアログが表示される、というわけです。

メインの画面はまだ具体的には考えていませんが、
主に最近の支出または収入の情報を表示させようと考えています。


もともと、この小遣い帳ソフトがシンプル主義で作られているので、
ウィンドウが複数になると複雑化しないかという懸念はありますけどね。

続きを読む

tag:

小遣い帳ソフト(仮称) アルファ版公開!

前に記事「小遣い帳ソフトの制作計画!」にて、


また、Model部分だけ完成したら、CUIの簡素なViewを作成してコンソールアプリケーション版として公開するかもしれません。


と書きましたが、Model部分だけ完成したので、CUIの簡素なViewを作成して、アルファ版として公開しました!

KodukaiChou_01.zip - Yahoo!ボックス
http://yahoo.jp/box/sRF-bA


使用方法は付属のReadMe.txtに書いてあります。

ここでは「ユーザー = テスター」という暗黙のルールがあるので、まぁよろしくお願いします(笑)


それにしても、制作の計画が始まったのが去年の12月半ばなんですが、Modelだけでも結構な時間が掛かるものですね。


Model部分はかなり簡単だろうと思っていたんですが、
プログラムが、コメントと空行を除いても1676行という超大作になってしまいました。

簡素なViewのプログラムも簡素といっているのに、コメントと空行を除いても727行あります。


まぁ、Viewのプログラムは入力文字列が数値かどうかのチェックをするのでかなりの行数を費やしていますし、

使い捨てのプログラムだからいいや、ということで処理をメソッドで共通化したりもしませんでしたので、行数が多くなるのは仕方ないことですね。


というわけで、バグ報告お待ちしております!

また、改善点の指摘もどうぞコメント等でやってください。

まぁ、面倒そうな内容なら次回バージョンでも反映できないと思いますが…
(笑)

tag:

[C#] StreamWriterクラスと改行の注意点!

今日、C#のStreamWriterクラスでテキストファイルを書き出していて、気づいたことを書きます。

StreamWriterクラスはテキストをファイルに書き出すクラスです。


それで、StreamWriterのインスタンスを格納するwriter変数があったとして、

writer.WriteLine("改行します。");
writer.WriteLine("改行しました。");

こういうプログラムと

writer.WriteLine("改行します。\n改行しました。");

こういうプログラム、書き込む内容は一緒だと思いませんか?


私も今日までそう思っていました。

しかしなんと、違うのです!

なんとWindowsのメモ帳で両者のテキストファイルを見たところ、

前者は"改行します。"と"改行しました。"の間が正常に改行されているのに対し、
後者は間の改行がなされていませんでした!
続きを読む

tag:

[C#] foreach文で連結リストを探索! ~ foreach文を再考…してる? ~

前回と同じような記事タイトルになってしまって、“連結リスト探索シリーズ”が生まれそうですね(笑)

前回はC言語系のfor文で連結リストを走査できる、という話題でしたが、
(記事「for文で連結リストを探索! ~ for文を再考する」を参照)

今回はC#の話に限ります。
しかし、多分Javaにも通用すると思います。


.NET Frameworkには連結リストのLinkedList<T>が標準で用意されています。

前回は連結リストをfor文で走査しましたが、なんとC#ならforeachで操作できるのです。


LinkedList<T>はIEnumerable<T>を実装しているからです。

T型の要素の列挙としても扱えるわけですね。

例えばこんな感じです。


var list = new LinkedList<string>();

list.AddLast("バナナ"):
list.AddLast("黄色");
list.AddLast("キレンジャー");
list.AddLast("カレー");

foreach(string str in list) {
Console.WriteLine(str);
Console.Write(str + " といえば ");
}


出力

バナナ
バナナ といえば 黄色
黄色 といえば キレンジャー
キレンジャー といえば カレー
カレー といえば


for文で走査したときよりさらにシンプルに書けていいですね。


ただ、実行速度等の処理パフォーマンスはfor文で走査するときよりも劣りますので(そのはず)、注意してください。

その主な原因はforeachが外部イテレータを使っているからです(そのはず)

まぁ、配列に変換しているわけではないので、list.ToArray()をforeachにかけるよりは高パフォーマンスですね。


処理パフォーマンスと書きやすさのどちらをとるかはよく考えてください。

tag:

for文で連結リストを探索! ~ for文を再考する ~

for文というものがありますね。

今まで、配列のアクセスくらいにしか使っていませんでしたが、本当は自由度が高いんです。

最近、その自由度の高さでfor文を見なおしました。


for文は一般的に

for(int i = 0; i < 256; ++i)

と書きますが、本質的には

for(最初に実行する文; ループ抜けの条件式; 毎回実行する文)

となっています。


これは

最初に実行する文;

無限ループ {
毎回実行する文;
if(NOT ループを続ける条件式) ループ脱出;

波カッコ内に記述してある処理;
}

に等しいです。

for文はこれのシンタックスシュガーなのかな?

シンタックスシュガーだとしたら、“最初に実行する文”にて宣言した変数のスコープがループの外でも有効ですね。

じゃあ、違うのかな?
まぁ、それはいいとして。

別に数値型のカウンタ変数を用意しないといけないわけじゃありません。

for文のカッコの中は何でもいいんです。



さて、こんなに自由度が高いので、for文は連結リストの走査にも使えるということに最近、気が付きました。

C#風の言語で書くと、こうです。

for(Node node = rootNode; node != null; node = node.Next)
{
WriteLine(node.Value);
}


波カッコの中はWriteLineじゃなくても、値の検索でもいいでしょう。

こうするとシンプルに走査できて良いですね。


1つ問題を言うと、自由度はありますが、一方でVBみたいな分かりやすさはありません。

VB.NETだと、

For i As Integer = 0 To 255 '「Step 2」とかで加算する数も変更可能
Console.WriteLine(Array(i).ToString())
Next i


と書きますが、これは分かりやすいのです。


自由度を取るか、分かりやすさを取るかですね。

今回、C言語系のfor文を褒めておいて、実は私はVB.NETのFor文のほうが好きだったりします。

tag:

次のページ

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。