プログラミング入門II 演習課題 2019.04.22

Back to text page


演習課題

  1. 関数の基本

    渡された値の和を返す関数 add() を以下のように作りました.3桁の正の整数を乱数により2個発生させ,その和を求めるプログラムを add() を使って作りましょう.

    int add(int x, int y)
    {
    	return x + y;
    }
    

    513 + 890 = 1403
    

    解答例

  2. 数学関数の利用

    C言語における関数というものの知識がほとんどない状態で前回演習を行ったことも理解しにくい原因だったかもしれません.ということで,数学関数をまず使う練習をしてみましょう.三角関数や指数関数などはあらかじめ用意されています.ここでは三角関数の一つである sin() を使ってみましょう.

    #include <math.h>
    

    のように,数学関数ライブラリをまず読み込んでおく必要があります.また,コンパイル時に

    $ cc sin.c -lm

    のように,オプション lm をつける必要があります. link mathの略ですね.

              *          
                   *     
                      *  
                        *
                       * 
                    *    
               *         
          *              
      *                  
    *                    
    *                    
       *                 
           *             
                *        
    

    縦に行を送る変数 x は0から6.5まで0.5刻みで増加させています.また,横に進む変数 y は int型で, sin(x)の値がy-0.5とy+0.5の間に入ればアスタリスクを表示させます.ただし,sin(x)の値は10倍しています.また,2重の for 文を使用しています.

    このプログラムは自分で関数を作る必要はありません.ただ,関数 sin() を使用するだけです.

    解答例

  3. void型素数判定

    2〜20までの整数を乱数により一つ発生させ,それが素数かどうかを判定するプログラムにおいて,判定結果の表示を行う部分をvoid型関数 prime() で行うようにしましょう.

    3 is a prime number.
    

    12 is not a prime number.
    

    戻り値はありません.

    解答例

  4. int型素数判定

    先ほどの素数判定について,関数から戻り値がある形式に変更しましょう.

    解答例

  5. 位取り

    6桁の正の整数を乱数により一つ発生させ,その各位の数字を順に表示するプログラムにおいて,その表示部分をvoid型の関数に分けて行うものを作成しましょう.

    348545: 3 4 8 5 4 5 
    

    関数に処理を分けると,元の数はそのまま残すことができます.

  6. 近い素数

    3桁の正の整数を乱数により1つ発生させ,その数に一番近い素数を,その数よりも大きいものと小さいものそれぞれ探索するプログラムを作成しましょう.探索部分をそれぞれ2つの関数にします.

    578
    The nearest prime number below it: 577
    The nearest prime number above it: 587
    


Back to text page