cwnicol programming

プログラミング関連の投稿をすこしだけ

テーブル駆動方式

VBA

table_driven.vb 引数は大変そうなのでVariant型配列のグローバル変数経由か [参考] VBAでの関数ポインタの利用方法 (1/4):CodeZine(コードジン)

VS2015でW3C XMLスキーマを自動生成し、lintするまでの手順

1.スキーマ作成元となるxmlをVSにD&D 2.[ツールバー]-[XML]-[スキーマの生成] 3.[ツールバー]-[XML]-[スキーマ]で、2で作成したスキーマを有効化 4.チェック対象xmlを開き、プロパティウィンドウでスキーマに3を設定(既にされているかも) 5.エラー一覧ウィン…

他のリポジトリからチェリーピック

[チームエクスプローラー]-[設定]-[Git]-[リポジトリの設定] [リモート]-[追加] から、任意の名前でチェリーピックしたいコミットが入ったリポジトリを追加。(リモート追加ダイアログのチェックボックスはそのままでよい) [チームエクスプローラー]-[同期]-[…

無限ループ 場所特定手順

mugen_loop 上記ソース実行中にアタッチ後、「すべて中断(Ctrl+Alt+Break)」し、呼び出し履歴を見ればどこで無限ループになっているか分かる。

エラー対処手段

無視 復帰 プログラム終了

Visual StudioでMinGWのgccを用いてコンパイル

環境:Visual Studio Community 2015 1.MinGWインストール MinGW(gcc) の Windows へのインストールと使い方 | プログラマーズ雑記帳 上記を参考にMinGWをインストール、環境変数設定。 2.プロジェクト作成 windows - How to use GCC with Microsoft Visual S…

作業途中のチェックアウト

Git

作業ブランチで作業中に他ブランチをチェックする場合は、 仮コミットしておき、他ブランチで作業後、元ブランチに 戻ってきて、git reset --soft HEAD^ で変更状態に戻す。?? (stashも使えるが、stashしたことを忘れそうなので)

リストモジュール

C

メモリプールと併せて以下の使用感。エラー処理は未実装。 データのメモリはメモリプールで管理。リスト管理、ノードのメモリは リストモジュールで管理。 list sample2

公式Quickstartメモ

[Quickstart] https://cloud.google.com/appengine/docs/go/quickstart#top_of_page ・Test the application →環境設定前に起動したコマンドプロンプトでは、 設定したPATHが反映されていないので、新規で 立ち上げたコマンドプロンプトで実行すること。 ・D…

メモリプール

C

Cでmallocを何度も使用するとメモリ解放忘れが起きやすい。 一括でメモリを確保し、細切れで必要分使うコードがネット上にあったので クラスモジュールで作成。 memory pool · GitHub

printfデバッグ

IDEの中で見づらい、大量に連続したデータを見る際は ファイルにでも吐き出して見るとよいかもしれない

ブックマーク機能

Visual Studio でブックマーク機能が使えることを知った。 (VBEには昔からあること知ってたけど) ブックマークタブもあるし、main()とか、主要な関数を ブックマークして様子を見てみるか

マージソート

改行コードLF、CRLF対応 ファイル読み込み

VBAのLine InputステートメントはLF改行の対応していないため、 改行コードLF、CRLFの両方に対応するファイル読み込み処理を 作成したのだったと思う 改行コードLF、CRLF対応 ファイル読み込み

デバッグ実行時のコマンド引数、作業ディレクトリ設定

[プロパティ]-[デバッグ]で、コマンド引数と作業ディレクトリが設定可能。 これらを使えばアタッチしなくてもデバッグできそう。

実行時エラー箇所 確認手順

デバッグ実行開始 エラーダイアログで中断ボタン押下 呼び出し履歴でコールスタック確認

無限ループ箇所 確認手順

デバッグ実行開始 無限ループにはまる 一時停止 呼び出し履歴でコールスタック確認

キュー

C

・キュー →循環配列(リングバッファ)で実装するのが定石っぽい ・優先度付きキュー →二分ヒープで実装するのが定石っぽい

ダイクストラ法 アルゴリズム

ダイクストラ法 from ohsofty

C言語 ダイクストラ法 ライブラリ その2

C

cwnicol.hatenablog.com 上記のインターフェースで、リストを使用するように、 また、最短ルート時のコストも返すようにした。 インターフェース詳細はdijsktra.h、具体的な使用方法はtest_dijsktra.c参照。 (test_dijsktra.cで辺設定行が多いのは、テスト対…

C言語 ダイクストラ法 ライブラリ

C

使用感は改善の余地ありかも。 インターフェース詳細はdijsktra.h、具体的な使用方法はtest_dijsktra.c参照。 ライブラリ:dijsktra.h、dijsktra.c dijsktra [テスト対象グラフ] [テスト実行結果] (追記) インターフェースにリストを使用するようにしたもの…

簡易正規分布

C

簡易正規分布は一様乱数を足せばよいらしい。rand()は一様乱数を返す。 rand()%10として、0~9の乱数を得ていたのを、 rand()%5とrand()%6で、0~4の乱数と0~5の乱数を足して0~9の乱数を 得るようにする。 random こんな山でよいのなら。

C言語 ビットフラグ操作関数

C

ビットフラグは嫌いだが、操作関数があれば少しは使いやすくなるのだろうか bitFlag

進捗管理エクセルメモ

C言語 シーケンス図 自動生成

github.com [背景] C言語のソースからシーケンス図を自動作成するツールが 見当たらなかったので作成した。plantUML用入力ファイルを出力する。 できたファイルをplantUMLで読み込むことでシーケンス図が見れる。 [動作環境] Windows10で動確済み。(どのWind…

C言語 ファイル検索 再帰 ライブラリ

簡単に取り込めるファイル検索ライブラリ。(Windows用) (指定フォルダ配下の、指定拡張子の全フルパスを取得する) エラー処理は未実装。とりあえず動く。 使用者はlist.h, findFile.h内のインターフェースのみ把握しておけば使える。 まずはtest_findFile.c…

c言語 モジュール分割

cのプログラムはファイルを分けてモジュール分割可能。 ヘッダーファイルは設計図で、Cファイルは実装だ。 ヘッダーファイルには他モジュールが知る必要がことだけを書く。 公開関数のプロトタイプと、それの戻り値、引数で関係してくる マクロ、列挙体、構…

オプション処理 カプセル化

先日C言語でカプセル化できることを知ったので、それをオプション処理で応用してみた。(エラー処理は未実装) オプションクラスを使う人は、option.hのインターフェース使用方法を知っていれば、オプションについて詳しく知る必要もない。 option - object or…

Visual Studio 現在行の背景色 変更方法

現在行の背景色は以下で設定可能。 [ツール]-[オプション]-[フォントおよび色]で[表示項目]で"現在の行を強調表示する(アクティブ)"を選んで、[背景色]を変更 [確認済みver] Visual Studio 2015 Visual Studio Community 2015 googleで検索して上の方に出て…

Visual Studio Community キーバインド コードリーディング時

Visual Studio Community のキーバインドを以下のようにテスト割り当て中 No 意味 元のキー 割り当て先 使用目的 1 編集,定義に移動 F12 Ctrl+^ 定義を見たい 2 編集,検索 Ctrl+F Ctrl+[ 単語をハイライトしたい 3 編集,次を検索 無し? Ctrl+] ハイライト単…