Xem mẫu
- TIN HỌC ĐẠI CƯƠNG
Chương 2: Ngôn ngữ lập trình C
ttdung@utc2.edu.vn 1
- Nội dung
1. Các khái niệm cơ bản
2. Các kiểu dữ liệu
3. Các lệnh điều khiển
4. Bài tập thực hành
ttdung@utc2.edu.vn 2
- Giới thiệu
Năm 1970 Ken Thompson sáng tạo ra ngôn ngữ B (Basic
Combined Programming Language) trên môi trường HĐH Unix
của máy DEC PD-7
Năm 1972 Dennis Ritchie ở Bell Labotories cùng Ken Thompson
sáng tạo ra ngôn ngữ C nhằm tăng hiệu quả cho ngôn ngữ B.
Ngôn ngữ C nhanh chóng phổ biến rộng rãi và được sử dụng để
viết nên HĐH đa nhiệm UNIX, O/S 2, và ngôn ngữ Dbase.
Phát triển thành C++ vào năm 1983 hỗ trợ lập trình hướng đối
tượng
Có nhiều trình biên dịch C khác nhau
Turbo C (từ ver 1 tới ver 3), Microsoft C (ver 1 tới ver 6)
C++ với 3 trình biên dịch nổi tiếng Borland C++, Visual C++,
và Turbo C++
Chúng ta sẽ sử dụng:
Borland C++ 5.02 hoặc Free C++ hoặc Dev C++
ttdung@utc2.edu.vn 3
- Tập ký tự
Mọi ngôn ngữ đều được xây dựng trên 1 bộ ký tự. Bộ
ký tự trong C gồm:
- Các chữ cái in hoa: A, B, C,....,Z
- Các chữ cái thường: a, b, c,...,z
- Các chữ số: 0, 1,2,...,9
- Các loại dấu chấm câu . ! ? : ;
- Các dấu toán học: + , - , * , / , %, >,
- Từ khóa
• Là các từ dùng riêng cho ngôn ngữ
• Từ khoá phải được dùng đúng cú pháp quy định
• Mọi từ khoá đều viết thường (không viết in hoa)
• Các từ khoá thường gặp.
ttdung@utc2.edu.vn 5
- Tên và cách đặt tên
Dùng để định danh các thành phần của chương trình
Tên biến, tên hàm, tên hằng, file, cấu trúc...
Gồm chữ số dấu gạch nối “_”
Độ dài tối đa 32
Lưu ý:
- không đuợc chứa kí tự trống (space)
- không được bắt đầu bằng một chữ số
- không được trùng với từ khóa
- Không đặt tên ở dạng số mũ hoặc chỉ só (vd: H2SO4)
- Không đặt tên với ký tự tiếng việt (vd: SốMaX, TổngChẵn...v.v)
Nên đặt tên một cách gợi nhớ có ý nghĩa.
Tên chuẩn: một số tên có sẵn của trình biên dịch.
C là ngôn ngữ phân biệt viết hoa, viết thường
ttdung@utc2.edu.vn 6
- Hằng, Biến, Biểu thức
Hằng:
- Là đại lượng có giá trị không thay đổi được
- Ví dụ:
• 124 Là một hằng số
• ‘D’ Là một hằng ký tự
• “Lap trinh” Là một hằng chuỗi ký tự
Biến
- Là đại lượng có thể thay đổi được giá trị (gán giá trị mới)
Biểu thức
- Là công thức tính toán để có 1 giá trị theo quy tắc toán học
- Gồm các toán hạng và các phép toán (toán tử)
• Toán hạng: hằng, biến, hàm hoặc biểu thức khác.
• Phép toán: Số học, luận lý, gán, điều kiện, lấy địa chỉ, tăng giảm
ttdung@utc2.edu.vn 7
- Các phép toán C hỗ trợ
• Số học: + , - , * , / , %
• Luận lý: ==, !=, >, =,
- Các hàm toán học thông dụng
Chỉ thị tiền biên dịch:
#include
• Các biểu thức phức tạp phải sử dụng biến đổi toán học
để có được biểu diễn tương ứng trong C.
ttdung@utc2.edu.vn 9
- Khai báo hằng
Cú pháp
#define TÊNHẰNG giátrị
hoặc
const kiểudữliệu TÊNHẰNG = giátrị;
Ví dụ
#define MAX 100 const int SOPT = 100;
Lưu ý: hằng phải được khai báo trước khi sử
dụng
ttdung@utc2.edu.vn 10
- Khai báo biến
• Cú pháp
Kiểudữliệu TÊNBIẾN;
Kiểudữliệu Biếnl, Biến2;
Kiểudữliệu TÊNBIẾN = giátrịbanđầu;
• Ví dụ
int sole;
float tbc, tong;
char Enter = '\n';
• Lưu ý: Biến có thể khai báo bất kỳ đâu trong
chương trình miễn là trước khi sử dụng.
ttdung@utc2.edu.vn 11
- Phép gán giá trị
• Cú pháp
TênBiến = Biểu thức giá trị ;
• Ví dụ:
int x, y, z;
x=0;
50=x; //sai
3+y=x; //sai
Z=x+y;
x+y=z; //sai
ttdung@utc2.edu.vn 12
- Câu lệnh, Chú thích
Câu lệnh: Là một chỉ thị yêu cầu máy tính thực thi một
tác vụ nào đó. Một câu lệnh phải kết thúc bởi một dấu
chấm phẩy “;”
Chú thích:
• Trên 1 dòng: // Chú thích trên một dòng
• Trên nhiều dòng:
/*
Chú thích trên nhiều dòng.
*/
Các chỉ thị tiền biên dịch:
ttdung@utc2.edu.vn 13
- Cấu trúc 1 chương trình C
#include
#include
const int MAX=100; //khai bao hang
float X, y, z;//khai bao bien
void nhapSL();
void inKQ();
float max2so(int, int) ;
int main(void) {
nhapSL();
z = max2so(x, ỵ) ;
inKQ();
getch();
return 0;
}
void nhapSL (){
printf("Nhap X va y:”);
scanf("%f%f", &x, &y);
}
void inKQ() {
printf(“So lon nhat = %.2f", z);
}
float max2so(int a, int b)(
return a>b? a:b;
ttdung@utc2.edu.vn } 14
- Một số quy tắc cần nhớ
• Đặt tên biến, hằng, hàm,... một cách gợi nhớ
• Khi sử dụng biến, hằng cần kiểm tra lại xem biến hằng đó đã
được khai báo trước đó hay chưa ?
• C là ngôn ngữ phân biệt hoa/thường => phải kiểm tra kỹ từng ký
tự khi viết
• Loại bỏ các chỉ thị #include không cần thiết (để lại sẽ
làm chậm quá trình biên dịch và tăng kích thước file *.exe sau
biên dịch)
• Viết chương trình theo cấu trúc khối (phân cấp thụt đầu dòng)
• Chương trình viết xong chưa thể biết được đúng hay sai => phải
chạy thử với các bộ số liệu khác nhau (nên test thử với các bộ số
liệu đặc biệt)
ttdung@utc2.edu.vn 15
- Các kiểu dữ liệu trong C
• Các kiểu dữ liệu cơ bản
- Số
- Ký tự
- Chuỗi ký tự
- Mảng
• Ép kiểu trong C
• Nhập xuất dữ liệu trong C
ttdung@utc2.edu.vn 16
- Các kiểu dữ liệu cơ bản
• Kiểu số:
ttdung@utc2.edu.vn 17
- Các kiểu dữ liệu cơ bản
• Kiểu ký tự:
• Ví dụ:
- Ký tự 'A' có mã 65
- Ký tự '0' có mã 48
• Các ký tự đặc biệt:
'\0‘ : ký tự Null (có mã = 0) ký tự
'\n‘ : xuống dòng (new line) ký tự
'\t‘ : Tab
ttdung@utc2.edu.vn 18
- Các kiểu dữ liệu cơ bản (tt)
Kiểu chuỗi (xâu ký tự)
- Một dãy các ký tự đứng liền nhau được gọi là 1 xâu
ký tự.
- Ngôn ngữ C hiểu ký tự ‘\0’ là ký tự kết thúc xâu
=>Chỉ lưu biết địa chỉ cua ký tự đầu tiên của chuỗi
- Một hằng xâu ký tự đặt trong cặp dấu “nháy kép”
Ví dụ:
“Ho Chi Minh” là hằng xâu ký tự
Khai báo biến xâu: char tênbiếnxâu[số byte];auu
ttdung@utc2.edu.vn 19
- Kiểu mảng - Array
Định nghĩa:
- Mảng là một kiểu dữ liệu có cấu trúc do
người lập trình định nghĩa
- Dùng biểu diễn các đối tượng dữ liệu ở dạng
một dãy các thành phần có cùng kiểu với
nhau (kiểu cơ sở)
- NNLT C luôn chỉ định một khối nhớ liên tục
cho một biến kiểu mảng
- Kích thước của mảng được xác định ngay
khi khai báo và không bao giờ thay đổi
ttdung@utc2.edu.vn 20
nguon tai.lieu . vn