Top Banner
1 241-101 Introduction to Computer Programming คคคคคคคคคคคคคคค คคคคคคคคคคคคคคคคคคค [email protected]. th บบบบบ บบบบบ 2 2 บบบบบบบบบบ บบบบบบบบบบ C C Basic C Program Basic C Program
88

บทที่ 2 แนะนำภาษา C Basic C Program

Jan 19, 2016

Download

Documents

melora

บทที่ 2 แนะนำภาษา C Basic C Program. ขั้นตอนการพัฒนาโปรแกรม โครงสร้างโปรแกรมภาษา C ตัวแปรและตัวดำเนินการ การแสดงผลและรับค่า ข้อผิดพลาดที่เกิดขึ้นบ่อย. แนะนำภาษา C. ภาษา ซี C Programming Language. ถูกออกแบบและสร้างขึ้นในปี พ.ศ. 2515 (1972) โดย Dennis Ritchie - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: บทที่  2 แนะนำภาษา  C Basic C Program

1

241-101 Introduction to Computer Programming

คณาจารย์�ภาควิ�ชาวิ�ศวิกรรมคอมพิ�วิเตอร�[email protected]

บทท�� บทท�� 22แนะนภษ แนะนภษ CC

Basic C ProgramBasic C Program

Page 2: บทที่  2 แนะนำภาษา  C Basic C Program

2

241-101 Introduction to Computer Programming

คณาจารย์�ภาควิ�ชาวิ�ศวิกรรมคอมพิ�วิเตอร�[email protected]

แนะนภษ แนะนภษ CCขั้��นตอนการพิ�ฒนาโปรแกรมโครงสร�างโปรแกรมภาษา C

ต�วิแปรและต�วิดำ#าเน�นการการแสดำงผลและร�บค&า

ขั้�อผ�ดำพิลาดำที่()เก�ดำขั้*�นบ&อย์

Page 3: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

3

ภษภษซี� ซี� C C Programming Programming

LanguageLanguage• ถู�กออกแบบและสร้�งขึ้��นในปี� พ.ศ . 2515

1972( ) โดย Dennis Ritchie

−เปี#นภษเชิ%งโคร้งสร้�ง (structured programming) โดยมี�กร้น%ยมีและเร้�ยกใชิ�ฟั)งก*ชิ+น

−มี�โคร้งสร้�งและลด+บกร้เขึ้�ยนท��มี�ควมีย-ดหย/0น−สมีร้ถูเขึ้�ถู�งอ/ปีกร้ณ์*ฮร้*ดแวร้*ได�โดยตร้ง −สมีร้ถูขึ้ยยโปีร้แกร้มีเปี#น C++

Page 4: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

4

ขึ้+�นตอนกร้พ+ฒนโปีร้แกร้มีขึ้+�นตอนกร้พ+ฒนโปีร้แกร้มี• เขั้(ย์นซอร�สโค�ดำ (source code) ผ&านโปรแกรม

ประเภที่ Text Editor หร-อ IDE (Integrated Development Environment) ส#าหร�บโปรแกรมภาษาซ( โดำย์ให�บ�นที่*กเป/นไฟล� นามสก2ล .C−ซอร�สโค�ดำจะต�องเป/นไปตามโครงสร�างประโย์คขั้องภาษา C

• คอมไพิล�โปรแกรม หากซอร�สโค�ดำถู4กต�อง จะไดำ�ออบเจ5คไฟล� (นามสก2ล .OBJ หร-อ .O)

• ล�งค�ออบเจ5คไฟล�เขั้�าดำ�วิย์ก�น กลาย์เป/นไฟล�ที่()ม(ภาษาเคร-)อง ที่()สามารถูน#ามาร�นไดำ�−นามสก2ล .EXE ส#าหร�บ Windows−ไฟล�ที่()ม(ส�ที่ธิ� execute ส#าหร�บ Linux (หร-อ Unix)

Page 5: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

5

ขึ้+�นตอนกร้พ+ฒนโปีร้แกร้มีภษขึ้+�นตอนกร้พ+ฒนโปีร้แกร้มีภษซี�ซี�

Compiler(c-free, gcc, dev-c++)

Linker

Object code(file.o)

Source Code( file.c )

Preprocessing & Compilation

ไฟล�ภาษาเคร-)อง หร-อ ไฟล�โปรแกรม(ไฟล�ที่()ที่#างานไดำ�)Machine code / Program / executable file

( file.exe )

Linking

Page 6: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

6

3 3 ขึ้+�นตอนขึ้องกร้พ+ฒนขึ้+�นตอนขึ้องกร้พ+ฒนโปีร้แกโปีร้แกร้ร้ มี มี (1)(1)

ขึ้+�น ขึ้+�น 1: Preprocessing1: Preprocessing

ที่#างานโดำย์โปรแกรมที่()เร(ย์กวิ&าpreprocessor

ที่#าการแก�ไขั้โค7ดำในหน&วิย์ควิามจ#าหล�ก (RAM) โดำย์ที่#าการแก�ไขั้ตามขั้�อควิามในซอคโค7ดำ

น#าช&องวิ&างและ comments ออกจากโค7ดำ โค7ดำที่()อย์4&ในฮาร�ดำดำ�สไม&ม(การเปล()ย์นแปลง

Page 7: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

7

ขึ้+�น ขึ้+�น 2: Compilation2: Compilation

o ที่#างานโดำย์โปรแกรมที่()ช-)อวิ&า compilero ที่#าการแปลโค7ดำที่()ไดำ�จากขั้��นที่() 1 มาอย์4&ในร4ปขั้อง object code หร-อ machine code ซ*)งเป/นภาษาเคร-)อง

o ที่#าการตรวิจสอบหา ขั้�อผ�ดำพิลาดำ syntax และ warningso ที่#าการบ�นที่*กผลที่()ไดำ�ลงไปในฮาร�ดำดำ�ส หากม(การส�)ง

o หากที่()ขั้�อผ�ดำพิลาดำเก�ดำขั้*�น จะไม&ม(การสร�างไฟล� object ออกมาo ไฟล� object จะถู4กสร�างขั้*�นหากม( warnings แต&ต�องไม&ม( errors

ใดำๆ

3 3 ขึ้+�นตอนขึ้องกร้พ+ฒนขึ้+�นตอนขึ้องกร้พ+ฒนโปีร้แกโปีร้แกร้ร้ มี มี (2)(2)

Page 8: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

8

ขึ้+�น ขึ้+�น 3: Linking3: Linking

o รวิม object ขั้องโปรแกรมก�บ object อ-)นๆ เพิ-)อสร�างเป/นโปรแกรมที่()สามารถูร�นไดำ�

oObject code อ-)นๆไดำ�มาจาก Run-Time Library หร-อ ไลบราร()อ-)นๆ หร-อ object code ที่()ม(การสร�างขั้*�นมา

ก&อนหน�าน(�oบ�นที่*กโปรแกรมที่()สามารถูร�นไดำ�ลงฮาร�ดำดำ�ส

o หากม(ขั้�อผ�ดำพิลาดำ (errors) ใดำๆ เก�ดำขั้*�น (หา library ไม&พิบ , เขั้(ย์นไฟล�ลงดำ�สก�ไม&ไดำ� , ฯลฯ) จะไม&ม(การสร�างโปรแกรมที่()

ร�นไดำ� (executable file)o เม-)อส#าเร5จ ผลล�พิธิ� จะไดำ�ไฟล�โปรแกรมที่()ร �นไดำ� (EXE file)

3 3 ขึ้+�นตอนขึ้องกร้พ+ฒนขึ้+�นตอนขึ้องกร้พ+ฒนโปีร้แกโปีร้แกร้ร้ มี มี (2)(2)

Page 9: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

9

• ม(การแปล Source Code ที่��งหมดำก&อนไดำ� Object File

• น#ามาประกอบก�บ Code บางส&วินที่()เตร(ย์มไวิ�แล�วิ (Library)

• ไดำ�ผลล�พิธิ�เป/น machine language (Executable File)

Hardware

OSOS

Source Code----------------------------------------------------

CompilerCompiler

LinkerLinkerLibrary ------------------------------------------

Object File --.obj

Executable File --.exe

ขึ้+�นตอนกร้พ+ฒนโปีร้แกร้มีขึ้+�นตอนกร้พ+ฒนโปีร้แกร้มี

Page 10: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

10

# include <stdio.h>int main (void){ // My first program

printf(“Hello World!!!”); system(“PAUSE”); return 0;}

เปี#นโปีร้แกร้มีส+�งพ%มีพ*ขึ้�อควมี Hello World!!!

โปีร้แกร้มีแร้กก+บภษ โปีร้แกร้มีแร้กก+บภษ CC Pre-processor

ฟั)งก*ชิ+น main

ขึ้อบเขึ้ตขึ้องฟั)งก*ชิ+น main

คส+�ง

commentคอธิ%บยโปีร้แกร้มี

Page 11: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

11

ส0วนต0งๆ ในโปีร้แกร้มีภษซี� ส0วนต0งๆ ในโปีร้แกร้มีภษซี� Comment ส0วนห+วและ/หร้-อส0วนอ-�นๆขึ้อง

โปีร้แกร้มี ส0วนขึ้อง preprocessors

int main ( void ) { ส0วนขึ้องโปีร้แกร้มี return 0 ; }

Page 12: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

12

Comment Comment คอธิ%บยโปีร้แกร้มีคอธิ%บยโปีร้แกร้มี• comment เป/นขั้�อม4ลที่()ช&วิย์ให�ขั้�อม4ลเก()ย์วิก�บโปรแกรม• ใช�อธิ�บาย์หน�าที่()การที่#างานขั้องโปรแกรม ฟ;งก�ช�น หร-อค#า

ส�)ง เพิ-)อควิามง&าย์ในการที่#าควิามเขั้�าใจ• เขั้(ย์นดำ�วิย์ภาษาอะไรก5ไดำ� (ภาษาไที่ย์ก5ไดำ�)• ไม&ม(ผลกระที่บก�บการที่#างานขั้องโปรแกรม• ในขั้ณะที่ดำลองแก�ไขั้โปรแกรม ส&วินใดำต�องการขั้�ามไป ใช�

comment ป<ดำไวิ�ก&อน ไม&ต�องลบ code ออกที่��งหมดำ เผ-)อต�องการเร(ย์กกล�บมาใช�ใหม&ไดำ�

• เราสามารถูเขั้(ย์นค#าอธิ�บาย์โปรแกรมไดำ�สองแบบ ค-อ

// คอธิ%บยเร้%�มีต�นจกจ/ดน�� ไปีจนหมีดบร้ร้ท+ด

/* คอธิ%บยเร้%�มีต�นจกจ/ดน�� ไปีจนถู�งเคร้-�องหมียจบ แมี�จะขึ้�มีบร้ร้ท+ดไปีก9ตมี */

Page 13: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

13

ส0วนขึ้อง ส0วนขึ้อง PreprocessorPreprocessor

• บรรที่�ดำที่()เร�)มต�นดำ�วิย์ เคร-)องหมาย์ # เร(ย์กวิ&าpreprocessor ต�วิอย์&างเช&น−#define symbol another_symbol

•ใช�ในการแที่นที่()ค#าที่()ก#าหนดำ (symbol) ที่2กค#าในซอร�สโค�ดำดำ�วิย์ค#าที่()ก#าหนดำ (another_symbol)

•ม�กใช�ในการก#าหนดำค&าคงที่() เพิ-)อสะดำวิกต&อการแก�ไขั้•เช&น ในไฟล�ซอร�สโค�ดำม(โค�ดำที่()เก()ย์วิก�บก�บเลขั้ 50 ซ*)งใช�ใน

การต�ดำเกรดำ ซ*)งม(การใช�ในหลาย์จ2ดำขั้องโปรแกรม เราใช� #define เพิ-)อให�ง&าย์ต&อการเปล()ย์นแปลง

•#define FAIL_SCORE 50

Page 14: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

14

ส0วนขึ้อง ส0วนขึ้อง PreprocessorPreprocessor

− #include <stdio.h> ซ*)งเป/นต�วิบอกวิ&าให�น#าheader file ขั้องมาตราฐานการส&งร�บขั้�อม4ล ในstdio.h เขั้�ามาในโปรแกรมดำ�วิย์ เน-)องจากจ#าเป/นต�องใช�

− โดำย์ header file ต�วิน(�ม(ขั้�อม4ลขั้องค#าส�)ง printf() ที่()ใช�ในโปรแกรมขั้องเรา

Page 15: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

15

stdio.hstdio.h เป/น header file ขั้องไลบราร()ขั้องฟ;งก�ช�นที่()

ช&วิย์ให�เราสามารถูเขั้(ย์นโปรแกรมไดำ�โดำย์ไม&จ#าเป/น ต�องเขั้(ย์นโปรแกรมเดำ�มๆหลาย์ๆคร��ง

เน-)องจากฟ;งก�ช�นบางต�วิน��นม(ขั้นาดำย์าวิและม( ควิามซ�บซ�อน การที่()ไม&ต�องเขั้(ย์นฟ;งก�ช�นเหล&าน(�

เองที่#าให�การเขั้(ย์นโปรแกรมง&าย์และเร5วิขั้*�น การใช�งานฟ;งก�ช�นเหล&าน(�ย์�งเป/นการที่#าให�ง&าย์ต&อ

การเร(ย์นร4 �โปรแกรม เน-)องจากที่#าให�อ&านโปรแกรมง&าย์

Page 16: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

16

int main ( void )int main ( void )

• ที่2กๆโปรแกรมจะต�องม(ฟ;งก�ช�นที่()ช-)อวิ&าmain. เพิราะน(�เป/นส&วินแรกที่()โปรแกรมจะเร�)มที่#างาน

• ฟ;งก�ช�น main( ) ถู4กก#าหนดำขั้*�นให�เป/นส&วินแรกขั้องโปรแกรมที่()จะถู4กร�นเพิ-)อให�สะดำวิกแก&

การอ&านโปรแกรม ที่2กโปรแกรมต�องม(ฟ;งก�ช�นที่()ม(ช-) อน(� และต�องม(เพิ(ย์งฟ;งก�ช�นเดำ(ย์วิเที่&าน��น

เพิ-)อให�โปรแกรมสามารถู compile และที่#างานไดำ�

Page 17: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

17

int main ( void )int main ( void )

• “คสงวน “คสงวน int” int” ท��นหน� ท��นหน� main( ) main( ) เปี#นต+วบอกเปี#นต+วบอกว0ฟั)งก*ชิ+นจะมี�กร้ส0งว0ฟั)งก*ชิ+นจะมี�กร้ส0งค0ออกค0ออกเปี#นชิน%ดต+วเลขึ้เปี#นชิน%ดต+วเลขึ้จนวนเต9มีจนวนเต9มี (int (int มีจก มีจก integer) integer) เมี-�อจบเมี-�อจบฟั)งก*ชิ+นฟั)งก*ชิ+น

• “วงเล9บท��ตมีหล+งคสงวน “วงเล9บท��ตมีหล+งคสงวน main” main” บอกให�บอกให�ทร้บว0น��ค-อฟั)งก*ชิ+นทร้บว0น��ค-อฟั)งก*ชิ+น

• “คสงวน “คสงวน voidvoid” ” บอกให�ทร้บว0ฟั)งก*ชิ+นด+งบอกให�ทร้บว0ฟั)งก*ชิ+นด+งกล0วไมี0มี�กร้กล0วไมี0มี�กร้ร้+บร้+บ ค0เขึ้�จกภยนอก ค0เขึ้�จกภยนอก(parameter/argument)(parameter/argument)

• int main( )int main( ) มี�ควมีหมียเด�ยวก+บ มี�ควมีหมียเด�ยวก+บ int int main(void)main(void)

Page 18: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

18

ส0วนขึ้องโปีร้แกร้มีส0วนขึ้องโปีร้แกร้มี• วงเล9บปี�กกเปี:ด { บอกให�ทร้บว0ส0วนขึ้องฟั)งก*ชิ+น

หร้-อขึ้อบเขึ้ตขึ้องโค;ดเร้%�มีต�นท��ใด• วงเล9บปี�กกปี:ด } บอกให�ทร้บว0ส0วนขึ้องฟั)งก*ชิ+น

หร้-อขึ้อบเขึ้ตขึ้องโค;ดส%�นส/ดท��ใด• เคร้-�องหมีย ; บอกให�ทร้บว0คส+�งหน��งจบลง

( ต�องใส0ไว�หล+งคส+�งท/กคส+�ง มี%ฉะน+�นจะเก%ด syntax error

• กร้ย0อหน�ในกร้เขึ้�ยนโปีร้แกร้มีเปี#นล+กษณ์ะกร้ เขึ้�ยนโปีร้แกร้มีท��ด� เพ-�อให�สะดวกต0อกร้หขึ้อบเขึ้ต

ขึ้องคส+�ง

Page 19: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

19

printf (“Hello World!!!”) ;printf (“Hello World!!!”) ;

• บรรที่�ดำน(�เป/นส&วินค#าส�)งขั้องภาษาซ(• เป/นการเร(ย์กใช�ฟ;งก�ช�นช-)อวิ&า printf ( ) โดำย์ม(การส&ง

ผ&านค&าเขั้�าไปในฟ;งก�ช�น หน*)งค&า “Hello World!!!” เป/น ค&าชน�ดำ string

•argument (parameter): ค&าที่()ส&งผ&านเขั้�าไปในฟ;งก�ช� )น

Page 20: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

20

return 0 ;return 0 ;

• เน-�องจกฟั)งก*ชิ+น main() มี�กร้ส0งค0กล+บมี ก0อนจะจบฟั)งก*ชิ+นจ�งต�องมี�กร้ใชิ�คส+�ง return

ตมีด�วยต+วเลขึ้ท��จะส0งกล+บไปี โดยค0ท��ส0งกล+บไปี จะถู�กส0งไปีให�ร้ะบบปีฏิ%บ+ต%กร้ (operating

systems)• ค0 0 เปี#นต+วบอกว0โปีร้แกร้มีทงนเสร้9จส%�น

สมีบ�ร้ณ์*• ย+งไมี0ต�องก+งวลก+บเร้-�องน��ตอนน�� เพ�ยงให�จว0

ต�องใส0คส+�งน��ไว�ในตอนท�ยขึ้องฟั)งก*ชิ+นmain() ท/กคร้+�ง

Page 21: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

21

# include <stdio.h>int main (void){ printf(“My name is Tommy \n”); return 0;}

จงแสดงผลล+พธิ*ขึ้องโปีร้แกร้มี

ต+วอย0งโปีร้แกร้มีต+วอย0งโปีร้แกร้มี

ผลกร้ร้+นโปีร้แกร้มี My name is Tommy

Page 22: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

22

# include <stdio.h>int main (void){

printf(“Tommy Kim\n 53102999\n”);return 0;

}

จงเขึ้�ยนโปีร้แกร้มีแสดงชิ-�อ นมีสก/ล พร้�อมีก+บร้ห+สน+กศ�กษ

ทดสอบควมีเขึ้�ใจทดสอบควมีเขึ้�ใจ

ผลกร้ร้+นโปีร้แกร้มี: Tommy Kim53102999

Page 23: บทที่  2 แนะนำภาษา  C Basic C Program

23

241-101 Introduction to Computer Programming

คณาจารย์�ภาควิ�ชาวิ�ศวิกรรมคอมพิ�วิเตอร�[email protected]

ต+วแปีร้และต+วดเน%นกร้ต+วแปีร้และต+วดเน%นกร้

Page 24: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

24

ชิน%ดขึ้�อมี�ลพ-�นฐนชิน%ดขึ้�อมี�ลพ-�นฐน• ภษ C เปี#นภษท��เขึ้�มีงวดก+บเร้-�องชิน%ด

ขึ้�อมี�ล−int ต�วิเลขั้จ#านวินเต5ม−float ต�วิเลขั้ที่ศน�ย์ม−double ต�วิเลขั้ที่ศน�ย์มที่()ม(ควิามจ2เป/น 2 เที่&า−char ต�วิอ�กษร

• ชิน%ดขึ้�อมี�ลบงต+ว อจทงนร้0วมีก+บต+วปีร้+บปีร้/ง signed, unsigned, short และ long

Page 25: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

25

ขึ้�อมี�ลขึ้�อมี�ล• โปรแกรมส&วินใหญ่&เก()ย์วิขั้�องก�บการประมวิลผล

ขั้�อม4ล• ขั้�อม4ลภาย์ในโปรแกรม

−ค&าคงที่()−ต�วิแปร

• ขั้�อม4ลจากภาย์นอก−การกดำ keyboard−ไฟล�−ระบบเคร-อขั้&าย์−อ-)นๆ

Page 26: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

26

ค0คงท�� ค0คงท�� Constant ValueConstant Value• ต+วเลขึ้จนวนเต9มี (ฐนส%บ Decimal ) เชิ0น 10, 20, -5

−เลขึ้ฐน 16 (Hexadecimal) เชิ0น 0x32, 0x5FB (ขึ้��นต�นด�วย 0 x)

−เลขึ้ฐน 8 (Octal ) เชิ0น 013, 041, 07 (ขึ้��นต�นด�วยศ�นย*)• ต+วเลขึ้ทศน%ยมี เชิ0น 7.2, 5.6, 0.002, 2e-3, -

3.14159e2, -314.159• ต+วอ+กษร้ เชิ0น 'c' ,'1', '5' , ' ' (space), ‘$'

−ต+วอ+กษร้พ%เศษท��ขึ้��นต�นด�วย \ เชิ0น '\t'−อ+กขึ้ร้ะพ%เศษสมีร้ถูยกเล%กควมีพ%เศษได�โดยใชิ� \ นหน� เชิ0น

'\\' ค-ออ+กขึ้ร้ะ \• ขึ้�อควมี String (ไมี0ใชิ0ขึ้�อมี�ลชิน%ดพ-�นฐน ) เชิ0น "Hello"

−ขึ้�อควมีว0งเปีล0 "" −ขึ้�อควมีท��มี�ต+วอ+กษร้ว0ง(space)หน��งต+ว " "

Page 27: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

27

ขึ้�อมี�ลต+วอ+กษร้ ขึ้�อมี�ลต+วอ+กษร้ Character Character ขั้นาดำหน*)งไบต�

เก5บค&าเป/นจ#านวินเต5มไดำ� 256 ค&า 0( _255 หร-อ -128_1

27

ค&าจ#านวินค-อรห�สขั้องต�วิอ�กษร ตามมาตรฐานASCII เร(ย์กวิ&าร้ห+สแอสก�� (ASCII)

Page 28: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

28

ต+วแปีร้ ต+วแปีร้ VariableVariable• ใชิ�หน0วยควมีจขึ้องคอมีพ%วเตอร้*ในกร้จดจขึ้�อมี�ล• ยกท��จะอ�งอ%งตแหน0งในหน0วยควมีจ เร้จ�งใชิ�ชิ-�อ

ขึ้องต+วแปีร้ในกร้อ�งอ%ง• ต+วแปีร้ต�องถู�กปีร้ะกศก0อนกร้ใชิ�งน• กร้ปีร้ะกศต+วแปีร้ ปีร้ะกอบด�วย ชิน%ดขึ้�อมี�ล ชิ-�อ

ต+วแปีร้ (อจจะมี�กร้กหนดค0เร้%�มีต�นด�วย ) และตมีด�วย ; (semi-colon) เชิ0น int x; หร้-อ int x = 2; ชิ-�อต+วแปีร้ เปี#นกร้ปีร้ะกอบก+นร้ะหว0ง ต+วอ+กษร้ ต+วเลขึ้

เคร้-�องหมีย _ (underscore) ท+�งน��ห�มีขึ้��นต�นด�วยต+วเลขึ้ และไมี0เปี#นคสงวน

Page 29: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

29

ต+วอย0งกร้ปีร้ะกศใชิ�งนต+วอย0งกร้ปีร้ะกศใชิ�งนต+วแปีร้ต+วแปีร้• ประกาศต�วิแปร c ม(ชน�ดำเป/นต�วิอ�กษร 1 ต�วิ

char c;

• ประกาศต�วิแปร count ม(ชน�ดำเป/นเลขั้จ#านวินเต5มพิร�อมที่��งก#าหนดำให�ม(ค&าเที่&าก�บ 8 int count=8;

• ประกาศต�วิแปร price ม(ชน�ดำเป/นเลขั้ที่ศน�ย์ม float price;

Page 30: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

30

ต+วอย0งกร้ปีร้ะกศต+วแปีร้ต+วอย0งกร้ปีร้ะกศต+วแปีร้ ปีร้ะกศต+วแปีร้ชิ-�อ happy มี�ชิน%ดเปี#นต+วอ+กษร้ 1 ต+ว

พร้�อมีท+�งกหนดให�มี�ค0เปี#นต+วอ+กษร้ C ( capital letter พ%มีพ*ใหญ่0 )

char happy=‘C’; ปีร้ะกศต+วแปีร้ easy มี�ชิน%ดเปี#นเลขึ้จนวนเต9มีพร้�อมี

ท+�งกหนดให�มี�ค0เท0ก+บ 5 และ ต+วแปีร้ Easy มี�ชิน%ดเปี#นเลขึ้จนวนเต9มีพร้�อมีท+�งกหนดให�มี�ค0เท0ก+บ 10

int easy=5, Easy=10; หร้-อ int easy=5; int Easy=10;

ประกาศต�วิแปรช-)อ test ม(ชน�ดำเป/นเลขั้ที่ศน�ย์มม(ค&าเที่&าก�บ 75.

float test=7.5;

Page 31: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

31

กร้ต+�งชิ-�อต+วแปีร้กร้ต+�งชิ-�อต+วแปีร้

• อ+กษร้ต+วแร้กจะต�องเปี#นต+วอ+กษร้ภษอ+งกฤษหร้-อ เคร้-�องหมีย

_ (underline character) สมีร้ถูต+�งชิ-�อต+วแปีร้โดยใชิ�ต+วเลขึ้ร้0วมีก+บ

ต+วอ+กษร้ภษอ+งกฤษ ได�แต0ห�มีใชิ�ต+วเลขึ้เปี#นต+วอ+กษร้ต+วแร้ก ต+วอ+กษร้ภษอ+งกฤษต+วพ%มีพ*เล9กและต+วพ%มีพ*ใหญ่0ถู-อเปี#นคนละต+วก+น เชิ0น name ก+บ NAME

Page 32: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

32

auto default float register structvolatile break do for returnswitch while case double gotoshort typedef char else ifsigned union const enum intsizeof unsigned continue extern longstatic void

• ห�มีต+�งชิ-�อซี�ก+บคสงวน (Keywords) ซี��งเปี#นคท��มี�อย�0แล�วในภษC

กร้ต+�งชิ-�อต+วแปีร้กร้ต+�งชิ-�อต+วแปีร้

Page 33: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

33

ต+วอย0งต+วอย0งคต0อไปีน��สมีร้ถูนมีต+�งเปี#นชิ-�อต+วแปีร้ได�

หร้-อไมี0

number

2value

grade1

student_id

float

_score

$age

Number-person

Page 34: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

34

ต+วอย0งกร้ใชิ�งนต+วแปีร้ต+วอย0งกร้ใชิ�งนต+วแปีร้#include <stdio.h>#define NUM 5

int main(){ int x = NUM; float y; y = x + NUM; printf("%.1f\n", y); return 0;}

NUM ไม&ใช&ต�วิแปร แต&จะถู4กแที่นดำ�วิย์5 ก&อนการคอมไพิล�

ผลล�พิธิ�ขั้องการค#านวิณ เป/นไปตามชน�ดำขั้�อม4ลขั้องต�วิถู4กดำ#าเน�นการที่()ใหญ่&ส2ดำint + float => float

x เป/นต�วิแปร ชน�ดำจ#านวินเต5ม

ค&า y ถู4กก#าหนดำค&าโดำย์เคร-)องหมาย์ =ดำ�านซ�าย์เป/นต�วิแปรดำ�านขั้วิาเป/นการค#านวิณต�วิเลขั้

Page 35: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

35

ต+วดเน%นกร้ทงคณ์%ตศสตร้* ต+วดเน%นกร้ทงคณ์%ตศสตร้* Arithmetic OperatorsArithmetic Operators

• ต�วิดำ#าเน�นการที่างคณ�ตศาสตร� ม( 5 ต�วิ ค-อ บวิก ลบ ค4ณ หาร มอดำ4ล�ส ( + - * / % ตามล#าดำ�บ)

• มอดำ4ล�สค-อการหาเศษขั้องการหาร ใช�ไดำ�ก�บจ#านวินเต5มเที่&าน��น

• มอดำ4ล�ส ค-อ เคร-)องหมาย์ที่()ให�ผลล�พิธิ�เป/น เศษขั้องการหาร ค-อ 13%5 ไดำ� 3

• ผลล�พิธิ�ขั้องน�พิจน� จะม(ชน�ดำขั้�อม4ล ตามชน�ดำขั้�อม4ลที่()ใหญ่&ที่()ส2ดำขั้องต�วิถู4กดำ#าเน�นการ−int x =6; float y = 2.0;−x* 5 ผลล�พิธิ�ที่()ไดำ�ค-อ น�พิจน�ขั้อง int−x/5 ผลล�พิธิ�ที่()ไดำ�ค-อ น�พิจน�ขั้อง int (เลขั้ที่ศน�ย์มจะหาย์ไป)−x* y ผลล�พิธิ�ที่()ไดำ� ค-อ น�พิจน�ขั้อง float

Page 36: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

36

ต�วิอย์&างต�วิอย์&างจากค#าส�)งต&อไปน(�int a,b,c;

a = 2;

b = 3;

c = a + b;

จงหาค&าขั้องต�วิแปร c C = 5C = 5

Page 37: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

37

ต�วิอย์&างต�วิอย์&าง

จกคส+�งต0อไปีน��int a,b;a = 2;a = 5;b = a + 4;จงหค0ขึ้อง

ต+วแปีร้ b

จกคส+�งต0อไปีน��

int a;

a = 2;

a = a + 3;

จงหค0ขึ้องต+วแปีร้ a

Page 38: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

38

ต+วดเน%นกร้ทงคณ์%ตศสตร้* ต+วดเน%นกร้ทงคณ์%ตศสตร้* (Arithmetic Operator)(Arithmetic Operator)

เคร้-�องหมีย ควมีหมีย+ บวก- ลบ* ค�ณ์/ หร้% หร้เอเศษ (Modulo)++ เพ%�มีค0คร้+�งละ 1-- ลดค0คร้+�งละ 1

Page 39: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

39

ลด+บขึ้องต+วดเน%นกร้ลด+บขึ้องต+วดเน%นกร้

เคร้-�องหมีย ท%ศกร้ทงน() ซี�ยไปีขึ้ว

* / % ซี�ยไปีขึ้ว+ - ซี�ยไปีขึ้ว

ก0อน

หล+ง

Page 40: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

40

กร้กหนดค0 และลด+บขึ้องกร้ กร้กหนดค0 และลด+บขึ้องกร้ดเน%นกร้ดเน%นกร้

• ล#าดำ�บขั้องต�วิดำ#าเน�นการ จะเก�ดำขั้*�นตามระดำ�บขั้องต�วิดำ#าเน�นการ−ค4ณ และหาร จะกระที่#าก&อนบวิกและลบ ถู�าระดำ�บเที่&าก�น จ*งค#านวินจาก

ซ�าย์ไปขั้วิา

• เพิ-)อป@องก�นควิามส�บสน ควิรใช� ( ) เพิ-)อระบ2วิ&าต�วิดำ#าเน�นการใดำต�องที่#าก&อน− เช&น (sum/4) + (max*lowest) เป/นต�น

น%พจน*ทงขึ้วมี-อขึ้องเคร้-�องหมีย น%พจน*ทงขึ้วมี-อขึ้องเคร้-�องหมีย = = ต�องถู�กปีร้ะเมี%น ต�องถู�กปีร้ะเมี%น

ผลล+พธิ*ขึ้องน%พจน*ถู�กนไปีบ+นท�กในต+วแปีร้ทงซี�ยมี-อผลล+พธิ*ขึ้องน%พจน*ถู�กนไปีบ+นท�กในต+วแปีร้ทงซี�ยมี-อ

answer = sum / 4 + MAX * lowest;

14 3 2

Page 41: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

41

ต�วิอย์&างต�วิอย์&าง จงหาค&าขั้องน�พิจน�ต&อไปน(�จงหาค&าขั้องน�พิจน�ต&อไปน(�10/5 _____________

3/9 _____________

7/2 _____________

7.0/2 _____________

21%4 _____________

10%7 _____________

10%2 _____________

3%7 _____________

22

00

33

3.53.5

11

33

00

33

Page 42: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

42

10 + 2 * 3 * -1 _____________

2 * 5 % 8 + -7 _____________

(3 + 5/2)*(7 - 3 - 5%2)_____________

ต�วิอย์&างต�วิอย์&าง.. จงหาค&าขั้องน�พิจน�ต&อไปน(�จงหาค&าขั้องน�พิจน�ต&อไปน(�

44

-5-5

1515

55 * * 3 3

Page 43: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

43

•ก#าหนดำให� x, y และ z เป/นต�วิแปรจ#านวินเต5ม จงหาค&าขั้องต�วิแปร x, y และ z หล�งจากส&วินขั้องโปรแกรมขั้�างล&างน(�ที่#างานเสร5จ

int x = 7; int y = 2; int z = 4; x = x / y; y = z; y = z % 6; z = z / 2;

ก. x=7 y=2 z=4ขั้. x=3 y=4 z=2ค. x=3 y=4 z=4ง. x=7 y=2 z=2

Page 44: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

44

ควมีแตกต0งขึ้องเคร้-�องหมีย = และ ==o เคร้-�องหมีย = เปี#นต+วกหนดค0 o เคร้-�องหมีย == เปี#นเคร้-�องหมียเปีร้�ยบเท�ยบ ต+วอย0งเชิ0น

หมียถู�ง เปี#นกร้กหนดค0ให�ก+บต+วแปีร้ point ให�มี�ค0เท0ก+บ 30

หมียถู�ง เปี#นกร้ตร้วจสอบว0ค0 point มี�ค0เท0ก+บ 30 หร้-อไมี0

ต+วอย0งต+วอย0ง

point = 30;

point == 30;

Page 45: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

45

ต+วดเน%นกร้เพ%�มีค0และต+วดเน%นกร้ลดต+วดเน%นกร้เพ%�มีค0และต+วดเน%นกร้ลดค0ค0

(Increment & Decrement)(Increment & Decrement)

• ต+วดเน%นกร้ ++ จะบวกหน��งเขึ้�ก+บต+วแปีร้ท��ถู�กดเน%นกร้

• ต+วดเน%นกร้ -- จะลบหน��งออกจกต+วแปีร้ท��ถู�กดเน%นกร้

Page 46: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

46

ต�วิอย์&างต�วิอย์&าง จงเขั้(ย์นผลล�พิธิ�ขั้องโปรแกรมต&อ จงเขั้(ย์นผลล�พิธิ�ขั้องโปรแกรมต&อไปน(�ไปน(�

//increment.c#include <stdio.h>int main(){ int a = 2,b,c; b = ++a; printf(“b= %d a= %d\n”,b,a); c = b++; printf(“b= %d c= %d\n”,b,c);

return 0;}

b= 3 a= 3b= 3 a= 3

b= 4 c=3b= 4 c=3

Page 47: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

47

กร้แปีลงชิน%ดขึ้�อมี�ลกร้แปีลงชิน%ดขึ้�อมี�ล• การแปลงชน�ดำขั้�อม4ล เก�ดำขั้*�นไดำ� 3 ที่างดำ�วิย์ก�น• ที่างที่() 1 การแปลงผ&านเคร-)องหมาย์ =

int a = 3; double y=a; printf("y %f",y); // 3.000

• ที่างที่() 2 การแปลงเม-)อเก�ดำการดำ#าเน�นการ− เม-)อ a * b โดำย์ a และ b เป/น int

int a = 3,b,c; float y=1.5; printf("%f",(a*y)); //4.5000

• ที่างที่() 3 การแปลงผ&านการที่#าคาสต��ง (Casting)

Page 48: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

48

//cast.c#include <stdio.h>int main(){ int a =10, b=4; double x1,x2,x3; printf("a/b= %d \n",(a/b));

x1=a/b; printf("x1= %f \n",x1); x2= (double)(a/b); printf("x2= %f \n",x2);

x3= (double)a/b; printf("x3= %f \n",x3); return 0;}

Page 49: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

49

ต+วดเน%นกร้ปีร้ะกอบ ต+วดเน%นกร้ปีร้ะกอบ (Compound Operator)(Compound Operator)

• เปี#นร้�ปีย0อขึ้องต+วดเน%นกร้และต+วแปีร้ท��ถู�กดเน%นกร้

• ต+วอย0งเชิ0นx = x + 1; เขึ้�ยนแทนได�ด�วย x += 1;a = a - b; เขึ้�ยนแทนได�ด�วย a -= b;x = x * 2; เขึ้�ยนแทนได�ด�วย x *= 2;y = y / 5; เขึ้�ยนแทนได�ด�วย y /= 5;

Page 50: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

50

ต+วอย0งต+วอย0งจากค#าส�)งต&อไปน(� int num1 = 3,num2 = 1;

num1 *= 4;

num2 += num1 - 2;

จงหาค&าขั้องต�วิแปร num2 num2=11num2=11

Page 51: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

51

ขึ้อบเขึ้ตขึ้องต+วแปีร้ขึ้อบเขึ้ตขึ้องต+วแปีร้• ต+วแปีร้ถู�กปีร้ะกศได�ท+�งภยนอก และภยในฟั)งก*ชิ+น• ต+วแปีร้ท��ถู�กปีร้ะกศภยในฟั)งก*ชิ+น

−ถู�กสร้�งขึ้��น เมี-�อฟั)งก*ชิ+นเร้%�มีทงน−ถู�กทลย เมี-�อฟั)งก*ชิ+นจบกร้ทงน−เปี#นท��ร้��จ+ก ภยในเคร้-�องหมีย { และ } ขึ้องฟั)งก*ชิ+นท��มี�

กร้ปีร้ะกศเท0น+�น−ไมี0สมีร้ถูอ�งอ%งจกฟั)งก*ชิ+นอ-�นได� แมี�ว0 ต+วแปีร้น+�นย+งไมี0

ได�ถู�กทลย• ต+วแปีร้ท��ถู�กปีร้ะกศภยนอกฟั)งก*ชิ+น (ในเบ-�องต�น

นศ. ไมี0ควร้ใชิ�ต+วแปีร้ล+กษณ์ะน��)−ถู�กสร้�งขึ้��น และดร้งอย�0 ตลอดกร้ทงนขึ้องโปีร้แกร้มี−เปี#นท��ร้��จ+ก ในท/กๆ ฟั)งก*ชิ+นภยในไฟัล*เด�ยวก+น−สมีร้ถูร้��จ+กก+นต0งไฟัล*ได� โดยใชิ�ต+วปีร้+บปีร้/ง extern

Page 52: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

52

ต�วิอย์&างการใช�ต�วิแปรภาย์ในต�วิอย์&างการใช�ต�วิแปรภาย์ใน// internal.c#include <stdio.h>void my_func();int main(){ double x = 1.1; my_func(); printf(“In main x = %f\n”,x); return 0;}void my_func(){ double x; x = 2.5; printf(“In my_func x = %f\n”,x);}

Page 53: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

53

ต�วิอย์&างการใช�ต�วิแปรภาย์นอกต�วิอย์&างการใช�ต�วิแปรภาย์นอก//external.c#include <iostream.h>double x; void my_func();int main(){ x = 1.1; my_func(); printf(“In main x = %f\n”,x); return 0;}void my_func(){ x = 2.5; printf(“In my_func x = %f\n”,x);}

Page 54: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

54

ต+วแปีร้ภยในท��มี�ชิ-�อเด�ยวก+บต+วแปีร้ต+วแปีร้ภยในท��มี�ชิ-�อเด�ยวก+บต+วแปีร้ภยนอกภยนอก// variable.c

#include <stdio.h>double x;void my_func();int main(){ double x = 1.1; my_func(); printf(“In main x = %f\n”,x);

return 0;}void my_func(){ x = 2.5; printf(“In my_func x = %f\n”,x);}

Page 55: บทที่  2 แนะนำภาษา  C Basic C Program

55

241-101 Introduction to Computer Programming

คณาจารย์�ภาควิ�ชาวิ�ศวิกรรมคอมพิ�วิเตอร�[email protected]

กร้แสดงผลและกร้ร้+บค0กร้แสดงผลและกร้ร้+บค0

น�พิจน�ก�บการแสดำงผลและการร�บค&าการแสดำงผล

การร�บค&า

Page 56: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

56

น%พจน*ก+บกร้แสดงผลและร้+บค0น%พจน*ก+บกร้แสดงผลและร้+บค0• คอมพิ�วิเตอร�สามารถูแสดำงผลไดำ�หลาย์ร4ปแบบเช&น

ขั้�อควิาม ภาพิ เส(ย์ง• การเขั้(ย์นโปรแกรมช��นตอนเป/นการแสดำงผลดำ�วิย์

ขั้�อควิาม• ภาษา C ไม&วิ&าจะเป/นการแสดำงผลหร-อร�บค&าเบ-�องต�น จะ

ที่#าผ&านขั้�อควิาม• ส�)งที่()ต�องการแสดำงผลต�องแปลงจากน�พิจน�ต&างๆ ไป

เป/นขั้�อควิาม• ส�)งที่()ต�องการน#าเขั้�าจะต�องแปลงจากขั้�อควิามเป/น

น�พิจน�

Page 57: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

57

น%พจน*ก+บกร้แสดงผลน%พจน*ก+บกร้แสดงผล

xต�วิแปรหร-อค&าคงที่()ใน RAM(ถู4กประกาศผ&าน int x;)

และป;จจ2บ�นเก5บค&าในเลขั้ฐาน 2

ฟ;งก�ช�น printfถู4กเร(ย์กดำ�วิย์ printf(“%d”, x)

10

แปลงต�วิแปร x ตามร4ปแบบที่()ก#าหนดำเพิ-)อเปล()ย์นให�เป/นขั้�อควิามแล�วิน#าไปแสดำงผลบนหน�าจอ

Page 58: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

58

น%พจน*ก+บกร้ร้+บค0น%พจน*ก+บกร้ร้+บค0

10

xต�วิแปรหร-อค&าคงที่()ใน RAM(ถู4กประกาศผ&าน int x;)

และป;จจ2บ�นเก5บ เลขั้ฐาน 2

ฟ;งก�ช�น printfถู4กเร(ย์กดำ�วิย์ scanf(“%d”, &x)

แปลงขั้�อควิามที่()ไดำ�ร�บเป/นชน�ดำตามร4ปแบบที่()ก#าหนดำและก#าหนดำให�น#าค&าไปใส&ต�วิแปร x

โปรแกรมหย์2ดำรอร�บค&าจากผ4�ใช�ผ4�ใช�พิ�มพิ� 1 และ 0 ซ*)งเป/นขั้�อควิามปรากฏบนหน�าจอขั้�อควิามถู4กส&งไปย์�ง scanf เม-)อผ4�ใช�กดำ Enter

Page 59: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

59

กร้แสดงผล• ใช�ฟ;งก�ช�น printf ในการร�บค&า• เช&น printf(“%s has %d\n”, name,

salary);• %s และ %d เร(ย์กวิ&า Code Format• พิาราม�เตอร�ต�วิแรกค-อร4ปแบบขั้องผลล�พิธิ�ตาม

ดำ�วิย์น�พิจน� 0 หร-อมากกวิ&า โดำย์ให�ม(จ#านวินเที่&าก�บ Code Format ที่()ระบ2ไวิ�ในร4ปแบบ

• น�พิจน�ที่()ก#าหนดำหล�งร4ปแบบ จะต�องม(ชน�ดำตรงหร-อเที่(ย์บเที่&าตามระบ2ไวิ�ใน Code Format

Page 60: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

60

กร้ร้+บค0กร้ร้+บค0• ใช�ฟ;งก�ช�น scanf ในการร�บค&า• เช&น scanf(“%d”, &x);

• โดำย์พิาราม�เตอร�ต�วิแรกค-อ ร4ปแบบ และต�วิหล�งค-อต+วแปีร้ (เปี#นน%นพจน*ไมี0ได� ) ที่()ม(ชน�ดำตรงหร-อเที่(ย์บเที่&าก�บที่()ระบ2ไวิ�ใน Code Format

• ต�วิแปรที่()ตามหล�งจะต�องม(การระบ2เคร-)องหมาย์ & ย์กเวิ�นส#าหร�บขั้�อควิามเที่&าน��น

Page 61: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

61

//print.c#include<stdio.h>int main(){

printf("Welcome\t\tto my program\n"); printf("C language is\teasy\n\n"); printf("\"Good bye\"\n"); return 0;

}

Escape sequence หร้-อ ร้ห+สควบค/มี\a เส�ยง beep\t แท9ปีในแนวนอน\n ขึ้��นบร้ร้ท+ดใหมี0

\” Double Quote “\’ Single Quote ‘

Page 62: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

62

ต+วอย0งต+วอย0ง//input.c#include<stdio.h>int main(){ char name[100]; int salary; printf("Please enter your name: "); scanf("%s", name); printf("Please enter your salary: "); scanf("%d", &salary); printf("%s gets %d\n", name, salary); }

จงเพิ�)มเต�มโปรแกรมเพิ-)อร�บค&า น#�าหน�ก (weight)แล�วิแสดำงผลล�พิธิ�

Page 63: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

63

Code FormatCode Format ที่()ควิรร4 �ที่()ควิรร4 �

• %c = ต�วิอ�กษรหน*)งต�วิ (character)• %d = ต�วิเลขั้จ#านวินเต5ม (decimal integer)• %f = เลขั้ที่ศน�ย์ม (floating-point

number)• %.2f = เลขั้ที่ศน�ย์ม 2 ต#าแหน&ง • %o = เลขั้ฐานแปดำ (octal number)• %s = ขั้�อควิาม (string)

Page 64: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

64

#include<stdio.h>

int main() { int a = 14, b = 3; int i = 10, j = 2, k = 5, x = 4, y = 5; /*Difference between / and %% */ printf("Difference between / and %\n"); printf("a = %3d , b = %3d \n",a,b); printf("a/b = %3d \n",a/b); printf("a%%b = %3d \n\n",a%b); return 0;}

ExampleExample

Page 65: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

65

#include<stdio.h>

int main() { int a = 14, b = 3; int i = 10, j = 2, k = 5, x = 4, y = 5; /*Using casting*/ printf("Using casting\n"); printf("(float) a/b = %f\n\n",(float)a/b); return 0;}

ExampleExample

Page 66: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

66

#include<stdio.h>

int main() { int a = 14, b = 3; int i = 10, j = 2, k = 5, x = 4, y = 5; /*Precedence of arithmetic operators*/ printf("Precedence of arithmetic operators\n"); printf("i = 10, j = 2, k = 5, x = 4, y = 5\n"); printf("i+j*k = %d\n",i+j*k); printf("(i+j)*k = %d\n",(i+j)*k); printf("i+(j*k) = %d\n",i+(j*k)); printf("x*y+i/10*k-8 = %d\n",x*y+i/10*k-8); return 0;}

ExampleExample

Page 67: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

67

#include <stdio.h>int main (){ int i,j; printf("Enter the value of i: "); scanf("%d",&i);

printf("\nEnter the value of j: "); scanf("%d",&j);

/* Logical Operator */ printf("\nUsing Logical Operator\n"); printf(" i&&j is %d\n",i&&j); printf(" i||j is %d\n",i||j); printf(" !i is %d\n",!i); printf(" !j is %d\n",!j);

return 0;}

ExampleExample

Page 68: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

68

กรณ(ศ*กษาขั้�อผ�ดำพิลาดำที่()เก�ดำขั้*�นกรณ(ศ*กษาขั้�อผ�ดำพิลาดำที่()เก�ดำขั้*�น

• Case 1: ล-มีปี:ดปี�กกขึ้อง main

• Case 2: พ%มีพ*คว0 #include ผ%ด• Case 3: พ%มีพ* stdio.h ผ%ด• Case 4: พ%มีพ*ชิ-�อฟั)งก*ชิ+น main ผ%ด• Case 5: ล-มี ;• Case 6: ล-มี ; อ�กคร้+�ง• Case 7: ล-มี ; หลย ๆ จ/ด• Case 8: ล-มีปีร้ะกศต+วแปีร้

68

Page 69: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

69

กรณ(ศ*กษาขั้�อผ�ดำพิลาดำที่()เก�ดำขั้*�น กรณ(ศ*กษาขั้�อผ�ดำพิลาดำที่()เก�ดำขั้*�น ((ต&อต&อ))

• Case 9: ล-มีปี:ดวงเล9บเวลใชิ� printf หร้-อ scanf

• Case 10: ล-มีเปี:ดวงเล9บเวลใชิ� printf หร้-อ scanf

• Case 11: ล-มีปี:ดเคร้-�องหมียคพ�ด• Case 12: ล-มีเปี:ดเคร้-�องหมียคพ�ด• Case 13: ล-มีเปี:ดวงเล9บเคร้-�องหมียคพ�ด• Case 14 : เอต+วแปีร้ไปีใส0ค0คงท��• ขึ้�อผ%ดพลดบงอย0ง คอมีไพเลอร้*เต-อนเร้ไมี0ได�

69

Page 70: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

70

Case 1: Case 1: ล-มป<ดำปBกกาขั้อง ล-มป<ดำปBกกาขั้อง mainmain

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function `main':

syntax error at end of input

•กร้ต�ควมีร้�ปีแบบมี�ขึ้�อผ%ดพลดตอนท�ยขึ้องโปีร้แกร้มี

1.#include<stdio.h>

2.main(){

Page 71: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

71

CaseCase 2 2: : พิ�มพิ�ค#าวิ&า พิ�มพิ�ค#าวิ&า #include #include ผ�ดำผ�ดำ

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดLine 1:

invalid preprocessing directive #inlude

•กร้ต�ควมี ส&วินขั้อง preprocessor ไม&ถู4กต�อง ในส&วินขั้อง #inlude

1.#inlude<stdio.h>

2.main(){

3.}

Page 72: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

72

CaseCase 3: 3: พิ�มพิ� พิ�มพิ� stdio.h stdio.h ผ�ดำผ�ดำ

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดLine 1:

stio.h: No such file or directory.

•กร้ต�ควมีไม&ม(ไฟล�ที่()ก#าหนดำ ให�ตรวิจสอบช-)อไฟล�ให�ถู4กต�อง

1.#inlude<stdio.h>

2.main(){

3.}

Page 73: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

73

CaseCase 4 4: : พิ�มพิ�ช-)อฟ;งก�ช�น พิ�มพิ�ช-)อฟ;งก�ช�น main main ผ�ดำผ�ดำ

•ไมี0มี�ขึ้�อผ%ดพลดในกร้คอมีไพล*•ผ%ดพลดในขึ้ณ์ะล%งค*

[Linker error] undefined reference to `WinMain@16'

ld returned 1 exit status

ไม&สามารถูหา main ฟ;งก�ช�นไดำ�

1.#inlude<stdio.h>

2.man(){

3.}

Page 74: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

74

CaseCase 5: 5: ล-ม ล-ม ;;

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 4: syntax error before '}' token

•กร้ต�ควมี−ไปีย+งบร้ร้ท+ดท�� 4 และมีองหคส+�งในบร้ร้ท+ดก0อนหน�ว0ตกหล0น ; หร้-อไมี0

1.#inlude<stdio.h>

2.main(){

3. int x

4.}

Page 75: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

75

CaseCase 6: 6: ล-ม ล-ม ; ; อ(กคร��งอ(กคร��ง

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 4: syntax error before "x"

•กร้ต�ควมี−ไปีย+งบร้ร้ท+ดท�� 4 และมีองหคส+�งในบร้ร้ท+ดก0อนหน�ว0ตกหล0น ; หร้-อไมี0

1.#inlude<stdio.h>

2.main(){

3. int x

4. x = 2;

5.}

Page 76: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

76

CaseCase 7: 7: ล-ม ล-ม ; ; หลาย์ ๆ จ2ดำหลาย์ ๆ จ2ดำ

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 4: syntax error before "x"

•คอมีไพเลอร้*บอกแค0อ+นเด�ยว ให�แก�ท�ละจ/ด

1.#inlude<stdio.h>

2.main(){

3. int x

4. x = 2

5.}

Page 77: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

77

CaseCase 8: 8: ล-มประกาศต�วิแปรล-มประกาศต�วิแปร

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 3: `x' undeclared (first use in this function)

•กร้ต�ควมีส+งเกตจกหมียเลขึ้บร้ร้ท+ดจกน+�น ด�ว0ต+วแปีร้ใด ท��อย�0ภยใน ‘… ‘ ท��ถู�กร้ะบ/ว0 ไมี0ได�ปีร้ะกศ (undeclared) ก0อนนมีใชิ�งน

1.#inlude<stdio.h>

2.main(){

3. x = 2;

4.}

Page 78: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

78

CaseCase 9: 9: ล-มป<ดำวิงเล5บเวิลาใช� ล-มป<ดำวิงเล5บเวิลาใช� printf printf หร-อ หร-อ scanfscanf

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 3: syntax error before ';' token

•กร้ต�ควมี มี�ขึ้�อผ%ดพลดเก%ดขึ้��นท��บร้ร้ท+ดท�� 3 และมี�ขึ้�อผ%ดพลดก0อน(syntax error befor)

จะส0วนขึ้องโปีร้แกร้มี(token) ;

1.#inlude<stdio.h>

2.main(){

3. printf("Hi\n";

4.}

Page 79: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

79

CaseCase 10: 10: ล-มเป<ดำวิงเล5บเวิลาใช� ล-มเป<ดำวิงเล5บเวิลาใช� printf printf หร-อ หร-อ scanfscanf

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 3: syntax error before string constant

•กร้ต�ควมี บร้ร้ท+ดท�� 3 มี�ร้�ปีแบบผ%ดพลดก0อนจะเร้%�มีชิ/ดขึ้�อควมี “…”

1.#inlude<stdio.h>

2.main(){

3. printf"Hi\n");

4.}

Page 80: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

80

CaseCase 11: 11: ล-มป<ดำเคร-)องหมาย์ค#าพิ4ดำล-มป<ดำเคร-)องหมาย์ค#าพิ4ดำ

•ขึ้�อควมีแสดงขึ้�อผ%ดพลดIn function main:

Line 3: missing terminating " character

Line 4: syntax error before '}' token

•กร้ต�ควมีบรรที่�ดำที่() 3 ขั้าดำเคร-)องหมาย์ป<ดำขั้�อควิาม (”) ที่#าให�เก�ดำขั้�อผ�ดำพิลาดำอ-)น ๆ ตามมาให�ที่#าการแก�ขั้�อผ�ดำพิลาดำที่()อย์4&ตอนต�นส2ดำก&อน

1.#inlude<stdio.h>

2.main(){

3. printf("Hi\n);

4.}

Page 81: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

81

CaseCase 12: 12: ล-มเป<ดำเคร-)องหมาย์ค#าพิ4ดำล-มเป<ดำเคร-)องหมาย์ค#าพิ4ดำ

•In function main:−Line 3: stray '\' in program −Line 3: `Hi' undeclared (first use in this function) −Line 3: syntax error before "n" −Line 3: missing terminating " character

•กร้ต�ควมีบรรที่�ดำที่() 3 เน-)องจากตกเคร-)องหมาย์ค#าพิ4ดำขั้องขั้�อควิาม ที่#าให�คอมไพิเลอร�ต(ควิาม ค#าต&าง ๆ ในขั้�อควิาม และแสดำงขั้�อผ�ดำพิลาดำมากมาย์ เพิราะค#าเหล&าน��นไม&ตรงหล�กการ

1.#inlude<stdio.h>

2.main(){

3. printf(Hi\n");

4.}

Page 82: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

82

CaseCase 13: 13: ล-มเป<ดำวิงเล5บเคร-)องหมาย์ค#าพิ4ดำล-มเป<ดำวิงเล5บเคร-)องหมาย์ค#าพิ4ดำ

•In function main:−Line 3: stray '\' in program

−Line 3: `printfHi' undeclared (first use in this function)

−Line 3: syntax error before "n"

−Line 3: missing terminating " character

•ต�ควมีเชิ0นเด�ยวก+บกร้ล-มีเคร้-�องหมียคพ�ดแต0ย%�งผ%ดพลดมีกกว0เพร้ะทให�คส+�ง printf ผ%ดพลดไปีด�วย น+�นค-อเปี#นคส+�งท��ไมี0ร้��จ+ก

1.#inlude<stdio.h>

2.main(){

3. printfHi\n");

4.}

Page 83: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

83

CaseCase 1144 : : เอาต�วิแปรไปใส&ค&าคงที่()เอาต�วิแปรไปใส&ค&าคงที่()

•In function main:−Line 4: invalid lvalue in assignment

•กร้ต�ควมี บรรที่�ดำที่() 4 การให�ค&าไม&ถู4กต�องเน-)องจาก ค&าที่างซ�าย์(lvalue-left value)ควิรเป/น

ต�วิแปร

1.#inlude<stdio.h>

2.main(){

3. int x;

4. 2 = x;

5.}

Page 84: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

84

ขั้�อผ�ดำพิลาดำบางอย์&าง คอมไพิเลอร�เต-อนเราขั้�อผ�ดำพิลาดำบางอย์&าง คอมไพิเลอร�เต-อนเราไม&ไดำ�ไม&ไดำ�

1.int x;

2.scanf("%d"); //very dangerous!!

3.scanf("%d", x);//forgot &

4.printf("%d");

5.printf("Hi", x);

Page 85: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

85

เอกสร้อ�งอ%งเอกสร้อ�งอ%ง• คณาจารย์�ผ4�สอนวิ�ชา Introduction to Computer

Programming, เอกสารประกอบการบรรย์าย์วิ�ชา 241-101 Introduction to Computer Programming, คณะวิ�ศวิกรรมศาสตร�, มหาวิ�ที่ย์าล�ย์สงขั้ลานคร�นที่ร�, 2551

• อ.ส2ธิน แซ&วิ&อง, เอกสารประกอบการบรรย์าย์อบรมภาษาซ(เบ-�องต�น, คณะวิ�ศวิกรรมศาสตร�, มหาวิ�ที่ย์าล�ย์สงขั้ลานคร�นที่ร�, 30 ม(นาคม 2552

• Y. D. Liang, Supplement II.C:Dev-C++ Tutorial for Introduction to C++ Programming, http://www.bloodshed.net/dev/devcpp.html

• ดำร. แสงส2ร(ย์� วิส2พิงศ�อ�ย์ย์ะ, เอกสารประกอบการบรรย์าย์อบรมภาษาซ(เบ-�องต�น, คณะวิ�ศวิกรรมศาสตร�, มหาวิ�ที่ย์าล�ย์สงขั้ลานคร�นที่ร�, 30 ม(นาคม 2552 ปีร้+บปีร้/งโดย อ.อน+นท* ชิกส/ร้%วงค*

อ.สก/ณ์ เจร้%ญ่ปี)ญ่ญ่ศ+กด%Bอ.มี+ลล%ก อ/ณ์หว%วร้ร้ธิน*

Page 86: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

86

สร2ปกฎส#าค�ญ่สร2ปกฎส#าค�ญ่• ซอร�สโค�ดำเก�ดำจากการผสมค#าและส�ญ่ล�กษณ� คอมไพิล�

และล�งค� เป/นโปรแกรมที่()บรรจ2ภาษาเคร-)อง• ค&าคงที่()ในโปรแกรมอย์4&ในร4ปขั้องต�วิเลขั้ ที่ศน�ย์ม ต�วิ

อ�กษร (ภาย์ใต�เคร-)องหมาย์ ' ') และ ขั้�อควิาม (ภาย์ใต�เคร-)องหมาย์ " ")

• ต�วิแปรต�องถู4กประกาศก&อนการใช�งาน โดำย์ระบ2ช-)อ และชน�ดำขั้องขั้�อม4ล

• การใช�ช-)อขั้องต�วิแปรหล�งการประกาศ เป/นการใช�ค&าขั้�อม4ลที่()ต�วิแปรจ#าไวิ�

• ฟ;งก�ช�นม(ส�ญ่ล�กษณ�ระบ2ขั้อบเขั้ต ค-อ { และ }• ค#าส�)งต�องจบดำ�วิย์เคร-)องหมาย์ ;

Page 87: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

87

สร2ปกฎส#าค�ญ่สร2ปกฎส#าค�ญ่• การดำ#าเน�นการ ผลล�พิธิ�จะไดำ�น�พิจน�ตามชน�ดำขั้�อม4ล

ขั้องต�วิถู4กดำ#าเน�นการชน�ดำที่()ใหญ่&ที่()ส2ดำ• การใช�เคร-)องหมาย์ = ที่างซ�าย์ต�องเป/นต�วิแปร

เที่&าน��น ที่างขั้วิาเป/นน�พิจน�ที่()ม(ชน�ดำเที่(ย์บเที่&าหร-อขั้ย์าย์ให�เป/นชน�ดำเดำ(ย์วิก�บต�วิแปรไดำ� (ย์กเวิ�นการใช� casting)

• การเร(ย์กใช�ฟ;งก�ช�น พิาราม�เตอร�จะต�องเป/นน�พิจน�ชน�ดำเดำ(ย์วิก�บที่()ระบ2ไวิ�ในต�นแบบขั้องฟ;งก�ช�น

• การเร(ย์กใช�ฟ;งก�ช�นที่()ม(การค-นค&า ถู-อเป/นน�พิจน�ที่()ม(ชน�ดำเดำ(ย์วิก�บที่()ระบ2ไวิ�ในต�นแบบขั้องฟ;งก�ช�น และม(ค&าขั้�อม4ลเป/นค&าที่()ค-นกล�บมา

Page 88: บทที่  2 แนะนำภาษา  C Basic C Program

241-101 Introduction to Computer Programming

88

สร้/ปีกฎสค+ญ่สร้/ปีกฎสค+ญ่

• ต�วิแปร ถู-อเป/นน�พิจน� แต&น�พิจน�ไม&ใช&ต�วิแปร• การแสดำงผลต�องก#าหนดำร4ปแบบ และถู�าในร4ป

แบบน��นม(การก#าหนดำ Code Format พิาราม�เตอร�ที่()ตามหล�งร4ปแบบ ต�องเป/น น�พิจน� ชน�ดำเดำ(ย์วิก�นหร-อเที่(ย์บเที่&า

• การร�บค&า พิาราม�เตอร�จะต�องเป/น ต�วิแปร ที่()ม(ชน�ดำตามที่()ระบ2ไวิ�ใน Code Format และต�องม(การใส& & หน�าต�วิแปร (ย์กเวิ�นขั้�อควิามเพิ(ย์งกรณ(เดำ(ย์วิ)