第 7 回 清書(3),C

本日の内容


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

7-1. コマンドプロンプトの使い方

特殊キー

Ctrl+C を押すと、実行しているプログラムが停止します。 プログラムミスなどによりプログラムが止まらなくなった場合は、まず Ctrl-C を押してみてください。

また、 Ctrl-S を押すと画面の表示が止まってしまうことがあります。 その時はもう一度 Ctrl-S を押して下さい。

カットバッファ関連

他のアプリケーションに表示されている文字列の入力

  1. 他のアプリケーションで「編集→コピー」などの操作で文字列をカットバッ ファにコピーする
  2. コマンドプロンプトの上のバーを右クリックして、「編集→貼り付け」

コマンドプロンプト上の文字のコピー

  1. コマンドプロンプトの上のバーを右クリックして、「編集→範囲指定」
  2. 指定したい範囲をポインターでドラッグ
  3. コマンドプロンプトの上のバーを右クリックして、「編集→コピー」

再入力

直前に入力したコマンドは F3 キーで再入力できます。 ひと文字ずつ入力するには F1 キーを押します(F2, F4, INS, DEL キーも再入 力のための機能を持ちますが、ここでは省略します)。 また、Windows 2000 や Windows XP では上下矢印による、過去の入力の順次 呼びだし、左右矢印による入力行の編集などもできます。

さまざまなコマンド

コマンドプロンプト(MS-DOSプロンプト)では、コマンド文字列の入力により、 さまざまな指示が出せます。

cd
カレントディレクトリの表示
cd ディレクトリパス
カレントディレクトリの変更
dir
カレントディレクトリに含まれているファイルやディレクトリの表示
dir /p
カレントディレクトリに含まれているファイルやディレクトリの表示 (量が多い場合、一画面ごとに表示が止まる)
type ファイル名
テキストファイルの表示
more < ファイル名
テキストファイルの表示 (量が多い場合、一画面ごとに表示が止まる)
del ファイル名
ファイルの消去(復元はできません)
ren 旧ファイル名 新ファイル名
ファイル名の変更
move ファイル名 転送先
ファイルの移動
copy ファイル名 転送先
ファイルのコピー
mkdir ディレクトリ名
ディレクトリの作成
rmdir ディレクトリ名
ディレクトリの消去(ディレクトリ内が空でないと実行できません)
ver
OS のバージョン番号の表示
echo 文字列
文字列の表示

7-2. ドローソフト

ドローソフトとは線、円などの図形の組合せで画像ファイルを作るソフトウェ アです。 Gimp などのペイントソフトと異なり、 ドローソフトでは作成した画像ファイルは拡大縮小を行っても線の滑らかさが 失われません。 したがって、高解像度が必要な印刷に向いています。 ドローソフトで図形の組合せにより画像ファイルを作ります。 そのため、一旦作成した画像ファイルに対しても、図形を図形として修正す ることが出来ます。例えば描画した円だけを後で拡大したり変形したりすることが できます。 又、特に文字の修正は便利です。 ペイントソフトでは作成した画像中の文字を修正しようとしても文字を表す点 の集まりになっているため、別の文字に変更するには手間がかかりました。こ れが、ドローソフトでは文字を文字として取り扱えるので、単純に文字を消し て別の文字に取り替えるだけで画像を作ることが出来ます。

ここでは、 Openoffice.org の「図形描画」を取り上げます。 これはベクタファイルである EPS ファイルを作ることができますので、 Adobe の Illustrator 形式を指定する印刷所へ入稿することができます。

なお、 CAD(Computer Aided Disign) ソフトとドローソフトは機能が似ています。 しかし、 CAD ソフトは建築や回路設計などの機能に特化しています。 そのため水平線、垂線、平行線など図形や線の揃え方などに高度な機能があっ たり、表計算ソフトと連動して使用しているオブジェクトの集計などを行った りできます。 本講義では次回、電気、電子回路網を作成し、回路のシミュレートまでできる CADソフト「Circuit Maker」を紹介します。

ドローソフトの利用法

基本操作

画面の一部(通常左側)に、ツールと呼ぶさまざまな機能を実現す るアイコンが集まっています。 これらを指定しながら図形を書きます。 通常は「選択モード」になっていて、図形の選択、移動などができるようになっ ています。 他に、四角形、円または楕円、文字、折れ線(Openoffice.org では曲線)など があります。 Openoffice.org ではこれらのアイコンに右を示す三角形が書かれています。 これはそのアイコンを左ボタンで長押ししていると選択ではなくメニュー表示 に切り替わり、円と楕円を切替えたり、折れ線と多角形を切替えたりすること ができます。

図形

四角形、円などはそれを描くツールを指定します。 画面をドラッグすると、その始点と終点に従って長方形や円を描きます。

曲線もドラッグすることでその軌跡が書かれます。 但し、軌跡を書いたあと、「編集」→「制御点」を選ぶと曲線上に選択可能な 点が現れます。 この点を選択すると点を通る線分(ハンドル)が出現します。 点自体を移動したり、削除、追加できる他、このハンドルをドラッグすること で点周辺の曲げ具合を整えることもできるます。 このような曲線をベジエ曲線と呼びます。 また、この点を折れ線の頂点とすることもできます。

なお図形を描いたあと、その図形を選択し、線種(点線)や線の太さ、色、塗り つぶしパターンなどを変更できます (あらかじめ指定しておくこともできます)。

選択

選択ツールを指定すると、図形を選択できます。 通常、ドローソフトでは選択ツールは矢印のアイコンです。 Shift キーを押しながら選択すると複数の図形を選択できます。 他に Alt キーや Ctrl キーを押すと、選択を取り消したりできます。 これらのキーの割り当てはドローソフト毎に変わることがありますので、実際 に絵を書き始める前に確認しておいた方が良いです。 なお、図形のない部分をクリック(捨てクリック)すると、全ての 選択を解除できます。 また、ほとんどのソフトウェアで Ctrl-A を押すと全てを選択で きます。

図形を選択すると、上下左右斜めの合計 8 か所に黒い点が表示されます。 点を表示させた後、黒い点以外の図形の部分をドラッグ&ドロップすると 移動します。 一方、黒い点をドラッグ&ドロップすると図形を拡大、縮小できます。 通常は縦横比を保存しません。斜めの点を使用すると縦横両方の幅、上下の点 では縦幅のみ、左右の点では横幅のみ調整できます。 Ctrl など、なにか特別なキーを押しながらす ると縦横比を保存できるものもあります。

選択した図形に対してメニューを選ぶと、線種や塗りつぶしパターンなども後 から変更できます。

文字

文字入力ツールを選択すると文字を入力できます。但し、ワープロではないの で、禁則処理(句読点や促音が行頭に来ないようにする)などはして くれないの普通です。 指定できるのはフォントの種類、字形、サイズ、左寄せや中央揃えなどです。 文字毎に指定できます。

グループ

選択したひとまとまりの図形を一つの図形として扱い、移動、コピー、拡大縮 小できます。 なお、グループで拡大縮小を行うと、含まれる文字のサイズや縦横比も変化し てしまうので注意が必要です。 文字をグループの拡大で拡大すると表示の品質が悪くなることがあります。 文字の大きさを変える時はこの機能を使わず、文字ツールを選んで文字を選択 し、メニューからフォントのサイズを指定して下さい。

配置

「変更」→「配置」を選ぶと、複数選択した図形の高さを揃えることができま す。 また 3 つ以上のオブジェクトの選択に対して「変更」→「分布」を選ぶと、 均等に並べることもできます。 なお、ソフトウェアによっては「整列」「均等配置」などと呼ぶものもありま す。 Openoffice.org では「変更」→「整列」は整列は図形の重なり具合を調整す るために使います。

なお、上端や下端を揃えたい場合、この配置の他にグリッドを使用したり、ス ナップラインを使ったりすることができます。

グリッド

「表示」→「グリッド線」を選ぶと画面に方眼を書くことができます。 そして、「位置合わせ」を指定すると、オブジェクトの座標は指定した点のそ ばの方眼上の格子点が指定されるようになります。

スナップライン

Openoffice.org では図形を揃えたい基準とする点や揃えたい基準とする線を 図形とは別に書いて指定することができます。 「挿入」→「スナップポイントとスナップラインの挿入」で座標指定すること もできますが、画面の上と左にある物差しを画面にドラッグ & ドロップ するだけでスナップラインを挿入することもできます。 スナップラインは印刷されません。

レイヤ

図形を描く領域として、透明なフィルムに対応する概念であるレイヤが あります。 このレイヤは何枚も用意できます。 図形を書き込む時、どのレイヤに書くかを指定できる他、どのレイヤを表示す るかを指定できます。 また、レイヤを重ねる順番も指定できます。 Openoffice.org では画面の左下に小さなアイコンとタブがあって、これによ りレイヤを指定することができます。

EPS ファイルの出力

作成した図形の情報はその使用しているソフトウェア固有の形式で保存します。 その一方、外部や他のソフトウェアとのやりとりのための形式で出力すること もできます。 ここでは印刷所や LaTeX で使用できる EPS 形式の出力法を説明します。

  1. 出力したい図形を選択します。
  2. 「ファイル」→「エクスポート」を選びます。
  3. ファイルの種類で EPS Encapsulated Postscript(*.eps)を選びます。
  4. ファイル名を指定して保存します。

7-3. 清書(3)TeX, pLaTeX(2)

センタリング

左寄せ、中央揃え、右寄せは次のようにします。

\begin{flushleft}
abc\\
def
\end{flushleft}
\begin{center}
abc\\
def
\end{center}
\begin{flushright}
abc\\
def
\end{flushright}

参照

LaTeX は section や enumerate などで番号を自動生成しますが、この値を参照できます。 section や item の直後に \label{ラベル名} を置くと、\ref{ラベル名} で ラベルの値を参照できます。

式に番号を付けるには \begin{equation} \end{equation} を使います。中に 入れた式は display モードで表示されます。 \end{equation} の手前に \label の指定をすると式番号を参照できます。 さらに便利なものに \begin{eqnarray} \end{eqnarray} があります。 これは式を 3 列の表とみなし、中央の部分を揃えるようにします。

\begin{eqnarray}
左辺 & 等号などの記号 & 右辺 \\
左辺 & 等号などの記号 & 右辺 \\
\end{eqnarray}

このようにすると等号を揃えた式変形などを説明し易くなります。 但し、これではすべての式に番号がついてしまいます。 特定の行だけ番号を付けないようにするには改行の手前に \nonumber を書き ます。 全ての行に行番号が不要の時は \begin{eqnarray*} \end{eqnarray*} を使用 します。

図の挿入

図を挿入する時は \begin{figure}[hbtp] \caption{}\end{figure}を使用し ます。 caption (脚注)を付けると図番号が生成されますので、caption の直後に label を指定すると参照することができます。 [hbup] は here, bottom, top, page の意味で、それぞれ、「切れ目の良い一 番近いところ」「ページの下の方」「ページの上の方」「最終ページにまとめ て」になります。 これらのうちどれを指定しても構いません。 但し、ページの割り付け上、必ずしも指定通りにならない場合があります。 そのため、複数指定することで、左に書いた方から順に優先して適用させるこ とができます。 なお、指定通りに割り付けられない場合は p を指定したものと同じになって します。 また、一度そのように割り付けられてしまうと、その後ろの図も全て p を指 定されたことと同じになってしまいます。 なお、 figure の中には図の他、文章やプログラムリストなども入れられます。

LaTeX に EPS ファイルを取り込むには、 \documentclass の直後に \usepackage{epsfig} を指定し、 本文中に \epsfig{file=EPSファイル名} を書きます。 なお、図の大きさを指定したい時は \epsfig{file=EPSファイル名,height=単 位つき高さ} や \epsfig{file=EPSファイル名,width=単位つき幅} とします。

例7-1

以下にコンピュータの図 (図 \ref{comp}) を示す。
\begin{figure}[hbt]
\begin{center}
\epsfig{file=computer.eps,width=6cm}
\end{center}
\caption{コンピュータ}
\label{comp}
\end{figure}

プログラムの挿入

プログラムを本文に入れるには listings パッケージを使います。 listings パッケージを使うには、\documentclass の直後に \usepackage{listings} を書きます。 そして、本文中には次のように書きます。

\lstset{language=C,numbers=left,numberstyle=\tiny}
\begin{lstlisting}
#include <stdio.h>
main(){
  printf("Hello World!");
}
\end{lstlisting}

文字

通常使う文字はローマン体と明朝体ですが、強調 {\em ...} ではボールド体 とゴシック体になります。

また \begin{large} \end{large} や \begin{Large} \end{Large} で字が大き くなります。

目次、参考文献

目次を作るには \tableofcontents コマンドを使います。 目次を作るとページ位置が大きく変わるため、5 回程度 platex コマンドを使用し ないと、ページの参照などがうまくいかない場合があります。

参考文献リストを作るには、文献データベースを作り bibtex を使用する方法 と、本文に書き込む方法があります。 ここでは本文に書き込む方法を説明します。 基本的には description 環境と同じように書きます。

\begin{thebibliography}{9}
\bibitem{参照名1}参考文献1の出展
\bibitem{参照名2}参考文献2の出展
\end{thebibliography}

はじめの 9 は文献リストが一桁の時指定します。 参照名は画面には表示されませんが、\cite{参照名} を本文中に書くと自動的に生成された参考文献番号を表示します。

例7-2

C 言語の基本構文
\begin{thebibliography}{9}
\bibitem{KandR}
B.W.カーニハン、D.M.リッチー「プログラミング言語 C」共立出版(1981)
\bibitem{masuda}増田忠士「2時間でマスター快適パソコン・キーボード」日本経済新聞社(1999)
\end{thebibliography}

7-4. C 言語の基礎

Cの構文

前回次のようなプログラムを扱いました。

/* This program prints "Hello World!". */
#include <stdio.h>
main(){
  printf("Hello World!\n");
}

これから、このようなプログラムの実際の意味を少しずつ学習していきます。 C 言語には次のような基本的な構文があります。

  1. /* と */ で囲まれた部分にはメモを書くことができる。
  2. # で始まる行がある。
  3. 中括弧 「{ }」 の間に文を書く。
  4. プログラムは文の組合せにより書かれる。各文の最後にセミコロン「;」を必ず置く。
  5. 計算式の括弧は丸括弧「( )」のみを使用する。
  6. main() や printf(...) のように丸括弧は別の用途(関数の表現)がある。

変数

コンピュータはデータをメモリーに記憶することができます。 表計算ではセルの中に様々なデータを入れることが出来ました。基本的にはセ ルの名前は A1, B2 など縦横の位置で指定していました。 一方、プログラミング言語の多くでは、これを行うのに変数と呼 ばれる概念を使います。 C 言語も変数を使えますが、 C 言語では一つの変数に様々なデータを入れることは できません。 それはという考え方があるからです。 プログラムの最初に変数の型を決めたら、その変数には同じ型のデータの出し 入れしか出来ず、他の型のデータは扱えません。 型には次のものがあります。

int
整数型
float
単精度浮動小数点数(実数型)
double
倍精度浮動小数点数(高精度実数型)
char
文字型

変数は a、 hensu など名前をつけて指定します。 C 言語ではプログラムの先頭で、使用する変数の型と名前を登録する必要があ ります(プログラムの途中ではできません)。 これを宣言文と言います。 宣言文はつぎのような構文になります。

型名 変数名1[, 変数名2[, 変数名3 ...]]

例えば単精度浮動小数点型の変数として、 a, b, x の三つの変数名を使う場 合は次のように宣言します。

float a,b,x;

変数の名前は先頭が英字、二文字目以降は英字または数字でなければなりませ ん。a, bb, c123 は変数名として使えます が、1a, a-b-c などは変数名として使用できません。 また、 C 言語では、一つの名前ではひとつのものしか指せません。 a という名前の変数を整数型で宣言したら、再度文字型で使用する ことはできません(cf. オブジェクト指向言語の関数名などは複数の型を取る ことが可能。BASIC 言語は同じ名前でも各型ごとに別々の値を持つことが可能)。 但し、変数名の大文字と小文字は区別しますので、 a と A は別の変数名にな ります。

データを変数に記憶させるには代入文を使います。

変数名 = 式

  a    =  2;
  b    = a+3;

変数名は必ず左辺に来ます。また、式が計算されてから変数に代入されます。 従って次のような代入文を書くことも可能です。

  i = i+1;
  j = 2*j;

この場合それぞれ、 i の内容は 1 増えて(i+1 の結果が i に代入される)、j の内容は 2 倍されます( 2*j の結果が j に代入される)。

整数型

整数を扱う型は整数型(int)と言います。 プログラム中に整数のデータを書く時は、通常の数字の記述法と同じになりま す(位取りのカンマは使用できません)。 なお、二進数、八進数、十六進数などの記入法もありますが、省略します。

int i;
i=2;

文字型

文字型(char)の変数は一文字のみを記憶します。 後で出てくる配列を利用すると、文字列を表すことができます。 なお、他のプログラミング言語では大抵文字列型を取り扱うことができます。

プログラム中に文字データを書く場合は'a'など、シングルクォー テーションマーク「'」を使用します。 改行は '\n' で表します。 また、シングルクォーテーションマーク「'」、ダブルクォーテーションマー ク「"」、バックスラッシュ(円記号)「\」、疑問符「?」はそれぞれ、'\'', '\"', '\\', '\?' で表します。

char a,b;
a='a';
b='\n';

浮動小数点型

浮動小数点型(float, double)は、数値計算など実数を使用するよう な計算に用います。 但し、真の意味での実数は取り扱えず、有限の桁の精度しかありません。 float に対して double は二倍の計算精度があります。

浮動小数点数のデータは、通常小数点を含む数の表記で表します。 また、 0.3×10-3のようなデータは 0.3e-3 と表します。

float x;
double y;
x=3.14;
y=0.1e-5;

表計算とC 言語の比較

表計算C 言語
宣言不要必要
入れられる値の型自由宣言した型一種類
計算法一つの式、自動再計算手順を自由に指示
入力セルに値を入れる、または式値の代入
出力常に出力printf 関数を使用する

表計算でもセルに名前をつけて変数名のように扱う事もできます。

外部関数

計算式を書く時、三角関数や平方根など、既に用意されている関数を使用する ことができます。 C 言語で使用できる主な数学的関数にはつぎのものがあります。

sqrt(x)
xの正の平方根を求めます。xの値が負の場合、エ ラーを示す特別な値が返ります。

例:

a=sqrt(b*2);

sin(x)
sin x の値を求めます。xの単位はラジアンです。
cos(x)
cos x の値を求めます。xの単位はラジアンです。
tan(x)
tan x の値を求めます。xの単位はラジアンです。
exp(x)
exの値を求めます。
log(x)
log xの値を求めます。xの値が0や負の場合エラー を示す特別な値が返ります。
pow(x,y)
xy の値を求めます。xy の値によりエラーが発生する場合、エラーを示す特別な値が 返ります。

なお、これらの関数を使用する場合、プログラムの先頭に次の行を書く必要が あります。

#include <math.h>

またこれらの関数の返す値の型は double です。但し、変数に float 型を使 用しても精度が低くなる他は問題ありません。

printf

printfは画面(標準出力)に文字を書く命令です。 次のような書式になっています。

printf(フォーマットを示す文字列 [, 変数1 [, 変数2 [, 変数3 ...]]])

「フォーマットを示す文字列」に通常の文字列を入れるとそのままの文字列が 出力されます。 但し、 % 記号だけは特別な働きをします。 % と英字の組合せを入れると、最初の %+英 字が変数1 の値に、二番目の %+英字が変数2 の値にと、順に変数の値と置 き換わります。 %と英字の組合せには次のものがあります。

%d
整数
%f
実数
%c
文字

その他、 %s,%o, %x, %u, %e, %g, %p などありますが、ここでは特に取り上げま せん。 % を表示したい時は %% と記入します。

「フォーマットを示す文字列」はダブルクォーテーションマーク「" "」で括 ります。文字列そのものは次回以降の講義で取りあげます。

なお、「%4.2f」など % と英字の間に数を入れると、「最小幅 4 桁、小数点 以下 2 桁」など表示する書式を表すことができます。詳しくは専門書を参照し てください。

例7-3

次のプログラムを実行すると画面に「変数 x の値は 3 です。」と表示され、 改行されます。

#include <stdio.h>
main(){
  int x;
  x=3;
  printf("変数 x の値は %d です。\n",x);
}

7-5. 付録

参考

ベジエ曲線は二点間を通る曲線の引き方で、制御点を指定するだ けで複雑な曲線を書くことができます。 n次のベジエ曲線は 始点 (x0,y0)、 制御点1 (x1,y1)、 ...、 制御点n-1 (xn-1,yn-1)、 終点 (xn,yn) とした時、曲線の軌跡は次の式で表されます。

x= i=0n xi Bn,i t y= i=0n yi Bn,i t
但し、
Bn,i t = n C i ti 1-t n-i

例7-4

点 (0,0), (1,2), (2,0) から導かれるベジエ曲線を表計算ソフトのグラフで 書くには次のようにします。

ABCDEFGHIJ
1'Combination
21
3=A2+B2
4
5'n=COUNT(B6:D6)-1
6'i00
7'x座標012'求める x座標'y座標020'求めるy座標
80=B$7*B$4*POWER($A8;B$6)
*POWER(1-$A8;$B$5-B$6)
=SUM(B8:D8) =G$7*B$4*POWER($A8;G$6)
*POWER(1-$A8;$B$5-G$6)
=SUM(G8:I8)
90.05
10↓↓
:::::: ::::
28↓↓

矢印はその方向へハンドルを動かしてコピーすることを示しています。 二つの矢印は二つの領域を指定してからハンドルを動かしてコピーすることを 示しています。 二つの数値を指定してハンドルを使ってコピーすると等差数列が生成されます。

  1. まず組合せの数を求めるため、B2 から D4 の領域にパスカルの三角形を作成します。
  2. 次に座標を格納する領域を用意します。 X 座標と Y 座標は別々に B8 からと G8 から入れます。 また X0 の上(B7)には 0, X1 の上(C7)には 1, ... y2 の 上(I7)には 2 を記入します。 B5 に =COUNT(B6:D6)-1 と X の座標の領域を指定して項数を求めます。
  3. A8 から下へ、 t の値として 0 から 1 の値を 0.05 刻に埋めます。
  4. B8 では X_0 B(2,0)(0) を計算します。 そのため、=B$7*B$4*POWER($A9;B$6)*POWER(1-$A9;$B$5-B$6) を入れます。 これを B8 から D28 の領域にコピーします。
  5. E8 に =SUM(B8:D8) を入れ、E28 までコピーします。この領域が求めるベジエ 曲線の X 座標になります。
  6. 一方、 G8 では Y_0 B(2,0)(0) を計算します。 そのため、=G$7*B$4*POWER($A9;G$6)*POWER(1-$A9;$B$5-G$6) を入れ、同様に コピーし、和を求めて Y 座標となる領域を計算します。
  7. 作図例 計算により求めた X Y 座標に対して、散布図のデータポイント付き折れ線で グラフを書くとベジエ曲線が書けます。 「求める x 座標」の部分をドラッグにより選択した後、 ctrl キーを押しながら「求める y 座標」の部分をドラッグにより選択します。 そして、「挿入」→「グラフ」を選びます。

なお、x,y 座標を変えると瞬時に再計算され、グラフが書き替わります。

練習問題

演習7-1

次の指示に従ってコマンドを入れなさい。

  1. カレントディレクトリを c:\work にする。
  2. ディレクトリの内容を表示する。
  3. Meadow で、 c:\work の中に test.txt というファイル名のファイルを作 る。ファイルの中身は「abc」など適当に決める。
  4. ディレクトリの内容を表示する。
  5. test.txt の内容を画面に表示する。
  6. c:\work\a というディレクトリを作る。
  7. test.txt を c:\work\a に移動して、 c:\work, c:\work\a のそれぞ れの内容を確認して、移動が正しく行われたかどうかを確認する。
  8. カレントディレクトリを c:\work\a に変更する。
  9. test.txt を消す。
  10. ディレクトリ a を消す。
ヒント
  1. cd c:\work
  2. dir
  3. Meadow で「Files → Open File...」を選択し、 test.txt を入力する (正しくインストールされている場合、デフォルトで c:\work の下にファイル が作られる)。 そして、「abc」などを打ち、「Files → Save Buffer」で保存する。
  4. 再びdir。 test.txt というファイルができている。
  5. type test.txt。先ほど Meadow で入力された文字が表示され れば良い。
  6. mkdir a
  7. move test.txt a をした後、dir で test.txt が存在せず、 dir aで test.txt が存在することを確認する。
  8. cd a
  9. del test.txt
  10. cd .. で親ディレクトリ(c:\work)に戻った後、rmdir a でディレクトリを消す。

演習7-2

コンピュータの絵を作図し、 EPS ファイルとして、 c:\work\computer.eps とい うファイル名で出力しなさい。

演習7-3

  1. 次の内容を Meadow にコピーし、c:\work\test1.tex というファイル 名で保存しなさい。
    \documentclass[12pt]{jarticle}
    \usepackage{epsfig}
    \usepackage{listings}
    \usepackage{vmargin}
    \setpapersize{A4}
    \setmargnohfrb{20mm}{20mm}{20mm}{20mm}
    \begin{document}
    \begin{center}
    \begin{LARGE}
    \LaTeX\ のさらなる高度な使い方
    \end{LARGE}
    \end{center}
    \begin{flushright}
    05kc999\\
    名無しの権兵衛
    \end{flushright}
    \section{数式の参照}
    数式に番号をつけて参照するには次のようにします。
    \begin{equation}
    D = b^{2} - 4 a c \label{eq1}
    \end{equation}
    式 (\ref{eq1}) は二次方程式の{\em 判別式}です。
    
    また、等号を揃えた式を書くには次のようにします。
    \begin{eqnarray*}
    a x^{2} + b x + c &=& 0\\
    x^{2} + \frac{b}{a} x + \frac{c}{a} &=& 0\\
    \left(x + \frac{b}{2 a}\right)^{2} - \frac{b^{2}}{4 a^{2}} + \frac{c}{a} &=& 0\\
    \left(x + \frac{b}{2 a}\right)^{2} &=&  \frac{b^{2}- 4 a c}{4 a^{2}}\\
    x + \frac{b}{2 a} &=& \pm  \frac{\sqrt{b^{2}- 4 a c}}{2 a}\\
    x &=& \frac{- b \pm \sqrt{b^{2}- 4 a c}}{2 a}
    \end{eqnarray*}
    \section{図形の挿入}
    \label{nisho}
    \ref{nisho} 章では、図形の挿入の例を示します。
    \begin{figure}[hbt]
    \begin{center}
    \epsfig{file=computer.eps,width=6cm}
    \end{center}
    \caption{コンピュータ}
    \label{comp}
    \end{figure}
    
    \section{プログラムの挿入}
    \label{sansho}
    \ref{sansho} 章ではプログラムの表示をします。
    参考文献 \cite{KandR} には C 言語の文法が書かれています。
    \lstset{language=C,numbers=left,numberstyle=\tiny}
    \begin{lstlisting}
    #include <stdio.h>
    main(){
      printf("Hello World!");
    }
    \end{lstlisting}
    \nocite{masuda}
    \begin{thebibliography}{9}
    \bibitem{KandR}
    B.W.カーニハン、D.M.リッチー「プログラミング言語 C」共立出版(1981)
    \bibitem{masuda}増田忠士「2時間でマスター快適パソコン・キーボード」日本経済新聞社(1999)
    \end{thebibliography}
    
    \end{document}
    
  2. platex を使用して、上の内容を画面に表示しなさい。
  3. 上記の内容を変更して、変更結果を表示しなさい。

演習7-4

次の式を正しく計算するためには どのような宣言文が必要か答えなさい。

  1. initial = 'D';
  2. menseki = hankei * hankei * 3.141592;
  3. page = 3;

演習7-5

次のプログラムの最後に printf 文を書き、すべての変数の内容を表示させな さい。

#include <stdio.h>
main(){
  int x;
  double y;
  char z;
  x=1;
  y=3.141592;
  z='a';
  /* ここに printf 文を書き、変数の内容を表示させる */
}

演習7-6

一次方程式 ax+b=0 を解くプログラムを作成しましょ う。 あらかじめ、 ab の値は分かっているとして、プロ グラムの中に埋め込みます。 そして、解は -b/a で求めます。 このようなプログラムは次のようになります。

#include <stdio.h>
main(){
  float a,b,x;
  a=10.0;
  b=20.0;
  x=-b/a;
  printf("%f x + %f = 0 の解は %f\n",a,b,x);
}

このプログラムを使って次の方程式の解を求めなさい。

  1. 3x-6=0
  2. 2x+10=0
  3. 4x+2=0

演習7-7

次の連立方程式を解くプログラムを作りなさい(ad-bc≠0 とする)。

{ ax + by = e cx + dy = f

できたプログラムで次の方程式を解きなさい。

  1. { x - y = 0 x + y = 2
  2. { 2x - 5y = -5 4x + 10y = 14
  3. { 2x - y = -1 4x + y = 10

演習7-8

直角三角形の直角をはさむ辺の長さ a, b が与えられ た時、斜辺の長さ c を求めるプログラムを書きなさい。

そして次の辺の組に対して、斜辺の長さを求めなさい。

  1. 34
  2. 512
  3. 11

演習7-9

三辺の長さが与えられた時、三角形の面積を求めるプログラムを作りなさい。 そして次の三辺を持つ三角形の面積を求めなさい。

  1. 345
  2. 112
  3. 123
  4. 222
ヒント1

三角形に垂線を引き、三平方の定理から連立方程式を立て、高さを求める。

三角形に垂線を引く
ヒント2

余弦定理を使って公式を導く(ヘロンの公式)


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