プログラミングa - 学校法人東邦大学...2018/04/09  · – programming exercise a •...

64
プログラミングA 1Javaの基本 2018年4月9日 東邦大学 金岡 晃

Upload: others

Post on 07-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

2018年4月9日

東邦大学 金岡 晃

Page 2: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

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

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

• 開講期間– 春学期

• 配当年– 1学年

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

• 科目必選区分– 必修

• 担当教員– 菊地賢一、山内長承、金岡晃、木村大輔

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

2018/4/91 プログラミングA

Page 3: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

担当と講義資料

• 担当

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

• E-mail:[email protected]

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

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

• 菅井琢(M2)、立川彰宏(M2)、今井宏謙(M1)

• 講義資料

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

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

2 2018/4/9 プログラミングA

Page 4: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

授業概要

• 授業の目的と学習概要

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

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

2018/4/93 プログラミングA

Page 5: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

• 評価方法

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

• 平常点:50点

– 出席および中間試験

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

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

• オフィスアワー

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

• 連絡先:[email protected]

2018/4/94 プログラミングA

Page 6: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

講義/演習の進め方と中間試験

• 講義/演習の進め方

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

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

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

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

• 中間試験

– 第7回目(5月28日)に実施します

– 内容は第1回目から第6回目までの内容

5

講義

演習

講義

演習

課題

提出

2018/4/9 プログラミングA

Page 7: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

授業用Webサイト

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

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

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

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

2018/4/96

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

プログラミングA

Page 8: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

7

Agenda

• 講義/演習の進め方

• 評価について

• 今回の内容

– プログラムとは?

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

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

– メールを送信してみる

2018/4/9 プログラミングA

Page 9: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラムとは

8 2018/4/9 プログラミングA

Page 10: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラムとは?

9 2018/4/9 プログラミングA

プログラム

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

コンピュータへの指示

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

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

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

NO

Page 11: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラム言語

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

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

さまざまな言語

C

JavaC++

C#

VisualBasic

Ruby

Python

Perl

Prolog

FORTRAN

COBOL

PascalSwift

Objective-C

Page 12: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

言語処理系

2018/4/9 プログラミングA11

エディタ

ソースプログラム

ソースプログラム

・・・

コンパイラ

コンパイラ

目的プログラム

目的プログラム

リンケージエディタ

実行時ライブラリ

実行プログラム

実行デバッガ

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

我々が作るプログラム

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

Page 13: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

Javaと仮想計算機

2018/4/9 プログラミングA12

エディタ

ソースプログラム

ソースプログラム

・・・

コンパイラ

コンパイラ

目的プログラム

目的プログラム

リンケージエディタ

実行プログラム

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

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

Page 14: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

2018/4/913

ソースプログラム

バイトコード

コンパイラ

プログラミングA

インタプリタ

実行

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

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

Page 15: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

エディタ

2018/4/914

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

Eclipse

秀丸エディタ

Visual Studio

プログラミングA

JCpad

Page 16: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

実習室PCを立ち上げてみよう

2018/4/9 プログラミングA15

ここのボタン(電源ボタン)を押す

Page 17: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

ログオンしてみよう

2018/4/9 プログラミングA16

ログイン情報

自分のIDとパスワードで

Page 18: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

ログオンしてみよう

2018/4/9 プログラミングA17

ログオン後の画面

Page 19: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラムを見てみよう

• 一番簡単なプログラム

18 2018/4/9 プログラミングA

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

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

}

Page 20: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

JCPadの使い方…の前に

19

Windows上のデータ

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

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

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

kanaoka.jpg拡張子

2018/4/9 プログラミングA

Page 21: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

20

ファイルをしまう構造

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

「フォルダ」

フォルダ

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

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

2018/4/9 プログラミングA

Page 22: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

21

エクスプローラ

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

2018/4/9 プログラミングA

Page 23: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

エクスプローラを立ち上げよう

2018/4/9 プログラミングA22

このアイコンをダブルクリック

Page 24: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

23

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

2018/4/9 プログラミングA

Page 25: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

2018/4/9 プログラミングA24

ブラウザでWebを見よう

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

「Internet Explorer」をクリック

Page 26: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

ブラウザを立ち上げよう

2018/4/9 プログラミングA25

このアイコンをダブルクリック

Page 27: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

2018/4/9 プログラミングA26

Page 28: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

2018/4/9 プログラミングA27

授業用Webサイトを見よう

ここに

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

Page 29: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadの使い方…の前に

2018/4/9 プログラミングA28

Page 30: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadを使おう

29 2018/4/9 プログラミングA

USBメモリの中身を見る

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

Page 31: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadを使おう

30 2018/4/9 プログラミングA

JCPadを起動

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

Page 32: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

JCPadを使おう

31 2018/4/9 プログラミングA

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

Page 33: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

入力してみよう

2018/4/9 プログラミングA32

class HelloWorld{

public static void main(String[] args){

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

}

}

Page 34: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラムを作ったら

33 2018/4/9 プログラミングA

保存(セーブ)

• なによりもまずセーブ

このアイコンをクリック

Page 35: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

保存場所

2018/4/9 プログラミングA34

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

Page 36: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

ファイルの名前を付ける

2018/4/9 プログラミングA35

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

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

Page 37: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

ファイルを保存する

2018/4/9 プログラミングA36

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

Page 38: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

2018/4/9 プログラミングA37

Page 39: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラムを作ったら

38 2018/4/9 プログラミングA

コンパイル

このアイコンをクリック

Page 40: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

コンパイル

2018/4/9 プログラミングA39

成功すると

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

Page 41: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

コンパイルが成功すると

2018/4/9 プログラミングA40

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

Page 42: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

実行させてみよう

41 2018/4/9 プログラミングA

コンパイル+実行

このアイコンをクリック

Page 43: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

実行すると

2018/4/9 プログラミングA42

Page 44: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

練習1

43 2018/4/9 プログラミングA

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

Page 45: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

プログラムの中身を見る

44

クラスの宣言

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

実行されるメソッド

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

2018/4/9 プログラミングA

Page 46: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メソッド

2018/4/9 プログラミングA45

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

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

たとえば

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

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

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

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

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

メインメソッド

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

Page 47: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

クラス名

46 2018/4/9 プログラミングA

ルールがある

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

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

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

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

Page 48: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

System.out.println

47 2018/4/9 プログラミングA

「標準出力」に出力する

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

画面ボタン

電灯

フォルダ

コンピュータ

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

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

Page 49: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

48 2018/4/9 プログラミングA

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

Page 50: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

実行結果

2018/4/9 プログラミングA49

Page 51: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

実行結果

2018/4/9 プログラミングA50

Page 52: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

実行結果

2018/4/9 プログラミングA51

Page 53: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

52 2018/4/9 プログラミングA

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

Page 54: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA53

WebMailシステムにログイン

Page 55: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA54

ログイン後の画面

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

Page 56: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA55

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

Page 57: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA56

メール作成画面

Page 58: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA57

メール作成画面

Page 59: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA58

ファイルを添付

「参照」をクリック

Page 60: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA59

添付するファイルを選択

Page 61: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA60

Page 62: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA61

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

Page 63: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

メールを送ろう

2018/4/9 プログラミングA62

送信完了

Page 64: プログラミングA - 学校法人東邦大学...2018/04/09  · – Programming Exercise A • 開講期間 – 春学期 • 配当年 – 1学年 • 単位数 – プログラミングA:2

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

63 2018/4/9 プログラミングA

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