投稿

6月, 2019の投稿を表示しています

ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ありません。

このブログではサイドバーに広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLatexのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

JavaScriptとHTML5 Canvas 2Dを使ってベン図を描く

HTML5 Canvas 2Dを使ってベン図(ヴェン図)をHTML文書上に描くための方法に関する覚え書き。次のような、ちょっとしたJavaScriptアプリを作る手順を示す。 ベン図のJavaScriptアプリ このブラウザはHTML5 Canvasに対応していません。 和集合 共通部分 差集合 補集合 対称差 全体集合 HTML5 Canvas 2Dを使うための準備 HTML5 CanvasをHTML文書に埋め込むにはcanvas要素を使う。 <canvas id='canvas_name' width='250' height='180'> あなたのブラウザはCanvas要素に対応していません。 </canvas> canvasタグにidと幅(width)と高さ(height)という三つの属性を指定し、canvasに対応していないウェブ・ブラウザ向けのメッセージ(例えばCanvas not supported)をその間に入れてcanvas要素の終了タグではさむ。 canvasタグに挟まれた間の文字列は、Canvasに対応しているウェブ・ブラウザでは表示されない。ちなみに、JavaScriptを無効にしてあるとCanvasも無効になる。 idはウェブ・ページに表示するいくつかのcanvas要素を識別するためのもの。同じウェブ・ページにいくつかのcanvasを埋め込むためにはこのidがそれぞれに異なっている必要がある。 幅と高さはCanvasの四角形の枠の大きさを表わす。この幅と高さの枠の中に図が描かれる。この枠をはみ出すと表示されない。大きくしすぎると余白ができてしまうし、小さくしすぎると図がはみ出して見えなくなってしまう。幅と高さ以外の細かい設定は、canvas要素かid属性またはclass属性をセレクタに指定してスタイルシートを使って行うことができる。 次のスタイルシートの記述は、canvasセレクタでCanvasの外枠の線の太さを1pxに、線の種類を一本の実線に、その色を青に設定し、canvas_nameセレクタで背景色を白に設定している。 canvas { border:1px solid 'blue'; } #canv

集合と集合の演算の基本公式

\( a \in A \) \( A \ni a \) aは集合Aの要素。 \( A = \{a_1, a_2, \cdots , a_n\} \) 集合Aは有限個の要素から成る。このような集合を 有限集合 と呼ぶ。 \( A = \{a\} \) 集合Aは要素aだけから成る。1要素集合、またはシングルトンと呼ぶ。 \( \{x | -1 \leq x \leq 1,\space x = \mathbb{R}\} \) xは-1から1までの間の実数。\( \mathbb{R} \)は実数のこと。集合とその条件(意味)は{集合名|条件式}という書式で表すことができる。 \( A \cup B \) 集合Aと集合Bを合わせた集合を 和集合 と呼ぶ。 あなたのブラウザはCanvas要素に対応していません。 \( A \cap B \) 集合Aと集合Bとの共通する部分を 共通部分 と呼ぶ。 あなたのブラウザはCanvas要素に対応していません。 \( A \subseteq B = \{a|(a \in A) \cap (a \in B)\} \) 集合Aの要素a全てが集合Bの要素でもあるとき、集合Aは集合Bの部分集合。 \( A \subset B = \{A|(A \subseteq B) \cup (A \neq B)\} \) 集合Aは集合Bの 真 ( しん ) 部分集合。部分集合と真部分集合の違いは、真部分集合が集合Aと集合Bが等しい場合(\( A = B \))を含まないことにある。 あなたのブラウザはCanvas要素に対応していません。 \( A = B = \{A|(A \subseteq B) \cap (B \subseteq A)\} \) 集合Aが集合Bの部分要素でかつ集合Bが集合Aの部分集合でもあるとき、つまり集合Aの要素と集合Bの要素とが全く等しいとき、集合Aと集合Bは等しい。 \( A \neq B \) 集合Aの要素と集合Bの要素がひとつでも異なっていたら、集合Aと集合Bとは等しくない。 \( A = A \) 集合Aが集合Aと等しいという命題が成り立つことを 反射律 と呼ぶ。 \( A = B \Rightarrow B = A \

PHPの基礎文法をおさらいする(クラスの定義と継承)

PHPはSmalltalkに代表されるような純粋なオブジェクト指向言語ではないが、そのバージョン5から、Zend Engine 2を搭載することによって、オブジェクト指向によるプログラミングの真似事ができるようになった。クラスと呼ばれるものを新たなデータ型としてユーザーが独自に設計することによって、それを変数に代入してオブジェクトとして利用することができる。 オブジェクトとは、C言語でいうところの構造体、Pascalでいうところのレコード、データベースでいうところのテーブルに、それ専用の函数を付属させて作られる変数の一種。 クラスの定義 クラスとはオブジェクトのもとになるデータ型の一種であり、オブジェクト作成用のテンプレートのようなもの。クラスはclassというキーワードを用いて class クラス名{クラスの定義文;} という書式で定義することができる。 次のコードでは、ユーザーのIDとユーザーのメールアドレスを管理するためのuserクラスを定義している。ユーザーのIDとメールアドレスを保持する変数にはprivateというアクセス修飾子を付けて外部から操作できないようにした。その代わり、それらの変数にアクセスするための函数をpublicというアクセス修飾子を付けて定義し、それらの函数を外部から呼び出して使えるようにした。 <?php // userという名のクラスを定義 class user { // ユーザーID用の変数 private $userID; // メールアドレス用の変数 private $mailAddress; // コンストラクタ(初期化メソッド) public function __construct(){ // それぞれの変数に初期値を代入 $this->userID = 'ゲストユーザー'; $this->mailAddress = 'メールアドレス'; } // ユーザーIDの設定用メソッド public function set_userID($value){ $this->userID = (string)$value; } // メールアドレスの設定用メソッド public function s

PHPの基礎文法をおさらいする(定数・演算子・函数)

定数 スカラー値(integer, float, boolean, string)は 定数 として定義することができる。定数は任意のスカラー値の別名と考えることができる。あるいは、値を一度代入したらその値が変わることがない変数と見なすことができる。配列も定数にすることができるらしいが、奨励されていない。 定数を定義するにはdefine函数を用いる。ただしdefine函数を使った定数の定義はクラスの中では使えない。クラスの中ではconstキーワードを使って変数のように値を代入して定義する。 define函数は define(定数名, 任意のスカラー値); という書式で使う。指定する定数名やスカラー値が文字列の場合、シングルクォーテーションかダブルクォーテーションで挟む必要がある。改行を表す \n のようにエスケープしたい文字列がある場合にはダブルクォーテーションで挟む。定数名は変数名と違い、先頭に$を付けてはならず、大文字と小文字を区別しないことに注意。ただし、定数名は全て大文字にするのが分かりやすく、他の言語と同じくそれが慣例になっているようだ。自動的に定義される特殊な定数である マジック定数 は、定義済みの定数の一種で、二つの下線(__)の接頭辞と接尾辞が付く(例:__FILE__)。 次のスクリプトは消費税抜きの価格から消費税込みの価格を計算するもの。define函数を用いて消費税率を定数に置き換えている。 <?php // 消費税率を定数化 define('C_TAX',0.08); echo '税抜価格を入力してください(円):'; // 標準入力を実数型で受け取る $price = (real)(fgets(STDIN,1024)); // $priceが0より大きいなら if ($price > 0) { // 消費税込みの価格を計算して小数点以下を切り捨てる $price_tax = (int)($price * (C_TAX + 1)); // 計算結果を表示 echo "消費税込みの価格は{$price_tax}円です。",PHP_EOL; } // $priceが0より小さいなら else { echo '0より大きい数値を入力してください。',

PHPの基礎文法をおさらいする(制御構文)

PHPの制御構文 手続き型または命令型のプログラミング言語では、各々の式または命令はふつう、上から下へと順番に実行されてゆく。けれども、この場合はこの命令を跳ばしてあの命令に移れとか、この場合はこの命令を繰り返せとか、そういった制御を行いたいときには各種の制御構文を使うことができる。 制御構文の代表的なものがif構文。 if(値の真偽を判定){実行文;} という書式でそれは記される。1行で終わるときは波括弧は不要。if構文はそのオプションとしてひとつのelse文を、またはその間に複数のelseif文を持つことができる。 <?php echo "1 + 1 = "; // fgets関数で標準入力をint型にして受け取る $input = (int)(fgets(STDIN,1024)); // 2に等しいなら if($input == 2) { echo '正解です。',PHP_EOL; } // 1か3に等しいなら elseif(($input == 1) or ($input == 3)) { echo '不正解ですが、惜しいです。',PHP_EOL; } // 10以上なら elseif($input > 10) { echo '数が大きすぎます。',PHP_EOL; } // それら以外なら else { echo '不正解です。',PHP_EOL; } まず1足す1の答えを入力してもらい、その値をint型に変換して受け取っている。 このスクリプトを実行した例は次のようになる。 $ php sample.php 1 + 1 = 3 不正解ですが、惜しいです。 上の例では、ifとelseifとelseをすべて使っている。各々の実行文が複数あるときには波括弧で囲むことが必須だけれども、単独ならば波括弧は必須でない。しかし読みやすいように波括弧を使うことが奨励されている。 波括弧の代わりにコロン記号を使っても記述できる。その場合、if構文の終点として endif; を置く必要がある。しかも、波括弧を使った場合には elseif を else if のように分かち書きができるが、コロン記号を使って記した場合には分かち書きができない。 <?php ec

PHPの基礎文法をおさらいする(変数・型・スコープ・配列)

ソースコードをHTML文書内に埋め込む場合 ここでいうPHPとはインタプリタ方式のスプリクト言語を指している。PHPのソースコードは、HTML文書の中に <?php と ?> という区切り文字( スクリプティングデリミタ と呼ぶ)を埋め込んで、その間に記述することができる。 <html> <head> <title>PHPはHTML埋め込み言語</title> </head> <body> <?php print "Hello, world!"; ?> </body> </html> <?php と ?> で囲まれた領域を PHPブロック と呼ぶ。 PHPのソースコードを含むファイルの拡張子は、ウェブサーバの一般的な設定では、.phpとすることになっている。 ソースコードをHTML文章内に埋め込まない場合 ライブラリにするにはもちろんファイルにPHPだけを記述することになる。その場合は終了の区切りを示す ?> を省略することが推奨されている。PHPだけを記述したファイルでは ?> を使わないほうがよい。 <?php print "Hello, world!\n"; これをhello.phpというファイル名で保存した場合、ターミナルエミュレータ上で次のように実行することができる。 $ php hello.php Hello, world! ソースコード中にコメントを記す場合 PHPブロック内にコメント行を設けたい場合は、コメントの先頭に // か # を付ける。これ以降、行末までがコメントと認識される。複数行にわたってコメントを記したいときには /* と */ とでコメントを挟む。 <?php // この行が改行までコメント # この行も改行までコメント /* ここからコメントがはじまる ここで終わる */ 一つの式の終わりにはコロンが必要 PHPは、RubyやPerlと異なり、改行コードを式の終わりとして認識しない。複数行に渡るコードの記述は、コロンがないかぎり一つの式の単位として認識されてしまう。したがって改行を無視するので、式の終了を示す

Debian10テスト版をインストールしてみた(起動メディア作成編)

イメージ
Debian GNU/Linux 10 (buster)のテスト版をインストールしてみた。 Debian GNU/Linux インストールガイド によれば、Debian GNU/Linux 9 (stretch)をインストールし、デスクトップ環境を使うには、最低でもPentium 4 1GHz以上のCPUの性能と、1GB以上のRAMと、10GB以上のストレージ・ドライブ(HDDやSSD)が推奨されるようだ。10のbusterではもう少し高いスペックが推奨されるようになるかもしれない。けれども、Lxdeなどの比較的に軽量のデスクトップ環境やデスクトップ環境なしのウインドウ・マネージャを使えば、これ以下のスペックのコンピュータでも利用可能かもしれない。実際、Debian 8は512MBのRAMで使っていた。 今回インストールするのは9でなく10のbusterだが、Debian GNU/Linux 9 (stretch)のインストールに関する詳しい説明は Debian GNU/Linux インストールガイド にあるので、それを参考にさせていただいた。 インストール用ISOイメージをダウンロード ウェブブラウザで Debianの公式サイト の「CD/USB ISOイメージ」から 「HTTP を使って CD/DVD イメージをダウンロードする」 を開いた。さらにそこから「公式のテスト版 (testing)ディストリビューション用 CD/DVD イメージ (1 週間おきに更新)」を開いた。そこには、amd64, arm64, armel, armhf, i386, ...といったアーキテクチャごとのディレクトリがあった。どれを選べばよいのかは「 Debian GNU/Linux インストールガイド 」の日本語版をいずれか開いてみて、その中の「サポートするハードウェア」という項目を参考にした。そこにはアーキテクチャの名前とDebianでの名称の対応表が書かれてあった。ちなみにインストールガイドもアーキテクチャごとに区別されていた。 インストール先のコンピュータのアーキテクチャがamd64かi386に対応していて、かつ、そのコンピュータにDebianを初めてインストールする場合、Debian liveを試すのがよい方法であるのかもしれない。これはHDDやSSDにインストールせずにD