!อป%&’การ fundamental 886201 programming...

24
อปการ ชา 886201 Programming Fundamental วยศาสตราจาร ดร.สา มเจญ 1

Upload: vandung

Post on 17-May-2018

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

คู่มือปฏิบัติการวิชา 886201 Programming Fundamental

ผู้ช่วยศาสตราจารย์ ดร.สุนิสา ริมเจริญ

1

Page 2: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

2ชนิดข้อมูลเบื้องต้น การประกาศตัวแปร และ การรับข้อมูลเข้า1.ชนิดข้อมูลเบื้องต้น2.การประกาศตัวแปร3.การกำหนดค่าให้ตัวแปร4.การรับข้อมูล5.การบ้าน

ปฏิบัติการที่

Page 3: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

2

ชนิดข้อมูลเบื้องต้น

ชนิดข้อมูลเบื้องต้น

int

double

char

string

ข้อมูลตัวเลขจำนวนเต็ม (Integer) ซึ่งเป็นได้ทั้งจำนวนเต็มบวก จำนวนเต็มลบ

จำนวนเต็มศูนย์

ตัวเลขจำนวนริง (Real Number) เป็น จำนวนที่มีจุดทศนิยม

ข้อมูลชนิดอักขระ (Character) จำพวกตัวอักษร (Letter) ตัวเลข (Digit) หรือสัญลักษณ์ (Symbol) เพียง 1 ตัวเท่านั้น ข้อมูลชนิดอักขระจะเขียนไว้ภายใต้เครื่องหมาย ‘ ’ (Single Quote) เช่น ‘A’ หรือ ‘a’

ข้อมูลที่เป็นอักขระหรือสายอักขระ (ข้อความ) เช่น “A” หรือ “Programming”

หรือ “100” หรือ “” (Empty String) ข้อมูลชนิดข้อความจะเขียนอยู่ภายใต้เครื่องหมาย “ ” (Double Quote)

ชนิดข้อมูล ขนาด (bits) ขอบเขตint 32 -2,147,483,648 ถึง 2,147,483,647

double 64 ประมาณ ±10308

char 8 ASCII character (-128 ถึง 127)

Page 4: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

3

ชนิดข้อมูลเบื้องต้น

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

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

โดยชื่อของตัวแปรนี้ จะกำหนดเป็นกลุ่มอักษรที่ผู้เขียนโปรแกรมสามารถกำหนดเองได้ โดยมีข้อกำหนดดังนี้ • ชื่อของตัวแปรควรสื่อความหมาย • ตัวอักษรตัวแรกต้องเป็นตัวอักษรหรือ _ (underscore) จะเป็นตัวเลขไม่ได้ • ตัวอักษรที่ไม่ใช่ตัวแรกจะเป็นตัวอักษรหรือ _ หรือตัวเลขก็ได้

• ชื่อตัวแปรห้ามมีช่องว่าง(เว้นวรรค) ห้ามมีอักขระพิเศษ (ยกเว้น ‘_’) • ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่าเป็นคนละตัวกัน เช่น test และ Test เป็น

ตัวแปรคนละตัวกัน (Case-Sensitive) • ห้ามตั้งชื่อซ้ำกับคำสงวนซึ่งได้แก่

Page 5: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

4

ชนิดข้อมูลเบื้องต้น

asm auto bool break case

catch char class const const_cast

continue default delete do double

dynamic_cast else enum explicit extern

float for friend goto

if inLine int long mutable

new namespace operator private protected

public registerreinterpret_

castreturn short

signed sizeof static static_cast struct

switch template this throw

try typedef typeid typename union

unsigned using virtual void volatile

wchar_t

ชนิดข้อมูลเบื้องต้น

false

true

Page 6: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

5

ชนิดข้อมูลเบื้องต้น

รูปแบบสำหรับการประกาศตัวแปร สามารถเขียนได้ดังนี้

ชนิดข้อมูล ตัวแปร ;

เช่น int number ; double area ; char a ; string name ;

// สร้างตัวแปรชื่อ number เพื่อเก็บข้อมูลตัวเลขจำนวนเต็ม

// สร้างตัวแปรชื่อ area เพื่อเก็บข้อมูลตัวเลขจำนวนทศนิยม

// สร้างตัวแปรชื่อ a เพื่อเก็บข้อมูลชนิดอักขระ

// สร้างตัวแปรชื่อ name เพื่อเก็บสายอักขระ(ข้อความ)

Page 7: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

6

ชนิดข้อมูลเบื้องต้น

การกำหนดค่าให้ตัวแปร

การกำหนดค่าให้กับตัวแปรนั้นเป็นการนำค่าจากทางขวามือมากำหนดให้กับตัวแปรทางซ้ายมือ โดยมีวิธีการกำหนดค่าสองรูปแบบดังนี้

1 ประกาศตัวแปร แล้วกำหนดค่าภายหลังรูปแบบที่

ชนิดข้อมูล ตัวแปร ;ตัวแปร = ค่าของตัวแปร ;

2 ประกาศตัวแปร แล้วกำหนดค่าภายหลังรูปแบบที่

ชนิดข้อมูล ตัวแปร = ค่าของตัวแปร ;

โดยค่าที่กำหนดให้กับตัวแปรนั้นอาจเป็นค่าคงที่หรือค่าจากตัวแปรอื่นก็ได้ เช่น

Page 8: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

7

ชนิดข้อมูลเบื้องต้น

int num = 5 ; // ตัวแปรชนิด int ชื่อว่า num เก็บ ค่า 5 ไว้double year ; // ประกาศตัวแปรชนิด double ชื่อว่า year (ค่าที่เก็บในตัวแปร ตอนนี้ขึ้นอยู่กับระบบว่าเป็นค่าอะไร) year = 1.993 ; // กำหนดค่าให้ตัวแปร year เก็บค่า 1.993 ไว้string name = “Sunisa” , name2 ; // ประกาศตัวแปรชนิด string ชื่อว่า name กำหนดให้เก็บสาย อักขระ “Sunisa” และตัวแปรตัวที่สอง ชื่อว่า name2 name2 = name; // กำหนดให้ค่าตัวแปร name2 เก็บค่า ที่ตัวแปร name เก็บอยู่

Page 9: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

8

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 1 : จงพิจารณาข้อมูลต่อไปนี้ว่าเป็นชนิดข้อมูลเบื้องต้นชนิดใด พร้อมทั้งบอกเหตุผล

ข้อที่ ชนิดข้อมูลเบื้องต้นชนิดข้อมูลเบื้องต้น เหตุผล

1 886 int เพราะ 886 เป็นจำนวนเต็ม

2 Burapha University

3 -23.574

4 -59

5 @

6 -1.5e - 02

7 A

8 AA

9 0x485

10 337

Page 10: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

9

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 2 : จงพิจารณาชื่อตัวแปรต่อไปนี้ว่าตั้งถูกต้องตามความเหมาะสมหรือไม่ถ้าไม่เหมาะสมให้บอกสาเหตุของความไม่เหมาะสม

ข้อที่ เหมาะสม ไม่เหมาะสม เหตุผลเหตุผล

1 ❑ ❑ province

2 ❑ ❑ Max_Min

3 ❑ ❑ double

4 ❑ ❑ num3

5 ❑ ❑ _last

6 ❑ ❑ birth#day

7 ❑ ❑ case

8 ❑ ❑ Time

9 ❑ ❑ programming

10 ❑ ❑ programming1

11 ❑ ❑ 4_sum

12 ❑ ❑ t1.21

13 ❑ ❑ X

14 ❑ ❑ aMount

15 ❑ ❑ dog_age

Page 11: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

10

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 3 : จากการประกาศตัวแปรพร้อมกับกำหนดค่าดังแสดงต่อไปนี้ ข้อใดถูก (✔) และข้อใดผิด (✘) โดยให้บอกส่วนที่ผิดและทำการแก้ไขให้ถูกต้อง

ข้อที่ ส่วนที่ผิด ที่ถูกต้อง

1 ❑ int main = 10;

2 ❑ integer x;

3 ❑ char j = “Hello”;

4 ❑ string_abcdefghijk_;

5 ❑ double x = 45.067;

6 ❑ char j = ‘A’;

7 ❑ char k = 0x41;

8 ❑ double z = 1,000.999;

9 ❑ string s1 = ‘MING’;

10 ❑ int x = 1.5;

11 ❑ double y = 10;

12 ❑ int null = 5;

13 ❑ string id = ‘9’;.

14 ❑ char ch = “A”;.

15 ❑ int_cont = -451;

Page 12: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

11

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 4 : จงเขียนคำสั่งประกาศสร้างตัวแปรเพื่อเก็บข้อมูลต่อไปนี้

1 สร้างตัวแปรชื่อ num สำหรับเก็บจำนวนเต็ม

2 สร้างตัวแปรชื่อ total สำหรับเก็บจำนวนทศนิยมโดยกำหนดค่าเร่ิมต้นเป็น 2.25

3 สร้างตัวแปรชื่อ letter สำหรับเก็บอักขระ V

4 สร้างตัวแปรชื่อ name สำหรับเก็บข้อความโดยกำหนดค่าเริ่มต้นเป็นชื่อของตนเอง

Page 13: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

12

ชนิดข้อมูลเบื้องต้น

การรับข้อมูล

ในการรับค่าข้อมูลในภาษา C++ จะมีคำสั่งมาตรฐานในการรับค่าข้อมูล ผ่านทางอุปกรณ์อินพุทมาตรฐาน (ซึ่งในที่นี้คือ แป้นพิมพ์) คำสั่งนั้นคือ cin อ่านว่า ซีอิน ซึ่ง cin เป็นออปเจ็กต์ที่สร้างอยู่ใน library ที่ชื่อว่า iostream เพื่อรับข้อมูลจากคีย์บอร์ดและอุปกรณ์อื่นๆ ได้ ทุกประเภทไม่ว่าจะเป็นจำนวนเต็ม ทศนิยม อักขระ หรือข้อความ มีรูปแบบการใช้งานดังนี้

cin >> ชื่อตัวแปร ;cin >> ชื่อตัวแปร >> ชื่อตัวแปร; กรณีรับมากกว่าหนึ่งค่า

จะสังเกตเห็นว่า หลังคำสั่ง cin จะตามด้วย เครื่องหมาย >> เสมอ ซึ่งจะรับค่าส่งให้แก่ตัวแปรที่อยู่ทางขวาของเครื่องหมาย ตัวอย่าง เช่น เมื่อผู้เขียนโปรแกรม ต้องการเขียนโปรแกรมให้คำนวณปริมาตรของกล่องสี่เหลี่ยมใดๆ ซึ่ง มีสูตรในการคำนวณ คือ กว้าง*ยาว*สูง ผู้เขียนโปรแกรมจะต้องรับค่าความกว้าง, ความยาวและความสูงของกล่องมาคำนวณ ดังนี้

Page 14: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

13

ชนิดข้อมูลเบื้องต้น

Page 15: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

14

ชนิดข้อมูลเบื้องต้น

จากตัวอย่างดังกล่าว ได้มีการกำหนดตัวแปร width, length, height เป็นแบบจำนวนเต็มเพื่อรับค่า ความกว้าง ความยาว และ ความสูง ตามลำดับ มำใช้การคำนวณ ซึ่งผู้เขียนโปรแกรมสามารถรับค่าของความกว้าง ความยาว และ ความสูง โดยใช้ คำสั่ง cin บรรทัดเดียวได้แทนที่จะรับค่าทีละบรรทัด ดังตัวอย่างต่อไปนี้

Page 16: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

15

ชนิดข้อมูลเบื้องต้น

โจทย์ข้อที่ 5 : จงสร้างตัวแปรและเขียนคำสั่งเพื่อรับค่าเหล่านี้จากคีย์บอร์ดพร้อมทั้งเขียนคำสั่งเพื่อแสดงค่าตัวแปรและผลลัพธ์ออกทางหน้าจอพร้อมทั้งบอกผลลัพธ์

ข้อที่ โจทย์ คำสั่งสร้างตัวแปร รับค่าและแสดงผล1 รับข้อมูลชนิดตัวเลขจำนวนเต็ม

มา 1 จำนวน จากนั้นนำจำนวนนั้นมาบวกกับตัวเอง แสดงผลลัพธ์ออกทางหน้าจอ

........................................................

........................................................

........................................................

........................................................

........................................................2 รับจำนวนเต็ม 2 จำนวน จำนวน

ทศนิยม 2 จำนวน นำจำนวนเต็มตัวแรกคูณกับจำนวนทศนิยม จำนวนแรกแสดงผลลัพธ์ออกทางหน้าจอแล้วนำจำนวนเต็มตัวที่สองแสดงผลลัพธ์ออกทางหน้าจอ

........................................................

........................................................

........................................................

........................................................

........................................................

........................................................

........................................................3 รับข้อความเป็นชื่อตนเองแล้ว

แสดงผลลัพธ์เป็น Hello : ชื่อตนเอง

........................................................

........................................................

........................................................

........................................................4 รับข้อมูลชนิดอักขระมา 2 ตัว นำ

อักขระที่รับเข้าแต่ละตัว บวกด้วย 1 แสดงผลลัพธ์ออกทางหน้าจอ

........................................................

........................................................

........................................................

........................................................5 รับข้อมูลชนิดอักขระ แลข้อความ

เข้ามาอย่างละ 1 ค่า จากนั้นแสดงผลลัพธ์ออกทางหน้าจอ โดยใช้การเว้นวรรคในการแยกข้อมูล

........................................................

........................................................

........................................................

........................................................

........................................................

........................................................

Page 17: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

16

การเขียนผังงาน (Flowchart)

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

Pseudocode Flowchart

Page 18: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

17

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 7 : ในการกรอกข้อมูลเพื่อสมัครเข้าเรียนของสถาบันป่วงพิทยา ข้อมูลที่ต้องการให้ผู้สมัครกรอกประกอบด้วย ➤ ชื่อนามสกุล (name) ➤ อายุ (age) ➤ เกรดเฉลี่ย ➤ เพศ (gender) -> M หรือ F ➤ ที่อยู่ ➤ เบอร์โทร จงเขียนโปรแกรมเพื่อให้ผู้สมัครกรอกข้อมูลเหล่านี้มาให้ครบถ้วน จากนั้นแสดงข้อมูลทั้งหมดออกทางหน้าจอ

Page 19: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

18

การเขียนผังงาน (Flowchart)

การบ้านโจทย์ข้อที่ 1 : จงเขียนโปรแกรมเพื่อรับค่าตัวเลขจำนวนเต็ม 2 จำนวน แล้วให้แสดงผลลัพธ์เป็นผลบวกของเลข 2 จำนวนนี้ ตัวอย่างข้อมูลเข้า 2 5 ตัวอย่างข้อมูลออก 7

Page 20: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

19

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 2 : จงเขียนโปรแกรมเพื่อรับค่าตัวเลขจำนวนเต็ม 2 จำนวน แล้วให้แสดงผลลัพธ์ ดังนี้ บรรทัดที่ 1 แสดงผลบวกของเลข 2 จำนวนนี้ (แสดงผลลัพธ์เป็นจำนวนเต็ม) บรรทัดที่ 2 แสดงผลลบของเลข 2 จำนวนนี้ (โดยให้แสดงผลลัพธ์เป็นจำนวนเต็ม) บรรทัดที่ 3 แสดงผลคูณของเลข 2 จำนวนนี้ (แสดงผลลัพธ์เป็นจำนวนเต็ม) บรรทัดที่ 4 แสดงผลหารของเลข 2 จำนวนนี้ (เอาจำนวนที่ 1 ตั้ง แล้วหารด้วยจำนวนที่ 2 โดยให้แสดงผลลัพธ์การหารเป็นทศนิยม 2 ตำแหน่ง) ตัวอย่างข้อมูลเข้า 2 5 ตัวอย่างข้อมูลออก 7 -3 10 0.40 หมายเหตุ การแสดงผลลัพธ์เป็นเลขทศนิยม 2 ตำแหน่ง ทำได้โดย การ #include <iomanip> แล้วใช้คำสั่งดังตัวอย่างต่อไปนี้

Page 21: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

20

การเขียนผังงาน (Flowchart)

Page 22: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

21

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 3 : จงเขียนโปรแกรมหาค่า “พื้นที่สี่เหลี่ยม” และ “ความยาวรอบรูปของสี่เหลี่ยม” (แสดงผลลัพธ์โดยคั่นด้วยเว้นวรรค) โดยกำหนดให้รับค่าจำนวนเต็มบวกสองจำนวน แทนความกว้างและความยาวของสี่เหลี่ยม ตัวอย่างข้อมูลเข้า 2 3 ตัวอย่างข้อมูลออก 6 10

Page 23: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

22

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 4 : จงเขียนโปรแกรมรับค่าจำนวนจริงสองจำนวนเป็นฟุต และนิ้ว แล้วนำตัวเลขทั้งสองมาบวกกันแล้วแสดงออกมาในรูปเซนติเมตร (แสดงผลลัพธ์เป็นเลขทศนิยม 2 ตำแหน่ง) กำหนดให้ 1 ฟุต เท่ากับ 12 นิ้ว และ 1 นิ้ว ยาวเท่ากับ 2.54 เซนติเมตร ตัวอย่างข้อมูลเข้า (เช่น 1 ฟุต 3 นิ้ว) 1 3 ตัวอย่างข้อมูลออก 38.10

Page 24: !อป%&’การ Fundamental 886201 Programming 1angsila.cs.buu.ac.th/~sunisa/886201/lab02.pdfstring name ; // สางวแปรอ number เอ เบอลวเลข?นวนเม

23

การเขียนผังงาน (Flowchart)

โจทย์ข้อที่ 5 : จงเขียนโปรแกรมเพื่อคำนวณพื้นที่สามเหลี่ยม โดยให้รับค่าความยาวฐาน และความสูงเป็นเลขจำนวนจริง แล้วคำนวณพื้นที่สามเหลี่ยมแสดงผลลัพธ์ออกทางหน้าจอ (แสดงผลลัพธ์เป็นเลขทศนิยม 2 ตำแหน่ง) ตัวอย่างข้อมูลเข้า 3 5.5 ตัวอย่างข้อมูลออก 8.25