PHPでFizzBuzz問題

新人プログラマがIF文、FOR文、演算子を覚えてきたら
まずはFizzBuzzテストで確認してみよう。

FizzBuzz問題とは?


1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに Fizz と、5 で割り切れるなら Buzz と言うゲーム。3 でも 5 でも割り切れる場合は、FizzBuzz の順に言う。これをプログラミングさせるテストをFizz-Buzz問題という。
by はてなキーワードより
http://d.hatena.ne.jp/keyword/FizzBuzz

FizzBuzz問題をまとめると…
・ 1〜100までを繰り返し出力
・ 但し、 3の倍数(3で割り切れる)には、Fizzを付加して出力
・ 但し、 5の倍数(5で割り切れる)には、Buzzを付加して出力
・ 但し、15の倍数(15で割り切れる)には、FizzBuzzを付加して出力




ということで問題を解いてみよう。


FizzBuzz答え

答えは一つじゃないけど、可読性のある記述がいい。とりあえず3つほど挙げておく

解答例①

for ($i=1; $i<=100; $i++) {
  echo $i;
    if($i%3 == 0){
        echo "Fizz";
    }
    if($i%5 == 0){
        echo "Buzz";
    }
    echo "<br>";
}

解答例②

for($i=1; $i<=100; $i++){
    $out = $i;
    if($i%3 == 0){
        $out .= "Fizz";
    }
    if($i%5 == 0){
        $out .= "Buzz";
    }
    echo  $out."<br>";
}

解答例③

for($i=1; $i<=100; $i++){
    $out = (($i%3 == 0) ? "Fizz" : "").(( $i%5 == 0 ) ? "Buzz" : "" );
    echo  $i.$out."<br>";
}

最後の③は、三項演算子を用いた解答例です。
echo "<br>"は、出力時に見やすくする為に入れてるだけです。

Thunderbirdの便利なアドオン

便利というか自分が使っているThunderbirdアドオンを書き出してみる。

Display Mail User Agent

https://addons.mozilla.org/ja/thunderbird/addon/562
送り主のメールソフトをアイコンで表示してくれる。

Lightning

http://www.mozilla-japan.org/projects/calendar/lightning/
Thunderbirdスケジュール管理、TODO管理が可能。別途、Provider for Google Calendarというアドオンを入れれば、Google Calendarと連携ができるので、他ユーザーとの共有も可能。社内のスケジュール管理としてかなり役立つ。

Provider for Google Calendar

https://addons.mozilla.org/ja/firefox/addon/4631
LightningでGoogle Calendarと連携する場合に必要になる。

Quicktext

https://addons.mozilla.org/ja/thunderbird/addon/640
署名や雛型をメール作成画面からクリックで挿入できる。署名の挿入自体は、アカウント設定からできるが、1つのメールカウントに対して、1つだけしか設定できない。Quicktextを使うと、事前に複数登録した署名や雛型を、メール作成画面で選んでボタン1つで挿入できるので便利。

Quote Colors

http://www.geocities.jp/chimantaea_mirabilis/QuoteColors/
返信、返信…返信…と続くと引用文がかなり見づらい状態になる。Quote Colorsは、引用レベルごとにテキスト色、背景色を設定でき、見やすくなる。

Rulerrrrr

http://sandbox.minutedesign.com/extensions/
メール作成画面にルーラーを表示し、1 行あたりの文字数を把握しやすくする。


他にも、「UndoRedo」「Everyday」「Evernote Web Cllipper」「Signature Editor」なんかをいれてあるが割愛。


メモメモ…。

Vista+XAMPPで「CLIの動作が停止しました」と表示される

VistaでXAMPPを設定し、PEARMDB2コマンドプロンプトからインストールしようとしたら、"CLIは動作を停止しました"とエラーダイアログが立ち上がった。普段はXPを使ってるが、今まで見たことも無いエラー・・・なので、Vista特有の問題かと。とりあえずGoogleに聞いてみることにした。
cli

symfonyのエラーについて - PHPプロ!Q&A掲示板

これかですか…。まとめると。

症状:

xampp+vistaphp.exeを実行すると、スクリプトが全部実行し終わった後で、"CLIは動作を停止しました"とエラーダイアログが立ち上がる。
XAMPP 1.6.2で症状確認

原因:

XAMPPのphp_mysqli.dllが悪さをしている。

解決方法:

php.iniのphp_mysqli.dllをコメントアウト
PHP本家のZIPファイルから上書き


ただ、このダイアログを出ても実行したコマンドはちゃんと処理されていた。

Java,Ajax,Ruby,Perl,PHPの入門・HOWTOサイト

順を追って0から学ぶのによさそうなサイト。
さまざまな言語解説があるので、とても便利。
新入社員向けかな。

Javaの学習ならJavaDrive

Ajaxの学習ならAjaxTower

RubyとRailsの学習ならRubyLife

Perlの学習ならPerlPlus

PHPの学習ならPHPBook


各言語の環境構築から書かれているので、0から学ぶ新入社員向けな入門サイト・HOWTOサイトとしてはとてもいい。このサイトと各言語のレファレンスページを参考にしてプログラミングすれば、ある程度のことはできそう。

自分はプログラマなんだと気づいた

ふと気付くと息抜きまでプログラミングしていることに気づく自分


・息抜きに無意味なコードを書く
・息抜きにひたすらインデントを揃える
・息抜きに訳もわからず知らない言語を触ってみる
・息抜きに埋もれてるAPIを使ってみる
・息抜きにエディタの色設定を変えてみる

プログラマ」というか、ただ「仕事好き」ということかも。
明日からもっとまともな息抜きをしよう。
意味のあるコードを書くとか。。。

DELLが起動しない(起動ロゴで止まる)の解決法

いつも通り、何気なくDELL PCの電源ボタンを押したら、Windowsが起動しない・・・。
昨日まですこぶる快調に動いていたのに。
ネットで調べるのも面倒なので、DELLサポートに聞いてみた。結果、解決したので一応メモしておく。

PC

DELL Vostro200 / Windows XP pro

症状

起動時にDELLのロゴが表示されたまま、そこから先に進まない。
(キーボードも認識しなかった)

解決方法

1.電源を切る
2.電源コードを抜く
3.マウスとキーボード以外のケーブルを抜く
4.電源コード差し口の横にある赤いスイッチ(115V)を一旦スライドさせて元に戻す
5.電源ボタンを10回程度、長押ししたりする(電源コードを抜いた状態で)
6.電源コードを差す
7.電源を入れる。

Windowsが無事起動!

どうもWindowsを不正終了したりすると、なんらかの原因で、電気(静電気)が内部に残る?らしく。こういった症状がでる場合があるらしい。なんにしてもマザーボード交換とかにならなくてよかった。