Tải bản đầy đủ (.pdf) (7 trang)

Kỹ thuật lập trình ngôn ngữ lập trình C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (242.99 KB, 7 trang )

0
K
K


THU
THU


T L
T L


P TRÌNH
P TRÌNH
NGÔN NGỮ LẬP TRÌNH C
TÀI LIỆU THAM KHẢO

Phạm Văn Ất, Kỹ thuật lập trình C cơ sở và nâng cao,
NXB KH&KT, 1999.

Quách Tuấn Ngọc, Ngôn ngữ lập trình C, NXBGD, 1998.
1

Giới thiệu ngôn ngữ C

Cấu trúc cơ bản của một chương trình C. Ví dụ một
chương trình C đơn giản

Các khái niệm cơ bản: Biến, hằng, Kiểu dữ liệu, Toán tử


Các lệnh vào ra cơ bản

Cấu trúc điều khiển
KI
KI


N TH
N TH


C CƠ B
C CƠ B


N V
N V


NGÔN NG
NGÔN NG


L
L


P TRÌNH C
P TRÌNH C
2

Gi
Gi


i thi
i thi


u v
u v


ngôn ng
ngôn ng


l
l


p tr
p tr
ì
ì
nh
nh
C
C

Ngôn ngữ C

• Do Dennis Ritchie phát triển 1972 tại phòng thí nghiệm Bell
Telephone – AT&T-USA trên cơ sở 2 ngôn ngữ lập trình trước
đó: BCPL và B
• Được sử dụng để phát triểnUNIX
• Được sử dụng để viết các hệ điều hành
• Đến năm 1978, C thực sự phát triển

Chuẩn hoá
• Nhiều biến đổi nhỏ từ C ban đầu và không tương thích
• Chuẩn hoá ngôn ngữ trên cơ sở khả năng độc lập với phần
cứng.
• Chuẩn C ban hành 1989, được cập nhật năm 1999.
3

Đặc điểm
• C là ngôn ngữ mạnh và mềm dẻo: sử dụng lập trình hệ điều hành, các
giải thuật phức tạp, chương trình soạn thảo, các trình điều khiển, đồ
hoạ...
• Ngôn ngữ cho người lập trình chuyên nghiệp: nhiều nhà tin học sử
dụng, mang tính phổ biến
• Khả năng độc lập về phần cứng (khả chuyển): chạy trên các máy tính
và hệ điều hành khác nhau.
• Ít từ
khoá: Các từ khoá dùng riêng cho ngôn ngữ khi lập trình.
• Ngôn ngữ lập trình cấu trúc
• C là ngôn ngữ bậc trung: có các tính năng ngôn ngữ bậc cao và ngôn
ngữ bậc thấp (xử lý bít, byte và địa chỉ ô nhớ).
- C là ngôn ngữ cơ sở để phát triển lập trình hướng đối tượng (C++,
Java,...).
Gi

Gi


i thi
i thi


u v
u v


ngôn ng
ngôn ng


l
l


p tr
p tr
ì
ì
nh
nh
C
C
4
C
C



u tr
u tr
ú
ú
c cơ b
c cơ b


n c
n c


a m
a m


t chương tr
t chương tr
ì
ì
nh C
nh C
#include <...> /* 1. Các hàm thư viện */
#define /* 2. Định nghĩa hằng */
typedef /* 3. Định nghĩa kiểu dữ liệu */
/* 4. Khai báo nguyên mẫu các hàm */
function prototype
/* 5. Khai báo các biến toàn cục */

int main (void) /* 6. “Chương trình chính” */
{ Khai báo các biến;
Tập lệnh;
}
/* 7. “Các chương trình con”- các hàm */
5
V
V
í
í
d
d


chương tr
chương tr
ì
ì
nh C đơn gi
nh C đơn gi


n
n
Comments: Giải thích

Các ký tự nằm trong cặp
/* */
là chú thích
• Sử dụng để mô tả, giải thích trong chương trình


#include <stdio.h>
• Chỉ thị tiền xử lý: tải nội dung của một file thư viện vào chương
trình
• <stdio.h> c
ho phép thực hiện các thao tác input/output chuẩn
.
1 /* Fig. 2.1: fig02_01.c
2 A first program in C */
3 #include <stdio.h>
4
5 /* function main begins program execution */
6intmain()
7 {
8 printf( "Welcome to C!\n" );
9
10 return 0; /* indicate that program ended successfully */
11
12 } /* end function main */
Welcome to C!
6
V
V
í
í
d
d


chương tr

chương tr
ì
ì
nh C đơn gi
nh C đơn gi


n
n
int main()
9 Một chương trình C có thể có 1 hoặc một số function,
nhưng chỉ có duy nhất 1 hàm là
main
9 int có nghĩa là hàm main tr
ả về
một giá trị nguyên
9 Cặp “{}” thể hiện một khối, đoạn chương trình
9 Phần thân của tất cả các h
àm
phải nằm trong cặp “{}”
9 Có thể sử dụng: void main(void) và không cần câu
lệnh return ở cuối hàm
9 K
ết thúc lệnh bởi dấu ;
7
Môi trư
Môi trư


ng l

ng l


p tr
p tr
ì
ì
nh C
nh C
• Phases of C Programs:
1. Edit
2. Preprocess
3. Compile
4. Link
5. Load
6. Execute
Program is created in
the editor and stored
on disk.
Preprocessor program
processes the code.
Loader puts pro
gram
in memory.
CPU takes each
instruction and
executes it, possibly
storing new data
values as the pro
gram

executes.
Compiler creates
object code and stores
it on disk.
Linker links the object
code with the libraries
Loader
Primary Memory
Compiler
Editor
Preprocessor
Linker
Primary Memory
.
.
.
.
.
.
.
.
.
.
.
.
Disk
Disk
Disk
CPU
Disk

Disk
8
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m cơ b
m cơ b


n
n

Từ khóa

Hằng

Kiểu dữ liệu

Biến

Biểu thức

9
T
T


kh
kh
ó
ó
a
a

Những từ trong ngôn ngữ được dành riêng cho một ý
nghĩa xác định (tên kiểu dữ liệu, toán tử, câu lệnh)
• Không dùng từ khóa để đặt tên cho hằng, biến, hàm,…
• Phân biệt chữ hoa và chữ thường

Các từ khóa cơ bản trong ngôn ngữ C
10
Ki
Ki


u d
u d


li
li



u trong C
u trong C

Kiểu dữ liệu cơ sở
• Kí tự (char, unsigned char)
• Số nguyên (int, unsigned int, long (int), unsigned long (int))
• Số thực, độ chính xác đơn (float)
• Số thực, độ chính xác kép (double)
• Lưu ý: Kích thước và phạm vi biểu diễn của các kiểu dữ liệu

Kiểu enum

Kiểu mảng (array)

Kiểu cấu trúc (struct)
9
KIểm tra kích thước của kiểu dữ liệu: dùng toán tử
sizeof(), ví dụ: sizeof(int),…
11
H
H


ng
ng

Là đại lượng mà giá trị không đổi trong quá trình tính
toán


Hằng số: 100, 10L, 10U, 0x10,…

Hằng kí tự: ‘A’, ‘a’,…

Hằng xâu kí tự: “A”

Lưu ý: phân biệt hằng kí tự và hằng xâu kí tự
• Lưu trữ ‘A’ (1 byte)
• Lưu trữ “A” (2 byte)

Hằng biểu thức
A
A \0
12
Bi
Bi
ế
ế
n
n
1.
/*Ví dụ chương trình C: Cộng hai số nguyên*/
2.
#include <stdio.h>
3.
#include <conio.h>
4.
/* function main begins program execution */
5.
int main()

6.
{
7.
int integer1; /* first number to be input by user */
8.
int integer2; /* second number to be input by user */
9.
int sum; /* variable in which sum will be stored */
10.
clrscr();
11.
printf( "Enter first integer\n" ); /* prompt */
12.
scanf( "%d", &integer1 ); /* read an integer */
13.
printf( "Enter second integer\n" ); /* prompt */
14.
scanf( "%d", &integer2 ); /* read an integer */
15.
sum = integer1 + integer2; /* assign total to sum */
16.
printf( "Sum is %d\n", sum ); /* print sum */
17.
getch();
18.
return 0; /* indicate that program ended successfully */
19.
} /* end function main */
13
Bi

Bi
ế
ế
n
n

Khái niệm Biến:
• Tên biến tương ứng với vị trí xác định trong bộ nhớ máy tính
• Mỗi biến gồm: một tên, kiểu dữ liệu, kích thước và giá trị
• Mỗi khi giá trị mới được gán cho biến thì giá trị trước đósẽ được
thay thế (xoá mất). Chẳng hạn khi sử dụng lệnh scanf để đọc giá
trị biến.
• Đọc các biến từ bộ nhớ giá trị của nó không thay đổi

Mô tả trực giác về biến trong bộ nhớ

Khai báo biến trước khi sử dụng

Đặt tên biến đúng quy tắc (trong C, phân biệt chữ hoa và
chữ thường)
integer1 45
14
C
C
á
á
c to
c to
á
á

n t
n t


(ph
(ph
é
é
p t
p t
í
í
nh)
nh)

Các phép tính số học và thứ tự ưu tiên
• 1 - Thứ nhất, thực hiện biểu thức, toán tử trong cặp “()”, nếu
đồng cấp, thực hiện từ trái qua phải.
• 2 - Thứ hai: thực hiện phép *, / hoặc %, nếu đồng cấp thực hiện
từ trái qua phải.
• 3 - Cuối cùng: phép +,-, nếu đồng cấp thực hiện từ trái qua phải

C operation

Arithmetic operator Algebraic expression C expression
Addition
+
f + 7
f + 7
Subtraction

-
p – c
p - c
Multiplication
*
bm
b * m
Division
/
x / y
x / y
Modulus
%
r mod s
r % s

15
C
C
á
á
c to
c to
á
á
n t
n t




Phép so sánh
Standard algebraic equality
operator or relational operator
C equality or
relational operator
Example of C
condition
Meaning of C condition
Equality Operators
=
==
x == y
x
is equal to
y


!=
x != y
x
is not equal to
y

Relational Operators
>
>
x > y
x
is greater than
y


<
<
x < y
x
is less than
y

>=
>=
x >= y
x
is greater than or equal to
y

<=
<=
x <= y
x
is less than or equal to
y


16
C
C
á
á
c to
c to

á
á
n t
n t



Toán tử logic
17
C
C
á
á
c to
c to
á
á
n t
n t



Phép gán và toán tử gán
• Biến = Biểu thức

Ví dụ về toán tử gán
d -= 4 (d = d - 4)
e *= 5 (e = e * 5)
f /= 3 (f = f / 3)
g %= 9 (g = g % 9)


Toán tử tăng (++) và Toán tử giảm (−−)
• c ++ sử dụng thay cho c += 1
• c−− sử dụng thay cho c −= 1
• Toán tử đặt trước biến: biến thay đổi giá trị trước khi biểu thức sử dụng
nó được tính toán
• Toán tử đặt sau biến: biến thay đổi giá trị sau khi biểu thức sử dụng nó
được tính toán
18
C
C
á
á
c l
c l


nh v
nh v
à
à
o/ra
o/ra
cơ b
cơ b


n
n


Hàm printf(): in kết quả ra màn hình
printf(“Xâu_điều_khiển_khuôn_dạng”, Danh_sách_tham_số_được_in);

Hàm scanf(): nhập dữ liệu vào từ bàn phím
scanf(“Xâu_điều_khiển_khuôn_dạng”, Danh_sách_
địa_chỉ
_bi
ến
);
Bài tập 1.
Tìm hiểu Help, trình bày chi tiết cú pháp sử dụng hàm và cho ví dụ:
+ Xuất dữ liệu: printf, putchar, puts
+ Nhập dữ liệu: scanf, getchar, getch, gets
19
V
V
í
í
d
d


: In s
: In s


nguyên
nguyên
1.
#include <stdio.h>

2.
#include <conio.h>
3.
int main()
4.
{
5.
printf( "%d\n", 455 );
6.
printf( "%i\n", 455 ); /* i same as d in printf */
7.
printf( "%d\n", +455 );
8.
printf( "%d\n", -455 );
9.
printf( "%hd\n", 32000 );
10.
printf( "%ld\n", 2000000000 );
11.
printf( "%o\n", 455 );
12.
printf( "%u\n", 455 );
13.
printf( "%u\n", -455 );
14.
printf( "%x\n", 455 );
15.
printf( "%X\n", 455 );
16.
getch();

17.
return 0; /* indicates successful termination */
18.
} /* end main */
455
455
455
-455
32000
2000000000
707
455
4294966841
1c7
1C7
Kết quả:

×