pi-1. プログラミング入門

>100 Views

January 26, 22

スライド概要

トピックス:プログラミング,Java Tutor での Java プログラム実行,GDB online での Java プログラム実行,計算誤差,さまざまなプログラミング言語

Java の基本(スライド資料とプログラム例)(全17回)
https://www.kkaneko.jp/pro/pi/index.html

金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

pi-1. プログラミング入 門 トピックス:プログラミング,Java Tutor での Java プログラム実行,GDB online での Java プロ グラム実行,計算誤差,さまざまなプログラミン グ言語 URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1

2.
[beta]
Java プログラムの
ソースコード
x = 100
if (x > 20):
print("big")
else:
print("small")
s=0
for i in [1, 2, 3, 4, 5]:
s=s+i
print(s)

Python

Java プログラム実行のためのコマンド
と実行結果

public class Main {
public static void main(String[] args) throws Exception
{
int x = 100;
if (x > 20) {
System.out.printf("big\n");
} else {
System.out.printf("small\n");
}
int s = 0;
for(int i = 1; i <= 5; i++) {
s = s + i;
}
System.out.printf("%d\n", s);
}
}

Java
さまざまな
プログラミング言語

#include <stdio.h>
int main(void){
int x, s, i;
x = 100;
if (x > 20) {
printf("big\n");
} else {
printf("small\n");
}
s = 0;
for(i = 1; i <= 5; i++) {
s = s + i;
}
printf("%d\n", s);
return;
}

C

2

3.

オンラインでの Java プログラム 実行(Java Tutor を使用) オンラインでの Java プログラム 実行(GDB online を使用) コンピュータは便利なものであるが,コンピュータを使うから といって,計算が完璧に正確というわけではない プログラム 実行結果 3

4.

アウトライン 番号 項目 1-1 1-2 プログラミング Java プログラムの実行方法 1-3 オンライン開発環境 1-4 Java Tutor での Java プログラム実行 1-5 GDB online での Java プログラム実行 1-6 計算誤差 1-7 さまざまなプログラミング言語 1-8 この授業の全体計画 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 4

5.

1-1. プログラミング 5

6.

プログラム • コンピュータは,プログラムで動く • プログラムを設計,制作することはクリエイ ティブである 6

7.

① さまざまなアプリ Web ブラウザ ワープロ (マイクロソフト・ワード) アプリでは,プログラムが動いている 7

8.

② コンピュータを細かくコントロール 人工知能のプログラム (Python 言語) ニューラルネットワークを 作成している 8

9.

③ コンピュータどうしがつながるときも プログラムが必要 プログラム プログラム ネットワーク 利用者 コンピュータ 利用者 利用者 サーバ(サービスを提供する ITシステム) プログラム プログラム 9

10.

プログラミング (programming) • コンピュータは、プログラムで動く • プログラミングは、プログラムを設計、製作する こと • 何らかの作業を、コンピュータで実行させるため に行う プログラムの ソースコード (Java 言語) プログラムの 実行結果 10

11.

ソースコード (source code) • プログラムを,何らかのプログラミング言語 で書いたもの • 「ソフトウエアの設計図」ということも. 人間も読み書き,編集できる public class YourClassNameHere { public static void main(String[] args) { int x = 100; int y = 200; System.out.println(x + y); } } 100 × 200 を計算する Java 言語プログラム 11

12.

プログラムが役に立つ理由 ① プログラム次第で,様々な処理が可能. ② プログラムは,コンピュータでの様々な処理を自 動化する ③ プログラムのソースコードは,作業記録としても 使うことができる.いつでも再現できる. ④ プログラム中の値などを変えて再実行も簡単 12

13.

プログラミングで気を付けること ① コンピュータにも,できないことがある ② コンピュータを使うからといって,計算が完璧に正確とい うわけではない ③ 人間がプログラムを作るとき,書き間違い,勘違い,思い 込みなどによるミスがありえる. ④ 「プログラムが期待通りに動いているか」のテストが重要 ⑤ ミスを減らすためにも,「やりたいこと」を1回書いて済 ませることが大切.次のようなさまざまな手段がある • 抽象化 • 標準ライブラリ • クラス階層 ⑥ 問題をコンピュータで解くとき,解くべき問題を深く理解 した上で,必要に応じて,算法(アルゴリズム)を活用する13

14.

1-2. Java プログラムの実行方法 14

15.

プラットフォームとは • もともとは、大地、乗り降り場等の意味 • IT では、ソフトウエア等を動作させるのに必要な 機器やソフトウエアのこと Windows 10 + パソコン Max OS X + パソコン Linux + サーバコンピュータ Android + スマホ 15

16.

Java 言語の良さ • さまざまなプラットフォームで、同じプログラム が動く(プラットフォーム非依存) 私の見解 ・Java の登場前は,「違うプラットフォームで動 かすときは、プログラムの書き替えが必要」なのが 常識 ・Java の登場により,これが変化.人気の理由 ・インターネットの普及により,Windows, Linux 等がミックスして動く IT システムが当たり前. Java は便利に利用できる. 16

17.

Java 言語の特徴 1. さまざまなプラットフォームで、同じプログラ ムが動く(プラットフォーム非依存) 2. オブジェクト指向のプログラミング言語である 3. 標準ライブラリ(標準機能として備わっている ライブラリ)が充実している 4. C++言語と書き方が類似 Java のことを「C++ の改良」という人も 17

18.

Java のプログラムを動かすには Java のソースコード バイトコード コンパイル (ビルド) ファイル名: Main.java コンパイル(ビルド)は、 ソースコードをバイトコードに 変換する操作 自動結合 Java 仮想マシン 標準ライブラリ 全部がそろって, 1つのアプリケーション これで,プラットフォーム 非依存を達成 18

19.

Java のプログラムのコンパイル(ビルド)と実行 Java のソースコード Java のルール Java のアプリケーション を起動すると,main メ ソッドが実行される ファイル名: Main.java javac は、コンパイル(ビ ルド)を行うコマンド java はアプリケーション の起動を行うコマンド 19

20.

1-3. オンライン開発環境 20

21.

プログラム開発環境 プログラム開発環境は,プログラミングにおけ るさまざまなことを支援する機能をもったプロ グラム • プログラムの作成,編集(エディタ) • プログラム中の誤り(バグ)の発見やテストの支援 (デバッガ) • プログラムの実行 • マニュアルの表示 • プログラムが扱うファイルのブラウズ • プログラムの配布(パッケージ機能など),共有, 共同編集 • バックアップ,バージョン管理 これらが簡単に行えるようになる 21

22.

オンラインのプログラム開発環境 • プログラム開発環境の操作は,ウエブブラウザで できる • 自分のパソコンに,特別なソフトをインストール する必要がない • 機能制限がある場合が多い • 利用登録の有無と内容,利用条件,料金について は,利用者で確認のこと 22

23.

プログラム作成ができるウエブサービス (オンラインの開発環境)の例 ① Google Colaboratory Python の開発環境 多数のパッケージがインストール済み ノートブックにより、記録が簡単に残 せる.ビジュアルな表示も簡単に可能 プログラムの共有も簡単 Java Tutor Python, JavaScript, C, C++, Java ステップ実行、オブジェクト の表示がビジュアルに https://colab.research.google.com/ https://pythontutor.com/ 23

24.

プログラム作成ができるウエブサービス (オンラインの開発環境)の例 ② Coding Ground Python, C, Java, JavaScript, R, Octave/MATLAB, SQL, bash, アセンブリ, GDB online MySQL, SQLite, その他多数 C, C++, Java, Python, PHP, C#, OCam, VB, ファイル作成,ファイル読み書き, 複数プログラムファイルの組み合わ HTML, Ruby, Perl, Pascal, R, Fortran, Haskell, アセンブリ, Objective C, SQLite, せ可能 Javascript, Prolog, Swift, Rust, Go, Bash https://www.tutorialspoint.com/ デバッガの機能あり codingground.htm https://www.onlinegdb.com/ 24

25.

プログラム作成ができるウエブサービス (オンラインの開発環境)の例 ③ JSFiddle HTML, CSS, JavaScript 見た目をオンラインで確認 https://jsfiddle.net/ Paiza.IO Python, C, Java, JavaScript, R, MySQL など多数 表示は日本語. 一定の条件下でファイル操作も可能 https://paiza.io/ 25

26.

無料のオンラインサービス • 一定の条件下で無料で使える. • 活用によって,ICTはより便利になる. 【マナー】 ・作者が定める利用条件を確認 ・著作権を尊重 ・安全意識:秘密にしたいデータをアップロードし ない ・広告等が表示される場合がある 26

27.

1-4. Java Tutor での Java プ ログラム実行 27

28.

Java などのプログラミング言語の体 験,演習ができるオンラインサービス Java Tutor http://www.pythontutor.com/ オンラインなので、「秘密にしたいプログラム」を 扱うには十分な注意が必要 28

29.

Java Tutor の起動 ① ウェブブラウザを起動する ② Java Tutor を使いたいので,次の URL を開く http://www.pythontutor.com/ ③ 「Java」をクリック ⇒ 編集画面が開く 29

30.

Java Tutor の編集画面 「Java 8」になっている 最初から main メソッドの ひな形が入っている エディタ (プログラムを書き換えることができる) 実行のためのボタン 30

31.

Java Tutor でのプログラム実行手順 (1)「Visualize Execution」をク リックして実行画面に切り替える (2)「Last」をクリック. (4)「Edit this code」をク (3) 実行結果を確認する. リックして編集画面に戻る 31

32.

Java Tutor 使用上の注意点① • 実行画面で,次のような赤の表示が出ることがある → 無視してよい 過去の文法ミスに関する確認表示 邪魔なときは「Close」 32

33.

Java Tutor 使用上の注意点② 「please wait ... executing」のとき,10秒ほど待つ. → 混雑しているときは, 「Server Busy・・・」 というメッセージが出ることがある. 混雑している.少し(数秒から数十秒)待つと自 動で表示が変わる(変わらない場合には,操作を もう一度行ってみる) 33

34.

1-5. GDB online での Java プ ログラム実行 34

35.

Java などのプログラミング言語の体 験,演習ができるオンラインサービス GDB online http://www.pythontutor.com/ オンラインなので、「秘密にしたいプログラム」を 扱うには十分な注意が必要 35

36.

GDB online で Java を動かす手順 ① ウェブブラウザを起動する ② 次の URL を開く https://www.onlinegdb.com 36

37.

③ 「Language」のところで,「Java」を選ぶ 37

38.

実行ボタン エディタ画面 プログラムを 書き換えること ができる 38

39.

④ ソースコードを入れる ⑤ 実行.実行結果を確認 「Run」をクリック. 39

40.

1-5. 計算誤差 40

41.

コンピュータで「1÷3」 を求めると どうなると思いますか 1. 0.333333333333333333333333333333 と無 限に表示される 2. 計算できない 3. 正確な値が表示されない(誤差を含む) 41

42.

演習 資料:43 ~ 45 【トピックス】 • 計算誤差 42

43.

① Java Tutor のエディタで次のプログラムを入れ る public class YourClassNameHere { public static void main(String[] args) { System.out.println(1.0/3.0); } } 43

44.

② 実行するために,「Visual Execution」をク リック.そして「Last」をクリック.結果を確認 結果を確認 誤差がある ③ 「Edit this code」をクリックして,エディタ の画面に戻る 44

45.

④ Java Tutor のエディタで次のプログラムを入れ る public class YourClassNameHere { public static void main(String[] args) { System.out.println(6 * 1.1); } } 45

46.

⑤ 実行するために,「Visual Execution」をクリッ ク.そして「Last」をクリック.結果を確認 結果を確認 誤差がある ⑥ 「Edit this code」をクリックして,エディタ の画面に戻る 46

47.

⑦ Java Tutor のエディタで次のプログラムを入れ る public class YourClassNameHere { public static void main(String[] args) { System.out.println(3 * 1.1); } } 47

48.

⑧ 実行するために,「Visual Execution」をクリッ ク.そして「Last」をクリック.結果を確認 結果を確認 誤差がある 48

49.

• コンピュータだから「計算が完璧に正確」という 思い込みはしないこと 1 ÷ 3 を計算して表示させると、 正確な値が表示されない(誤差を含む) • 誤差があっても、十分に役に立つ • 誤差を許しているから、計算が効率的に済むとい う考え方もある 49

50.

1-6. さまざまなプログラミン グ言語 50

51.

プログラミングを学ぶときに気を付けること • プログラミング言語には,種類が数多くある • 基礎となる知識が大事. 一度,あるプログラミング言語で基礎をマス ターしておけば,他のプログラミング言語でも 応用が利く,という考え方も 51

52.

• 複数のプログラミング言語を学 ぶことは大事. 賛成できますか? プログラミング 言語は複数ある • 「1つを知っていれば,どの言 語も大体似ているので,応用が 利く」という考え方もある. • 「やりたいこと,学びたいこと に向いた言語を,そのときどき で選ぶのが,一番良い」とも. • 人によって「好きな言語が違 う」ということも 52

53.

さまざまなプログラミング言語 • Python •C • Java • JavaScript ここで行う作業 1.20 より大きければ「big」、 さもなければ「small」と表示 2.0 + 1 + 2 + 3 + 4 + 5 を求める •R • Octave • Scheme など 国家資格取得にも関係する (Java, Python, C/C++) 53

54.

なぜプログラミング言語は たくさんあるのでしょうか? それぞれ 特徴があ る Java R SQL MATLAB / Octave どのコン 初心者向 コン ピュータ け.その ピュータ でも同じ おかげで, の性能を 「データ 処理」に 特化した 「データ ベース」 に特化し 「数値計 算」, 「信号処 プログラ 多数の拡 最大限引 ムが動く. 張機能も. き出す. コマンド 言語 たコマン ド言語 理」など に特化し たコマン ド言語 普及度は トップレ ベル. Python C / C++ 54

55.

Python プログラム見本 x = 100 if (x > 20): print("big") else: print("small") s=0 for i in [1, 2, 3, 4, 5]: s=s+i print(s) • すぐに実行できる • さまざまな「パッケージ」で 機能を拡張できる • Windows でも Linux でも,ほ ほ同じプログラムで動く 55

56.
[beta]
Java プログラム見本
public class Main {
public static void main(String[] args) throws Exception {
int x = 100;
if (x > 20) {
• Windows でも Linux でも
System.out.printf("big\n");
Android アプリでも,同じプロ
} else {
グラムで動く
System.out.printf("small\n");
}
int s = 0;
for(int i = 1; i <= 5; i++) {
s = s + i;
}
System.out.printf("%d\n", s);
}
}

56

57.
[beta]
C プログラム見本
#include <stdio.h>
int main(void){
int x, s, i;
x = 100;
if (x > 20) {
printf("big\n");
} else {
printf("small\n");
}
s = 0;
for(i = 1; i <= 5; i++) {
s = s + i;
}
printf("%d\n", s);
return;
}

・コンピュータの決め細かなコ
ントロール
・高速実行できるチューニング

57

58.
[beta]
JavaScript プログラム見本
process.stdin.resume();
Webアプリに向く
process.stdin.setEncoding('utf8');
var util = require('util');
var x = 100;
if (x > 20) {
process.stdout.write('big\n');
} else {
process.stdout.write('small\n')
}
var s = 0;
for(var i = 1; i <= 5; i++) {
s = s + i;
}
process.stdout.write(util.format('%d\n', s));

58

59.
[beta]
R プログラム見本
x <- 100
if (x > 20) {
print("big")
} else {
print("small")
}
s <- 0
for (i in c(1,2,3,4,5)) {
s <- s + i
}
print(s)

データ専門家向け

59

60.

Octave プログラム見本 x = 100 if (x > 20) printf("big\n") else printf("small\n") endif s=0 for i = [1 2 3 4 5] s=s+i endfor printf("%d", s) 行列計算,信号処理など に向く 60

61.

Scheme プログラム見本 (define (decide x) 関数型言語 (cond ((> x 20) "big") (else "small"))) (define (sum n) (cond ((= n 0) 0) (else (+ (sum (- n 1)) n)))) (begin (print (decide 100)) (print (sum 5))) 61

62.

1-7 この授業の全体計画 62

63.

• プログラムに上達するとよいこ とがたくさんある この授業 • この授業では,プログラミング に関する基礎,大切なことを学 ぶ. • プログラミングの初心者を対象 63

64.

この授業の 主な内容 入門 • オブジェクト • メソッド • データの種類 • クラス • 配列 • 条件分岐,繰り返し 発展 • バグのないプログラムを 作成するのに役立つ実践 • プログラムの設計法 • プログラムでできる種々 の機能(タイマー,グラ フィックスなど) 64

65.

関連ページ • Java プログラミング入門 GDB online を使用 https://www.kkaneko.jp/pro/ji/index.html • Java の基本 Java Tutor, GDB online を使用 https://www.kkaneko.jp/pro/pi/index.html • Java プログラム例 https://www.kkaneko.jp/pro/java/index.html 65