Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
อ.พศษฐ นาคใจคณะวทยาศาสตรและเทคโนโลยมหาวทยาลยราชภฎอตรดตถ
•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