【第2回】


『内容』

<標準入出力関数>

1. putchar()printf() 2. getchar()scanf()

 まとめると,1文字の入出力には,getchar()putchar()を用い,文字列の入出力には,scanf()printf()を用いる.


<演算子>

1. 算術演算子+ - * / % 2. 代入演算子=と複合代入演算子+= -= *= /= %= 3. インクリメントとディクリメント演算子++ -- 4. キャスト演算子(int) (float)など 5. 関係演算子== != < > <= >= 6. 論理演算子&& || !

『演習』

3.標準入出力関数と演算子

3.1 標準出力関数

 printf()などの標準入出力関数を使用する場合には,プログラムの先頭行に

  #include<stdio.h>
を記述しなければならない.stdiostandard input and outputを意味している.

3.1.1 putchar()

 putchar()関数は指定された1文字を画面に表示する.この関数名は,put characterから来ている.

 教科書p.19の「プログラム3-1」を実行し,その動作を確認せよ.(教科書p.19の文法3-1を参照)


3.1.2 printf()

 (1)指定された文字列や,(2)変数を引数とし,その書式を指定して,変数の値を含む文字列を画面に表示することができる.「"」で挟まれた文字はそのまま表示され,書式指定子(教科書p.20の「表3-1」を参照)を記述しておけば,その書式指定子に対応した変数の値がその場所に挿入される.この関数名は,print formatから来ている.

 教科書p.20の「プログラム3-2」を実行し,その動作を確認せよ.(教科書p.20の「文法3-2」を参照)

 書式指定子に出力幅や小数点以下の桁数,左詰めにするかどうかなどを指定することができる(教科書p.21の「文法3-3」と「文法3-4」を参照).

 教科書p.21の「プログラム3-3」,p.22の「プログラム3-4」,p.22の「プログラム3-5」を実行し,その動作を確認せよ.


3.2 標準入力関数

3.2.1 getchar()

 キーボードから入力された1文字を取り込む.この関数名は,get characterから来ている.

 教科書p.23の「プログラム3-6」を実行し,その動作を確認せよ.(教科書p.23の「文法3-5」を参照)


3.2.2 scanf()

 指定された書式の文字列を取り込む.変数を引数とし,その書式を指定して,変数の値を含む文字列を取り込むことができる.記述方法はprintf()と同じであるが,「"」で挟まれた入力書式中に,書式指定子(教科書p.23の「表3-3」を参照)は書けるが,エスケープシーケンス(改行の\nなど)は書かない.さらに,変数の前にポインタを表す「&」を必ず付ける(教科書p.23の「文法3-6」を参照).ポインタについては,7章で詳しく述べる.この関数名は,scan formatから来ている.

 教科書p.24の「プログラム3-7」,「プログラム3-8」を実行し,その動作を確認せよ.

 getchar()scanf()を用いて,キーボードから値や文字を入力する際には,printf()を用いて,何の入力を求めているのかを表示させないと,不親切なプログラムとなる.「プログラム3-8」のように,scanf()getchar()の前にprintf()を入れること.


3.3 演算子

3.3.1 算術演算子

 四則演算と除算の余りを求める演算子の合計5つある(教科書p.25の「表3-4」を参照).

 教科書p.25の「プログラム3-9」を実行し,その動作を確認せよ.さらに,除算で小数点以下まで求め,その結果も併せて表示するようにプログラムを修正せよ.(ヒント:float型の変数を新たに作り,除算の式中にキャスト演算子(float)を用いる.)


3.3.2 代入演算子(複合代入演算子)

 右辺の値を左辺に代入するのに用いられるのが代入演算子「=」である.この代入演算子に算術演算子を組み合わせたのが複合代入演算子である.教科書p.25の「表3-5」を参照せよ.複合代入演算子も単純に代入演算子と呼ぶこともあり,これらの働きを以下に示す.

 複合代入演算子を用いることにより,aの値が以前の値とは異なる点に注意せよ.

 教科書p.26の「プログラム3-10」を実行し,その動作を確認せよ.


3.3.3 インクリメント演算子とディクリメント演算子

 変数の値に1だけを加減する演算子である(教科書p.26の「表3-6」を参照).繰り返し計算を行うfor文などで良く使用される.

 教科書p.27の「プログラム3-11」,「プログラム3-12」,「プログラム3-13」を実行し,その動作を確認せよ.特に,++aa++のように,変数の前と後に演算子を付けることの違いに注意せよ.


3.3.4 キャスト演算子

 データ型を変換する演算子である.教科書p.12の「2.1.5 型変換」を参照のこと.


3.3.5 関係演算子と論理演算子

 2つの値の大小関係を調べる関係演算子(教科書p.28の「表3-7」を参照)と論理和・積・否定を調べる論理演算子(教科書p.29の「表3-8」を参照)がある.詳しい使い方は4章で述べる.

 条件式自体が値を持ち,条件が成り立つときには「1」を,成り立たないときには「0」か「1以外」の値を返す.


3.3.6 その他の演算子

 引数として渡されたデータのサイズ(バイト数)を得るための演算子がsizeof演算子である(教科書p.29の「文法3-9」,「プログラム3-14」を参照).


3.3.7 演算子の結合規則と優先順位

 演算子には,その演算を行う方向が決まっており,この規則を,演算子の結合規則と呼ぶ.例えば,代入演算子では,右から左の順に代入される(教科書p.29の下部とp.30の「表3-9」を参照).また,複数の演算子が存在する際には,各演算子に優先順位が存在し,その順位に従って順番に演算が実行される(教科書p.30の「表3-9」を参照).順序を明確にするには,()を用いればよい.


レポート課題2(授業終了後にアップロード)

 RePORTシステム