บทที่1 พื้นฐานโปรแกรมภาษาซี

15
บทที1 พื้นฐานโปรแกรมภาษาซี ภาษาซี คิดค้นขึ้นเป็นครั้งแรกโดย เดนนิส ริทชี(Dennis Ritchie) ที่ห้องแล็บเบล ( Bell Labs) ในปี ค..1972 โดยได้แนวคิดมาจากภาษา BCPL พัฒนาขึ้นโดย มาร์ติน ริชาร์ด (Martin Richards) และภาษา B ที่เขียนขึ้นโดย เคน ทอมพ์สัน(Ken Thompson) เพื่อนามาพัฒนาต่อจนได้ภาษาใหม่ที่มี ประสิทธิภาพการทางานสูง หลังจากนั้นในปี ค..1978 ภาษาซีจึงได้รับการเผยแพร่อย่างเป็นทางการ โดยเคอร์นิกแฮน(Kernighan) และเดนนิส ริทชีเป็นภาษาที่เก่าแก่ถือกาเนิดมายาวนาน โดยแต่เดิมนั้น ภาษาซี ถูกพัฒนาขึ้นเพื่อให้เป็นภาษาสาหรับการสร้างระบบปฏิบัติการยูนิกซ์ เนื่องจากในขณะนั้น ระบบปฏิบัติการยูนิกซ์เขียนด้วยภาษาแอสเซมบลี ( Assembly) ซึ่งเป็นภาษาที่ยึดติดกับฮาร์ดแวร์ของ เครื่อง ดังนั้นการที่จะย้ายระบบปฏิบัติการไปใช้กับเครื่องอื่นจึงเป็นเรื่องที่เป็นไปไม่ได้เลย ซึ่งนับเป็น ข้อเสียใหญ่ของภาษาแอสเซมบลีดังนั้นภาษาซีซึ่งเป็นภาษาที่ไม่ยึดติดกับฮาร์ดแวร์จึงถูกพัฒนาขึ้นมา ในปัจจุบันภาษาซีไม่ได้จากัดอยู่เพียงแค่งานสร้างระบบปฏิบัติการเท่านั้นแต่สามารถนาไปใชสร้างโปรแกรมเพื่องานในทุกประเภท เช่น งานเกี่ยวกับการคานวณ ควบคุมการทางานของอุปกรณ์ / ฮาร์ดแวร์ชนิดต่าง การจัดการฐานข้อมูลหรือสร้างโปรแกรมสาหรับจัดพิมพ์เอกสารเป็นต้น จุดกาเนิด ของภาษาซีนั้น เกิดมาจาก UNIX ผู้ออกแบบภาษา UNIX ต้องการให้ OS ของตัวเอง สามารถใช้งานได้บน เครื่องต่างๆ กัน แต่การที่จะต้อง Implement UNIX โดยใช้ภาษา Assembly ของแต่ละเครื่อง เป็นสิ่งทียุ่งยากเกินไป ผู้ออกแบบ UNIX จึงสร้างภาษากลางภาษาหนึ่ง ซึ่ง UNIX ทั้งตัวเขียนจากภาษาดังกล่าว ดังนั้นเมื่อต้องการ ให้ UNIX ใช้ งานได้บนเครื่องใด ก็ให้สร้างคอมไพเลอร์ของภาษากลางบนเครื่องนั้น ก่อน คอมไพเลอร์จะแปล โปรแกรมให้เป็นภาษาเครื่องทาให้ลดความซับซ้อนลงมาก ภาษากลาง ดังกล่าวก็คือภาษาซีนั่นเอง ประวัติภาษาซี

description

ประวัติความเป็นมา ขั้นตอนการทำงาน

Transcript of บทที่1 พื้นฐานโปรแกรมภาษาซี

Page 1: บทที่1 พื้นฐานโปรแกรมภาษาซี

บทท 1

พนฐานโปรแกรมภาษาซ

ภาษาซ คดคนขนเปนครงแรกโดย เดนนส รทช (Dennis Ritchie) ทหองแลบเบล (Bell Labs) ในป ค.ศ.1972 โดยไดแนวคดมาจากภาษา BCPL พฒนาขนโดย มารตน รชารด (Martin Richards) และภาษา B ทเขยนขนโดย เคน ทอมพสน(Ken Thompson) เพอน ามาพฒนาตอจนไดภาษาใหมทมประสทธภาพการท างานสง หลงจากนนในป ค.ศ.1978 ภาษาซจงไดรบการเผยแพรอยางเปนทางการโดยเคอรนกแฮน(Kernighan) และเดนนส รทช เปนภาษาทเกาแกถอก าเนดมายาวนาน โดยแตเดมนน ภาษาซ ถกพฒนาขนเพอใหเปนภาษาส าหรบการสรางระบบปฏบตการยนกซ เนองจากในขณะนนระบบปฏบตการยนกซเขยนดวยภาษาแอสเซมบล (Assembly) ซงเปนภาษาทยดตดกบฮารดแวรของเครอง ดงนนการทจะยายระบบปฏบตการไปใชกบเครองอนจงเปนเรองทเปนไปไมไดเลย ซงนบเปนขอเสยใหญของภาษาแอสเซมบลดงนนภาษาซซงเปนภาษาทไมยดตดกบฮารดแวรจงถกพฒนาขนมา

ในปจจบนภาษาซไมไดจ ากดอยเพยงแคงานสรางระบบปฏบตการเทานนแตสามารถน าไปใชสรางโปรแกรมเพองานในทกประเภท เชน งานเกยวกบการค านวณ ควบคมการท างานของอปกรณ/ฮารดแวรชนดตาง ๆ การจดการฐานขอมลหรอสรางโปรแกรมส าหรบจดพมพเอกสารเปนตน จดก าเนดของภาษาซนน เกดมาจาก UNIX ผออกแบบภาษา UNIX ตองการให OS ของตวเอง สามารถใชงานไดบนเครองตางๆ กน แตการทจะตอง Implement UNIX โดยใชภาษา Assembly ของแตละเครอง เปนสงทยงยากเกนไป ผออกแบบ UNIX จงสรางภาษากลางภาษาหนง ซง UNIX ทงตวเขยนจากภาษาดงกลาว ดงนนเมอตองการ ให UNIX ใช งานไดบนเครองใด กใหสรางคอมไพเลอรของภาษากลางบนเครองนนกอน คอมไพเลอรจะแปล โปรแกรมใหเปนภาษาเครองท าใหลดความซบซอนลงมาก ภาษากลางดงกลาวกคอภาษาซนนเอง

ประวตภาษาซ

Page 2: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 2 เอกสารประกอบการสอน ภาษาซ

โครงสรางพนฐานของโปรแกรมภาษาซจะตองประกอบดวยโปรแกรมยอย หรอเรยกวาฟงกชน (function) อยางนอย 1 ฟงกชน คอ ฟงกชน main( ) ซงมรปแบบดงน

ฟงกชน main( ) ประกอบดวย 3 สวนหลก คอ 1) สวนหวของฟงกชน ประกอบดวย ชนดขอมล void ชอฟงกชน main ตามดวยเครองหมาย ( และ ) ตามล าดบ 2) สวนการประกาศตวแปร ใชส าหรบประกาศตวแปรชนดตาง ๆ เพอเกบขอมลระหวางการประมวลผล 3) สวนค าสง ประกอบดวยค าสงทเกยวของกบการรบเขา การแสดงผลขอมลและค าสงประมวลผลอน ๆ

สวนประกาศตวแปรและสวนค าสงจะตองเขยนอยระหวางเครองหมาย { และ } เสมอ ทงสองสวนนใชส าหรบนยามการท างานของฟงกชน main() หรอในทนเปนการนยามการท างานของโปรแกรมนนเอง และค าสงทกค าสงในภาษาซจะตองปดทายดวยเครองหมาย ; เสมอ

ขนตอนการท างานของภาษาซ

main() { //สวนหวของฟงกชน การประกาศตวแปรทองถน; // สวนการประกาศตวแปร ค าสงตาง ๆ ; // สวนค าสง }

#include <stdio.h>

#include <conio.h>

main( )

{

int a;

printf(“Computer”);

getch( );

}

สวนหว

สวนประกาศตวแปร

สวนค าสง

ขนท 1 เขยนค าสง

.C

ขนท 2 คอมไพลและลงค

.OBJ

ขนท 3 น าไปใชงาน

.EXE

โครงสรางพนฐานของโปรแกรมภาษาซ

Page 3: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 3 เอกสารประกอบการสอน ภาษาซ

ขนตอนท 1 เขยนรายการค าสงของโปรแกรม (Write Source Code File) เปนการเขยนค าสงตาง ๆ ของภาษาซเพอด าเนนการกบขอมล โดยทค าสงดงกลาวนนอาจจะเปน

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

ขนตอนท 2 คอมไพลและลงครหสโปรแกรม (Compile and Link) เปนขนตอนของการน าค าสงในรหสโปแกรมทเขยนดวยภาษาซมาแปลใหเปนภาษาทเครอง

คอมพวเตอรเขาใจ โดยแบงการท างานเปน 2 สวนคอ คอมไพล(Compile) คอ การน ารหสโปรแกรมทเขยนดวยภาษาซมาใหตวแปรภาษา (Compiler) ท า

การตรวจสอบ โดยตวแปรภาษาจะตรวจสอบค าสงตาง ๆ ทเขยนวาถกตองตามหลกไวยากรณของภาษาซหรอไม ถาพบขอผดพลาดจะตองแกไขใหถกตองแลวคอมไพลใหมจนกวาจะถกตอง ไฟลทคอมไพลผานตวแปรภาษาจะท าการสรางใหเปน Object file ซงมนามสกล .OBJ

ลงค(Link) คอ การน า Object file ทไดจากการคอมไพลของภาษาซมาท าการเชอมโยงเขาดวยกน ดวยตวเชอมโยงของภาษาซ(Linker) ซงผลจากการเชอมโยงนตวเชอมโยงจะสรางเปน Execution file ทมนามสกล .EXE ซงเปนไฟลทจะน าไปใชงานนนเอง

ขนตอนท 3 การน าโปรแกรมไปใชงาน (Execte Program) เปนขนตอนของการน า Execute file ทไดจากการคอมไพลโปรแกรมไปใชงาน

(กตชย ชวาสขถาวร. 2550 : 14)

ขนตอนการเขยนโปรแกรมภาษาซ

Page 4: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 4 เอกสารประกอบการสอน ภาษาซ

พนทส าหรบการพมพรหสโปรแกรม

Page 5: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 5 เอกสารประกอบการสอน ภาษาซ

โปรแกรมภาษาซอยางงาย ตวอยาง 1.1 โปรแกรมภาษาซทสนทสด

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

ตวอยางท 1.3 โปรแกรมพมพหวรายงาน

ตวอยางท 1.4 โปรแกรมพมพจ านวนเตม

/* 1 */ //Program : First.c

/* 2 */ // แสดงการใชฟงกชน main() ในโปรแกรม /* 3 */

/* 4 */ main(){

/* 5 */ }

/*1*/ //Program : Output1.c

/*2*/ #include <stdio.h>

/*3*/ #include <conio.h>

/*4*/ int main(){ /*5*/ printf(“The first output from C.\n”);

/*6*/ getch();

/*7*/ return 0;

/*8*/ }

/ * 1 */ //Program : Output2.c

/ * 2 */ #include <stdio.h>

/ * 3 */ #include <conio.h>

/ * 4 */ int main(){

/* 5*/ printf(“\n--< Payroll Report >--”);

/* 6*/ printf(“\n 31/01/2009 \n”);

/* 7*/ getch();

/* 8*/ return 0;

/*9*/ }

/ * 1 */ //Program : Output3.c

/ * 2 */ #include <stdio.h>

/ * 3 */ #include <conio.h>

/ * 4 */ int main(){

/* 5*/ printf(“\nFirst value is %d.”,5);

/* 6*/ printf(“\nSecond value is %d.”,7);

/* 7*/ getch();

/* 8*/ return 0;

/*9*/ }

Page 6: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 6 เอกสารประกอบการสอน ภาษาซ

printf (“format”,variable);

ตวอยางท 1.5 โปรแกรมพมพจ านวนเตมหลายคาในบรรทดเดยวกน

การแสดงผลขอมลออกทางจอภาพ ในภาษา C ใชค าสง printf ค าสง printf ถอไดวาเปนค าสงพนฐานทสดในการแสดงผลขอมลทกชนดออกทางหนาจอ ไมวาจะเปน จ านวนเตม (int) ทศนยม (float) ขอความ (string) หรออกขระ(char) นอกจากนค าสงยงมความยดหยนสง โดยเราสามารถก าหนดหรอจดรปแบบการแสดงผลใหมระเบยบหรอเหมาะสมตามความตองการได

รปแบบค าสง printf

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

ตวอยางการใชค าสง printf แสดงผลขอความธรรมดาออกทางหนาจอ ดงน printf(“Hello Program C”); แสดงขอความ Hello Program C ออกทางจอภาพ printf(“I love UBU”); แสดงขอความ I love UBU ออกทางจอภาพ

/*1*/ //Program : Output4.c

/*2*/ // พมพจ านวนเตมหลายคาในบรรทดเดยวกน /*3*/

/*4*/ #include <stdio.h>

/*5*/ #include <conio.h>

/*6*/ int main(){ /*7*/ printf(“\nSum of %d and %d is %d.”,9,4,9+4);

/*8*/ printf(“\nDifference of %d and %d is %d.”,9,4,9-4);

/*9*/ printf(“\nMultiplication of %d by %d is %d.”,9,4,9*4);

/*10*/ printf(“\nDivision of %d by %d is %d.\n”,9,4,9/4);

/*11*/ getch();

/*12*/ return 0;

/*13*/ }

ค าสงแสดงผลออกทางจอภาพ

Page 7: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 7 เอกสารประกอบการสอน ภาษาซ

ค าสง printf() นอกจากจะใชแสดงผลขอความธรรมดาๆ แลว ยงสามารถจดรปแบบใหกบขอความไดอกดวย ซงชอเตมๆของ printf กคอ print formatted นนเอง

อารกวเมนต (Argrument) ของค าสงใดๆ คอสงทอยระหวาง ( และ ) ของค าสงนนๆ โดยอารกวเมนตอาจมไดมากกวาหนงตว ใช , (Comma) คนระหวางอารกวเมนตแตละตว

ค าสง printf() ทผานๆมา มเพยงอารกวเมนตเดยว นนคอขอความทตองการแสดงผลนนเอง แตค าสง printf() ในตวอยางดานบน มหลายอารกวเมนต เราจะท าความเขาใจความหมายของมนกน

ถาสงเกตด ๆ จะเหนวา ขอความในค าสง printf ดานบน "2 + 2 = " แสดงผลออกมาตามปกต มเพยง %d เทานน ทถกเปลยนไปเปน 4 แทน ค าสง printf จะน าอารกวเมนตดานหลง มาแทนท %d ในอารกวเมนตแรกตามล าดบ ทงน ตองใชใหถกประเภทดวย ซง %d ใชส าหรบ เลขจ านวนเตม (Integer) ฐานสบ หากเปนเลขทศนยมหรอเลขจ านวนจรง (Floating number) ตองใช %f แทน ซงประเภทตางๆ ดไดตามตารางขางลางน

Code Format Example

%c ตวอกษร หรอ อกขระ 1 ตว a

%d เลขจ านวนเตมฐานสบ 475

%e สญกรทางวทยาศาสตร (scientific notation) ใชตว e 4.7523e+2

%E สญกรทางวทยาศาสตร (scientific notation) ใชตว E 4.7523E+2

%f เลขทศนยม หรอจ านวนจรง 475.23

%g เปน %e หรอ %f ตามความเหมาะสม 475.23

%G เปน %E หรอ %f ตามความเหมาะสม 475.23

%o เลขจ านวนเตมฐานแปด 653

%x เลขจ านวนเตมฐานสบหก ใชตวอกษรตวเลก 1ab

%X เลขจ านวนเตมฐานสบหก ใชตวอกษรตวใหญ 1AB

%s ขอความ หรอสายอกขระ (ตวอกษรหลายตวเรยงตอกน) ABCD

%u เลขจ านวนเตมบวก และศนย (Unsigned integer) 385

%% เครองหมาย '%'

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

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

2 + 2 = 4

2 + 3 = 5

โคด

ผลลพธ

Page 8: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 8 เอกสารประกอบการสอน ภาษาซ

Text Formatting #2

ผลลพธ

Characters: a

Decimals: 1977 6500000000

Preceding with blanks: 1977

Preceding with zeros: 0001977

Base number: 427 1ab 653

Floats: 3.14 +3e+00 3.141600E+00

123 in this text is a String not a number

ขอควรจ า ตวอกษร หรออกขระ 1 ตว (Character) ในภาษา C เราจะใชเครองหมาย ' (Single qoute) ครอม ชดตวอกษร หรอสายอกขระ (String) ในภาษา C เราจะใชเครองหมาย " (Double qoute) ครอม ตวเลข สามารถใชไดเลย ไมตองมตวครอม

เพมเตม

%7d หมายความวา แสดงเลขฐานสบโดยมความกวางอยางนอย 7 ตวอกษร หากเลขนนมจ านวนหลกนอยกวา 7 หลก โปรแกรมจะใสชองวางดานหนาเลขนนจนครบ 7 ตว %07d หมายความวา แสดงเลขฐานสบโดยมจ านวนหลกอยางนอย 7 หลก หากเลขนนมจ านวนหลกนอยกวา 7 หลก โปรแกรมจะใสเลขศนยดานหนาเลขนนจบครบ 7 หลก %+d หมายความวา ปกตแลวเลขจ านวนบวกจะไมมเครองหมายน าหนา ใชโคดนเพอสงใหแสดง %.2f หมายความวา แสดงเลขจ านวนจรง โดยแสดงต าแหนงทศนยมเพยง 2 หลก

หลกการดานบน สามารถใชพรอมกนไดดวย เชน %07.3f %+3d เปนตน

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 ("Floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);

printf ("%s \n", "123 in this text is a String not a number");

Page 9: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 9 เอกสารประกอบการสอน ภาษาซ

แสดงผลใหเปนระเบยบดวยอกขระควบคมการแสดงผล

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

อกขระควบคมการแสดงผล

ความหมาย

\n ขนบรรทดใหม (new line)

\t เวนชองวางเปนระยะ 1 แทบ (6 ตวอกษร) หรอ แทบแนวนอน (horizontal tab)

\r ก าหนดใหเคอรเซอรไปอยตนบรรทด (carriage return)

\f เวนชองวางเปนระยะ 1 หนาจอ หรอ ขนหนาใหม (form feed)

\b ถอยหลง 1 ชองตวอกษร(Backspace)

\\ พมพเครองหมาย \ (Literal backslash)

\" พมพเครองหมาย " (Double quote)

\' พมพเครองหมาย ' (Single quote)

\a สงเสยง Alert 1 ครง (bell)

\v แทบแนวตง (Vertical tab)

\? พมพเครองหมาย ? Question mark (used to escape trigraphs)

\nnn Character with octal value nnn

\xhh Character with hexadecimal value hh

การน าอกขระควบคมการแสดงผลมาใช เราตองเขยนอกขระควบคมการแสดงผลไวภายในเครองหมาย ” ” ดงตวอยาง

printf("Hello ... \n"); แสดงขอความ Hello ... แลวขนบรรทดใหม

printf("Hello...\nKanchanaburi\n"); แสดงขอความ Hello ...แลวขนบรรทดใหมพรอมกบแสดง ขอความ Kanchanaburi จากนนขนบรรทดใหมอกครง

printf("Num1 = %d\tNum2 = %f\n",x,z); แสดงขอความ Num1=45 ตามดวยการเวน ชองวาง 1 แทบ แลวตอดวยขอความ Num2 = 20.153

Page 10: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 10 เอกสารประกอบการสอน ภาษาซ

Comment

บางครง เราอาจตองการเขยนขอความอธบายการท างาน หรอค าสงตางๆ (Statement) ของโปรแกรมเพอใหคนอน หรอแมแตตวเราเองซงมาอานในภายหลง สามารถเขาใจไดงายและรวดเรวขน โดยขอความเหลาน เราไมตองการใหคอมพวเตอรประมวลผล จะท าอยางไร ?

เราเรยก ขอความทไมตองการใหคอมพวเตอรประมวลผลนวา คอมเมนท (Comment) มอยสองแบบ 1. คอมเมนทแบบบรรทดเดยวจบ (Single line comment) ขอความทตามหลงเครองหมาย // ในบรรทดนนทงบรรทด จะไมถกประมวลผล คอมพวเตอรจะเรมประมวลผลโคดใหมในบรรทดถดไป 2. คอมเมนทแบบหลายบรรทด (Multiple line comment) เรมตนดวยเครองหมาย /* และจบดวยเครองหมาย */ ขอความทอยระหวางเครองหมายทงสองน จะถอวาเปน Comment ทงหมด

// this is a comment and will not be shown in output. printf( "This isn\'t a comment" ); // this is a single line comment /* This is a multiple line comment. Comment #1 Comment #2 */

โคด

This isn't a comment ผลลพธ

Page 11: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 11 เอกสารประกอบการสอน ภาษาซ

ค าชแจง ปฏบตกจกรรมตามขนตอนการปฏบตงาน 1. ใหนกเรยนเปดเครองคอมพวเตอร แลวเขาโปรแกรมภาษาซ

2. คลก

3. คลก

4. คลก 5. เมอเปดหนาจอโปรแกรมภาษาซแลว ใหคลกเมน File New Source file 6. พมพชดค าสงของโปรแกรมตอไปน

7. เมอพมพชดค าสงเสรจ บนทกขอมลชอ work1 โดยคลก File Save ตกลง

8. กดปม ctrl + F9 เพอการคอมไพล 9. กดปม ctrl + F10 เพอการรนโปรแกรม

ใบงานท 1.1

#include <stdio.h>

#include <conio.h>

int main ( )

{

printf(" *\n");

printf(" ****\n");

printf(" ******\n");

printf(" *********\n");

getch( );

return 0;

}

Page 12: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 12 เอกสารประกอบการสอน ภาษาซ

ใบงานท 1.2 ค าสงแสดงผลลพธ 1

1. ใหนกเรยนเขยนโปรแกรมเพอแสดงผลขอความ (ตามทผเรยนก าหนด) จ านวน 3 บรรทดบนจอภาพ บนทกโปรแกรมในชอ MyFirst.c จากนนใหคอมไพล รนโปรแกรมและสงเกตผลลพธ

ขอความทตองการใหแสดงผลคอ 1. ............................................................................................................................................................. 2. .............................................................................................................................................................. 3................................................................................................................................................................ โปรแกรม .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ผลลพธ .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ..................................................................................................................................................................

Page 13: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 13 เอกสารประกอบการสอน ภาษาซ

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

3. ใหนกเรยนเขยนขอความระบความผดพลาด (error message) ทเกดขนจากการใชรปแบบค าสงท

ไมถกตองแตละอยางดงตอไปน แนะน า ใหนกเรยนแกไขโปรแกรม MyFirst.c เพอจงใจใหเกดขอผดพลาดดานลาง แลวสงเกต

ขอความระบ ขอผดพลาดจากการคอมไพลโปรแกรม 3.1 ไมใสเครองหมาย } .................................................................................................................................................................. 3.2 ไมใสเครองหมาย () หลง main .................................................................................................................................................................. 3.3 ไมใสเครองหมาย ; ตอทายค าสงใดค าสงหนง .................................................................................................................................................................. 3.4 ใสเครองหมาย ; ตอทายเครองหมาย () หลง main .................................................................................................................................................................. 3.5 ไมใสเครองหมาย “ กอนหรอหลงขอความในค าสง printf () ..................................................................................................................................................................

Page 14: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 14 เอกสารประกอบการสอน ภาษาซ

ใบงานท 1.3 ค าสงแสดงผลลพธ 2

1. ใหนกเรยนเขยนโปรแกรมเพอแสดงผลลพธเปนรปสามเหลยมทมความสง 8 แถว ดงรป * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * โปรแกรม .................................................................................................................................................................. .................................................................................................................................................................. ..................................................................................................................................................................

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

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

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

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

Page 15: บทที่1 พื้นฐานโปรแกรมภาษาซี

โรงเรยนวสทธรงษ จงหวดกาญจนบร

หนา 15 เอกสารประกอบการสอน ภาษาซ

2. ใหนกเรยนเขยนค าสงเพอพมพผลลพธจากนพจนตอไปน 2.1 28 * 42 .................................................................................................................................................................. ..................................................................................................................................................................

2.2 65032 / 98 .................................................................................................................................................................. .................................................................................................................................................................. 2.3 29541 + 35826 – 47 .................................................................................................................................................................. .................................................................................................................................................................. 2.4 459 * 25 – 18 + 3 .................................................................................................................................................................. ..................................................................................................................................................................