第 5 回 清書(1), 論理計算、数列

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

5-1. インターネットで入手可能なソフトウェア

コンピュータのソフトウェアはお店やインターネットオンラインショップで売っ ているものを購入する以外の方法でも入手できます。 以下はお店やオンラインショッピング以外で入手できるソフトウェアの種類を紹介し ます。

フリーソフトウェア

著作権法の立場では、ソフトウェアは著作物であり、財産として認められてい ます。 しかし、リチャードストールマンはこれに異論を唱え、フリーソフトウェアファ ンデーション(FSF)という協会を発足させました。 そして、自由なソフトウェア(フリーソフトウェア)という、ソフ トウェアに関する新しい権利のあり方を提言しました。

フリーソフトウェアの「フリー」は無料ではなく自由という意味です。 彼は、ソフトウェアを著作物ではなく、学術結果のように取り扱おうと提案し ました。

  1. 成果物は人類すべてで共有する
  2. 成果物に関する情報はすべて公開する(ソフトウェアではソースコード)
  3. 成果物を利用、改良した時は、その情報をすべて公開する(改造は自由だ が、改造してできたもののソースコードはすべて公開する)
  4. 成果物に関しては何も保証しない。

フリーソフトウェアでは、著作権の行使は放棄されていませんが、 個人の財産であると言うことは否定されています。 GPL(Gnu Public License) と呼ばれる著作権表示には次のこ とが主張されてます。

  1. コピーを禁じてはいけない。すきなだけコピーして良い。(copyleft)
  2. コピーさせる際、著作権表示などを改変してはいけない。
  3. このソフトウェアを改造したソフトウェアを他人に渡す場合、ソースコー ドを入手できるようにしなければならない。

このような主張は多くのプログラマーに認められたため、 GPL に基づいて作 られたソフトウェア(プロジェクト)は多 く発表されています。 Meadow や Linux も GPL のもとに発表されています。 フリーソフトウェアには、次のような利点があります。

  1. 複数の OS で利用することが容易である。
  2. OS などがバージョンアップしても対応できるので、長期間使用できる。
  3. 不具合が直るのが早い
  4. (ソースを読むことでプログラミングの勉強になる)

一方、次のような欠点もあります。

  1. 市場原理が働かないので質の低いものもある。
  2. 初心者を想定してないものが多く、むしろ慣れると使いやすくなるように 設定されているものが多い。使いこなすのに練習が必要。
  3. インストールに手間がかかる。

オープンソース

オープンという言葉は良く使われるため、いろいろな意味に解釈されます。 しかし、オープンソースは次の条件を満たしているソフトウェア のことと決められています。

  1. 再頒布の自由
  2. ソースコードの頒布の放任
  3. 派生ソフトウェアに関しては同じライセンスの元で頒布することを許す
  4. 変更されたソースコードの頒布を制限するには、パッチファイルの頒布の 放任が必要
  5. 個人、グループ、使用目的への差別の禁止
  6. 追加ライセンスの禁止
  7. プログラムの一部を取り出しても同じライセンスを適用
  8. 一緒に頒布される他のソフトウェアの制限の禁止

このルールの中で特に派生ソフトウェアを作成、頒布できるかが重要であると 思われます。 これができないようではオープンと呼ぶことはできません。

なお、この定義によると GPL も条件を満たしているためオープンソースと言 うことができます。 なお、世の中ではしばしばソースコードを読むことができることだけをとって オープンと主張する会社が多々あります。 そのため、オープンソースの定義もしばしば誤解されることがあります。

おまけ

無料ソフト

本講義で言う無料ソフトとは、 上記のオープンソースのような改変したものを再配布できるようなものの他に、 企業戦略などの理由により、無料で使用できるソフト ウェアも指します。 有名なのは Microsoft Media Player や Adobe Acrobat Reader などです。 これらは特定の有料ソフトの生成物を見るためのものという側面があったり、 バージョンアップの際に有料に移行していったりといくつかの特定の状況があ ります。

無料ソフトの中にはフリーソフトを名乗ったりするものもありますが、改造や 再配布すら禁じたり、ユーザ登録を共用する物もあります。 フリーソフトと名乗るソフトウェアを使う場合、ライセンスを良く読む必要が あります。

シェアウェア

シェアウェアは販売形態が市販ソフトと異なる有料ソフトです。 一定期間無料で使用できますが、それ以上使用する場合は送金をするという販 売方式をとります。 シェアウェアで有名なものには Windows 用のエディタ「秀丸」などがあります。

中には教育機関で使用する限りは無料であるものもあります。 Almail も教育機関では無料です。

5-2. ネットワークで使用できるファイル形式

皆さんの使用しているコンピュータと、インターネットで接続している他のコ ンピュータが全く同じと言うことはまずありません。 そのため、情報をやりとりするためにはある種のルールが必要です。 ここでは、情報を送る際に、使用すべきファイルの種類について説明します。

情報を受けとる際に望ましいと思える条件として、次のようなことが考えられ ると思います。

  1. 受けとったファイルを利用できること
  2. ファイルを利用するのに苦労しなくて良いこと
  3. ファイルを利用する際に費用が安いこと

これは相手方にも成り立つことです。従って、 情報を送る際には相手の立場として上記のことに注意する必要があります。 そのためには具体的に次のようなことを考えることが必要です。

  1. 相手が必ず使用できる形式であること。つまり、自明な形式であるか、形 式が公開されていること。
  2. 形式の解読に有料のソフトウェアの購入が不要であること。 通常のコンピュータで使用可能なソフトウェア、あるいは入手が容易なフリー ソフトなどで解読ができること。
  3. 通信量が少ないこと。通信量が少なくなる形式を選ぶか、適切な情報圧縮 をすること。

文書を送るには

文書の基本はテキストファイルです。 電子メールはテキストファイルを送るシステムですので、テキストファイルは そのまま送るようにして下さい。

最近の電子メールソフトには添付ファイルという機能があり、も ともとテキストファイルしか送ることができなかった電子メールの規格に沿っ て、さまざまなファイルをテキストファイルに変換して送る仕組みがあります。 但し、この仕組みを使ってテキストファイルを送るのは避けたが方がいいです。 というのはまず、もともとテキストファイルを送るための仕組みである電子メー ルでテキストファイルを添付する事は、封筒に葉書を入れるようなもので意味 がないからです。 また特に、日本語の文字を含んだテキストファイルを送る場合、トラブルが生じる 場合があります。 電子メールで日本語を送る場合、ISO-2022-JP(RFC 1468) という規格で送る事 は決められてますが、添付ファイル中の漢字コードにはそのようなルールはあ りません。 通常の電子メールソフトは受け取った日本語を正しく表示することが保証され ていますが、コンピュータで使われている漢字コードは日本語だけで 5 種類 以上あり、受け取った側が送り側の漢字コードに対応していなければそのファイルを読む事ができません。 したがって、本文中に入れた日本語はうまく読めても、添付ファイル中の日本 語は読めないと言う事が発生します。

清書文書を送りたい

清書文書の形式として HTML, PDF, LaTeX を紹介します。 また、お勧めしない形式としてマイクロソフトワード形式を説明します。

HTML

インターネット上の清書文書でもっとも広く使われているのは HTML です。 HTML は規格が公表されており、多くの人が表示可能です。 テキストファイルにタグと呼ばれる記号列を埋め込んで、文書の構造を与えま す。 したがって、テキストファイルとして HTML ファイルを見ても内容は分かるよ うになっています。

但し、HTML は文書の共有化に重点を置いたため、単なる文書の清書系とは方 向性が異なります。 例えば、ワープロではページの区切りなどは簡単に設定できますが、 HTML ではスタイルシートにより指定しなければならず、さらにページ関連の規格を 正しく実装しているブラウザは現在存在しないなど、 WWW ブラウザをワープ ロとして使う場合は妥協しなければならない点もあります。

PDF

PDF は Adobe 社が開発した形式です。 Adobe 社は、多くの OS で表示できる表示、印刷用のソフトウェア(Acrobat Reader)を 無料ソフトとして配布しています。 PDF は、基本的には Adobe 社が昔開発したプリンタ制御言語 Postscript に 圧縮機能を付け加えたものなので、表示は美しいにも関わらずファイル容量は 小さいです。 印刷用の文書を送るには最も優れた形式です。 OpenOffice.org などで作成したレポートを大学で印刷するには、 PDF を作成 し、印刷します。 Microsoft Word 形式で保存して、印刷の際 Microsoft Word を使用すると、 微妙な互換性の問題が生じ、印刷がずれることがあります。

PDF 形式のファイルを作るには、Adobe Acrobat を購入することでプリンタ出 力と同様の操作でファイルを作る方法の他、OpenOffice.org や LaTeX な どを使い、フリーソフトウェアだけで作成する方法もあります。 なお、PDF では特定のコンピュータに依存したフォントを指定できてしまうため、完全 にどんなコンピュータでも表示ができるわけではありませんので注意が必要で す。 さらに、受信した相手は送った文書を修正できません。 また、Macintosh の MacOSX では、あらかじめ仮想のプリンタとして内蔵され ているためどんなソフトからでも PDF 出力が可能です。

LaTeX

計算機学者 Knuth と Lamport により開発された論文プロセッサです。 学術論文を書くために作られたシステムで、テキストファイルを HTML 同様マー クアップして記述します。 数式の表現力が豊かで、また、カーニングや索引自動作成機能があります。 そのため、論文の清書形式として多くの学会で採用されています。 また、コンピュータ系の書籍の出版にも使われています。これはフリーソフト として入手可能です。

欠点としては、とっつきにくく、習得に時間がかかります。 そのため、HTML や PDF ほど普及していません。

マイクロソフトワード形式

しばしば文書配布に用いられるものにマイクロソフトワードの添付ファイルが あります。 このファイルはマイクロソフト Windows ユーザであれば、 マイクロソフトのサイトから ビューアをダウンロードできるため、表示、印刷ができます。 但し、いままで紹介して来たファイル形式に対して、同一表現にも関わらず膨 大なファイル容量になるため、通信には不向きです。 但し、仕事上、受け取り者の雛型と形式指定というのはしばしばあり、マイク ロソフトワード形式を使用するのもやむを得ない場合もあります。 このファイル形式は基本的にはマイクロソフトワードのみしか使えず(互換ソ フトはいくつかありますが、 100% ではなくしばしば表示がずれます)、また ベストセラーでありながら使い勝手、安定性、表現力などで完成度が低いです。

表計算、データベースのデータ

表計算ソフトは各社で独自の機能が豊富なため、独自機能を多く使った表は、 異なるソフトウェアや異なるバージョンの相手方にはまず交換できません。 基本的なデータをやりとりするには、 CSV(comma separated valuable) とい う、「,(コンマ)」で各データを区切ったテキストファイル形式を利用するの が一般的です。 ほとんどの表計算、データベースのシステムでは CSV の入出力が可能です。 なお式をそのままファイルに残したい場合 CSV の代わりに SYLK 形式を使います。

一方、データベースの場合、SQL 言語によるバックアップができれば、テキストファ イルながらほとんど情報を失わずにやりとりが可能になります。

静止画像を送りたい

画像ファイルには様々な形式があります。 Windows の標準形式である BMP や、 TIFF と呼ばれる形式は無圧縮と呼ばれ ファイルサイズが膨大になります。 ソフトウェアの開発などは容易かも知れませんが、インターネット で使用するには不向きです。 ここではインターネット向きの画像形式を紹介します。

写真など

写真を送るには JPEG 形式が適しています。 これは非可逆圧縮という圧縮技術を用いているため、画質を落してファイル容 量を小さくできます。 そのため元の高画質の画質に戻すことはできません。 なお JPEG 画像は非常に良く圧縮されているため、通常さらに別の圧縮ソフトで ファイル容量を小さくしようとしても小さくなりません。

図版など

線画などの画質がシャープな画像には PNG 形式が向いています。 PNG 形式は比較的新しい形式なので古いソフトウェアでは対応していないもの もあります。 なお、PNG 形式は GIF 形式の代用として作られた形式です。 当初 Web で採用された画像形式はこの GIF 形式でした。 Web の普及とともに GIF 形式も広まっていきましたが、ある日 UNISYS 社 が突然自社の所有する計算方式の特許を盾に GIF 形式使用者に大金を請求す るようになりました。 そこで、作られたのがこの PNG 形式です。 PNG 形式は GIF に対して半透明などの機能が追加されています(但しマイクロ ソフト IE 6.0 では表示できません)。 なお、2004年 6 月で UNISYS 社の特許は有効期限が切れました。

解像度を落さない画像ファイル

PNG や JPEG 形式は画像のドットを一つずつ指定します。このような画像ファ イルの形式をラスタファイルと言います。 この形式はどのような画像でも表現できますが、ドットの数がそのまま画像の 表現力(解像度)となります。そのため、拡大しても細部まで詳しく見えるので はなく、単にドットの大きさが大きくなるだけです。 例えば円をラスタファイルにすると、円周を階段状にドットで表現す るため、拡大すると円周はガタガタに見えます。

これに対して、ベクタファイルとは画像を図形の集まりとして表 現します。このため、画像を拡大してもがたがたになることはありません。 ベクタファイルで情報のやりとりに使われるファイル形式には Adobe 社が開 発した Postscript 形式があります。 印刷業者に図形原稿を入稿する際、良く「Adobe Illustrator 形式で」と指定 されることが多いですが、そのような場合でも拡張 Postscript(EPS)形式のファ イルを受け取ってもらえることが多いです。 EPS 形式のファイルは Openoffice や TeX などで作成できます。 但し、マイクロソフトのアプリケーションでは Postscript を扱う事はできま せん。

動画

動画でポピュラーな形式は AVI, MPEG1, MPEG4, RealVideo, Quick Time があります。 MPEG 4 はまだそれほど広まってませんが、このなかではもっとも容量が小さ くなる形式ですので、将来性があります。

なお、音声のみを MPEG1 形式で保存したものを MPEG1 Layer 3、通称 MP3 と言います。

5-3. GIMP

ソフトウェアのぺー ジの説明にしたがって、 GIMP をインストールしなさい。

GIMP(Gnu Image Manipulation Program) は Adobe 社の Photoshop に匹敵す る性能を持つ、画像処理ソフトウェアです。 これは、絵を書いたり、写真を修正したり、画像ファイルのフォーマットの変 換に使用できたりと非常に高機能です。 GIMP は PNG ファイルや、 JPEG ファイルを作成できるため、 Web 用の画像 を作るのに便利です。

5-4. 清書(1)HTML

清書とは文章を見やすく表現するものです。 コンピュータで行う清書のうち、マークアップ言語 HTML 4.01による清書を取 り上げます。

HTML は SGML というマークアップ言語作成言語から作られた、 Web のページ を作成するためのマークアップ言語です。 これをマスターすると Web のページを作ることができます。 なお、近年コンピュータ処理がしやすいように SGML に制限を加えた XML と いうマークアップ言語作成言語が登場しました。 この XML に基づいて HTML 4.01 を再構築したのが XHTML 1.0 です。 現在はこれをモジュール化した XHTML 1.1 が最新の規格になります。 XHTML 1.1 は HTML 4.01 によく似ていますので、 HTML 4.01 を覚えることは 無駄にはなりません。

文章の基本構造

文書中の文字すべてが本文に含まれるわけではありません。 文書には抽象的な構造があります。 コンピュータによる清書とは文書中の文字がどの構造の含まれるかを指定する 作業になります。

まず、文書を構成する基本的な構造として以下のものがあります。

  1. 表題
  2. 見出し
  3. 段落(パラグラフ)
  4. 箇条書

さて、与えられた文字に対してそれらがどれに含まれるかを指定するのは、 HTML, LaTeX, ワープロでそれぞれ異なります。

それぞれ方法は違いますが、本質的には抽象的な文章の構造には対応していて、 指定の仕方があると言うことです。 ワープロの初心者は良く改行と空白だけで文書を整形しようとしますが、これ は作業が大変な上、修正が困難になってしまいます。 例えば、箇条書にしたいのか、先頭に中黒を打って、その後に文章を書いて改 行したいのかの区別を付けると言うことです。 このように清書系を初めて使用する際には、少なくとも上記の「表題」「見出 し」「段落」「箇条書」にした抽象的な構造をどうやって表現すべきか確認し ておくべきです。

HTML の基本的な仕様

HTML では、文書はヘッダボディに分けることがで きます。 ヘッダには、タイトルなどの文書に関するメタデータを記入し、ボディ内に本 文を記入します。 本文は内容に従い、エレメント(要素)に分割し、エレメント毎に記入します。 エレメントとは上で示したような「見出し」「段落」「箇条書」などです。

エレメントは開始タグ、内容、終了タグからなります。

開始タグは < と > の間にエレメント名を入れます。 段落を示す p エレメントでは開始タグは <p> となります。 また開始タグには属性値を記入できます。 表を表す table エレメントでは通常枠線を書きませんが、 border 属性に線 の太さを設定すると枠線が書かれます。 つまり <table border="1"> と指定すれば表に枠線が書かれます。

終了タグは </ と > の間にエレメント名を書きます。 p エレメントの 終了タグは </p> と書きます。 p エレメントの場合、段落の内容は開始タグと終了タグの間に書きます。 また、強制改行を示す br エレメントのように、内容を必要としないエレメン トもあります。この場合、 <br/>という書き方もあります。

ヘッダ

ここでは HTML の決まりごとを書かねばなりません。 ここでは、最低限次のようなことを書く必要があります。

  1. HTML 言語の ver. 4.01 であることを宣言
  2. 日本語の HTML であることを宣言
  3. 漢字コードとして Shift_JIS(マイクロソフト漢字コード)を指定
  4. 作者のメールアドレスを指定
  5. タイトルを指定

これは実際には次のようにします。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=Shift_JIS"/>
<link rev="made" href="mailto:sakamoto@c.dendai.ac.jp"/>
<title>タイトル</title>
</head>

なお、本教材では、見栄えを良くするためにスタイルシートを使っています。 スタイルシートを使用する場合は、スタイルシートファイルを作成してから、 次の行をヘッダの中に書きます(ここではスタイルシートの URIは http://edu.net.c.dendai.ac.jp/default.css としています)。

<link rel="stylesheet" type="text/css" href="http://edu.net.c.dendai.ac.jp/default.css"/>

HTML は 1997 年に最終版の HTML 4.01 が発表され、以後は XML 技術に移行 した XHTML が文書のマークアップの規格として出されています。 この講義のテキストは最新版の XHTML 1.1 で書かれていますが、 HTML 4.01 と互換性の高いため、ここでは取り扱いの容易な HTML 4.01 を学 びます。 ここで学ぶ程度の内容では HTML 4.01 と XHTML 1.1 では差がありません。 したがって、下記のように XML 宣言をしDOCTYPE を交換することで XHTML 文 書になります。 但し、XHTML 文書のファイル名には最後に .xml と付けるようにして下さい。


<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">

なお、次世代の規格として準備されている XHTML 2.0 は基本的な流れは受け 継いでいますが、従来の HTML とは互換性はありません。よりシンプルで整合 性のある定義になっています。但し、 HTML 4.01 は当面廃止されることはな いはずですし、 XHTML 2.0 の基本理念は HTML 4.01 の改良ですので、 HTML 4.01 を学ぶことは無意味ではありません。

ボディでは次の <body> と </body> の間に本文を HTML 言語に 基づいて書きます。

<body>
本文
</body>
</html>

パラグラフ

パラグラフ(段落)は <p> と </p>の間に書きます。

例5-1

<p> パラグラフ(段落)は &lt;p&gt; と &lt;/p&gt;の間に書きます。</p>

なお、このように <, > は特殊な意味(タグを表す)を持つ記 号なので、通常の文章の中に書くことはできません。 そのため、これらの記号は次のようにして入力します(セミコロン「;」を忘れ ないように)。

<
&lt;
>
&gt;
&
&amp;

見出し

見出しはレベル 1 からレベル 6 まで用意されています。一番の大見出しは <h1> と </h1> で囲みます。 原則として、レベルを飛び越えて(h1 の次に h2 を使うなど)見出しを使って はいけません。

例5-2

<h1>HTMLについて</h1>
<h2>headerとは……</h2>
<h3>metaとは……</h2>
<h2>bodyとは……</h2>
<h3>見出し</h3>
<h3>段落</h3>

箇条書

HTML では箇条書は(事実上)三種類用意されています。 通し番号を自動的につけるもの、それぞれの項目の頭に同じマークをつけるも の、項目名を指定するものがあります。

例5-3

<ol>
<li>内容 1</li>
<li>内容 2</li>
</ol>

とすると、次のようになります。

  1. 内容 1
  2. 内容 2

例5-4

<ul>
<li>内容 1</li>
<li>内容 2</li>
</ul>

とすると、次のようになります。

例5-5

<dl>
<dt>内容 1</dt>
<dd>内容 1 の説明</dd>
<dt>内容 2</dt>
<dd>内容 2 の説明</dd>
</dl>

とすると、次のようになります。

内容 1
内容 1 の説明
内容 2
内容 2 の説明

この表現は用語の説明などに便利です。

画像の挿入

画像の挿入は次の形式で行います。

<img src="画像のURL" alt="画像が表示されなかった時に表示する文字"
width="画像の横幅" height="画像の高さ"/>

画像のフォーマットは、線画なら PNG、写真のような画像なら JPEG がお勧め です。 なお、画像は普通の文字と同じような要素として扱われます。 文章中に入れると、文字として扱われます。 つまり、段落内などに画像を入れることになりますが、そのままでは直前の文 字の右隣に配置され、次の文字は画像の右側に配置されます。つまり、期待し ているフォーマットと異なることがあると思います。 段落中に 行を改めて画像を配置するには、 <br/> という強制改行タグを使用しま す。 また、一つのブロックとして配置したい時は div エレメントを使います。 さらに、スタイルとして style="float:right" を指定すればその後の文字や ブロックは画像を右にして回り込むように配置されます。

例5-6

<img src="http://edu.net.c.dendai.ac.jp/literacy/2004/4/cutbuffer.png" alt="カットバッファの説明図" width="521" height="549"/>

プリフォーマット

HTML は連続した一つ以上の空白や改行は全て一つの空白と見なしてしまいます。 文字で作った表や、絵、数式などを表示するため、空白、改行などを入力した 通りに表示させるには、 <pre> と </pre> で囲みます。

例5-7

<pre>
  | x | y | z 
--+-----------
a | 1 | 2 | 3
b | 4 | 5 | 6
c | 7 | 8 | 9
 
\○
  □〉
  ||

   3
- ---
   5
</pre>

数式

HTML には複雑な数式を書く機能はありません。 但し、次のようにするとある程度の式を書くことができます。

変数
<var> と </var> で囲む。
上付文字
<sup> と </sup> で囲む。
下付文字
<sub> と </sub> で囲む。
ベクトル、行列などの太字の変数
<var><b> と </b></var> で囲む。

例5-8

<var>a</var>sin<sup>2</sup><var>x</var>

asin2x

<var><b>A</b></var> =<var><b>S</b></var> <var><b>B</b></var> <var><b>S</b></var> <sup>-1</sup>

A=SBS-1

なお、プリフォーマットでは sup エレメントや sub エレメントが使えないの で、分数と多項式が混ざったような式を書くことができません。 HTML 4.01 で解決するには、グラフィックで数式を入れる方法があります。 OpenOffice で数式をグラフィックで作る方法を次に示します。

  1. Gimp をあらかじめ立ち上げておきます。
  2. OpenOffice で「ファイル」→「新規作成」→「図形描画」と図形描画の ドキュメントを作成する用意をします。
  3. 「挿入」→「オブジェクト」→「数式」で数式の入力モードにして数式を 入力します。
  4. 数式を入力し終えたら入力し終えた数式を選択して、「変更」→「変換」 →「ビットマップに変換」で画像ファイルに変換します。 この時、あらかじめ数式を入力する際にフォントを大きめにしておくときれい に仕上がります。
  5. 「編集」→「コピー」でクリップボードに画像を保存します。
  6. Gimp の「ファイル」→「取り込み」→「クリップボードから」で取り込 んだ画像を Gimp で処理できるようにします。
  7. 画像のサイズを調整したい時は、画像上で右クリックをし、表示させたメ ニューから「画像」→「拡大縮小」を選んで下さい。
  8. 取り込んだ画像上で右クリックを押し、メニューを表示させ、「ファイル」 →「別名で保存」で保存します。ファイル名として最後に「.png」を指定し、 PNG 形式にします。オプションで「背景色を保存」を外します。

このようにしてできた数式の PNG 形式の画像を img エレメントで指定するこ とで複雑な数式を表示することができます。

さらに検索や再利用やユーザ設定の自由度などを考えるのであれば、このテキ ストのようにXHTML1.1+MathML を使用する必要があります。

表は次のような書式になります。

<table border="1">
<caption>表のタイトル</caption>
<tr><th>第一行一項</th><th>第一行二項</th><th>第一行三項</th></tr>
<tr><th>第二行一項</th><td>第二行二項</td><td>第二行三項</td></tr>
<tr><th>第三行一項</th><td>第三行二項</td><td>第三行三項</td></tr>
</table>

border は枠の幅を指定します。指定しないと枠が書かれません。 caption は表のタイトルを指定しますが、省略しても構いません。 tr は行を指定します。行にはいくつ項目を含んでも構いません。 td は項目を指定します。見出しは th で指定します。

例5-9

<table border="1">
<tr><th></th><th>x</th><th>y</th><th>z</th></tr>
<tr><th>a</th><td>1</td><td>2</td><td>3</td></tr>
<tr><th>b</th><td>4</td><td>5</td><td>6</td></tr>
<tr><th>c</th><td>7</td><td>8</td><td>9</td></tr>
</table>
xyz
a123
b456
c789

その他

水平線、他の文書へのリンクなど良く使われるものがあります が、今回は省略しました。

学生用のサーバー

総合メディアセンターでは学内公開用サーバを用意しています。 余力のある人は 教育用システム の「UNIXサーバ(ワークステーション)」の中の「個人用のホームページ領域」 という部分を参照して下さい。

5-5. 論理計算

論理演算

方程式 ax+b=0 の解は a=0 を考慮すると、 a b の値に より、次のようになりました。

a0 のとき
x=-ba
a=0 のとき
b0 のとき
解なし。
b=0 のとき
任意の x は式を満たす。

ここで、解は a=0 であるか b=0 かという条件 で変化しました。 a0 の時は b の値がどんな値であっても一つ x=-ba と決まりましたが、 a=0 の時は b の値により解が存在するか存在しないか が決定します。 a=0 であり b=0 が両立した時だけ解が存在します。

条件の成否に対して、「逆の条件」や複数の条件が「全てが成立する」や「ど れかが成立する」などの条件を考えることを論理演算と言います。 数学では条件が成り立つことを(True) と言い、成り立たないこ とを(False) と言います。 x, y を真偽の値を持つ変数とする時、論理演算とし て次のようなものが考えられます。

NOT(否定)
x が真の時は偽、偽の時真となるような演算を NOT 演算と言 います。 NOT を表す時、¬x と書いたり、 x と書いたりします。
AND(論理積)
全ての値が真である時だけ真となる演算を AND 演算と言います。 AND を表す時、 xy xy と書きます。
OR(論理和)
どれか一つ以上が真である時だけ真となる演算を OR 演算と言います。 OR を表す時、 xy と書きます。

表計算では論理演算は条件を引数とする関数で行えます。

NOT(条件1)
条件1が成立しない時だけ、成立する関数です。
AND(条件1; 条件2; ...; 条件k)
全ての条件が成立する時だけ、成立する関数です。
OR(条件1; 条件2; ...; 条件k)
どれか一つの条件が成立すれば、成立する関数です。

これを使えば先ほどの二つの条件が成立する時というのを一つにまとめられま す。 つまり解が存在しない条件は AND(a=0; NOT(b=0)) と書くことができます。

なお、論理式では NOT, AND, OR の順に演算子に優先順序があります。 つまり xyz = (xy) z xyz = x(y z) となります。

ド・モルガンの法則

方程式 ax+b=0 に解が存在するか存在しないかの条件を ab の値 から表にすると次のようになります。

b=0 b≠0
a=0解あり(無限個)解なし
a≠0解あり(1個)解あり(1個)

すると、解がある条件を考えるといくつかの意味が同じ式が得られます。

  1. (a=0) (b=0) (a0) (b=0) (a0) (b0)
  2. (b=0)(a0)

ところで、もともと解のない条件は (a=0)(b0) だったので、 これの否定 ¬((a=0)(b0)) は解のある条件になり、上の二式に加えて同じ意味の式になります。

ド・モルガンの法則 とは、論理演算において次の式が成り立つと いうことです。

これに従うと ¬ ( (a=0) (b0) ) = ( ¬ (a=0) ) ( ¬ (b0) ) = (a0) (b=0) となり、先ほどの 2 番目の式と同じになることが示せます。

5-6. 数列

数列とは 1, 2, 3, 4 などの数の列を言います。 数学では記号を使って数列を表す場合、 a1, a2, a3, ... ak と、変数に添字をつけて表します。 数列を生成するには、全てを具体的に書き上げる他に、 第 k 項である ak をどうやって計算するかを与える方法があります。

ここでは、数の列を生成する方法として、直前の値を使用するような生成 法を考えます。 つまり、 ak ak-1 を使用して計算する方法です。 この定義方法は漸化式と呼ばれ、プログラミングでは頻繁に用い られる考え方です。

例えば、 1,2,3,4,5… という列を生成することを考えます。 これは直前の値に対して 1 を足すことで生成できます。 数学的には ak = ak-1 + 1 と書きます。 但し、一番最初の値はこれだけでは計算できないので具体的に a1 = 1 と与えます。 これを初項と言います。 まとめると、漸化式を与えるには、 次の項目を与える必要があります。

つまり、 1, 2, 3, 4, … を生成する漸化式は a1=1 ak = ak-1 + 1 と表せます。

ではこの考えを使って実際に表計算ソフトで数列を発生させましょう。 A1 には 1 を入れ、 A2 には =A1+1 を入れます。

A
11
2=A1+1

このようにすると、 A2 には 2 が表示されます。 そして、 A2 を選択し、ハンドルを下に引っ張ると、 A3, A4 には次のように コピーされます。

A
11
2=A1+1
3=A2+1
4=A3+1

表示上は 1,2,3,4 と確かに期待していた通りの数列が得られることになりま す。

5-7. 宿題

次回からは C 言語を学習しますので、 MinGW-jp をダウンロードしておいて下さい。 また、 LaTeX を学びますので、 LaTeX のパッケージもダウンロードしておい て下さい。

5-8. 付録

演習問題

演習5-1

  1. Linux を CD にコピーしたものを販売する事はできるか? また、必要な条件があるとすれば何か?
  2. Linux を改造して製品化して販売する事はできるか? また、必要な条件があるとすれば何か?
  3. 無料ソフトである Adobe Acrobat Reader を Web サイトに置いて仲間に コピーさせても良いか?
  4. マイクロソフトでは条件に適合している人なら契約すれば Windows のソー スコードを見る事ができる。 この場合、 Windows はオープンソースと言えるか?

演習5-2

GIMP で以下を行いなさい。

  1. 「ファイル→新規」「Ok」で新しい画像を作ります。
  2. できた画面上で右クリックし、「道具→描画ツール→鉛筆」を選びます。
  3. 左ボタンを押しドラッグすると太い黒い線が書けます。
  4. 画像上で右クリックし、「ダイアログ→パレット」でパレットのメニュー を出し、左下の「パレットの編集」ボタンを押します。 表示された色のパレットから、別の色を選びます。
  5. 画像上で右クリックし、「道具→描画ツール→塗りつぶし」を選び、黒の 線で囲まれた部分を左クリックし、色を塗ります。
  6. 画像上で右クリックし、「フィルタ→芸術的効果→キュービズム」を選び、 「Ok」を左クリックします。
  7. 「ファイル→別名で保存」を選び、「名前」の欄に「c:\work\test.png」 を入力し、「保存」を左クリックします。そして、「PNG 形式で保存する」の 画面で「Ok」を左クリックします。

演習5-3

次の数式をPNG形式の画像ファイルにしなさい。

  1. 2= 1+ 1 2+ 1 2+ 1 2+...
  2. ft = t 0t fx x
  3. ( ab cd ) -1 = 1 ad - bc ( d-b -ca )
ヒント

OpenOffce.org の数式入力モードにおいて上記の数式はそれぞれ次のよう になります。

  1. sqrt{2}=1+1 over {2 + 1 over { 2 + 1 over {dotslow}}}
  2. f(t)=d over dt int _{0} ^{t} f(x) dx
  3. left( matrix{a # b ## c # d} right)^{-1}= 1 over {ad - bc}left(matrix{d # -b ## -c # a}right)

演習5-4

  1. 次の内容を Meadow にコピーし、c:\work\test.html というファイル 名で保存しなさい。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html lang="ja">
    <head>
    <meta http-equiv="CONTENT-TYPE" content="text/html; charset=Shift_JIS"/>
    <link rev="made" href="mailto:xxxx@ed.cck.dendai.ac.jp"/>
    <title>HTML のテスト</title>
    </head>
    <body>
    <h1>テスト文書</h1>
    <h2>自己紹介</h2>
    <dl>
    <dt>氏名</dt>
    <dd>名無しの権兵衛</dd>
    <dt>学籍番号</dt>
    <dd>05kc999</dd>
    </dl>
    <h2>本日の学習内容</h2>
    <p>本日は次のようなことを学習しました。</p>
    <ol>
    <li>最初の話題</li>
    <li>次の話題</li>
    <li>画像の作成
    <br/>
    <img src="test.png" alt="らくがき" width="420" height="300"/>
    </li>
    </ol>
    </body>
    </html>
    
  2. c:\work\test.html を Web ブラウザで表示しなさい。
  3. 上記の内容を変更して、変更結果を表示しなさい。

演習5-5

リンク先のサンプルファイル を保存し、次の修正 を加えなさい。。

  1. IT(情報技術)を IT(情報通信技術) に替えなさい(外国では ICT と言うらしい です)。
  2. 箇条書の中に第三項として以下の文章を加えなさい。残りの 箇条書の部分の番号は順にずらしなさい。
    3. 東京電機大学創立以来の『実学の精神』を尊重
  3. 既にあるコンテンツと同じ効果になるように、以下の内容を付け加えなさい。
    見出し
    学科構成
    本文
    情報通信工学科には、以下の学科が設置されております。
    箇条書(青色)
    • 工学部第一部 情報通信工学科(昼間部)
    • 工学部第二部 情報通信工学科(夜間部)

なお、スタイル指定中の em は英字の m の横幅を表す単位です。15em は m 15 個分の横幅を表します。

演習5-6

演習5-5と同様に リンク先のサンプルファイル を保存し、次の修正 を加えなさい。。

  1. IT(情報技術)を IT(情報通信技術) に替えなさい(外国では ICT と言うらしい です)。
  2. 箇条書の中に第三項として以下の文章を加えなさい。残りの 箇条書の部分の番号は順にずらしなさい。
    3. 東京電機大学創立以来の『実学の精神』を尊重
  3. 既にあるコンテンツと同じ効果になるように、以下の内容を付け加えなさい。
    見出し
    学科構成
    本文
    情報通信工学科には、以下の学科が設置されております。
    箇条書(青色)
    • 工学部第一部 情報通信工学科(昼間部)
    • 工学部第二部 情報通信工学科(夜間部)

演習5-7

方程式 ax+ b=0 に解が存在するか存在しないかを示す 表を作りましょう。 解が存在しない場合は「存在しない」、存在する場合は「存在する」と表示す るようにしましょう。

ABC
1'a'b'解の存在
21020?

そして次の式について正しく条件が求まるか確かめなさい。

  1. 2x + 4 = 0
  2. 2x + 0 = 0
  3. 0x + 4 = 0
  4. 0x + 0 = 0

演習5-8

次のような成績処理を考えましょう。 レポートを 3 回行って、最後に定期試験を行います。 レポートは 10 点満点、試験は 100 点満点です。 それらの内容により評価を決めます。 評価は S,A,B,C,D(不合格)と放棄です。 レポートは各自の最低限の実力を見極めたいため、全て合格点(6点)を取らな ければ不合格とします。 また一方、評価自体は複数の機会のうち一番実力を発揮できたものを本人の実 力としたいので、試験の成績よりレポートの内容が良ければレポートの評価を 優先させたいです。 これらの条件から成績評価としてつぎのような条件を考えました。

  1. 試験を受験していなければ - (放棄)
  2. レポートは全て 6 点以上取っていなければ D(不合格)
  3. レポートが全て合格点で、試験を受験している時、点数として次のものを 考えます。
    1. 試験の点数
    2. (3 つのレポートの合計)*2.4+ 試験の点数*0.28
    このうちどちらか大きい方を総合点とします。
  4. 総合点に従って次のように評価を決めます。
    90 点から 100 点
    S
    80 点から 89 点
    A
    70 点から 79 点
    B
    60 点から 69 点
    C
    0 点から 59 点
    D (不合格)

なお、セルに 0 が入っていることと、何も入っていないことを区別するには CELL 関数を使用します。cell("type";セルの参照)とすると、 セルに何も入ってない時は "b" が値として返ってきます。

ABCDEFGH
1学籍番号レポート1レポート2 レポート3試験レポート点 総合点評価
204kc99168978???
304kc9928665???
404kc993666???
504kc99410101060???

註: 採点時、各レポートは最低 6 点なので、総合点は少なくとも 54 点にな ります。

演習5-9

次の式を = を使い、否定記号を使わない式で表しなさい。

  1. ¬(x=0)
  2. (a=0)(b0) の否定
  3. (a=0) (b=0) (a0) (b=0) (a0) (b0) の否定

演習5-10

次の数列を直前のセルの参照のみを使って生成しなさい。

  1. 10,9,8,7,6,5
  2. 0,2,4,6,8,10
  3. 1,3,5,7,9,11
  4. 1,2,4,8,16,32

演習5-11

数列の和を漸化式で求めることを考えます。 つまり、 Sk = a1 + a2 + ... + ak を求めます。 もし、 ak-1 までの和 Sk-1 が求まっていたとしたら、これに ak を足せば和 Sk が求まることになります。 つまり漸化式を書くと次の通りになります。

これを利用して、(SUM 関数を使用せずに)表計算で和を求めてみましょう。 次の表で和を求めなさい。

AB
15=A1
22=B1+A2
37?
41?
5=SUM(A1:A4)

演習5-12

次の漸化式から得られる列をフィボナッチ数列と言います(直前だけではな く二つ前の値も使用していますが、これも漸化式になります)。

表計算ソフトを使い、フィボナッチ数列を計算する表を作り、 a10 を求めなさい。

演習5-13

n個のなかから k 個を選ぶ選び方の数を nCk と書くことにします。 例えば、 4 個の中から 2個を選ぶ選び方は 4C2 と書き、この場合 6 (通り)になります。 この値は次のように考えると漸化式を立てることができます。 全体で n 個あるものの中から k 個を選ぶことを考え ます。 その時、特定の 1 個に着目します。これを選んだ場合、残りの n-1 個の中から k-1 個を選ぶことになります。 一方、これを選ばなかった場合、残りの n-1 個の中から k 個を選ぶことになります。 全体の選び方はこれらの和になるので、 nCk = n-1 Ck-1 + n-1 Ck になります。

これを利用して表計算ソフトを使用し、 10C4 を求めましょう。

ABCD
11
2=A1+B1=B1+C1
3=A2+B2=B2+C2=C2+D2

B1 には 0 個のものから 0 個のものを取り出す取り出し方 0C0 = 1 が入っています。 また、何も入ってないセルの値は 0 と扱ってくれるので、上のように何 も入ってないセルを指定してもエラーにならず正しく値を求めてくれます。

註: できあがった三角形状の表をパスカルの三角形と言います。

演習5-14

以下のようなパターンを表計算ソフトにおいてコピーすればするだけ表示でき るようにしなさい。 但し、文字列を連結するには演算子 & が使用できます。 "a"&"b"= "ab" です。

A
1
2○○
3○○○

演習5-15

演習5-14において、A1 の文字を○から別の文字に変えたら、すべての欄も 同時に○がすべて置き換えた別の文字に替わるようにしなさい (演習5-14で既にそのように作っているのであれば、同じ答を回答しなさい)。

A
1
2○○
3○○○
A
1×
2××
3×××

坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科