1 / 42

เก็บตกจากสัปดาห์ที่แล้ว

เก็บตกจากสัปดาห์ที่แล้ว. การแสดงผลแบบจัดรูปแบบเลขทศนิยม. การแสดงผลโดยใช้คำสั่ง System.out.print (); หรือ System.out.println (); ไม่สามารถกำหนดจำนวนจุดทศนิยมตามต้องการได้ ดังนั้น เมื่อไหร่ที่เราอยากกำหนดจำนวนจุดทศนิยมให้ใช้คำสั่ง System.out.printf (); รูปแบบคำสั่ง

Download Presentation

เก็บตกจากสัปดาห์ที่แล้ว

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. เก็บตกจากสัปดาห์ที่แล้วเก็บตกจากสัปดาห์ที่แล้ว

  2. การแสดงผลแบบจัดรูปแบบเลขทศนิยมการแสดงผลแบบจัดรูปแบบเลขทศนิยม • การแสดงผลโดยใช้คำสั่ง System.out.print(); หรือ System.out.println(); ไม่สามารถกำหนดจำนวนจุดทศนิยมตามต้องการได้ • ดังนั้น เมื่อไหร่ที่เราอยากกำหนดจำนวนจุดทศนิยมให้ใช้คำสั่ง System.out.printf(); รูปแบบคำสั่ง System.out.printf(“รูปแบบที่ต้องการ” , ตัวแปรต่างๆ );

  3. การแสดงผลแบบจัดรูปแบบเลขทศนิยมการแสดงผลแบบจัดรูปแบบเลขทศนิยม รูปแบบคำสั่ง System.out.printf(“รูปแบบที่ต้องการ” , ตัวแปรต่างๆ ); รูปแบบที่ต้องการ เขียนอย่างไร - ประกอบไปด้วยข้อความ และ %f - ใส่ไว้ภายใต้ “” ทั้งหมด - ตรงส่วนไหนเป็นข้อความก็พิมพ์ข้อความนั้นไป - ตรงไหนต้องการให้แสดงค่าที่อยู่ในตัวแปรให้ใส่เป็น %.2f (ตัวเลข 2 แทนจำนวนจุดทศนิยมที่ต้องการ) เช่น System.out.printf(“Mosteller %.2f” , ตัวแปรต่างๆ ); มี %f 1 ตำแหน่ง แสดงว่าต้องการกำหนดจำนวนจุดทศนิยมของ 1 ตัวแปร

  4. การแสดงผลแบบจัดรูปแบบเลขทศนิยมการแสดงผลแบบจัดรูปแบบเลขทศนิยม รูปแบบคำสั่ง System.out.printf(“รูปแบบที่ต้องการ” , ตัวแปรต่างๆ ); ตัวแปรต่างๆ เขียนอย่างไร - เขียนเฉพาะชื่อตัวแปรที่เราต้องการแสดงค่า - หากมีหลายตัว ให้เขียนเรียงต่อเนื่องกันไป - คั่นแต่ละตัวด้วย ( , ) เช่น System.out.printf(“Mosteller %.2f” , ans); จะต้องระบุตัวแปรกี่ตัว ขึ้นอยู่กับว่าในส่วนรูปแบบเราใส่ %f ไปกี่ครั้ง

  5. ทดลองเขียนคำสั่ง printf Lab1 : แสดงอุณหภูมิองศาเซลเซียสในรูปแบบทศนิยม 2 ตำแหน่ง เช่น Input : 100 Output : 37.78 double C = 37.77777777777778 System.out.printf(“%.2f”, C); Lab2 : เขียนโปรแกรมคำนวณพื้นที่ผิวกายในรูปแบบทศนิยม 3 ตำแหน่ง เช่น Input : 173 64 Output : Mosteller = 1.754 double ans = 1.7537261917287874 System.out.printf(“Mosteller = %.3f”,ans);

  6. ทดลองเขียนคำสั่ง printf Lab3 : แสดงตัวเลขแบบมีลูกน้ำ (,) คั่น เช่น Input : 2000 Output : 2,000 int a = 2 , b = 0; System.out.printf(“%d,%03d”,a,b);

  7. ทดลองเขียนคำสั่ง printf Hw1 : คำนวณราคาสุทธิของสินค้าแล้วแสดงผลลัพธ์ในรูปแบบทศนิยม 2 ตำแหน่ง เช่น Output : Total price after calculate discount 5% is 95.00 baht. double total = 95.0 System.out.print(Total price after calculate discount 5% is ”); System.out.printf(“%.2f baht.”,total);

  8. ทดลองเขียนคำสั่ง printf Hw3 : แปลงเงินบาทไปเป็นเงินดอลล่าร์ (ตอบเป็นทศนิยม 2 ตำแหน่ง) เช่น Output : 100 Baht = 2.46 Dollar int b = 100; double d = 2.463054187192 System.out.printf(“%d Baht= %.2f Dollar”,b, d);

  9. โปรแกรมแบบมีทางเลือก

  10. โจทย์ • เขียนโปรแกรมรับเลขจำนวนเต็ม 2 ตัวแล้วแสดงผลตัวเลขที่มีค่ามากกว่าทางหน้าจอ

  11. วิเคราะห์ปัญหา • Input • ตัวเลขแรก • ตัวเลขสอง • Process • หาจำนวนที่มากสุดระหว่างเลข 2 จำนวน • Output • ตัวเลขที่มากที่สุด

  12. ออกแบบโปรแกรม • แสดงข้อความ Enter first number : • รับเลขตัวแรกจำไว้ใน a • แสดงข้อความ Enter second number : • รับเลขตัวสองจำไว้ใน b • แสดงข้อความว่า Maximum number is • ถ้า a มากกว่า b แสดงค่า a ทางหน้าจอ • ถ้าไม่ใช่ แสดงค่า b ทางหน้าจอ

  13. ทฤษฎีที่เกี่ยวข้อง

  14. การทำงานแบบมีเงื่อนไขการทำงานแบบมีเงื่อนไข • การทำงานของคอมพิวเตอร์นอกเหนือจากการทำงานแบบตามลำดับแล้ว • จะมีการทำงานอีกลักษณะ คือ การทำงานแบบมีเงื่อนไข • การทำงานอย่างหนึ่งจะถูกเลือกให้ทำงาน เมื่อเงื่อนไขเป็นจริง • การทำงานลักษณะนี้ จะทำให้คอมพิวเตอร์มีการทำงานที่หลากหลายมากขึ้น

  15. คำสั่งควบคุมการทำงานแบบเลือกทำคำสั่งควบคุมการทำงานแบบเลือกทำ • คำสั่งควบคุมการทำงานแบบเลือกทำใน Java ที่เราจะเรียนกันวันนี้มี 2 คำสั่ง คือ • คำสั่ง if • คำสั่ง if – else • คำสั่ง if • เป็นการเลือกว่าจะ “ทำ” หรือ “ไม่ทำ” • ใช้เงื่อนไขเป็นตัวตัดสิน ถ้าทดสอบแล้วพบว่าเงื่อนไขเป็นจริงจะทำ ถ้าเป็นเท็จก็ไม่ทำ • คำสั่ง if –else • เป็นการเลือกว่าจะทำงานไหน ระหว่างงาน 2 งานที่มีอยู่ • ใช้เงื่อนไขเป็นตัวตัดสิน ถ้าเงื่อนไขเป็นจริงทำงานแรก ถ้าเป็นเท็จทำงานอย่างที่สอง

  16. รูปแบบคำสั่ง • คำสั่ง if if (เงื่อนไข ) { คำสั่งที่จะทำเมื่อเงื่อนไขเป็นจริง ; } • คำสั่ง if –else if(เงื่อนไข ) { คำสั่งที่จะทำเมื่อเงื่อนไขเป็นจริง ; } else { คำสั่งที่จะทำเมื่อเงื่อนไขเป็นเท็จ ; } ในการใช้ if ไม่จำเป็นต้องมี else เสมอไป ขึ้นอยู่กับว่าเมื่อเงื่อนไขเป็นเท็จเราต้องการให้ทำอะไรไหม แต่อยู่ๆ เราจะเขียน else ตัวเดียวโดดๆ เลยไม่ได้

  17. เงื่อนไขเขียนอย่างไร • การกำหนดเงื่อนไขในคำสั่ง if และ if-else จะใช้การเปรียบเทียบ (expression) เพื่อให้ได้ผลลัพธ์ทางตรรกศาสตร์ (มีค่าเป็นจริง หรือ เท็จ) • โดยเครื่องหมายในการเปรียบเทียบของภาษา Java มีดังนี้ • มากกว่า (>) • น้อยกว่า (<) • มากกว่าหรือเท่ากับ (>=) • น้อยกว่าหรือเท่ากับ (<=) • เท่ากับ (==) • ไม่เท่ากับ (!=)

  18. เงื่อนไขเขียนอย่างไร จริง เท็จ จริง เท็จ จริง เท็จ จริง จริง จริง เท็จ จริง เท็จ เท็จ จริง

  19. ลำดับการทำงานในคำสั่ง if • รูปแบบคำสั่ง if(เงื่อนไข) { คำสั่ง ; } 1 if ( a > b ) { System.out.println(“เลขตัวแรกมากกว่าตัวหลัง”); } System.out.println(“จบการทำงาน”); 2 3

  20. ลำดับการทำงานในคำสั่ง if - else • รูปแบบคำสั่ง if( เงื่อนไข ) { คำสั่ง 1 ; } else { คำสั่ง 2; } สังเกตว่า เงื่อนไข เป็นส่วนที่ถูกทำก่อนเสมอ เพื่อจะตัดสินใจได้ว่า ควรทำคำสั่งไหนต่อไป 1 if ( a > b ) { System.out.println(“เลขตัวแรกมากกว่าตัวหลัง”); }else{ System.out.println(“เลขตัวหลังมากกว่าตัวแรก”); } System.out.println(“จบการทำงานของโปรแกรม”); 2 2 3

  21. คำสั่ง กับ กลุ่มคำสั่ง • ตามข้อกำหนดของคำสั่ง if และ if-else เราสามารถเขียนคำสั่งให้ทำหลัง if และ หลัง else ได้ 1 กลุ่มคำสั่ง (ใช้ {} ครอบกลุ่มคำสั่งนั้น) • ในกรณีที่เรามีเพียงคำสั่งเดียว สามารถเขียนหลัง if หรือ else ได้เลยโดยไม่ต้องมีเครื่องหมาย {} if (w < 0) w = w + 7; if (w ==0) System.out.println(“วันเสาร์”); if (w ==1) System.out.println(“วันอาทิตน์”); if (w ==2) System.out.println(“วันจันทร์”); if (w ==3) System.out.println(“วันอังคาร”); if (w ==4) System.out.println(“วันพุธ”); if (w ==5) System.out.println(“วันพฤหัส”); if (w ==6) System.out.println(“วันศุกร์”); ในตอนเริ่มต้นเพื่อป้องกันการ error ไม่ว่าจะมีกี่คำสั่งให้ใส่ปีกกาเสมอ

  22. เขียนโปรแกรม Algorithm Source code if( a > b) { System.out.println(a); } else{ System.out.println(b); }

  23. เขียนโปรแกรม Source code if(a > b) { System.out.println(a); } if(b > a) { System.out.println(b); } Algorithm สองเงื่อนไขนี้มีความตรงข้ามกัน ถ้าใช้ if เราต้องระบุเงื่อนไขทั้งคู่ ถ้าใช้ else จะหมายถึงส่วนที่เหลือทั้งหมดจึงไม่ต้องระบุเงื่อนไข code

  24. โจทย์ จงเขียนโปรแกรมรับเลขจำนวนเต็ม 2 ตัวแล้วนับว่าตัวเลขที่รับเข้ามา มีเลขจำนวนเต็มบวกทั้งหมดกี่ตัวดังตัวอย่าง ตัวอย่างที่ 1 2 3 The number of positive is 2 ตัวอย่างที่ 2 -1 0 The number of positive is 1

  25. วิเคราะห์ปัญหา • Output • จำนวนตัวเลขเต็มบวก • Input • เลขตัวที่ 1 • เลขตัวที่ 2 • Process นับตัวเลขที่เป็นจำนวนเต็มบวก

  26. ออกแบบโปรแกรม • รับเลขตัวที่ 1 จำไว้ใน a • รับเลขตัวที่ 2 จำไว้ใน b • กำหนด count (ตัวนับ) ให้จำค่า 0 ไว้ • ถ้า a >= 0 เพิ่มค่า count ไป 1 • ถ้า b >= 0 เพิ่มค่า count ไป 1 • แสดงข้อความ The number of positive is ตามด้วยค่าที่ count จำไว้

  27. เขียนโปรแกรม • Algorithm • Source code • count = 0; • if(a >= 0) { • count = count + 1; • } • if(b >=0) { • count = count + 1; • } โจทย์ข้อนี้ไม่สามารถใช้ if-else ได้ เพราะไม่ว่า input จะเป็นอะไร ตัวเลขทุกตัวจะต้องถูกทดสอบ ถ้าเราใช้ if – else มันจะเลือกทดสอบเพียงแค่เงื่อนไขใดเงื่อนไขหนึ่งเท่านั้น ข้อควรระวังคือ เราต้องสร้างตัวแปรมาช่วยจำว่าพบข้อมูลที่ต้องการกี่ตัวแล้ว (count) จะได้ไม่ลืม ถ้าเราไม่กำหนดค่าเริ่มต้นของตัวนับเป็น 0 บางครั้งจาวาจะไปเอาค่าเน่าๆ มาเป็นค่าตั้งต้น ทำให้ผลลัพธ์โปรแกรมเราผิด

  28. ทฤษฎีที่เกี่ยวข้อง • คำสั่ง count = count + 1; • หมายความว่า ของเดิมตัวแปร count เคยจำอะไรไว้ ให้บวกเพิ่มไป 1 • สามารถเขียนคำสั่งแบบย่อได้ ดังนี้ count++; • ทั้งสองแบบคือคำสั่งที่ให้ผลลัพธ์เหมือนกัน • หากเราต้องการลดค่าในตัวแปรลง 1 ทำได้ ดังนี้ • count = count – 1; หรือ • count--;

  29. บวกบวก • สามารถวางไว้หน้า หรือ หลังตัวแปรก็ได้ ซึ่งจะให้ผลลัพธ์ที่แตกต่างกัน • ++a คือ การเพิ่มค่าของ a ขึ้น 1 ก่อนแล้วจึงนำค่าของ a ไปใช้ ตัวอย่าง 1 b = ++a จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ a = a + 1; b = a; • a++ คือ การนำค่าของ a ไปใช้ก่อน แล้วจึงเพิ่มค่า a ขึ้น 1 ตัวอย่าง 2 b = a++ จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ b = a ; a = a + 1;

  30. ตัวอย่าง • สมมุติให้ j = 4 • คำสั่ง i = 2 + ++j;มีค่าเป็นเท่าไหร่ • เพิ่มค่า j ก่อน (j = 5) • แล้วนำค่า j บวกกับ 2 • ผลลัพธ์จะทำให้ iมีค่าเป็น 7 • ส่วนคำสั่ง i = 2 + j++; มีค่าเป็นเท่าไหร่ • นำค่า j บวกก่อน (2 + 4) • จะทำให้ iมีค่าเป็น 6 • แล้วค่อยเพิ่มค่า j ดังนั้น j จะมีค่าเป็น 5

  31. ลบลบ • --c คือ การลบค่าของ c ลง 1 ก่อนแล้วจึงนำค่าของ c ไปใช้ ตัวอย่าง 1 d = --c จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ c = c - 1; d = c ; • c-- คือ การนำค่าของ c ไปใช้ก่อน แล้วจึงลดค่า a ลง 1 ตัวอย่าง 2 d = c-- จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ d = c ; c = c - 1;

  32. ตัวอย่าง • สมมุติให้ j = 4 • คำสั่ง i = 2 + --j; มีค่าเป็นเท่าไหร่ • ลดค่า j ลงก่อน (j = 3) • แล้วนำไปบวก (3 + 2 ) • จะทำให้ i มีค่าเป็น 5 • ส่วนคำสั่ง i = 2 + j-- ; มีค่าเป็นเท่าไหร่ • บวกก่อน (2 + 4) • จะทำให้ i มีค่าเป็น 6 • แล้วค่อยลดค่า j ลง (j = 3)

  33. ตัวดำเนินการเสริม • ตัวดำเนินการให้ค่า • สมมุติเรามีคำสั่ง x = x + 2; เราสามารถเขียนสั้นๆได้เป็น x += 2 ก็ได้ • หมายความว่า ของเดิม x มีค่าอะไรอยู่ให้บวกเพิ่มไปอีก 2 • จาวาให้เราเขียนแบบลัดในลักษณะนี้กับตัวดำเนินการคำนวณได้ทุกตัว เช่น • x = x + 2; เขียนได้เป็น x += 2; • x = x – 5; เขียนได้เป็น x -= 5; // ลบออกจากค่าเดิมไป 5 • x = x * y; เขียนได้เป็น x *= y;// คูณเพิ่มจากค่าเดิมไปเท่ากับค่าที่ y จำไว้ • x = x / a; เขียนได้เป็น x /= a;// หารออกจากค่าเดิมไปเท่ากับค่าที่ a จำไว้ • x = x % (a+b); เขียนได้เป็น x %= (a+b); // mod จากค่าเดิมไปเท่ากับค่า (a + b)

  34. โจทย์ จงเขียนโปรแกรมเพื่อพิจารณาว่าเลขจำนวนเต็มที่รับเข้ามา เป็นเลขคู่ หรือ เลขคี่ และให้แสดงผลลัพธ์ทางหน้าจอ ดังตัวอย่าง

  35. วิเคราะห์ปัญหา • Input • เลขจำนวนเต็ม • Process • พิจารณาว่าตัวเลขแล้วแสดงผลลัพธ์ว่าเป็น เลขคู่ หรือ เลขคี่ • Output • ข้อความแสดงชนิดของตัวเลข

  36. ออกแบบโปรแกรม Algorithm • แสดงข้อความ Enter number : • รับค่าตัวเลขจำไว้ใน num • ถ้า numหารด้วย 2 ลงตัว แสดงค่าใน numตามด้วยข้อความ “is even number” • ถ้าไม่ใช่ แสดงค่าใน numตามด้วยข้อความ “is odd number”

  37. เขียนโปรแกรม Algorithm Source code if( num % 2 == 0) { System.out.println(num + “ is even number”); } else { System.out.println(num + “ is odd number”); } code

  38. บทเสริม

  39. byte, short, long, float • นอกจากจาวาจะมีชนิดข้อมูลแบบ intและ double เพื่อแทนจำนวนเต็มและจำนวนจริงแล้วจาวายังมีประเภทข้อมูลแบบ • byte, short และ long สำหรับจำนวนเต็ม • แบบ float สำหรับข้อมูลจำนวนจริง • ประเภทข้อมูลแต่ละแบบใช้เนื้อที่ในการเก็บที่ต่างกัน และสามารถเก็บค่าในช่วงที่ต่างกัน เช่น • จำนวนจริงแบบ float เก็บค่าในช่วงที่แคบกว่า และละเอียดแม่นยำน้อยกว่า double

  40. ข้อมูลประเภทตัวเลขในจาวาข้อมูลประเภทตัวเลขในจาวา

  41. ข้อมูลประเภทตัวเลขในจาวาข้อมูลประเภทตัวเลขในจาวา ขอย้ำว่า ถ้าต้องการใช้จำนวนเต็มก็ให้ใช้ intถ้าต้องการใช้จำนวนจริงให้ใช้ double เว้นแต่ว่า • ใช้ byte, short และ float เมื่อต้องการประหยัดเนื้อที่หน่วยความจำ • ใช้ long เมื่อต้องการเก็บจำนวนเต็มที่มีค่ามากจริงๆ (เกิน 2 พันล้าน)

  42. เครื่องหมาย + ในภาษา Java • เครื่องหมาย + ถ้านำไปใช้กับสตริง จะหมายถึง การต่อสตริง เช่น “A” + “B” จะได้ “AB” • ถ้านำสตริง + ตัวเลข ตัวแปลโปรแกรมจะตีความว่าเป็นการต่อสตริงเช่นกัน • “K” + 9 จะเปลี่ยน 9 เป็นสตริงได้ผลลัพธ์ K9 • 9 + “K” จะได้ 9K

More Related