sqrt関数を使って√2の値を求めてみましょう そのためにヘッダファイル<math.h>をインクルードします


ソーラー「そうなんです


左に5ドット

上に5ドット移動をする場合


合成される移動速度は


         💖5√2ドット💖


になります


その時の様子はこちらです


👇

https://solalion.blogspot.com/2022/07/blog-post_93.html



ソーラー「このように


左に5ドット

上に5ドット移動をする場合


オレンジリング10体の移動速度は


          💖5√2ドット💖


になるのです


このとき


オレンジリング10体同士の間に


隙間ができることになります


左上にオレンジリング10体が移動する場合


オレンジリング10体同士の間に隙間ができないようにするには


オレンジリング10体の移動速度を


          💖5ドット💖


にする必要があります


その様子はこちらです

👇

https://solalion.blogspot.com/2022/07/blog-post_21.html


このように


左上への


オレンジリング10体の移動速度を


          💖5ドット💖


にするには


x軸方向の移動速度を-5/2√2ドット


y軸方向の移動速度を-5/2√2ドット


にする必要があります


solarplexuss「結局


左上にオレンジリング10体が移動する場合でも


左右にオレンジリング10体が移動する場合でも


オレンジリング10体同士の間に隙間ができないようにするには


オレンジリング10体の移動速度を


          💖5ドット💖


にする必要があるんだね


でも


x軸方向の移動速度を-5/2√2ドット


y軸方向の移動速度を-5/2√2ドット


って


どうやって


√2の値を求めるの?」


ソーラー「


√2の値を計算するには


sqrt関数を用います


sqrt関数は


ヘッダファイル <math.h>


に含まれている関数です


なので


sqrt関数を使用するには


ヘッダファイル <math.h>



インクルードする必要があります


sqrt関数をもちいて


√2の値を求めてみましょう


そのプログラムはこちらです

👇


#include <stdio.h>

#include <math.h>


int main(void)

{

double x = 2.0;

double y = 0;


y = sqrt(x);

//👆🌞 xの平方根を計算してyに代入しています


printf("√2の値は%fです", y);

//👆🌞 実数を表示するには%f出力変換指定子を用います %d出力変換指定子ではありません



DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます


return 0; // プログラムを終了します


}


プログラムの実行結果は


√2の値は1.414214です


となりますが


みなさんは


DXライブラリを用いるために


Visual Studioの設定を変更しているので


上記のプログラムを実行することはできません


そこで


次のプログラムを実行して


√2の値を求めてみましょう


そのプログラムはこちらです

👇


#include "DxLib.h"


#include <math.h>



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{



ChangeWindowMode(TRUE); // ウインドウモードに設定します


if (DxLib_Init() == -1) // DXライブラリを初期化処理しています

{

return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します

}




SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です 裏画面に画像を描きます printfDxで表示される文字も裏画面に描かれることになります







int FontHandle;


FontHandle = CreateFontToHandle(NULL, 10, 3);

// 👆CreateFontToHandle(NULL, 10, 3)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 10, 3)に返されます

// 👆FontHandle に書体のデータ(フォント)に対応する値を代入しています






int FontHandle1;


FontHandle1 = CreateFontToHandle(NULL, 15, 0);

// 👆CreateFontToHandle(NULL, 15, 0)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 15, 0)に返されます

// 👆FontHandle1に書体のデータ(フォント)に対応する値を代入しています




SetFontSize(8);



double x = 2.0;//double型の変数xに実数2.0を代入しています 2.0の平方根をもとめます


double y = 0;







while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {



//👇🌞🌞🌞今 何フレーム目なのかを表示します


DrawStringToHandle(0, 0, "√2の値は", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています

DrawStringToHandle(120, 0, "です", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています

y = sqrt(x);


DrawFormatString(75, 5, GetColor(255, 255, 255), "%f", y);




//👆🌞🌞🌞今 何フレーム目なのかを表示します





ScreenFlip();


ClearDrawScreen();


};



DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます


return 0; // プログラムを終了します


}



デバッグなしで実行をしてから一度プログラムを終了し

生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです

👇

https://solalion.blogspot.com/2022/07/blog-post_15.html



ソーラー「


√2の値は1.414214です


が表示されています


√2の値を求めることができたね」


マックス「


√2の値は1.41421356・・・


だが


小数点以下7位の5が四捨五入されて


1.414214


になっているわけだ」


ソーラー「変数を介在させなくても


sqrt関数の引数に直接数値を代入して


sqrt(2)


と記述しても


√2の値を求めることができます」


そのプログラムはこちらです

👇

#include "DxLib.h"


#include <math.h>



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{



ChangeWindowMode(TRUE); // ウインドウモードに設定します


if (DxLib_Init() == -1) // DXライブラリを初期化処理しています

{

return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します

}




SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です 裏画面に画像を描きます printfDxで表示される文字も裏画面に描かれることになります







int FontHandle;


FontHandle = CreateFontToHandle(NULL, 10, 3);

// 👆CreateFontToHandle(NULL, 10, 3)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 10, 3)に返されます

// 👆FontHandle に書体のデータ(フォント)に対応する値を代入しています






int FontHandle1;


FontHandle1 = CreateFontToHandle(NULL, 15, 0);

// 👆CreateFontToHandle(NULL, 15, 0)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 15, 0)に返されます

// 👆FontHandle1に書体のデータ(フォント)に対応する値を代入しています




SetFontSize(8);









while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {



//👇🌞🌞🌞今 何フレーム目なのかを表示します


DrawStringToHandle(0, 0, "√2の値は", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています

DrawStringToHandle(120, 0, "です", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています


DrawFormatString(75, 5, GetColor(255, 255, 255), "%f", sqrt(2));//👈🌞🌞🌞ここに注目💖




//👆🌞🌞🌞今 何フレーム目なのかを表示します





ScreenFlip();


ClearDrawScreen();


};



DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます


return 0; // プログラムを終了します


}


デバッグなしで実行をしてから一度プログラムを終了し

生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです

👇


https://solalion.blogspot.com/2022/07/blog-post_15.html


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る