23
1 การเขียนโปรแกรมภาษา C ชั้นมัธยมศึกษาปีท4 โดย ครูสุนทร ยี่สุ้น กลุ่มสาระการเรียนรูการงานอาชีพและเทคโนโลยี(คอมพิวเตอร์) โรงเรียน ธิดานุเคราะห์

การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

1

การเขียนโปรแกรมภาษา C ชั้นมัธยมศึกษาปีท่ี 4

โดย

ครูสุนทร ยี่สุ้น

กลุ่มสาระการเรียนรู้ การงานอาชพีและเทคโนโลย(ีคอมพิวเตอร์)

โรงเรียน ธิดานุเคราะห์

Page 2: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

2

บทท่ี 1 แนะน าภาษา C

1. ประวัติความเป็นมาและขั้นตอนการพัฒนาโปรแกรม

ภาษาซี ( C programming language) เป็นภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับพัฒนาขึ้นในช่วง

ทศวรรษ 1970 โดย เคน ธอมป์สัน ( Ken Thompson) และ เดนนิส ริทชี่ ( Dennis Ritchie) ส าหรับใช้ใน

ระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกน าไปใช้กับระบบปฏิบัติการอ่ืน ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่

ใช้กันแพร่หลายมากท่ีสุด ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการท างาน โปรแกรมคอมพิวเตอร์ที่เขียนด้วยเป็น

ภาษาซีจึงท างานได้รวดเร็ว ภาษาซีเป็นภาษาโปรแกรมท่ีนิยมใช้กันมากส าหรับพัฒนาระบบปฏิบัติการและ

ซอฟต์แวร์ระบบ และเป็นภาษาท่ีใช้กันทั่วไปในการเริ่มต้นศึกษาโปรแกรมภาษาอ่ืน ๆ เพราะเป็นภาษาท่ีมี

โครงสร้างและล าดับที่มีความยืดหยุ่น ไม่ซับซ้อน สามารถเข้าถึงอุปกรณ์ฮาร์ดแวร์ได้โดยตรง เหมาะแก่การน าไปต่อ

ยอดในการศึกษาโปรแกรมภาษาอ่ืน ๆ

ในการพัฒนาภาษาโปรแกรมคอมพิวเตอร์ไม่ว่าจะเป็นภาษาใด จะมีลักษณะขั้นตอนการท างานคล้าย ๆ

กัน นั้นคือ โปรแกรมจะเริ่มจากกาเขียนซอร์สโค้ด (Source Code) ผ่านโปรแกรมประเภท Text Editor หรือ IDE

(Integrated Development Environment) ส าหรับโปรแกรมภาษาซี โดยให้บันทึกเป็นไฟล์ นามสกุล .C

จากนั้นน าไฟล์ .C ไปคอมไพล์เพ่ือแปลงจากภาษา C ให้กลายเป็นภาษาเครื่อง จะได้เป็นไฟล์ .O จากนั้น

คอมพิวเตอร์จะลิ้งค์ออบเจ็คไฟล์เข้าด้วยกัน จนกลายเป็นภาษาเครื่องที่คอมพิวเตอร์สามารถน าไปรันได้ เช่น .EXE

Compiler

(c-free, gcc, dev-

c++)

Object code

(file.o)

Source Code

( C , Java , Python , …)

Linker

ไฟล์ภาษาเครื่อง หรือ ไฟล์โปรแกรม(ไฟล์ที่ท างานได้)

Machine code / Program / executable file

( file.exe )

Page 3: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

3

2. โครงสร้างโปรแกรมภาษา C

โปรแกรมแรกกับภาษา C

ดังนั้นโปรแกรมจะต้องมีส่วนประกอบ ต่าง ๆ ดังนี้

#include <stdio.h>

int main (void)

{

// My first program

printf(“Hello World!!!”);

system(“PAUSE”);

return 0;

}

ควรจะรู้เพ่ิมเติม น่ะ \t ............................................................................................................................................................................... \n ............................................................................................................................................................................... \” ................................................................................................................................................................................ // ................................................................................................................................................................................. /* */ ................................................................................................................................................................

Page 4: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

4

ส่วนของ Preprocessor เป็นส่วนที่ทุกโปรแกรมจะต้องมี ใช้ส าหรับเรียกไฟล์ที่โปรแกรมต้องการในการ

ท างาน และก าหนดค่าต่าง ๆ ซึ่งจะต้องเริ่มต้นด้วยเครื่องหมาย # ตามด้วยชื่อโปรแกรมหรือชื่อตัวแปรที่จะ

ก าหนดค่าต่าง ๆ เช่น

#include เป็นการแจ้งให้คอมไฟล์เลอร์อ่านไฟล์อื่นเข้ามา รูปแบบคือ #include ตามด้วยชื่อไฟล์นั้น ๆ

#define เป็นการก าหนดค่านิพจน์ หรือค่าคงท่ีต่าง ๆ ให้กับชื่อของตัวแปร รูปแบบคือ

#define NAME VALUE

ส่วนของฟังก์ชันหลัก ( main () function ) ส่วนนี้คืทุกโปรแกรมต้องมี เพราะเป็นส่วนแรกที่โปรแกรมจะเริ่ม

ท างาน ซึ่งจะประกอบไปด้วยส าสั่งต่าง ๆ มาเรียงต่อกัน และแต่ละค าสั่งจะจบด้วยเครื่องหมายเซมิโคลอล ( ; )

โดยโปรแกรมหลักจะเริ่มต้นด้วย main() ตามด้วยเครื่องหมายปีกกาเปิด { และจบด้วยปีกกาปิด }

ค าสงวน “int” ที่หน้า main() เป็นตัวบอกว่าฟังกันจะมีการส่งค่ากลับเป็นจ านวนเต็ม

ค าสงวน “void” บอกให้ทราบว่าฟังก์ชันดังกล่าวไม่มีการรับค่าเข้าจากภายนอก

(parameter/argument) และ int main( ) มีความหมายเดียวกับ int main(void)

ส่วนของโปรแกรม

• วงเล็บปีกกาเปิด { บอกให้ทราบว่าส่วนของฟังก์ชันหรือขอบเขตของโค๊ดเริ่มต้นที่ใด

• วงเล็บปีกกาปิด } บอกให้ทราบว่าส่วนของฟังก์ชันหรือขอบเขตของโค๊ดสิ้นสุดที่ใด

• เครื่องหมาย ; บอกให้ทราบว่าค าสั่งหนึ่งจบลง (ต้องใส่ไว้หลังค าสั่งทุกค าสั่ง มิฉะนั้นจะเกิด syntax

error

• การย่อหน้าในการเขียนโปรแกรมเป็นลักษณะการเขียนโปรแกรมท่ีดี เพ่ือให้สะดวกต่อการหาขอบเขต

ของค าสั่ง

ค าอธิบายโปรแกรม ส่วนนี้เป็นการเขียนคอมเมนต์โปรแกรม เพื่ออธิบายการท างานต่าง ๆ ท าให้ผู้ศึกษา

โปรแกรมในภายหลังเข้าใจโปรแกรมง่ายขึ้น เมื่อคอมไฟล์โปรแกรมส่วนนี้จะถูกข้ามไป

Page 5: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

5

แบบฝึกที่ 1

1. พิจารณาโปรแกรมต่อไปนี้แล้วศึกษาผลการรันโปรแกรม

ผลการรันคือ

ระวัง ในการพิมพ์ตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กต่างกัน จะท าให้โปรแกรมเกิดข้อผิดคลาดได้

ผลการรันคือ

2. ให้นักเรียนเขียนโปรแกรมแสดงชื่อ – สกุล ชื่อเล่น ห้อง ของตัวเอง โดยให้มีผลการรันของโปรแกรมดัง

ตัวอย่างต่อไปนี้

ตัวอย่าง Mr.Sunthon Yesun : Thon Room : 404

# include <stdio.h>

int main()

{

printf(“I Love”);

printf(“Computer”); return 0;

}

# include <stdio.h>

int main()

{

printf(“I Love\n”);

printf(“Computer”);

//printf(“Very much.”); return 0;

}

Page 6: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

6

3. ตัวแปร

ในการเขียนโปรแกรมคอมพิวเตอร์กระบวนการที่ส าคัญคือ การรับข้อมูล การประมวลผลข้อมูล และการ

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

แปรที่ใช้เก็บค่าต่าง ๆ เพ่ือให้คอมพิวเตอร์ทราบว่า ณ ช่วงเวลานั้นข้อมูลที่เราต้องการใช้งานอยู่ต าแหน่งใดใน

หน่วยความจ าหรือชื่อใดในหน่วยความจ า

รูป แสดงการจ าลองการบวกเลขโดยอ้างอิงขื่อตัวแปร

ตัวแปร (ที่เก็บข้อมูล) คือ การจองพ้ืนที่ในหน่วยความจ าของคอมพิวเตอร์ส าหรับเก็บข้อมูลที่ต้องใช้ในการ

ท างานของโปรแกรม โดยจะมีการตั้งชื่อตัวแปร เพ่ือเรียกหน่วยความจ าในต าแหน่งนั้นด้วย เพ่ือความสะดวกใน

การเรียกใช้ข้อมูล ซึ่งข้อมูลในคอมพิวเตอร์สามารถจ าแนกเป็นชนิดของข้อมูลได้ดังนี้

ชนิดข้อมูล ขนาด (ไบต์) ค่าที่เก็บ char 1 ตัวอักษร ASCII 1 ตัว ตั้งแต 0 ถึง 255 int 4 คาจ านวนเต็มตั้งแต 32767 ถึง –32768 short 4 คาจ านวนเต็มตั้งแต 32767 ถึง –32768 long 4 คาจ านวนเต็มตั้งแต 2147483647 ถึง –

2147483648 unsigned unsigned int 2

unsigned short 2

unsigned long 4

คาจ านวนเต็มตั้งแต 0 ถึง 65535 คาจ านวนเต็มตั้งแต 0 ถึง 65535 คาจ านวนเต็มตั้งแต 0 ถึง 4294967295

float 4 คาจ านวนจริงตั้งแต 3.4x10-38 ถึง 3.4x1038 double 8 คาจ านวนจริงตั้งแต 1.7x10-308 ถึง 1.7x10308

Page 7: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

7

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

กฎการตั้งชื่อตัวแปร

ในภาษาซีมีการก าหนดกฎในการตั้งชื่อต่าง ๆ อันได้แก่ ชื่อตัวแปร ชื่อฟังก์ชัน ชื่อค่าคงที่ ดังนี้

1. อักษรตัวตัวแรกจะต้องเป็นตัวอักษรภาษาอังกฤษ (พิมพ์เล็ก/ใหญ่ ก้อได้) หรือ เครื่องหมาย _ เท่านัน้

2. สามารถใช้ตัวเลขรวมกับตัวอักษรภาษาอังกฤษได ้แต่ห้ามใช้ตัวเลขเป็นตัวอักษรตัวแรกของชื่อ เช่น

3. ตัวอักษรพิมพ์เล็กและตัวพิมพ์ใหญ่ ถือเป็นคนละชื่อกัน เช่น

4. ห้ามตั้งชื่อโดยใช้ค าสงวน เป็นชื่อตัวแปร เช่น

ค าแนะน าในการตั้งชื่อ

1. ให้ตั้งชื่อให้สื่อถงึความหมายบอกให้รู้ว่าตัวแปรนั้นใช้ท าอะไร

2. กรณีท่ีเป็นชื่อตัวแปร ชื่อฟังก์ชัน มักจะใช้ตัวอักษรพิมพ์เล็ก

3. ค่าคงที่ที่ก าหนดด้วย #define มักจะใช้ตัวพิมพ์ใหญ่ทั้งหมด

4. กรณีตั้งชื่อตัวแปรที่ประกอบด้วยหลาย ๆ ค า อาจจะใช้อักษรพิมพ์ใหญ่ขึ้นต้นค าในล าดับถัดมา หรือใช้ _

แยกระหว่างค า เช่น totalScore หรือ total_score

รูปแบบ 1 : ชนิดตัวแปร ชื่อตัวแปร ; เช่น int number ; int A ;

รูปแบบ 2 : ชนิดตัวแปร ชื่อตัวแปร1 , ชื่อตัวแปร2 , ชื่อตัวแปร3 ;

เช่น float a , b , c ; char name , lastname ;

รูปแบบ 3 : ชนิดตัวแปร ชื่อตัวแปร1 = ค่าเริ่มต้น ;

เช่น float GPA = 4.00; char Physic = ‘A’ ;

auto default float register struct

volatile break do for return

switch while case double goto

short typedef char else if

signed union const enum int

sizeof unsigned continue extern long

static void

Page 8: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

8

ข้อมูลตัวอักษร Character

ค่าตัวอักษร จะมีมาตรฐาน ASCII เรียกว่า รหัสแอสกี้ ซึ่งเป็นค่าเฉพาะของตัวอักษรแต่ละตัว

ตาราง รหัสแอสกี่

Page 9: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

9

แบบฝึกที่ 2

1. ชื่อต่อไปนี้ประกาศได้ไหม ?

2. ข้อต่อไปนี้ถูก หรือ ผิด ถ้าผิดแก้ให้ถูกด้วย

2.1 float $dollar;

2.2 float if = 2.5 ;

2.3 char c1 , c2 , c3 ;

2.4 float integer = 4 ;

2.5 char 1c , 2c , 3c ;

2.6 unsigned int a = ‘A’ ;

2.7 int my age;

2.8 float sum;

2.9 int sum;

2.10 float student-heught;

4. จงประกาศตัวแปร ให้เหมาะสมกับข้อมูลต่อไปนี้

4.1 ตัวแปร year ใช้เก็บปี พ.ศ. โดยก าหนดคา่เริม่ต้นเป็น 2559

………………………………………………………………………………………

.

4.2 ตัวแปร average ใช้เก็บค่าเฉลี่ยคะแนนสอบ

……………………………………………………………………………………..

4.3 จ านวนนักเรยีนทั้งหมดของช้ันมัธยมศึกษาปีท่ี 4

…………………………………………………………………………………….

4.4 ประเภทของรถยนต์ซึ่งเป็นตัวอักษร เช่น A , B , C , K

……………………………………………………………………………………..

4.5 เวลาในการท าข้อสอบวิชาอินโทรคอม

……………………………………………………………………………………

4.6 เก็บจ านวนเงินท่ีใช้จ่ายในแตล่ะวัน

……………………………………………………………………………………..

4.7 เก็บพื้นที่ของวงกลม

……………………………………………………………………………………..

4.8 เงินเดือนของพนักงาน พร้อมก าหนดค่าเริ่มต้นเป็น

เงินเดือนท่ีต้องการในอนาคต

……………………………………………………………………………………

4.9 เกรดวิชาคอมพิวเตอร์ของนักเรียนท่ีไดเ้กรด 4

……………………………………………………………………………………..

4.10 น้ าหนักของนักศึกษา

…………………………………………………………………………………….

Float 3gread bath_room n-sync break Year# _good

Page 10: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

10

4. การแสดงผลและรับค่า

การแสดงผลข้อมูล ด้วยค าสั่ง printf

รูปแบบ คือ

ตัวอย่างเช่น

printf(“ข้อความ”); (แบบ1)

printf(“code format”,data or variable); (แบบ2)

Code format

%c - char

%d - int

%f - float

%.2f - float 2 ต าแหน่ง %lf - double

%s - string (ข้อความ)

# include <stdio.h>

void main()

{

int age = 16 ;

printf (“I am %d year old” , age) ;

return 0 ;

}

# include <stdio.h>

void main()

{

float s = 123.4567 ;

printf(“%s” , “Hello world \n”) ;

printf(“Total 1 = %f \n” , s ) ;

printf(“Total 2 = %.2f \n” , s ) ;

printf(“Total 3 = %d\n” , (int)s ) ;

}

# include <stdio.h>

void main()

{

float s = 123.4567 ;

int a = 3, b =5 ;

printf(“Sum = %.2f \n”,s) ;

printf(“%5d %d \n” ,b,a ) ;

printf(“%05d \n” ,a*4 ) ;

}

Page 11: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

11

การรับผลข้อมูล ด้วยค าสั่ง scanf

รูปแบบ คือ

ตัวอย่างเช่น

int month , year ;

scanf(“%d %d”,& month,& year);

จากตัวอย่างดังกล่าว %d %d บอกให้รู้ว่าต้องการรับข้อมูล 2 ตัว โดยข้อมูลนั้นแยกด้วยช่องว่าง

ซึ่งข้อมูลตัวแรกจะเป็นจ านวนเต็มเก็บไว้ที่ month ส่วนข้อมูลตัวที่สองก็เป็นจ านวนเต็ม เก็บไว้ที่ตัวแปร year

ตัวอย่างเพ่ิมเติม เป็นการน า printf และ scanf ร่วมกัน

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

เพ่ิมเติม

scanf(%d/%d/%d”, &day, &month, &year);

ขอมูลที่จะปอนเขาสูระบบ 20/7/2001

นอกจากนี้ยังสามารถก าหนดขนาดของขอมูลเชน

scanf(%2d%2d%4d”, &day, &month, &year);

ขอมูลที่จะปอนเขาสูระบบคือ 20072001

scanf(“code format”,&variable);

# include <stdio.h>

void main()

{

float a , b ,sum ;

printf (“Please enter A : ”) ;

scanf(“%f”,&a) ;

printf (“Please enter B : ”) ;

scanf(“%f”,&b ) ;

sum = a + b ;

printf (“A+B = %.2f” , sum) ;

}

Page 12: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

12

5. ตัวด าเนินการ

5.1 ตัวด าเนินการก าหนดค่า

ตัวด าเนินการก าหนดค่าเป็นตัวด าเนินการพื้นฐานที่ใช้ในการก าหนดค่าค่าง ๆ ให้กับตัวแปร โดยใช้

เครื่องหมาย = มีรูปแบบดังนี้

เช่น int age = 10;

char grade = ‘A’;

5.2 ตัวด าเนินการคณิตศาสตร์

ตัวด าเนินการคณิตศาสตร์ในภาษาซีประด้วยไปด้วย การบวก ลบ คูณ หาร หารเอาเศษ ซึ่งมีล าดับการ

ท างานดังต่อไปนี้

ตาราง แสดงตัวด าเนินการคณิตศาสตร์การท างาน

จากตาราง ตัวด าเนินการที่อยูดานบนจะมีความส าคัญกวาดานลาง นั่นคือหากในนิพจนประกอบ

ดวยตัวด าเนินการดานบนจะมีการแปลคาตัวด าเนินการนั้นการ หากพบตัวด าเนินการที่อยูในล าดับเดียวกันก็

จะท าการแปลความหมายจากซายไปขวา ตัวอยางเชน

3 + 4 / 2 จะไดผลลัพธเทากับ 3 + (4 / 2) = 5

ตัวแปร = นิพจน์หรือค่าเริ่มต้น

Page 13: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

13

3 * 2 + 4 % 2 จะไดผลลัพธเทากับ (3*2) + (4%2) = 6 + 0 = 6

แตหากตองการใหท าตัวด าเนินการในล าดับต ่ากอน ใหใชเครื่องหมาย ( ) ครอบค าสั่งที่ตองการเชน

3 * (2 + 4 )% 2 จะไดผลลัพธเทากับ 3 * 6 % 2 =18 % 2 = 0

เพราะฉะนั้นหากมีสมการเชน

หากตองการเขียนเปนนิพจนคณิตศาสตร จะตองเขียนวา

X = (A + B + C) /10

ตัวอย่าง

15/5 = _____________ 3/9 = _____________ 7/2 = _____________ 5.0/2 = _____________ 1*4 = _____________ 10%7 = _____________ 10%2 = _____________ 3%7 = _____________

2 * 4 – 5 / 3 = _____________

(3 + 5/2)*(6 +3 - 5%2) = _____________

2 - 4 % 5 / 3 = _____________

1 – 5 / 3 + 9 % 4 = _____________

- (-15 + (2*4 -3)) + (5+3*1+3) /4 = _____________

……………………………………………………………………………………………..

3.4 * 3 =

(int)3.4 * 3 =

(int)(3.4 * 3) =

5 / 2 =

(float)5 / 2 =

(float)(5 / 2) =

ชวนคิด

Page 14: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

14

5.3 ตัวด าเนินการแบบย่อ

ตัวด าเนินการแบบย่อ เป็นตัวด าเนินการที่ผสมระหว่างการก าหนดค่าและตัวด าเนินการคณิตศาสตร์ ดัง

ตัวอย่างต่อไปนี้

ตารางแสดงตัวด าเนินการแบบย่อ

ตัวอย่าง

ก าหนดให้ int A = 10 , B=3 , C = 5 , D = 7 ;

A+=B; A = _______ B*=B; B = ________ C*=C+5; C = _________ D-= 1 ; D = _______ A%=B+B ; A = ________ และ B = ________

5.4 ตัวด าเนินการเพิ่มค่าและลดค่า ( ++ , -- )

ตัวด าเนินการเพิ่มคาและลดคา เปนตัวด าเนินการเพื่อใชเพ่ิมคาตัวแปรขึ้น 1 หรือลดคาตัวแปรลง 1 ค่า

โดยใชเครื่องหมาย ++ แทนการเพิ่มคาขึ้น 1 และ - - แทนการลดคาลง 1 และสามารถใชตัวด าเนินเพิ่มคาหรือ

ลดคากับตัวแปรได 2 ต าแหนง คือวางตัวด าเนินการเพ่ิมคาหรือลดคาไวหนาตัวแปร และวางไวหลังตัวแปร ดัง

ตัวอยาง

a++ ;

++a ;

ทั้งสองค าสั่งจะมีค่าเท่ากับ a = a + 1 ; สวนค าสั่ง

a- -;

- - a;

จะมีคาเทากับ a = a –1;

Page 15: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

15

ความแตกต่างระหว่างต าด าเนินการไว้หน้า และหลังตัวแปร

ทดสอบคิด

int c = 5,y;

printf ("AAA = %d\n" , 4* c++ )

printf ("AAA = %d\n" , c*2) ;

int c = 5,y;

printf ("AAA = %d\n" , 4* ++c )

printf ("AAA = %d\n" , c*2) ;

# include <stdio.h>

int main()

{

int a = 2 , b , c ;

b = ++a + 2 ;

printf(“b= %d a = %d \n”,b,a ) ;

c = 2 + b++ ;

printf(“b= %d c = %d \n”,b,c ) ;

return 0;

}

Page 16: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

16

6. ข้อผิดพลาดของโปรแกรมที่เกิดขึ้นบ่อย

Page 17: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

17

แบบฝึกหัด

……………………………………………………………………………………………..

1. จงหาค่า y ต่อไปนี้ ข้อ ค าถาม ค าตอบ 1. int y;

y = -5/3+9%4;

2. int a = 2 , b= 4 ,y;

y=b++%4+ --a;

3. int a = 10,b=2,y=5;

y+=a/b;

4. int a=5,b=2,y;

y = a/b;

5. int a=0 , b = 2 ,y;

y = a%b;

6. int y;

y = -(-15+()2*4-2)+(6+3*1+3)/4;

7. int y;

y = 1 – 5 / 3 + 9 % 4;

8. int a=1,b=2,c=3,y;

y = --a + b – c++%3;

9. int a,b,c,y;

b = 1;

y = 5;

b = (y + b % 2 -3);

y = ++b;

c = y;

10.

Page 18: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

18

2. จงเขียนค าสั่ง printf และ scanf ให้ถูกต้อง

3. จงเขียนโปรแกรมเพ่ือค านวณหาพื้นที่สี่เหลี่ยม โดยที่โปรแกรมจะต้องรับค่า ความกว้าง (เมตร) และรับค่าความยาว (เมตร) ตามล าดับจากนั้นให้แสดงผลพ้ืนที่ของสี่เหลี่ยม ดังตัวอย่างการท างานขอโปรแกรม

Enter Width : 3.5 //รับจากผู้ใช้ Enter lengyh : 10.0 //รับจากผู้ใช้ Area = 35.0000 m.

Page 19: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

19

4. จงเขียนโปรแกรมค านวณหาระยะทางการเคลื่อนที่แบบโพรเจกไทล์ของจรวด missile โปรแกรมการท างานตามข้อก าหนดต่อไปนี้

Page 20: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

20

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

*** ก าหนดสูตร ปริมาตรทรงกระบอกคือ เมื่อ คือค่าคงที่ , r คือ รัศมีของทรงกระบอก

และ h คือความสูงของทรงกระบอก **** 1000 ลูกบาศก์เซนติเมตร = 1 ลิตร ***** โดยมีผลการรันโปรแกรมดังนี้

#include <stdio.h>

#define PI

Enter diameter and height (cm) : 22 100

Volume of Cylinder is 28.02 Liters

Page 21: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

21

6. เทรนเนอร์ในฟิตเนตม.อ. ต้องการโปรแกรมเพ่ือช่วยนศ.ที่มีน้ าหนักเกิน สามารถค านวณน้ าหนักท่ีเหมาะสม (ideal weight) และจ านวนวันที่เหมาะสมในการลดน้ าหนักโดย โปรแกรมรับค่าน้ าหนักปัจจุบัน (current weght) ในหน่วย กก. และค่าส่วนสูงในหน่วย เมตร มาจากลูกค่า และใช้สูตรค านวณดังนี้

Page 22: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

22

7. ลูกบอลทรงกลม 3 ลูก สามารถบรรจุลงในกล่องรูปทรงกระบอกได้พอดี จงเขียนโปรแกรมเพ่ือค านวนปริมาตรว่างเปล่าที่เหลือในทรงกระบอก ก าหนดให้

Page 23: การเขียนโปรแกรมภาษา Ckroosuntorn.com/computer/mo4/document/chapter1BasicC.pdf · 2017-09-19 · 2 บทที่ 1 แนะน าภาษา

23

เอกสารอ้างอิง

1. วิจักษณ ศรีสัจจะเลิศวาจา และดุษฎี ประเสริฐธิติพงษ. การเขียนโปรแกรมภาษาซี , ภาควิชาวิทยาการ

คอมพิวเตอร คณะวิทยาศาสตร มหาวิทยาลัยเชียงใหม , พฤษภาคม 2545

2. คณาจารย์ผู้สอนวิชา Introduction to Computer Programming, เอกสารประกอบการบรรยายวิชา

241-101 Introduction to Computer Programming, คณะวิศวกรรมศาสตร์,

มหาวิทยาลัยสงขลานครินทร์, 2551

3. สุนทร ยี่สุ้น , เอกสารการติวอินโทรคอม , 2558