mori– Author –
-
C++樹林
C++のポインタと配列:arr[i] と *(arr + i) の深いつながり
C++において、「配列」と「ポインタ」は明確に異なる概念です。配列は同一の型の要素が連続して並んだメモリ領域そのものであり、ポインタはそのメモリ領域のアドレス(番地)を格納するための変数です。 しかし、C言語から受け継いだ仕様により、この2つ... -
C++樹林
C++のポインタ渡し:関数で呼び出し元の変数を変更する伝統的な方法
C++の関数は、return 文を使って呼び出し元に値を返すことができますが、返却できる値は原則として1つだけです。 もし、1つの関数で「複数の計算結果」を呼び出し元に返したい場合、どうすればよいでしょうか。例えば、一連のデータを分析して「最大値」と... -
C++樹林
C++のポインタ入門:アドレス(&)と間接参照(*)の基本
C++において「オブジェクト」とは、int 型の変数 x のように、「値を表現するための記憶域(メモリ領域)」を指します。プログラムが実行されるとき、これらのオブジェクト(変数)はコンピュータのメモリ上のどこかに配置されます。 この記事では、その配... -
未分類
Windows 11で全角英数を実質無効化し、英字・数字を常に半角にする手順
全角英数を一切使わない運用にしたい場合は、Microsoft IME の設定で「英字」と「数字」を常に半角に固定すると確実です。以下の手順のみで完了します。 対象環境 Windows 11 Microsoft IME を使用している環境 手順(最短・推奨) 画面右下の「A/あ」ア... -
C++樹林
C++の関数オーバーロード(多重定義)とインライン関数の活用法
C++の関数には、コードの可読性を高める「オーバーロード(多重定義)」と、実行効率を改善する「インライン関数」という2つの重要な機能があります。この記事では、これらの機能の基本的な定義と、現代のC++における論点について解説します。 関数のオー... -
C++樹林
C++の有効範囲(スコープ)と記憶域期間:変数の生存期間と可視性
C++プログラミングにおいて、変数を理解する上で最も重要な2つの概念が「有効範囲(スコープ)」と「記憶域期間(ストレージ期間)」です。 有効範囲 (Scope): その変数名(識別子)が、コードのどの場所から「見える」か、「アクセスできる」かを定義する... -
C++樹林
C++の参照渡し入門:& の意味と値渡しとの決定的な違い
C++の関数呼び出しにおいて、引数を渡す基本的な方法は「値渡し(Pass-by-Value)」です。しかし、値渡しには「呼び出し元の変数を変更できない」という限界があります。 この問題を解決し、関数が呼び出し元のデータを直接操作できるようにする仕組みが「... -
C++樹林
C++のデフォルト引数とビット演算:関数の柔軟な使い方と低レベル操作
C++には、関数の利便性を高める「デフォルト引数」や、コンピュータの内部表現(ビット)を直接操作する「ビット演算」といった機能が備わっています。この記事では、これらの機能の基本的な使い方と活用例を解説します。 デフォルト引数 (Default Argumen... -
C++樹林
C++のvoid関数入門:値を返さない関数の定義と活用法
C++の関数は、プログラムの部品(モジュール)として、特定の処理をひとまとめにする機能です。関数には、max() のように計算結果を「返す」ものと、単に特定の動作(アクション)を実行するだけのものがあります。 void キーワードは、関数が**「値を返さ... -
C++樹林
C++の関数宣言(プロトタイプ宣言)と「値渡し」の基本
C++プログラムは、必ず main という名前の関数から実行が開始されます。この main 関数はプログラム全体のエントリーポイント(入口)であり、その処理が終了するとプログラムが終了します。 main 関数も関数の一種であり、int main() と定義されます。こ... -
C++樹林
C++の関数入門:定義と呼び出しの基本、なぜ関数が必要か
関数とは? プログラミングを行っていると、同じような処理(ロジック)をプログラムのあちこちで実行したい場合があります。 例えば、ECサイトで「家電」カテゴリと「書籍」カテゴリのそれぞれ3つの主要商品の価格を入力し、各カテゴリの最高価格を表示す... -
C++樹林
C++の多次元配列:Cスタイル配列と std::array のネスト(入れ子)
1次元の配列はデータの「列」を表現しますが、実世界の多くのデータは「行」と「列」を持つ2次元の表(グリッド)として表現されます(例:スプレッドシート、画像ピクセル、ゲームのマップ)。 C++では、このような2次元、3次元、あるいはそれ以上の次元... -
未分類
HONDA GROM (JC61) の K-Line センサ値を取得する(全3回)
HONDA GROM (JC61) を対象に、Arduino Nano と K-Line トランシーバ(L9637D)を用いて、ECU から主要なセンサデータを読み出す技術的な取り組みについて、note.com に全3回の連載記事としてまとめました。 本連載は、「まずは K-Line の値を安定して読み... -
C++樹林
C++の配列入門:伝統的なCスタイル配列と現代的なstd::array
同一の型(例:int型)のデータを多数扱う際、それらを個別の変数として宣言するのは非効率です。例えば、12ヶ月分の月間経費を管理するために expense1, expense2, ..., expense12 といった12個の変数を用意するのは現実的ではありません。 このような「... -
C++樹林
C++の列挙体ガイド:enum から C++11 enum class への進化
列挙体 (enum) とは? プログラミングにおいて、0、1、2 のような数値(いわゆる「マジックナンバー」)を直接コードに記述すると、その数値が何を意味するのかが分かりにくくなります。 C++の**列挙体(enum)**は、Status::Pending (0)、Status::Active ... -
C++樹林
C++の型変換と演算:整数除算の罠とstatic_castの正しい使い方
C++は静的型付け言語であり、int や double などのデータ型を厳密に区別します。異なる型同士で演算を行う際、C++は「型変換」に関する一連のルールに従います。これらのルールを理解していないと、特に除算(割り算)において、予期せぬバグが発生する原... -
未分類
【Power Automate】「BadRequest. The variable ‘varLeads’ of type ‘Array’ cannot be initialized or updated with value of type ‘String’.」エラーの解決策
Power Automateでフローを構築している際、特に変数を扱うプロセスで以下のようなエラーメッセージに直面することがあります。 BadRequest. The variable 'varLeads' of type 'Array' cannot be initialized or updated with value of type 'String'. The ... -
未分類
Djangoモデル設計における命名規則の重要性:一貫性がもたらす保守性の向上
Djangoアプリケーションの基盤となるのは、models.pyに定義されるデータモデルです。このモデルのフィールド名(データベースのカラム名に相当)は、アプリケーションの可読性、保守性、そして開発効率に直接的な影響を与えます。 もし、フィールドの命名... -
Python樹林
Djangoモデル設計のアンチパターン:「有意コード」がもたらす技術的負債
Djangoでデータベーススキーマを設計する際、主キーやユニークな識別子(ID、コード)の定義方法は、システムの将来的な保守性に大きな影響を与えます。 その中で、「有意コード(Intelligent Code / Smart Code)」と呼ばれる設計手法を採用してしまうケ... -
Python樹林
Djangoモデル設計: typeカラムの乱用を避け、堅牢なシステムを構築する方法
DjangoでWebアプリケーションを開発する際、似て非なる複数のデータを一つのモデルで管理しようとして、安易にtypeというカラムを追加してしまうことがあります。これは「種類」や「カテゴリ」を整数や文字列で区別するためのカラムで、一見すると便利に思... -
Python樹林
Djangoにおけるデータ管理:論理削除と物理削除の適切な使い分け
Webアプリケーションを開発する際、データの「削除」は避けて通れない機能の一つです。特にDjangoのようなフレームワークを使用していると、instance.delete()メソッドで簡単にデータを削除できます。 しかし、この「削除」には、データベースからレコード... -
お金樹林
【新NISA】高配当株ファンドは「つみたて投資枠」で買える?人気の「VYM連動ファンド」と「S&P500」の10年実績を徹底比較
新NISAが始まり、「高配当株」への投資で安定したインカム(分配金)を得たいとお考えの方も多いのではないでしょうか。 しかし、実際に楽天証券などの金融機関で商品を探してみると、「つみたて投資枠で買いたいのに、高配当株ファンドが見つからない」と... -
お金樹林
米国債券ETF「BND」とは?特徴からNISAでの買い方、賢い運用法まで徹底解説
米国株投資などで配当金(米ドル)を受け取ったものの、その使い道に迷い、証券口座にそのままにしている方も多いのではないでしょうか。 インフレや為替変動のリスクを考慮すると、米ドルを遊休資産にしておくのは効率的とは言えません。その有力な活用先... -
未分類
Googleスプレッドシートで中央値を求める方法|MEDIAN関数の使い方を解説
Googleスプレッドシートでデータの集計を行う際、「平均値(AVERAGE)」はよく使われますが、「中央値(MEDIAN)」の求め方が分からず困った経験はありませんか? 中央値は、データを大きさの順に並べたときに、ちょうど中央に位置する値のことを指します... -
Python樹林
PythonでWindowsをシャットダウン!.batファイルから実行する方法と環境設定の全手順
Pythonを使ってPCのシャットダウンのようなOS操作を自動化したい、と考えたことはありませんか。さらに、そのPythonスクリプトを、ダブルクリックするだけで簡単に実行できる「バッチファイル(.bat)」から呼び出せたら便利です。 この記事では、Pythonで... -
C#樹林
C#からPythonスクリプト(.py)を実行する3つの方法を徹底比較
C#を用いた開発プロジェクトにおいて、Pythonが持つ豊富なライブラリ(例えば、機械学習のTensorFlowやPyTorch、データ分析のNumPyやPandasなど)を活用したい場面が出てくることがあります。その際、C#のプログラムから直接Pythonスクリプト(.pyファイル... -
Python樹林
Beautiful Soupでクリック操作はできる? できない理由とSeleniumとの使い分けを解説
Pythonを使ったWebスクレイピングで非常に人気のあるライブラリ「Beautiful Soup」ですが、学習を進めるうちに「これでボタンクリックやフォーム入力はできないのか?」という疑問を持つことがあります。 結論から申し上げますと、Beautiful Soup単体では... -
Python樹林
Selenium実践:複雑なWebページの自動操作テクニック集
Webブラウザ操作を自動化するツールSeleniumは、テスト自動化や定型作業の効率化に非常に強力です。しかし、実際のWebページ、特に社内システムなどは、単純なクリックや入力だけでは操作できない複雑な構造を持っていることが少なくありません。 今回は、... -
Excel樹林
【Excel】2つの日時の差から経過時間を計算する方法「h:mm:ss」形式で表示するテクニック
Excelで作業ログやイベントの記録を管理していると、「ある日時から次の日時までに、どれくらいの時間が経過したか」を正確に計算したい場面がよくあります。 例えば、以下のようなデータがあるとします。 開始日時 (A2セル): 2025/2/26 16:19:11 終了日時... -
Excel樹林
【Excel活用術】数値を「20:00:00」形式に変換する方法と時間計算のコツ
Excelで勤怠管理やプロジェクト工数の集計を行う際、「20」という数値を「20時間00分00秒」のように、時間として扱いたい場面は非常に多いかと存じます。 しかし、Excelの時間計算には「シリアル値」という独自のルールがあり、つまずきやすいポイントでも...