カテゴリー: プログラミング

  • Arduino言語におけるswitch case 構文

    Arduino言語におけるswitch case 構文

    Arduinoにおいて、さまざまな条件分けをしたいとき、if文で構成することがほとんどだと思います。
    しかし、条件分岐が10とか20とか(あんまりないとは思いますが)あった時はどうしましょう。

    C/C++言語にはswitch文があり、C/C++言語をベースとしているArduino言語も同じ構文が使えます。

    以下にプログラム例を記載します。

    switch (var) {
      case 1:
        // varが1のときに実行する処理
        break;
      case 2:
        // varが1のときに実行する処理
        break;
      default: 
        // どのcaseラベルにも一致しないときに実行する処理
        // defaultは、省略可能
      }

    varが変数であり、varが1の時、case 1の処理が実行されます。
    varが2の時、case 2の処理が実行されます。
    varが1, 2以外の時は、defaultの処理が実行されます。

    case 1, case 2の処理後の “break;”はそれぞれのcaseの処理が終了したということを示す文です。
    この文がないと、エラーを起こしたりします。

    defaultの処理において、break; が必要ないのは、defaultは最後の条件分岐になり、最後の処理というのが明白なためです。
    ただ、書いてはいけないわけではなく、書いても問題なくプログラムは動きます。

    また、default: 自体も省略することができます。
    if else構文のelseの省略のような感覚です。

    個人的にはswitch case構文はif構文よりもプログラムを見たときのスッキリさはあると思います。
    そこまで難しいコードでもないので、ぜひ使ってみてください。

  • 詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    プログラミングの勉強を始めるにあたって、いったい何から始めるかっていうのが最初の関門だと思います。
    ネットで調べたりしたはいいけど、そこからじゃあどうしましょう。プログラムを書くソフトは一体どうしたらいいの?

    僕自身それでかなり困りました。

    プログラムを書くにあたって書くためのツールが大きく二つあります。
    一つは対話型であり、一つは文章型です。(ここでは分かりやすく。正しいのかはイマイチわからないですが…)

    対話型は文章を一つ打ったら、一つ返答が返ってくる
    という具合に一文一文プログラムを書いて実行してを繰り返します。

    文章型は作文をしたらその感想が返ってくる
    というように、一気にプログラムを実行するイメージです。
    いわゆる想像するプログラムは文章型であり、訳のわからないコードがたくさん並んでいるように見えるかと思います。

    ただ、文章型のプログラムをしようとした際にじゃあ一体どのソフトでやるのか?というのが困ります。

    それも、プログラミングを学ぶ初級では対話型を行うことが多いが、中級になると急に文章のコードを書くようになり、何を使って書くかはあまり明記されなかったり、本によって全く違ったりします。

    対話型はコマンドプロントであったり、ターミナルなどの、もともとパソコン本体に既存のもので
    “Python”と打ってから始めます。

    しかし文章型のプログラムはどれで書くのでしょうか。

    文章型のプログラムの多くは、IDE(総合開発環境)によって書くことがほとんどです。(困ったときには”Python IDE おすすめ”で検索するとたくさん記事が出てきます。)

    僕の文章型のプログラムを書くときに普段使っているのは
    Jupyter NotebookとPyCharmです。
    (Jupyter はジュピターと読む派と、ジュパイターと読む派がいるみたいです。)

    統計解析やグラフを書くときはJupyter Notebook、機械とか動かしたり、複雑なプログラムはPyCharmを使います。

    それぞれどんな感じなのかを説明していきたいと思います。

    まずJupyter Notebookについて。
    これはAnacondaをダウンロードすると付随して入ります。
    Jupyter Notebookを起動すると、まずSafariやFirefoxなどのパソコンのブラウザが開きます。

    そして、パソコンのファイル一覧が表示されます。
    そこで目的のフォルダーを開き、右上のほうにあるnewをクリック。
    その後、Python3をクリックすることで下の画像のような画面が開かれます。
    このファイルを保存すると *.ipynbファイル となります。

    一つ一つの塊にプログラムを打ち、上部にあるRUNというボタンをクリックすることによって、各固まりずつプログラムを動かすことができます。

    グラフや統計を行う際に、この一つの塊ずつコードを実行するというのはとても利点となります。
    なので僕はよく利用してます。

    PyCharmは *.py ファイルを開くときに使っています。
    開けるファイルが違うので、注意が必要です。

    PyCharmは他のサイトを参考にしてみてください。
    (まだあんまり使ったことがないので、詳しい使い方に関しては今後の記事で紹介したいと考えています。)

    Anacondaのサイトはこちらから

    Jupyter Notebookのサイトはこちらから

    PyCharmのサイトはこちらから
    ダウンロードはprofessionalではなく、灰色のCommunityのほうが無料で使えるほうです。
    はじめはそちらのダウンロードをおすすめします。

    Jupyter Notebookは最近頻繁につかっているので、僕の学習のメモとして、そしてプログラムを学びたい方向けに今後も更新していきたいと思います。

  • 一か月プログラミングの勉強をしてみての感想

    プログラミングを学習して一番実感するのは、自分が果たしてプログラミングができるようになっているのかどうかわからないということです。

    いままでずっと、プログラミングは英語のようなもので、勉強するにしたがってだんだんと言語のようにすらすらと書けるようになっていくのではないかと考えていました。
    しかし、実際には、そうなっていくような感じはあまりしませんでした。

    プログラミングは必要に迫られたときに勉強する感じであり、逆に言うと使わなければ身につかないんだなと思いました。
    僕自身DeepLabCutによって解析結果が出ましたが、あまりにも膨大なデータなため、それをどうにかしてわかりやすくグラフにする必要性がありました。

    エクセルでもグラフはかけるのでしょうが、膨大なデータであり、エクセルで開くのだけでも非常に時間がかかりました。
    そういったデータを処理し、グラフにするためにpythonを使用しようと決め、勉強しながらプログラムを書くことにしました。

    プログラムを書いてみて、プログラムを書くこと自体はそこまで難しくないと思いましたが、自分のやりたい処理をグーグルで探すことが難しいなと感じました。
    どういう処理をしたいかを考え、それにあうプログラムコードを調べ、入力していくという作業の繰り返しでした。

    これを踏まえ、先に話した言語のようなものではなかったということについて、どちらかというと常に英和辞典をもって話しているような感じであり、どのようなことでもある程度時間をかければできるが、経験によって調べる速さ、プログラムのスマートさが変わっていくのだと感じました。

    また、自分で書いたコードは財産となり、同じような処理を行おうとした際にそれをコピペして少し変えてつかうということが頻繁にあります。

    まだまだプログラミングを始めたばかりで、ミーハーなのでそういうことを語れる身ではないのかもしれませんが、今後始める方の参考になればと思います。