418115: structured programming การบรรยายครั้งที่ 3 & 4

110
ปปปปปป ปปปปปปป [email protected] 418115: Structured Programming ปปปปปปปปปปปปปปปปป 3 & 4

Upload: deanne

Post on 12-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

418115: Structured Programming การบรรยายครั้งที่ 3 & 4. ประมุข ขันเงิน [email protected]. โปรแกรม #1. void main() { }. โปรแกรม #1. โปรแกรมนี้ทำอะไร ? ไม่ได้ทำอะไร ข้างในไม่มีคำสั่งอะไรเลย เข้ามาแล้วก็ออกไป. โปรแกรม #1. main() คืออะไร ? ฟังก์ชัน ฟังก์ชันคืออะไร ? โปรแกรมย่อย - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ประมุ�ข ข�นเงิ�น[email protected]

418115: Structured Programming

การบรรยายคร��งิที่�� 3 & 4

Page 2: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #1void main()

{

}

Page 3: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #1โปรแกรมุน��ที่�าอะไร?

ไมุ�ได้�ที่�าอะไรข�างิในไมุ�มุ�ค�าสั่��งิอะไรเลยเข�ามุาแล�วก"ออกไป

Page 4: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #1main() ค#ออะไร?

ฟั%งิก&ชั�นฟั%งิก&ชั�นค#ออะไร?

โปรแกรมุย�อยที่�าหน�าที่��เฉพาะตั�วอย�างิหน,�งิให�โปรแกรมุใหญ่�เร�ยกใชั�

แล�วโปรแกรมุใหญ่�ล�ะ?ระบบปฏิ�บ�ตั�การ (OS)

Page 5: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2#include <stdio.h>

void main()

{

printf(“Hello, world!\n”);

}

Page 6: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2โปรแกรมุน��ที่�าอะไร?

พ�มุพ& Hello, world!

Page 7: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2#include <stdio.h> ค#ออะไร?

ใชั�บอกว�าเราจะไปเอาฟั%งิก&ชั�นจากไฟัล&ชั#�อ stdio.h มุาใชั�stdio.h เป0นไฟัล&ที่��เราเร�ยกว�า header fileมุ�นบรรจ�ชั#�อและข�อมุ1ลอ#�นๆ ของิฟั%งิก&ชั�นที่��ฟั%งิก&ชั�น main

ของิเราจะไปเร�ยกใชั�ได้�

Page 8: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2#include <stdio.h> ค#ออะไร?

ใชั�บอกว�าเราจะไปเอาฟั%งิก&ชั�นจากไฟัล&ชั#�อ stdio.h มุาใชั�stdio.h เป0นไฟัล&ที่��เราเร�ยกว�า header fileมุ�นบรรจ�ชั#�อและข�อมุ1ลอ#�นๆ ของิฟั%งิก&ชั�นที่��ฟั%งิก&ชั�น main

ของิเราจะไปเร�ยกใชั�ได้�เราใชั�ฟั%งิก&ชั�นอะไรจาก stdio.h?

printf

Page 9: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2printf มุ�ไว�ที่�าอะไร?

พ�มุพ&ข�อความุออกที่างิ standard outputstandard output ค#ออะไร?

ชั�องิที่างิแสั่ด้งิผลล�พธ์&ที่��ระบบปฏิ�บ�ตั�การสั่ร�างิให�โปรแกรมุตัามุปกตั�

สั่�วนมุากค#อหน�าจอแตั�เราสั่ามุารถบอกให�ระบบปฏิ�บ�ตั�การตั�อ standard

output เข�าไฟัล&หร#อการ&ด้เน"ตัเว�ร&กก"ได้�

Page 10: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2“Hello, world!\n” ค#ออะไร?

ข�อมุ1ลประเภที่ข�อความุภาษา C เร�ยกข�อมุ1ลประเภที่น��ว�า สตริ�ง (string)ในภาษา C เราเข�ยนข�อความุประเภที่ string ได้�ด้�วยการใชั�

เคร#�องิหมุายฟั%นหน1 (“) ล�อมุรอบข�อความุที่��ตั�องิการตั�วอย�างิเชั�น “one”, “Franscesca Lucchini”,

“3.1415”

Page 11: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #2อ�าว! ที่�าไมุพ�มุพ&ออกมุาแล�วไมุ�เห"นมุ� \n?

ข�อความุ \n เป0นข�อความุพ�เศษเร�ยกว�า escape sequenceตั�ว \n แที่น การิเว้นบริริทั�ด

Page 12: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #3ผลล�พธ์&ของิโปรแกรมุน��ควรจะเป0นอย�างิไร?

#include <stdio.h>

void main()

{

printf(“one\ntwo\nthree\n”);

printf(“four\nfive\nsix\n”);

}

Page 13: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #3one

two

three

four

five

six

Page 14: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

Escape Sequence อ#�นๆEscape Sequence คว้ามหมาย

\t อ�กขระ tab

\0 อ�กขระ NULL (ใชั�สั่��นสั่�ด้สั่ตัร�งิ)

\’ อ�กขระ ‘ (ฝนที่องิ)

\” อ�กขระ “ (ฟั%นหน1)\\ อ�กขระ \ (backspace)

Page 15: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #1เข�ยนโปรแกรมุเพ#�อพ�มุพ&ข�อความุ

a\b\\”c”

de’f’

Page 16: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #1#include <stdio.h>

void main()

{

printf(“a\\b\\\\\”c\”\n”);

printf(“de\’f\’”);

}

Page 17: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #1#include <stdio.h>

void main()

{

printf(“a\\b\\\\\”c\”\n”);

printf(“de’f’”);

}

Page 18: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

เคร#�องิหมุายเซมุ�โคลอน (;)เวลาเราเร�ยกฟั%งิก&ชั�นหน,�งิคร,�งิ ถ#อเป0นค�าสั่��งิหน,�งิค�าสั่��งิ

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

Page 19: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #4#include <stdio.h>

void main(){printf(“First value is %d.\n”, 5);printf(“Second value is %d.\n”, 7);

}

Page 20: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #4printf(“First value is %d.”, 5);

ข�อมุ1ลที่��เราป<อนให�ฟั%งิก&ชั�นเวลาสั่��งิให�มุ�นที่�างิาน เร�ยกว�า อาริ�ก�ว้เมนต� (argument)

เวลามุ� argument หลายๆ ตั�ว เราจะค��นมุ�นด้�วยเคร#�องิหมุายคอมุมุา (,)

ตัอนน�� printf มุ� argument สั่องิตั�ว

สั่ตัร�งิ “First value is %d.” ตั�วเลขจ�านวนเตั"มุ 5

Page 21: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #4อาร&ก�วเมุนตั&ตั�วแรกของิ printf จะตั�องิเป0นสั่ตัร�งิเสั่มุอ

เพราะมุ�นค#อข�อความุที่��เราจะพ�มุพ&ออกไปแล�วอาร&ก�วเมุนตั&ตั�วอ#�นๆ ที่��ตัามุมุาล�ะ?

มุ�นจะถ1กน�าไปแที่นค�าใสั่�ใน ชุ�ดอ�กขริะจ�ดริ"ปแบบแล�วชั�ด้อ�กขระจ�ด้ร1ปแบบที่��ว�าน��นอย1�ไหน?

“First value is %d.”%d บอกว�ามุ�นจะพ�มุพ&ค�าที่��เอามุาแที่นเป0น เลขฐานส�บ

(decimal)

Page 22: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #4ผลล�พธ์&ของิโปรแกรมุ

First value is 5.

Second value is 7.

Page 23: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #5#incluce <stdio.h>

void main()

{

printf(“Sum of %d and %d is %d.\n”, 9, 4, 9+4);

printf(“Difference of %d and %d is %d.\n”,9, 4, 9-4);

printf(“Product of %d and %d is %d.\n”, 9, 4, 9*4);

printf(“Quotient of %d by %d is %d\n”, 9, 4, 9/4);

printf(“Modulus of %d by %d is %d\n”, 9, 4, 9%4);

}

Page 24: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #5ผลล�พธ์&

Sum of 9 and 4 is 13.

Difference of 9 and 4 is 5.

Product of 9 and 4 is 36.

Quotient of 9 and 4 is 2.

Modulus of 9 and 4 is 1.

Page 25: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #5 printf(“Sum of %d and %d is %d.\n”, 9, 4, 9+4);

แสั่ด้งิให�เราเห"นว�า printf จะมุ� argument ก��ตั�วก"ได้�

argument ตั�วที่��ตัามุหล�งิมุาจะถ1กน�าไปแที่รกที่��อ�กขระจ�ด้ร1ปแบบตัามุล�าด้�บที่��อ�กขระจ�ด้ร1ปแบบปรากฏิ

Page 26: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #59+4, 9-4, 9*4, 9/4 และ 9%4

เราเร�ยกพวกน��ว�า น�พจน�น�พจน&มุ�ผลล�พธ์& ซ,�งิจะเป0นค�าหน,�งิค�า

เคร#�องิหมุายสั่�าหร�บการค�านวณเชั�งิคณ�ตัศาสั่ตัร&เคร#�องิหมุาย + และ - แที่นการบวกและการลบ ตัามุล�าด้�บเคร#�องิหมุาย * แที่นการค1ณเคร#�องิหมุาย / แที่นการหาร

ถ�าเอาจ�านวนเตั"มุมุาหารก�นก"จะได้�จ�านวนเตั"มุเคร#�องิหมุาย % แที่นการหารเอาเศษ

Page 27: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #5เคร#�องิหมุายพวกน��มุ�ล�าด้�บความุสั่�าค�ญ่เหมุ#อนก�บในที่างิ

คณ�ตัศาสั่ตัร&+ และ – มุ�ความุสั่�าค�ญ่เที่�าก�น* และ / และ % มุ�ความุสั่�าค�ญ่เที่�าก�น* และ / และ % มุ�ความุสั่�าค�ญ่มุากกว�า + และ –

เราสั่ามุารถใชั�วงิเล"บเพ#�อจ�ด้ล�าด้�บการค�านวณได้�

Page 28: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #2ผลล�พธ์&ของิโปรแกรมุน��ค#ออะไร?

#include <stdio.h>

void main(){printf(“%d\n”, 7+10%3);printf(“%d\n”, (7+10)%3);printf(“%d\n”, 7+10%3*4-(5*20));

}

Page 29: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #282-89

Page 30: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #6#incluce <stdio.h>

void main()

{

printf(“%f + %f = %f\n”, 9.0, 4.0, 9.0+4.0);

printf(“%f - %f = %f\n”, 9.0, 4.0, 9.0-4.0);

printf(“%f * %f = %f\n”, 9.0, 4.0, 9.0*4.0);

printf(“%f / %f = %f\n”, 9.0, 4.0, 9.0/4.0);

}

Page 31: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #6ผลล�พธ์&ของิโปรแกรมุ

9.000000 + 4.000000 = 13.000000

9.000000 - 4.000000 = 13.000000

9.000000 * 4.000000 = 36.000000

9.000000 / 4.000000 = 2.250000

Page 32: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #6ภาษา C สั่ามุารถจ�ด้การเลขที่ศน�ยมุได้�เชั�นก�นค�าของิเลขที่ศน�ยมุ เวลาพ�มุพ&ตั�องิมุ�จ�ด้ที่ศน�ยมุ มุ�ฉะน��น

ภาษา C จะค�ด้ว�าเป0นจ�านวนเตั"มุมุ�เคร#�องิหมุายที่��เราใชั�ได้�สั่��เคร#�องิหมุายค#อ +, -, *, /เวลาเอาเลขที่ศน�ยมุไปหารเลขที่ศน�ยมุก"จะได้�เลขที่ศน�ยมุ

กล�บมุาเราสั่ามุารถพ�มุพ&ค�าเลขที่ศน�ยมุได้�ด้�วยอ�กขระจ�ด้ร1ปแบบ

%f

Page 33: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #7#include <stdio.h>

void main()

{

int age;

age = 15;

printf(“The child age is %d\n”, age);

}

Page 34: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #7ผลล�พธ์&ของิโปรแกรมุ

The child age is 15.

Page 35: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปร (Variable)ตั�าแหน�งิในหน�วยความุจ�า เก"บข�อมุ1ลหน,�งิชั��นตั�วแปรตั�องิมุ� ชุ��อตั�วแปรชั�วยให�เราแที่น ขอม"ล ด้�วย ชุ��อ ที่�าให�ไมุ�จ�าเป0นตั�องิ

ร1 �ค�าของิมุ�น

ในโปรแกรมุ #7 มุ�ตั�วแปรหน,�งิตั�ว ชั#�อ ageเราพ�มุพ&ค�าของิ age ออกที่างิด้�วย printf ได้�เหมุ#อนก�บ

พ�มุพ&ค�าตั�วเลข

printf(“The child age is %d\n”, age);

Page 36: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

การประกาศตั�วแปรเป0นการบอกว�า

มุ�ตั�วแปรชั#�อน��ตั�วแปรชั#�อที่��เราประกาศชัน�ด้อะไร

ถ�าจะประกาศตั�วแปรแค�ตั�วเด้�ยว ให�สั่� �งิ

ชุน�ดขอม"ล ชั#�อตั�วแปร1;

หร#อถ�าจะประกาศพร�อมุก�นที่�ละหลายๆ ตั�วก"ได้�

ชุน�ดขอม"ล ชั#�อตั�วแปร 1, ชั#�อตั�วแปร 2, ชั#�อตั�วแปร 3, …, ชั#�อตั�วแปร n;

Page 37: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วอย�างิ

int age;

int x, y, z;

float area, length;

int ค#อชัน�ด้ของิตั�วแปรที่��เก"บจ�านวนเตั"มุแบบหน,�งิfloat ค#อชัน�ด้ของิตั�วแปรที่��เก"บจ�านวนจร�งิแบบหน,�งิ

Page 38: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

การก�าหนด้ค�าให�ตั�วแปร (Assignment)ใชั�เคร#�องิหมุายเที่�าก�บ (=) โด้ยมุ�ร1ปแบบด้�งิน��

ชั#�อตั�วแปร = น�พจน&;ยกตั�วอย�างิเชั�น x = 5; หร#อ y = (10*3)%7;

ตั�วแปรก"สั่ามุารถเข�าไปอย1�ในน�พจน&ได้� เชั�น x = 10*y+y/5;แมุ�แตั�ตั�วแปรตั�วเด้�ยวก�นก"สั่ามุารถไปอย1�ที่� �งิสั่องิฟัากของิ

เคร#�องิหมุายเที่�าก�บได้�x = x+1;z = z*z + 2*z + 1

โปรแกรมุจะอ�านค�าที่��เก"บในหน�วยความุจ�ามุาใชั�ในการค�านวณที่างิด้�านซ�าย เมุ#�อค�านวณเสั่ร"จแล�วจะเอาผลล�พธ์&ไปเข'ยนทั�บลงิในตั�วแปรที่��อย1�ในด้�านขวาถ�า x เที่�าก�บ 5 หล�งิจากสั่��งิ x = x+1 จะได้� x เที่�าก�บ 6ถ�า z เที่�าก�บ 3 หล�งิจากสั่��งิ z = z*z + 2*z + 1 แล�ว z จะมุ�ค�า

เที่�าก�บ 16

Page 39: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

Page 40: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2

Page 41: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5

Page 42: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6

Page 43: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 632

Page 44: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325

Page 45: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325 32

Page 46: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325 632

Page 47: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325 632-33

Page 48: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325 632-33

32

Page 49: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325 632-33

32 5

Page 50: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #3#include <stdio.h>

void main()

{

int x, y, z;

x = 2; y = 5; z = 6;

x = x + y * z;

z = y – x - z;

y = 4 * x / y

printf(“%d %d %d\n”, x, y, z);

}

2 5 6325 632-33

32 524

Page 51: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #3ผลล�พธ์&ของิโปรแกรมุ

32 24 -33

Page 52: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ชั#�อ (Identifier)ชั#�อในภาษา C จะตั�องิเป0นไปตัามุกฏิด้�งิน��

ประกอบข,�นจากตั�วเลข ตั�วอ�กษร หร#อเคร#�องิหมุาย underscore (_)name, student, a10, light_saber, _times, _101one man ไมุ�ใชั�ชั#�อชั#�อเด้�ยว แตั�เป0นชั#�อสั่องิชั#�อidolm@ster ไมุ�ใชั�ชั#�อที่��ถ1กตั�องิ

ตั�วอ�กขระตั�วแรกตั�องิไมุ�เป0นตั�วเลข10a ไมุ�ใชั�ชั#�อที่��ถ1กตั�องิ

ตั�วพ�มุพ&ใหญ่�และตั�วพ�มุพ&เลขถ#อเป0นคนละชั#�อก�นsalary, Salary, SALARY คนละชั#�อก�นที่��งิสั่��น

ชั#�อจะตั�องิไมุ�ซ��าก�บค�าสั่งิวน (reserved words)

Page 53: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ค�าสั่งิวน (Reserved Words)ค�าที่��เป0นสั่�วนประกอบของิภาษา C โด้ยตัรงิ ห�ามุใชั�เป0นชั#�อมุ� 36 ค�าสั่�งิเกตังิ�ายๆ เวลาพ�มุพ&โปรแกรมุใน IDE เก#อบที่�กตั�วแล�ว

สั่�ของิมุ�นจะแตักตั�างิก�บชั#�ออ#�นๆตัอนน��เราร1 � reserved words สั่องิค�า ค#อ

voidint

Page 54: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรชัน�ด้ตั�างิๆมุ�ตั�วแปรพ#�นฐานอย1� 5 แบบ

int = เลขจ�านวนเตั"มุfloat = เลขที่ศน�ยมุความุละเอ�ยด้ตั��าdouble = เลขที่ศน�ยมุความุละเอ�ยด้สั่1งิ (กว�า float 2

เที่�า)char = ตั�วอ�กขระvoid = ไมุ�ระบ�ชัน�ด้

Page 55: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรชัน�ด้ตั�างิๆสั่�าหร�บตั�วแปรประเภที่ int เราสั่ามุารถใสั่�ค�าเพ��มุเพ#�อก�าหนด้

เคร#�องิหมุายและความุสั่��นยาวได้�unsigned = เก"บเฉพาะค�าที่��ไมุ�เป0นลบshort = ให�ใชั�หน�วยความุจ�าน�อยลงิคร,�งิหน,�งิlong = ให�ใชั�หน�วยความุจ�าเพ��มุข,�นสั่องิเที่�า

ด้�งิน��นมุ�ชัน�ด้ตั�วแปรแบบ int ที่��เป0นไปได้�อย1� 6 แบบint, unsigned int,short int, unsigned short int,long int, unsigned long int

short int สั่ามุารถเข�ยนย�อเป0น short ได้�long int สั่ามุารถเข�ยนย�อเป0น long ได้�

Page 56: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรชัน�ด้ตั�างิๆชุน�ดต�ว้แปริ จ�านว้นบ�ต ค(าต��าส�ด ค(าส"งส�ดint 32 -2,147,483,648 2,147,483,647

unsigned int 32 0 4,294,967,295

short 16 -32,768 32,767

unsigned short 16 0 65,536

long 32 -2,147,483,648 2,147,483,647

unsigned long 32 0 4,294,967,295

Page 57: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรชัน�ด้ตั�างิๆสั่มุ�ยน�� (ตั�างิก�บประมุาณ 10 ป?ก�อน ) int ก�บ long มุ�

ความุหมุายเด้�ยวก�นถ�าอยากใชั�เลข 64 บ�ตัจร�งิ ให�ใชั�ตั�วแปรชัน�ด้ long long

ค�าตั��าสั่�ด้ -9,223,372,036,854,775,808ค�าสั่1งิสั่�ด้ 9,223,372,036,854,775,807

Page 58: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #8#include <stdio.h>

void main()

{

int a = 1000000000;

short b = 1000000000;

long c = 1000000000;

long long d = 1000000000;

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

}

Page 59: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #8ผลล�พธ์&ของิโปรแกรมุ

1000000000 -13824 1000000000 100000000

Page 60: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #8เราสั่ามุารถใชั� %d ก�บข�อมุ1ลประเภที่ int, short, long,

และ long long ได้�แตั�บางิคร��งิค�าของิ long long ที่��พ�มุพ&จะไมุ�ถ1กตั�องิ (เราจะด้1

เร#�องิน��ในโปรแกรมุ #9)เราสั่ามุารถก�าหนด้ค�าที่��เก�นขอบเขตัให�ตั�วแปรใด้ก"ได้�

ภาษา C จะไมุ�บ�น ไมุ�ฟั<องิ compile errorแตั�ค�าที่��ตั�วแปรน��นเก"บไว�จร�งิๆ จะไมุ�ตั�องิก�บค�าที่��เราก�าหนด้ให�เชั�น ก�าหนด้ค�า 1,000,000,000 ให� b แตั�ความุจร�งิมุ�น

เก"บ -13,824ตองริะว้�งไม(ใหค(าทั'�เริาก�าหนดใหต�ว้แปริเก�นขอบเขต

ของม�น

Page 61: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #9#include <stdio.h>

void main()

{

int a = 1000000000000;

short b = 1000000000000;

long c = 1000000000000;

long long d = 1000000000000;

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

}

Page 62: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #9เราก�าหนด้ค�า 1,000,000,000,000 ให�ก�บตั�วแปรที่�ก

ตั�วค�าน��เก�นขอบเขตัของิ int และ long (ไมุ�ตั�องิพ1ด้ถ,งิ

short)ด้�งิน��นน�าจะได้�ผลล�พธ์&ค#อเลขตั�วสั่�ด้ที่�ายที่��พ�มุพ&ออกมุาน�าจะ

เที่�าก�บ 1,000,000,000,000 แค�ตั�วเด้�ยวแตั�ผลล�พธ์&ที่��ได้�จร�งิๆ ค#อ:

-727379968 4096 -727379968 -727379968

Page 63: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #9เก�ด้อะไรข,�น?เวลาใชั� %d มุ�นจะค�ด้ว�าค�าที่��ให�มุาเป0น int ซ,�งิมุ�ขนาด้ 32

บ�ตัหากตั�องิการพ�มุพ&ค�า 64 บ�ตัของิ long long จะตั�องิใชุ

%lld แทัน

Page 64: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #10#include <stdio.h>

void main()

{

int a = 1000000000000;

short b = 1000000000000;

long c = 1000000000000;

long long d = 1000000000000;

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

}

Page 65: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #10ผลล�พธ์&ของิโปรแกรมุ

-727379968 4096 -727379968 1000000000000

อธ์�บายได้�หร#อไมุ�?ตั�วแปร a, b, และ c ถ1กก�าหนด้ค�าที่��เก�นความุสั่ามุารถของิ

มุ�น ด้�งิน��นจ,งิเก"บค�าที่��ผ�ด้อย1�แล�วตั�วแปร d เป0นตั�วแปรประเภที่ long long เมุ#�อพ�มุพ&ค�าด้�วย

%lld จ,งิที่�าให�ได้�ค�าที่��ถ1กตั�องิออกมุา แตั�ถ�าใชั� %d มุ�นจะถ1กค�ด้ว�าเป0น int

Page 66: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

อ�กขระจ�ด้ร1ปแบบอ#�นๆ สั่�าหร�บตั�วแปรประเภที่จ�านวนเตั"มุ

ถ�าอยากให�ค�ด้ว�าค�าที่��ให�เป0น long long ให�เตั�มุ ll ไปข�างิหน�า %lld, %llo, %llx, %llX, %llu

ถ�าอยากให�ค�ด้ว�าค�าที่��ให�เป0น short ให�เตั�มุ h ไปข�างิหน�า%hd, %ho, %hx, %hX, %hu

ถ�าอยากให�ค�ด้ว�าค�าที่��ให�เป0น long ให�เตั�มุ l ไปข�างิหน�า%ld, %lo, %lx, %lX, %lu

อ�กขริะจ�ดริ"ปแบบ คว้ามหมาย%o เลขฐาน 8 (Octal)

%x เลขฐาน 16 (heXadecimal) ใชั�ตั�วพ�มุพ&เล"ก

%X เลขฐาน 16 ใชั�ตั�วพ�มุพ&ใหญ่�%u ให�ค�ด้ว�าค�าที่��ให�มุาเป0นตั�วแปรแบบ

unsigned

Page 67: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #10#include <stdio.h>void main(){

int x = 253;int y = -1*x;printf(“%d %u %o %x %X\n”, x, x, x, x, x);printf(“%d %u %o %x %X\n”, y, y, y, y, y);

}

Page 68: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #10ผลล�พธ์&ของิโปรแกรมุ

253 253 375 fd FD

-253 4294967043 37777777403 ffffff03 FFFFFF03

Page 69: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #10ที่�าไมุ -253 พ�มุพ&ออกมุาด้�วย %u แล�วได้�ค�า

4294967043?เพราะการเก"บค�าของิ -253 ในตั�วแปรชัน�ด้ int ใชั�ร1ปแบบของิบ�ตั

เด้�ยวก�นก�บ 4294667043 ในตั�วแปรชัน�ด้ unsigned intเราจะด้1ร1ปแบบของิบ�ตัได้�ที่��ไหน?

ด้1ที่��เลขฐาน 16 หร#อเลขฐาน 8

ถ�าอยากร1 �ความุหมุายของิร1ปแบบบ�ตัเหล�าน�� ให�ด้1การเก"บข�อมุ1ลจ�านวนเตั"มุแบบ Two’s Complement

สั่�งิเกตัว�าการพ�มุพ&ตั�วเลขในร1ปเลขฐาน 8 และเลขฐาน 16 จะค�ด้ว�าเลขไมุ�ใชั�ลบเสั่มุอเพราะมุ�นจะพ�มุพ&ไปตัามุร1ปแบบของิบ�ตั

1111 1111 1111 1111 1111 1111 0000 0011

F F F F F F 0 3

Page 70: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

sizeofเราสั่ามุารถหาจ�านวนไบตั&ที่��ใชั�เก"บข�อมุ1ลชัน�ด้หน,�งิๆ ได้�โด้ย

ใชั�เคร#�องิหมุาย sizeof โด้ยมุ�ร1ปแบบการใชั�ด้�งิน��sizeof(ชัน�ด้ของิข�อมุ1ล)

ยกตั�วอย�างิเชั�นsizeof(int)sizeof(unsigned long long)sizeof(short)sizeof(unsigned long)

Page 71: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #11#include <stdio.h>

void main()

{

printf("The number of bytes in an int is %d.\n", sizeof(int));

printf("The number of bytes in a short int is %d.\n", sizeof(short));

printf("The number of bytes in a long int is %d.\n", sizeof(long));

printf("The number of bytes in a long long is %d.\n", sizeof(long long));

}

Page 72: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #11ผลล�พธ์&ของิโปรแกรมุ

The number of bytes in an int is 4.

The number of bytes in a short int is 2.

The number of bytes in a long int is 4.

The number of bytes in a long long is 8.

Page 73: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรประเภที่ charเราสั่ามุารถค�ด้ว�ามุ�นแที่นค�าได้�สั่องิแบบ

ตั�วอ�กษร เชั�น a, B, c, +, -, ., !เลข 8 บ�ตั มุ�ค�าตั��งิแตั� -128 ถ,งิ 127

เวลาจะพ�มุพ&ค�าของิ charใชั� %d ถ�าตั�องิการพ�มุพ&ค�าตั�วเลขตั��งิแตั� -128 ถ,งิ 127ใชั� %u ถ�าตั�องิการพ�มุพ&ค�าตั�วเลขตั��งิแตั� 0 ถ,งิ 255ใชั� %c ถ�าตั�องิการพ�มุพ&ตั�วอ�กษร

Page 74: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #12#include <stdio.h>

void main()

{

char x = 65;

printf("x as a number is %d.\n", x);

printf("x as a character is %c.\n", x);

}

Page 75: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #12ผลล�พธ์&ของิโปรแกรมุ

x as a number is 65.

x as a character is A.

Page 76: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

รห�สั่ ASCIIที่�าไมุค�า 65 ถ,งิพ�มุพ&ออกมุาแล�วได้�ตั�ว A?

เพราะ 65 ค#อรห�สั่ ASCII ของิตั�วอ�กษร Aรห�สั่ ASCII ค#อรห�สั่ที่��ยอมุร�บก�นเป0นมุาตัราฐานให�ใชั�แที่นตั�ว

อ�กษรที่��ปรากฏิอย1�บนค�ย&บอร&ด้และตั�วอ�กษรที่��ใชั�บ�อยหลายๆ ตั�ว

Page 77: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรประเภที่ charเราสั่ามุารถเข�ยนค�าตั�วอ�กษรในภาษา C ได้�ให�ใชั�เคร#�องิหมุายฟั%นหน1 (‘) ล�อมุรอบตั�วอ�กษรน��น

‘a’‘B’‘+’‘9’

Page 78: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #13#include <stdio.h>

void main()

{

char x = '9';

printf("x as a number is %d.\n", x);

printf("x as a character is %c.\n", x);

}

Page 79: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #13ผลล�พธ์&ของิโปรแกรมุ

x as a number is 57.

x as a character is 9.

Page 80: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรประเภที่ charเน#�องิจากตั�วแปรประเภที่ char จร�งิๆ แล�วค#อตั�วเลข

จ�านวนเตั"มุ ด้�งิน��นค�ณจ,งิสั่ามุารถที่�าอย�างิน��ได้�‘A’ + 5‘B’ * ‘x’100 / ‘a’

เป0นประโยชัน&มุากสั่ามุารถใชั�เป0น‘A’ + 5 มุ�ค�าเที่�าก�บ 70 ซ,�งิค#อรห�สั่ ASCII ของิตั�ว ‘F’ ซ,�งิ

เป0นตั�วอ�กษรที่��อย1�หล�งิ A 5 ตั�ว‘x’ – ‘a’ มุ�ค�าเที่�าก�บ 23 ซ,�งิหมุายความุว�า ‘x’ อย1�หล�งิ ‘a’

ไป 23 ตั�ว

Page 81: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรประเภที่ stringเราสั่ามุารถประกาศตั�วแปรประเภที่ string ได้�ด้�วยค�าสั่��งิ

char *ชั#�อตั�วแปร;เชั�น char *name;

หล�งิจากน��นก"สั่ามุารถก�าหนด้ค�าให�มุ�นได้�โด้ยใชั�เคร#�องิหมุายเที่�าก�บ (=)เชั�น name = “Dennis Richie”

เวลาจะพ�มุพ&ค�า string ด้�วยค�าสั่��งิ printf ให�ใชั�ตั�วอ�กขระจ�ด้ร1ปแบบ %sเชั�น printf(“%s\n”, name);

Page 82: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #14#include <stdio.h>

void main()

{

char *name;

name = "Dennis Ritchie";

printf("%s is the creator of the C language.\n",

name);

}

Page 83: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #15ผลล�พธ์&

Dennis Ritchie is one of the creator of the C language.

Page 84: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #15สั่ามุารถเข�ยนให�สั่� �นลงิเล"กน�อยได้�ด้�งิน��

#include <stdio.h>

void main()

{

char *name = "Dennis Ritchie";

printf("%s is the creators of the C language.\n",

name);

}

Page 85: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ตั�วแปรที่��เก"บค�าจ�านวนจร�งิมุ�รวมุที่��งิหมุด้ 3 ชัน�ด้

float ขนาด้ 32 บ�ตั double ขนาด้ 64 บ�ตัlong double ขนาด้ 64 บ�ตั

long double ก�บ double จะเหมุ#อนก�นในสั่ายตัาของิสั่�วนมุาก แตั�สั่�าหร�บคอมุไพเลอร&บางิตั�ว long double จะมุ�ขนาด้ 128 บ�ตั

อ�กขระจ�ด้ร1ปแบบที่��ใชั�แสั่ด้งิผลตั�วแปรร1ปแบบตั�างิๆ ได้�แตั�float ใชั� %fdouble และ long double ใชั� %lf

Page 86: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

อ�กขระจ�ด้ร1ปแบบสั่�าหร�บค�าประเภที่จ�านวนจร�งิ%f ค#อการพ�มุพ&จ�านวนจร�งิธ์รรมุด้า%e ค#อการพ�มุพ&จ�านวนจร�งิในร1ปแบบ scientific

notationเชั�น 123.45 จะพ�มุพ&เป0น 1.234500e+02 หมุายความุ

ถ,งิ 1.2345 102

%E ค#อการพ�มุพ&แบบ scientific notation เหมุ#อนก�น แตั�ใชั�ตั�ว E พ�มุพ&ใหญ่�

Page 87: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #16#include <stdio.h>

void main()

{

float score;

score = 300.545;

printf("Score are %f, %e, and %E\n",

score, score, score);

}

Page 88: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #16ผลล�พธ์&ของิโปรแกรมุ

Score are 300.545013, 3.005450e+002, and 3.005450E+002

Page 89: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #16ที่�าไมุมุ�นถ,งิพ�มุพ& 300.545013 ที่��งิๆ ที่��เราสั่��งิ

300.545?น��เป0นเพราะว�าจ�านวนจร�งิมุ�อย1�น�บไมุ�ถ�วนแตั�เราใชั�พ#�นที่��เพ�ยงิ 32 บ�ตั (ตั�วแปรประเภที่ float) เก"บค�า

น��นที่�าให�เราเก"บจ�านวนจร�งิได้�แค�บางิตั�ว300.545 เป0นหน,�งิในจ�านวนจร�งิที่��เก"บไมุ�ได้�เลยตั�องิใชั�ค�าที่��ใกล�มุ�นมุากที่��สั่�ด้ที่��เก"บได้� ค#อ 300.5450130.000013 ที่��เก�นมุาเร�ยกว�า round-off error

Page 90: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #16ที่�าอย�างิไร round-off error จะหายไป?

มุ�นหายไปไมุ�ได้� น��เป0นข�อจ�าก�ด้ที่างิที่ฤษฎี�!แตั�เราสั่ามุารถที่�าให�มุ�นลด้ลงิได้�ด้�วยการใชั�ตั�วแปรที่��ให�

ความุละเอ�ยด้สั่1งิข,�นใชั� double แที่น float

อย�างิไรก"ด้�จะใชั�ก"ตั�องิค�ด้ด้�ๆใชั�แล�วหน�วยความุจ�าสั่�าหร�บเก"บข�อมุ1ลจะเพ��มุข,�นสั่องิเที่�า!

Page 91: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #17#include <stdio.h>

void main()

{

double score;

score = 300.545;

printf("Score are %f, %e, and %E\n",

score, score, score);

}

Page 92: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #17ผลล�พธ์&ของิโปรแกรมุ

Score are 300.545000, 3.005450e+002, and 3.005450E+002

Page 93: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

การก�าหนด้จ�านวนตั�วเลขและจ�านวนตั�วเลขหล�งิที่ศน�ยมุเราสั่ามุารถก�าหนด้จ�านวนตั�วเลขและจ�านวนตั�วเลขหล�งิ

ที่ศน�ยมุได้�ด้�วยตั�วอ�กขระจ�ด้ร1ปแบบ%w.df

โด้ยที่�� w และ d เป0นจ�านวนเตั"มุที่��ไมุ�เป0นลบw แที่นจ�านวนตั�าแหน�งิที่��งิหมุด้ในการแสั่ด้งิผล รวมุ

จ�ด้ที่ศน�ยมุหน,�งิตั�าแหน�งิd แที่นจ�านวนตั�าแหน�งิหล�งิจ�ด้ที่ศน�ยมุ

ถ�าข�อมุ1ลมุ�น�อยกว�า w ตั�าแหน�งิ โปรแกรมุเตั�มุชั�องิว�างิหน�าข�อมุ1ลจนครบ w ตั�าแหน�งิ

ยกตั�วอย�างิเชั�น ถ�าเราพ�มุพ&ค�า 12.35 ด้�วยอ�กษรจ�ด้ข�อความุ %7.2f เราจะได้�ข�อความุ(ว�างิ

)(ว�างิ

)1 2 . 3 5

Page 94: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #18#include <stdio.h>

void main()

{

double temp;

temp = 12.34;

printf("%7.2f, %10.3E, %10.3e\n", temp, temp, temp);

temp = 1.2365e-5;

printf("%7.2f, %10.3E, %10.3e\n", temp, temp, temp);

temp = 584.365E+17;

printf("%7.2f, %10.3E, %10.3e\n", temp, temp, temp);

}

Page 95: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #18ผลล�พธ์&ของิโปรแกรมุ

12.34, 1.234E+001, 1.234e+001

0.00, 1.237E-005, 1.237e-005

58436500000000000000.00, 5.844E+019, 5.844e+019

Page 96: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #18ผลล�พธ์&ของิโปรแกรมุ

__12.34, 1.234E+001, 1.234e+001

___0.00, 1.237E-005, 1.237e-005

58436500000000000000.00, 5.844E+019, 5.844e+019

Page 97: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

+=, -=, *=, /=, %=สั่มุมุตั�ว�า เป0นเคร#�องิหมุายถ�าสั่��งิ

ตั�วแปร = น�พจน&;จะมุ�ความุหมุายเหมุ#อนก�บ

ตั�วแปร = ตั�วแปร (น�พจน&);

เชั�น x += 1; มุ�ความุหมุายเหมุ#อนก�บ x = x+1;

y -= x*5; มุ�ความุหมุายเหมุ#อนก�บ y = y – (x*5);

Page 98: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #19#include <stdio.h>void main(){ int a = 0, b = 5; a += 4; printf("a is %d\n", a); a *= 3; printf("a is %d\n", a); a /= 4; printf("a is %d\n", a); a %= 5; printf("a is %d\n", a); a = 7; a /= a - b; printf("a is %d\n", a); b *= b + a; printf("b is %d\n", b);}

Page 99: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #19ผลล�พธ์&ของิโปรแกรมุ

a is 4

a is 12

a is 3

a is 3

a is 3

b is 40

Page 100: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

++, --ค�าสั่��งิ x+=1; สั่ามุารถย�อเป0น x++; หร#อ ++x; ก"ได้�ฃ

ค�าสั่��งิ x-=1; สั่ามุารถย�อเป0น x--; หร#อ --x; ก"ได้�

Page 101: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #20#include <stdio.h>void main(){ int x = 8; printf("x is %d\n", x); x++; printf("x is %d\n", x); ++x; printf("x is %d\n", x); x--; printf("x is %d\n", x); --x; printf("x is %d\n", x);}

Page 102: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #20ผลล�พธ์&ของิโปรแกรมุ

x is 8

x is 9

x is 10

x is 9

x is 8

Page 103: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ค�าสั่��งิ scanfใชั�ร�บข�อมุ1ลจากที่างิ standard input

ที่�าหน�าที่��กล�บก�นก�บ printfอย1�ใน stdio.h เหมุ#อนก�บ printfร1ปแบบการใชั�งิาน

scanf(ข�อความุ, &ชั#�อตั�วแปร 1, &ชั#�อตั�วแปร 2, …, &ชั#�อตั�วแปร n);

ข�อความุที่��ให�เป0นอาร&ก�วเมุนตั&ของิ scanf ไปจะตั�องิมุ�อ�กขระจ�ด้ร1ปแบบเที่�าก�บจ�านวนตั�วแปรที่��ให�เป0นอาร&ก�วเมุนตั&ตั�อที่�าย

scanf จะอ�านข�อความุเข�ามุาหน,�งิข�อความุ แล�วพยายามุเอาข�อความุสั่�วนที่��ตัรงิก�บอ�กขระจ�ด้ร1ปแบบไปใสั่�ในตั�วแปรที่��ตัรงิก�บอ�กขระจ�ด้ร1ปแบบน��น

Page 104: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

ค�าสั่��งิ scanfยกตั�วอย�างิเชั�น ถ�าเราสั่��งิscanf(“%d %d”, &x, &y);

แล�วผ1�ใชั�ป<อนข�อความุ10 20

จะได้�ว�า x จะมุ�ค�าเที่�าก�บ 10 และ y มุ�ค�าเที่�าก�บ 20

Page 105: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #21#include <stdio.h>void main(){ int val; printf("Enter a decimal integer: "); scanf("%d", &val); printf("The value is %o in octal, and %x in \

hexadecimal.\n", val, val); printf("Enter an octal integer: "); scanf("%o", &val); printf("The value is %d in decimal.\n", val); printf("Enter a hexadecimal integer: "); scanf("%x", &val); printf("The value is %d in decimal.\n", val);}

Page 106: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

โปรแกรมุ #21ผลล�พธ์&ของิโปรแกรมุ

Enter a decimal integer: 78

The value is 116 in octal, and 4e in hexadecimal.

Enter an octal integer: 116

The value is 78 in decimal.

Enter a hexadecimal integer: 4e

The value is 58446 in decimal.

(หมายเหต� ตั�วอ�กษรตั�วพ�มุพ&หนาค#อข�อความุที่��ผ1�ใชั�ป<อนเข�าที่างิค�ย&บอร&ด้)

Page 107: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #4เข�ยนโปรแกรมุร�บเลขจ�านวนเตั"มุหน,�งิตั�ว สั่มุมุตั�ว�าตั�วแปร

น��นค#อ x เสั่ร"จแล�วพ�มุพ&ค�า x, x2, และ x3

Page 108: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #4#include <stdio.h>

void main()

{

int x;

scanf("%d\n", &x);

printf("%d %d %d\n", x, x*x, x*x*x);

}

Page 109: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #5จงิเข�ยนโปรแกรมุร�บร�ศมุ�ของิวงิกลมุ แล�วพ�มุพ&พ#�นที่��และ

เสั่�นรอบวงิของิวงิกลมุน��นโด้ยประมุาณ ออกที่างิหน�าจอ

Page 110: 418115: Structured Programming การบรรยายครั้งที่  3 & 4

แบบฝ:กห�ด้ #5#include <stdio.h>

void main()

{

float r;

float pi = 3.14159265;

scanf("%f\n", &r);

float area = pi * r * r;

float circumference = 2 * pi * r;

printf("%f %f\n", area, circumference);

}