2022.1.7

  1. 2022-01-07-演習 , (youtube, 限定公開). genwav0.c のコンパイルと実行, 数学アルゴリズムの参考文献.
  2. 仮想マシンで音が鳴らないときは, 仮想マシン右下の音量調整がミュートやレベル0になっていないか確認. それでもだめな時はホストOSへコピーして再生.
  3. Q. エラー "sin に対する定義されていない参照です" の対策
    A. sin, cos を使うプログラムのコンパイルは -lm が必要.
    例.
    cc genwav0.c -lm
    
  4. C 言語で 3/2 と書くと整数計算で 1 になる. 3.0/2 と書くと 1.5.
  5. Q. genwave.c で出力ファイル名を変更したい.
    A.
     fopen("mysound.wav","w")
     fopen("すきな名前.wav","w") 
    と書き換える.
  6. Q. asir でリスト L の長さを知りたい.
    A.
     length(L) 
  7. 統計用の便利なシステムは R や python. mathlibre-2021 に入ってます.
  8. Q. N重 for loopを作りたい.
    A. スピードを気にしないなら次のような方法があります.
    for (I=0; I< M^N; I++) {
      I を M 進数として表現し, 各桁を取り出し, N 個成分を持つベクトル L を作る.
    }
    
    L=[L0,L1,...] は 0 から M-1 を動くので
    for (L0=0 ; L0 <  M; L0++) {
      for (L1=0; L1 < M; L1++) {
        ...
      }
    }
    
    の代用になる.
  9. Q. cc の意味
    A.
     cc genwave.c 
    で C言語のソースファイルより実行可能な機械語のファイル a.out が生成される. 機械語については 11/1 の講義, asirドリル3章を参照.
     ./a.out 
    でその機械語ファイルを実行する. なお a.out でなく自分の決めた名前の機械語ファイルを生成したい時は,
     cc -o 好きな名前 genwave.c 
    と入力.
    ちなみに emacs は機械語ファイル /usr/bin/emacs です. メモ帳はWindows11では機械語ファイル /Windows/notepad.exe です. C言語をマスターするとこのようなアプリを作れるようになります.
  10. Q. 仮想マシンからホストOS へファイルをコピーしたい.
    A. ファイルを仮想マシンからホストOSの Desktop へ drag and drop.
    これがうまく行かない時のその他の方法: (1) web mail で送信. (2) Dropbox に web でつないでファイルを共有. (3) 共有フォルダー を設定 する (中級者以上向け).