見出し画像

高校数学10分プログラミング(数学Ⅰ編 1.2次関数)15日目「絶対値を含む関数のグラフ」

マガジンリスト > 数学Ⅰ編 1.2次関数 > 15日目 課題

おはようございます。

本日は、高校数学10分プログラミング(数学I編 1.2次関数)の15日目です。

本日の課題は、絶対値を含む関数のグラフを描くプログラムを作成することです。


課題

絶対値を含む関数

$$
y = (x+1)|x-3|
$$

のグラフを描くプログラムを作成してください。


ヒント

キャンバス上に座標軸を描く関数 setAxes を利用して絶対値を含む関数のグラフを描くためのスケッチ「drawAbsoluteFunction」を準備しました。以下の zip ファイルをダウンロードして展開または解凍してご利用ください。


展開または解凍して得られるスケッチ「drawAbsoluteFunction」の中のpdeファイル「drawAbsoluteFunction.pde」をダブルクリックしてスケッチ「drawAbsoluteFunction」の開発環境ウィンドウを立ち上げます。開発環境ウィンドウのタブ欄で「drawAbsoluteFunction」タブを選択すると、そのテキストエリアに以下のソースコードが書かれています。

// 絶対値を含む関数のグラフを描く
void setup(){
  size(500,500);
  noLoop();
  float x_range = 10.0; // x軸の表示範囲 -x_rangeからx_rangeまで
  float y_range = 10.0; // y軸の表示範囲 -y_rangeからy_rangeまで 
  setAxes(x_range, y_range); // 座標軸の準備
  
  noFill();
  stroke(0,0,0);
  
  // グラフの定義域
  float x_l = -x_range; // 定義域の左端
  float x_r = x_range; // 定義域の右端
  int plot_num = 200; // グラフを描くための頂点の個数  
  
  // グラフを描画
  float x, y; // 関数の座標
  float X, Y; // キャンバス上の座標 
  beginShape();
  for(int i=0; i<=plot_num; i++){
    x = x_l + (x_r - x_l) / plot_num * i; // 関数のx座標
    y = absolutefunction(x); // 関数の値
    // キャンバス上の座標位置に換算
    X = width / 2.0 / x_range * x;
    Y = height / 2.0 / y_range * y;
    vertex(X, Y);
  }
  endShape();
  
}

// 絶対値を含む関数
float absolutefunction(
  float x
){

}

ソースコード1 スケッチ「drawAbsoluteFunction」の 「drawAbsoluteFunction」タブに書かれているコード

このソースコードの中の

// 絶対値を含む関数
float absolutefunction(
  float x
){

}

の部分の中身に課題の絶対値を含む関数の値を返すように追記して、実行ボタンを押すと、キャンバス上に座標軸とともに絶対値を含む関数のグラフが描かれるはずです。

なお、必要であれば、絶対値を計算するための関数 abs を利用してください。

abs(n);

この関数の引数と返り値は以下のようになっています。

n:数値 float型 または int型
返り値:絶対値 float型 または int型


それでは、よろしくお願いします。

MK's papa

この記事が気に入ったらサポートをしてみませんか?