2014年11月30日日曜日

【PHP】多次元連想配列の学習記録

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。

今日は下記のページを参考に勉強しました。とても役に立ちました。ありがとうございます。

PHPの多次元配列と連想配列についてのサンプル


下記は上記のリンクのコードをテスト結果を格納するように変更しました。実際には次のTAGが抜けています。


2014年11月29日土曜日

引き続きPHPの勉強です

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。

引き続きPHPの勉強をしています。今日はネット上で見つけた次のリンクを使いました。
「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました」


オブジェクト指向はクラスの使用とともに教科書的な勉強はしてきましたが、とても簡単な練習問題を使いながらもそのポイントが改めて理解できる、良い講義でした。

例えば1から20の自然数において、基本はその数字を表示させるのですが、FizzBuzzという3で割り切れる数にはFizz、5で割り切れる数にはBuzz、両方で割り切れる数にはFizzBuzzで置き換えるというものです。

私の始めのコードも注文通り、入力部と出力部のコードがごっちゃになったものでした(笑)。

PHPでアレイとForeachの学習

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。

php.orgのマニュアルを参考にアレイとforeachのお勉強をしました。
http://php.net/manual/en/language.operators.string.php


$low = 1; $high = 30; $step =1;
$i = range($low, $high, $step);

print_r ($i);
echo "
"; // リファレンスとして使用しないと、アレイ$iの要素はそれぞれ2倍とならない foreach ($i as $value){ $value = $value * 2 ; } print_r($i); echo "
"; // リファレンス使用で、アレイ$iの要素はそれぞれ2倍となる foreach ($i as &$value){ $value = $value * 2 ; } print_r($i); unset($value)

アレイ$iのアウトプットは、それぞれ次のようになります。

オリジナル
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 [11] => 12 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [16] => 17 [17] => 18 [18] => 19 [19] => 20 [20] => 21 [21] => 22 [22] => 23 [23] => 24 [24] => 25 [25] => 26 [26] => 27 [27] => 28 [28] => 29 [29] => 30 )


2倍となっていない
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 [11] => 12 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [16] => 17 [17] => 18 [18] => 19 [19] => 20 [20] => 21 [21] => 22 [22] => 23 [23] => 24 [24] => 25 [25] => 26 [26] => 27 [27] => 28 [28] => 29 [29] => 30 )


2倍となった
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 [5] => 12 [6] => 14 [7] => 16 [8] => 18 [9] => 20 [10] => 22 [11] => 24 [12] => 26 [13] => 28 [14] => 30 [15] => 32 [16] => 34 [17] => 36 [18] => 38 [19] => 40 [20] => 42 [21] => 44 [22] => 46 [23] => 48 [24] => 50 [25] => 52 [26] => 54 [27] => 56 [28] => 58 [29] => 60 )




2014年11月24日月曜日

Web等の技術を、もっともっと教育利用できればいいですね

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。

昨今のニュースを見ていて、技術、資本そして言葉も含めて、ありとあらゆるものが諸刃の剣かも知れないと思う今日この頃です。

その一方で、けっして暗い側面ばかりではなく、正しく活用すれば「その良い面を使って、もっと人々に役立たせることも出来る筈だ」という期待を持っています。

映像技術やWebの技術はもうすでに教育現場で活用され成果をあげていますが、さらに「技術の進歩と普及」を教育活用していけるのかも知れません。

********************

2014年11月23日日曜日

ScilabによるFDTDの学習(1) 1次元方向への電磁波の伝播

 Scilabを使っていますが、ソースコードを掲載することはMatlabのFile Exchangeの規約に反すると思われ、掲載を見送っています。いつかオリジナルでプログラミングした際に、ソースコードを掲載したいと思います。

以前、あるドクターから宿題があり、FDTDによる電磁波伝播のシミュレーションの勉強をしたことがあります。

その際にMatlabクローンのScilabを使って、自由空間を1次元方向に進む電磁波をシミュレーションしてみたのが、下記のグラフです。

原点(0,0,0)で時間的にSineとして振動する電場を与え、それが垂直方向に磁場を作り、またその磁場が電場を作っていきます。実際はこの波が進んでいく様子が 経時的にアニメーションのように表示されます。

付録:グラフのお化粧およびアニメーションの作成 : 最終のScilabコード(1)

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。


前回Sine波を重ね合わせてのこぎり波を近似するプログラムを前回紹介しました。

Scilabにおける関数の定義と使い方(2)

波形を表示するエッセンスの部分は非常に短いコードですが、グラフのタイトルや軸の名称がなかったり、表示ごとに縦軸の最大値が表示波形の振幅に伴って変わってしまうなど問題が残っています。

その際エッセンスの部分のコードだけ紹介しましたが、グラフのフォーマットなどを含めた最終的なものをご参考に記載します。最後に描かせたグラフを静止画のgifフォーマットとして出力させています。