SlideShare a Scribd company logo
1 of 28
ji-2. 計算
1
(Java プログラミング入門)
URL: https://www.kkaneko.jp/pro/ji/index.html
金子邦彦
目標
• 自分の思い通りの計算ができるようになる
• 四則演算
• ライブラリ関数(三角関数,対数・指数関数など)
• 見やすいプログラムを書くために,字下げを行う
2
内容
例題1.三角形の面積
・変数,代入,入力,出力
・System.out.printf と System.out.println の違い
例題2.sin 関数による三角形の面積
例題3.標準ライブラリを利用した計算
3
オンライン開発環境 Online GDB
• プログラミングを行えるオンラインのサービス
https://www.onlinegdb.com
• ウェブブラウザを使う
• たくさんの言語を扱うことができる
Python3, Java, C/C++, C#, JavaScript,
R, アセンブリ言語,SQL など
• オンラインなので、「秘密にしたいプログラム」
を扱うには十分な注意が必要 4
Online GDB で Java を動かす手順
① ウェブブラウザを起動する
② 次の URL を開く
https://www.onlinegdb.com
5
③ 「Language」のところで,「Java」を選ぶ
6
エディタ画面
実行ボタン
プログラムを
書き換えること
ができる
7
例題1.三角形の面積
• 底辺と高さを読み込んで,面積を計算するプログ
ラムを作る
例) 底辺が 2.5,高さが 5 のとき,
面積: 6.25
• 底辺,高さ,面積を扱うために,浮動小数点数の
変数を3つ使う
8
import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double teihen, takasa, menseki;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter teihen =");
teihen = s.nextDouble();
System.out.println("Please Enter takasa =");
takasa = s.nextDouble();
menseki = teihen * takasa * 0.5;
System.out.printf("menseki = %8.3fn", menseki);
}
} 9
メッセージ表示と
キーボードからの
データの読み込み
画面表示
三角形の面積の式
実行結果画面(例)
10
プログラム実行順
11
System.out.println("Please Enter teihen =");
teihen = s.nextDouble();
menseki = teihen * takasa * 0.5;
System.out.printf("menseki = %8.3fn", menseki);
メッセージ「 'Please Enter teihen= 」を表示
浮動小数点数データを読み込み
計算
計算結果を表示
System.out.println("Please Enter takasa =");
takasa = s.nextDouble();
メッセージ「 'Please Enter takasa: 」を表示
浮動小数点数データを読み込み
プログラムとデータ
12
メモリ
takasa
menseki
3つの変数
teihen = s.nextDouble();
teihen
①
浮動小数点数データを読み込み
System.out.printf("menseki = %8.3fn", menseki);
④
計算結果を表示
menseki = teihen * takasa * 0.5;
③
計算
takasa = s.nextDouble();
②
浮動小数点数データを読み込み
四則演算のための演算子
+ 和
- 差
* 積
/ 商
13
変数宣言
• 変数は,データを入れるためのメモリ
• 変数宣言とは,変数を使うために,名前と型を書
いて,変数の使用をコンピュータに伝えること
14
型:double 浮動小数点数
変数名: teihen, takasa, menseki(変数は3つ)
代入
• 代入は,計算結果などの値を,変数に格納する
• 「=」は,代入の意味
15
入力
入力は,データをプログラムに読み込む
16
nextDouble: 浮動小数点数の入力を行うメソッド
出力
• 出力では,メッセージの画面表示,データの画
面表示などを行う.
■ System.out.printf による画面表示
■ System.out.println による画面表示
17
メッセージ表示に適する
メッセージとデータの組み合わせ表示に適する
%8.3f: 全体を 8桁,小数点以下 3桁で浮動小数点数を表示
例題3.sin 関数による三角形の面積
三角形の2辺の長さ a, b とその挟角 thetaを読み込
んで,面積 S を計算するプログラムを作る
• 面積を求めるために,sin関数を使う
• 円周率 π = 3.14159 とする
18

sin
2
1
ab
S 
import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double a, b, theta, S;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter a =");
a = s.nextDouble();
System.out.println("Please Enter b =");
b = s.nextDouble();
System.out.println("Please Enter theta =");
theta = s.nextDouble();
S = 0.5 * a * b * Math.sin( theta * 3.14159 / 180.0 );
System.out.printf("S = %8.3fn", S);
}
} 19
三角形の面積
メッセージ表示と
キーボードからの
データの読み込み
画面表示
実行結果例
20
例題3.標準ライブラリを利用した計算
• 浮動小数点数データ x を読み込んで,次の計算を
行うプログラムを作る
• 指数
• 対数
• 平方根
• 三角関数
• 絶対値
21
import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double x;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter x =");
x = s.nextDouble();
System.out.printf("exp(%8.3f) = %8.3fn", x, Math.exp(x));
System.out.printf("log10(%8.3f) = %8.3fn", x, Math.log10(x));
System.out.printf("sqrt(%8.3f) = %8.3fn", x, Math.sqrt(x));
System.out.printf("sin(%8.3f) = %8.3fn", x, Math.sin(x));
System.out.printf("cos(%8.3f) = %8.3fn", x, Math.cos(x));
System.out.printf("tan(%8.3f) = %8.3fn", x, Math.tan(x));
System.out.printf("abs(%8.3f) = %8.3fn", x, Math.abs(x));
}
} 22
実行結果例
23
出力と計算式の組み合わせ
24
メッセージと計算結果の表示
Java の標準ライブラリの機能(ごく一部)
• 指数,対数,平方根
• exp 指数関数(e のべき乗)
• log10 対数関数(底を 10 とする自然対数)
• sqrt 平方根
• 三角関数
• cos コサイン
• sin サイン
• tan タンジェント
• 絶対値
• abs 絶対値
25
いろいろな計算
26
d = Math.sqrt( ( x * x ) + ( y * y ) );
x2 + y2 を計算し,d に格納
√
x = Math.sqrt( a * ( a - b ) * ( a - c ) );
a(a-b)(a-c)を計算し,x に格納
√
)
)(
)(
( c
s
b
s
a
s
s 


A = sqrt(s * (s - a) * (s - b) * (s - c));
を計算し,A に格納
2
/
)
( c
b
a 
 を計算し,s に格納
s = ( a + b + c ) / 2;
まとめ
Java には,四則演算,各種の標準ライブラリ(三
角関数,指数・対数関数,平方根など)の機能があ
る
•27
演習1.Heron の公式
• 三角形の3辺の長さ a, b, c を読み込んで,面積 A
を計算するプログラムを作りなさい.
• Heronの公式を用いること
28
)
)(
)(
( c
s
b
s
a
s
s
A 



2
/
)
( c
b
a
s 



More Related Content

Similar to ji-2. 計算

「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部Kiyoshi Ogawa
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
pi-1. プログラミング入門
pi-1. プログラミング入門pi-1. プログラミング入門
pi-1. プログラミング入門kunihikokaneko1
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTakahisa Iwamoto
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門伸男 伊藤
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016kyoto university
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)啓 小笠原
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門kunihikokaneko1
 

Similar to ji-2. 計算 (20)

「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
 
pi-1. プログラミング入門
pi-1. プログラミング入門pi-1. プログラミング入門
pi-1. プログラミング入門
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
 
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
 

More from kunihikokaneko1

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い kunihikokaneko1
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション kunihikokaneko1
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスkunihikokaneko1
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要 kunihikokaneko1
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスkunihikokaneko1
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 kunihikokaneko1
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタkunihikokaneko1
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンkunihikokaneko1
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線kunihikokaneko1
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システムkunihikokaneko1
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニングkunihikokaneko1
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習kunihikokaneko1
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要kunihikokaneko1
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について kunihikokaneko1
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承kunihikokaneko1
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しkunihikokaneko1
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッドkunihikokaneko1
 

More from kunihikokaneko1 (20)

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンス
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョン
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニング
 
mi-4. 機械学習
mi-4. 機械学習mi-4. 機械学習
mi-4. 機械学習
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要
 
kaneko202304.pptx
kaneko202304.pptxkaneko202304.pptx
kaneko202304.pptx
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出し
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッド
 

ji-2. 計算