ครั้งที่ 9 Function(ต่อ).

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Advertisements

โครงสร้างโปรแกรมภาษา C
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ตัวแปรประเภทตัวชี้ (Pointer)
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
Introduction to C Programming
BC322 ครั้งที่ 6 Text file BC322 : computer Programming (Week6)
คำสั่ง while และ คำสั่ง do..while
ครั้งที่ 8 Function.
BC322 ครั้งที่ 13 Array 2 มิติ BC322 Computer Programming-Array Processing.
Control Statement if..else switch..case for while do-while.
การรับค่าและแสดงผล.
Control Statement for while do-while.
Structure Programming
LAB # 3 Computer Programming 1
Week 6 ประกาศค่าตัวแปร.
การแสดงผล และการรับข้อมูล
รับและแสดงผลข้อมูล.
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
บทที่ 12 Structure and union Kairoek choeychuen
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 9 Structure.
C Programming Lecture no. 6: Function.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 11 การเขียนโปรแกรมภาษาซี
หน่วยที่ 14 การเขียนโปรแกรมย่อย
อาร์เรย์และข้อความสตริง
Flow Control.
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
การเขียนโปรแกรมภาษาซี
Chapter 4 คำสั่งควบคุมทิศทาง
ตัวแปรกับชนิดของข้อมูล
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ฟังก์ชันรับข้อมูล ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
ตัวแปรกับชนิดของข้อมูล
โจทย์วิเคราะห์ปัญหาที่ 1
Week 2 Variables.
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
การประมวลผลสายอักขระ
Computer Programming for Engineers
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
คำสั่งเงื่อนไข (Condition Statement)
บทที่ 3 Class and Object (2).
โครงสร้างภาษาซี #include <stdio.h> void main() {
คำสั่งเกี่ยวกับการรับ และแสดงผล
Output of C.
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
บทที่ 9 พอยเตอร์. สื่อชุดนี้เป็นลิขสิทธิ์ของสำนักพิมพ์วังอักษรใช้เพื่อ การศึกษาเท่านั้น พอยเตอร์ (Pointer) พอยเตอร์คือต้นฉบับของชนิดข้อมูล เป็นชนิด ข้อมูลที่สร้างจากข้อมูลมาตรฐานชนิดหนึ่ง.
บทที่ 7 เงื่อนไขในภาษาซี
บทที่ 5 Function. Function Function เป็นการแบ่งโค้ดโปรแกรมออกเป็นส่วนย่อยๆ เพื่อทำงานบางอย่าง - โค้ดโปรแกรมเรียงต่อกันยาว - สามารถเรียกใช้ Function ซ้ำได้
การเขียนโปรแกรม (ภาษาซี)
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
การเขียนโปรแกรม (ภาษาซี)
บทที่ 5 โปรแกรมย่อย.
การสร้าง function ( โปรแกรมย่อย ) function output = FunctionName (input1, input2, …) การทำงานภายในฟังก์ชัน Editor วิธีเขียน - ต้องขึ้นต้นด้วยคำว่า function.
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
ใบสำเนางานนำเสนอ:

ครั้งที่ 9 Function(ต่อ)

Pointer พอยเตอร์ คือ ตัวชี้ หน้าที่หลักคือ การชี้ ดังนั้น ค่าที่พอยเตอร์เก็บอยู่ ไม่ใช่ค่าข้อมูลที่แท้จริง หากแต่เป็นค่า แอดเดรส ของตัวแปรอื่น ค่าที่ตัวแปรพอยเตอร์เก็บอยู่ คือ ค่าแอดเดรสของตัวแปรอื่น ค่าที่ตัวแปรพอยเตอร์ได้มาจากการชี้ไปยังแอดเดรสใด ๆ คือ ค่าข้อมูลที่แท้จริงของตัวแปรพอยเตอร์

การประกาศตัวแปร pointer เช่น int *p; คือ ประกาศตัวแปร p เป็นตัวแปร pointer มีชนิดข้อมูลเป็นแบบจำนวนเต็ม char *p; คือ ประกาศตัวแปร p เป็นตัวแปร pointer มีชนิดข้อมูลเป็นแบบตัวอักษร

การกำหนดค่าเริ่มต้นให้กับตัวแปรพอยเตอร์ สามารถทำได้ 2 วิธี 1. ทำพร้อมกับการประกาศตัวแปรพอยเตอร์ เช่น int a; int *p=&a; 2. ทำหลังจากการประกาศตัวแปรพอยเตอร์ เช่น int a; int *p; p=&a;

สัญลักษณ์ในการทำงานพอยเตอร์ สัญลักษณ์ & หมายถึง การกำหนดค่าเริ่มต้นให้กับตัวแปรพอยเตอร์ ว่าต้องการให้พอยเตอร์ชี้ไปที่ตำแหน่งใด สัญลักษณ์ * หมายถึง ค่าข้อมูลที่แท้จริงที่ได้มาจากการที่ตัวแปรพอยเตอร์ทำการชี้ไปยังแอดเดรสของตัวแปรใดๆ

Ex1 int a; int *p = &a, *q = &a; ประกาศ a เป็นแบบจำนวนเต็ม และประกาศค่าเริ่มต้นให้กับ p และ q โดยเริ่มต้นให้ชี้ไปที่ แอดเดรสของตัวแปร a

Ex2 int a; int *p = &a, *q = &a; a = 2; ประกาศ a เป็นแบบจำนวนเต็ม มีค่าเป็น 2 ดังนั้นขณะนี้ *p = 2 และ *q = 2 ด้วย คือ a = *p = *q = 2 เนื่องจากทั้ง p และ q ชี้อ้างอิงตัวแปร a อยู่ ดังนั้น a มีค่าเป็นอะไร ค่าของ *p และ *q ก็ต้องเป็นเช่นนั้นด้วย

Ex3 int a; int *p = &a, *q = &a; a = 2; a = a+3; การทำ a = a+3; มีความหมายเหมือนกับการทำ *p=*p+3; และ *q = *q +3 ด้วย ดังนั้น a=*p=*q=5 นั่นเอง

Ex4 โปรแกรมแสดงการทำงานของตัวแปร พอยเตอร์ 1 ตัว #include <stdio.h> #include <conio.h> void main() { int a=2, b=3; int *p=&a; printf(“Pointer variable p points to variable a at address %p\n”,p); printf(“Value of a is &d, so that value of p is %d too\n”, a, *p); getch(); }

ผลรันของโปรแกรม Pointer variable p points to variable a at address FFF4 Value of a is 2, so that value of p is 2 too

Ex5 #include <stdio.h> void set_to_zero (int *x, int *y) { } void main() { int a,b; a=2; b=3; printf(“%d %d \n”,a,b); set_to_zero(&a,&b); Output

Ex6 จงเขียนฟังก์ชัน swap สลับค่าตัวเลข 2 ค่า #include <stdio.h> #include <conio.h> void swap (int *a, int *b); void main() { int x,y; printf(“Enter 2 number “); scanf(“%d %d”,......................); ..................................... //เรียกใช้ฟังก์ชัน printf("After swap\n"); printf("x=%d,y=%d\n",x,y); } ...............swap (.........................................) int temp; .................................................... Output Enter 2 number 30 5 After swap x = 5, y = 30

ตะลุยโจทย์ฟังก์ชัน(ต่อ)

Ex7 จงเขียนโปรแกรมเพื่อรับค่าเงินบาท แล้วคิดคำนวณเงินสกุลต่าง ๆ โดยเลือกเมนูในโปรแกรมหลัก(main) และเรียกฟังก์ชัน Rate ใช้งานโดยส่งค่าเงินบาทและเมนูไปแล้วส่งค่ากลับมาแสดงผลลัพธ์ในโปรแกรมหลัก กำหนดให้เลือกเมนูเพื่อคิดอัตราแลกเปลี่ยนของเงินแต่ละสกุลเป็นดังนี้ 34.57 บาท/1 ดอลล่าร์ 46.82 บาท/1 ยูโร 0.29 บาท/1 เยน

Input How much money do you have ? (Baht) : 5400 Select Menu (1 for Dollar, 2 for Euro, 3 for Yen) : 1 Output 5400 Baht = 156.20 Dollar How much money do you have ? (Baht) : 5400 Select Menu (1 for Dollar, 2 for Euro, 3 for Yen) : 2 5400 Baht = 115.34 Euro Select Menu (1 for Dollar, 2 for Euro, 3 for Yen) : 3 5400 Baht = 18620.69 Yen

Ex8 จงเขียนโปรแกรมเพื่อคำนวณหาเงินได้สุทธิของพนักงาน 10 คน โดยในโปรแกรมหลักจะต้องมีโปรแกรมย่อย ดังนี้ - โปรแกรมย่อยสำหรับรับชื่อพนักงานและเงินเดือน (INPUTDATA) - โปรแกรมย่อยสำหรับคำนวณเงินโบนัสพนักงาน(CALCULATE) โดยมีเงื่อนไขดังนี้ พนักงานที่มีเงินเดือน 0-10,000 บาท ได้โบนัส 5% พนักงานที่มีเงินเดือน 10,001-50,000 บาท ได้โบนัส 10% พนักงานที่มีเงินเดือน มากกกว่า 50,000 บาท ได้โบนัส 15% - โปรแกรมย่อยสำหรับการแสดงผล (DISPLAY) โดยแสดงเงินได้สุทธิที่เกิดจากเงินเดือน+โบนัส

Input Output Name : Raweewan Salary : 35000 You get 38500 baht Name : Bootsara Salary : 10000 You get 10500 baht

Ex9 จงเขียนโปรแกรมเพื่อวนรับคะแนนสอบกลางภาค (score) ของนักศึกษาจำนวนจำนวน 40 คน แล้วคำคำนวณคะแนนเฉลี่ย (avg) คะแนนสูงสุด (max) และคะแนนต่ำสุด (min) กำหนดให้ main เรียกใช้ฟังก์ชันต่าง ๆ ดังนี้ - Get_Data() - Average() - Maximum() - Minimun()

Input Student 1 : 18.21 Student 2 : 24.50 ……………….. ………………. ……………… Student 40 : 25.12 *************************************************** Output Average Score = 19.54 Max Score = 38.25 Min Score = 16.20

Ex10 จงเขียนโปรแกรมเพื่ออ่านข้อมูลลำดับที่นักศึกษา (No) และจำนวนหน่วยกิต (Credit) จากไฟล์ชื่อ in.txt แล้วคำนวณค่าลงทะเบียนเรียนของนักศึกษาแต่ละคน กำหนดให้มีเงื่อนไขของการคำนวณค่าลงทะเบียนดังนี้ ลงทะเบียนไม่ถึง 9 หน่วยกิต คิดหน่วยกิตละ 1500 บาท ลงทะเบียน 9-15 หน่วยกิต คิดหน่วยกิตละ 1400 บาท ลงทะเบียนมากกว่า 15 หน่วยกิต คิดหน่วยกิตละ 1200 บาท กำหนดให้โปรแกรมดังกล่าวมีโปรแกรมย่อยต่าง ๆ ดังนี้ Calculate() เป็นโปรแกรมย่อยคำนวณค่าลงทะเบียน Output() เป็นโปรแกรมย่อยแสดงผลลัพธ์

ตัวอย่างข้อมูลในไฟล์ ตัวอย่างหน้าจอ No : 1 Credit : 15 Fee : 21000 =========================== No : 2 Credit : 6 Fee : 9000 =========================== …………………………………… …………………………………… ตัวอย่างข้อมูลในไฟล์ 15 6 18 20 12