計算機プログラミング I 第2回 2005-10-24 担当: 立堀道昭 本日の講義内容 前回の復習 プログラミング言語の文法と意味 プログラミングモデルとオブジェクト指向 メソッド呼び出しと制御構造 演習 前回の復習 ロボコードのインストールと実行 robocode-setup.jar、robocode.jar マイロボットの作成・コンパイル・実行 プログラミングとは プログラム、プログラミング、プログラミング言語 機械語、高級言語 インタープリタ、コンパイラ、仮想機械 Java言語、仮想機械語プログラム、仮想機械プログラム .javaファイル、javacコマンド、.classファイル、javaコマンド Hello Worldプログラム ターミナルからのファイル作成・修正、コンパイル、実行 javac/java 課題:わざと間違ってみる プログラミング言語の 文法と意味 コメント文 プログラムの動作上意味をもたない要素 ソースプログラム中には、プログラムの動作に影響を及ぼさないコメント(メモ 書き)を入れることができる 2種類 // 以降行末まで /* から */ まで (複数行にわたってよい) 例: // 直角に右を向く turnRight(90); /** * This is my robot definition. */ public class MyFirstRobot extends … プログラムをわかりやすくするために適宜入れる プログラミング・モデルと オブジェクト指向 プログラミング・モデル プログラムの仕方の考え方や決まりごと プログラミングの規範 何か理解しやすいものに例える(メタファ) 様々なプログラミング・モデルが存在する プログラミング言語は、何らかのプログラミング・モデルを 規定・実現している 機械語 レジスタ、メモリ、足し算引き算 Java – オブジェクト指向 オブジェクト - 「もの」を計算機上であらわしたもの メソッド呼び出し – オブジェクトに対する指令 オブジェクト オブジェクトには種類がある = 「クラス」 種類の例: 「ロボット」「色」「出来事(イベント)」 オブジェクトは作ることができる 個々のオブジェクト = 「インスタンス」 それぞれ違う「もの」 個々のインスタンスに対して指令を 出すことができる = 「メソッド呼び出し」 指令 = 「メソッド」 指令の種類 = 「メソッド名」(例: 前進・後退・・・) 指令の「パラメータ」(例: 前進する距離・回転する角度) ソースコードを読み解こう package cp1; import robocode.*; public class MyFirstRobot extends Robot { public void run() { while(true) { ahead(100); turnGunRight(360); back(100); turnGunRight(-360); } } public void onScannedRobot(ScannedRobotEvent e) { fire(1); } public void onHitByBullet(HitByBulletEvent e) { turnLeft(90 - e.getBearing()); } } 簡易化したもの class MyFirstRobot { void run() { while(true) { ahead(100); turnGunRight(360); back(100); turnGunRight(360); } } } クラスの定義 メソッドの定義 繰り返す 100進む 360度右に銃座を回転 100さがる 360度右に銃座を回転 メソッド定義とメソッド呼び出し メソッド: 1連の動作手続きを定めたもの class MyFirstRobot { void run() { while(true) { ahead(100); turnGunRight(360); back(100); turnGunRight(360); } } } MyFirstRobotという名のクラスの定義 runという名のメソッドを定義(ロボコードの決まり) aheadというメソッドを呼び出す turnGunRightというメソッドを呼び出す backというメソッドを呼び出す turnGunRightというメソッドを呼び出す 決まりごとの例 Robocodeプログラム public void run() { … } Hello Worldプログラム public static void main(String[] args) { … } 演習: 8の字で動こう カクカクしてよいので8の字でロボットを動か そう SittingDuckを相手に練習 その他の動きも自分で考えてみよう 変数 何の計算でしょうか? 2×3.8765×2×3.8765 – 3.1415×3.8765×3.8765 = 12.901 2×3.8765×2×3.8765×2×3.8765 – 1.3333×3.1415×3.8765×3.8765×3.8765 = 222.03 半径 = 3.8765 とする 辺の長さ = 2×半径とする 辺の長さ2 – π×半径2 = 12.901 辺の長さ3 – 4/3×π×半径3 = 222.03 プログラミング・モデル: 変数 箱を作ること = 変数宣言 入れてよい値の種類 = 「型」 名前 = 「変数名」 最初にしまわれる値 = 「初期値」 ※先に宣言しないと使えない ・ 同じ名前を2回宣言できない 箱に値をしまうこと = 代入 1つの箱には何回でも代入できる 参照されるのは最後に代入された値 箱から値をとり出すこと = 参照 箱にしまうことのできる値: オブジェクトへの参照 ―― オブジェクトに対するリモコンのようなもの 整数・実数などなど 変数宣言と変数利用の例 整数型の変数宣言: int num = 3; 変数への代入 変数の値を書き換える num = num + 2; Color型の変数宣言: Color color = …; Color color = new Color(10, 200, 255); int r = color.getRed(); 演習: java.awt.Colorオブジェクト ColorオブジェクトのAPI(プログラミング上の 規約、何を指令できるか書いてある)をみて みよう。 課題・自習 色を変えながら動くロボットを作ってみよう Preferencesでこれを許可する設定が必要 謝辞 この資料は、増原英彦先生のものを部分的 にいただいて編集しました
© Copyright 2024 ExpyDoc