プログラミング食堂

プログラミング食堂

プログラミング初心者・中高生向けにプログラミング・IT・IPA国家試験などの情報を発信します!自作フローチャートを無償で公開・配布しています!

MENU

お品書き(トップ)

プログラミング食堂へようこそ!

この食堂では、自作フローチャートを無償で公開・配布したり、プログラミングの基礎講座など、プログラミングに関するプロジェクトを遂行していきます!

 

f:id:TBSten:20210313165539p:plain

 

 お品書き 

記事を上げてしばらくしたらこちらに載せます。

最新情報はこちらを見てね!

tbsten.hatenablog.com

 

フローチャート

 ゲーム

 アルゴリズム

 

 使い方・利用規約 

フローチャートセットの使い方です。

tbsten.hatenablog.com

 

 フローチャートなどを利用するときは利用規約を必ず確認してください!

tbsten.hatenablog.com

 

 

 クレジット 

 お世話になっているソフトやサイトは下のリンクから!

tbsten.hatenablog.com

 

 

 

 

 

【告知】新たにソフトを開発中です!

ここ最近投稿ができていなくて申し訳ありません...

というのもここ1ヶ月くらいの間、今まで投稿に使っていた時間をあるソフトの開発にフルで注いでいます。

今私が開発しているソフトはその名も「FlowchartBuildExecutor」略して「FBE」です!

FBEの開発イメージ
FBEの開発イメージ

プログラミング食堂ではオリジナル流れ図の作成・配布を軸に活動していますが、今までは

  1. Javaでプログラムを書いて実行できるようにする
  2. 流れ図に置き換える
  3. ブログなどに投稿

といった流れで流れ図を作成してきました。しかしFBEを利用することで、直接流れ図を作成して、実行できるようにすることで、

  • 作業時間の短縮ができる

  • 自分(TBSten)以外の人でも比較的手軽に流れ図が作成でき

などのメリットがあるので開発を決めました。

趣味でソフトの開発は数は少ないですがしたことがあったので、その時の経験を生かして現在制作中です。

開発環境は以下の通りです。

とりあえずはWindows , Mac で動作するように開発していますが、その後の方針によってはスマホアプリ版も作成するかもしれません。

ソースコード・(ちょっとした)設計書を公開しているので興味がある方は是非ご覧ください!(ソースコードは結構な頻度で更新しています!)

開発が完了したらブログの方でもご報告させていただくので、今しばらくお待ちください!

github github.com

設計

docs.google.com

【TBStenの独り言】表現って何だろ~プログラミングは芸術~

【TBStenの独り言】シリーズは完全にTBSten得で、ただ単に話したい事を話すだけのクソつまらないシリーズです。たぶん読むのも途中からめんどくさくなるので適当に読み飛ばしてもらってOK! 第3回は、「表現とは」です。

 

表現とは

 

情報処理を学び始めると、「〇ビットで表現できる色の数は...」とか出てくると思うのですが、表現とはいったいどういう意味なのでしょうか?筆者の見解を話していこうと思います。

 

みなさんは学生の時、英単語をどのように覚えていましたか?私は特に単語を覚えるのが得意だったというわけではないのですが、英語を学ぶ上で気づいたことがあります。例えば、「りんごは英語でapple」といいますが、わたしはこうは覚えるべきではないと思っています。それが何故か知るためには、そもそも言語とは何か、ということを考えていきます。

 

さきほどの例で考えてみましょう。「りんごは英語でapple」と覚えてしまうとします。すると私の脳には「りんご=apple」と記憶してしまいます。

 

f:id:TBSten:20210429010346p:plain

 

私は、上のようにではなく、下の図のようにイメージします。

 

f:id:TBSten:20210429010605p:plain

(読者の方の中には「木構造みたいだな―」と思われる方がいらっしゃるかもしれません笑)


「りんご=apple」ではなく、「りんご=よく食べる赤い果物=apple」と言葉と言葉の間に「そのもののイメージ」や「実際にどのようなものなのか」・「どのような感情・考え方・もの・人なのか」といったものを挟んで想像します。これをこの記事では「イメージ」と呼ぶことにしましょう。

 

言葉を理解する際に、イメージをわざわざ挟むのは、「言葉とはイメージを文字や声で表現するためのツール」だと考えているからです。もともと人以外のすべての動物には言葉というものがありません。ですが、だからといって彼ら動物に感情が無い訳ではありません。お腹はすくし、眠たくもなる。人と動物が違うのはその感情を形のあるものに変えれるかどうかです。感情を形あるものに変えるためのツールが言葉・言語というわけです。

 

感情を伝えるために言語があります。ですが、その言語は1つではありません。日本には日本語、アメリカには英語といったように、人によって使う言語がたくさんあります。ですがどれも元々は感情を表したいがために使っていたもの。ですので言葉は本来感情を表すためだけにあるといっても過言ではないといえます。

 

appleという英単語を覚えるために「apple=りんご」と覚えてしまっては、感情を表すためだけにある言葉を、感情ではなく、違う言葉と結びつけてしまっているのです。これは言葉の本質を見失っており、ナンセンスだと思います。これが私が「りんご=よく食べる赤い果物=apple」と英語を覚えていた理由です。

 

ところで全く同じことがコンピュータにおいても言えます。日本語と英語であれば「赤=りんごや信号で止まれの色=red」と考えるところを日本語と機械語(コンピュータの言葉)であれば「赤=りんごや信号で止まれの色=00110010」と考えるわけです。

f:id:TBSten:20210429012753p:plain

 

上のように言語が違うものの間(日本人とアメリカ人、日本人とコンピュータなど)で「イメージ」・感情・伝えたい何かを伝えるために、「イメージ」→「言葉」と変換をします。これが今回のテーマである表現だと思います。

 

そして、「イメージ」がどの言葉に変換されるかは、言語によって異なるわけです。つまり日本語の赤がパソコンの機械語で「00110010」に変換されることもあれば、スマホ機械語で「01010000」に変換されることもあるわけです。これを表現の仕方が違うと言ったりします。

 

プログラマとはいわば、機械に伝えたい「イメージ」をそれ専用の言語で表現する人と言えそうです。

 

表現は楽しい

 人ははるか昔から自分の感情や「イメージ」を形あるものに変えることが大好きな生き物です。音楽や美術はその最たる例でしょう。自分の中にある感情を形ある言葉・メロディ・絵に載せているわけです。古来よりそれらを受け継ぎ、生活の娯楽として使ってきました。

 

私はそのような音楽や美術の仲間としてプログラミングがあると思っています。(心の中にある)機械にやってほしいことを専用の言語で表現することがプログラミングなので、「イメージ」を形あるものに変えることに当てはまるのではないでしょうか?

 

あなたの中の「こんなことを書いたらどう動くだろう?」「こういう風なゲームを作りたい」というポジティブな感情は、心の中にある「イメージ」を形あるソースコードに変えることを心の底から楽しんでいる証拠です。そんな自分に気づいたら、心の底からほめてあげましょう!

 

こんなどうでもいい話を最後まで読んでくれてありがとうございます! 良かったら☆スター☆を押してね!

【フローチャート】チェーンメイズ

f:id:TBSten:20210423232711p:plain

今回はチェーンメイズを作りました!

チェーンメイズはマップ上の数字を集めて、ゴールを目指す、TBStenのオリジナルのゲームです!

続きを読む

【フローチャート】マンカラ

f:id:TBSten:20210413003530p:plain

今回は世界最古のボードゲームの一つである「マンカラ」を作りました!

昔何かの大会の流れ図でチェスのクイーン問題(?)が出されたのを思い出して、ボードゲームでネタ探ししていたらちょうどいいお題を見つけました。余りの使い方がキモになる流れ図に仕上がりました!

続きを読む

【フローチャート】組み合わせ問題

f:id:TBSten:20210410232953p:plain

今回は組み合わせ問題を作りました!

とある遊園地での出来事、「どのアトラクションに乗ればいいかが分かんない!」今回のプログラムはそんなときに使うプログラムです(意味不明)。

与えられたものの中からいくつか取り出し、条件にあう最適なものを取り出す、といった処理になっています。そのために全パターンを試していくといった処理があります。

【流れ図】

フローチャートセット

↓↓↓下のリンクからダウンロード↓↓↓
Amusement.zip - Google ドライブ


コメント

全ての組み合わせを試していくという処理は実は2種類の方法で実装できます。関数の再帰を利用した方法(今回はこちら)と、繰り返しをめちゃくちゃ使う方法です。後者は繰り返しが何重にもなるので、前者の方が優れた方法といえそうです。

ある日似たような問題を考えた時に、自分ははじめ繰り返しを何重にも重ねる方法しか思いつきませんでした笑笑。地獄の10重ループは今でも覚えています。。。

アドバイス

問題にするには結構な良問なんじゃないでしょうか。例えば問題中には「maxHappinessという配列の中の数を合計する」といった、変数・配列の名前には沿わない処理が出てきたり、組み合わせを求めるためのloop関数の引数は要チェックです。ぜひ参考にどうぞ!!

フローチャートセットについて

この記事ではフローチャートを掲載するだけでなく、実際にゲームとして遊べるように、Java言語で作成したプログラムを、フローチャートの画像とともに配布しています。記事のリンクをクリックするとGoogleドライブが開くので、画面上側(たぶん)のダウンロードボタンを押してダウンロードしてください。ゲームの起動方法などはReadMe.txtファイルを参照してください。利用規約については以下ページをご覧ください。

当ブログが配布するコンテンツの利用規約について - プログラミング食堂

何か質問があればコメントや連絡してください!

今日の余談

高校時代、先生にJavaで全組み合わせを求める問題を出されたことがあって、下みたいにただひたすらにfor文を重ねてたのを覚えています。

for(int a = 0;a < 10;a++){
  for(int b = 0;b < 10;b++){
    for(int c = 0;c < 10;c++){
      for(int d = 0;d < 10;d++){
        for(int e = 0;e < 10;e++){
          : : :
          : : :
          : : :
        }
      }
    }
  }
}

こんな読みにくいコード、皆さんは書かないようにしてくださいね。。。笑

作成者

TBSten(当記事管理者)

この記事が参考になったらぜひ高評価☆よろしくお願いします!

フローチャートセットがアップデートされました!

今回、フローチャートセットをより使いやすくするために、大幅に変更を加えました!

f:id:TBSten:20210401210859p:plain
新しいフローチャートセット

具体的には

  • 一部のファイルの名前を「flow」に

  • 全てにナビゲーションページ「ステーション.html」を追加

新コンテンツ「ステーション.html」は、HTML形式(ダブルクリックするとブラウザで閲覧できる)ファイルです。

フローチャートセットの実行の仕方や改造方法などを解説しています。

またソースコードの内容は特に変わっていません。

今後、過去に投稿した「使い方」の記事もこのバージョンに合わせていくので少々お待ちください。

まずはご報告までに。

【フローチャート】【ヨビノリ】ダイクストラのアルゴリズム

f:id:TBSten:20210331022231p:plain

今回はダイクストラアルゴリズムです!

今回が初の有名アルゴリズム編です!第1回は経路探索のアルゴリズムダイクストラアルゴリズムです!場所の情報から最適な経路を探すことができるアルゴリズムです!

今回は以下の動画を参考にさせていただきました!

youtu.be

ディズニーランドなんて聞いたことないですね、勉強になりました(すっとぼけ)!

続きを読む