lab 3: ...

21
1 Computer Programming Design Lab 3: คคคคคคคคคคค คคคคคคคคคคคคคคคคคคค คคคคคคคคคคคคคคค อ.อออออออ อออออ

Upload: mercer

Post on 04-Jan-2016

29 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

1Computer Programming Design

Lab 3: คำ��สั่��งพื้นฐ�นสั่��หรั�บก�รัรั�บและก�รัแสั่ดงผลข้�อมู�ล

อ.ณั�ฐพงศ์� พยั�ฆคิ น

Page 2: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

2

Input Statements

ตั�วอยั�างint age; age initial

billchar initial;float bill;

cin >> var 1 >> var 2 >>…>>var n;

? ? ?

Computer Programming Design

Page 3: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

3

Input Statements

สมม�ตั ว�า user พ มพ� 25 J 2 แล้�ว Enter จะได้�ผล้ล้�พธ์�อยั�างไร

cin >> age;cin >> initial;cin >> bill;

age initial bill

25 J 2.0

Computer Programming Design

Page 4: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

4

การร�บคิ�าที#ล้ะตั�วอ�กษรget( ) function

รั�ปแบบ cin.get(ch); // ก%าหนด้ char ch;

จะสามารถร�บคิ�าตั�วอ�กขระที#)อยั*�ถ�ด้ไปได้�แม�แตั� whitespace

Whitespace- ช่�องว่��ง (Blanks)- แท็!ป (Tabs)- จุ#ดสั่$นสั่#ดบรัรัท็�ด (End-of-line หรัอ Newline)

Computer Programming Design

Page 5: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

5

ตั�วอยั�างchar first;

char middle;

char last;

first middle last

? ? ?สมม�ตั ว�า user พ มพ� A B C แล้�ว Enter จะได้�ผล้ล้�พธ์�อยั�างไร

cin.get(first);

cin.get(middle);

cin.get(last);

first middle last

A BComputer Programming Design

Page 6: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

6

ชน ด้ของตั�วแปร

Computer Programming Design

ช่น$ดข้องตั�ว่แปรั

ข้น�ด(bits)

ข้อบเข้ตั คำว่�มูหมู�ย

char 8 - 128

ถ.ง 127

(อ�กขระ ASCII)

เก0บข�อม*ล้ชน ด้อ�กขระ โด้ยัใช�พ34นที#)หน�วยัคิวามจ%าในการจ�ด้เก0บ 8bits (1 byte)

int 16 -32,768 ถ.ง 32,767

เก0บข�อม*ล้ชน ด้ตั�วเล้ขจ%านวนเตั0ม ใช�พ34นที#)ในหน�วยัคิวามจ%า 16

bits (2 bytes)

long 32 -2,147,483,648 ถ.ง 2 ,147 ,483 ,649

เก0บข�อม*ล้ชน ด้ตั�วเล้ขจ%านวนเตั0มแบบยัาว ใช�พ34นที#)หน�วยัคิวามจ%าเป5นการจ�ด้เก0บ 32 bits(4 bytes)

float 32 3.4*10-38

ถ.ง 34*

1038

เก0บข�อม*ล้ชน ด้ตั�วเล้ขทีศ์น ยัม ใช�พ34นที#)หน�วยัคิวามจ%า 32 bits (4 bytes) โด้ยัเก0บคิ�าทีศ์น ยัมประมาณั 6 ตั�ว

double 64 3.4*10-308

ถ.ง 34*.10

308

เก0บข�อม*ล้ชน ด้ตั�วเล้ขทีศ์น ยัม ใช�พ34นที#)หน�วยัคิวามจ%า 64 bits (8 bytes) โด้ยัเก0บคิ�าทีศ์น ยัมประมาณั 12 ตั�ว

Page 7: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

7

Implicit conversion

Variable = Expression

Computer Programming Design

เร )มแรกจะที%าการประมวล้ผล้คิ�าน พจน� (Expression) ทีางด้�านขวาม3อแล้ะจะน%าผล้ล้�พธ์�ไปเก0บไว�ในตั�วแปรทีางด้�านซ้�ายัม3อ หากผล้ล้�พธ์�ที#ได้�ตั�างชน ด้ก�บตั�วแปรทีางด้�านซ้�ายัม3อจะเก ด้การปร�บเปล้#)ยันคิ�าตัามชน ด้ของประเภทีของตั�วแปรโด้ยัอ�ตัโนม�ตั

ตั�วอยั�าง float x = 7.0/2.0; => x=3.5int y=7.0/2.0; => y=3

Page 8: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

8

คิ�าที#)เก0บ คิ3ออะไรfloat someFloat;

someFloat = 12;

?

12.0

int someInt;

someInt = 4.8;

?

4

Computer Programming Design

Page 9: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

9

Type Casting (Explicit Conversionint (4.8) เปล้#)ยันชน ด้ข�อม*ล้เป5นจ%านวนเตั0ม 4

float (5) เปล้#)ยันชน ด้ข�อม*ล้เป5นจ%านวนจร ง5.0

float (7/4) เปล้#)ยันผล้หารจ%านวนเตั0ม 1 เป5นจ%านวนจร ง1.0

float (7) / float (4) เปล้#)ยันเป5นจ%านวนจร ง 7.0 แล้ะ 4.0 แล้�วจ.งคิ%านวณัผล้หาร 7.0/4.0 ได้�จ%านวนจร ง

1.75

Computer Programming Design

Page 10: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

10

ก�รัห�รัจุ��นว่นเตั!มู (Integer Division)Integer division เป5นป8ญหาที#)พบบ�อยัมาก ผล้หาร จะเป5นคิ�าจ%านวนเตั0มตั�วอยั�าง ถ�า n เป5นจ%านวนเตั0ม => 1/n จะได้�ผล้ล้�พธ์�เป5นคิ�าจ%านวนเตั0ม 0 (zero)ถ�าตั�องการให�คิ%าตัอบถ*กตั�อง จะตั�องบ�งคิ�บ ไม�ให� คิ�าที#)มากกระที%าก�นเป5นจ%านวนเตั0มที�4งคิ*� อยั�างน�อยัตั�องแปล้งให�ตั�วใด้ตั�วหน.)งเป5นจ%านวนจร งตั�วอยั�าง float f=1.0/n; หร3อ

float f=1/float(n);

Computer Programming Design

Page 11: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

11

ตั�ว่กรัะท็��เปรั(ยบเท็(ยบและตัรัรักะ(Comparison and Logical Operators)

Computer Programming Design

ตั�วกระที%าเปร#ยับเที#ยับคิวามส�มพ�นธ์� (Comparison/Relational operators)

ใช�ในข�อคิวามเง3)อนไข (condition) หร3อ ใช�ในน พจน�เช งตัรรกะ(logical expression) ซ้.)งผล้ของการเปร#ยับเที#ยับจะได้�คิ�า จุรั$ง (true) หร3อเท็!จุ (false) เพ#ยังอยั�างใด้อยั�างหน.)ง

Page 12: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

12

ตั�ว่ด��เน$นก�รั ท็$ศท็�งก�รัด��เน$นก�รั(), [], ->, ซ้�ายัไปขวา|, ~, ++, --, +( ), -( ), *, &(type), sizeofคิ�าบวก คิ�าล้บ ขวาไปซ้�ายั*, /, % ซ้�ายัไปขวา+, - ( )ตั�วกระที%าการทีางคิณั ตัศ์าสตัร� ซ้�ายัไปขวา<<, >> ซ้�ายัไปขวา<, <=, >, >= ซ้�ายัไปขวา==, != ซ้�ายัไปขวา& ซ้�ายัไปขวา^ ซ้�ายัไปขวา| ซ้�ายัไปขวา&& ซ้�ายัไปขวา|| ซ้�ายัไปขวา? : ขวาไปซ้�ายั=, +=, -=, /=, %=, &=, ̂ =, |=, <<=, >>= ขวาไปซ้�ายั, ซ้�ายัไปขวา

ตัารางที#)3.7 แสด้งล้%าด้�บคิวามส%าคิ�ญของตั�วด้%าเน นการที�4งหมด้เร#ยังล้%าด้�บจากมากไปน�อยั

Page 13: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

13

น$พื้จุน*เช่$งตัรัรักะ(Logical Expressions)

Computer Programming Design

จุรั$ง คำอ Tเท็!จุ คำอ F

Page 14: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

14

ตั�วอยั�างถ�า i = 15, j = 25 แล้�ว (i >

10) && (j > 0)คิ%าตัอบ จุรั$ง (true)

ถ�า i = 5, j = 25 แล้�ว (i > 20) && (j > 0)คิ%าตัอบ เท็!จุ (false)

น$พื้จุน*เช่$งตัรัรักะ(Logical Expressions)

(15 > 10 ) && ( 25 > 0)

( 5 > 20 ) && ( 25 > 0 )

Computer Programming Design

Page 15: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

15

กรณั#ที#)ม#วงเล้0บ (parenthesis)

ให�พ จารณัาคิ�าในวงเล้0บก�อน((7 > 5) || (4 < 3)) && (1 > 2) T F F T F

Complex Boolean

กรณั#ไม�ม#วงเล้0บ(parenthesis)ให�พ จารณัาตัามล้%าด้�บของNOT -> AND -> OR(7 > 5) || (4 < 3) && (1 > 2) T F F F T

Computer Programming Design

Page 16: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

16

iomanip.h

#include <iomainp.h> ใช�ในการจ�ด้ร*ปการพ มพ� เช�น การก%าหนด้จ%านวนทีศ์น ยัม

ที#)จะให�แสด้งออกมาทีางจอภาพด้�วยัคิ%าส�)ง cout

#include<iostream.h> //ใส�ที#)ตั�นโปรแกรมcout.setf(ios::fixed); //เพ3)อก%าหนด้ให�จ�ด้คิงที#)ก%าหนด้จ%านวนตั�วเล้ขหล้�งจ�ด้

- แบบ Explicitly cout.precision( n ); // n คิ3อจ%านวนตั%าแหน�ง- แบบ Implicitly cout << … << setprecision ( n ) << …

Computer Programming Design

Page 17: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

17

ตั�วอยั�างการใช� 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;

}

OutputNumber is 12.35Number is 12.3

Computer Programming Design

Page 18: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

18

ก�รัใช่� setw(n)

setw( ) อ�าน “set width” ใช�ระบ�ขนาด้คิวามกว�างของพ34นที#) ที#)สามารถใช�ในการพ มพ� ที%าให�สามารถคิวบคิ�มการพ มพ�แล้ะจ�ด้ร*ปแบบการพ มพ�แบบ ขวาตัรง (right-justified) ได้�

Argumentn ใช�ในการระบ�จ%านวนตั%าแหน�งของตั�วอ�กษรที#)จะพ มพ� ซ้.)งอาจเป5นข�อม*ล้ชน ด้ ตั�วเล้ข (number) หร3อ สตัร ง (string) แตั�ใช�ไม�ได้�ก�บ ตั�วอ�กขระ (char)

Computer Programming Design

Page 19: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

19

ตั�ว่อย��งก�รัใช่� setw( )

#include <iostream.h> //เพ3)อการใช�งาน 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;

}

Output12345678901234567890 Mine Yours 123 5

Computer Programming Design

Page 20: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

20

#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;

}

Left-justified

Output123.4003.142

#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;

} Output 123.400 3.142

Right-justified

Computer Programming Design

Page 21: Lab 3:  คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล

21Computer Programming Design