HelloWorldプログラムの概要 Cプログラムの構造Ⅰ, main関数とprintf

プログラミング入門及び演習 第2回目
・Emacs
2.1 Emacsについて
2.2 基本操作
2.3 日本語の入力
・Emacsの練習
2.4 チュートリアルによる練習
2.5 文書の作成
・基本的なUNIX操作
2.6 UNIXコマンド(ls, cat,pwd)
2.7 manコマンド
・シェル操作
2.8 シェル
2.9 tcsh(履歴機能,ファイル名補完機能)
・Hello World
2.10 main, printf, scanf
Emacs
2.1 Emacs(Mule)について
ここでは,UNIX系OSで利用されているテキストエディタEmacsについて学習する.
Emacsは多くのコマンドを用いて文章を作成・編集するためコマンドをまず覚えなければな
らない.そのためには,「習うより慣れろ」で時間をかけ,多くの文書を入力し,コマンドを体
験的に習得するアとが必要で る.また,Emacs(Mule)の参考書が ったほうが良い.
【参考書例】
(1)Mule/viスーパーリファレンス,伊藤真人,ソフトバンクパブリッシング,¥2,200
(2)初めて使うMule/Emacs,矢吹道郎,テクノプレス,¥2,400
Emacsの起動方法は,以下のように入力する.
ユーザ名@端末名:Emacs ↓
右図の画面が立ち上がる.
以下,Emacs(Mule)の操作において,
[C-x]はCtrlキーを押しながらxキーを押す
[M-x]はEscキーを押しながらxキーを押す
ことを示す.
Emacsの終了は,[C-x, C-c].
【練習】Emacsを終了させ,もう一度起動させる.
2.2 基本操作
以下に基本コマンドを示す.
(1)Emacsの終了
[C-x C-c] : Emacsの終了
(2)カーソル移動のコマンド
[C-f] : 1文字右へ
[C-b] : 1文字左へ
[C-p] : 一行上へ
[C-n] : 一行下へ
[C-a] : 行頭へ移動
[C-e] : 行末への移動
[M-f] : 単語1つ分右へ
[M-b] : 単語1つ分左へ
[C-v] : 画面1ページ進む
[M-v] :画面1ページ戻る
[M->] : ファイルの最後へ
[M-<] : ファイルの最初へ
(3)コマンド入力を失敗したときなど、いざというときには
[C-g] : ミニバッファへのコマンド入力待ちの中止
(4)コマンドの取り消し
[C-x u] : やり直し(undo)
(5)文字の削除
[C-d] : カーソルの る文字を1つ削除
[C-k] : カーソル位置から行末までを削除
(6)文字の貼り付け
[C-y] : [C-k] で削除した文字を、カーソル位置にペーストする
(7)ファイル関係のコマンド
[C-x C-s] : ファイルのセーブ
[C-x C-f] : ファイルの読み込み
[C-x C-w] : 別名で保存
(8)移動,コピー
[C-space] : リージュン先頭にマーク
[C-w]:リージュン削除
[M+w]:リージョン内容をコピー
[C-y]:リージョンをペースト
(9)日本語入力:モード切替
[C-¥] : ローマ字かなモードのON/OFF
2.3 日本語の入力
Emacsでの日本語入力は,[C-¥]によってローマ字かなモードを切り替えることにより
行う.Emacs(Mule)が立ち上がっている状態で[C-¥]を入力する.
Emacsの練習
2.4 チュートリアルによる練習
以上で基本的なEmacsの使い方を学習したが,まだまだ練習不足で る.そこで,
Emacsのチュートリアルに従い練習を行う.まず,チュートリアルを開く.Emacsを立ち上
げ,以下のように入力する.以下はエコーエリアに入力する文字である(下線).
[C-h]
C-h (Type ? for further options)-t (小文字のt)
Language:Japanese ↓ (Jは大文字)
下図の画面が表示される.このファイルを保存しておく.
[C-x C-w]
Write file: ~/p-nyuumon/TUTORIAL.jp ↓
一度Emacsを終了させ,ホームディレクトリにファイル’TUTORIAL.jp’が作成されている
か確認する.
演習問題
時間内にできるところまで,どんどん進めること.
【演習1】Emacsを立ち上げ,1行目に学生番号と名前を,2行目以降にテキスト,ペー
ジi,はじめにの「オペレーティングシステムとは,・・・」~9行下の「・・・プログラミング言
語である.」までを入力し,終わったら印刷し提出すること.
【演習2】テキスト,ページ124に あるプログラム(例題1.3)をEmacsを用い入力し,保
存すること.ファイル名は’reidai1-3.c’とすること.
1
基本的なUNIX操作
2.6 UNIXコマンド(ls, cat, pwd)
今回は3つのコマンドを学習する.
(1)ls:作業ディレクトリ内のファイルを表示する.
先ほど,すでにlsコマンドが出てきたが,もう一度復習する.lsコマンドは,作業ディレク
トリ内のファイルを表示するコマンドで り,オプションを用いることにより,ファイルの属性
を表示できる.詳しくは次回説明するので,今日は以下のように入力し,その違いを確認
すること.
1)ユーザ名@端末名: ls ↓
2)ユーザ名@端末名: ls -a ↓
3)ユーザ名@端末名: ls -l ↓
4)ユーザ名@端末名: ls -al ↓
(2)cat:ファイルの内容を表示または連結する.
catコマンドはファイルの内容を表示する.自分のホームディレクトリに移動し,次のよう
に入力してみる.
ユーザ名@端末名: cat .cshrc ↓
シェル操作 (T, 59-78)
2.8 シェル
シェルとは,コマンドを解釈したり,プログラムを実行するためのプログラムであり,
UNIX OSとユーザとの仲立ちをするもので る.シェルには幾つか種類があり,Bourne
シェル(sh),Cシェル(csh)などがある.
また,リストを1つ毎に前後に移動して実行するには,Ctr+P,または,Ctr+Nによって行
う.今, 以下のように入力してみる.
ユーザ名@端末名: history ↓
ユーザ名@端末名: history
<--- Ctr+P
ユーザ名@端末名: set
<--- Ctr+P
ユーザ名@端末名: ls
<--- Ctr+P
ユーザ名@端末名: set
<--- Ctr+N
ユーザ名@端末名: history
<--- Ctr+N
この様に,以前使用したコマンドリスト間を移動できる.実行するときは,リターンキーを
押す.
続いて,ファイル名補完機能を学習する.自分のホームディレクトリに移動する.次の
ように入力する.
ユーザ名@端末名: ls -al ↓ (リストに,.cshrcがあるか確認する)
ユーザ名@端末名: ls .c
<--- ここまで入力したらTabキーを押す.
ユーザ名@端末名: ls .cshrc
と自動的に文字c以下が補完されたはずである.長いファイル名を全て入力しなくてもい
いので便利である.またリスト中には.cshrc.orgのようにその後につながるファイルが存
在する.そのときは,次のように入力する.(皆さんは,.cshrc.orgは無いと思うので,ス
クリーンを見ること)
ユーザ名@端末名: ls .c
<--- ここまで入力したらTabキーを押す.
ユーザ名@端末名: ls .cshrc.o
<--- 続けて.oを入力し,Tabキーを押す.
ユーザ名@端末名: ls .cshrc.org
(3)pwd:作業ディレクトリを表示する.
pwdコマンドは現在作業しているディレクトリ名を表示する.次のように使用する.
ユーザ名@端末名: pwd ↓
このコマンドは,作業中に様々なディレクトリに移動する場合が多いため,作業ディレ
クトリを確認するために頻繁に使用する.
2.7 manコマンド
manコマンドはUNIXコマンドを調べるためのオンラインマニュアルである.書式は次
のとおりである.
man <コマンド>
練習として,先ほど学習したlsコマンドを見てみよう.
ユーザ名@端末名: man ls ↓
【練習】manコマンドで,cat, pwdコマンドのマニュアルを調べる.
2.9 tcsh(履歴機能,ファイル名補完機能)
使用しているシェルはtcshである.tcshには便利な機能がある.ここでは,履歴機能
とファイル名補完機能を学習する.しかし,まだいろいろな機能があるので,参考図書
などで学習すること.まず,次のように入力する.
ユーザ名@cse: history ↓
31 15:13 set
32 15:13 echo $shell
33 15:19 ls
34 15:20 alias ls ls -al
35 15:20 ls
36 15:20 history
この様に,historyコマンドは以前使用したコマンドを表示してくれる.このリストの中に
あるコマンドを実行したい場合,例えば31番目のsetコマンドの場合には
ユーザ名@端末名: !31 ↓
と入力する.
2.10 Hello World プログラム
【プログラム例,T121 例題1.1】
#include <stdio.h>
main()
{
printf("Hello !");
pritf("Welcome to UNIX and C. ¥n");
}
main()の中に処理する内容の本体が入っている.すなわち,main()からプログラムは
始まる.
7.7 コンパイル
上のプログラム例をEmacsを用いて作成せよ.ファイル名はreidai1-1.cとせよ.
(programディレクトリ中に作成する.cd ~/p-nyuumon/program)
コンパイルは,
ユーザ名@端末名: cc reidai1-1.c
コンパイルができた場合にはメッセージは表示されない.また,カレントディレクトリ内
にファイルa.outが作成されたことを確認する.なにかメッセージが表示された場合は間
違っているので,もう一度ソースプログラムを確認すること. 実行するには,
ユーザ名@端末名: a.out
と入力する.何が表示されたか確認すること.
2
printfの使い方(T:121 and 243ページ)
printf()のカッコ内に記述した内容を画面上に出力する.したがって,printf()は出力関
数である.一般的なprintf()の書式は次のようになる.
(1)出力が文字列の場合(テキスト121ページの例題1.1)
printf(“文字列”);
(2)出力がデータの場合(テキスト122ページの例題1.2 入力して実行する)
printf(“文字列+変換指定”, 数値);
変換指定とは例題1.2内になるように,%d(整数の10進数として出力)で表されるような
表示形式を指定するもので る.次に主な変換指定子を上げておく.
%d : 整数の10進数として出力
%u : 整数の符号なし10進数として出力
%f : 浮動小数点表示
%c : 1文字を出力
scanfの使い方
キーボードから数値(変数の値)を読み込む標準入力関数.
3