โครงสร้าง...

Post on 01-Jun-2020

19 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

อ.พศษฐ นาคใจคณะวทยาศาสตรและเทคโนโลยมหาวทยาลยราชภฎอตรดตถ

•1

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

วตถประสงค

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

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

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

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

•2

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

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

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

}

•3

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

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

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

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

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

ชดค าสง

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

• สวนหวโปรแกรม (Header Program)

พรโปรเซสเซอรไดเรคทฟ (Preprocessor Directive)

ตวแปรชนดโกบอล (Global Variable Declaration)

•4

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

• สวนตวโปรแกรม (Body Program)

ฟงกชนหลก (Main Function)

ตวแปรชนดโลคอล (Local Variable Declaration)

ค าสง (Statement)

ฟงกชนอน ๆ (Functions)

• ค าอธบายโปรแกรม (Comment Program)

•5

ฟรโปรเซสเซอรไดเรคทฟ• สวนประมวลผลกอน เปนสวนทสงใหคอมไพเลอรเตรยมการท างานทก าหนดไว กอนทจะท างานใน

ฟงกชนหลก

ใหโปรแกรมดงค าสงจาก file-name.h ใน Include Directory (แฟมมาตรฐานของชดค าสง)

ใหโปรแกรมดงค าสงจาก file-name.h ใน Current Directory (แฟมปจจบนทโปรแกรมอย)

file-name คอชอไฟลนามสกล h

•6

#include <file-name.h>

#include "file-name.h"

ตวอยางค าสงฟรโปรเซสเซอรไดเรคทฟ#include<stdio.h>

ท าการเรยกไฟล stdio.h เพอท าใหสามารถใชค าสงทวไปได

#include<conio.h>

ท าการเรยกไฟล conio.h เพอท าใหสามารถใชค าสงจดการหนาจอ และค าสงรบและแสดงผลเพมเตม

#include<math.h>

ท าการเรยกไฟล math.h เพอท าใหสามารถใชค าสงเกยวกบคณตศาสตรได

#include<string.h>

ท าการเรยกไฟล string.h เพอท าใหสามารถใชค าสงจดการเกยวกบขอความได

•7

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

ของภาษาซจะเรมตนการท างานจากฟงกชนหลก

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

•8

int main(void)

{

return(0);

}

int main()

{

return 0;

}

กฎเกณฑการใชค าสงในภาษาซ• ใชเครองหมาย semi colon ; เปนจดสนสดค าสง

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

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

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

•9

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

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

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

•10

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

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

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

•11

printf (format-string, data-list);

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

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

•12

int main()

{

printf ("Hello World!");

return 0;

}

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

•13

#include<stdio.h>

int main()

{

printf ("Hello World!");

return 0;

}

Hello World!

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

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

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

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

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

•14

ขอความธรรมดา• การแสดงขอความธรรมดาเปนการใชค าสง printf ใหแสดงขอความทตองการ

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

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

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

•15

printf (format-string, data-list);

printf ("Hello World!");

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

•16

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• คารหส ASCII เปนอกขระพเศษทใชงานในภาษาซ ซงใชควบคมการแสดงผลใน

ค าสง printf ในสวนของ format-string

•17

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

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

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

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

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

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

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

•18

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

สวนแสดงชนดขอมล• ในการเขยนโปรแกรมทมการประยกตขน เชนโปรแกรมค านวณเลข จะตองม

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

โดยทใน format-string จะมสวนแสดงชนดขอมล

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

•19

printf (format-string, data-list);

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

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

•20

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

•21

#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 :Kmitl

My point : 99

Grade : A

GPA : 3.990000

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

ชอตวแปรในสวนของ data-list

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

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

•22

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

•23

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

•24

#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.750000

Programming: 4.000000

Mechanics: 3.5000000

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

•25

#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 : 99

Grade : A

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

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

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

•26

printf ("%m?",data);

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

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

•27

#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

•28

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

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

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

•29

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

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

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

•30

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

•31

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

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

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

•32

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

•33

/* Comment Sentence 1

Comment Sentence 2

...

Comment Sentence n */

/* Comment Sentence */

// Comment Sentence

แบบฝกหด

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

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

•34

Reference

• ปรบปรงจาก อ.จระศกด สทธกร ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร สถาบนเทคโนโลยพระจอมเกลาเจาคณทหารลาดกระบง

•35

top related