高校情報Ⅰ学習塾・共通テスト対策講座/プログラミング概要とアルゴリズム(フローチャート)/Python・JavaScript
高校情報1 教科書・参考書・問題集・プログラミング・共通テスト
高等学校 情報Ⅰ(情報1)の動画教科書・参考書・問題集です。授業・プログラミング対策/定期試験対策に利用可能!大学入学共通テスト「情報1」対...
【資料ダウンロード】
PDFの他、パワーポイント、学習指導案 等の原本も無料提供しています。
情報教育の底上げが目的なので、資料を修正して、学校・塾(営利目的含む)の授業等で利用して頂いて問題ありません。私への連絡不要ですが、利用する際には、YouTubeチャンネル・情報Ⅰ動画教科書・IT用語動画辞典を紹介してもらえると嬉しいです。
■PowerPoint資料
https://toppakou.com/info1/download/30_アルゴリズムとプログラミング/30_アルゴリズムとプログラミング.pptx
■簡易学習指導案
https://toppakou.com/info1/download/30_アルゴリズムとプログラミング/【学習指導案】30_アルゴリズムとプログラミング.docx
【文字おこし】
今回はアルゴリズムとプログラミングの概要について説明していきます。
アルゴリズムとプログラミングの関係について説明していきます。
テストの点数が60点以上なら合格、そうでなければ不合格と画面に表示したい場合の例で考えていきます。
まず、自分自身の点数を設定します。
そしてその点数が60点以上か判定します。
当てはまれば合格と表示します。
あてはまならければ不合格と表示します。
このような、問題を解決するための方法や手順をアルゴリズムといいます。
アルゴリズムをコンピュータが実行できる形式であらわしたもの、つまりコンピュータに命令を指示する言語を用いて表したものをプログラムといいます。プログラムは、ソースとやコードなどと言ったりもします。
そして、プログラムを作成することをプログラミングと言います。
このアルゴリズムを視覚的に分かりやすく表現した図をフローチャートといいます。
実際にフローチャートを描きながら記号の説明をしていきます。
画面に
おはよう、こんにちは、おやすみ と順番に表示するフローチャートを描いていきます。
処理と開始と終了には、このような端子と呼ばれる記号を記述しその中に処理を描いていきます。
まず、おはようと表示する処理はこのような記号を使います。
この記号は、表示で画面に表示されるデータなどを中に記述します。
こんにちは、おやすみも同じように記述します。
―――
今度は、先ほど話題に上げたテストの点数が60点以上なら合格、それ以外なら不合格とする処理のフローチャートを描いていきます。
先ほどと同じように開始と終了の端子記号の中に処理を記述していきます。
初めの四角は処理を表す記号で演算等の処理を表します。
xひだりやじるし0はxという変数の箱に80を代入しているという意味になります。
次のひし形は判断を表し条件による分岐の記号になります。
中に条件を記述しxが60点以上かを判定します。
まず60点以上の場合の処理を下に記述します。
今回は合格と画面に表示します。
60点以上でない場合、つまり60点未満の場合は右から線を出して、NOと記述し不合格を画面表示する処理を描きます。
このままだと、処理が途中で途切れてしまうので、矢印線で合流させます。
―――
今度は繰り返し処理のフローチャートについて説明していきます。
変数x に対して 10 を5 回加算をしながらその都度 x の値を表示する処理のフローチャートを説明していきます。
まずは、文書で処理を説明します。
① x =0 とする。
② i = 1,2,3,4,5とカウントを進めながら以下の処理を行う。
xに10を加える。
xの値を表示する。
これをフローチャートにしていきます。
先ほどと同じように開始と終了の端子記号の中に処理を記述していきます。
まずは、xに0を代入します。
そして、繰り返し処理については、このようなループ端という記号を使います。
繰り返したい処理をこの間に描いていきます。
ループを繰り返す条件をループ記号の上の方に記述します。
今回は変数を1からカウントアップしながら5まで進めるということでiひだりやじるし12345と記述します。
5回繰り返す等と簡略化される場合もあります。
変数xに+10した値をもう一度xに代入するという意味で
xひだりやじるしx+10の処理を記述します。
そして、xの値を表示する記号を記述します。
この部分の処理が5回繰り返されます
―――
どんなアルゴリズムでも,処理の流れは,今話した順次,分岐,反復の3つの構造の組み合わせで構成されています。このような処理の流れを制御構造という。
・順次は 1 つ1 つの処理を順番に行うこと
流れ図で表すと、上から下へ記述された順に処理を実行します。。
この図では、処理1 を実行した後に処理2 を実行します。
・分岐は ある条件に応じて異なる処理を実行することです。
流れ図で表すと、条件により処理を選択する。条件が真のときは処理1 を実行し,偽のときは処理2 を実行するという意味になります。
・反復は、ある条件が満たされている間はその処理を繰り返し実行します。
流れ図で表すと、条件が真の間,処理を繰り返し実行し,偽になるとループ終端の下にある
処理を実行します。
―――
今見てもらったフローチャートで使われる記号は今話したもの以外にも沢山ありますが、
代表的なものを簡単に説明します。
★一覧パワーポイント作成
アルゴリズムを表現する方法は他にもいろいろあります。
今度は給湯ポットの処理を状態遷移図と状態遷移表で表していきます。
給湯ポットにはロック解除ボタンと給湯ボタンがあると仮定します。
状態としては
ロック状態、ロック解除状態、給湯状態があります。
ロック解除状態から再度ロック状態にするには、ロック解除ボタンをもう一度押すか、ロック解除から1分後に自動でロック状態になるものとします。。
はじめの状態を、ロック状態として考えてみます。
まず、ロック解除ボタンを押すと、ロック解除状態となります。
給湯ボタンを押すと 給湯状態となります。
給湯ボタンから手を離すとロック解除状態となります。
そして、1分経過するか ロック解除ボタンを押すとロック状態となります。
これを、状態遷移表でも表していきます。
まず、ロック解除ボタンはロック状態だったら、ロック解除となり、ロック解除状態だったらロックとなります。給湯状態からの遷移はありません。
1分経過すると、ロック解除状態だったらロックとなります。他の状態からの遷移はありません。
給湯ボタンを押すと、ロック解除状態なら給湯状態となります。
既に給湯状態なら給湯を継続します。
ロック状態だったら、給湯ボタンを押しても何も起こりません
給湯ボタンから手を離すと 給湯中なら給湯停止となります。
他の状態からの遷移はありません。
―――――
今から皆さんが習おうとしている、PythonやJavaScriptやVBAなどは、プログラミング言語やプログラム言語と言われる言語です。
プログラミング言語は、コンピュータに対して動作手順などを適切に指示するために用いられる人工的に構成された言語体系になります。
以前説明しましたが、コンピュータの世界は0と1のビット列を判定します。この0と1のビット列からなる機械語と呼ばれる命令を実行することによって動作します。
ただ、人間にはこの0と1のビット列の機械語を扱うことは難しいために、人間にとって理解しやすい表現で記述できるプログラミング言語が用いられています。
プログラミング言語で記述されたプログラムはコンパイラやインタプリタと呼ばれるソフトウェアで機械語に変換されます。
プログラミング言語には様々な分類方法がありますが、ここでは代表例を説明します。
★分類例 パワーポイント表
――――
プログラミングの工程は、大きく 設計、記述、実行、試験 に分かれます。
設計では先ほどの処理概要やフローチャートのように日本語で行います。
記述はPythonなどのプログラミング言語で行います。
それを、実際にコンピュータ上で動かします。
その実行結果を検証し問題があれば、何が原因かを考え正しい結果が得られるまで同じ手順を繰り返します。
ソフトウェアの不具合(エラー)のことや
プログラムが意図した動きと違う動作をする原因の総称をバグといい、バグを取り除く作業をデバッグと言います。
実行時や結果の検証において様々なエラーが起こります。
たとえばprint(‘こんにちは’)はPythonでこんにちはと表示しなさいの命令ですが、
このようなスペルミスがあった場合、実行時にエラーになります。
このような、文法上のミスによってコンピュータが機械語に変換できないエラーを構文エラーと言います。
また、プログラム実行中に、何らかの誤りが原因でとまることがあります。
たとえば、 変数aに0が代入されていて 100/a をした場合、実行時に0で割ることができずにエラーとなります。
これを実行時エラーと言います。
プログラム処理が正常終了しても、正しい結果が得られないことがあります。これを論理エラーといいます。
エラーの内容によってプログラムの記述を見直したり、
設計ミスの場合は設計書を修正したあとプログラムを修正する場合もあります。
今回のアルゴリズムとプログラミングの授業は以上になります。
最後までご視聴ありがとうございました。
【解説重要用語】
アルゴリズム、プログラミング、ソース、コード、プログラム、フローチャート、順次、分岐、反復、端子、処理、判断、ループ端、定義済処理、データ、手操作入力、表示、結合子、状態遷移図、状態遷移表、低級言語、高級言語、テキストプログラミング言語、ビジュアルプログラミング言語、コンパイラ型言語、インタプリタ型言語、クライアント型言語、サーバサイド言語、手続き型言語、関数型言語、論理型言語、オブジェクト指向型言語、構文エラー、実行時エラー、論理エラー
★私の目標
「とある男が授業をしてみた」 の葉一さん
https://www.youtube.com/user/toaruotokohaichi
※Google社に招待頂いた、「YouTube教育クリエイターサミット2020」で
葉一さんと文部科学省・Google役員の対談セッションに感銘を受けて、高校情報講座スタートしています。
【参考サイト・参考文献】
文部科学省 「情報Ⅰ」教員研修用教材
https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416756.htm
詳細(情I703 高校情報I Python)|情報|高等学校 教科書・副教材|実教出版 (jikkyo.co.jp) 検定通過版
https://www.jikkyo.co.jp/book/detail/22023322
令和4年度新版教科書「情報Ⅰ」|高等学校 情報|日本文教出版 (nichibun-g.co.jp)検定通過版
https://www.nichibun-g.co.jp/textbooks/joho/2022_joho01_1/textbook/