60
プログラミングA 1Javaの基本 2017年4月10日 東邦大学 金岡 晃

プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラミングA第1回 Javaの基本

2017年4月10日

東邦大学 金岡 晃

Page 2: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

この授業について• 講義科目名称

– プログラミングA– プログラミング演習A

• 英文科目名称– Programming A– Programming Exercise A

• 開講期間– 春学期

• 配当年– 1学年

• 単位数– プログラミングA:2– プログラミング演習 A:2

• 科目必選区分– 必修

• 担当教員– 金岡晃、菊地賢一、古谷立美、木村大輔

• 開講日時– 月曜日3限– 月曜日4限

2017/4/101 プログラミングA

Page 3: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

担当と講義資料

• 担当

– 金岡 晃(かなおか あきら)

• E-mail:[email protected]

• 居室:理学部IV号館6階 4621室

– ティーチングアシスタント(TA)

• 作本壮志郎(M1)、菅井琢(M1)

• 講義資料

– 教科書:やさしいJava 第5版

– USBメモリは毎回持参すること

2 2017/4/10 プログラミングA

Page 4: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

授業概要

• 授業の目的と学習概要

– コンピュータを用いて計算処理を行うには、プログラムが必要不可欠である。本授業では、プログラムの作成方法を初歩から学び、プログラミングの基礎力を身につけることを目標とする。プログラミング言語としては、広く用いられているJava言語を使用する。

– プログラミングAの授業で習った内容に対して、プログラミング演習を行うことにより、プログラミングの理解を深めることを到達目標とする。

2017/4/103 プログラミングA

Page 5: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

評価方法とオフィスアワー

• 評価方法

– プログラミングA、プログラミング演習A 共通

• 平常点:50点

– 出席および中間試験

• 定期試験(期末試験、4クラス合同):50点

– 合計60点以上を合格とする

• オフィスアワー

– オフィスアワーについてはメールで個別に時間を予約するものとする

• 連絡先:[email protected]

2017/4/104 プログラミングA

Page 6: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

講義/演習の進め方

• 講義/演習の進め方

– 講義→演習というスタイルで進めます

– 内容やみなさんの進捗度合によって柔軟に変更します

– 授業の最後に課題を出すようにします

• 課題の提出をもって、出席のカウントとします

5

講義

演習

講義

演習

課題

提出

2017/4/10 プログラミングA

Page 7: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

授業用Webサイト

• https://www.klab.is.sci.toho-u.ac.jp/classes/

• 金岡が受け持っている講義の資料(この講義以外も)をアップロードしています

• 「プログラミングA」のページも作成しました

• 講義資料をPDF化してすべて載せていきます。

2017/4/106

閲覧方法の詳細はあとで行います

プログラミングA

Page 8: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

7

Agenda

• 講義/演習の進め方

• 評価について

• 今回の内容

– プログラムとは?

– プログラムを実行するまで

– 実際にプログラムを作成してみる

– メールを送信してみる

2017/4/10 プログラミングA

Page 9: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラムとは

8 2017/4/10 プログラミングA

Page 10: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラムとは?

9 2017/4/10 プログラミングA

プログラム

「計算機(コンピュータ)に何かをやらせたい」というときに、その動作を指示するもの

コンピュータへの指示

そのコンピュータに応じた機械語で命令を書き、指示する。

詳しくは秋学期の「コンピュータアーキテクチャ」で学びます

人間が機械語で指示するの?

NO

Page 11: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラム言語

10 2017/4/10 プログラミングA

コンピュータと人間を結ぶ、コンピュータに指示するための言語

さまざまな言語

C

JavaC++

C#

VisualBasic

Ruby

Python

Perl

Prolog

FORTRAN

COBOL

PascalSwift

Objective-C

Page 12: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

言語処理系

2017/4/10 プログラミングA11

エディタ

ソースプログラム

ソースプログラム

・・・

コンパイラ

コンパイラ

目的プログラム

目的プログラム

リンケージエディタ

実行時ライブラリ

実行プログラム

実行デバッガ

コンパイル 機械語(に近い)ゾーン

我々が作るプログラム

詳しくは3年春学期(選択)の「コンパイラとプログラミング言語」で学べます

Page 13: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

• コンパイラを各計算機の環境ごとにつくらないといけない• 目的プログラムは各環境に応じたものを用意しなければならない• 実行プログラムは各環境に応じたものになる

Javaと仮想計算機

2017/4/10 プログラミングA12

エディタ

ソースプログラム

ソースプログラム

・・・

コンパイラ

コンパイラ

目的プログラム

目的プログラム

リンケージエディタ

実行プログラム

コンパイルした環境と同じ計算機環境で実行するようにコンパイルされる

環境に依存しない仮想的に考えられた計算機(バーチャルマシン、仮想計算機)と、仮想計算機用のプログラムを実行可能なソフトを計算機とOSの組ごとに作成すれば、プログラム作成者は1つのプログラムを作るだけで様々な環境でプログラムが実行できる

Page 14: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

Java:プログラム作成から実行まで

2017/4/1013

ソースプログラム

バイトコード

コンパイラ

プログラミングA

インタプリタ

実行

****.java というファイル

****.class というファイル

Page 15: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

エディタ

2017/4/1014

ソースプログラムの作成時に利用するソフトウェア

Eclipse

秀丸エディタ

Visual Studio

プログラミングA

JCpad

Page 16: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラムを見てみよう

• 一番簡単なプログラム

15 2017/4/10 プログラミングA

class HelloWorld{ public static void main(String[] args){

System.out.println(“Hello World!”); }

}

Page 17: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

• 動画:mpeg, avi, mp4など• 音楽:mp3, wmvなど• 文書:docx, txt など• スライド:pptxなど• 表:xlsxなど

JCPadの使い方…の前に

16

Windows上のデータ

• データは「ファイル」という単位でコンピュータ内に保存されている。• さまざまなタイプの「ファイル」がある

画像、動画、音楽、文書、スライド、表

区別するためにファイルの名前に「拡張子」を付ける

kanaoka.jpg拡張子

2017/4/10 プログラミングA

Page 18: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

17

ファイルをしまう構造

• 1つのエリアにすべてのファイルを置くと混乱する• 小分けをする

「フォルダ」

フォルダ

• フォルダは入れ物• フォルダの中にファイルを入れる。• フォルダに名前を付ける、とわかりやすい。

学年ごと、授業ごと、用途ごと、ファイル種類ごと……等々

2017/4/10 プログラミングA

Page 19: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

18

エクスプローラ

• ファイルやフォルダの閲覧などの取り扱いをする

2017/4/10 プログラミングA

Page 20: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

2017/4/10 プログラミングA19

スタートボタンから「コンピュータ」を選択

Page 21: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

20

USBメモリを挿す ※初回はしばらく待てばUSBメモリが認識される

2017/4/10 プログラミングA

Page 22: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

2017/4/10 プログラミングA21

ブラウザでWebを見よう

「すべてのプログラム」をクリック

「Internet Explorer」をクリック

Page 23: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

2017/4/10 プログラミングA22

Page 24: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadの使い方…の前に

2017/4/10 プログラミングA23

授業用Webサイトを見よう

ここに

http://www.klab.is.sci.toho-u.ac.jp/classes/と入力し、Enterキーを押そう

Page 26: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadを使おう

25 2017/4/10 プログラミングA

USBメモリの中身を見る

「リムーバブルディスク」をダブルクリック

Page 27: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadを使おう

26 2017/4/10 プログラミングA

JCPadを起動

「jcpad.dat」をダブルクリック

Page 28: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

JCPadを使おう

27 2017/4/10 プログラミングA

ここにプログラムを書いていく

Page 29: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

入力してみよう

2017/4/10 プログラミングA28

class HelloWorld{public static void main(String[] args){

System.out.println(“Hello World!”);}

}

Page 30: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラムを作ったら

29 2017/4/10 プログラミングA

保存(セーブ)

• なによりもまずセーブ

このアイコンをクリック

Page 31: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

保存場所

2017/4/10 プログラミングA30

USBメモリの中のフォルダへ 通常はこのままで良い

Page 32: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

ファイルの名前を付ける

2017/4/10 プログラミングA31

「ファイル名」のゾーンに名前を入力

入力が終わったら「保存」を押す

Page 33: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

ファイルを保存する

2017/4/10 プログラミングA32

[新規1] だったものがHelloWorldに変わっていることを確認

Page 34: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

保存されたファイルをエクスプローラで確認する

2017/4/10 プログラミングA33

Page 35: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラムを作ったら

34 2017/4/10 プログラミングA

コンパイル

このアイコンをクリック

Page 36: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

コンパイル

2017/4/10 プログラミングA35

成功すると

失敗するとエラーメッセージが出る

Page 37: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

コンパイルが成功すると

2017/4/10 プログラミングA36

.classファイルが生成される

Page 38: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

実行させてみよう

37 2017/4/10 プログラミングA

コンパイル+実行

このアイコンをクリック

Page 39: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

実行すると

2017/4/10 プログラミングA38

Page 40: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

練習1

39 2017/4/10 プログラミングA

Hello World!を作ってコンパイル、実行してみよう!

Page 41: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

プログラムの中身を見る

40

クラスの宣言

main()メソッドの開始部分

実行されるメソッド

main()メソッドの終了部分

2017/4/10 プログラミングA

Page 42: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メソッド

2017/4/10 プログラミングA41

• 直訳すると方法。• 1つのプログラムの中に、さまざまなメソッドをつくって、それらを有

機的に結合していって1つのプログラムにしていける

たとえば

「画像を画面に出力して、加工して、ファイルに保存する」というプログラムを作りたい!

画面に出力、というメソッド

画像を加工、というメソッド

ファイルに保存、というメソッド

○3つのメソッドを作っておく

メインメソッド

3つのメソッドを順に呼ぶ

Page 43: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

クラス名

42 2017/4/10 プログラミングA

ルールがある

• “-”などの記号は使えない• 空白を入れてはいけない• 推奨されないものもある

• 大文字で始まっていない• アンダースコア ( _ ) 使う• 日本語のクラス名

ファイル保存のときはクラス名と同じファイル名

class HelloWorld だったら HelloWorld.java で保存

Page 44: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

System.out.println

43 2017/4/10 プログラミングA

「標準出力」に出力する

標準出力? プログラムが作り出したものを出力する出し先にはいろいろな可能性がある

画面ボタン

電灯

フォルダ

コンピュータ

出力の指定を特にしない場合に、最初から決まっているもの、それが標準出力

ここでは「コンソール」と呼ばれる画面

Page 45: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

練習2:キーボード入力の読み込み

44 2017/4/10 プログラミングA

下のプログラムを作ってコンパイル、実行してみよう!

Page 46: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

実行結果

2017/4/10 プログラミングA45

Page 47: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

実行結果

2017/4/10 プログラミングA46

Page 48: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

実行結果

2017/4/10 プログラミングA47

Page 49: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

48 2017/4/10 プログラミングA

まずブラウザを開く「Webメール」をクリック

Page 50: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA49

WebMailシステムにログイン

Page 51: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA50

ログイン後の画面

※注:画面は教員用のものなので学生用は細部が異なる可能性があります

Page 52: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA51

メールを作成「メール作成」をクリック

Page 53: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA52

メール作成画面

Page 54: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA53

メール作成画面

Page 55: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA54

ファイルを添付

「参照」をクリック

Page 56: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA55

添付するファイルを選択

Page 57: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA56

Page 58: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA57

「メール送信」をクリック

Page 59: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

メールを送ろう

2017/4/10 プログラミングA58

送信完了

Page 60: プログラミングA...• 目的プログラムは各環境に応じたものを用意しなければならない • 実行プログラムは各環境に応じたものになる

課題:ソースプログラムのメール添付と送信

59 2017/4/10 プログラミングA

今日作った2つのプログラムをメールに添付して金岡に送ろう