หน่วยที่ 14 การเขียนโปรแกรมย่อย

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Arrays.
Advertisements

ครั้งที่ 9 Function(ต่อ).
โครงสร้างโปรแกรมภาษา C
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ตัวแปรประเภทตัวชี้ (Pointer)
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
ข้อมูลชนิดสตริง String บทที่ 8
Introduction to C Programming
ครั้งที่ 8 Function.
Control Statement if..else switch..case for while do-while.
การรับค่าและแสดงผล.
ข้อมูลชนิดโครงสร้าง (Structure Data)
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
Principles of Programming
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
Array.
ARRAY.
Week 6 ประกาศค่าตัวแปร.
การแสดงผล และการรับข้อมูล
รับและแสดงผลข้อมูล.
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
อาเรย์ (Array).
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
ฟังก์ชัน (Function).
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
Arrays.
บทที่ 12 Structure and union Kairoek choeychuen
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 6: Function.
Programming With C Data Input & Output.
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
บทที่ 11 การเขียนโปรแกรมภาษาซี
ข้อมูลพื้นฐานและตัวดำเนินการ
บทที่ ไลบรารีฟังก์ชัน
หน่วยที่ 1 พื้นฐานภาษา C
อาร์เรย์และข้อความสตริง
อาร์เรย์ (Array).
อาร์เรย์ (Array).
ตัวแปรกับชนิดของข้อมูล
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ฟังก์ชันรับข้อมูล ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
C language W.lilakiatsakun.
ตัวแปรกับชนิดของข้อมูล
Week 2 Variables.
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
การประมวลผลสายอักขระ
Computer Programming for Engineers
Call by reference.
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
โครงสร้างภาษาซี #include <stdio.h> void main() {
คำสั่งเกี่ยวกับการรับ และแสดงผล
บทที่ 7 เงื่อนไขในภาษาซี
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
การเขียนโปรแกรม (ภาษาซี)
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
ใบสำเนางานนำเสนอ:

หน่วยที่ 14 การเขียนโปรแกรมย่อย

ฟังก์ชันที่ส่งค่ากลับทางพารามิเตอร์ พารามิเตอร์ธรรมดา มีการแก้ไขไม่ได้ พารามิเตอร์แบบ มีการแก้ไขได้ หาก - นำหน้าด้วย * หรือ - เป็นแอเรย์

void AnotherFunction( int a, int b, int *c) การใช้พารามิเตอร์แบบ มีการแก้ไขได้ มีกฏดังนี้ 1. ที่ส่วนหัวของฟังก์ชัน ให้เขียนเครื่องหมาย ‘*’ หน้าชื่อตัวแปรพารามิเตอร์ เช่น void AnotherFunction( int a, int b, int *c) 2. ในการเปลี่ยนค่าพารามิเตอร์ทุกครั้ง ต้องมีการเขียนเครื่องหมาย ‘*’ นำหน้าตัวแปรพารามิเตอร์ ตัวอย่างเช่น void AnotherFunction( int a, int b, int *c) { *c = (a+b)/2; } 3. ในการเรียกฟังก์ชันทุกครั้ง การส่งพารามิเตอร์แบบ มีการแก้ไข จะต้องเขียนเครื่องหมาย ‘&’ นำหน้าพารามิเตอร์เสมอ เช่น AnotherFunction(2, 4, &x); AnotherFunction (x, 10, &av); AnotherFunction (a, b, &c); 4. ในการเรียกฟังก์ชันทุกครั้ง พารามิเตอร์แบบ มีการแก้ไข จะต้องเป็นตัวแปรเท่านั้น

ตัวอย่างที่ 5, ฟังก์ชัน AnotherAverage

Give me two integers : 5 26 Average of 5 and 26 is 15.5 /* A program to calculate an average of two numbers */ #include <stdio.h> /* calculate the average value of a and b */ void AnotherAverage ( int a, int b, float *TheAverage ) { float result; result = (float)(a+b)/2 ; *TheAverage = result; } main() int x, y; float av; printf("Give me two integers : "); scanf("%d %d", &x, &y); AnotherAverage(x,y,&av); printf("Average of %d and %d is %0.1f\n", x, y, av); Give me two integers : 5 26 Average of 5 and 26 is 15.5

ตัวอย่างที่ 6, ฟังก์ชัน NewAverage

/* A program to calculate an average of two numbers */ #include <stdio.h> /* Input two values and calculate the average */ float NewAverage ( int *a, int *b ) { printf("Give me two integers : "); scanf("%d %d", &*a, &*b); return ( (float)(*a + *b)/2.0 ); } main() int n1=1, n2=1; float av; av = NewAverage(&n1, &n2); printf("Average of %d and %d is %0.1f\n", n1, n2, av); Give me two integers : 5 26 Average of 5 and 26 is 15.5

ตัวอย่างที่ 7, ฟังก์ชัน swapChar

/* A program to swap two characters */ #include <stdio.h> void swapChar ( char *a, char *b ) { char temp; temp = *a; *a = *b; *b = temp; } /* Main Function */ main() char c1='A', c2='z'; printf("At first, c1 = %c and c2 = %c \n", c1, c2); swapChar(&c1, &c2); printf("After swap, c1 = %c and c2 = %c \n", c1, c2); At first, c1 = A and c2 = z After swap, c1 = z and c2 = A

การใช้แอเรย์เป็นพารามิเตอร์ของฟังก์ชัน ถ้าพารามิเตอร์เป็นแอเรย์ต้องประกาศแอเรย์ให้ชัดเจน เช่น int FindMaxScore ( int Score[100], int NumberOfStudents) โดยถ้าเป็นแอเรย์หนึ่งมิติไม่จำเป็นต้องกำหนดขนาดของแอเรย์ก็ได้ เช่น int FindMaxScore ( int Score[], int NumberOfStudents)

2. หากเป็นแอเรย์หลายมิติ ต้องกำหนดขนาดของทุกมิติยกเว้นได้เพียงมิติแรกเท่านั้น เช่น void GetNames ( char Name[][40], int NumberOfStudents) 3. การส่งแอเรย์ให้กับฟังก์ชัน ทำได้โดยการใช้เพียงชื่อแอเรย์เท่านั้น โดยไม่ต้องมีเครื่องหมายใดๆนำหน้า และไม่ต้องมีวงเล็บตามหลัง FindMaxScore ( TotalScore, NumberOfStudents); GetName(Name, NumberOfStudents);

Grade = CalculateGrade(score[i]); 4. แอเรย์ทั้งแอเรย์ถือว่าเป็นพารามิเตอร์แบบ มีการแก้ไขได้ ไม่จำเป็นต้องใช้เครื่องหมาย * และ & 5. อีลีเมนท์เดียวของแอเรย์ถือว่าเป็นตัวแปรเดี่ยว ดังนั้น การส่งเป็นพารามิเตอร์แบบแก้ไขไม่ได้ ต้องระบุหมายเลข Grade = CalculateGrade(score[i]); การส่งเป็นพารามิเตอร์แบบแก้ไขได้ต้องใช้เครื่องหมาย ‘&’ นำหน้า average(2,5,&av[i]);

ตัวอย่างที่ 8, ฟังก์ชัน FindMax /* A program to find maximum value from an array */ #include <stdio.h> /*Find Max Value*/ int FindMax (int Data[], int NumberOfData) { int Max = -1; /* Initialize max to a low value*/ int i; for (i=0; i< NumberOfData; i++) /*Visit every element*/ if (Data[i] > Max) /*If an element is bigger than Max,*/ Max = Data[i]; /*Change Max*/ return(Max); } /* Main Function */ main() int Age[] = {17,18,19,16,20}; int NumberOfPeople = 5,MaxAge; MaxAge = FindMax( Age, NumberOfPeople); printf("The maximum age is %d\n", MaxAge); The maximum age is 20

ตัวอย่างที่ 9, ฟังก์ชัน FindCharacter /* A program to find a character in a string */ #include <stdio.h> #include <string.h> /* Find character c in string Str */ int FindCharacter ( char Str[], char c) { int Position = -1; /*Initialize position to -1*/ int i; for (i=0; i<strlen(Str)&&Position==-1; i++) /*Loop until found */ if (Str[i] == c) /*If an element is equal to c*/ Position = i; /*Change position to i*/ return(Position+1); } /* Main Function */ main() char Name[] = "Suthep Madarasmi"; int FoundPosition = FindCharacter( Name, 'r'); printf("r is found at position %d in %s\n", FoundPosition,Name); r is found at position 12 in Suthep Madarasmi

ตัวอย่างที่ 10, ฟังก์ชัน swapInt กับการสลับค่าอีลีเมนท์ของแอเรย์ /* A program to swap two integers */ #include <stdio.h> /* swap two integers */ void swapInt ( int *a, int *b ) { int temp; temp = *a; *a = *b; *b = temp; } /* Main Function */ main() int Age[] = {17, 18, 19, 16, 20}; int NumberOfPeople = 5; printf("Before swap.. Age[2] = %d, Age[4] = %d\n", Age[2],Age[4]); swapInt(&Age[2],&Age[4]); printf("After swap.. Age[2] = %d, Age[4] = %d\n", Age[2],Age[4]); Before sorting.. Age[2] = 19, Age[4] = 20 After sorting.. Age[2] = 20, Age[4] = 19

ตัวอย่างที่ 11, ฟังก์ชัน swapInt, Sort และ PrintArray /* Sort data in array */ void Sort (int Data[], int NumberOfData) { int i,j; for (i=0; i< NumberOfData; i++) /*for each element */ for (j=i+1; j< NumberOfData; j++) /*visit each later element */ if (Data[j] < Data[i]) /*if an element is smaller */ swapInt(&Data[i], &Data[j]); /*swap the elements */ }

/* Print data in array */ void PrintArray (int Data[], int NumberOfData) { int i; for (i=0; i< NumberOfData; i++) printf("%3d", Data[i]); printf("\n"); }

} main() { int Age[] = {17, 18, 19, 16, 20}; int NumberOfPeople = 5; printf("Before sorting.. "); PrintArray(Age, NumberOfPeople); Sort(Age, NumberOfPeople); printf("After sorting.. "); } Before sorting.. 17 18 19 16 20 After sorting.. 16 17 18 19 20

การประกาศฟังก์ชันก่อนเขียนตัวฟังก์ชัน เขียน prototype ของฟังก์ชันไว้ที่ส่วนหัวของโปรแกรม มีจะลักษณะเดียวกับส่วนหัวของฟังก์ชัน โดยจะใส่ชื่อพารามิเตอร์หรือไม่ก็ได้ #include <stdio.h> void swapInt (int *, int * ); void Sort (int [], int ); void PrintArray (int [], int ); main() { int Age[] = {17, 18, 19, 16, 20}; int NumberOfPeople = 5; printf("Before sorting.. "); PrintArray(Age, NumberOfPeople); Sort(Age, NumberOfPeople); printf("After sorting.. "); } void Sort (int Data[], int NumberOfData) { int i,j; for (i=0; i< NumberOfData; i++) for (j=i+1; j< NumberOfData; j++) if (Data[j] < Data[i]) swapInt(&Data[i], &Data[j]); } void swapInt (int *a, int *b ) int temp; temp = *a; *a = *b; *b = temp; void PrintArray (int Data[],int NumberOfData) int i; printf("%3d", Data[i]); printf("\n");