] > Fair Copy(1), Discrete Mathematics

第 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-1

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

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

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

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

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

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

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

文書を送るには

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

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

清書文書を送りたい

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

HTML

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

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

PDF

PDF は Adobe 社が開発した形式です。 Adobe 社は、多くの OS で表示できるソフトウェア(Acrobat Reader)を 無料 ソフトとして配布しています。 PDF は、基本的には Adobe 社が昔開発したプリンタ制御言語 Postscript に 圧縮機能を付け加えたものなので、表示は美しいにも関わらずファイル容量は 小さいです。

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

LaTeX

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

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

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

しばしば俗に用いられるものにマイクロソフトワードの添付ファイルがありま す。 しかし、この形式を用いると次のような欠点があります。 まずこれは、形式が公開されてません。 したがって、解読に有料のソフトウェアを購入する必要があります。 その上、記入されている文字数と比較してファイルの容量が非常に大きくなり ます。 さらに文書ファイルにも関わらず実行可能なプログラムを埋め込む機能がある ため、ウィルスの感染の可能性すらある形式です。 また、作成したソフトと同一のバージョンのソフトで読まないと作者の意図通 りに表示できないこともあります。 以上のことにより、受信者全員が高速のインターネットに接続している、ハー ドディスク容量の大きなパソコンを持ち、しかも同一のバージョンのワードを 持っていて、ウィルス対策が施されているというような条件が揃っている必要 があります。

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

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

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

静止画像を送りたい

写真など

写真を送るには 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-2

  1. 「ファイル→新規」「了解」で新しい画像を作ります。
  2. できた画面上で右クリックし、「道具→描画ツール→鉛筆」を選びます。
  3. 左ボタンを押しドラッグすると太い黒い線が書けます。
  4. 画像上で右クリックし、「ダイアログ→パレット」でパレットを表示し、 別の色を選びます。
  5. 画像上で右クリックし、「道具→描画ツール→塗りつぶし」を選び、黒の 線で囲まれた部分を左クリックし、色を塗ります。
  6. 画像上で右クリックし、「フィルタ→ライト効果→きらめき」を選び、 「了解」を左クリックします。
  7. 「ファイル→別名で保存」を選び、「選択」の欄に「c:\work\test.png」 を入力し、「了解」を左クリックします。そして、「PNM 形式で保存する」の 画面で「背景色を保存する」のチェックを外して「了解」を左クリックします。

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 の基本的な仕様

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>

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

<link rel="stylesheet" type="text/css" href="default.css"/>

なお本稿では XHTML との互換性を考慮してます。 従って、DOCTYPE を交換して XML 宣言をすれば XHTML 文書になります。 但し、XHTML 文書のファイル名には最後に .xml と付けるようにして下さい。

ボディ

ボディでは次の <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> で囲みます。 原則として、レベルを飛び越えて見出しを使ってはいけません。

例5-2

<h1>HTMLについて</h1>
<h2>headerとは……</h2>
<h2>bodyとは……</h2>
<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/> という強制改行タグを使用しま す。

例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>x</b></var> =<var><b>S</b></var><var><b>B</b></var><var><b>S</b></var><sup>-1</sup>

Ax=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 を使用する必要があります。

演習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)

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

<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

その他

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

演習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. 上記の内容を変更して、変更結果を表示しなさい。

学生用のサーバー

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

5-5. 表計算(4)

IF と論理関数

表計算の関数には IF という関数があります。

AB
11=IF(A1=3;5;10)

このような場合、B1 の値は A1 の値が 3 の時だけ 5 に、それ以外の時は 10 になります(この場合 10)。 IF を使うと一つの式で表せなかったような計算をすることができるようにな ります。

演習5-5

二次方程式 ax2 + bx + c = 0 ( a0 ) の実根の数は、判別式 D= b2 - 4 a c の値により、次のようになります。

D>0 のとき
2個
D=0 のとき
1個
D<0 のとき
0 個

これを計算させましょう。

ABCDE
1'a'b'c'判別式の値実根の個数
2102030=B2*B2-4*A2*C2=if(D2>0;2;if(D2=0;1;0))

そして、次の方程式の実根の数を求めなさい。

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

演習5-6

コンピュータのソフトウェアの設計では、どんな入力が来ても正常に動作する ことが期待されます。一番初めに取り上げた一次方程式の解法においても a=0 が入力されることは予想され、その場合も正常に動作するこ とが期待されます。

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

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

これを計算させましょう。

ABC
1'a'b'ax+b=0 の解
21020=if(A2=0;if(B2=0;"任意の値";"解なし");-B2/A2)

このように表を作ると、 a が 0 の時でも解が求まります。 次の方程式を解きましょう。

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

註: このように式に文字列を入れる時は、ダブルクォーテーションマークで 「"文字列"」というように括ります。

演習5-7

二次方程式 ax2 + bx + c = 0 ( a0 ) の実根を求めるシートを作りなさい。 もし実根が無かったら「解なし」と表示しなさい。 なお、平方根を求める関数は SQRT() とします。 そして次の問題を解きなさい。

  1. 2x2 - 3x + 1 = 0
  2. 4x2 + 4x + 1 = 0
  3. x2 + x + 1 = 0
ヒント
ABCDEF
1'a'b'c'判別式の値
2102030=B2*B2-4*A2*C2大きい方の解
または重解
または"解なし"
小さい方の解
または表示しない

解は最大 2 個ありますので、解を計算するセルは 2 個用意します。 一個目のセルは次のような働きをするようにします。

D>0 の時
大きい方の根の表示
D=0 の時
重根の表示
D<0 の時
「解なし」の表示

一方、二個目のセルは次のような働きをするようにします。

D>0 の時
小さい方の根の表示
D=0 の時
何も表示しない
D<0 の時
何も表示しない

演習5-8

前回の演習で作成したシートに対してさらに「合格人数」を入力できるよう にして、合否判定を行えるようにしなさい。

ABCDEFGHIJKLMN
1人数平均点標準偏差合格人数合格最低点
2?????
3受験番号国語数学I・A数学II・B総合理科 物理IB化学IB生物IB地学IB外国語得点順位偏差値合否
4C100150707563456500130????
5C10026562335471076098????
6C1003608093070800065????
  1. 合格人数から LARGE 関数を使用して合格最低点(100 人合格させるなら 100 番目の点数)を求めなさい。
  2. 得られた合格最低点と各素点から IF 文を使用して「合格」「不合格」を それぞれ表示させなさい。

演習5-9

次の方程式の組みを満たす x, y の組みを求めるよう なシートを作りなさい。 但し、 ad- bc=0 の時は、解が無限に存在したり、解がなかったりするので、注意すること。

{ ax + by = e cx + dy = f

そして、次の連立方程式を解きなさい。

  1. { 2x + 3y = 8 3x - y = 3
  2. { 2x + 0y = 8 x - y = 3
  3. { 4x - 2y = 8 2x - y = 3
  4. { 4x - 2y = 8 2x - y = 4
  5. { 2x + 3y = 8 0x - 0y = 3
  6. { 2x + 3y = 8 0x - 0y = 0
  7. { 2x + 0y = 8 0x + 0y = 0
  8. { 0x + 0y = 0 0x + 0y = 0
ヒント

二元一次方程式は二つの直線の共通部分と考えることができます。平面上の二 つの直線の関係は次のうちのどれかになります。

つまり、与えられた二つの式が平行かどうかを調べてから、さらに平行なら一致す るかどうかを調べると、この場合分けができます。 但し、これは二つの式が両方とも直線を表している時に、初めてできる場合わけ です。 一方、 abcdの組が 0 になると直線を表さなくなります。 少なくとも一方の式が直線でない場合は、その式に関しては演習5-6の方 程式で変数の係数が 0 の場合と同じになります。 つまり、直線でない式 0x + 0y = f ではその式を満たす x, yf が 0 か そうでないかで場合わけし、「全ての x, y」あるい は「解なし」となります。 この式で「解なし」の場合はもう一方の直線の式を考慮せずに連立方程式の解 が「解なし」となります。 一方、「全ての x, y」の場合は、もう一方の式を満 たす x, y が、この連立方程式の解になります。 つまりこの場合に出力すべき解は 「 ax + by = e を満たす全てのx, y」と表示することになります。

なお、例えば「解は 5x+ 3y = 1 を 満たす全ての(x, y)」と表計算のセルに表示させるに は、式の中に文字列を埋め込む必要があります。 その場合は次のようにダブルクォーテーションマークで文字列を括り、 & 記号で他の値と結合させます。

="解は"&A2&"x+"&B2&"y="&C2&"を満たす全ての(x,y)"

5-6. 論理計算

論理演算

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

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) となります。

演習5-10

方程式 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-11

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

  1. 試験を受験していなければ - (放棄)
  2. レポートは全て 6 点以上取っていなければ D(不合格)
  3. レポートが全て合格点で、試験を受験している時、点数として次のものを 考えます。
    1. 試験の点数
    2. (3 つのレポートの合計)*3+ 試験の点数/10
    このうちどちらか大きい方を総合点とします。
  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 点にな ります。

ド・モルガンの法則

方程式 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-12

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

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

5-7. 宿題

次回からは C 言語を学習しますので、 MinGW-jp をダウンロードしておいて下さい。 また、タイプ練習をします。タイプ練習が不要な人はレポートを書く時間に充 てることも可能です。副手に質問も可能です。


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