] > Computer, Spread Sheet(2)

第 3 回 コンピュータ, 表計算(2)

本日の内容


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

3-1. 現代コンピュータのできるまで

以下の人物名では敬称を略しています。

古典数学の崩壊

19世紀、カントルなどにより集合論が発展しました。しかし、ラッセルの逆理 「 X を自分自身を含まない集合を要素とする集合とした時、X は自分自身を 含むか否か?」という数学上の矛盾が発見されました。 これは数学の根幹に関わる問題で、これから何年にもわたって解決策が考えら れていきました。 ヒルベルトはあらゆる命題の正否が常に判定できるような理想的な体系が発見 できれば解決できるとしました。 一方、ブラウアは背理法に問題があるとし、二重否定を肯定と考えない 直観主義論理を考案しました。 彼らは対立し、論文誌上で激しくやりあいました。当時編集委員だったアイン シュタインは「鼠と蛙の論争」と揶揄してました。

この論争は1931年、当時大学院生だった Gödel により思わぬ形で決着しま した。 Gödel は「自然数を含むような数学の体系には証明できない命題が存在す る」という不完全性定理を発表しました。 これによりヒルベルトの計画が不可能なことがわかってしまいました。 この結果を受け、数学は、従来知られているような定理を失わないように配慮 しつつ、ルールが厳密に定められました。新しい集合論は公理的集合論 と呼ばれ、そこでは「集合」の定義は行わず、また、「ある性質を満た した集合の集まり」を集合とは呼ばなくなりました。 その結果、ラッセルの逆理のような集合は定義できなくなり矛盾はなくなりま した。

計算の原理の発明

1930 年代にアラン・チューリングなどによる現代数学の研究により、計算自 体をモデル化するために Turing 機械と呼ばれる理論的な計算機が定義されま した。 現在の理論計算機科学でもこの Turing 機械を用いられています。 一方、クロード E シャノンは論理学と密接に関係するブール代数が電気回路 で実現できることを示しました。 これにより計算を電気回路で計算するための基礎が完成しました。

電子回路で組まれた最初の計算機は 1930 年代から 1940 年代にかけてアイオ ワ州立大学で Atanasoff と Berry により作られた ABC(Atanasoff-Berry Computer) という機械です。 その後、Atanosoff 教授の弟子、ペンシルバニア大学の Mauchly らにより作ら れたのが ENIAC です(1946年)。スポンサーは陸軍です。 当初弾道計算のためにと作られましたが、実際は水爆の設計に使われました。 ENIAC では計算をさせるためのプログラムは配線により実現されてました。

フォン・ノイマンは ENIAC の路線を踏襲し、さらにプログラムをメモリーに 内蔵するコンピュータ MANIAC を作りました(1952年)。 以後、コンピュータのプログラムはすべてメモリーに内蔵されるようになるた め、プログラムをメモリーに内蔵するコンピュータをノイマン型と言うように なります(プログラム内蔵式をノイマンが発明したわけではありません)。

プログラムをメモリーに入れるために、紙カードが使われました。 これはもともと自動織物機の制御のために 19 世紀に発明されたもので、電子 計算機が作られる前からアメリカの国勢調査などで使用されてました。 当時のコンピュータでは紙カードに一枚につき一行ずつ書かれたプログラムを紙 カードリーダにセットし、 start ボタンを押すと、コンピュータがプログラ ムをメモリーに読み込んで実行し、プリンタに結果を出力するというものでし た。

MIT に所属し、後にARPA の情報処理技術室の初代責任者となる J・C・R・リックライダーはコンピュータはインタラクティブに対話ができる べきだと考え、1952年から防空情報通信システムの設計に携わり、世界初のリ アルタイム対話型コンピュータを実現しました。

パソコンの歴史

電卓用の回路を開発するため、日本のビジコン社の嶋正利がアメリカのインテ ル社と打合せしたうえで設計したのが世界初の 1 チップの CPU 4004 です (1969年)。 CPU とはメモリの内容により状態を変化させながら計算を行うものです。 これは、各桁のデータを 0 から 15 までの 4 bit で表し、 0 から 15 のうち 0 から 9 を使っ て10 進数を扱う 4bit コンピュータです。 なお、コンピュータや CPU の前につける XX bit という表現は一度に処理で きる数の桁数(二進数)を表していて、コンピュータの性能の目安になっていま す。 その後、それを拡張した 4040 が出され、 そして、各データを 8 bit に拡張し た 8008 が出、 8080 が登場しました(1974)。 8080 の入出力形式を TTL というIC の規格に合わせたのが 8080A という CPU です。 その後、8080A を 16 bit に拡張して 8086 となり、 以後 80186, 80286 と機能が拡張され、 80386 からは 32 bit になりました。 また、内部的には 8086 で外部的には 8bit である CPU として 8088 も作ら れました。

8080 が出た時、Altair 8800 という画期的なコンピュータの組み立てキット が登場しました(1974年)。 これは当時コンピュータと名のつくものがすべて数百万円以上したのに対して 画期的な値段(256B メモリで $397)でした。 そして、当時ミニコンやそれ以上のコンピュータなどでしか動かなかった BASIC 言語を Altair 8800 用に作ろうとビル・ゲイツが企画し、ポール・ア レンが半年がかりで作成しました。 そしてこの二人はパソコン用の BASIC 言語の権利を売ったお金で Microsoft 社を興します。

ステファン・ウォズニアック は6502 という安価な CPU をみつけ、これにメモ リと 16 進数のキーボードを付けたコンピュータ作り、スティーブ・ジョブス とともに Apple 社を作り発売しました(1976年 $666.66)。これが完成品とし ての初めてのパソコン Apple I になります。 その後、タイプライター型のキーボードを付け、テレビに接続でき、 BASIC 言語が動く Apple II を販売しました(1977年 $1295)。 Apple II は内部回路などを公開したため、支持を集めていきました。 一方、 IBM は CPU として 8088 を採用して Apple II に良く似たコンピュー タ The PC を発売しました(1981年 約 $1500)。 こちらのコンピュータも回路図を公開したため、たちまち人気になりました。 OS はマイクロソフト、CPU はインテルと重要な部品が外注でしたので、後々 誰でも部品さえ組み合わせれば互換機が作れるという土壌ができました。 その後、 PC/XT を経て PC/AT が出ました。PC/AT は 80286 CPU を搭載し、 AT バスと呼ばれる周辺機器用の拡張規格を組み込みました。 これは後に ISA バスと呼ばれ、長い間標準の拡張バスとして多くの周辺機器 が作られました。そしてそれは 1998 年の PC98 規格で廃止になるまで続きま した。 そのため、しばしば現代のコンピュータは AT 互換機と呼ばれています。 しかし、 PC/AT は 80286 という 16 bit CPU を搭載しているため、今使われ ている 32bit 用のソフトウェアはほとんど動作しません。また、 21 世紀に 入って ISA バスはほとんど姿を消しました。そのため、現在のパソコンで使 われているものの中で PC/AT との互換性のあるものはソフトもハードもほと んどありません。 まあ、確かに AT用のソフトウェアである Windows 3.1 などは動きますが、 入手できないソフトウェアの存在を根拠に互換性があるというのもおかしな話 です。 つまり現在のコンピュータは PC/AT とは互換性がないと言える状況なのに、 AT 互換機と呼ばれています。 現代のコンピュータの原点と言うべきコンピュータは Compaq が出した 80386 CPU を持つ DeskPro 386 と呼ばれるものです(1986年)。 PC/AT は CPU と ISA バスが直結でしたが、 DeskPro はチップセットと言う ISA バスと CPU バスとを分離するための部品を採用したもので、 これにより、周辺機器と互換性を保ったまま CPU の機能や速度を上げること ができるようになりました。 CPU に 32 bit が使われ、周辺機器とチップセットによって接続される仕組み は現在のパソコンでも使われています。 最近ではチップセットの性能がパソコンの性能を決めると言っても過言ではな く、メモリやハードディスクなどの重要な部品のうちどこまで高性能なものを 使えるかどうかなどはすべてチップセットが決定します。 また、最近のチップセットはグラフィック機能やサウンド機能なども内蔵して いるものもあります。 DeskPro 386 は自体は最新バージョンの Linux などの現在でも入手が容易な ソフトウェアも使用できます(速度面では期待できませんが……)。

ソフトウェアの発明

コンピュータは機械語と呼ばれる命令の連続で書かれたプログラムの指示通り 動きます。 初期のコンピュータは全て人間が機械語を書いて動作させていました。 そこに登場したのが会計用の言語 COBOL と科学計算用の言語 FORTRAN です。 変数を使い、繰返し計算をするための構造を持っていました。 この後、様々なプログラミング言語が作られました。 ソフトウェアの管理を考える必要性が生じそのため構造化プログラミ ングと言う概念が生まれました。これを体現したのが ALGOL です。 C 言語や PASCAL 言語はこの ALGOL を祖とします。 その後、 IBM は目的別言語に対して、統一言語を作ろうと PL/I を 作りました。 一方教育用のため、 FORTRAN を簡約化した言語 BASIC が作られました(1964 年)。 そして、 ALGOL 60 を改良したシミュレーション用言語として作られた SIMULA 67 は、初めてオブジェクトクラスの概念を取り入れました。 C++ はこの SIMULA を祖としています。 その後、様々なプログラミング方式が考案されました。 その中には、リスト表現の処理に特化した関数型言語 LISP などが生まれまし た。

リックライダーが携わった対話型コンピュータのシステムの開発は、 1960 年代に入って Multics という超高機能な OS の開発へと続いていきまし た。 高級言語 PL/I で記述され、高いセキュリティも考慮され、マルチ CPU にも 対応するなど様々な理想が追求されましたが、当時のコンピュータの性能は省 みられなかったため、プロジェクトは成功しませんでした。 そして、メンバーのうち AT & T は早々に離脱しました。 離脱したメンバーのケン・トンプソンはは研究所で Multics を簡略化した OS Unics を作成しました。 その後、名前を UNIX に変え、システムも機械語から C 言語で書かれるよう になり、広まっていきました。

UNIX を参考にして作られた世界初のパソコン用 OS CP/M がディジタルリサー チ社から発売されました(1974 年 $70)。 その後、8086 用にも CP/M 86 が作られました。 IBM は The PC を発売する時、 CP/M 86 を採用しようとディジタルリサーチ 社を尋ねたところ、社長が不在でした。そのため、 Microsoft 社に声をかけ たところ Microsoft は CP/M 86 のコピー品の Quick Dirty OS の権利を買い 入れ IBM に納品しました。 IBM は PC-DOS という名前で販売し、Microsoft も MS-DOS と言う名前で販売 しました。

1970 年代に Xerox のパロアルト研究所では、アラン・ケイ氏が Dynabook 構 想というものを考えてました。 当時パーソナルコンピュータなるものすら発想がなかった時代ですが、 これからは人間は情報を得るために、普通の本から Dynabook と呼ばれるコン ピュータを活用するだろうというものです。 この Dynabook は 500 ドルくらいで、子どもでも本と同様に取り扱え、 2M 位のメモリーと通信機能を備えたものと想定されました。 Dynabook を実現するために開発されたのがオブジェクト指向言語 SmallTalk です。 これはプログラムやコンピュータ資源まですべてをオブジェクトと見なし、あ らゆるコンピュータ操作はオブジェクト間のメッセージのやりとりのみに単純 化すると言うものです。 さらに SmallTalk ではグラフィック画面を持ち、オブジェクトを特定のマー クで表し(アイコン)、マウスなどのポインティングデバイスによりアイコンの メニューを通じてメッセージを送るようになってました。 Xerox は Dynabook として Star という名前のコンピュータを発表しました (1981年)。 しかし価格が16,000ドルもし、とてもパーソナルとは呼べるものではありませ んでした。

Apple 社の Steave Jobs はこの Xerox のパロアルト研究所を見学し(1979年)、 SmallTalk を見て、Dynabook 構想に共感しました。 そして Apple 社は Lisa と呼ばれる 200 万円位するコンピュータでした (1983年 $10,000)。 それ自体は商業的に成功しませんでしたが、それを改良、安価に した Macintosh を発売しました(1984年 $2500)。 Macintosh はその後カラー化され、 Macintosh II となりました。 当初は 2000 年頃に Macintosh III として Dynabook が実現されるという話 もあったようですが、2005 年現在、まだ Dynabook は実現されていません。

Macintosh が出た 1 年後、Microsoft 社は MS-DOS にグラフィック画面で Macintosh に似せた操作ができるようにした Windows 1.0 を発売しました。 その後、 Apple 社は Windows が Macintosh に似ていることで Microsoft 社 を訴えますが、裁判で敗訴しました。 一方 Windows は Windows 95 で 80 年代後半の Macintosh に外見上そっくり になりました。

日本のパソコン

日本初の個人で買えそうな値段のマイコンは NEC の TK-80 です(1976年)。こ れは 8080A CPU に LED と 16 進数のキーボードがついたキットです。 その後 TK-80BS という追加装置が出ました。 これを追加するとテレビに接続でき、タイプライターキーボードが付き、 BASIC 言語が利用できるようになりました。 次に NEC が出したのが PC-8001 というもので、これ以降、パーソナルコン ピュータという言葉が使われるようになりました(1979年)。 PC-8001 は Z-80 という 8080 と互換 CPU が使われ、タイプライターキーボー ドが付き、専用モニターテレビに接続して BASIC 言語を使用するものでした。 この後、各社で 8bit CPU を搭載した BASIC 言語を使用するパソコンが発売 されました。 そして NEC からは PC-8001 を拡張したPC-8801 が発売され、その後 16 bit CPU 8086 を搭載した PC-9801 が発売されました(1982年)。 当時 PC-9801 と同じ時期に PC-100 というIBM PC の互換機が同じ NEC から 発売されましたが、PC-100 の後継機は出ず、以後 NEC は PC-9801 シリーズ が中心になります。

花札のメーカだった任天堂からファミリーコンピュータが出たのは 1983年。 CPU は Apple II と同じ 8bit CPU 6502 相当品でした。 一方、ゲーム用途の低価格パソコンとして 8bit CPU Z80 を搭載し、BASIC 言 語の他、ゲームカートリッジを差し込めるようになっている MSX 規格が、 アスキー社とマイクロソフト社共同で作られたのも 1983 年でした。 その後、ソニーや松下などのパソコン後発メーカから MSX 規格のパソコンが 発売されました。

その後、国内ではシャープの X68000 や富士通の FM-Towns など今から思えば 良いハードウェアは登場してましたが、ワープロの一太郎、表計算の Lotus 1-2-3 などの定番ソフトは PC-9801 用しか作られず、PC-9801 の一人勝ちの 時代が長く続きました。 なお、当時のパソコンでは、漢字を画面に出すために特別の装置を組み込み、 MS-DOS を改造する必要がありました。 そのため、IBM PC の互換機も何度か参入してきましたが、結局失敗していま した。 ただ、東芝は勝手に Dynabook を名乗った、漢字表示機能 を搭載した IBM PC 互換のラップトップパソコンを発売しましたが、これは、 その小型さから一定の支持を得ていました。

日本 IBM は 640×480 ドット、 16 色という VGA グラフィックアダプタに文 字を図形として出力するディスプレイドライバを作成し、 PC-DOS version 4 /V として発売しました(1989年)。 この技術を使うと、漢字の出力をソフトウェアで全て処理できるようになるた め、外国製のソフトウェアも日本語のソフトウェアも PC-DOS/V 上で動き、中 には改造せずに漢字を入力できるようになるものもありました。 この DOS/V 技術(DOS の文字出力を VGA グラフィック画面に表示する技術)に より、 IBM の互換機が日本でも売れるようになってきました。 当時、 PC-9801 が一番良く売れてましたが、高値安定だったため、拡張パー ツが豊富にあり、漢字 ROM の付いてない安い IBM互換機が売れるようにな りました。

DOS/V が出た後、Windows 3.1 が登場しました。Windows 3.1 はまだまだ Macintosh に似ているというレベルにまで達してませんでしたが、それでも一 太郎、 Lotus 1-2-3 と当時重要だったアプリケーションが出ました。 MS-DOS では PC-9801 と DOS/V の動く IBM 互換機は使い勝手が違い双方一長 一短でした。 しかし、 Windows 3.1 を使えば違いはなかったため、高速で安く拡張性に富 んでいる DOS/V の動くパソコンのシェアは拡大していきました。 そして、 Windows 95, 98 と出るうちに PC-9801 は市場から消えていきまし た。

年表

年代コンピュータの発達ソフトウェアパソ コンの発展日本のパソコン
1930Turing 機械、シャノンによる電気回路でのブール代数の実 現
1940初の電子計算機
1950ノイマン型計算機、対話型コンピュータ、構造型プログラ ミング言語COBOL, FORTRAN, ALGOL
1960インターネット、 1 チップ CPU、オブジェクト指向Multics, UNIX, LISP, BASIC, PL/I, SIMULA67
1970 Dynabook 構想 SmallTalkAltair 8800, CP/M, Apple IITK-80
1980 IBM the PC, Macintosh, Compaq DeskPro 386 NEC PC-9801, ファミコン, DOS/V
1990 Windows 95Intel Pentium NEC PC-9801, ファミコン, DOS/V

3-2. コンピュータの仕組み

コンピュータには、ハードウェアと呼ばれる装置と、それに与え るソフトウェアという情報があります。

ハードウェア基本構成

コンピュータの基本構成図 コンピュータは次のような部品で成り立ってます。

  1. 情報を記憶する「メモリ」という装置と、
  2. 記憶されている情報を元に制御を行う「CPU(Central Processing Unit)」と、
  3. 情報を入れたり出したりする「I/O(Input/Output)」

これらが「バス」という配線方式でつながってます。 バスの由来は大量の固まったデータが同じ線を行き来する様から来ています。

なお、CPU は他の装置のやりとりしながら状態を変化させて計算を行います。 そのため、装置のやりとりや状態を変えるタイミングをとる必要があります。 現代のほとんどのコンピュータはこれをクロックと呼ぶ発振器の パルスに合わせて同期させて動かします。 当然状態が速く変化した方が計算を高速にできますので、クロックの周波数は コンピュータの性能を表す一つの指針になります。

最近のコンピュータのハードウェア

最近のコンピュータは、さらに次のようになってます。

  1. メモリの概念図 メモリは記憶領域をいくつも持ち、それぞれにアドレスと呼ば れる番号がついています。 各記憶はアドレスを指定して読み書きできます。 情報を任意のアドレスから取り出せるメモリのことをRAM(Random Access Memory)と呼びます。 通常、 RAM の内容は電源を切ると消えてしまいます。
  2. CPU はノイマン型と呼ばれる方式により設計されています。 ノイマン型では、コンピュータが実行するプログラムはメモリーに置かれ、 CPU は 0 番地、 1 番地と番地順にメモリの内容を命令と解釈しながらプログ ラムを処理します。
  3. CPU は高速に動作する必要がありますが、周辺機器は他の速度で動作する 必要があります。 そのため、CPU と周辺機器のクロックを分離した上で、相互にデータをやりと りできるための制御装置としてチップセットと呼ばれるものがあ ります。 現在のコンピュータでは CPU の機能は皆同じで、計算速度だけ異なります。 一方チップセットにより対応する CPU に対してどのような周辺機器を接続で きるかが決められてしまうので、コンピュータの性能を決めるのはむしろチッ プセットと言うこともできます。
  4. I/O として、次のようなものが接続されています。
    入力装置
    キーボード、マウス
    出力装置
    画面、スピーカ
    補助記憶装置
    フロッピーディスク、ハードディスク、CD-ROM
    通信装置
    イーサーネットカード、モデム
  5. コンピュータの電源を入れると、「接続されている装置を把握して、補助 記憶の内容の一部をメモリーに読み込み、実行する」というプログラムがコンピュー タに内蔵されています。これは不揮発性(電源を切っても消えない)メモリに蓄え られています。 不揮発性メモリをROM(Read Only Memory)と呼びます。 「コンピュータの電源を入れた時にコンピュータの状況を把握して補助記憶上 のプログラムを読んで実行する」というプログラムを通常 BIOS(Basic I/O System)と呼びます(または IPL(Intial Program Loader)と呼ぶこともあります)。

演習3-1

  1. BIOS の画面(ハードウェアを管理する画面)を表示する方法をマニュアルとし てまとめなさい。
  2. 電源を入れた時、パスワードの入力を必要とするように設定する方法をマ ニュアルとしてまとめなさい。

ソフトウェア

一番最初に作られたコンピュータでは、プログラムは配線により組まれてまし た。しかし、現代のノイマン型コンピュータではプログラムは全てメモリーに記憶 されるデータとして扱われます。 プログラムはコンピュータを動作させるのに必ず要るものですが、「装置(ハー ドウェア)」ではありません。 コンピュータを動作させる装置以外の、データやプログラムのことをソフ トウェアと言います。

オペレーティングシステム(OS)

ハードウェアの項で説明しましたように、基本的には CPU はメモリー内の 0 番地から一つのプログラムを実行するだけの機能しかありません。

ハードウェアを変更せずにコンピュータに幾つかのプログラムを処理させるた めには、複数のプログラムを取り扱うようなプログラムが必要です。 そのようなプログラムをオペレーティングシステム(OS)とか「基本 ソフト」と呼びます。OS に与えるプログラムをアプリケーションソフト ウェアとか「応用ソフト」などといいます。

OS はプログラムの管理の他に次のような管理もします。

家電に組み込まれているコンピュータのように一つのプログラムしか実行しない コンピュータには、基本的にはオペレーティングシステムは必要ありません。 但し、画面に字を出す機能など複数の製品でも同じような機能が必要なので、最近 は「組み込み用 OS」が入ってます。 日本製の携帯電話の多くには ITRON が入ってます。

OS は、複数のプログラムを実際に動かしたり機器を管理したりする部分 (カーネル(核))と、 利用者とコミュニケーションをする部分(シェル(殻))に分けること ができます。 ユーザからは複雑な核の部分は見えず、殻の部分だけが見えます。 シェルには、文字によるコミュニケーションをするシェル(CUI シェル)とグラフィックによるコミュニケーションをするシェル(GUI)シェルが あります。

3-3. Windows

マイクロソフト Windows は OS と呼ばれるものです。 OS は人間がコンピュータを操作し、プログラムを実行することを可能にしま す。

オブジェクト指向とGUI

コンピュータはソフトウェアであるプログラムの指示(命令)に従って動作します。 従って、素朴な考え方をすれば、指示の全てはコンピュータが主体になります。 しかし、特定のプログラムに複数のデータを扱わせるような場合、実は主語がコン ピュータの構文は考えづらいです。 また、一般にデータはそれを処理するプログラムがないとコンピュータは処理 できませんが、人間の思考パターンとしては、データを主語として考えたい場 合があります。

例3-1

料理の作り方

主語を「あなた」にした場合
  1. あなたは大根を 1/4 本用意しなさい。
  2. あなたは大根を洗い、そして皮をむきなさい。
  3. あなたはおろし金を使って、大根をおろし、おろしたものをボウルに保存 しなさい。
  4. あなたは、ボウルに保存したものを皿に盛り付けなさい。
料理の対象に注目した場合
  1. 材料:大根 1/4 本
  2. 大根は洗って皮をむきます。
  3. 大根をおろし金でおろします。
  4. できあがったものを皿に盛り付けます。

オブジェクト指向とは、コンピュータの中にオブジェクトというも の(簡単なアプリケーションソフトのような情報処理の単位)を作り、それに対 してメッセージを送ることでオブジェクトの操作を行おうというも のです。 コンピュータ操作はコンピュータそのものに対して命令の羅列により情 報を処理していました。 しかし、オブジェクト指向では、情報はオブジェクトに対してメッセージとし て送られ、さらに別のオブジェクト間でメッセージをやりとりして情報交換し ます。

アラン・ケイらが開発した SmallTalk というオブジェクト指向言語はグラフィッ ク機能が実現されていました。 ユーザの操作をグラフィック画面を通して行う GUI という機能もオブジェク ト指向の考えに基づいて構築されてました。 オブジェクト指向では操作の対象となるものを全てオブジェクトとして考え、 オブジェクトにメッセージを送ることでコンピュータを操作するようになって ました。 そのため、画面上に個々のオブジェクトを表すためのアイコンと呼ばれる絵を 表示し、そのアイコンにメッセージを送る方法をとりました。

メッセージの種類を表示するのに SmallTalk ではポップアップメニューという方式をとりました。これはアイコ ンを指定してメニュー表示ボタンを押すとメニューが表示される仕組みです。 階層構造がある場合はさらに別のメニューが表示されます。 一方 SmallTalk を真似た Macintosh ではプルダウンメニュー方式という方式をと りました。これは、画面上部にメニューを表示する領域を用意し、アイコン を指定するとそのアイコンに送ることができるメッセージの一覧をメニューに 表示するものです。階層構造があるものは、メニューが垂れ下がるようになっ てます。 Windows ではこのポップアップメニューとプルダウンメニューの操作が混在し ています。アイコンを右クリックするとポップアップメニュー、アプリケーショ ンソフトの操作はプルダウンメニュー、スタートボタンを押すと、プルダウン メニューを 90度横に倒したものが表示されます。

演習3-2

次のウィンドウ上のアイコンにはどのようなメッセージを送ることができるか 調べなさい。

ヒント: アイコンを右クリックしてみる

  1. コマンドプロンプト (または MS-DOS プロンプト)
  2. ゴミ箱
  3. work のショートカット

参考

アラン・ケイらは SmallTalk をさらに改良し、現在 Squeak というソフトウェ アを開発し、無料で配布しています。 Squeak は Windows, Macintosh, UNIX の他、 Windows CE や Zaurus でも動 作します。

CUI

リックライダーが開発した対話型という仕組みは今でもコマンドプロンプトや MS-DOS プロンプトとして生きています。 これはユーザが命令を送ると、答をコンピュータが返すということをインタラ クティブに行うものです。 利用者は命令を送りますが、その文法は基本的には英文法と同じようなもので す。つまり、さいしょに動詞(コマンド) を書き、空白で区切って目的語(引数) を書きます。 最後に Enter キーを押すと、命令の入力が終了したことを伝えることになり、 コンピュータは処理を開始します。 例えば、echo abc[Enter]という命令は、 echoというコマンドに abc という引数を渡します。 echoというコマンドは引数を単純に送り返す(画面に出す)もので すので、この命令を打つと abc と画面に表示されます。

演習3-3

MS-DOS プロンプトやコマンドプロンプトに次のコマンドを入れ、何が返って くるか調べなさい。 そして、どんな意味のコマンドなのか想像しなさい。

  1. ver
  2. time
  3. date
  4. echo def
  5. rem abc
  6. cls
  7. exit

3-4. 表計算(2)

演習3-4

二元一次連立方程式を解くシートを作りなさい。

{ ax + by = e ( ad- bc0 ) cx + dy = f
ABCD
1'a'b'e'x
2123?
3'c'd'f'y
4456?

シートを作成した後、以下の連立方程式を作成したシートを使って求めなさい

  1. { 2x + 3y = 8 3x - y = 3
  2. { 4x - 2y = 8 x + y = -3
  3. { x - 3y = -2 3x + 2y = 5
解答のヒント
  1. 連立方程式の解の公式を求めます。
    { ax + by = e ( ad- bc0 ) cx + dy = f
    { adx + bdy = de bcx + bdy = bf
    (ad- bc) x = de - bf
    x = de - bf ad- bc
    同様に
    y = af - ce ad- bc
  2. D2 セルに =(b4*c2-b2*c4)/(a2*b4-b2*a4) を、 D4 セルに = (-a4*c2+a2*c4)/(a2*b4-b2*a4) を入れます。

領域

指定

セル上で次のことをすると長方形の領域を反転(指定)することができます。

  1. ポインターをドラッグする。
  2. Shift を押しながらカーソルキーを動かす。

又、式の中で「左上のセルの名前:右下のセルの名前」とすることでも領域を 指定できます。

領域の選択はいろいろな用途に使えます。

  1. 削除、コピー、貼り付けなどの Windows の編集機能
  2. 領域のふちをドラッグ & ドロップすると、領域の移動ができる。
  3. 領域のふちを Ctrl キーを押したままドラッグ & ドロップすると、 領域のコピーができる。
  4. 領域を指定してから入力を行うと、 Enter キーを押すたびにカーソルが 領域内に収まるように動く。

関数

領域を引数とする関数があります。 領域を関数の引数として指定する場合、長方形の領域のうち「左上のセル名: 右下のセル名」という形で指定します。 もちろん、上記のようにマウスのドラッグや、カーソルキーの移動でも指定で きます。

以下は領域を引数とする関数の例です。

SUM(X)
領域 X 内の数を合計を求める。
AVERAGE(X)
領域 X 内の数の平均を求める。
STDEV(X)
領域 X 内の数の標準偏差を求める。
COUNT(X)
領域 X 内でデータの入っているセルの数を求める。
MAX(X)
領域 X 内の数の最大値を求める。
MIN(X)
領域 X 内の数の最小値を求める。
RANK(X;Y;Z)
領域 Y の中で X の順位を返す。Z=0 なら大きい順、Z=1 なら小さい順。
LARGE(X;Y)
領域 X 内の数で Y 番目に大きい値を求める。

演習3-5

次の表を作り、データの合計を求めなさい。

ABCDEF
113825=SUM(A1:E1)

演習3-6

上記の演習3-5の表に対して、 G1 のセルに平均値を求めなさい。

ハンドルと参照

参照のコピー

次の表を考えます。

ABCD
11020=A1?
23040??

ここで、 C1 のセルを D2 にコピーすると D2 にはどんな内容が入るのでしょ うか? 実は、この時、D2 には「=A1」は入らず、「=B2」が入ります。 右に一つ、下に一つ移動すると、A が B にずれ、 1 が 2 にずれます。コピー のこのような性質を使うと、表を作る時便利です。

さらに、ハンドルを使用するとコピーが簡単に行えます。 コピー元にカーソルを合わせ、ハンドルをドラッグするとドラッグした範囲に コピーが行われます。 また、横に複数の範囲を選択してからハンドルを縦にドラッグすると、複数の 範囲をそのまま縦方向にコピーできます。

演習3-7

ハンドルを使って次の表を完成させなさい。

ABCDE
1'X'Y'X^2'X*Y
23040=B2*B2=B2*C2
35060=B3*B3=B3*C3
47080=B4*B4=B4*C4
590100=B5*B5=B5*C5
6'合計=SUM(B2:B5)=SUM(C2:C5)=SUM(D2:D5)=SUM(E2:E5)

ヒント

  1. 「X」,「Y」,「X^2」,「X*Y」,「合計」などはそのまま入力する。各 X, Y の値も入力する。
  2. D2, E2 は入力する。そして、 D2, E2 を選択し、ハンドルを 5 行目まで 引っ張る
  3. B6 を入力したあと、 B6 を選択し、ハンドルを E 列目まで引っ張る

演習3-8

東京電機大の工学部第一部大学入試センター試験利用試験で情報通信工学科は 次のような集計を行います。

国語
素点のまま。100点満点
数学
素点のまま。「数学I・数学A」「数学II・数学B」とも100点満点
理科
「総合理科」「物理IB」「化学IB」「生物IB」「地学IB」の中から高得点 のもの。素点100点満点を二倍する。
外国語
素点のまま。200点満点

次のような素点表があった時、各受験生に対して合計得点を求めなさい。

ABCDEFGHIJK
1受験番号国語数学I・A数学 II・B総合理科物理IB化学IB生物IB地学IB外国語得点
2C100150707563456500130?
3C10026562335471076098?
4C1003608093070800065?

絶対参照

セルの参照の入ったセルをコピーすると、移動先に応じて参照先が変化します。 しかし、これでは都合の悪い場合があります。 例えば、一つの値をいろいろなセルから参照したい場合をなどが考えられます。 このような場合、A1 などの書式で参照をすると、コピーをすれば、コピー先 には A1 ではなくコピー元からコピー先までの距離に応じて参照先が変化して しまいます。 このような場合、必要とされるのはコピーしても参照先が変わらない ような参照の仕方です。 このため、絶対参照と呼ばれるセルの参照の仕方があります。 これは、参照の前に「$」を入れて書くもので、こうするとコピーしても移動 距離に影響を受けずそのままの参照を保ちます。 そして、これは列と行と別々に指定できます。 例えば、「$A1」なら横に移動する時は「$A1」のままですが、縦に移動すると 「$A2」「$A3」…となります。 一方、 「A$1」なら横に移動する時は「B$1」「C$1」…となりますが、縦に移動する と「A$1」のままになります。 そして、「$A$1」ならどこにコピーしても「$A$1」のままです。

絶対参照は参照を直接キーボードで入力することもできますが、式の入力時に、 カーソルやポインタで指定してから「Shift+F4」を押すことでも指定できます (マイクロソフトエクセルやロータス 1-2-3 では F4 のみ)。

演習3-9

次の表で C1 セルの内容をハンドルを使って ? 記号が入っているセルにコピー すると、どのような値が入りますか?

ABCD
11020=$A1?
23040??

演習3-10

次の表で C1 セルの内容をハンドルを使って ? 記号が入っているセルにコピー すると、どのような値が入りますか?

ABCD
11020=A$1?
23040??

演習3-11

次の表で C1 セルの内容をハンドルを使って ? 記号が入っているセルにコピー すると、どのような値が入りますか?

ABCD
11020=$A$1?
23040??

値のコピー

値(数、日付)の入っているセルのハンドルを引っ張ると、その値を 1 ずつ増 やした値が埋められます。

二つのセルを選択した後、選択した方向にハンドルを引っ張ると、等差数列を 作ります。

例3-2

ABCDE
133.13.23.33.4
22004/5/12004/6/12004/7/12004/8/12004/9/1

このような表を作るには、 (1) A1 に 3 、 B1 に 3.1 を入力し、A1 と B2 を選択してハンドルを引っ張り、 (2) 同様に、A2 に 5/1/2004 と B2 に 6/1/2004 を入力し、 A2 と B2 を選 択してハンドルを引っ張る。

演習3-12

sin の関数表を作りなさい(次の演習で使用するので消さないこと)。

AB
10=sin(A1)
20.1=sin(A2)
30.2=sin(A3)
:::
:::
646.3=sin(A64)

ヒント: (1) 0 と 0.1 を入力し、選択して、ハンドルを引っ張り、 6.3 までの等差数列を作り、(2) =sin(A1) を入力し、ハンドルを引っ張り 6.3 ま での表を作る。

グラフ

データの入っている領域を選択して、「挿入→グラフ」とするとグラフが描 けます(「挿入→グラフ」をしてから領域を選ぶこともできます)。

演習3-13

上の演習で作成した sin の関数表を元に、 sin 関数のグラフを描きなさい。

ヒント
  1. 領域指定。
  2. 挿入→グラフ。
  3. 「最初の行/列を項目名に引用」のチェックを両方とも外し、「次へ」。
  4. 「散布図」を選び、「次へ」。
  5. 「線のみ」を選び、「次へ」。
  6. 適宜タイトルなどの指定を確認し、「完了」を選ぶ。

なお、「 X 座標を並べ替える必要がある」と警告が出ますが無視します。

演習3-14

次の集計表を完成させなさい。

ABCDE
1tax rate0.05
2PriceNo.SubtotalTaxTotal
3703???
4205???
5402???
6304???
ヒント

税率(Tax rate)は一か所にだけ記入するので、参照するには絶対参照を使う

演習3-15

下の成績処理表を完成させなさい。

  1. 各素点(point)に対して順位を求めなさい。 順位は rank 関数を使用します。 但し、順位を求める領域はどの素点に対しても同じですから、その領域だけは 絶対参照にする必要があります。
  2. 平均点(Average)、標準偏差(Stdev)を求めなさい。
  3. 各点数に対して偏差値を求めなさい。 偏差値は次の式から求めます。平均点、標準偏差はどの素点に対しても一つだ け決まった値になりますから、参照は絶対参照を使います。
    偏差値= 素点-平均点 標準偏差 * 10 + 50
AB
1AverageStdev
2??
3PointRank偏差値
410??
530??
660??
750??
840??
補足

素点を xi、 平均点を x とした時、 標準偏差 σ の定義は次の式のとおりです。

V = i = 1 n xi - x 2 n = i=1 n xi 2 n - x 2 = x 2 - x 2
σ=V

演習3-16

東京電機大の工学部第一部大学入試センター試験利用試験で情報通信工学科は 次のような集計を行います。

国語
素点のまま。100点満点
数学
素点のまま。「数学I・数学A」「数学II・数学B」とも100点満点
理科
「総合理科」「物理IB」「化学IB」「生物IB」「地学IB」の中から高得点 のもの。素点100点満点を二倍する。
外国語
素点のまま。200点満点

次のような素点表があった時、各受験生に対して合計得点、順位、偏差値を求めなさい。

ABCDEFGHIJKLM
1人数平均点標準偏差
2???
3受験番号国語数学I・A数学II・B総合理科 物理IB化学IB生物IB地学IB外国語得点順位偏差値
4C100150707563456500130???
5C10026562335471076098???
6C1003608093070800065???

3-5. 宿題

Meadow をダウンロードしておいて下さい。

3-6. 参考文献

  1. 宮川 晋、増田佳泰、古場 正行.「BSD を 256 倍使うための本」ア スキー出版局(1995)
  2. lumi.「コンピュータ博物館 anecs」 http://www.ffortune.net/comp/history/
  3. 元麻布春男.「IT管理者のためのPCエンサイクロペディア -- 基礎から学ぶPC アーキテクチャ入門 --」 http://www.atmarkit.co.jp/fsys/rensai/indexpage/index.html#PCENCYCLOPEDIA
  4. 藤本裕之. 「叫ぶ! C プログラマ」ソーテック(2004)
  5. 内倉憲一「マイク ロコンピュータの歴史」PSP http://www.technetjapan.com/JP/History/
  6. 翔ソフトウェア「プログラミング言語の歴史」 http://homepage1.nifty.com/fujiwo/develop/oo/prglng.html

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