Introduction to Visual Basic Programming Chapter 3 – Introduction to Visual Basic Programming.
Basic C-Programming - Short.pdf
Transcript of Basic C-Programming - Short.pdf
![Page 1: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/1.jpg)
Computer programming
By: tulawat chunwijitra
![Page 2: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/2.jpg)
OUTLINE
Basic C-Programming
Data Structure
stack, queue, linked list, tree, hash table
Recursion concept
Object Oriented Programming concept
Relational Database concept
![Page 3: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/3.jpg)
Basic C-Programming
by: tulawat chunwijitra
![Page 4: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/4.jpg)
outline
Introduction
Before we start coding .....
Software Development process
Flowchart and pseudocoding
Workshop 1: Grading program
First C-Programming
![Page 5: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/5.jpg)
Introduction
Time Table for today
Goal is “YOU CAN PROGRAM IN C”
What is your background in C-Programming?
Theme of learning ------> Get your hand dirty !!!!
![Page 6: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/6.jpg)
before we start coding
คอมพิวเตอรทำงานในระบบฐานสอง ซึ่งมนุษยเขาใจยาก
ออกแบบตัวอักษรภาษาอังกฤษแทนคำสั่งเลขฐานสอง เรียกวา Mnemonic
ภาษาคอมพิวเตอรที่ใช Mnemonic คือ ภาษา Assembly ซึ่งถูกจัดใหเปนภาษาระดับต่ำ
ตอมา Assembly ไดรับการพัฒนาใหใกลเคียงภาษามนุษย เรียกวาภาษาระดับสูง เชน C, Modulas-2, Pascal, Java, Fortran, Basic, etc.
ในการเขียนโปรแกรม ไมวาจะเขียนดวยภาษาระดับสูง หรือระดับต่ำ เราจะตองแปลใหเปนรหัสภาษาเครื่องที่คอมพิวเตอรเขาใจเสียกอน ตัวแปลภาษานี้ ถูกเรียกวา Compiler หรือ Interpreter
![Page 7: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/7.jpg)
compiler vs interpreter
Interpreter
แปลความหมายของคำสั่งทีละคำสั่ง (แปลไปทำไป) ถาไมพบขอผิดพลาด เครื่องจะทำคำสั่งที่แปลได แตถามีขอผิดพลาด เครื่องจะหยุดทำงานและแจงขอผิดพลาดออกมา
เชน ภาษาเบสิก
Compiler
แปลความหมายของ Source code ทั้งหมดกอน แลวจึง Run
โปรแกรมทำงานไดรวดเร็วกวา Interpreter เพราะไมตองไปเสียเวลานั่งแปลอีกตอน Run
![Page 8: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/8.jpg)
c-compiler
compiler
linker
Easy.C
Easy.EXE
Easy.OBJ
C Library
![Page 9: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/9.jpg)
software development process
1. กำหนดและวิเคราะหปญหา (Define Problem and Problem Analysis)
2. เขียนผังงาน และ ซูโดโคด (Pseudocoding)
3. เขียนโปรแกรม (Coding)
4. ทดสอบและแกไขโปรแกรม (Program Testing and Debugging)
5. ทำเอกสาร และบำรุงรักษาโปรแกรม (Program Documentation and Maintenance)
![Page 10: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/10.jpg)
pseudocode
เขียนโปรแกรมโดยใชภาษามนุษยทั่วไป
ใชถอยคำผสมระหวางภาษาอังกฤษ และภาษาโปรแกรม
คำเฉพาะ (Reserve Word) ที่อยูในภาษาโปรแกรม จะใชอักษรตัวใหญ
สั้น เขาใจงาย ไดใจความ
![Page 11: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/11.jpg)
example: calculate average
Algorithm Average_Sum
1. count = 0
2. sum = 0
3. INPUT (value)
4. IF value > 0 THEN
count = count + 1
sum = sum + value
GOTO 3
ELSE GOTO 5
5. average = sum / count
6. OUTPUT (average)
7. END
![Page 12: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/12.jpg)
flowchart
Flowchart คือ แผนภาพที่ใชออกแบบอธิบายการทำงานของโปรแกรม รวมทั้งทิศทางการไหลของขอมูล Flowchart มีสองแบบคือ System Flowchart และ Program Flowchart
การเขียนผังงานที่ดี
เขียนตามสัญลักษณที่กำหนด
ใชลูกศรแสดงทิศทางการทำงานจากบนลงลาง
อธิบายสั้น เขาใจงาย
ทุกแผนภาพตองมีทิศทางเขาออก
ไมควรโยงลูกศรไปที่ไกลมาก ๆ ถาตองทำ ใหใชสัญลักษณเชื่อมตอแทน
![Page 13: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/13.jpg)
สัญลักษณ์ใน flowchart
การเริ่มตนและการสิ้นสุดการทำงานของโปรแกรม
ลูกศรแสดงทิศทางการทำงานของโปรแกรมและการไหลของขอมูล
การประมวลผลการคำนวณตาง ๆ
การทำงานยอย
การรับหรือแสดงขอมูล โดยไมระบุชนิดของอุปกรณ
การตรวจสอบเงื่อนไข เพื่อเลือกทำอยางไดอยางหนึ่ง
แสดงผลลัพธหรือรายงานทางเครื่องพิมพ
จุดเชื่อมตอผังงาน
![Page 14: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/14.jpg)
example
เริ่มต้น
อ่านค่า A และ B
คํานวณ X=A+B
ทําทําต่อหรือไม่
แสดงผลรวม X
จบ
ไม่ทํา
![Page 15: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/15.jpg)
รูปแบบการจัด Flowchart
รูปแบบการจัด Flowchart ที่นิยมมี 5 รูปแบบ คือ
โครงสรางการทำงานแบบลำดับ (Sequence)
โครงสรางการทำงานแบบมีการเลือก (Selection)
ผังโปรแกรมทำซ้ำแบบเงื่อนไขเปนจริง
ผังโปรแกรมทำซ้ำแบบจนเงื่อนไขเปนจริง
ผังโปรแกรมแบบทำซ้ำตามจำนวนที่ระบุ
![Page 16: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/16.jpg)
โครงสร้างการทํางานแบบลําดับ (Sequence)
เริ่มตน
รับคาตัวแปร
ทำชุดคำสั่งที่ 1
จบ
แสดงผล
ทำชุดคำสั่งที่ 2
![Page 17: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/17.jpg)
โครงสร้างการทํางานแบบมีการเลือก (Selection)
การเลือกแบบหนึ่งเสนทาง
การเลือกแบบสองเสนทาง
Noชุดคำสั่ง
ตรวจสอบเงื่อนไข
จริงตรวจสอบเงื่อนไข
เท็จ
ชุดคำสั่งที่2ชุดคำสั่งที่1
![Page 18: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/18.jpg)
ผังโปรแกรมทําซ้ําแบบเงื่อนไขเป็นจริง
จะใชในงานที่มีการตรวจสอบเงื่อนไข ถาเปนจริงจะทำงานซ้ำ โดยจะตรวจสอบเงื่อนไขกอนทำงานทุกครั้ง
ตรวจสอบเงื่อนไขเท็จ
จริง
ออกจากทำซ้ำ
ชุดคำสั่งที่ตองทำงานซ้ำ
![Page 19: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/19.jpg)
ผังโปรแกรมทําซ้ําแบบจนเงื่อนไขเป็นจริง
จะใชในระบบที่ตองทำงานกอนตรวจสอบเงื่อนไข และทำงานซ้ำจนเงื่อนไขเปนจริง
ตรวจสอบเงื่อนไข
เท็จ
จริงออกจากทำซ้ำ
ชุดคำสั่งที่ตองทำงานซ้ำ
![Page 20: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/20.jpg)
ผังโปรแกรมแบบทําซ้ําตามจํานวนที่ระบุ
ใชในระบบที่ตองทำงานตามจำนวนรอบที่กำหนด โดยเริ่มจากรอบเริ่มตนไปยังรอบสุดทาย ตามปกติแลว คาการนับรอบจะเพ่ิมขึ้นครั้งละหนึ่งคา
FOR i=1 TO N
ชุดคำสั่งที่ตองการแกไข
![Page 21: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/21.jpg)
Workshop 1Grading Program
![Page 22: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/22.jpg)
Requirement
ผูใชปอนคะแนนดิบ โปรแกรมจะทำการตัดเกรดให วาอยูในชวงใด
80 - 100 ไดเกรด A
70 - 79 ไดเกรด B
60 - 69 ไดเกรด C
50 - 59 ไดเกรด D
ต่ำกวา 50 ไดเกรด F
![Page 23: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/23.jpg)
development process
Define problem : โปรแกรมสามารถตัดเกรดไดทีละคน (narrow down the problem)
Your task: Draw the Flowchart and write pseudocode
![Page 24: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/24.jpg)
!! BREAK !!
![Page 25: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/25.jpg)
Getting to know Cthe first C program
![Page 26: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/26.jpg)
โครงสร้างของ C-program
Preprocessor directives
Global Declarations
The main() function
User-defined function
Program comments
/*Programmed BY CHUNNY*/
# include "stdio.h"main(){ printf("Hello World !!\n");}
![Page 27: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/27.jpg)
Preprocessor directive
Denoted by the directive sign (#) followed by the name of a program or a variable
Sometimes called “Header Part”
For example
“# include” tells the compiler to read in other files when compile
2 ways of writing “include”
“# define” defines a variable
# include “stdio.h”# include “Pro1.c”
หมายความว่า อ่านไฟล์ stdio.h เข้ามาด้วยหมายความว่า อ่านไฟล์ Pro1.c เข้ามาด้วย
# include “.......”# include <.......>
Read from current directoryRead from other predefined location
# define END 20# define A 5*6+3
Define END to be 20Define A to be 5*6+3
![Page 28: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/28.jpg)
global declaration
Declare any variables or functions that will be used globally in the program
May be omitted
Will see this later on
![Page 29: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/29.jpg)
main() function
Every program must have one main() function
The program starts working from here
Contains commands, functions, instruction for the program to works
Here is how it looks like
main(){
instruction 1;instruction 2;.........
}
![Page 30: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/30.jpg)
user-defined functions
Functions that you write by yourself and will be used in the program
# include “stdio.h”main(){
.....function(); /*call the function*/.....
}
function(){
.... /*instruction for this function*/
....return ; /*Return the result of this function*/
}
![Page 31: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/31.jpg)
Program comments
Explain the program: Make it easy to understand the program; easier to develop
Will not be read by the compiler
Good comment = Good programming !!!!
Here is how you write it
Use indentation system and Be consistent !!
/*..........your comments go here..........*/
![Page 32: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/32.jpg)
A first C-program
Here is your first program;
“# include” is called directive “stdio.h” is called header file
Escaping sequence “\n” means new line
Header : อ่านไฟล์ stdio.h เข้ามาด้วยmain function
printf(“This is”);prinff(“a book”);
printf(“This is \n”);prinff(“a book”);
output
output
This is a book
This isa book
/*Programmed BY CHUNNY*/
# include "stdio.h"main(){ printf("Hello World !!\n");}
Comment : อธิบายโปรแกรม
![Page 33: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/33.jpg)
Variable
Think of a “variable” as a “Box” that contains data
Variable name cannot be longer than 63 characters.
Variable must match with your data Data Type (will be mentioned later on)
int stores integer ranges from -32,768 to 32,767
use “=” to assign a data to a variable
# include “stdio.h”int feet, inches;main(){
feet = 6;inches = feet * 12;printf(“Height in inches is %d”, inches);
}
Store integer
Control String
![Page 34: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/34.jpg)
How variables store data
Variable as a Box: You can put something in or take something out
Examples
More examples
#include “stdio.h”int x;main(){
x = 6;x = 8;printf(“X is %d”,x);
}
num1 = 5;num2 = 14;num1 = num2;printf(“%d”, num1);printf(“%d”, num2);
What is the output?What is the output?
count = count + 1;sum = sum + x;num = 3*num;
![Page 35: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/35.jpg)
Type of variable
คอมพจะใชหนวยความจำในการเก็บ โดย 8 bit = 1 byte เก็บไดในชวง 0-255
Type Range
char -128 ถึง 127
int −32768 ถึง 32767
long int -2,147,483,648 ถึง 2,147,483,647
float 3.4E +/- 38 (7 หลัก)
double 1.7E +/- 308 (15 หลัก)
![Page 36: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/36.jpg)
กฎการตั้งชื่อตัวแปร
คำสงวนใน ANSI Stand C มีดังนี้ : auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
อยาเอาตัวเลขนำหนา อยาใหมาตรงกับคำสงวน
อยาใหมีเครื่องหมายใดลอยนวล ไมสมควรมีชองวางใด ๆ เลย
![Page 37: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/37.jpg)
การประกาศตัวแปร
เปนการสรางตัวแปรขึ้นมาใชงาน เพื่อเก็บขอมูลตาง ๆ
รูปแบบการประกาศ คือ type variable_list; เชน
int data1, data2;
int data1;float data2;
int data1 = 5;float data2 = 2.653;
![Page 38: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/38.jpg)
การประกาศค่าคงที่การประกาศคาคงที่ (constant)
อยูในหนวยความจำ และมีคาคงที่ตลอดโปรแกรม
ประกาศคาคงที่โดย ประกาศเปน constant
ไมกำหนดคา เชน const int a;
กำหนดคา เชน const int count = 100;
ประกาศคาคงที่โดย #define
เปนคำสั่งสำหรับนิยามคา
ไมตองระบุประเภทของขอมูล
ไมตองมีเครื่องหมาย ; ตอทาย
ตัวอยาง #define PI 3.14 หรือ #define X (5+3)/2
ใชตัวใหญในการตั้งชื่อตัวแปรคาคงที่
![Page 39: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/39.jpg)
การเปลี่ยนประเภทของข้อมูล (Data Type Casting)
โดยปกติ Operator จะใชกับนิพจนประเภทเดียวกัน เชน เรานำ int บวกกับ int ได int
บางครั้ง เราจำเปนตอง นำ int บวกกับ float ซึ่งผลลัพธจะได float แตเราตองการผลลัพธเปน int เราจึงตองเปลี่ยนผลลัพธที่ได ใหเปน int โดยการ Casting
Example: ตองการเปลี่ยนคาที่ไดจาก a คูณ 2.5 ใหมีคาเปนจำนวนเต็ม
ใชรูปแบบคำสั่ง คือ (int)(a*2.5);
!!!! Be careful !!!!!
![Page 40: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/40.jpg)
Quiz: Right or wrong
int age;
double grade2;
char 1ch;
int name$;
int numofpizza;
long int a = 40;
char int;
char my salary;
double ratio_rate = 100;
short 123free;
![Page 41: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/41.jpg)
Basic input output function
printf(“ ”); scanf(“ ”); and other input functions
3 ways of using printf(“...”);
For example;
printf(“Your text goes here”);printf(“control String”, variable);printf(“ control Strings”, variable list,.....);
printf(“My name is Chunny”);printf(“I am %d years old”, myAge);printf(“%f = %d %s”,dollars, baht, currency);
![Page 42: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/42.jpg)
Escape sequence (รหัส backslash)
Code Meaning
\n New line
\t Tab (8 characters)
\xhh Display a character when hh is a hexadecimal
\a “Beep” sound
\\ Backslash sign
![Page 43: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/43.jpg)
Control String
Control String Meaning
%d Type a decimal number
%u Unsigned integer
%f Floating point
%e Type Real Number in the power form
%c Type a character
%s Type a string
%% Type a “%”
%o Type octal number
%x Type Hexadecimal number
![Page 44: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/44.jpg)
scanf()
Read the input from the keyboard as ASCII code
Using Control String to define the type of the variable and data
Don’t forget the “&” sign which means it points to an address in the memory
For examples;
For a string, don’t need the “&” sign
Problem !! Can’t read a string contains spaces (use gets() instead)
scanf(“control string”, &variable list, ......);
int num;scanf(“%d”, &num);
int i, j;scanf(“%o %x”, &i &j);printf(“%o %x” i, j);
char str[80];printf(“Enter a string : ”);scanf(“%s”, str);printf(“Here’s your string: %s”, str);
no “&”
![Page 45: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/45.jpg)
Other input/output functions
Function Syntax What it does
gets() gets(str) Read String input
fgets() fgets(str) Read String input (fixed length)
getch() getch(cha) Read character input (don’t have to press enter)
getchar() getchar(cha) Read character input (must press enter)
puts() puts(str) Output a string to a monitor
putchar() putchar(cha) Output a character to a monitor
![Page 46: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/46.jpg)
String Type
String คือการนำเอาอักขระ (char) มาเรียงตอ ๆ กัน โดยสามารถเก็บตัวอักขระได 255 ตัว
In the other words, A String is an array of characters
อยูในเครื่องหมาย “ ” ในการเขียนโปรแกรม และมีการเติมอักษรวาง NULL (\0) เปนตัวสุดทาย ทั้งนี้ เพื่อเปนการบอกวาถึงจุดสิ้นสุดของ String นั้นๆ แลว
เชน ตองการเก็บคำวา “COMPUTER” ไวใน String จะใชเนื้อที่ในการเก็บ 9 bytes
“C” “O” “M” “P” “U” “T” “E” “R” “\0”
![Page 47: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/47.jpg)
Workshop 2Creating c programs
![Page 48: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/48.jpg)
Operatorby: Tulawat Chunwijitra
![Page 49: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/49.jpg)
Operator
ตัวดำเนินการเลขคณิต (Arithmetic Operators)
ตัวดำเนินการเปรียบเทียบ (Relation Operators)
ตัวดำเนินการตรรก (Logical Operator)
ตัวดำเนินการแบบบิต (Bitwise Operators) (ไมเรียน)
ตัวดำเนินการลำดับการใหคา (Comma Operators)
![Page 50: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/50.jpg)
Arithmetic operator
ตัวดำเนินการ กระบวนการ ขอมูลที่ถูกกระทำ ขอมูลผลลัพธ
+ บวก จำนวนเต็ม, จำนวนจริง จำนวนเต็ม, จำนวนจริง
- ลบ จำนวนเต็ม, จำนวนจริง จำนวนเต็ม, จำนวนจริง
* คูณ จำนวนเต็ม, จำนวนจริง จำนวนเต็ม, จำนวนจริง
/ หาร จำนวนเต็ม, จำนวนจริง จำนวนจริง
% หารเอาเศษ จำนวนเต็ม จำนวนเต็ม
++ เพิ่มค่าขึ้น 1 จำนวนเต็ม จำนวนเต็ม
-- ลดค่าลง 1 จำนวนเต็ม จำนวนเต็ม
![Page 51: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/51.jpg)
Example
3 + 4 = 7
7.0 - 3.0 = 4.0
6 * 1.5 = 9.0
1.5 - 1 = 0.5
2.25 * 1.5 = 3.375
5.8 + 3 = 8.8
9/2 = 4.5
9 % 2 = 1
18 % 2 = 0
-14 % 3 = -2
14 % -3 = 2
18.2 / 2 = 9.1
NOTE:
• จำนวนจริง ไปกระทำกับเลขใด จะได้จำนวนจริง
• Real/Real = Real
• Real/Int = Real
• Int/Real หารไม่ได้
![Page 52: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/52.jpg)
Operator Precedence
ลำดับกอนหลังของ Operator แสดงในตารางดานลาง
Precedence Operator Note
1 ( ) ถ้าหากมีวงเล็บซ้อนกัน ทำวงเล็บในสุดก่อน
2 *, /, %ถ้าหากมีตัวดำเนินการลำดับขั้นเดียวกันในประโยค
ให้ทำจากซ้ายไปขวา
3 +, -ถ้าหากมีตัวดำเนินการลำดับขั้นเดียวกันในประโยค
ให้ทำจากซ้ายไปขวา
![Page 53: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/53.jpg)
Examples
จงหาผลลัพธ 12 % 5 * 3
ตอบ 6 เปนจำนวนเต็ม
จงหาผลลัพธ 6 * 5 / 10 * 2 + 10
ตอบ 16.0 เปนจำนวนจริง
จงหาผลลัพธ (6 * 5) / (10 * 2) + 10
ตอบ 11.5 เปนจำนวนจริง
จงหาผลลัพธ (6 * 5) / (10 * 2 + 10)
ตอบ 1.0 เปนจำนวนจริง
จงหาผลลัพธ (6 * 5) / (10 * (2 + 10))
ตอบ 0.25 เปนจำนวนจริง
![Page 54: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/54.jpg)
ตัวดําเนินการเปรียบเทียบ (Relation Operator)
นำขอมูลสองคามาเปรียบเทียบกัน
ผลที่ได คือ ขอมูลชนิดตรรกะ เชน จริง หรือ เท็จ เชน 6>2 ไดผลลัพธคือ จริง
Operator Process
== เท่ากับ
!= ไม่เท่ากับ
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
> มากกว่า
< น้อยกว่า
![Page 55: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/55.jpg)
Logical Operator
มีสามตัว คือ AND , OR และ NOT
Example: Is this true or false? (5 == 4+1)&&(18<=6*4)
Answer: True
Operator Process
&& ถ้าค่าทั้งสองเป็นจริง ผลลัพธ์จะเป็นจริง
|| ถ้าค่าทั้งสองเป็นเท็จ ผลลัพธ์จะเป็นเท็จ
! เปลี่ยนค่าจากจริงเป็นเท็จ จากเท็จเป็นจริง
![Page 56: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/56.jpg)
Precedence
Precedence Operator
1 !
2 > >= < <=
3 != ==
4 &&
5 ||
![Page 57: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/57.jpg)
Increment and Decrement Operator
การเพิ่มคา x ขึ้น ทีละ 1 ใชคำสั่ง x = x+1; หรือ x++;
การลดคา x ลง ทีละ 1 ใชคำสั่ง x = x-1; หรือ x--;
คำถาม ผลลัพธของสองชุดคำสั่งดานลาง คืออะไร เหมือนกันหรือไม
ตอบ ไมเหมือน เพราะทางซายเพิ่มคา x ขึ้น 1 กอนสงใหตัวแปร y ซึ่งจะได y = 11 สวนทางดานขวา สงคา x ใหตัวแปร y กอน จึงเพิ่มคา x ขึ้น 1 ดังนั้น x = 11 สวน y = 10
x = 10;y = ++x;
x = 10;y = x++;
![Page 58: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/58.jpg)
Compound Assignment
Operators บางตัว สามารถนำมารวมกันได เพื่อการเขียนที่สั้นลง เชน...
Operator Example Process*= total *= 1.25; total = total * 1.25;
/= ant /= factor; ant = ant / factor;
%= day %=3; day = day % 3;
+= count += 1; count = count + 1;
-+ adjust -= 0.5; adjust = adjust - 0.5;
<<= a <<= b a = a << b;
&= a &= b a = a & b;
|= a |= b a = a | b;
^= a ^= b a = a ^ b;
![Page 59: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/59.jpg)
Workshop 3
![Page 60: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/60.jpg)
flow controlBy: Tulawat Chunwijitra
![Page 61: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/61.jpg)
Outline
if , if-else , if-elseif-else
switch-case
for loop, while loop, do while loop
![Page 62: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/62.jpg)
IF
ในการเขียนโปรแกรม บางครั้ง จะตองการใหโปรแกรมมีทางเลือก เพื่อที่จะทำอยางใดอยางหนึ่ง เชน การถามวาคุณตองการออกจากโปรแกรมหรือไม -----> Quit (Y/N)
ในการเลือกทำ เราใชคำสั่งสองคำสั่ง คือ if และ if...else...
รูปแบบ
ถา เงื่อนไข (condition) เปนจริง จะทำคำสั่งที่ตามมา และถา condition เปนเท็จ จะขามชุดคำสั่งใน if ไป
เชน
if (condition){ statements;}
if (age >= 18){ printf(“of age \n”);}printf(“good luck”);
![Page 63: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/63.jpg)
If flow chart
ตรวจสอบเงื่อนไข
ชุดคําสั่ง
จริง
เท็จ
![Page 64: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/64.jpg)
Nested if...else...
if...else... สามารถซอน ๆ กันหลาย ๆ ชั้นได ดังรูป
if (condition1){ statements1;}else if (condition2){ statements2;}else if (condition3){ statements3;}else{ statements;}
![Page 65: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/65.jpg)
switch case
Switch - case ใชกับเงื่อนไขที่ตองตัดสินใจขึ้นกับตัวแปรตัวเดียว
เชน MENU
ผูใชเลือกวิธีคำนวณโดยการปอนคา input เขาไป โดยเรานำคา input ที่รับเขาไปเก็บไวในตัวแปรตัวหนึ่ง และใชคำสั่ง switch เลือกวามีคาเทากับขอใด
MENU1. คำนวณบวกเลข2. คำนวณคูณเลข3. คำนวณหารเลข4. คำนวณลบเลข
![Page 66: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/66.jpg)
syntax
switch (variable){
case constant_1 : statement; break;
case constant_2 : statement; break;
case constant_3 : statement; break;
case constant_4 : statement; break;
..................... .................case constant_n : statement;
break;default : statement;
}
ตัวแปรที่จะทดสอบ
ถ้าค่าของ variable ไม่ตรงกับ case ใดเลย ก็จะทํา statement หลัง default
ถ้าค่าของ variable ตรงกับ Case ใด ก็จะทํา statement
หลังค่าคงที่นั้น ๆ
![Page 67: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/67.jpg)
selector = const 1
selector = const 2
selector = const n
default
ชุดคำสั่ง 1
ชุดคำสั่ง n
ชุดคำสั่ง 2
จริง
จริง
จริง
![Page 68: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/68.jpg)
ข้อควรทราบ
คาคงที่หลัง case จะตองเปน int หรือ char เทานั้น
คำสั่ง switch ตางจากคำสั่ง if ตรงที่ switch สามารถทดสอบเงื่อนไขไดหลายอยาง แตคำสั่ง if จะตรวจสอบเฉพาะความสัมพันธ หรือ ลอจิกเทานั้น
คาคงที่ของ switch สามารถมีคาซ้ำกันได
ถาคาคงที่เปนตัวอักษร คำสั่ง switch จะมองเปนเลขจำนวนเต็ม
คา default จะมีหรือไมมีก็ได
![Page 69: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/69.jpg)
Example
switch (year){
case 1: printf(“Fresherman \n”); break;
case 2 : printf(“Sophormore \n”); break;
case 3 : printf(“Junior \n”); break;
case 4 : printf(“Senior \n”); break;
default : printf(“Nonmatriculated”);}
Selector
![Page 70: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/70.jpg)
for loop
เปนการใหโปรแกรมทำซ้ำ จนกวาคาตัวแปรจะครบ ตามที่ตั้งไว
โดยจำมีการกำหนดคาเริ่มตน (initialize) ใหกับตัวแปรตัวหนึ่ง และทำการเพิ่ม/ลดคาตัวแปรนั้นไปเรื่อย จนกวาเงื่อนไข (condition) จะไมเปนจริง จึงหยุดทำ
for (initialization ; condition ; increment){
statements;}
ค่าเริ่มต้น เงื่อนไข เพิ่ม/ลดค่า
![Page 71: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/71.jpg)
for loop
อาน “จาก counter=1 ถึง counter=10 ให print คาของ counter ออกทางหนาจอ”
โปรแกรมจะพิมพคา counter ตั้งแต 1 จนถึง 10 โดยมีการกำหนดคาเริ่มตนให counter ใหเปน 1 กอน แลวตรวจสอบวา counter นอยกวาหรือเทากับ 10 หรือไม ถาไม ใหทำ statement แลวเพิ่มคา counter
for (counter=1 ; counter<=10 ; counter++){
printf(“%d\n”,counter);}
![Page 72: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/72.jpg)
flowchart
counter = 1
printf(“%d”,counter);counter<=10 จริง
เท็จ
คำสั่่งตอไป
counter++
![Page 73: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/73.jpg)
while loop
ประโยคคำสั่ง while loop เปนการสั่งใหคอมพิวเตอรทำงานซ้ำ โดยจะ ตรวจสอบเงื่อนไขกอน
ถาเงื่อนไขเปนจริงจะทำซ้ำ และจะวนรอบจนกวาเงื่อนไขจะเปนเท็จ
ตางจาก for loop ตรงที่จำนวนที่ทำซ้ำจะไมแนนอน ขึ้นอยูกับเงื่อนไข
while (condition){
statements;}
![Page 74: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/74.jpg)
Flow chart
ชุดคําสั่ง
ตรวจสอบเงื่อนไข
จริง
เท็จ
while
ออกจาก loop
![Page 75: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/75.jpg)
Examples
Output
int n = 7;while(n>=0){
printf(“%d\n”,n);n = n-5;printf(“Hi %d\n”,n);
}
7Hi 22Hi -3
![Page 76: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/76.jpg)
ArrayBy: Tulawat Chunwijitra
![Page 77: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/77.jpg)
Outline
รูจักกับขอมูลชนิด array
ตัวแปร array 1 มิติ
ตัวแปร array 2 มิติ
ขอมูลชนิด string
![Page 78: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/78.jpg)
array
array คือตัวแปรประเภทหนึ่งที่ใชชื่อตัวแปรชื่อเดียว แตสามารถเก็บขอมูลเปนกลุมได
มีทั้งแบบ 1 มิติ (1 D array) และ หลายมิติ
เมื่อเราประกาศตัวแปรเปน array มันจะจองเนื้อที่ในหนวยความจำไวใหเรา ตามขนาดที่เราระบุ โดยจะแบงเปนชอง ๆ
ขอมูลแตละตัวใน array หนึ่ง ๆ เราเรียกวา Element
การอางถึงขอมูลใน array เราจะใช index โดย index จะมีคาเริ่มตนจาก 0
![Page 79: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/79.jpg)
Example
ตองการ array มาเก็บขอมูลคะแนนของนนร. 10 คน
ขอมูลคะแนน -> int
ขนาด = 10
int x[10];
x[2] = 35 , x[1+4] = x[5] = 21
x[2]+x[3] = 35+84 = 119
x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] x[9]
18 20 35 84 81 21 45 65 71 39
index
![Page 80: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/80.jpg)
array 1 มิติ
เก็บขอมูลตอเนื่องกันไปเปนแถว
syntax
ตัวอยาง
int salary[20];
Computer จะกันหนวยความจำไวให 20 ชอง
การอางถึงขอมูลที่เก็บไวใน array ใช index เชน salary[5]
type variable_name[size];
![Page 81: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/81.jpg)
ขอควรจำ !!!
ขอมูลใน array ทุก element
จะตองเปนขอมูลประเภทเดียวกัน
![Page 82: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/82.jpg)
Example
Question : ชุดคำสั่งตอไปนี้ ทำอะไร ?
Answer : ใสขอมูล 0 ถึง 4 เขาไปในตัวแปร array
int i[5];int j;for(j=0 ; j<5 ; j++){
i[j] = j;}
![Page 83: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/83.jpg)
array (cont.)
คำสั่ง scanf () สามารถใชรวมกับ array ได เชน
scanf(“%d”,&count[9])
รับคาจาก keyboard แลวไปเก็บไวในชองที่ 10 (index = 9)
เราสามารถกำหนดคาเร่ิมตนใหกับตัวแปร array ได โดยใช syntax ตอไปนี้
เชน
int A[5] = {1, 4, 9, 16, 25};
char a[3] = {‘A’, ‘B’, ‘C’};
type array-name[size] = {value-list}
![Page 84: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/84.jpg)
More about String
String คือ ชุดของตัวอักษรที่นำมาตอเรียงกัน
ดังนั้น String ก็เปน array ชนิดหนึ่ง
อักขระที่บงบอกวาถึงจุดสิ้นสุดของ string นั้น ๆ คือ “\0”
Example: char name[8];
เก็บขอความได 7 อักขระ
ตัวสุดทาย เก็บ “\0”
Example: char str[8] = “BAT”;
str[0] = ‘B’ , str[1] = ‘A’ , str[2] = ‘T’ , str[3] = ‘\0’
![Page 85: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/85.jpg)
scanf() VS gets()
ลองรัน code ตัวอยางตอไปนี้ แลวสังเกตุดูความแตกตาง
ปญหาของ scanf () ในการรับคา คือ มันไมสามารถรับคา string ที่มีการเวนวรรคได
วิธีแก gets() ใชสำหรับรับคา string จาก keyboard
#include "stdio.h"main(){ char str[80]; printf("Enter a string : "); gets(str); printf("%s",str);}
#include "stdio.h"main(){ char str[80]; printf("Enter a string : "); scanf("%s",str); printf("%s",str);}
![Page 86: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/86.jpg)
Some useful string functions
strlen(str) ใชหาความยาวของ string
strlwr(str) ใชเปลี่ยน string ใหเปนตัวพิมพเล็ก
strupr(str) ใชเปลียน string ใหเปนตัวพิมพใหญ
strrev(str) ใชกลับตัวอักษรใน string จากซายไปขวา
strcpy(str2,str1) คัดลอก string str1 ไปใหตัวแปร str2
strncpy(str2,str1,n) คัดลอก str1 ไป str2 เปนจำนวน n ตัว
strcat(str2,str1) เชื่อมตอ str1 กับ str2
strcmp(str2,str1) เปรียบเทียบตัวแปร str1 กับ str2 วาเทากันหรือไม
![Page 87: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/87.jpg)
FunctionBy : Tulawat Chunwijitra
![Page 88: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/88.jpg)
Function• Function คือกลุมคำสั่งที่ถูกสรางขึ้นมาเพื่อใหทำงานอยางใดอยาง
หนึ่ง
Function
User-Defined Function
Standard Function
ไม่ส่งค่ากลับส่งค่ากลับไม่ส่งค่ากลับส่งค่ากลับ
![Page 89: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/89.jpg)
ประเภทของ function• function ในภาษา c ถูกแบงออกเปน 2 ประเภท (ตามที่มา)
• ฟงกช่ันมาตรฐาน (Standard Function)
• มีอยูแลว และเก็บไวใน library
• เชน clrscr(); , puts() และอื่น ๆ
• ฟงกชั่นที่ผูเขียนโปรแกรมสรางขึ้น (User-defined
Function)
• เปนฟงกช่ันยอยที่ผูใชสรางขึ้นมาไวใชเอง เพื่อทำงานใดงาน
หนึ่ง
• สามารถเรียกใชไดตามตองการ
![Page 90: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/90.jpg)
Benefit• เรียกใชไดหลายครั้งตามตองการ (Reusable)
• ทำใหโปรแกรมดูงาย และมีระเบียบมากขึ้น
• สะดวกตอการพัฒนาโปรแกรม (สามารถแยกสวนของโปรแกรมไป
ชวยกันพัฒนาได)
#include "stdio.h"void main(){ ..... computeAverage(); ..... computeAverage(); .....}
void computeAverage(){ //code for computing your average //goes here.}
call
![Page 91: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/91.jpg)
การสรางฟงกชั่น
ประเภทของข้อมูล ชื่อฟังก์ช่ัน (พารามิเตอร์){ statements; statements; ....... [return];}
![Page 92: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/92.jpg)
การสรางฟงกชั้น (ตอ)• ประเภทของขอมูล หมายถึงประเภทของขอมูลที่สงคากลับ จะมี
หรือไมมีก็ได
• void หมายถึง ฟงกชันนั้นๆ ไมสงคากลับ
• ชื่อฟงกชัน ชื่อของฟงกชันที่สรางขึ้น สามารถเรียกใชงานผานชื่อนี้
ได
• พารามิเตอร์ เปนตัวแปรที่ถูกสงผานเขามา เพื่อประมวลผลใน
ฟงกชันนั้น ๆ จะมีหรือไมมีก็ได
• return ใชในการสงคากลับ จะมีหรือไมมีก็ได สำหรับกรณีที่มีการ
สงคากลับ จะตองเขียนคาที่สงกลับตามหลัง return
![Page 93: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/93.jpg)
More Example
void show_A(){ int i; for (i=1; i<20; i++) printf("A");}
void show_A(int num){ int i; for (i=1; i<num; i++) printf("A");}
int add_AB(int A,int B){ int x; x = A+B; return x;}
#include "stdio.h"void main(){ int salary=10000, partTime=40000, totalIncome; show_A(); show_A(50); totalIncome = add_AB(salary,partTime);}
![Page 94: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/94.jpg)
Example• An overall view of a program with one user-defined
function (return a value as an integer)
#include "stdio.h"int add(int a,int b){ int c; c = a + b; return c;}main(){ clrscr(); printf(" 3 + 5 = %d\n",add(3,5)); getch(); return 0;}
![Page 95: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/95.jpg)
ขอสังเกต• User-Defined Functions มากอน แลวจึงตามดวย main()
เปนตัวสุดทาย
• มี void ไมมี return มี return ไมมี void
• main() ก็เปนฟงกช่ัน ฟงกชั่นหนึ่งเหมือนกัน และทุก ๆ
โปรแกรมตองมี
• โปรแกรมเริ่มทำงานจาก main()
• ฟงกชั่นอื่น ๆ จะถูกเรียกใชจาก ฟงกชั่น main()
• ขอสังเกตุเพิ่มเติม ??
![Page 96: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/96.jpg)
Prototypes• โดยปกติ เราวาง User-defined function ไวกอน แลวปดทาย
โปรแกรมดวย main()
• ถาเราตองการเรียกใช function ที่อยูหลัง main() เราตอง
ประกาศชื่อฟงกชั่น นั้น ๆ ไวที่สวนหัวของโปรแกรมกอน
• โดยจะประกาศวา
• ฟงกชั่นนี้ชื่ออะไร
• มีพารามิเตอรใดบาง
• คืนคาอะไรกลับมา
• วิธีนี้ เราเรียกวา Prototypes
![Page 97: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/97.jpg)
Example• Prototype: ประกาศ volumn () ไวกอน โดยบอกชื่อ,
พารามิเตอร และคาที่คืนกลับมา
#include "stdio.h"double volumn(double s1,double s2,double s3);
main(){ double vol; vol = volumn(12.2,5.67,9.03); printf("Volumn : %f",vol); getch(); return 0;}double volumn (double s1,double s2,double s3){ return s1*s2*s3;}
![Page 98: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/98.jpg)
Global vs Local Variable
• ในการเขียนโปรแกรม เราสามารถประกาศตัวแปรใน function ที่
เราเขียนขึ้น
• เราไมสามารถนำตัวแปรที่ถูกประกาศในฟงกชั่นใดฟงกชั่นหนึ่ง ไป
ใชนอกฟงกชั่นนั้น ๆ
• ตัวแปรแบบนี้เรียกวา local variable
• วิธีแก : เราตองประกาศตัวแปรในลักษณะของ global variable
![Page 99: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/99.jpg)
Global Variables• ตัวแปรที่ประกาศไวนอกฟงกชั่น
• ทุกสวนของโปรแกรมสามารถเรียกใชได
• คาของมันจะถูกเปลี่ยนแปลงไปเรื่อย ๆ ตามที่ฟงกชั่นนั้น ๆ เรียก
ข้อควรระวัง
Data Synchronization อย่าลืมว่าทุกส่วนของโปรแกรมสามารถเปลี่ยนแปลงค่าของ global variable ได้ ดังนั้น ต้อง keep track ให้ดี ๆ ว่า ตัวแปรนั้นเก็บค่าอะไรอยู่กันแน่
![Page 100: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/100.jpg)
Local variable
• ประกาศในฟงกชั่นหนึ่ง ๆ
• สามารถเรียกใชไดแคในฟงกชั่นนั้น ๆ ฟงกชั่นอื่นจะไมรูจักตัวแปร
นี้
• ฟงกชั่นอื่นสามารถประกาศตัวแปรชื่อซ้ำกับตัวแปรนี้ได
• ชื่อตัวแปรชื่อเดียวกัน แตประกาศในคนละฟงกชั่น ถือวาเปน
ตัวแปรคนละตัวกัน
• เมื่อฟงกชั่นนั้นทำงานจบ คาของตัวแปรชนิดนี้จะหายไป
![Page 101: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/101.jpg)
Example• ตัวแปร a ถูกประกาศแบบ global
#include "stdio.h"int a;void Ex(){ a = 5; printf("%d\n",a);}main(){ a = 3; printf("%d\n",a); Ex(); printf("%d\n",a); getch(); return 0;}
![Page 102: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/102.jpg)
Example
#include "stdio.h"int a;void Ex(){ int a; a = 5; printf("%d\n",a);}main(){ clrscr(); a = 3; printf("%d\n",a); Ex(); printf("%d\n",a); getch(); return 0;}
ผลการรันโปรแกรม
353
• ชื่อของ global variable และ local variable อาจซ้ำกันได
![Page 103: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/103.jpg)
Basic standard function math.hsqrt(x) หาค่ารากที่สองของจํานวนเต็ม x
exp(x) หาค่า Exponential (ex)
log(x) หาค่า log ฐาน e
log10(x) หาค่า log ฐาน 10 ของ x
fabs(x) หาค่าสัมบูรณ์ของ x
ceil(x) ใช้หาค่าปัดเศษทศนิยมของ x
floor(x) ใช้หาค่าตัดเศษทศนิยมของ x ทิ้งไป
pow(x,y) ใช้หาค่า x ยกกําลัง y
sin(x) ใช้หาค่า sin ของ x
cos(x) ใช้หาค่า cos ของ x
tan(x) ใช้หาค่า tan ของ x
![Page 104: Basic C-Programming - Short.pdf](https://reader038.fdocuments.net/reader038/viewer/2022102907/55cf9131550346f57b8b638e/html5/thumbnails/104.jpg)
? Question ?