Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
543,36 KB
Nội dung
1 TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƢƠNG Bài 6. Tổng quan về ngôn ngữ C Đỗ Bá Lâm lamdb-fit@mail.hut.edu.vn Nội dung 6.1. Lịch sử phát triển 6.2. Các phần tử cơ bản của ngôn ngữ C 6.3. Cấu trúc cơ bản của chƣơng trình C 6.4. Biên dịch chƣơng trình C 6.5. Trình biên dịch Turbo C++ 2 2 Nội dung 6.1. Lịch sử phát triển 6.2. Các phần tử cơ bản của ngôn ngữ C 6.3. Cấu trúc cơ bản của chƣơng trình C 6.4. Biên dịch chƣơng trình C 6.5. Trình biên dịch Turbo C++ 3 4 6.1. Lịch sử phát triển • Ra đời tại phòng thí nghiệm BELL của tập đoàn AT&T (Hoa Kỳ) • Do Brian W. Kernighan và Dennis M. Ritchie phát triển vào đầu 1970, hoàn thành 1972 • C dựa trên nền các ngôn ngữ BCPL (Basic Combined Programming Language) và ngôn ngữ B. • Tên là ngôn ngữ C nhƣ là sự tiếp nối ngôn ngữ B. 3 6.1. Lịch sử phát triển • Đặc điểm của ngôn ngữ lập trình C – Ngôn ngữ lập trình hệ thống – Tính khả chuyển, linh hoạt cao – Có thế mạnh trong xử lý dữ liệu số, văn bản, cơ sở dữ liệu • C thƣờng đƣợc sử dụng để viết các chƣơng trình hệ thống – Hệ điều hành Unix có 90% mã C, 10% hợp ngữ – Các trình điều khiển thiết bị (device driver) – Xử lý ảnh… 55 6 6.1. Lịch sử phát triển • 1978: C đƣợc giới thiệu trong phiên bản đầu của cuốn sách "The C programming language" • Sau đó, C đƣợc bổ sung thêm những tính năng và khả năng mới Đồng thời tồn tại nhiều phiên bản nhƣng không tƣơng thích nhau. • Năm 1989, Viện tiêu chuẩn quốc gia của Hoa Kỳ (American National Standards Institute - ANSI) đã công bố phiên bản chuẩn hóa của ngôn ngữ C: ANSI C hay C chuẩn hay C89 4 6.1. Lịch sử phát triển • Các phiên bản ngôn ngữ C – ANSI C: C chuẩn (1989) – Các phiên bản khác thƣờng bổ sung thêm thƣ viện của ANSI C • Hiện nay cũng có nhiều phiên bản của ngôn ngữ C khác nhau, gắn liền với một bộ chƣơng trình dịch cụ thể của ngôn ngữ C – Turbo C++ và Borland C++ của Borland Inc. – MSC và VC của Microsoft Corp. – GCC của GNU project… 77 Nội dung 6.1. Lịch sử phát triển 6.2. Các phần tử cơ bản của ngôn ngữ C 6.3. Cấu trúc cơ bản của chƣơng trình C 6.4. Biên dịch chƣơng trình C 6.5. Trình biên dịch Turbo C++ 8 5 Ví dụ #include<stdio.h> #include<conio.h> void main(){ printf(“Hello World\n”); getch(); } 9 6.2.1. Tập ký tự • Tập ký tự là tập các phần tử cơ bản tạo nên chƣơng trình – Tổ hợp các ký tự → từ – Liên kết các từ theo cú pháp → câu lệnh – Tổ chức các câu lệnh → chƣơng trình • Ví dụ: – include, void, main… – printf(“…”), getch(); 10 6 6.2.1. Tập ký tự • Tập ký tự trong C – 26 chữ cái hoa:A B C X Y Z – 26 chữ cái thƣờng:a b c … x y z. – 10 chữ số: 0 1 2 3 4 5 6 7 8 9. – Các kí hiệu toán học:+ - * / = < > – Các dấu ngăn cách: . ; , : space tab – Các dấu ngoặc:( ) [ ] { } – Các kí hiệu đặc biệt:_ ? $ & # ^ \ ! „ “ ~ .v.v. 11 6.2.2. Từ khóa • Từ khóa (keyword) – Có sẵn trong mỗi ngôn ngữ lập trình – Dành riêng cho các mục đích xác định • Đặt tên cho kiểu dữ liệu: int, float, double… • Mô tả các lệnh, các cấu trúc lập trình: if, while, case… • Chú ý: – Tất cả từ khóa trong C đều viết bằng chữ cái thường 12 7 6.2.2. Từ khóa • Từ khóa hay dùng trong Turbo C 13 6.2.3. Định danh • Định danh (Identifier – hoặc còn gọi là Tên) là một dãy các kí tự dùng để gọi tên các đối tƣợng trong chƣơng trình. • Các đối tƣợng trong chƣơng trình – Biến – Hằng số – Hàm – Kiểu dữ liệu… (sẽ làm quen ở các mục sau) • Định danh có thể đƣợc đặt bởi – Ngôn ngữ lập trình → các từ khóa – Ngƣời lập trình 14 8 6.2.3. Định danh • Quy tắc đặt tên định danh trong C – Các kí tự đƣợc sử dụng: chữ cái, chữ số và dấu gạch dƣới “_” (underscore) – Bắt đầu của định danh phải là chữ cái hoặc dấu gạch dƣới “_”, không đƣợc bắt đầu định danh bằng chữ số. – Định danh do ngƣời lập trình đặt không đƣợc trùng với các từ khóa của C • Chú ý: C là ngôn ngữ có phân biệt chữ hoa và chữ thường 15 6.2.3. Định danh • Ví dụ – Định danh hợp lệ: i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1 – Định danh không hợp lệ • 1_a, 3d, 55x (bắt đầu bằng chữ số) • so luong, ti le (có dấu cách - kí tự không hợp lệ) • int, char (trùng với từ khóa của ngôn ngữ C) 16 9 6.2.3. Định danh • Một số quy ƣớc (code convention) – Nên sử dụng dấu gạch dƣới để phân tách các định danh gồm nhiều từ – Định danh nên có tính gợi nhớ – Quy ƣớc thƣờng đƣợc sử dụng: • Hằng số dùng chữ cái hoa • Các biến, hàm, cấu trúc dùng chữ cái thƣờng • Ví dụ Định danh Loại đối tƣợng HANG_SO_1, _CONSTANT_2 Hằng số a, b, i, j, count Biến nhap_du_lieu, tim_kiem, xu_li Hàm sinh_vien, mat_hang Cấu trúc 17 6.2.4. Các kiểu dữ liệu • Định nghĩa: – Một kiểu dữ liệu là một tập hợp các giá trị mà một dữ liệu thuộc kiểu dữ liệu đó có thể nhận đƣợc. – Trên một kiểu dữ liệu ta xác định một số phép toán đối với các dữ liệu thuộc kiểu dữ liệu đó. • Ví dụ: – Kiểu dữ liệu int (số nguyên) trong C – Một dữ liệu thuộc kiểu dữ liệu int • Là một số nguyên • Nhận giá trị từ từ - 32,768 (- 2 15 ) đến 32,767 (2 15 - 1) 18 10 6.2.4. Các kiểu dữ liệu • Ví dụ (tiếp) – Một số phép toán đƣợc định nghĩa trên kiểu dữ liệu int của C Tên phép toán Ký hiệu Đảo dấu - Cộng + Trừ - Nhân * Chia lấy phần nguyên / Chia lấy phần dƣ % So sánh >, <, >=, <=, ==, != 19 Ví dụ #include<stdio.h> #include<conio.h> #define PI 3.14 void main(){ float r, s; printf(“Nhap ban kinh hinh tron:“); scanf(“%f”,&r); s = PI * r * r; printf(“Dien tich hinh tron %f\n”,s); getch(); } 20 [...]... 6.1 Lịch sử phát triển 6.2 C c phần tử c bản c a ngôn ngữ C 6.3 C u tr c cơ bản c a chƣơng trình C 6.4 Biên dịch chƣơng trình C 6.5 Trình biên dịch Turbo C+ + 41 6.5.1 Giới thiệu • Trình biên dịch (compiler): dịch mã nguồn (source code) thành file th c thi • C c trình biên dịch C phổ biến – Turbo C+ + c a hãng Borland – MSC c a Microsoft – GCC c a GNU – Dev C+ + c a Bloodshed Software • Turbo C+ + c nhiều... bằng vi c th c hiện c c lệnh trong hàm main( ) – Trong hàm main( ) c thể c lệnh gọi tới c c hàm kh c • Phần 6: Nội dung c a c c hàm đã khai báo – C i đặt (viết mã) cho c c hàm đã khai báo nguyên mẫu ở phần 3 38 19 Nội dung 6.1 Lịch sử phát triển 6.2 C c phần tử c bản c a ngôn ngữ C 6.3 C u tr c cơ bản c a chƣơng trình C 6.4 Biên dịch chƣơng trình C 6.5 Trình biên dịch Turbo C+ + 39 6.4 Biên dịch chƣơng... c c kiểu dữ liệu mới (nếu c n) dùng cho c chƣơng trình 36 18 6.3 C u tr c cơ bản c a chƣơng trình C • Phần 3: Khai báo c c hàm nguyên mẫu: – Giúp cho chƣơng trình dịch biết đƣ c những thông tin c bản c a c c hàm sử dụng trong chƣơng trình • Phần 4: Khai báo c c biến toàn c c – Ví dụ: int a, b; int tong, hieu, tich; 37 6.3 C u tr c cơ bản c a chƣơng trình C • Phần 5: Hàm main( ) – Khi th c hiện, chƣơng... thích vắn tắt cho một c u lệnh, một đoạn chƣơng trình ho c cả chƣơng trình – Giúp vi c đ c và hiểu chƣơng trình dễ dàng hơn – Chú thích không phải là c u lệnh -> không ảnh hƣởng tới chƣơng trình • C ch viết chú thích: trong C có hai c ch – Chú thích một dòng: sử dụng « // » – Chú thích nhiều dòng: sử dụng « /* » và « */ » 31 Nội dung 6.1 Lịch sử phát triển 6.2 C c phần tử c bản c a ngôn ngữ C 6.3 C u... trình đƣ c tạo thành từ dãy c c câu lệnh • Cuối mỗi c u lệnh bắt bu c có dấu chấm phẩy „;‟ để đánh dấu kết th c câu lệnh 29 6.2.9 C u lệnh • Phân nhóm: – Nhóm c c câu lệnh đơn: những c u lệnh không chứa c u lệnh kh c Ví dụ: phép gán, phép c ng, phép trừ… – Nhóm c c câu lệnh ph c: những c u lệnh chứa c u lệnh kh c • Ví dụ: lệnh khối đặt trong c p ngo c nhọn { } 30 15 6.2.10 Chú thích • Chú thích (comment):... quy t c x c định – C c toán hạng c thể là biến, hằng – C c toán tử rất đa dạng: c ng, trừ, nhân, chia • Ví dụ: biểu th c tính thể tích hình chữ nhật chieu_dai * chieu_rong * chieu_cao - chieu_dai, chieu_rong, chieu_cao là c c hằng ho c biến số đóng vai trò toán hạng - Phép * đóng vai trò toán tử 28 14 6.2.9 C u lệnh • C u lệnh (statement) diễn tả một ho c một nhóm c c thao t c trong giải thuật • Chƣơng... lựa chọn: Turbo C+ + 3.0 42 21 6.5.2 C i đặt và sử dụng Turbo C+ + 3.0 C i đặt • B1: Chuẩn bị bộ c i c a Turbo C+ + 3.0 (~4 MB) Copy bộ c i này vào máy c a bạn, giả sử vào thƣ m c C:\TC_Setup • B2: Đến thƣ m c chứa bộ c i Turbo C+ + 3.0 (nhƣ giả sử ở trên là C: \TC_Setup) và kích hoạt file INSTALL.EXE để chạy chƣơng trình c i đặt Chƣơng trình c i đặt sẽ yêu c u bạn chỉ ra ổ đĩa trên đó chứa bộ c i Turbo C+ +... quy t c 26 13 6.2.7 Hàm • Mô tả: – Hàm (function) là một chƣơng trình con c ch c năng nhận dữ liệu đầu vào (c c tham số đầu vào), th c hiện một ch c năng nào đó và đƣa ra c c kết quả Hàm Ý nghĩa Ký hiệu toán h c Ví dụ Pow(x,y) X mũ y Xy Pow(2,3)=8 Sin(x) Sin c a x Sinx Sin(0)=0 Cos(x) Cos c a x Cosx Cos(0)=1 27 6.2.8 Biểu th c • Định nghĩa: – Biểu th c là sự ghép nối c c toán tử (operator) và c c toán... the SOURCE drive to use: – Hãy nhập vào tên ổ đĩa, chẳng hạn C (ta để bộ c i Turbo C+ + 3.0 ở thƣ m c C:\TC_Setup) 43 6.5.2 C i đặt và sử dụng Turbo C+ + 3.0 • B3: Chƣơng trình yêu c u bạn nhập vào đƣờng dẫn tới thƣ m c chứa c c file c a Turbo C+ + 3.0 – Enter the SOURCE Path: – Thông thƣờng chƣơng trình sẽ tự tìm cho bạn, và bạn chỉ c n ấn Enter để chuyển sang bƣ c tiếp theo • B4: X c định thƣ m c cài đặt... c i đặt Thƣ m c này sẽ chứa c c file c a Turbo C+ + 3.0 để bạn sử dụng sau này – Directories… [C: \TC] – Option…[IDE CMD LIB CLASS BGI HELP EXMPL] 44 22 6.5.2 C i đặt và sử dụng Turbo C+ + 3.0 • Start Installation • Thƣ m c cài đặt m c định sẽ là \TC nằm trên thƣ m c g c của ổ đĩa chứa bộ c i Nếu bạn muốn thay đổi thƣ m c cài đặt thì hãy dùng c c phím và để di chuyển hộp sáng đến phần Directories, gõ . một bộ chƣơng trình dịch c thể c a ngôn ngữ C – Turbo C+ + và Borland C+ + c a Borland Inc. – MSC và VC c a Microsoft Corp. – GCC c a GNU project… 77 Nội dung 6.1. Lịch sử phát triển 6.2. C c phần. Lịch sử phát triển 6.2. C c phần tử c bản c a ngôn ngữ C 6.3. C u tr c cơ bản c a chƣơng trình C 6.4. Biên dịch chƣơng trình C 6.5. Trình biên dịch Turbo C+ + 39 40 • Preprocessor – Loại bỏ c c. 4 6.1. Lịch sử phát triển • C c phiên bản ngôn ngữ C – ANSI C: C chuẩn (1989) – C c phiên bản kh c thƣờng bổ sung thêm thƣ viện c a ANSI C • Hiện nay c ng c nhiều phiên bản c a ngôn ngữ C kh c nhau,