Lab 3: คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล อ.ณัฐพงศ์ พยัฆคิน Computer Programming Design
? ? ? cin >> var 1 >> var 2 >>…>>var n; Input Statements cin >> var 1 >> var 2 >>…>>var n; ตัวอย่าง int age; age initial bill char initial; float bill; ? ? ? Computer Programming Design
Computer Programming Design Input Statements สมมุติว่า user พิมพ์ 25 J 2 แล้ว Enter จะได้ผลลัพธ์อย่างไร cin >> age; cin >> initial; cin >> bill; age initial bill 25 J 2.0 Computer Programming Design
การรับค่าทีละตัวอักษร get( ) function รูปแบบ cin.get(ch); // กำหนด char ch; จะสามารถรับค่าตัวอักขระที่อยู่ถัดไปได้แม้แต่ whitespace Whitespace - ช่องว่าง (Blanks) แท็ป (Tabs) จุดสิ้นสุดบรรทัด (End-of-line หรือ Newline) Computer Programming Design
Computer Programming Design ตัวอย่าง first middle last char first; char middle; char last; ? ? ? สมมุติว่า user พิมพ์ A B C แล้ว Enter จะได้ผลลัพธ์อย่างไร first middle last cin.get(first); cin.get(middle); cin.get(last); A B Computer Programming Design
Computer Programming Design ชนิดของตัวแปร ชนิดของตัวแปร ขนาด(bits) ขอบเขต ความหมาย char 8 -128 ถึง 127 (อักขระ ASCII) เก็บข้อมูลชนิดอักขระ โดยใช้พื้นที่หน่วยความจำในการจัดเก็บ 8 bits (1 byte) int 16 -32,768 ถึง 32,767 เก็บข้อมูลชนิดตัวเลขจำนวนเต็ม ใช้พื้นที่ในหน่วยความจำ 16 bits (2 bytes) long 32 -2,147,483,648 ถึง 2,147,483,649 เก็บข้อมูลชนิดตัวเลขจำนวนเต็มแบบยาว ใช้พื้นที่หน่วยความจำเป็นการจัดเก็บ 32 bits(4 bytes) float 3.4*10-38 ถึง 3.4*1038 เก็บข้อมูลชนิดตัวเลขทศนิยม ใช้พื้นที่หน่วยความจำ 32 bits (4 bytes) โดยเก็บค่าทศนิยมประมาณ 6 ตัว double 64 3.4*10-308 ถึง 3.4*10308 เก็บข้อมูลชนิดตัวเลขทศนิยม ใช้พื้นที่หน่วยความจำ 64 bits (8 bytes) โดยเก็บค่าทศนิยมประมาณ 12 ตัว Computer Programming Design
Computer Programming Design Implicit conversion Variable = Expression เริ่มแรกจะทำการประมวลผลค่านิพจน์ (Expression) ทางด้านขวามือ และจะนำผลลัพธ์ไปเก็บไว้ในตัวแปรทางด้านซ้ายมือ หากผลลัพธ์ที ได้ต่างชนิดกับตัวแปรทางด้านซ้ายมือจะเกิดการปรับเปลี่ยนค่าตาม ชนิดของประเภทของตัวแปรโดยอัตโนมัติ ตัวอย่าง float x = 7.0/2.0; => x=3.5 int y=7.0/2.0; => y=3 Computer Programming Design
Computer Programming Design ค่าที่เก็บ คืออะไร float someFloat; someFloat = 12; int someInt; someInt = 4.8; ? ? 12.0 4 Computer Programming Design
Type Casting (Explicit Conversion int (4.8) เปลี่ยนชนิดข้อมูลเป็นจำนวนเต็ม 4 float (5) เปลี่ยนชนิดข้อมูลเป็นจำนวนจริง 5.0 float (7/4) เปลี่ยนผลหารจำนวนเต็ม 1 เป็นจำนวนจริง 1.0 float (7) / float (4) เปลี่ยนเป็นจำนวนจริง 7.0 และ 4.0 แล้วจึงคำนวณผลหาร 7.0/4.0 ได้จำนวนจริง 1.75 Computer Programming Design
การหารจำนวนเต็ม (Integer Division) ตัวอย่าง ถ้า n เป็นจำนวนเต็ม => 1/n จะได้ผลลัพธ์เป็นค่าจำนวนเต็ม 0 (zero) ถ้าต้องการให้คำตอบถูกต้อง จะต้องบังคับ ไม่ให้ ค่าที่มากกระทำกันเป็นจำนวนเต็มทั้งคู่ อย่างน้อยต้องแปลงให้ตัวใดตัวหนึ่งเป็นจำนวนจริง ตัวอย่าง float f=1.0/n; หรือ float f=1/float(n); Computer Programming Design
ตัวกระทำเปรียบเทียบและตรรกะ (Comparison and Logical Operators) ตัวกระทำเปรียบเทียบความสัมพันธ์ (Comparison/Relational operators) ใช้ในข้อความเงื่อนไข (condition) หรือ ใช้ในนิพจน์เชิงตรรกะ (logical expression) ซึ่งผลของการเปรียบเทียบจะได้ค่า จริง (true) หรือ เท็จ (false) เพียงอย่างใดอย่างหนึ่ง Computer Programming Design
นิพจน์เชิงตรรกะ(Logical Expressions) จริง คือ T เท็จ คือ F Computer Programming Design
นิพจน์เชิงตรรกะ(Logical Expressions) (15 > 10 ) && ( 25 > 0) ตัวอย่าง ถ้า i = 15, j = 25 แล้ว (i > 10) && (j > 0) คำตอบ จริง (true) ถ้า i = 5, j = 25 แล้ว (i > 20) && (j > 0) คำตอบ เท็จ (false) ( 5 > 20 ) && ( 25 > 0 ) Computer Programming Design
Computer Programming Design Complex Boolean กรณีที่มีวงเล็บ (parenthesis) ให้พิจารณาค่าในวงเล็บก่อน ((7 > 5) || (4 < 3)) && (1 > 2) T F F T F กรณีไม่มีวงเล็บ(parenthesis) ให้พิจารณาตามลำดับของ NOT -> AND -> OR (7 > 5) || (4 < 3) && (1 > 2) T F F F T Computer Programming Design
Computer Programming Design iomanip.h #include <iomainp.h> ใช้ในการจัดรูปการพิมพ์ เช่น การกำหนดจำนวนทศนิยม ที่จะให้แสดงออกมาทางจอภาพด้วยคำสั่ง cout #include<iostream.h> //ใส่ที่ต้นโปรแกรม cout.setf(ios::fixed); //เพื่อกำหนดให้จุดคงที่ กำหนดจำนวนตัวเลขหลังจุด - แบบ Explicitly cout.precision( n ); // n คือจำนวนตำแหน่ง - แบบ Implicitly cout << … << setprecision ( n ) << … Computer Programming Design
ตัวอย่างการใช้ Manipulators #include <iostream.h> #include <iomanip.h> int main (){ float myNumber = 12.348; cout.set(ios::fixed); cout<<“Number is “<< setprecison(2)<<myNumber<<endl; cout<<“Number is “<< setprecison(1)<<myNumber<<endl; return 0; } Output Number is 12.35 Number is 12.3 Computer Programming Design
Computer Programming Design การใช้ setw(n) setw( ) อ่าน “set width” ใช้ระบุขนาดความกว้างของพื้นที่ ที่สามารถใช้ในการพิมพ์ ทำให้สามารถควบคุมการพิมพ์และจัดรูปแบบการพิมพ์แบบ ขวาตรง (right-justified) ได้ Argumentn ใช้ในการระบุจำนวนตำแหน่งของตัวอักษรที่จะพิมพ์ ซึ่งอาจเป็นข้อมูลชนิด ตัวเลข (number) หรือ สตริง (string) แต่ใช้ไม่ได้กับ ตัวอักขระ (char) Computer Programming Design
ตัวอย่างการใช้ setw( ) #include <iostream.h> //เพื่อการใช้งาน setw() #include <iomanip.h> int main (){ int myNumber = 123; int yourNumber = 5; cout<<setw(10) <<“Mine“ <<setw(10)<<“Yours”<<endl <<setw(10)<< myNuber<<setw(10)<<yourNumber<<endl; return 0; } Output 12345678901234567890 Mine Yours 123 5 Computer Programming Design
Computer Programming Design #include <iostream.h> #include <iomanip.h> int main (){ float myNumber = 123.48; float yourNumber = 3.14159; cout.set(ios::fixed); cout.presicion(3); cout<<setw(10)<<myNumber<<endl <<setw(10)<<yourNumber<<endl; return 0; } Right-justified Left-justified #include <iostream.h> #include <iomanip.h> int main (){ float myNumber = 123.48; float yourNumber = 3.14159; cout.set(ios::fixed); cout.presicion(3); cout<<‘\t’<<myNumber<<endl <<‘\t’<<yourNumber<<endl; return 0; } Output 123.400 3.142 Output 123.400 3.142 Computer Programming Design
Computer Programming Design