ギターのコードネームの付け方を勉強したついでにコードを判定するプログラムをC言語で作ってみました。タブ譜相当の情報として6本の弦の何フレットを押さえるかを表す6個の整数を与え、コードネームの文字列(AmとかG7とか)を表示します。

処理の手順は、ルート音の決定、ルートに対して何度の音か判定、何度の音が含まれているからコード名はこうなる、という流れになっています。

コードネームの付け方は必ずしも厳密にルールが決まっていないようですが、大体良く見るコードネームが出力されるようにはできました。

思い付きで作ってみただけでしたが、これをベースに関数化とか文字列処理の勉強に使えそうな気がしてきました。次回の勉強会で取り上げてみようと思っています。
先日、C言語勉強会7回目を開催しました。

今回は全体的に雑多な内容で、分割コンパイル、整数型、sizeof、typedef、2の補数、列挙体、文字コードの説明をしました。

次回は本の章末のまとめを使ってポインタと文字列と構造体の最低限の説明をした後、ポインタと配列と文字列と構造体を関連付けながら説明していきたいと思います。これらは複雑にからみあっているからです。
先日、C言語勉強会6回目を開催しました。

うれしいことに参加者が1人増えました。

4人x3教科の点数の2次元配列2つを使って書いてあるプログラムを3次元配列1つにまとめる問題と、1からnまでの合計を返す関数とそれを呼ぶmain()を作る問題をやり、さらに線形探索してキーに一致した全てを配列に記録する問題の途中までで時間となりました。

やや難しい部分に入ったのでペースを落としてじっくり進めています。