อ.พิศิษฐ์ นาคใจ คณะ...

Post on 01-Jun-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

อ.พศษฐ นาคใจ

คณะวทยาศาสตรและเทคโนโลย

มหาวทยาลยราชภฎอตรดตถ

1

โครงสราง ภาษาซ

วตถประสงค

2

สามารถเขยนโปรแกรมภาษาซอยางงาย ๆ ได

สามารถแสดงขอความออกทางจอภาพได

สามารถแสดงขอมลชนดตางๆ ออกทางจอภาพได

สามารถก าหนดรปแบบการแสดงขอมลออกทางจอภาพได

สวนประกอบของภาษาซ

โครงสรางภาษาซแบงออกเปน 2 สวนคอ

1. Head โปรแกรม

2. Body โปรแกรม

Head โปรแกรม

สวนหวของโปรแกรม นบตงแตบรรทดแรกจนถงสวนทเปน main function

สวนหวโปรแกรมใชส าหรบเขยนค าสงพเศษบางอยาง กอนทจะเรมใหโปรแกรม

ท างาน

สวนประกอบ Head โปรแกรม

พรโปรเซสเซอรไดเรคทฟ -> ค าสงภาษาซพเศษ จะมเครองหมาย # อยดานหนา

ตวอยาง #include #define

- การประกาศตวแปร -> สวน Head สามารถประกาศตวแปรไดตวแปรทประกาศสวน

Head จะมลกษณะทเปน Gobal

#include

พรโปรเซสเซอร ทส าคญคอ #include ท าหนาท ดง Function ทเกยวของกบ

โปรแกรมมาใชงาน มการประกาศ 2 ลกษณะ

1. #include <ชอไฟล>

ตวอยาง

#include <stdio.h>

#include <math.h>

การใชเครองหมาย <> เพราะให ภาษาซคนหาไฟลจากแฟมทก าหนดไวกอน

#include2. #include “ชอไฟล”

ตวอยาง

#include “stdio.h”

#include “math.h”

การใชเครองหมาย “ ” หมายถงให ภาษาซคนหาไฟลทก าหนดใน แฟมปจจบนทโคด

เราเขยนอย

ตวอยาง

การสรางตวแปร

ส าหรบการสรางตวแปรทสวนหวของโปรแกรม สามารถสรางได แตโปรแกรมนนจะ

สามารถมองเหนไดทกๆ Function

วธการสรางตวแปร แสดงไดดงน

ชนดตวแปร ชอตวแปร;

ชนดตวแปร ชอตวแปร = คาเรมตนของตวแปร;

ตวอยาง

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

การเขยนโปรแกรมภาษาซ โปรแกรมจะเรมท างานท main Function เปนสวน

แรกและกระท าค าสงภาษาซทถกเขยนขน รปแบบค าสงแบบออกเปน 2 รปแบบ

- ค าสงเดยว คอค าสงทมเพยงค าสงเดยว เพอท างานอยางใดอยางหนง

- ฟงกชน คอชดค าสงเดยวหลายๆ ค าสง รวมไวเปนบลอคของค าสง

ค าสงเดยว

เปนค าสงทมเพยงค าสงเดยว เพอท างานอยางใดอยางหนงเทานน ตวอยางเชน

int a = 7;

float b = 3.0;

c = a+b;

a = b*c;

ฟงกชน หรอ Block ของค าสง

เปนการน าค าสงหลายๆ ค าสงมาเขยนรวมกนไวเปน Block ของค าสง block

ของค าสงจะมเครองหมาย วงเลบปกกาเปด และ วงเลบปกกาปดบอกขอบเขตของ

ชดค าสง

ตวอยาง

รปแบบการเขยนค าสงภาษาซ

การเขยนค าสงภาษาซ จะตองเขยนใหถกตองตามขอก าหนดของภาษาดงน

ค าสงในภาษาซ จะตองใชตวอกษรตวเลก เชน printf();

ทกค าสงตองลงทายดวยเครองหมาย ;

โครงสรางโปรแกรมภาษาซ (1)

14

#include<ชอไฟลชดค าสงภายนอก (library).h>type variable;int main(){

type variable;statement ท 1;...statement ท n;return 0;

}

พรโปรเซสเซอรไดเรคทฟ

ตวแปรชนดโกบอล

ฟงกชนหลก สวนตวโปรแกรม

สวนหวโปรแกรม

ตวแปรชนดโลคอล

ชดค าสง

ฟงกชนหลก

15

ฟงกชนหลกเปนฟงกชนทโปรแกรมภาษาซตองมอยเสมอ เพราะคอมไพเลอรของภาษาซจะเรมตนการท างานจากฟงกชนหลก

ตวอยางการเขยนฟงกชนหลกทไมมการท างานใดๆ

int main(void){

return(0);}

int main(){

return 0;}

กฎเกณฑการใชค าสงในภาษาซ

16

ใชเครองหมาย semi colon ; เปนจดสนสดค าสง

ใชอกษรตวเลกส าหรบเรยกใชค าสง (statement)

ใชเครองหมาย comma , ส าหรบคนตวแปร และพารามเตอร

หากค าสงใดมค าสงสวนยอยภายในหลาย ๆ ค าสง ใหใชเครองหมายปกกา { } ส าหรบก าหนดขอบเขต

การแสดงผลดวยค าสง printf

17

การเขยนโปรแกรมจ าเปนตองมการแสดงผล เพอใหผใชงานทราบวาโปรแกรมสามารถท างานอะไร จ าเปนตองปอนคาอะไรบาง และเมอโปรแกรมท างานเสรจ ผลลพธทไดเปนอยางไร

ค าสงทใชส าหรบการแสดงผลในภาษาซมหลายค าสง แตทสามารถใชงานไดครอบคลมและนยมใชกน คอ ค าสง printf

รปแบบของค าสง printf

18

format-string คอรปแบบของขอความซงจะประกอบดวย ขอความธรรมดา, คารหส ASCII และ สวนแสดงชนดขอมล โดย format-string จะอยในเครองหมาย Double quote " "

data-list คอชอขอมล หรอตวแปรทจะท าการแสดงผลตามสวนแสดงชนดขอมลใน format-string

printf (format-string, data-list);

หมายเหต ค าสง printf ตองเรยกใช Preprocessor Directive #include<stdio.h>

ตวอยางการใชงานค าสง printf ทไมถกตอง

19

int main()

{

printf ("Hello World!");

return 0;

}

ตวอยางการใชงานค าสง printf ทถกตอง

20

#include<stdio.h>

int main()

{

printf ("Hello World!");

return 0;

}

Hello World!

รปแบบของขอความในค าสง printf

21

ขอความธรรมดา เปนสวนทแสดงตวอกษร ตวเลขออกโดยตรง

คารหส ASCII เปนสวนทควบคมรปแบบการแสดงผล เชน การจดยอหนา การขนตนบรรทดใหม เปนตน

สวนแสดงชนดขอมล เปนการก าหนดรปแบบของชนดขอมลทจะแสดงผลขอมล หรอตวแปร สวนแสดงชนดขอมลแบบปกต สวนแสดงชนดขอมลทก าหนดรปแบบการแสดงผล

ขอความธรรมดา

22

การแสดงขอความธรรมดาเปนการใชค าสง printf ใหแสดงขอความทตองการออกทางจอภาพ โดยจะอยในสวนของ format-string ในค าสง (อยในเครองหมาย Double quote " ")

เชน ค าสงในตวอยางโปรแกรมทผานมา

จะท าการแสดงขอความ Hello World! ออกทางจอภาพหลงจากสง Run โปรแกรม

printf (format-string, data-list);

printf ("Hello World!");

ตวอยางการใชงานค าสง printf หลายๆค าสง

23

Hello World!

This is my first Program.

I am a programmer.

Hello World!This is my first Program.I am a programmer.

#include<stdio.h>

int main()

{

printf ("Hello World!");

printf ("This is my first Program.");

printf ("I am a programmer.");

return 0;

}

คารหส ASCII

24

คารหส ASCII เปนอกขระพเศษทใชงานในภาษาซ ซงใชควบคมการแสดงผลในค าสง printf ในสวนของ format-string

คารหส ASCII การใชงาน\t เวนชองวางทก 1 แทป (8 ชองตวอกษร)

\n ขนบรรทดใหม

\0 เปนอกขระวาง

\' แสดง single quote ออกทางจอภาพ

\" แสดง double quote ออกทางจอภาพ

\\ แสดง backslash ออกทางจอภาพ

ตวอยางการใชงานค าสง printf โดยใชคารหส ASCII

25

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

printf ("Hello World!\n");printf ("This is my first Program.");printf ("\n\tI\'m a programmer.");return 0;

}

Hello World!This is my first Program.

I'm a programmer.

สวนแสดงชนดขอมล

26

ในการเขยนโปรแกรมทมการประยกตขน เชนโปรแกรมค านวณเลข จะตองมการแสดงผลลพธของคาทท าการค านวณ ซงค าสง printf สามารถแสดงผลคาตวแปรได แตจะตองเขยนโปรแกรมใหมความสมพนธกนในสวนของ format-string และ data-list

โดยทใน format-string จะมสวนแสดงชนดขอมล และใน data-list จะมขอมล หรอตวแปรทจะแสดงผล

printf (format-string, data-list);

การก าหนดสวนแสดงชนดขอมลแบบตางๆ

สวนแสดงชนดขอมล การใชงาน%d แสดงผลขอมลชนดจ านวนเตม%u แสดงผลขอมลชนดจ านวนเตมบวก (ไมคดเครองหมาย)%o แสดงผลขอมลเปนเลขฐานแปด%x แสดงผลขอมลเปนเลขฐานสบหก%f แสดงผลขอมลชนดจ านวนทศนยม (6 ต าแหนง)%e แสดงผลขอมลเปนจ านวนทศนยมและอยในรปยกก าลง%c แสดงผลขอมลชนดอกขระ%s แสดงผลขอมลชนดขอความ%p แสดงผลขอมลชนดตวชต าแหนง

27

ตวอยางการใชงานค าสง printf แสดงผลขอมล

28

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

printf ("My name is : %s\n",“Pisit");printf ("My point : %d\n",10+40+49);printf ("Grade : %c\n",'A');printf ("GPA : %f",3.99);return 0;

}

My name is :KmitlMy point : 99Grade : AGPA : 3.990000

การก าหนดรายชอตวแปรในค าสง printf

29

การแสดงผลตวแปรโดยใชค าสง printf สามารถใชงานโดยการใสขอมล หรอชอตวแปรในสวนของ data-list

หากไมตองการแสดงผลตวแปร ไมตองมสวนของ data-list

หากตองการแสดงผลขอมล หรอตวแปรมากกวาหนงตวในค าสงใหใช เครองหมาย comma , ส าหรบคนชอตวแปร โดยจะท าการแสดงผลตามล าดบตวแปร และสวนการแสดงชนดขอมล

รายชอตวแปรในค าสง printf

30

printf ("...%?...", data);

printf ("%? %? ... %?", data-1, data-2, ..., data-n);

...data...

data-1 data-2 ... data-n

printf ("...%d...",19);

...19...

printf ("%d-%d-%d",19,1,1980);

19-1-1980

ตวอย

างตว

อยาง

ตวอยางการใชงานค าสง printf แสดงผลขอมลหลายตว-1

31

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

printf ("Age = %d, GPA = %f\n",17,3.75);printf ("Programming: %f\nMechanics: %f",4.0,3.5);return 0;

}

Age = 17, GPA = 3.750000Programming: 4.000000Mechanics: 3.5000000

ตวอยางการใชงานค าสง printf แสดงผลขอมลหลายตว-2

32

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

printf ("Subject : %s(%d)\n","Programming",2554);printf ("Point : %d\nGrade : %c",99,'A');return 0;

}

Subject : Programming(2552)Point : 99Grade : A

สวนแสดงชนดขอมลทก าหนดรปแบบการแสดงผล (1)

33

เปนการจองพนทหนาจอจ านวน m ตวอกษร แลวแสดงผล data ชดดานขวาของพนทสวนทจองไว โดยชนดขอมลตาม ? (หากความยาวเกนสวนทจองไวกจะเลอนออกไป)

เปนการจองพนทหนาจอขนาด m ตวอกษร แลวแสดงผล data ชดดานซายของพนทสวนทจองไว โดยชนดขอมลตาม ?

printf ("%m?",data);

printf ("%-m?",data);

ตวอยางการใชงานค าสง printf โดยมการก าหนดรปแบบ-1

34

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

printf ("123456789012345678901234567890");printf ("\n%20d*",46);printf ("\n%-20d*",46);printf ("\n%3d*",46);printf ("\n%3d*",2550);return 0;

}

ตวอยางการใชงานค าสง printf โดยมการก าหนดรปแบบ-2

35

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

printf ("123456789012345678901234567890");printf ("\n%20c*",'c');printf ("\n%-20c*",'c');printf ("\n%10s*","Pro");printf ("\n%10s*","Programming");return 0;

}

สวนแสดงชนดขอมลทก าหนดรปแบบการแสดงผล (2)

36

เปนการก าหนดใหแสดงจ านวนทศนยม n ต าแหนง ส าหรบ %f หรอแสดงอกขระจ านวน n ตว ส าหรบ %s

เปนการจองพนทหนาจอขนาด m ตวอกษรแลวแสดงผล data จ านวนทศนยม n ต าแหนง ส าหรบ %f หรอแสดงอกขระจ านวน n ตว ส าหรบ %s

printf ("%.n?",data);

printf ("%m.n?",data);

ตวอยางการใชงานค าสง printf โดยมการก าหนดรปแบบ-3

37

printf ("123456789012345678901234567890");printf ("\n%20s*","programming");printf ("\n%-20s*","programming");printf ("\n%.3s*","programming");printf ("\n%20.3s*","programming");printf ("\n%-20.3s*","programming");

ตวอยางการใชงานค าสง printf โดยมการก าหนดรปแบบ-4

38

printf ("123456789012345678901234567890");printf ("\n%20f*", 1234.56789);printf ("\n%-20f*", 1234.56789);printf ("\n%.3f*", 1234.56789);printf ("\n%20.3f*", 1234.56789);printf ("\n%-20.3f*", 1234.56789);

ค าอธบายโปรแกรม Comment

39

ค าอธบายโปรแกรมเปนสวนทเพมในโปรแกรมเพอชวยใหผทเขยน หรอผทอานโปรแกรมสามารถเขาใจกบตวโปรแกรมไดงายขน

โดยทค าอธบายโปรแกรมนจะไมมผลตอการท างานของโปรแกรม คอเวลาทท าการคอมไพล จะขามขอความทอยในสวนอธบายโปรแกรมไป

รปแบบค าอธบายโปรแกรม

40

/* Comment Sentence 1Comment Sentence 2...Comment Sentence n */

/* Comment Sentence */

// Comment Sentence

แบบฝกหด

41

ใหนกศกษาเขยนโปรแกรมแสดงชอ และ นามสกล ออกทางจอภาพ โดยใหชอ และ

นามสกลอยคนละบรรทดกน

ใหท าการเขยนโปรแกรมโดยใหผลการท างานแสดงรปดอกจนทรเรยงตวเปน

ตวอกษรชอเลนของนสตเอง

หาผลลพธของชดค าสงตอไปนprintf("%d\n", 1668); >> 1668printf("%.2f\n", 1668.258); >>1668.26printf("%.3f\n", 1668.258); >>1668.258printf("%.3f\n", "1668.258");printf("%+d\n", 422);printf("%04d\n", 422);printf("%s \n", "I\'m eager to go to the next page");

printf("2 + 2 = %d", 4);printf("%d + %d = %d", 2, 3, 5);

หาผลลพธของชดค าสงตอไปน printf ("Characters: %c\n", 'a');

printf ("Decimals: %d %d\n", 1977, 6500000000);printf ("Preceding with blanks: %7d \n", 1977);printf ("Preceding with zeros: %07d \n", 1977);printf ("Base number: %d %x %o\n", 427, 427, 427);printf ("%s \n", "123 in this text is a String not a number");

เขยนโปรแกรมใหแสดงผลลพธดงน

1.>> '\n' is a New line character.

2.>> Line1

Line2

Line3

top related