フローチャートの書き方 プログラムの開始と終わり 処理の流れの表記 ( アルゴリズム ) 逐次型 ( 直線型 ) 分岐型 ( 開始 ) 処理 1 条件 条件 処理 2 の処理 の処理 の処理 ( 終了 ) 処理 3 プログラムや人間の判断などのアルゴリズムは基本的に 逐次型 分岐型 ループ型の組み合

Similar documents
マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

Microsoft Word - Scratch編_プログラム見本-Web用.docx

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

2007年度版

Microsoft PowerPoint - lego1.ppt [互換モード]

目次 1. フラッシュ型スライド教材を作ってみよう 2 2. 文字が順に消えていくスライド教材を作ってみよう 5 3. 文字が順に現れるスライド教材を作ってみよう 8 4. 音声とともに文字の色が変わるスライド教材を作ってみよう スライド教材を種類別にまとめてみよう 14 * 実践事例集

第32回_プレゼン資料_菅原(Unityはじめるよ~上半身だけ動かす2~)

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

Microsoft Word - CygwinでPython.docx

<4D F736F F F696E74202D208DC C A B B82CC8DEC82E895FB2E707074>

パソコンの中を見よう

Scratch で簡単プログラミング 作例 : ペンギンさんのごあいさつ ( 筆者作成 ) 作例 :Bezier Game -

スモール Small ベーシック Basic チュートリアル ヒントとコツ きわなま極めつきのヒント : 怠けよう! タイプをはじめたら Tab か Enter キーを押してコードを完成 矢印キーを使ってメソッドをスクロール 右側にあるメソッドの説明を見る Small Basic を入手する Win

初めてのプログラミング

Microsoft Word - hatenabox doc

Microsoft Word - tutorial8-10.docx

Microsoft Word - H1369 インターネット1(IE版)(T)

��8��

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Delphi/400でFlash動画の実装

レコードとオブジェクト

1/2

yamato_scratch

prg.indb

目次 1. アニメーションの軌跡の概要と仕組み 3 2. パノラマ写真にアニメーションの軌跡を設定 まとめ 課題にチャレンジ 19 レッスン内容 アニメーションの軌跡の概要と仕組み アニメーションの軌跡とは スライドに配置したオブジェクト ( テキストや図形 画像など ) を

情報C 実習プリント

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

Outlook2010 の メール 連絡先 に関連する内容を解説します 注意 :Outlook2007 と Outlook2010 では 基本操作 基本画面が違うため この資料では Outlook2010 のみで参考にしてください Outlook2010 の画面構成について... 2 メールについて

スタートアップガイド_応用編

C#の基本

Microsoft PowerPoint ppt

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

見た目 スプライトの向きを示す 0 の場合は上 90 の場合は右 180 の場合は下 -90 の場合は左スプライトの見た目を 異なるコスチュームに切り替えるスプライトのコスチュームを コスチュームリストの次のものに変える ( 次がリストの最後だった場合 最初に戻る ) スプライトのふきだしを 指定さ

3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

PowerPoint プレゼンテーション

Microsoft Word - VBA基礎(6).docx

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft Word - Mac版 Eclipseの導入と設定.docx

Microsoft Word - ミクロ経済学02-01費用関数.doc

Microsoft Word - 資料5-1_資料掲載_ver docx

Microsoft Word - Galopマニュアル doc

クイック操作シート

スライド 1

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

情報システム設計論II ユーザインタフェース(1)

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Slide

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

テキストファイルの入出力1

<4D F736F F D E815B836C F898B89914F95D C5816A>

学芸カフェテリア講座 ゲーム作りで学ぶ 先生のための Scratch 入門講座 ~ プログラミング必修化を楽しく先取りしよう!~ ( 画像はプログラミングの例です この講座で作成するプログラムとは異なります ) 東京学芸大学気象学研究室佐藤尚毅

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

どうして LINE は無料で使えるの? - あなたのパーソナル / 行動データは誰が見ているか - LINE ってタダで電話できたりメールできたり すごいよな! きっと LINE って おお金持ちが道楽でやっているんだよ 本スライドは 高校 情報科 の教材 指導案作ってみました


PSCHG000.PS

Microsoft Word - Python利用環境構築ガイド_ docx

サインイン 最初にサインインを行います サインインしたときとそうでないときでは 表示やメニューなどが少し違います アカウントがない場合 最初にアカウントを作りましょう サインインしていないとき サインインしたとき メッセージ 更新情報とお知らせがとどきます

Microsoft Word - ファイル管理Win10 (1版)

PowerPoint プレゼンテーション

A&D社製データロガーを初めてお使いになる方へ

スライド 1

計算機アーキテクチャ

Gmail取得方法

(2) 起動 起動は通常の Windows アプリケーションと同じです Windows の版にもよりますが 最初の起動時は警告画面が出ますので ブロックを解除してください 詳細情報 をクリックすると画面が次のように変わるので 実行 を選びます これで Shogi3 の画面が表示されます

第 1 章 JavaScript/jQuery JavaScript とは JavaScript( ジャバスクリプト ) は HTML や CSS また PHP などでは実現することの難しい さまざまな効果を Web ページ上で実現できるスクリプト言語です 一時期 Web ページ作成に

LINE

Microsoft PowerPoint - prog03.ppt

第21章 表計算

Wordの学習

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

メソッドのまとめ

メールのハンドリングを 効率化しよう!

CodeGear Developer Camp


GEC-Java

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

1. if~ 1.1. 確認を促す まずは簡単な分岐プログラムを作ってみましょう 以下はそのフローチャートです 開始 charc よろしいですか? (y/n) 変数 c の値が 'y' と等しいかどうか c c='y' Yes よろしいですね No 終了 1: 2: 3: 4: 5: 6: 7: 8

改定日 内容 平成 27 年 3 月 2 日 初版作成 平成 28 年 3 月 28 日 第 1 版 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日 平成 年 月 日

OHP シートの作成 OHP でプレゼンテーションをする際に必要な OHP シートを作成できます 配布資料の作成プレゼンテーションの参加者に配布する資料を簡単に作成できます 参加者はメモ等この資料に書き込むことができ 理解を深めることができます 発表者用資料の作成プレゼンテーション中に発表者が参考に

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

こんにちは! ふっさんです 今回は 時間で数万円を 今 稼ぐ方法をレポートにまとめたので公開します 僕がこのレポートを作った理由は 多くの人が抱える 2 つの悩みを解決するためです. 稼げる自信がなくて 不安です 2. 教材などを買って学びたいが お金を捻出するのが難しいです というものです まず

PowerPoint プレゼンテーション

Microsoft Word - Sgs_Man.doc

目次 1.CALS システム利用から完了までの流れ 2 2. 納品データの登録 書類の提出 決裁 納品物を作る 5 3. 納品情報の入力 案件基本情報 書類納品情報 写真 図面等の納品情報 電子納品媒体作成 一括

キャビネットの確認 キャビネットの確認 登録権または参照権があるキャビネットでは キャビネットの登録データを確認できます 各利用者の権限は 管理者によって設定されます キャビネットとファイル送受信の違い それぞれの特徴を確認し お客様のニーズに合わせて利用してください ファイル送受信の操作方法 ファ

Microsoft Word - VBA基礎(2).docx

情報システム設計論II ユーザインタフェース(1)

Windows2000/XPインストール手順

(Microsoft Word - \203X\203i\203C\203v\223\374\216D.doc)

LINE

Another Activity オブジェクトは生成されてもいないのである これは 後述の onpause メソッ ドの説明からも明らかである 翻訳 : A の onpause から返ってこない限り B は create されない ため ここで長い処理は行ってはならない 実際にトレースをおこなってみ



DX-PC55_−ç(0)-A


( ) ver.2015_01 2

untitled

Transcription:

自動販売機をプログラミングする - フローチャートやいろいろな設計 - 自動販売機って どこにでもあって便利だよね 自動販売機も中に入っているコンピュータで動作しています 今回の授業では どのようなプログラムが動いているか考えてみましょう 今回は Scratch で自動販売機のプログラムを作って プログラムはどのように設計するか見ていきましょう プログラムなどは 高校 情報科 の教材 指導案作ってみました http://www.beyondbb.jp/ Zip の教材内に入っています Ver 1.0 2017/02/15 Go Ota, 2014 1.1 一番簡単な自動販売機 開始 100 円 金額 0000 簡単な仕組みの自動販売機 100 円玉を 1 枚だけ入れられる 商品は 1 つだけ 商品切れランプは無し お金返却ボタンは無し つり銭切れランプは無し お金を入れて一定時間たったら自動的にお金返却は無し お金が投入される 金額を 100 円にする 飲み物ボタンが押される まず 始めの一番簡単な自動販売機について考えてみましょう お金を入れることと製品のボタンを押すことしかできません このプログラムの動作をフローチャートで表すと右の図のようになります お金が 100 円入っている 飲み物缶を出す 2

フローチャートの書き方 プログラムの開始と終わり 処理の流れの表記 ( アルゴリズム ) 逐次型 ( 直線型 ) 分岐型 ( 開始 ) 処理 1 条件 条件 処理 2 の処理 の処理 の処理 ( 終了 ) 処理 3 プログラムや人間の判断などのアルゴリズムは基本的に 逐次型 分岐型 ループ型の組み合わせで表現できますね ループの処理 ループ型 ( 繰返し型 ) ループの処理 終了条件 終了条件 ループの処理 無限ループ後判断ループ前判断ループ 3 演習 : 一番簡単な自動販売機を作ってみよう では 一番簡単な自動販売機を Scratch で作ってみましょう こんな簡単なしくみでも ちゃんとした見栄えを考えると大変かもしれませんね 4

プログラムサンプル 1A [Vending01A] 自動販売機の動きだけをテキストでやってみました 5 プログラムサンプル 1B [Vending01B] 自動販売機のグラフィクを少しだけ追加してみました 6

プログラムサンプル 1C [Vending01C] お金を入れたり ボタンを押したりできるようにすると 少しプログラム自体も複雑になってきます 7 ちょっとだけ複雑な自動販売機 100 円 売り切れ 金額 0000 もう少し複雑な自動販売機を考えてみましょう 売切れランプを追加します フローチャートも少し複雑になりますね ポイントは 開始直後と 飲み物缶を出す の後の二か所に 商品の確認をして売切れランプの処理が入ることにあります 初めに品物が無い場合もありますから 簡単な仕組みの自動販売機 100 円玉を 1 枚だけ入れられる 商品は 1 つだけ 商品切れランプは有り お金返却ボタンは無し つり銭切れランプは無し お金を入れて一定時間たったら自動的にお金返却無し 開始 お金が投入される 金額を100 円にする 商品がある 売切れランプ On 飲み物ボタンが押される お金が100 円入っている 飲み物缶を出す 商品がある 売切れランプ On 8

演習 : もうちょっとだけ複雑な自動販売機 120 円返却売り切れ金額 0000 簡単な仕組みの自動販売機 100 円玉を 1 枚だけ入れられる 商品は 1 つだけ 商品切れランプは有り お金返却ボタンは有り つり銭切れランプは無し お金を入れて一定時間たったら自動的にお金返却無し もう少し複雑な自動販売機を考えてみましょう お金返却ボタンを追加します この自動販売機のプログラムを作ってみてください ( 早く終わった人は 複数の缶がある場合も作ってみてください ) 今までやったフローチャートにとらわれずに いろいろな方法でプログラムができると思いますので知恵を絞ってみてください 9 作ったプログラムを見てみよう A~E まであるよ どんなプログラムができましたか? 自動販売機といっても いろいろな方法でプログラミングできます そのいくつかを その設計図といっしょに見ていきましょう 10

A: 単純なフローチャートをもとにしたプログラム 開始商品がある 売切れランプOn お金が投入される 金額をxxx 円にする 返却ボタンの追加では お金が現在投入されたとか 金額表示を 0 円にするなどの処理も必要ですね このぐらいになるとフローチャートもごちゃごちゃして判りにくくなりますね 返却ボタンが押された お金が投入されている お金を返却する金額を0 円にする 飲み物ボタンが押される お金が100 円入っている 飲み物缶を出す 商品がある 売切れランプOn 11 プログラムサンプル 2A [Vending02A] フローチャートをもとにしたプログラムです これもかなりぐちゃぐちゃしてきましたね 12

B/C サブルーチンでフローチャートをすっきりせたプログラム メインルーチンサブルーチン 1 サブルーチン 2 開始 売切れランプの処理 返却ボタンの処理 売切れランプの処理お金が投入される 金額をxxx 円にする 商品がある 売切れランプ On 戻る 返却ボタンが押された お金が投入されている お金を返却する 返却ボタンの処理 サブルーチンの終わりは 戻る 金額を 0 円にする 飲み物ボタンが押される お金が100 円入っている 飲み物缶を出す 売切れランプの処理 フローチャートが複雑になってきたら サブルーチンを使いましょう これは を使って フローチャートを分けることができます サブルーチンに対して 大元のものをメインルーチンと呼びます 戻る 人間は沢山の情報をいっぺんに扱うことができません そこでチャンクという個別の情報の塊にして扱います 13 B/C サブルーチンでもっとフローチャートをすっきり メインルーチン サブルーチン4 サブルーチン3 開始 飲み物ボタンの処理 お金投入の処理 売切れランプの処理お金投入の処理返却ボタンの処理 飲み物ボタンが押される お金が100 円入っている 飲み物缶を出す お金が投入される 金額を xxx 円にする 戻る 売切れランプの処理 飲み物ボタンの処理 戻る サブルーチン 3 つり銭切れを入れた場合 サブルーチンをもっと作るとメインルーチンがもっとすっきりします こうすると この時点の自動販売機のプログラムは 1 つのメインルーチンと 4 つのサブルーチンから構成されます また つり銭切れの機能を入れる時は とりあえず お金の投入にサブルーチンを入れておいて 後で中身を考えることもできます お金投入の処理お金が投入される 金額をxxx 円にするつり銭切れの処理戻る 14

B/C 構造化設計でプログラミング考えてみる 上のモジュールが下のモジュールを利用している 自動販売機 3 つの処理がループになっていることを表す 1 売切れランプの処理をする お金投入後の処理をする 返却ボタンの処理をする 飲み物ボタンの処理する つり銭切れの処理をする 1 1 につながって 売切れランプ を利用 フローチャートはコンピュータのプログラムを設計する一つの手法ですが あまり大きなプログラムには向いていません 現在では多くの設計手法がありますが 構造化設計は古いものですが 手軽に利用できます また現在の設計手法の考え方のベースになっています フローチャートは処理の流れを中心に考えますが 構造化設計はモジュール ( サブルーチン ) の構造や関係を中心に表現します この構造を考えると上図のようにシンプルなものになります 参考図書 : ソフトウェアの複合 / 構造化設計,G.J. マイヤーズ (1978) 15 プログラムサンプル 2B [Vending02B] モジュール ( サブルーチン ) 使ったプログラムです 随分すっきりしたように見えます 16

プログラムサンプル 2C [Vending02C] メッセージで呼ばれる各モジュールは各スプライトのスクリプトを参照してください 同じくモジュール使ったプログラムです モジュールは Scratch の各スプライトに入れて メッセージで呼び出しています 17 D 割り込み処理でプログラムを考えてみる 割り込み処理レジスタ処理 ( ネコ ) 飲み物ボタン缶出し 売切れボタン 入金 金額変更 表示変更 返却 金額変更 表示変更 飲み物選択 金額変更 表示変更 缶出し 表示変更 割り込み処理は多くのコンピュータを内蔵した製品で使用されています ここでは UML のステート図を使って 動作を表現してみました 18

プログラムサンプル 2D [Vending02D] 割り込みの通知をする各モジュールは各スプライトのスクリプトを参照してください 各スプライトをクリックすることで割り込みをメッセージで通知するプログラムです 各イベントの発生に対してのプログラムがすっきりします 19 E オブジェクト指向っぽくプログラミングしてみる 入金 + 入金 (100) 返却 + 入金 (0) - 金額 - 在庫数 缶飲料制御 + 金額変更 () + 在庫数変更 () 売切れボタン + 売り切れボタン変更 () 飲み物ボタン + 飲み物ボタン変更 () 缶出し + 缶出し () 現在多くのプログラムがオブジェクト指向をもとに開発されています オブジェクトは個々のプログラムがある役割を持って それが協働して動くことにより大きな仕事をするものです ここでは Scratch のスクリプトごとに機能をもたせるようにプログラミングしてみました また その動作を UML のオブジェクト図類似したもので表現してみました 20

プログラムサンプル 2E [Vending02E] 飲み物ボタン 缶飲料制御 各スプライトのスクリプトを参照してください 各スプライトごとの役割がはっきりしています 21 自動販売機さん いつもご苦労様です 何気ない自動販売機でも いろいろなプログラムの作り方がありますね 22