情報科学演習 実習課題 2014.10.16

Back to text page


代入に関する補足説明

授業では scanf を使用しませんが,そのために値を変数に「代入」する操作が必要になります.これは,以下のように「等号」の記号である = を使用してできます.

    int a;

    a = 1;

また,定義と代入は同時に行うことも可能です.

    int a = 1;

上記の操作により,変数 a の値が整数の数値1になります.


関数 printf を使って以下の問題のように表示するプログラムを作り ましょう.printf は例題2.1のように2重引用符 " " で囲 まれた中にある文字列を画面に表示するものですが,先ほど紹介した % 記法を用いて,2重引用符の後ろにある変数の値も表示させることが出来ます. これは例題2.2にあるように桁数指定も可能です.

  1. 教科書p.11の例題2.2にあるように printf において表示する桁数を指定する機能を利用して右揃えで数値を表示してみましょう.以下のように表示 させるように,3つの変数を用意して適当な数を代入して右揃えで表示させてみましょ う.

    a =   100
    b = 12345
    c =     5
    

    上のプログラムは3つの変数 a, b, c を用意して,その変数にそれぞれ値100,12345,5を代入します.表示の時にはその変数の値を指定された桁数で表示させます.スペースを使用して形を整えることはしません.

        printf("a =   100\n");
        printf("b = 12345\n");
        printf("c =     5\n");
        

    上のような処理ではダメということです.
  2. 10進数の適当な数を8進数,16進数でそれぞれ表示するプログラムを 作成します.結果の表示は以下のようになるものとしてください.

    Decimal: 100
    Octal: 144
    Hexdecimal: 64
    

    上のプログラムは変数を一つだけ用意して,適当な10進数の数値を代入します.上の例では100です.それをp.21の%記号の表を参考に,8進数や16進数で表示させます.いろいろと変数の値を変えて試してください.
  3. 例題2.3にあるように printf は複数の変数を扱うことが出来ます. 図1にあるように,後ろに付けた変数の値が順番に入ります.先ほどの問題 を一つの printf を使って表示するように改造しましょう.

    図1 複数の変数を printf で表示させる方法

  4. printf を使って画面に文字を表示させるときに,二重引用符で囲 んだ文字列が表示されることをここまで学習しています.では,二重引用 符そのものを画面に表示させるためにはどうするかというと,バックスラッ シュを使用します.これは既に改行文字 \n で見ているように, バックスラッシュがあると,その次の文字の意味を打ち消す作用がありま す.改行では,n という文字の本来の意味を打ち消して改行 (New Line)という別の意味を持たせているわけです.バッ クスラッシュはさまざまな文字に対して作用します.画面に次のように表 示するプログラムを作成しましょう.

    \n is new line.
    \r is carriage return.
    \0 is null character.
    " is double quote.
    ' is single quote.
    ` is back quote.
    

  5. printf を使って % を表示させてみましょう.以下の様 に出力するプログラムを作ってください.ちなみに,バックスラッシュでは表示でき ませんので, % を打ち消す文字を探してみてください.

    
    %d is decimal number.
    %x is hexadecimal number.
    %o is octal number.
    %s is character string.
    %c is character.
    

  6. 文字列も扱ってみましょう.教科書のp.15では scanf を使用して キーボードから文字を入力していますが,ここでは最初からプログラムの 中に記述する形を試してみます.以下の出力動作を確認してみてください.

    	    printf("%s\n", "abcde");
    

    次にさっきの printf の中にある %s %c に変えるとすると,どのようにプログラムを変更しないといけないか,考えてみましょう.

  7. 教科書の例題2.5では文字列を配列として扱うことをしています.上の作業を配列を用いて行ってみましょう.

    	    char m[30] = "Today is the 15th of October."
    	    
    	    printf("%s\n", m);
    	    printf("%c\n", m[0]);
    

  8. 本日のWebテキストに書いておいたように,文字列の最後にはヌル文字 \0 がついています.これは見えないのですが,見ることを試してみましょう.まず,以下のような出力命令を用意します.

    	    printf("%c\n", '\0');
    
    

    実行しても何も表示されないはずです.ところが,画面に出力される結果をページャというソフトを介して表示させると変わります.

    $ ./a.out | less

    のように a.out の結果を画面に出す前に,パイプ処理 | を通して,ページャである less というソフトに渡してから画面に出すようにします.結果はどうなりましたでしょうか?

    ページャ画面から抜けるには,キーボードの q のキーを押してください.これはquitの略のqです.
  9. 解答用紙の使い方の練習もしてみましょう.このリンクをクリックすると解答用紙が表示されます.また,右クリックでダウンロードもできます.試しに解答用紙に,上のどれかのプログラムをペースとして,正常にコンパイルおよび実行ができることを確認しましょう.


Back to text page