復習 プログラミング 1 ( 第 4 回 ) 関数の利用 2 ループ処理 (while 文 ) 1. Chapter の補足 2 1. 関数とローカル変数 2. Chapter 3.1 の補足 1. Iteration, looping ( 反復処理 ) 2. ループ処理の例 実行例 3

Similar documents
プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス集合表現 1. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 2. Chapter 3.4 A Few Words About

復習 プログラミング 1 ( 第 1 回 ) 卓上プログラミングによる開発設計概観 Python インタプリタの起動と逐次処理 変数の利用 1. プログラミングとは何か? 1. プログラムの特徴 2. ( プログラミングにおける 2 大原則 ) 3. ( プログラミングを円滑に進めるための周辺技術

関数や仕様はどう決定したら良いか? 代表的な原則 授業計画 : 第 1 回 第 8 回 KISS 原則 Keep it simple, stupid! 小さく作り 組み合わせる 一つの関数は一つの作業をこなす 各部品 ( 関数 ) をテストする 検証 再現性を意識する DRY 原則 Don t re

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

プログラミング実習I

講習No.8

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

PowerPoint プレゼンテーション

Java講座

Microsoft PowerPoint - ruby_instruction.ppt

文字列操作と正規表現

JavaプログラミングⅠ

ポインタ変数

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

PowerPoint プレゼンテーション

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


Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

プログラミング基礎

Cプログラミング1(再) 第2回

メソッドのまとめ

メソッドのまとめ

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

情報処理演習 B8クラス


プログラミング 1 ( 第 1 回 ) 卓上プログラミングによる開発設計概観 Python インタプリタの起動と逐次処理 変数の利用 1. プログラミングとは何か? 1. プログラムの特徴 2. ( プログラミングにおける2 大原則 ) 3. ( プログラミングを円滑に進めるための周辺技術 ) 2.

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

PowerPoint プレゼンテーション

Prog1_3rd

テキスト処理第 2 回 田中哲産業技術総合研究所情報技術研究部門 akira/textprocess/

本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java, Perl についての質問い答

スライド 1

ポインタ変数

program7app.ppt

数値計算

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

PowerPoint Presentation

講習No.9

Python によるジオプロセシング スクリプト入門

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

Microsoft Word _VBAProg1.docx

gengo1-2

Functional Programming

sinfI2005_VBA.doc

Prog1_2nd

Microsoft Word - 3new.doc

プログラミング入門1

Microsoft PowerPoint - C_Programming(3).pptx

Python によるジオプロセシング スクリプト入門

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi6.ppt

3. 標準入出力

Prog1_10th

4 ソフトウェア工学 Software Engineering 抽象データ型 ABSTRACT DATA TYPE データ抽象 (data abstraction) 目的 : データ構造を ( 実装に依存せずに ) 抽象的に定義 方法 : データにアクセス (read, write) する関数の仕様

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

物質工学科 田中晋

MS-ExcelVBA 基礎 (Visual Basic for Application)

PowerPoint プレゼンテーション

Microsoft PowerPoint - 計算機言語 第7回.ppt

CプログラミングI

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Microsoft PowerPoint - Prog05.ppt

目次

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

PowerPoint プレゼンテーション

cp-7. 配列

kiso2-03.key

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

オートマトンと言語

Microsoft Word - no103.docx

Microsoft PowerPoint - ca ppt [互換モード]

<4D F736F F D2091E63589F182628CBE8CEA8D758DC08E9197BF2E646F6378>

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

PowerPoint プレゼンテーション

演習1


Python Speed Learning

02: 変数と標準入出力

情報処理 Ⅰ 前期 2 単位 年 コンピューター リテラシー 担当教員 飯田千代 ( いいだちよ ) 齋藤真弓 ( さいとうまゆみ ) 宮田雅智 ( みやたまさのり ) 授業の到達目標及びテーマ コンピューターは通信技術の進歩によって 私達の生活に大きな影響を与えている 本講座は 講義と

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - 13Kadai.pptx

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

Microsoft Word - COMP-MATH-2017-FULLTEXT.doc

PowerPoint プレゼンテーション

Microsoft Word - no02.doc

Sort-of-List-Map(A)

Microsoft PowerPoint - kougi2.ppt

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

デジタル表現論・第4回

PowerPoint プレゼンテーション

Microsoft Word - Cプログラミング演習(3)

プログラミング入門1

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

Transcription:

復習 プログラミング 1 ( 第 4 回 ) 関数の利用 2 ループ処理 (while 文 ) 1. Chapter 4.1.1 の補足 2 1. 関数とローカル変数 2. Chapter 3.1 の補足 1. Iteration, looping ( 反復処理 ) 2. ループ処理の例 実行例 3. 3 種類の処理流れ制御 3. 演習 4. 宿題 処理の流れは逐次 条件分岐 反復処理の 3 タイプのみ 関数内の変数と 関数外の変数はスコープが異なることに注意 繰り返させたい処理をブロックで指定し 繰り返し条件を設定 基本道具 型(int,float,str,bool) 演算( 数値 文字列 比較 論理 ) 講義ページ : http://ie.u-ryukyu.ac.jp/~tnal/2017/prog1/ フロー制御(if, while, for) 関数定義(def) 2017 年度 : プログラミング 1 1

プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス集合表現 1. 演習 課題への取り組み方 レポートの書き方のデモ 2. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 3. Chapter 3.4 A Few Words About Using Floats 1. 浮動小数点数の取り扱い 4. 演習 1. 演習 1 4: 初めてのペア プログラミング 2. 演習 5: 数当てゲーム 1 ( 大小ヒント付き ) を実装してみよう 5. 宿題 講義ページ : http://ie.u-ryukyu.ac.jp/~tnal/2017/prog1/ 2017 年度 : プログラミング 1 2

演習 課題への取り組み方 レポートの書き方のデモ 2017 年度 : プログラミング 1 3

取り組み方の例 問題を分割する 分割して分かるところから手を付ける ( 土台を作る ) 分からないところは 更に分割できないか考える それでも分からないなら 分割の仕方や 分割した問題の解き方を訪ねてみよう 分割の仕方 = 問題解決手段の一つ 個々のサブ問題を個別に解く これ以上分割できない 最小の部品なら教科書 授業で習ってるはず -> 該当部分を復習 該当部分が分からないなら 該当部分の探し方を尋ねてみよう 教科書 授業の復習が足りてないかも それらの組み合わせ方を考える 2017 年度 : プログラミング 1 4

プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス 集合表現 1. 演習 課題への取り組み方 レポートの書き方のデモ 2. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 3. Chapter 3.4 A Few Words About Using Floats 1. 浮動小数点数の取り扱い 4. 演習 1. 演習 1 4: 初めてのペア プログラミング 2. 演習 5: 数当てゲーム 1 ( 大小ヒント付き ) を実装してみよう 5. 宿題 KISS 原則を踏まえて小さく作ろう 分割の仕方を考えよう 講義ページ : http://ie.u-ryukyu.ac.jp/~tnal/2017/prog1/ 2017 年度 : プログラミング 1 5

Chapter 3.2, 3.4 の補足 3.2 For Loops 3.4 A Few Words About Using Floats 2017 年度 : プログラミング 1 6

3.2 For Loops ( 反復 ) *2 つ目の反復制御 range () 関数 range(stop): 0 stop-1 までの全 int 型オブジェクトを生成 range(start, stop): start stop-1 x = 4 for i in range(0, x): print(i) for 文 in として指定されたシーケンス集合に対して (1)1 つずつ要素を取り出し (2) その要素を対象としてブロックを実行 ( 反復処理 ) (3) 全要素に対して (2) を実行し終えたら for 文を終了 シーケンス集合の例 : str, range, list 2017 年度 : プログラミング 1 7

シーケンス集合の例 1(str 型オブジェクト ) # コード 1 for c in 'abc': print(c) # 結果 1 a b c # srt 型オブジェクト ( 復習 ) >>> len('abc') 3 >>> 'abc'[0] 'a' >>> 'abc'[1] 'b' >>> 'abc'[2] 'c' >>> enemy = 'naltoma' >>> enemy[0] 'n' 2017 年度 : プログラミング 1 8

シーケンス集合の例 2(range 型オブジェクト ) # コード 2 index = 0 word = 'abc' for index in range(len(word)): print('word[{0}] = {1}'.format(index, word[index])) # 実行結果 2 word[0] = a word[1] = b word[2] = c {}: brace str.format() メソッド - 対象文字列は {} で区切られた置換フィールドを含む - 置換フィールドを何で置き換えるかを引数で指定 - e.g., '{0} and {1}'.format('spam', 'eggs') 'pi = {0:.3f}'.format(3.14159) 参考 : str.format() メソッドチュートリアル : http://docs.python.jp/3/tutorial/inputoutput.html 2017 年度 : プログラミング 1 9

シーケンス集合の例 3(list 型オブジェクト ) # コード 3 items = ['I did it all', 4, 'love'] index = 0 for i in items: print('items[{0}] = {1}'.format(index, i)) index += 1 # 結果 3 items[0] = I did it all items[1] = 4 items[2] = love list ( リスト ) 型オブジェクト - 順序付けられたオブジェクト集合 - リスト名 = 集合名 - リスト名 [ インデックス ] = 指定した順番のオブジェクト - e.g., items[0] = 'I did it all' 2017 年度 : プログラミング 1 10

プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス集合表現 1. 演習 課題への取り組み方 レポートの書き方のデモ 2. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 3. Chapter 3.4 A Few Words About Using Floats 1. 浮動小数点数の取り扱い 4. 演習 1. 演習 1 4: 初めてのペア プログラミング 2. 演習 5: 数当てゲーム 1 ( 大小ヒント付き ) を実装してみよう 5. 宿題 シーケンス集合に対する反復処理を書けるようになろう 講義ページ : http://ie.u-ryukyu.ac.jp/~tnal/2017/prog1/ 2017 年度 : プログラミング 1 11

3.4 A Few Words About Using Floats ( 浮動小数点数を使う際の補足 ) # コード例 4 ( 教科書版を少し編集 ) x = 0.0 for i in range(10): x = x + 0.1 if x == 1.0: print('{0} = 1.0'.format(x)) else: print('{0}!= 1.0'.format(x)) # 実行結果 4 0.9999999999999999!= 1.0 コンピュータにおける数 :2 進数 丸め誤差 (rounded error): 整数は適切に表現できるが 小数点のある数は必ずしも表現できない 参考 : 5 分で覚えるIT 基礎の基礎 ゼロから学ぶ2 進数第 4 回 : http://goo.gl/xvrn6n 倍精度浮動小数点数 : https://ja.wikipedia.org/wiki/ 倍精度浮動小数点数 2017 年度 : プログラミング 1 12

大きすぎる数字と小さすぎる (0 より小 さい ) 数を同時に扱うのは難しい # 1000 桁の整数に 0.1 を足してみる >>> bignumber = 10**1000 >>> bignumber += 0.1 Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: int too large to convert to float - int なら 1000 桁でも適切に表現できる - float 演算しようとすると Overflow( 桁あふれ ) # 100 桁の整数に 0.1 を足してみる >>> bignumber = 10**100 >>> bignumber += 0.1 >>> >>> print(bignumber) 1e+100 指数表記 (exponential notation) 1e+100 = 1 * 10**100 0.0001 = 1 * 10**(-4) = 1e-04 これは誤差で片付けられる値? >>> print('{0:f}'.format(bignumber)) 10000000000000000159028911097599180468360808563945281389781327 557747838772170381060813469985856815104.000000 2017 年度 : プログラミング 1 13

プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス集合表現 1. 演習 課題への取り組み方 レポートの書き方のデモ 2. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 3. Chapter 3.4 A Few Words About Using Floats 1. 浮動小数点数の取り扱い 4. 演習 1. 演習 1 4: 初めてのペア プログラミング 2. 演習 5: 数当てゲーム 1 ( 大小ヒント付き ) を実装してみよう 5. 宿題 小数を使う際には丸め誤差と桁あふれに注意 講義ページ : http://ie.u-ryukyu.ac.jp/~tnal/2017/prog1/ 2017 年度 : プログラミング 1 14

Reserved words, 予約語 https://goo.gl/rezdan 一覧 ( 赤丸は今回出てきた予約語 ) 2017 年度 : プログラミング 1 15

プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス 集合表現 1. 演習 課題への取り組み方 レポートの書き方のデモ 2. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 3. Chapter 3.4 A Few Words About Using Floats 1. 浮動小数点数の取り扱い 4. 演習 1. 演習 1 4: 初めてのペア プログラミング 2. 演習 5: 数当てゲーム 1 ( 大小ヒント付き ) を実装してみよう 5. 宿題 シーケンス集合に対する反復処理を書けるようになろう KISS 原則を踏まえて小さく作ろう 分割の仕方を考えよう 小数を使う際には丸め誤差と桁あふれに注意 講義ページ : http://ie.u-ryukyu.ac.jp/~tnal/2017/prog1/ 2017 年度 : プログラミング 1 16

演習 演習 1 4: 初めてのペア プログラミング演習 5: 数当てゲーム 1 ( 大小ヒント付き ) を実装してみよう 2017 年度 : プログラミング 1 17

宿題 復習 : 適宜 ( これまでの内容 ) 予習 : 教科書読み 4 章 4 Functions, scoping, and abstraction ( 冒頭 1 ページ ) 4.1 Functions and Scoping (4.1.1 Function Definitions) # 終了済み 4.1.2 Keyword Arguments and Default Values 4.1.3 Scoping 4.2 Specifications (4.3 Recursion) スキップ (4.4 Global Variables) スキップ 4.5 Modules 復習 予習 ( オススメ ): paiza, progate 2017 年度 : プログラミング 1 18

参考文献 教科書 : Introduction to Computation and Programming Using Python, Revised And Expanded Edition Python 3.5.1 documentation, https://docs.python.org/3.5/index.html str.format メソッド, http://docs.python.jp/3/tutorial/inputoutput.html 5 分で覚える IT 基礎の基礎 ゼロから学ぶ 2 進数第 4 回 2 進数で小数を表す方法, http://itpro.nikkeibp.co.jp/members/itpro/itbasic/200206 24/1/?rt=nocnt 倍精度浮動小数点数, https://ja.wikipedia.org/wiki/ 倍精度浮動小数点数 2017 年度 : プログラミング 1 19