情報の授業 アルゴリズムとプログラム(1) Go.Ota.

Slides:



Advertisements
Similar presentations
果物識別 補足資料 1. やりたい事  入力された画像内に映っている果物が何かを自動判 別するプログラムを組むこと 識別器 りんご です.
Advertisements

第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
知能機械工学科 担当:長谷川晶一 TA:新・後藤・ナンバ
配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
VBA H106077 寺沢友宏.
Q q 情報セキュリティ 第6回:2005年5月20日(金) q q.
多重ループ 繰り返し構造:補足事項 第8回目 [6月8日、H.16(‘04)] 本日のメニュー 1)前回の課題について
多重ループ 繰り返し構造:補足事項 第8回目 [6月12日、H.15(‘03)] 本日のメニュー 1)前回の課題について
C言語 配列 2016年 吉田研究室.
情報科学1(G1) 2016年度.
第6章 2重ループ&配列 2重ループと配列をやります.
コンピュータ演習Ⅰ 8月5日(金) 4限目 表を使う.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
情報 第2回:状態遷移 その2.
オブジェクト プログラミング 第1回.
配列(1) 第9回目 [6月15日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題
第7回 条件による繰り返し.
情報処理概論Ⅰ 2007 第4回 2018/11/30 情報処理概論Ⅰ 第4回.
第10回関数 Ⅱ (ローカル変数とスコープ).
プログラミング入門 電卓を作ろう・パートIV!!.
前回の練習問題.
第7回 条件による繰り返し.
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
・タイプ別のフレームワーク ・デジタルTips(小技テクニック情報)
プログラミング 4 整列アルゴリズム.
情報 第1回:状態遷移 その1.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
11.再帰と繰り返しの回数.
ex-8. 平均と標準偏差 (Excel 実習シリーズ)
Python入門(1) Ver 1.0 (2019/2/24) (Scratchでプログラミングできる人向けです) ・どうしてPython
アルゴリズムとデータ構造 2011年7月8日課題の復習
シミュレーション論Ⅰ 第7回 シミュレーションの構築と実施.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
ガイダンス 電子計算機 電気工学科 山本昌志 1E
情報の授業 アプリ等を活用した勉強方法の改善(計画) ・R-PDCAサイクル ・アプリを活用した勉強方法の改善 計画書
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
精密工学科プログラミング基礎 第7回資料 (11/27実施)
第5章 まだまだ続く反復処理!! ~繰り返しその2 for~
1~15までの数字の中から、 1個の数字を選び、覚えて下さい。
情報処理Ⅱ 2006年11月24日(金).
ex-8. 平均と標準偏差 (Excel を演習で学ぶシリーズ)
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
計算の理論 I NFAとDFAの等価性 火曜3校時 大月 美佳 平成16年5月18日 佐賀大学理工学部知能情報システム学科.
データ構造とアルゴリズム論 第9章 連結リスト
Q q 情報セキュリティ 第8回:2004年5月28日(金) の補足 q q.
より分かりやすい ユースケースモデルを作る
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
プログラミング入門2 第5回 配列 変数宣言、初期化について
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
アルゴリズム ~すべてのプログラムの基礎~.
プログラミング論 バイナリーサーチ 1.
情報処理技法(Javaプログラミング)1 第8回 同じ処理を何回も繰り返すには?
Presentation transcript:

 情報の授業 アルゴリズムとプログラム(1) Go.Ota

今度の授業(単元)の概要 授業の本来の内容に戻ります(1学期の残りの授業) プログラム構造とフローチャートの理解 Scratchを使用したプログラムの基本要素の組み込み ・各自のペースで進めてください。 ・試験内容は、1.の範囲で出します。 注意: プログラムを作る場合は、作り始めに「新規」又は「コピーの保存」を使って別のプログラムにしてください。

アルゴリズムは役に立つ アルゴリズム = 問題解決や行動の手順 例: お昼のパンの選択 1. がっつり食べたい そうならば 揚げ物系のパン 例: お昼のパンの選択 1. がっつり食べたい  そうならば 揚げ物系のパン   1.2 肉っぽいのがいいか    そうならば トンカツパン    そうでなければ コロッケサンド   そうでないなら スィーツ系のパン 1.3 油っこいのも平気    そうならば ツイスト    そうだないならば チョコタルト

フローチャートはアルゴリズムを視覚化する手法 開始 No がっつり Yes No No 肉 油OK Yes Yes カツサンド コロッケサンド ツイスト チョコタルト 終了

プログラム構造とフローチャートの理解 ・教科書p.8-13第1章 構造化定理/フローチャートを 理解してください。 ・以下の作業を理解できた/作成できたを確認するチェックリストがあります。 ◎スライドとサンプルプログラム ・変数とScratchでの利用 ・自動販売機とプログラムの構造/フローチャート ・単純な1からnの合計 ・リストを使った1からnまでの合計(フローチャート) ◎応用:素数プログラムの理解 ・単純な方法での素数の求め方(フローチャート有) ・リストを使った素数を求めるプログラム

チェックリストの使い方 ・スライドNo. 本日(6/14)日のスライド内の番号 ・理解 :スライドの内容を見て自分なりにわかったらチェック ・解析 : スタジオ内のプログラムの意味がわかったらチェック ・開発 : スライドの課題のプログラムを作ったらチェック

変数とScratchでの利用 X = X +1 (X X + 1のイメージ) X = 1 変数への代入は普通の数学の=とは違う意味なのでイメージを示してみました。

プログラムの構造/フローチャート 逐次構造(直線型) 選択構造:分岐 処理2 処理1 処理3 条件 Yesの処理 Yes No No 条件 Yes Yesの処理 Noの処理 プログラムや人間の判断などのアルゴリズムは基本的に、逐次、選択:分岐、繰り返し(ループ)の組み合わせで表現できます。 繰り返し構造(ループ) 終了条件 ループの処理 No Yes 終了条件 ループの処理 No Yes ループの処理 無限繰り返し型 後判定型 前判定型

フローチャートとScratchの対応 分岐 No No 条件 条件 Yes Yes 処理 処理1 処理2 繰り返し:回数指定 (カウンター) = 0 繰り返し:終了条件指定 (カウンター) 1づつ変える 終了条件 ループの処理 No Yes (カウンタ) <= (回数) No Yes 処理

一番簡単な自動販売機 簡単な仕組みの自動販売機 ・100円玉を1枚だけ入れられる ・商品は1つだけ ・商品切れランプは無し ・お金返却ボタンは無し ・つり銭切れランプは無し ・お金を入れて一定時間たったら自動的にお金返却は無し 100円 金額 0000  まず、始めの一番簡単な自動販売機について考えてみましょう。お金を入れることと製品のボタンを押すことしかできません。  このプログラムの動作をフローチャートとサンプルプログラムを次スライドに示します。

サンプルプログラム 「自動販売機01」(スタジオ内) サンプルプログラム 「自動販売機01」(スタジオ内) 開始 お金が 投入される No Yes 金額を100円にする 飲み物ボタン が押される No Yes No お金が100円 入っている Yes 飲み物缶を出す

チャレンジ: 正三角形の判断 a, b, cの3個の三辺の値を入力して、すべての値が同じ場合に、「正三角形」、そうでない場合は「正三角形じゃない」と表示するプログラムを作ってみよう。 フローチャートは作っても、作らなくてもいいです。 ・a,b,cは1以上の数を入力する前提で作っていいです。 解答サンプルプログラムは 正三角形の判断(スタジオ内)

単純な1からnの合計 いろいろ方法で,1からnまでの合計を計算するプログラムです 「1から5の合計」(スタジオ内) ここではnを5の場合を想定 開始 X = 0 カウンター = 1 カウンター>5 Yes No X = X + カウンター カウンター = カウンター+1 終了

チャレンジ:単純な2からnまでの偶数の合計 nの値を入力して、2からn以下の偶数の合計を求めるプログラムを作成してください。 例: n = 6の場合、 2+4+6 n = 9の場合、 2+4+6+8 解答サンプルプログラムは 偶数の合計(スタジオ内)

配列/リストの資料 6/20 スライド21に「変数と配列/リスト」追加しました。 配列/リストの添え字(インデックス)に変数を使用する場合 配列/リストの資料  6/20 スライド21に「変数と配列/リスト」追加しました。 配列/リストの添え字(インデックス)に変数を使用する場合 ◎ まず、教科書P56で配列を理解してください。 ◎ 以下のサンプルプログラムの中身を見て、添え字(インデックス)に変数を使用することを理解してください。 スタジオ内に「初歩のリスト」があります。

1からの合計(リスト版)フローチャート 「1からの合計」(スタジオ内)を解読してみてください。 合計計算 開始 配列セット(最後) 合計 = 0 最後 <- (入力) 配列 <- (すべて削除) 数値i = 1 数値i = 1 配列セット(最後) (カウンター) = 0 (カウンター) = 0 (タイマー) = 0 (カウンター) 1づつ変える (カウンター) 1づつ変える 合計計算 No No (カウンタ) <= 最大 (カウンタ) <= 配列の長さ タイム = (タイマー) Yes Yes 配列に数値iを追加 合計=合計+配列(数値i) 数値i = 数値i + 1 数値i = 数値i + 1 戻る 戻る

素数を求めるプログラム(割り算)を解読してください。 素数(割り算方式)(スタジオ内)

課題1: 素数を求めるプログラム スタジオ「アルゴリズムとプログラム」2018(情報)内に 「1からの合計」というプログラムがあります。これを参考に素数を求めるプログラムを作成してください。

課題1: 素数を求めるプログラム(消去法) 基本的な考え方 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 ・

補足:フローチャートとScratchの対応 (回数) 繰り返し:回数指定 (カウンター) = 0 (カウンタ) <= (回数) 処理 Yes (カウンター) 1づつ変える No Scratchでは(カウンター)はシステムが使い見えません。

補足:変数と配列/リスト スタジオに「変数とリスト」というプログラムがあります。これを参考に、この二つの違いを理解/解析してください。

補足:素数を求めるプログラム(消去法) スタジオに「素数ヒント(リスト版) 」というプログラムがあります。 2の倍数だけリストに印(0にする)プログラムです。参考にしてください。

補足:素数を求めるプログラム(消去法) ほぼ完成版のフローチャートの一つの例を示します。 数列セットのフローチャートは省略 開始 「最後」を入力 倍数消去 数列セット(最後) 倍= 2 数列I = 2 掛ける数 =配列(数列I) Yes 数列I > 最後 掛ける数 * 倍 > 最後 Yes No 配列(数列I) > 0 No No 配列(掛ける数 * 倍) = 0 Yes 倍数消去 倍= 倍 + 1 数列I = 数列I + 1 終了 戻る

自己チェックシート状態記入(情報科) https://goo.gl/forms/hETfNAHZgGJiUITv1 ・試験内容の検討のため、自己チェックシートのどこまで進捗したか確認します。 ・どこまで、実施したかチェックしてください。この進捗の状況自体は成績に関係ありません。 ・加点部分のプログラムを作成した人は、そのプロジェクトIDを記入してください。 https://goo.gl/forms/hETfNAHZgGJiUITv1