プログラミング入門.

Slides:



Advertisements
Similar presentations
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
Advertisements

復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
初年次セミナー 第8回 データの入力.
7/10 if 文課題 力作が多くて感心! 演習1:キーボードから2つの整数を入力し、小さい方の数字を 表示せよ。
ループで実行する文が一つならこれでもOK
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
プログラミング言語としてのR 情報知能学科 白井 英俊.
初年次セミナー 第4回 整数と実数の取り扱い.
基礎プログラミングおよび演習 第4回 担当:花岡 5階522/520.
情報基礎実習I (第7回) 木曜4・5限 担当:北川 晃.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
基礎プログラミングおよび演習 第9回
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
多重ループ 繰り返し構造:補足事項 第8回目 [6月12日、H.15(‘03)] 本日のメニュー 1)前回の課題について
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
C言語 配列 2016年 吉田研究室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
湘南工科大学 2013年12月10日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
第7回 条件による繰り返し.
繰り返し計算 while文, for文.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
第二回 VB講座 電卓を作ろう.
プログラミング応用 printfと変数.
プログラミング論 II 2008年10月30日 文字列
プログラミング入門 電卓を作ろう・パートIV!!.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング序論 2. n人のインディアン.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
前回の練習問題.
第7回 条件による繰り返し.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
11.再帰と繰り返しの回数.
プログラムの基本構造と 構造化チャート(PAD)
プログラミングⅠ 平成30年10月22日 森田 彦.
C言語 はじめに 2016年 吉田研究室.
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
統計ソフトウエアRの基礎.
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
基礎プログラミング演習 第6回.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
ウェブデザイン演習 第6回.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
情報処理Ⅱ 2005年10月28日(金).
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
コンパイラ 2012年10月11日
プログラミング 4 文字列.
情報処理Ⅱ 2005年11月25日(金).
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング入門2 第5回 配列 変数宣言、初期化について
情報処理Ⅱ 小テスト 2005年2月1日(火).
JavaScript    プログラミング入門 2-3 式と演算子 2006/10/12 神津 健太.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
情報処理Ⅱ 2006年10月27日(金).
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

プログラミング入門

ドックにあるLaunchpad をクリック エディタ – Emacsの起動 ドックにあるLaunchpad をクリック 赤枠で囲まれたEmacsをクリック 画像はみな640*480のサイズ

Emacs起動画面 赤枠で囲まれているFileをクリック ファイルの作成 Emacs起動画面 赤枠で囲まれているFileをクリック 出てきた選択肢の中からVisit New Fileをクリック

ファイルの作成 赤枠で囲んだボタンをクリック デスクトップをクリックしてからNew Folderをクリック

ファイルの作成 ファイル名を指定する rubyと入力して ここではhello.rbとする Createをクリック

ファイル作成 プログラムを入力(ここでは説明のため文字を大きくしている)

ファイル作成 赤枠で囲まれたボタンを押してファイルを保存 赤枠で囲まれているのが保存ボタン 青枠は別のファイル名にして新しいファイルを作る (前のファイルは元のファイル名で残る)

ファイル作成 Emacsを終了するためには赤枠で囲まれている場所を   クリック

プログラムの実行 赤枠で囲まれたターミナルをクリック cdコマンドでrubyディレクトリへ移動する lsコマンドでrubyディレクトリ内のファイルを確認する

プログラムの実行 catコマンドでファイルの中身を確認 rubyコマンドでプログラムを実行

プログラムの間違い バグ たとえば,puts ”Hello, ruby!” の代わりに, プログラムの間違い バグ たとえば,puts ”Hello, ruby!” の代わりに, putx ”Hello, ruby!” としてプログラムを実行すると 次のようなメッセージが出る エラーの内容に従ってプログラムの間違いを修正する作業 (デバッグ)を行う

出力文 出力命令:puts puts の直後の項目が出力される number.rb puts 1 puts 2 puts 1+2

文字列 文字列:” ”で囲まれると文字列定数になる  string.rb puts ”1+2” puts 1+2

型と演算 型:値の種類 整数型, 実数型, 文字列型などがある 整数型:整数(小数点を含まない数)を表す型 実数型:浮動小数点数を表す型 小数点を含む数を近似的に表現する 二項演算子:2つの値の間の計算を表す +(和), -(差), *(積), /(商), %(剰余) 演算子の優先順:*, /, %は+, -に優先する 左の演算子は右の演算子に優先する ()で囲まれた部分は優先される

型の演算 実数型と整数型で計算すると実数型になる operator.rb puts 5+3 puts 5/3 puts 5%3

文字列の結合 文字列型:文字の並びを表す型 文字列の結合演算子(+):2つの文字列を結合する 文字列+文字列 stringAdd.rb puts 12+34 puts 34+12 puts ”12”+”34” puts ”34”+”12”

文字列の結合 文字列と数値の結合はできない stringError.rb 実は Fixnum が整数型,String が文字列型で, puts ”12”+34 実は Fixnum が整数型,String が文字列型で, 両方とも文字列型になれば + で文字列を結合できるが,Fixmun を String に変換する方法が非明示的には わからないと文句を言っている

文字列への変換 明示的な文字列への変換 文字列変換(.to_s):数値を文字列に変換する 数値.to_s stringConvert.rb puts ”1+2=”+3.to_s puts ”12+34=”+(12+34).to_s .to_sの処理が優先される

変数と制御構造 変数:値を格納する名前付きの器 代入:変数に値を入れること 代入演算子:右辺の式を計算し, 結果の値を左辺の変数 に代入 変数名=式 制御構造:特定の条件に応じて実行を変える仕組み 真理値型:真偽(true, false)を表す型

変数と制御構造 関係演算子:2つの値の関係を判定し,真理値を返す a==b: a=bならば真, そうでなければ偽 a!=b: a≠bならば真, そうでなければ偽 a>b: a>bならば真, そうでなければ偽 a<b: a<bならば真, そうでなければ偽 a>=b: a≧bならば真, そうでなければ偽 a<=b: a≦bならば真, そうでなければ偽

変数と制御構造 while文:条件が成立する間, 反復実行する while 式 do 文 end 式が正しい場合は, 文を実行し, 再び式を評価する 式が正しくない場合には, 次に進む

1から10の和 sumUpTo10.rb sumには総和が入る (そのため0に初期化) sum=0 i=10 while i!=0 do i=i-1 end puts sum i=10として-1づつ減らし,10,9,8,7…1として足し算をしている sum=sum+iは代入を行い,sumの値を更新

階乗の計算 factorial.rb fact=1 i=1 while i<16 do fact=fact*i puts i.to_s+"! = "+fact.to_s i=i+1 end factには階乗の結果が入る (そのため1に初期化) iは階乗を求めたい数が入る (今回は初期値1から15まで)

階乗の計算

変数と制御構造 if文:条件が成立した/しなかったときに実行する if 式 then 文1 end 式が正しいときに文1が実行される if 式 then 文1 else 文2 end 式が正しいときに文1が実行され, 正しくない場合に文2が実行される

絶対値の計算 absolute.rb x = -5 if x>0 then y=x else y=-x end puts "absolute(" + x.to_s + ")= " + y.to_s x=-5をx=5に変更してプログラムを動かしてみよう

配列に対する計算 配列:複数個のデータ(要素)を数字で区別できる変数 サイズ:配列の全要素の個数 変数名.length 添字:配列の要素を区別するための数字(0から数字が 与えられる) 変数名[添字] 配列の初期化:配列の全要素への代入 変数名=[値, 値, …]

配列の代入と値の確認 array.rb a=[20, 12, 7, 10, 14, 40] puts a.length i=0 while i<a.length do puts "a["+ i.to_s + "]=" +a[i].to_s i=i+1 end

平均値の計算 average.rb sumには a=[20, 12, 7, 10, 14, 40] 総和が入り, sum=0.0 また小数点を扱いたい (そのため0.0に初期化) a=[20, 12, 7, 10, 14, 40] sum=0.0 i=0 while i<a.length do sum=sum+a[i] i=i+1 end puts "sum =" + sum.to_s puts "average =" + (sum/a.length).to_s

最小値と最大値の計算 minmax.rb minとmaxの初期値に関して a=[20, 12, 7, 10, 14, 40] while i<a.length do if a[i] < min then min=a[i] end if a[i] > max then max=a[i] i=i+1 puts "min =" + min.to_s puts "max =" + max.to_s minとmaxの初期値に関して minの初期値に配列に現れる要素のいずれよりも大きな数を入れておけば、if文の条件により配列の最初の要素が入り全要素を比較できる maxも同様に配列に現れる要素のいずれよりも小さい数を初期値に入れ、if文の条件により配列の最初の要素が入り、全要素を比較できる

最小値と最大値の計算

数値計算のアルゴリズム 教科書p.123~p.125に載っている平方根を求めるプログラムをRubyで実行する アルゴリズム1 反復による平方根の計算 アルゴリズム2 二分法による平方根の計算 アルゴリズム3 ニュートン・ラフソン法による平方根の計算

反復による平方根の計算 sqrtIteration.rb 擬似コード x=2.0 delta=0.0001 y=0.0 while (y+delta)*(y+delta)<x do puts y y=y+delta end 2の平方根を求めているのでx=2.0 精度を決めるdelta=0.0001とする while内のputs yでyを更新する前の値を途中経過として出力

反復による平方根の計算

二分法による平方根の計算 sqrtBisection.rb 擬似コード x=2.0 delta=0.0001 a=0.0 b=x while (b-a)>delta do puts a.to_s + " " + b.to_s c=(a+b)/2 if c*c > x then b=c else a=c end puts a x=2.0delta=0.0001は反復によるプログラムと同様 while内のputsで更新する前のaとbの値を途中経過として出力

二分法による平方根の計算

ニュートン・ラフソン法による平方根の計算 擬似コード 曲線との接線 接線と軸との交点はaについて式変形すると青矢印で示した式になる

ニュートン・ラフソン法による平方根の計算 sqrtNewtonRaphson.rb x=2.0 delta=0.0001 y=x while (x-y*y).abs / (2.0*y)>delta do puts y.to_s + " " + ((x-y*y).abs/(2.0*y)).to_s y = (y*y + x) / (2.0*y) end puts y 数値.absによって数値の絶対値に変換可能 x=2.0delta=0.0001は反復によるプログラムと同様 while内のputsで更新する前のyとwhileの条件の値を途中経過として出力

ニュートン・ラフソン法による平方根の計算