2110101 : การทําโปรแกรมคอมพ ิวเตอร...

38
2110101 : การทําโปรแกรมคอมพิวเตอร ประเภทของขอมูล ตัวแปร และตัวปฏิบัติการพื้นฐาน ภาควิชาวิศวกรรมคอมพิวเตอร จุฬาลงกรณมหาวิทยาลัย

Upload: others

Post on 30-Oct-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 : การทาโปรแกรมคอมพวเตอร

ประเภทของขอมล ตวแปร และตวปฏบตการพนฐาน

ภาควชาวศวกรรมคอมพวเตอรจฬาลงกรณมหาวทยาลย

Page 2: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 2

หวขอ

• สงทตองรกอนทาโปรแกรม• ประเภทขอมล

– จานวนเตม– จานวนจรง

• ตวแปร– การประกาศ– กฏการตงชอ

• ตวปฏบตการ + – * / %• นพจน

Page 3: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 3

การศกษาภาษาการทาโปรแกรม

• ไวยากรณของภาษา– เขยนอยางไร ใหถกกฏ ตวแปลภาษาเขาใจ

• คาสง– มอะไรใหใช ใหนามาประกอบกน (ตามไวยากรณ) เพอแกไขปญหาทตองการ

• ประเภทขอมล– เลอกใชประเภทขอมลใหเหมาะสมกบงานเพอประสทธภาพ และความถกตองในการทางาน

Page 4: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 4

ไวยากรณของภาษาการทาโปรแกรม

• ไมซบซอน• ไมกากวม• แตผดนดผดหนอยไมได (ตองเขยนถก 100%)

public class Hello1

Public static void main(String [] a)

system.out.println('Hello 2110101')

public class Hello1

Public static void main(String [] a)

system.out.println('Hello 2110101')

compiler จะแจงตาแหนงและสาเหตของความผดพลาด

ตวใหญ

ตวเลก

เกน " "ม ;

Page 5: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 5

คาสงและคลงคาสงของจาวา

• keywords : มทงสน 47 ตว (เชน do,while, if, else, switch, ...)

• operators : มวธปฏบตการทางคณตศาสตรและตรรกศาสตรทงสน 40 วธ (เชน +, –, *, /, %, +=, ...)

• library : มคลงคาสงขนาดใหญมโหฬารใหเรยกใชไดเปนหมน (เชน sqrt, cos, sort, clone, getTimeZone, getLocale, getWordInstance, ...)

60%

1%

Page 6: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 6

ประเภทขอมล

• ประเภทพนฐาน– ม 8 ประเภท

• จานวนเตม : byte, short, int, long• จานวนจรง : float, double• อกขระ : char• ตรรกะ : boolean

– ออกแบบเพมเตมไมได

• ประเภท class– มแบบมาตรฐานเกอบสามพนแบบ

• เชน String, Text, Rectangle, ...

– ออกแบบเองเพมเตมได

Page 7: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 7

ประเภทขอมล : วตถประสงค

• ระบบใชเนอทหนวยความจาอยางเหมาะสม– byte (1 ไบต), short (2 ไบต), int (4 ไบต),long (8 ไบต), float (4 ไบต), double (8 ไบต),char (2 ไบต)

• ระบบประมวลผลอยางมประสทธภาพ(เชน ประมวลผลจานวนเตมแบบ int ไมชากวาแบบ long)

• compiler ตรวจสอบความถกตองของโปรแกรมได• ผเขยนบอกจดประสงคของการใชขอมล• คนอนอานเขาใจโปรแกรมไดงาย

Page 8: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 8

ประเภทจานวนเตม (integer)

• จานวนเตม (ไมมจดทศนยม)เชน 1023, 76289, 0, –10, +67392

• มสขนาด ขนกบชวงของจานวนทใช– byte (-128 ถง 127)– short (-32678 ถง 32767)– int (-2147483648 ถง 2147483647)– long (-263 ถง 263 - 1)

โดยทวไปใช intโดยทวไปใช int

Page 9: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 9

ประเภทจานวนจรง (real number)

• จานวนทมจดทศนยมไดเชน 102.0, 3.14159, 0.0, -10.8, +0.3333

• จาวาเกบจานวนจรงแบบ floating point10000000 เกบ 0.1x108 , 0.0000012 เกบ 0.12x10-5

• มสองขนาด ขนกบความละเอยดของจานวนทเกบ– float เกบประมาณ 6-9 ตาแหนงหลงจดทศนยมในชวง

( -3.4x1038 ถง -1.4x10-45 ศนย และ 1.4x10-45 ถง 3.4x1038)– double เกบประมาณ 15-17 ตาแหนงหลงจดทศนยมในชวง

( -1.8x10308 ถง -4.9x10-324 ศนย และ 4.9x10-324 ถง 1.8x10308)

โดยทวไปใช doubleโดยทวไปใช double

Page 10: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 10

ทาไมตองมจานวนเตม จานวนจรงนาจะพอ ?

• float เกบขอมลในชวงทกวางกวา int มากๆ• int เกบขอมลไดทกๆ ตวทเปนไปไดในชวง• float เกบไดบางตวเทานน (เพราะเกบจานวนตวเลขหลงจดทศนยมไดจากด)

• ตวอยาง– int เกบคา 2147483647 ได– float เกบคา 2147483647 ไมได

ถายดเยยดให จะเกบเปน 2.14748365 x 109

ประเภทขอมลพนฐาน ประมวลผลไดเรวมาก เพราะมขนาดจากด และฮารดแวรรองรบการทางานโดยตรงประเภทขอมลพนฐาน ประมวลผลไดเรวมาก เพราะมขนาดจากด และฮารดแวรรองรบการทางานโดยตรง

Page 11: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 11

ประเภทอกขระ (character)

• ขอมลแบบ char คอตวอกขระหนงตว• อกขระ (character) คอ

– ตวอกษร (ในภาษาตางๆ )เชน 'a', 'b', 'A', 'B', 'Ω', 'Ж', 'ก', 'ข'

– ตวเลข 0-9 (ในภาษาตางๆ )เชน '1', '2', '๑', '๒'

– สญลกษณพเศษ (ในภาษาตางๆ )เชน '#', '$', '฿', '๛'

– รหสควบคมอปกรณเชน '\n' ตวขนบรรทดใหม '\t' ตว tab

Page 12: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 12

ประเภทสายอกขระ (String)

• String คอลาดบของ char จานวนศนยตวขนไป– "engineering"– "[email protected]"– "วศวกรรมศาสตร"– "Hello How are you?" – ""

"1004" ไมเหมอนกบ 1004"1004" ไมเหมอนกบ 1004

"" มความหมาย แต '' ไมม"" มความหมาย แต '' ไมม

Page 13: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 13

ประเภทตรรกะ (boolean)

• boolean

• มไดแคสองคาคอ true และ false เทานน• 1 ไมไดแทน true 0 ไมไดแทน false

Page 14: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 14

ตวแปร (Variable)

• ตวแปรเปนทเกบขอมลชวคราวของโปรแกรม• ตวแปรทกตวมชอและประเภทขอมลกากบ• ตองประกาศตวแปรกอนทจะนามาใช

public class Zombie

public static void main(final String[] args ) int counter = 0;double radius = 5.225;boolean success = false;String name = "somchai";

...

public class Zombie

public static void main(final String[] args ) int counter = 0;double radius = 5.225;boolean success = false;String name = "somchai";

...

Page 15: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 15

ตวแปร

• ตวแปรเปนทเกบขอมลชวคราว• การนาขอมลทเกบในตวแปรมาใช ไมทาใหขอมลทเกบในตวแปรสญหาย

• การนาขอมลใหมเกบใสตวแปร เปนการแทนทขอมลเดม (ระบบไมเกบสาเนาขอมลเดมไว)

int numCircles = 27, k;

System.out.println( numCircles );System.out.println( numCircles );

k = 35;numCircles = k;

27int numCircles

??int k

35int numCircles

35int k

Page 16: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 16

การประกาศตวแปร

int counter = 0;double radius = 5.225;boolean success = false;char korKai = 'ก';String name = "somchai";

int counter = 0;double radius = 5.225;boolean success = false;char korKai = 'ก';String name = "somchai";

ประเภทขอมล ชอตวแปร คาเรมตนของขอมลทเกบในตวแปร

int i = 100, j = 200;double x0, y0, z0;double x1, y1 = 4.5, z1 = 7.8;

int i = 100, j = 200;double x0, y0, z0;double x1, y1 = 4.5, z1 = 7.8;

ประกาศบรรทดละหลายตว หรอจะไมใสคาเรมตนกได

Page 17: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 17

ตวอยางการประกาศตวแปรทผด

int counter = 0.75;double radius = "15.25";boolean success = 1;

int counter = 0.75;double radius = "15.25";boolean success = 1;

integer counter;doublE radius = "15.25";string title = ”WWW";

integer counter;doublE radius = "15.25";string title = ”WWW";

ใสคาเรมตนทผดประเภท

นยามประเภทขอมลทไมรจก

int boolean;double public = 12.7;String 12X = ”WWW";

int boolean;double public = 12.7;String 12X = ”WWW";

ตงชอตวแปรผดกฏ

int counterint counter

ไมไดปดทายบรรทดดวย ;

Page 18: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 18

กฎการตงชอ

• ชอประกอบดวยตวอกษร ตวเลข ตว $ หรอ _ กได• ชอหามขนตนดวยตวเลข• ชอยาวๆ ไดไมเปนไร• ตวอกษรตวใหญไมเหมอนตวเลก• ตองไมซากบคาสงวนของภาษาจาวา• ตองไมซากบชออนๆ ของโปรแกรม (เชน ชอ class )

ตวอยางถก

int17 butterCup Public int2String day_of_weekint17 butterCup Public int2String day_of_week

ตวอยางผด

7zean I.love.you public ohOH! ed-edd-n-eddy7zean I.love.you public ohOH! ed-edd-n-eddy

Page 19: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 19

คาสงวนในภาษาจาวา

abstract assert boolean break bytecase catch char class constcontinue default do double elseextends false final finally floatfor goto if implements importinstanceof int interface long nativenew null package private protectedpublic return short static strictfpsuper switch synchronized this throwthrows transient true try voidvolatile while

หามนาคาสงวนมาตงเปนชอตวแปร

Page 20: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 20

ธรรมเนยมนยมในการตงชอ

• ตวแปร : ขนตนดวยตวอกษรตวเลก• class : ขนตนดวยตวอกษรตวใหญ• หลกเลยงการใช _ และ $• สอความหมาย• ถาชอประกอบดวยคาหลายคา เขยนแบบ "หลงอฐ"

numStudents dayOfWeek imageBuffer

tvChannel customerID initialVelocity

Page 21: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 21

ตวปฏบตการพนฐาน : จานวนเตม

• บวก ลบ คณ หาร และเศษเหลอจากการหาร( + – * / % )

int i=1, j=2, k;

k = i + j;

i = k * j;

j = i / 2;

k = i % 2;

i = (j + k) * 3;

1

int i int j int k

2 ?

1 2 3

6 2 3

6 3 3

6 3 0

9 3 0

ทาเปนลาดบจากบนลงลาง

การเปลยนแปลง

คาของตวแปร

Page 22: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 22

ตวปฏบตการพนฐาน : จานวนจรง

• บวก ลบ คณ หาร และเศษเหลอจากการหาร( + – * / % )

double x=1.0, y=2.0;

x = y + 5.0;

y = x / 2.0;

x = y % 3.0;

y = (x * 3.0) + 2.0;

x = -0.5 - y;

1.0

double x double y

2.0

7.0 2.0

7.0 3.5

0.5 7.0

0.5 3.5

- 4.0 3.5

ทาเปนลาดบจากบนลงลาง

การเปลยนแปลง

คาของตวแปร

Page 23: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 23

การใหคาตวแปร (Assignment)

• ใชเครองหมาย =

ตวแปร = นพจน ;ตวแปร = นพจน ;

ชอตวแปรทรบคา นพจน ทใหเปนผลลพธซงมประเภทขอมลเดยวกบตวแปรทรบคา

x = (-b + Math.sqrt(b*b - 4*a*c)) / (2.0*a);x = (-b + Math.sqrt(b*b - 4*a*c)) / (2.0*a);

2.5

3.6

1.0

double a

double b

double c

-0.376

double x

aacbb

242 −+−-0.376

Page 24: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 24

นพจน (Expression)

• คาคงตว ตวแปร ฟงกชน (หรอ method) หรอ• การรวมกนของคาคงตว ตวแปร ฟงกชน นพจนยอย ดวยตวปฏบตการ และเครองหมายวงเลบปดเปด ทสามารถคานวณคาได

(-b + Math.sqrt(b*b - 4.0*a*c)) / (2.0*a)(-b + Math.sqrt(b*b - 4.0*a*c)) / (2.0*a)

โดยทวไปจะเตมชองวางเพอใหอานงาย และเตมวงเลบเพอกาจดความกากวม

3259

+c

aacbb

242 −+−

((9.0 * c) / 5.0) + 32.0

(((9.0) * (c)) / (5.0)) + (32.0)

9.0*c/5.0+32.0

((9.0 * c) / 5.0) + 32.0

(((9.0) * (c)) / (5.0)) + (32.0)

9.0*c/5.0+32.0

Page 25: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 25

ตวอยาง

i = j;i = j; นาคาของตวแปร j ไปใสในตวแปร i

i = i + j;i = i + j; นาคาของตวแปร i และ j มาบวกกนแลวนาผลบวกทไดไปใสในตวแปร i

int i=1, j=2;

i = i + j;

j = j + j + j;

1 2

3 2

3 6

int i int j

Page 26: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 26

ตวอยาง

x = -x;

f = ((9.0 * c) / 5.0) + 32.0;

c = 5 * (f - 32.0) / 9.0;

d = Math.sqrt(dx*dx + dy*dy);

x = -x;

f = ((9.0 * c) / 5.0) + 32.0;

c = 5 * (f - 32.0) / 9.0;

d = Math.sqrt(dx*dx + dy*dy);

3259

+←cf

xx −←

9)32(5 −

←fc

22 yxd ∆+∆←

yyxxd ∆∆+∆∆← )(

Page 27: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 27

กฎการพจารณาลาดบการคานวณ

• ทาภายในวงเลบทากอน• ในกรณมตวปฏบตการหลายตว ทาตามลาดบดงน

– การเรยกใช method– unary – +– * / %– + –– =

• ทาจากซายไปขวา (ในกรณท operator มศกดศรเทากน)

Page 28: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 28

วงเลบกาหนดลาดบการคานวณ

x = ((9.0 * c) / 5.0) + 32.0x = ((9.0 * c) / 5.0) + 32.0

*

/

+

Page 29: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 29

ตวปฏบตการกาหนดลาดบการคานวณ

x = (-b + Math.sqrt(b*b - 4.0*a*c)) / (2.0*a)x = (-b + Math.sqrt(b*b - 4.0*a*c)) / (2.0*a)

* *

*

-

*-

Math.sqrt()

+

/

Page 30: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 30

ตวอยางผดๆ

int i, k = 9;

double x = 1.0;

k = i; // i is uninitialized

i = x; // assign double to int

i = 3k; // no operator

3.0 * x + 5.78; // not a complete statement

i = 3--k; // should be i = 3 - (-k)

i = (k + 5; // incomplete parentheses

int i, k = 9;

double x = 1.0;

k = i; // i is uninitialized

i = x; // assign double to int

i = 3k; // no operator

3.0 * x + 5.78; // not a complete statement

i = 3--k; // should be i = 3 - (-k)

i = (k + 5; // incomplete parentheses

Page 31: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 31

โปรแกรมแปลงหนวยเรเดยนเปนองศา

• Requirement– โปรแกรมรบมมหนวยเปนเรเดยนแลวแปลงเปนองศา

• Analysis– รบมม x เปนจานวนจรงผานทางแปนพมพ– x เรเดยนมคาเทากบ องศา

– แสดงมมหนวยเปนองศาทหาไดทางจอภาพ

• Design– เขยนผงงาน

• Implementation– เขยนโปรแกรม

xx 296.572

360≈

π

Page 32: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 32

ผงงาน โปรแกรม และการทดสอบ

จบการทางาน

เรมการทางาน

รบมม (radian)เกบใสตวแปร x

57.296 * x

import jlab.JLabIO;

public class Radian2Degree

public static void main(String[] args) double x, d;x = JLabIO.readDouble("input radian : ");d = 57.296 * x;System.out.println(d);

import jlab.JLabIO;

public class Radian2Degree

public static void main(String[] args) double x, d;x = JLabIO.readDouble("input radian : ");d = 57.296 * x;System.out.println(d);

JLab>java Radian2Degree

input radian : 3171.888JLab>

Page 33: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 33

โปรแกรมแปลงหนวยเรเดยนเปนองศา

import jlab.JLabIO;

public class Radian2Degree

public static void main(String[] args) double x, d;x = JLabIO.readDouble("input radian : ");d = 180.0 * x / Math.PI;System.out.println( x + " radians = " + d + " degrees");

import jlab.JLabIO;

public class Radian2Degree

public static void main(String[] args) double x, d;x = JLabIO.readDouble("input radian : ");d = 180.0 * x / Math.PI;System.out.println( x + " radians = " + d + " degrees");

JLab>java Radian2Degree

input radian : 33.0 radians = 171.88733853924697 degreesJLab>

π• ในจาวามคา ใหใช• Math.PI = 3.14159265358979323846

Page 34: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 34

โปรแกรมหา R จากการตอ R 3 ตวแบบขนาน

• Requirement– โปรแกรมหาความตานรวมจากการตอความตานทาน 3 ตวแบบขนาน

• Analysis– รบคาความตานทาน (K ohms) 3 ตวจากแปนพมพ

– แสดงคาความตานทานรวม ทางจอภาพ

• Design– เขยนผงงาน

• Implementation– เขยนโปรแกรม

321

1111

rrr++

r1

r2

r3

Page 35: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 35

ผงงาน โปรแกรม และการทดสอบ

จบการทางาน

เรมการทางาน

รบ r1 r2 และ r3

import jlab.JLabIO;

public class ParallelResistance

public static void main(String[] args) double r1, r2, r3, r;r1 = JLabIO.readDouble("r1 (Kohms) = ");r2 = JLabIO.readDouble("r2 (Kohms) = ");r3 = JLabIO.readDouble("r3 (Kohms) = ");r = 1.0 / (1.0/r1 + 1.0/r2 + 1.0/r3);System.out.println("R (parallel) = "

+ r + " Kohms");

import jlab.JLabIO;

public class ParallelResistance

public static void main(String[] args) double r1, r2, r3, r;r1 = JLabIO.readDouble("r1 (Kohms) = ");r2 = JLabIO.readDouble("r2 (Kohms) = ");r3 = JLabIO.readDouble("r3 (Kohms) = ");r = 1.0 / (1.0/r1 + 1.0/r2 + 1.0/r3);System.out.println("R (parallel) = "

+ r + " Kohms");

JLab>java ParallelResistancer1 (Kohms) = 22r2 (Kohms) = 33r3 (Kohms) = 100R (parallel) = 11.660777385159012 KohmsJLab>

321

1111

rrr++

Page 36: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 36

โปรแกรมหารากของสมการกาลงสอง

• Requirement– โปรแกรมหารากของสมการ

• Analysis– รบจานวนจรง a b และ c ผานทางแปนพมพ

– คานวณรากสองรากจากสตร

– แสดงรากทงสองทหาไดทางจอภาพ

• Design– เขยนผงงาน

• Implementation– เขยนโปรแกรม

02 =++ cbxax

aacbbx

242 −±−

=

Page 37: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 37

ผงงาน

จบการทางาน

เรมการทางาน

รบคา a b และ c

x1, x2

aacbbx

241

2 −+−=

aacbbx

242

2 −−−=

Page 38: 2110101 : การทําโปรแกรมคอมพ ิวเตอร ประเภทของข อมูล ตัวแปร ...somchai/2110101/Lectures/pdf1/101-03.pdf ·

2110101 วศวกรรมคอมพวเตอร จฬา สมชาย ประสทธจตระกล (2545) 38

โปรแกรมและการทดสอบ

import jlab.JLabIO;

public class QRoot public static void main(String[] args)

double a, b, c, x1, x2;

a = JLabIO.readDouble("a = ");b = JLabIO.readDouble("b = ");c = JLabIO.readDouble("c = ");

double t = Math.sqrt(b * b - 4.0 * a * c);x1 = (-b + t) / (2.0 * a);x2 = (-b - t) / 2.0 / a;System.out.println("x1 = " + x1);System.out.println("x2 = " + x2);

import jlab.JLabIO;

public class QRoot public static void main(String[] args)

double a, b, c, x1, x2;

a = JLabIO.readDouble("a = ");b = JLabIO.readDouble("b = ");c = JLabIO.readDouble("c = ");

double t = Math.sqrt(b * b - 4.0 * a * c);x1 = (-b + t) / (2.0 * a);x2 = (-b - t) / 2.0 / a;System.out.println("x1 = " + x1);System.out.println("x2 = " + x2);

JLab>java QRoota = 1b = 4c = 3x1 = -1.0x2 = -3.0JLab>

aacbbx

242 −±−

=