220 likes | 345 Views
Lab 3: คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล. อ.ณัฐพงศ์ พยัฆคิน. Input Statements. cin >> var 1 >> var 2 >>…>>var n ;. ตัวอย่าง int age; age initial bill char initial; float bill;. ?. ?. ?. Computer Programming Design. Input Statements.
E N D
Lab 3: คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล อ.ณัฐพงศ์ พยัฆคิน Computer Programming Design
Input Statements cin >> var 1 >> var 2 >>…>>var n; ตัวอย่าง int age; age initial bill char initial; float bill; ? ? ? Computer Programming Design
Input Statements สมมุติว่า user พิมพ์ 25 J 2 แล้ว Enter จะได้ผลลัพธ์อย่างไร cin >> age;cin >> initial;cin >> bill; age initial bill 25 2.0 J Computer Programming Design
การรับค่าทีละตัวอักษรการรับค่าทีละตัวอักษร get( ) function รูปแบบcin.get(ch); // กำหนด char ch; จะสามารถรับค่าตัวอักขระที่อยู่ถัดไปได้แม้แต่ whitespace • Whitespace- ช่องว่าง (Blanks) • แท็ป (Tabs) • จุดสิ้นสุดบรรทัด (End-of-line หรือ Newline) 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
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
ค่าที่เก็บ คืออะไร int someInt; someInt = 4.8; float someFloat; someFloat = 12; ? ? 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) 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
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
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
การใช้ 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 1235 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