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

本日の内容


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

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

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

3-2. ハードウェア

基本構成

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

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

これらが「バス」という配線方式でつながってます。
コンピュータの基本構成図

最近のコンピュータ

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

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

演習3-1

  1. BIOS の画面(ハードウェアを管理する画面)にする方法をマニュアルとし てまとめなさい。
  2. 接続されているハードディスクの会社名を調べなさい

3-3. ソフトウェア

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

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

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

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

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

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

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

3-4. コンピュータでの情報の扱い方

OS は人間が情報を扱いやすくするために、さまざまなサポートをしてます。

OS はファイルと、ディレクトリ(フォルダ)とい う機能を提供しています。

ファイル

ビット、バイト

コンピュータのデータの基本は 0 と 1 です。 この 0 または 1 という 2 通りの情報を記憶する単位を bit(ビッ ト)と言います。 8 bit を 1 Byte(バイト)と言います。 1 Byte には 28=256 通りの情報を記憶することができます。 英字や数字などは一文字 1 Byte で記憶されます。 ひらがな、かたかな、漢字などは 2 Byte で記憶されます。 1000 Byte を 1kB と言うこともありますが、 1024=210Byte を 1KBと表すこともあります。 bit, Byte などもともと 2 進数と関係 がある単位なので、 2 の巾乗の数で区切ることが多いです。

演習3-2

次の情報を記憶するのに必要なビット数を求めよ。

  1. 勝ち負け
  2. 男か女か
  3. 0 から 9 までの数のうちの一つ
  4. A から Z までの文字のうちの一つ
  5. 0 から 9 と A から Z と a から z までの文字のうちの一つ

ヒント: log2(場合の数) の切り上げを考える

データ、レコード、ファイル

データとは数字や文字列など、情報を表現しているものをいいます。 例えば、「10」「東京電機大学」「(1,2,3)」などはデータです。

レコードとは情報の意味のある組合せです。 例えば、「コンピュータ基礎および演習 I, 月曜日3,4 限, 1C1 , 必修, 前期」 や、「飲み会、お茶の水駅前、4/28、18:00、会費 3000円」のような複数のデー タの組合せはレコードになります。

ファイルは処理の対象となるひとまとまりのレコードの集まりを言 います。 クラスの名簿、スケジュール表などはファイルの例です。

コンピュータではファイルに名前をつけ、名前で管理します。 通常のコンピュータの処理はファイルを対象にします。 CUI シェルでは通常命令は次の文法になってます。

コマンド名 対象ファイル名

文字列を改行で区切ったファイルをテキストファイルと言い ます。 改行で区切られた文字列をということがあります。行はレコード に対応します。 電子メールの内容やコンピュータのプログラムはテキストファイルでで きています。 テキストファイルはほとんどのコンピュータで取り扱えるため、情報をやりと りする際に便利です。

例3-1

MS-DOS やコマンドプロンプトのコマンドの例

type ファイル名
ファイルの内容を表示する(まともに表示できるのはテキストファイルの み)
del ファイル名
ファイルを消去する

ディレクトリ(フォルダ)

複数のファイルをまとめる仕組みをディレクトリフォルダ と言います。ディレクトリも名前をつけて管理します。 ディレクトリはディレクトリも含むことができます。

例3-2

ディレクトリ A がファイル B とファイル C を含んでいる。

例3-3

ディレクトリ A がディレクトリ B とファイル C を含んでいる。

例3-4

ディレクトリ A がディレクトリ B とファイル C を含んでいて、ディレクト リ B がファイル D を含んでいる

例3-5

ディレクトリ A がディレクトリ B とディレクトリ C を含んでいる。 ディレクトリ B はファイル D とファイル E を、ディレクトリ C はディレク トリ F とファイル G を含んでいる。

「A が B を含んでいる」という関係をA→Bで表すと上の関係はそれ ぞれ次のようになる。

例3-2

ディレクトリ A がファイル B とファイル C を含んでいる。

例3-3

ディレクトリ A がディレクトリ B とファイル C を含んでいる。

例3-4

ディレクトリ A がディレクトリ B とファイル C を含んでいて、ディレクト リ B がファイル D を含んでいる

例3-5

ディレクトリ A がディレクトリ B とディレクトリ C を含んでいる。 ディレクトリ B はファイル D とファイル E を、ディレクトリ C はディレク トリ F とファイル G を含んでいる。

数学では、このように対象物の関係を→の接続で表したものグラフといいます。 さらに、グラフの中で、 すべてが連結しているが合流がない形を木(tree)と言います。 木やグラフを表す時の特有の用語には、頂点、節(対象物)、枝(関係)などがあ ります。また、木特有の用語として、根(すべての始点)、葉(端点)があります。

さらにある頂点から別の頂点への道筋、あるいは道筋の頂点の列挙を道 (path)と言います。

この場合の道は B,A,C,G と表すことができます。

木の節から見て、自分に接続している節をと言い、自分が接続している 節をと言います。 ディレクトリでは親ディレクトリサブディレクトリとい う言い方をします。

CUI におけるディレクトリ操作

CUI シェルでは命令の次に対象ファイル名を指定します。 Windows はファイルシステムを提供していますので、次に述べるような方法に よりディレクトリを利用したファイルを指定できます。

CUI シェルでは、注目しているディレクトリ(カレントディレクトリ) があります。 カレントディレクトリに関連するコマンドには次のものがあります。

cd
カレントディレクトリを表示する(表示形式は後述)。UNIX では pwd
cd ディレクトリ名
カレントディレクトリを指定したディレクトリに変更する。

Windows では次の特別な約束があります。

.
.(ピリオド)一つでカレントディレクトリを表す。
..
..(ピリオド)二つで親ディレクトリを表す。
ルートディレクトリ
ルートディレクトリには名前がついてない。(正確には名前が空)
英字と同じ幅の¥(円記号)
path を表す時、ディレクトリ名の区切りに使う。 もともと UNIX では /(スラッシュ)を使っていた。それを真似て、 MS-DOS(MS Windows の原型)のアメリカ仕様では\(バックスラッシュ)が使われた 日本向けのコンピュータでは、文字の構成が違い、バックスラッシュの代りに 円記号が登録されているため、枝の表現に似ても似つかないがそのまま円記号 を使うようになった。 キーボードで右shift の左側に ろ というキーがある。 これはバックスラッシュを入力するキーだが、日本語の Windows では¥記号 として扱われる。
バックスラッシュの由来

Windows でファイルを指定する場合、「カレントディレクトリからのパス (相対パス)」で表現します。 但し、パスの先頭が区切り記号の時は、「ルートディレクトリからのパス (絶対パス)」を表します。

例3-2

例の表示

例3-3

MS-DOS やコマンドプロンプトのコマンドの例

mkdir ディレクトリ名
ディレクトリを作る
rmdir ディレクトリ名
ディレクトリを消去する
dir ディレクトリ名
ディレクトリの内容を表示する(ディレクトリ名を省略した時はカレント ディレクトリの内容を表示する)
copy ファイル名1 ファイル名2
ファイル1 をファイル 2 の名前でコピーする。

演習3-3

次の問いに答えなさい。

  1. コマンドプロンプトあるいは MS-DOS プロンプトを起動した時、カレント ディレクトリはなにになりますか?
  2. カレントディレクトリをディレクトリ c:\work に移しなさい。
  3. 
    echo abc > def
    
    を実行しなさい。 そして dirコマンドやtypeを利用し、カレントディ レクトリになにが起きたか調べなさい。
  4. 次の図の構造になるようにディレクトリを作りなさい。
  5. ファイル def を、ディレクトリ A とディレクトリ B にそれぞれコピー しなさい。
  6. 「スタートボタン」を右クリックして、エクスプローラを動かし、 work ディレクトリに何が入っているか調べて、絵を写しなさい。
  7. 作成した A, B, test ディレクトリを消しなさい。

余談: 包含関係とパス表示

ディレクトリやパスの表現を説明しましたが、これは一般社会で良く使われて います。 例えば、市区町村の分割と住所表示がその例です。

市区町村の分割
区分け

住所の書き方
figure of tree

3-5. 表計算(2)

演習3-4

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

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

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

  1. 
Lbrace{ matrix 2 1 {2 x + 3 y = 8 } {3 x - y = 3 } }
  2. 
Lbrace{ matrix 2 1 {4 x - 2 y = 8 } { x + y = -1 } }
  3. 
Lbrace{ matrix 2 1 { x - 3 y = -2 } {3 x + 2 y = 5 } }
解答
  1. 連立方程式の解の公式を求めます。
    
Lbrace{ matrix 2 1 {a x + b y = e } {c x + d y = f } }
    
Lbrace{ matrix 2 1 {a d x + b d y = d e } {b c x + b d y = b f } }
    
( a d - b c ) x = d e - b f
    
x = frac{d e - b f}{ a d - b c }
    同様に
    
y = frac{- c e + a f}{ a d - b c }
  2. D2 セルに =(b4*c2-b2*c4)/(a2*b4-b2*a4) を、 D4 セルに = (-a4*c2+a2*c4)/(a2*b4-b2*a4) を入れる。

演習3-5

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

ABCDEF
113825=SUM(A1:E1)

演習3-6

上記の演習の表に対して、平均値を求めなさい。

ABCDEF
113825=average(A1:E1)

ハンドルと参照

参照のコピー

次の表を考えます。

ABCD
11020=A1?
23040??

ここで、 C1 のセルを D2 にコピーすると D2 にはどんな内容が入るのでしょ うか? コピーを行うには(1)カーソルの枠の部分にポインタを合わせ左ボタンを押し 続け(2)目的のセル上までカーソルを移動させ(3) Control(Ctrl) キーを押し ながら左ボタンを離します。 すると、この時、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の表において、値引き率を変えて、各々の販売価格の 変化を見たいとします。この場合、各項目が同じ値引き率の値を参照する必要が あります。

参照の前に「$」を入れるとコピーしても移動距離に影響を受けずそのままの 参照を保ちます。 これは列と行と別々に指定できます。 「$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-4

ABCDE
133.13.23.33.4
25/1/20026/1/20027/1/20028/1/20029/1/2002

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

演習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 ま での表を作る。

グラフ

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

演習3-13

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

ヒント
  1. 領域指定。
  2. Insert→Chart。
  3. 「最初の行/列を項目名に引用」のチェックを両方とも外し、「次へ」。
  4. 「散布図」を選び、「次へ」。
  5. 「データポイントなし平滑線つなぎ」を選び、「次へ」。
  6. 適宜タイトルなどの指定を確認し、「完了」を選ぶ。
  7. 作成したグラフ中の「メインタイトル」や「凡例」のフォントの指定がお かしいので、それぞれ「右クリック、オブジェクトの属性、文字」を選択し、 フォントを「MS P ゴシック」に変更する。

演習3-14

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

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

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

演習3-15

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

  1. 各点数に対して順位を求めなさい。 順位は rank 関数を使用しますが、順位を求める領域は始めに確定して固定さ れてますから、順位を求める領域だけは絶対参照する必要があります。
  2. 平均点(Average)、標準偏差(Stdev)を求めなさい。
  3. 各点数に対して偏差値を求めなさい。 偏差値は次の式から求めます。平均点、標準偏差への参照は絶対参照を使いま す。
             (素点-平均点)
    偏差値 = ------------- × 10 + 50
               標準偏差
    
AB
1AverageStdev
2??
3PointRank偏差値
410??
530??
660??
750??
840??

演習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-6. 宿題

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


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