C language - Development of Website Design of Kanokwan

Download Report

Transcript C language - Development of Website Design of Kanokwan

หลักการเบือ้ งต้ นของภาษาซี
1
๏
ซอฟต์ แวร์ แปลภาษาคอมพิวเตอร์ (Translator)
ตัวแปลภาษาคอมพิวเตอร์ ในปั จจุบนั แบ่งตามลักษณะการแปล
ทาการแปลโปรแกรมต้ นฉบับ หรื อ ซอร์ สโคด (source code)
ไปเป็ นออบเจคโคด (object code) ซึง่ จะประกอบด้ วยรหัสคาสัง่ ที่
คอมพิวเตอร์ สามารถเข้ าใจและนาไปปฏิบตั ิได้ ตอ่ ไป
1. แอสแซมเบลอ (Assembler)
2. อินเทอพรี เตอร์ (Interpreter)
3. คอมไพเลอร์ (Compiler)
แอสแซมเบลอ (Assembler)
 แอสเซมเบลอ (Assembler) เป็ นตัวแปลภาษา
แอสแซมบลีซ่ ึงเป็ นภาษาระดับต่าให้เป็ นภาษาเครื่ อง
อินเตอร์ พรีเตอร์ (Interpreter)
-
แปลทีละบรรทัดตลอดโปรแกรม
เมื่อพบข้ อผิดพลาดจะแจ้ งให้ ทราบและรอการแก้ ไข
ง่ ายต่ อการแก้ ไข แต่ จะใช้ เวลาค่ อนข้ างมาก
ภาษาที่ใช้ อินเตอร์ ปรี เตอร์ คือ ภาษาเบสิก
คอมไพเลอร์ (Compiler)
- แปลโปรแกรมให้ เป็ นภาษาเครื่องทัง้ โปรแกรมในครัง้ เดียว
- เมื่อพบข้ อผิดพลาดจะแจ้ งให้ ทราบและแก้ ไขในครัง้ เดียว
- ใช้ เวลาสะดวกและรวดเร็ ว
- ภาษาที่ใช้ คอมไพเลอร์ คือ ภาษาซี, ฟอร์ แทรน,
ปาสคาล, โคบอล
องค์ประกอบภำษำซี
Elements of C language
สิ่ งทีก่ ่ อให้ เกิดเป็ นคำสั่ งและระเบียบกำรใช้ คำสั่ ง







เซตของตัวอักษร (Character set)
ค่ ำคงที่ (Constants)
คำหลัก (Keywords)
ตัวแปร (Variables)
ตัวดำเนินกำร (Operators)
นิพจน์ (Expression)
คำสั่ ง (Statements)
6
เซตของตัวอักขระ
Lowercase letters
a b c d . . . x y z
Uppercase letters
A B C D . . .X Y Z
Digits
0 1 2 3 . . .7 8 9
Other characters
+ - * / \ = ( ) [ ]
{ } < > ! ; : ? ‘ “
# , $ % ^ & _ | ~ .
7
รหัสควบคุม(Escape sequences)
รหัสควบคุม
\a
\b
\f
\n
\t
\v
\r
\0
\’
\”
\\
\ddd
\xxx
ควำมหมำย
Alert (bell)
Backspace เลื่อนถอยหลัง 1 ตัวและลบตัวอักษรไปด้ วย
Form feed
New line ขึน้ บรรทัดใหม่
เลื่อน Tab ในแนวนอน
เลื่อน Tab ในแนวตัง้
ให้ ตัวชีก้ ลับไปอยู่ต้นบรรทัด
Null character
Single quotation mark
Double quotation mark
Backslash
ASCII character in octal notation
ASCII character in hexadecimal notation
8
รหัสรู ปแบบ
รหัสรู ปแบบ
%d
%f
%c
%s
%0
%x
%u
%p
%lu
รู ปแบบที่กำหนด
จานวนเต็ม
ทศนิยม
ตัวอักษร 1 ตัวอักษร
ตัวแปรชุดหรื อข้ อความที่เป็ นสตริง
เลขฐานแปด
เลขฐานสิบหก
เลขจานวนเต็มที่ไม่ มีเครื่ องหมาย
ค่ าของพอยน์ เตอร์
พิมพ์ เลข long int
9
ค่ ำคงที่
 เลขจานวนเต็ม
(Integer constants)
 เลขมีจด
ุ ทศนิยม (Floating-point constants)
 อักขระ
(Character constants)
 สายอักขระ
(String constants)
10
ค่ ำคงที่เลขจำนวนเต็ม

รู ปแบบ
1. Digits (เลขฐำนสิ บ)
2. 0octaldigits (เลขฐำนแปด ใช้ เลขศูนย์ นำหน้ ำ)
3. 0Xhexadecimaldigits (เลขฐำนสิ บหก ใช้ เลขศูนย์ กบั เอ็กซ์ )
0xhexadecimaldigits

ตัวอย่ ำง
ค่ ำคงที่ในรู ปฐำน 10
10
32719
ฐำน 8
012
077717
ฐำน 16
0xa หรือ 0XA
0x7fcf หรือ 0X7FCF
11
ค่าคงที่อกั ขระ

รู ปแบบ
‘อักขระ’
‘รหัสควบคุม’
ตัวอย่าง
ค่าคงที่ภาษา C
ค่าอักขระ
‘a’
‘\a’
a
การส่ งเสี ยงบี๊บ(alert)
‘\\’
‘\x1b’
\ (backslash)
Esc
12
คำสงวน

คาที่ตัวแปลภาษากาหนดหน้ าที่และความหมายเฉพาะ
auto
continue
enum
if
short
switch
volatile
break
default
extern
int
signed
typedef
while
case
do
float
long
sizeof
union
char
double
for
register
static
unsigned
const
else
goto
return
struct
void
13
กฎกำรตั้งชื่อ
ต้องไม่เหมือนคียเ์ วิร์ดหรื อคาสงวน
 ชื่ อมีความยาวไม่จากัด แต่คอมไพเลอร์ จะรู ้ความแตกต่างแค่
32 ตัวอักษรแรก
 ชื่ อจะต้องเริ่ มต้นด้วยตัวอักษร A-Z หรื อ a-z
 ไม่มีการเว้นช่องว่าง
 ตัวอักษรพิมพ์เล็กพิมพ์ใหญ่จะมีความแตกต่างกัน

14
ชนิดตัวแปร
ชนิดข้ อมูล
ช่ วงค่ ำ
char
Character ตัวอักขระ
0 ถึง 255
Int
Integer เลขจานวนเต็ม
-32768 ถึง 32767
short int
Short interger เลขจานวนเต็มแบบ
สัน้
Long int เลขจานวนเต็มอย่ างยาว
-128 ถึง 127
long int
-4294967296 ถึง
4294967296
unsigned int
Unsigned int เลขจานวนเต็มแบบไม่ 0 ถึง 65535
คิดเครื่องหมาย
float
Floating point เลขทศนิยม
ทศนิยม 6 หลัก
double
เลขจานวนจริงที่มีความแม่ นยา 2 เท่ า
ทศนิยม 12 หลัก
15
ตัวดำเนินกำร (Operators)





ตัวดำเนินกำรเชิงคำนวณ (Arithmetic operators)
ตัวดำเนินกำรเพือ่ กำหนดค่ ำ(Assignment operators)
ตัวดำเนินกำรเปรียบเทียบ (Relational operators)
ตัวดำเนินกำรตรรกะ (Logical operators)
ตัวดำเนินกำรพิเศษ (Special operators)



Increment operator ++
Decrement operator -Address operator
&
16
ตัวดำเนินกำรเชิงคำนวณ(Arithmetic operators)
สั ญลักษณ์
++
ควำมหมำย
*
/
%
+
-
Negation
คูณ
หำร
หำรเก็บเศษ
บวก
ลบ
--
กำรลดค่ ำครั้งละ 1
กำรบวกค่ ำครั้งละ 1
ตัวอย่ำง
-x
x*2
x/2
x%2
x+2
x-2
a--,--a
a++,++a
17
Arithmetic operators
การประกาศตัวแปรและกาหนดค่าเริ่ มต้น
int
a=1,
นิพจน์
นิพจน์เทียบเท่า
b=2,
c=3,
d=4;
ค่าของนิพจน์
a*b/c
(a * b) / c
0
a+b%c*1
a + ((b % c) * 1)
3
(8 - ((-d) / b)) + c
13
8 - -d / b + c
18
Assignment Operators
สั ญลักษณ์
=
*=
/=
%=
+=
-=
Simple assignment
Addition assignment
Division assignment
Remainder assignment
Addition assignment
Subtraction assignment
ตัวอย่ ำง
x
=2
x* =2
x/ =2
x% =2
x+ =2
x- =2
ควำมหมำย
x=2
x = x*2
x = x/2
x = x%2
x = x+2
x = x-2
19
Assignment operators
การประกาศตัวแปรและกาหนดค่าเริ่ มต้น
int
นิพจน์
a=1,
นิพจน์เทียบเท่า
a += b + c
b *= c = d + 5
b=2,
c=3,
d=4;
ค่าของนิพจน์
a = (a + (b + c))
6
b = (b * (c = (d + 5))) 18
20
Math library

Function
double
double
double
double
double
int
prototype
description
sqrt (double)
หาค่ารากที่สอง
sin (double)
Sine
cos (double)
Cosine
tan (double)
Tangent
pow (double, double) หาค่า xy
rand ()
หาค่าเลขสุ่ ม
21
นิพจน์


รู ปแบบ
ตัวแปร
ตัวแปร
ชนิดข้อมูล
ตัวดานินการ ค่าคงที่
ตัวดานินการ ตัวแปร
a
= 5+2
a
=
b+c
ชนิดข้ อมูลของนิพจน์ ขนึ้ อยู่กบั ชนิดข้ อมูลของค่ ำคงที่ หรือตัวแปรในนิพจน์ หำก
ค่ ำคงที่หรือตัวแปรมีชนิดข้ อมูลต่ ำงกัน ค่ ำของนิพจน์ จะมีชนิดข้ อมูลตำมชนิดที่มีขนำด
ใหญ่

ขนาดของชนิดข้อมูล
char < short < int < long < float < double < long double
22
รู ปแบบโปรแกรมภำษำซีอย่ ำงง่ ำย
ส่ วนที่ตัวแปลภำษำต้ องดำเนินกำร
ก่ อนทำกำรแปล
Preprocessing Directives
void main ( )
ส่ วนของฟังก์ ชั่นหลัก
{
Declarations
Statements
ส่ วนของกำรประกำศตัวแปร
คำสั่ งต่ ำงๆ ซึ่งจะมีผลต่ อขั้นตอนกำรทำงำน
}
23
ตัวอย่ ำง
#include <stdio.h>
void main() {
clrscr();
int a = 1, b = 2, c = 3;
x = a + b;
printf(“x = %d \n”, x);
}
24
แบบฝึ กหัด




ภาษาซีจดั อยูใ่ นภาษาระดับใด
Interpreter คือ
Compiler คือ
จงบอกว่าการตั้งชื่อตัวแปรต่อไปนี้ถูกต้องหรื อไม่ถา้ ไม่ถูกต้องเพราะเหตุใ
name$
Student_1
ID No Val_num Data1
Data-name CaseOfData 3Sum if
sumofsalary
แบบฝึ กหัด (ต่ อ)

จงประกาศชนิดตัวแปรต่อไปนี้
ทาให้ตวั แปร num เก็บค่าเป็ นจานวนเต็ม
 ทาให้ตว
ั แปร price, sale เก็บค่าเป็ นทศนิยม
 ทาให้ตว
ั แปร pi เก็บค่าที่เป็ นทศนิยมที่มีความแม่นยาสู งและเก็บ
ค่า 3.142857142857
 ทาให้ตว
ั แปร cas เก็บค่าที่เป็ นตัวอักษร 1 ตัวอักษร
 ทาให้ตว
ั แปร ID เก็บค่าที่เป็ นจานวนเต็มแบบไม่คิดเครื่ องหมาย

แบบฝึ กหัด (ต่ อ)
 จงเขียนเลขฐานต่อไปนี้ ให้อยูใ่ นรู ปของค่าคงที่ใน
ภาษาซี
 (2147)8
(F5E)16
(3B1A)16
(410)8
(5)8
จงพิมพ์โปรแกรมต่อไปนี ้ลงเครื่ องคอมพิวเตอร์
คอมไพล์และรันโปรแกรม
#include <stdio.h>
#include <conio.h>
Void main()
{ int a,b,c;
a = 10; b=20;
c = a + b;
clrscr();
printf(“%d + %d = %d” ,a,b,c);
}