Thông tin tài liệu
Nội dung TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 6.1 Lịch sử ph|t triển 6.2 C|c phần tử ngôn ngữ C 6.3 Cấu trúc 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++ TIN HỌC ĐẠI CƯƠNG Phần Lập trình C Bài 6: Tổng quan ngôn ngữ C Nội dung 6.1 Lịch sử ph|t triển 6.1 Lịch sử ph|t triển 6.2 C|c phần tử ngôn ngữ C 6.3 Cấu trúc 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++ • Ngôn ngữ C đời phòng thí nghiệm BELL tập đo{n AT&T (Hoa Kỳ) • Do Brian W Kernighan Dennis M Ritchie ph|t triển v{o đầu 1970, hoàn thành 1972 • C dựa c|c ngôn ngữ BCPL (Basic Combined Programming Language) ngôn ngữ B • Tên l{ ngôn ngữ C l{ tiếp nối ngôn ngữ B 6.1 Lịch sử ph|t triển 6.1 Lịch sử ph|t triển • Đặc điểm ngôn ngữ lập trình C • 1978: C giới thiệu phiên đầu s|ch "The C programming language" • Sau đó, C bổ sung thêm tính khả Đồng thời tồn nhiều phiên không tương thích • Năm 1989, Viện tiêu chuẩn quốc gia Hoa Kỳ (American National Standards Institute - ANSI) đ~ công bố phiên chuẩn hóa ngôn ngữ C: ANSI C hay C chuẩn hay C89 – Ngôn ngữ lập trình hệ thống – Tính khả chuyển, linh hoạt cao – Có mạnh xử lý liệu số, văn bản, sở liệu • C thường sử dụng để viết 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… 6.1 Lịch sử ph|t triển Nội dung • Các phiên ngôn ngữ C 6.1 Lịch sử ph|t triển 6.2 C|c phần tử ngôn ngữ C 6.3 Cấu trúc 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++ – ANSI C: C chuẩn (1989) – Các phiên khác thường bổ sung thêm thư viện ANSI C • Hiện có nhiều phiên ngôn ngữ C khác nhau, gắn liền với chương trình dịch cụ thể ngôn ngữ C – Turbo C++ Borland C++ Borland Inc – MSC v{ VC Microsoft Corp – GCC GNU project… Ví dụ chương trình C đơn giản 6.2.1 Tập ký tự #include #include void main(){ printf(“Hello World\n”); getch(); } • Tập ký tự l{ tập c|c phần tử 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.2.1 Tập ký tự 6.2.2 Từ khóa • Tập ký tự C • Từ khóa (keyword) – 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ố: – 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 – Có sẵn 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 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ú ý: – C ngôn ngữ phân biệt chữ hoa, chữ thường – Tất từ khóa C viết chữ thường 11 12 6.2.2 Từ khóa 6.2.3 Định danh • Một số từ khóa hay dùng Turbo C • Định danh (Identifier – gọi l{ Tên) l{ d~y c|c kí tự dùng để gọi tên c|c đối tượng chương trình • C|c đối tượng chương trình – Biến – Hằng số – Hàm – Kiểu liệu… (sẽ l{m quen c|c mục sau) • Định danh đặt – Ngôn ngữ lập trình → c|c từ khóa – Người lập trình 13 14 6.2.3 Định danh 6.2.3 Định danh • Quy tắc đặt tên định danh C • Ví dụ – C|c kí tự sử dụng: chữ c|i, chữ số v{ dấu gạch “_” (underscore) – Bắt đầu định danh phải l{ chữ c|i dấu gạch “_”, không bắt đầu định danh chữ số – Định danh người lập trình đặt không trùng với từ khóa C – Đị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 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 ngôn ngữ C) 15 16 6.2.3 Định danh 6.2.4 C|c kiểu liệu • Một số quy ước (code convention) • Định nghĩa: – Nên sử dụng dấu gạch để 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 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 – Một kiểu liệu l{ tập hợp c|c gi| trị m{ liệu thuộc kiểu liệu nhận – Trên kiểu liệu ta x|c định số phép to|n c|c liệu thuộc kiểu liệu • Ví dụ: – Kiểu liệu int (số nguyên) C – Một liệu thuộc kiểu liệu int • L{ số nguyên • Nhận gi| trị từ từ - 32,768 (- 215) đến 32,767 (215 - 1) 17 18 6.2.4 C|c kiểu liệu 6.2.5 Hằng số • Ví dụ (tiếp) • Định nghĩa: – Hằng số (constant) l{ đại lượng có gi| trị không đổi chương trình • Biểu diễn số ngôn ngữ C: – Một số phép to|n định nghĩa kiểu liệu int C Tên phép toán Đảo dấu Cộng Trừ Nhân Chia lấy phần nguyên Chia lấy phần dư So sánh Ký hiệu + * / % >, =, tu}n thủ quy tắc biểu diễn số nguyên) • Ví dụ: • Ví dụ Ký tự cần biểu diễn Cách – “ngon ngu lap trinh C” – “Tin hoc dai cuong” – “Dai hoc Bach Khoa Ha Noi” Cách Chữ c|i A ‘A’ 65, 0x41, 0101 Số ‘1’ 49, 0x31, 061 Dấu nh|y đơn ‘\’’ 39, 0x27, 047 Ký tự tab ‘\t’ 9, 0x09, 011 23 24 6.2.6 Biến Ví dụ Minh họa sử dụng biến • Định nghĩa: #include #include #define PI 3.14 void main(){ float r, s;//Hai biến r, s thuộc kiểu số thực printf(“Nhap ban kinh hinh tron:“); scanf(“%f”,&r); s = PI * r * r; printf(“Dien tich hinh tron %f\n”,s); getch(); } – Biến (variable) l{ đại lượng m{ gi| trị thay đổi chương trình • Biến phải thuộc kiểu liệu n{o • Biến sử dụng để lưu trữ liệu, phục vụ cho xử lý tính to|n chương trình • Biến phải đặt tên theo qui tắc đặt tên • Chú ý: – Biến cấp ph|t vùng nhớ nhớ chính, không 25 Ví dụ 26 6.2.7 Hàm #include #include void main(){ float a, b, x; printf(“Nhap he so a khac 0“);scanf(“%f”,&a); printf(“Nhap he so b, b=“);scanf(“%f”,&b); x = -b/a; printf(“Nghiem cua phuong trinh %f”,x); getch(); } 27 • Mô tả: – H{m (function) l{ chương trình có chức nhận liệu đầu v{o (c|c tham số đầu v{o), thực chức n{o v{ đưa c|c kết • loại h{m: – H{m có sẵn thư viện – H{m người lập trình định nghĩa (viết ra) 28 6.2.7 Hàm 6.2.8 Biểu thức • Ví dụ h{m có sẵn thư viện: • Định nghĩa: – Biểu thức l{ ghép nối c|c to|n tử (operator) v{ c|c to|n hạng (operand) theo quy tắc x|c định – C|c to|n hạng l{ biến, – C|c to|n tử đa dạng: cộng, trừ, nh}n, chia • Ví dụ: Biểu thức tính biệt thức delta b*b – 4*a*c - a, b, c, l{ c|c to|n hạng - C|c to|n tử (phép to|n): *, - – Thư viện stdio.h h{m: scanf, printf, … – Thư viện math.h h{m: pow, sin, cos, sqrt, … 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 x Sin(x) sin(0)=0 cos(x) Cos x Cos(x) cos(0)=1 29 30 6.2.9 C}u lệnh 6.2.9 C}u lệnh • Câu lệnh (statement) diễn tả một nhóm thao tác giải thuật • Chương trình tạo thành từ dãy câu lệnh • Cuố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 • Có loại nhóm câu lệnh – Nhóm câu lệnh đơn: câu lệnh không chứa câu lệnh khác – Ví dụ: • Lệnh gán: delta = 100; • Lệnh xuất hình: printf(« Hello World »); – Nhóm câu lệnh phức: câu lệnh chứa câu lệnh khác – Ví dụ • Lệnh khối đặt cặp ngoặc nhọn { } 31 32 6.2.10 Chú thích Nội dung • Chú thích (comment): 6.1 Lịch sử ph|t triển 6.2 C|c phần tử ngôn ngữ C 6.3 Cấu trúc 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++ – Lời mô tả, giải thích vắn tắt cho câu lệnh, đoạn chương trình chương trình – Giúp việc đọc hiểu chương trình dễ dàng – Chú thích câu lệnh -> không ảnh hưởng tới chương trình • Cách viết thích: C có hai cách – Chú thích dòng: sử dụng « // » – Chú thích nhiều dòng: sử dụng « /* » « */ » 33 34 Ví dụ Ví dụ #include void main(){ // Khai bao cac bien int a, b; int tong, hieu, tich; // Nhap vao tu ban phim so nguyen printf(“\n Nhap vao so nguyen thu nhat: ”); scanf(“%d”,&a); printf(“\n Nhap vao so nguyen thu hai: “); scanf(“%d”,&b); // Tinh tong, hieu, tich cua so tong = a+b; hieu = a – b;tich = a*b; // Hien thi cac gia tri man hinh printf(“\n Tong cua so vua nhap la %d”, tong); printf(“\n Hieu cua so vua nhap la %d”, hieu); printf(“\n Tich cua so vua nhap la %d”, tich); // Doi nguoi dung an phim bat ki getch(); } 35 36 6.3 Cấu trúc chương trình C 6.3 Cấu trúc chương trình C • Phần 1: Khai b|o tệp tiêu đề: • Gồm phần có thứ tự sau: – Thông b|o cho chương trình dịch biết l{ chương trình có sử dụng thư viện n{o – VD: #include // thao tác vào #include // h{m DOS Phần 1: Khai b|o tệp tiêu đề: #include Phần 2: Định nghĩa kiểu liệu mới: typedef Phần 3: Khai b|o c|c h{m nguyên mẫu • Phần 2: Định nghĩa c|c kiểu liệu – Định nghĩa c|c kiểu liệu (nếu cần) dùng cho chương trình Phần 4: Khai b|o c|c biến to{n cục Phần 5: H{m main() Phần 6: Nội dung c|c h{m đ~ khai b|o 38 37 6.3 Cấu trúc chương trình C 6.3 Cấu trúc chương trình C • Phần 3: Khai b|o c|c h{m nguyên mẫu: • Phần 5: Hàm main( ) – Khi thực hiện, chương trình bắt đầu việc thực c|c lệnh h{m main( ) – Trong hàm main( ) có lệnh gọi tới c|c hàm khác – Giúp cho chương trình dịch biết thông tin c|c h{m sử dụng chương trình • Phần 4: Khai b|o c|c biến to{n cục • Phần 6: Nội dung c|c h{m đ~ khai b|o – Ví dụ: int a, b; int tong, hieu, tich; – C{i đặt (viết m~) cho c|c h{m đ~ khai b|o nguyên mẫu phần 39 40 10 Nội dung 6.4 Biên dịch chương trình C • Preprocessor – Loại bỏ c|c thích – Dịch c|c chị thị tiền xử lý bắt đầu l{ # • C Compiler – Biên dịch m~ nguồn th{nh m~ assembly • Assembler – Tạo m~ object • Trên UNIX file o • Trên MS-DOS file.OBJ • Link Editor – Nếu tệp nguồn tham chiếu đến c|c h{m thư viện/h{m định nghĩa Link editor kết hợp c|c h{m n{y với h{m main() để tạo tệp thực thi • Trong MS-DOS file exe 6.1 Lịch sử ph|t triển 6.2 C|c phần tử ngôn ngữ C 6.3 Cấu trúc 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 42 Nội dung 6.5.1 Giới thiệu 6.1 Lịch sử ph|t triển 6.2 C|c phần tử ngôn ngữ C 6.3 Cấu trúc 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++ • 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++ hãng Borland – MSC Microsoft – GCC GNU – Dev C++ Bloodshed Software • Turbo C++ có nhiều phiên – Phiên lựa chọn: Turbo C++ 3.0 43 44 11 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 Cài đặt • B1: Chuẩn bị c{i Turbo C++ 3.0 (~4 MB) Copy c{i n{y v{o m|y bạn, giả sử v{o thư mục C:\TC_Setup • B2: Đến thư mục chứa c{i Turbo C++ 3.0 (như giả sử 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 yêu cầu bạn ổ đĩa chứa c{i Turbo C++ 3.0 – Enter the SOURCE drive to use: – H~y nhập v{o tên ổ đĩa, chẳng hạn C (ta để c{i Turbo C++ 3.0 thư mục C:\TC_Setup) • 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 Turbo C++ 3.0 – Enter the SOURCE Path: – Thông thường chương trình tự tìm cho bạn, v{ bạn cần ấn Enter để chuyển sang bước • B4: X|c định thư mục c{i đặt Thư mục n{y chứa c|c file Turbo C++ 3.0 để bạn sử dụng sau n{y – Directories… [C:\TC] – Option…[IDE CMD LIB CLASS BGI HELP EXMPL] 45 46 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 • Start Installation • Giao diện sử dụng chương trình • Thư mục c{i đặt mặc định l{ \TC nằm thư mục gốc ổ đĩa chứa c{i Nếu bạn muốn thay đổi thư mục c{i đặt h~y dùng c|c phím để di chuyển hộp s|ng đến phần Directories, gõ Enter v{ nhập v{o đường dẫn mới, sau ấn phím Esc để trở • Dùng phím để di chuyển hộp s|ng đến phần Start Installation v{ ấn Enter Chương trình tự động thực v{ ho{n tất qu| trình c{i đặt cho bạn • Lưu ý: Bạn copy to{n thư mục đ~ c{i đặt Turbo C++ 3.0 m|y v{ sử dụng, bạn phải cho Turbo C++ biết đường dẫn tới c|c tệp tiêu đề v{ c|c tệp thư viện c|ch v{o menu Option, chọn Directories 47 48 12 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 • Khởi động chương trình: tìm đến thư mục BIN thư mục c{i đặt v{ chạy file TC.EXE • Tạo cửa sổ soạn thảo mới: chọn menu File (hoặc ấn Alt-F), sau chọn mục New để mở cửa sổ soạn thảo – Gõ chương trình nguồn v{o cửa số soạn thảo – Lưu chương trình với tên file,ví dụ: HelloWorld.cpp Video: Setup TurboC 49 • Biên dịch chương trình: bấm F9 • Chạy chương trình: Ctrl + F9 50 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 Video: Sử dụng TurboC 51 13 [...]... thực thi được • Trong MS-DOS là file exe 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 42 Nội dung 6. 5.1 Giới thiệu 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++ • Trình biên... tiếp theo • B4: X|c định thư mục 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] 45 46 6.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 6. 5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 • Start Installation • Giao diện sử dụng của chương trình • 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... 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 phiên bản – Phiên bản lựa chọn: Turbo C++ 3.0 43 44 11 6. 5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 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.. .Nội dung 6. 4 Biên dịch chương trình C • Preprocessor – Loại bỏ c|c chú thích – Dịch c|c chị thị tiền xử lý bắt đầu l{ # • C Compiler – Biên dịch m~ nguồn th{nh m~ assembly • Assembler – Tạo ra m~ object •... đặt của Turbo C++ 3.0 về m|y v{ sử dụng, nhưng bạn phải chỉ cho Turbo C++ biết đường dẫn tới c|c tệp tiêu đề v{ c|c tệp thư viện bằng c|ch v{o menu Option, chọn Directories 47 48 12 6. 5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 6. 5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 • Khởi động chương trình: tìm đến thư mục BIN trong thư mục c{i đặt v{ chạy file TC.EXE • Tạo cửa sổ soạn thảo mới: chọn menu File (hoặc ấn Alt-F),... soạn thảo mới – Gõ chương trình nguồn v{o cửa số soạn thảo – Lưu chương trình với tên file,ví dụ: HelloWorld.cpp Video: Setup TurboC 49 • Biên dịch chương trình: bấm F9 • Chạy chương trình: Ctrl + F9 50 6. 5.2 C{i đặt v{ sử dụng Turbo C++ 3.0 Video: Sử dụng TurboC 51 13 ... số nguyên • Nhận gi| trị từ từ - 32, 768 (- 215) đến 32, 767 (215 - 1) 17 18 6. 2.4 C|c kiểu liệu 6. 2.5 Hằng số • Ví dụ (tiếp) • Định nghĩa: – Hằng số (constant) l{ đại lượng có gi| trị không đổi... lục ph}n Gi| trị b|t ph}n 2007 0x7D7 03727 3 96 0x18C 061 4 Số thực dấu phẩy động 3.14159 31.4159 E-1 123.4 56 12.34 56 E+1 1.234 56 E+2 21 22 6. 2.5 Hằng số 6. 2.5 Hằng số • Biểu diễn ký tự: C, ký tự... ph|t triển 6. 2 C|c phần tử ngôn ngữ C 6. 3 Cấu trúc 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 42 Nội dung 6. 5.1 Giới thiệu 6. 1 Lịch sử ph|t triển 6. 2 C|c phần
Ngày đăng: 04/12/2015, 07:56
Xem thêm: Bài giảng tin học đại cương bài 6 đh bách khoa hà nội, Bài giảng tin học đại cương bài 6 đh bách khoa hà nội