Tin học đại cương Bài 6: Tổng quan về ngôn ngữ C

• 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), sau đó chọn mục New để mở cửa sổ 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 • Biên dịch chương trình: bấm F9 • Chạy chương trình: Ctrl + F9

pdf13 trang | Chia sẻ: phanlang | Lượt xem: 1945 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Tin học đại cương Bài 6: Tổng quan về ngôn ngữ C, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 Phần 3. Lập trình C Bài 6: Tổng quan về ngôn ngữ C 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 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 • Ngôn ngữ C 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. 2 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… 5 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 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… 7 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 3 Ví dụ chương trình C đơn giản #include #include 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.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ú ý: – C là ngôn ngữ phân biệt chữ hoa, chữ thường – Tất cả từ khóa trong C đều viết bằng chữ cái thường 12 4 6.2.2. Từ khóa • Một số 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 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 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 5 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 (- 215) đến 32,767 (215 - 1) 18 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 6.2.5. Hằng số • Định nghĩa: –Hằng số (constant) l{ đại lượng có gi| trị không đổi trong chương trình. • Biểu diễn hằng số trong ngôn ngữ C: – Hằng số nguyên – Hằng số thực – Hằng ký tự – Hằng chuỗi ký tự 20 6 6.2.5. Hằng số • Biểu diễn hằng số nguyên: trong C, một hằng số nguyên có thể biểu diễn dưới 3 dạng –Dạng thập ph}n –Dạng thập lục ph}n –Dạng b|t ph}n Gi| trị thập ph}n Gi| trị thập lục ph}n Gi| trị b|t ph}n 2007 0x7D7 03727 396 0x18C 0614 21 6.2.5. Hằng số • Biểu diễn hằng số thực: trong C, một hằng số thực có thể biểu diễn dưới 2 dạng – Dạng số thực dấu phẩy tĩnh – Dạng số thực dấu phẩy động • Ví dụ Số thực dấu phẩy tĩnh Số thực dấu phẩy động 3.14159 31.4159 E-1 123.456 12.3456 E+1 hoặc 1.23456 E+2 22 6.2.5. Hằng số • Biểu diễn hằng ký tự: trong C, một hằng ký tự có thể biểu diễn theo hai c|ch – Bằng ký hiệu của ký tự đặt giữa hai dấu nh|y đơn – Bằng số thứ tự của ký tự đó trong bảng m~ ASCII (số nguyên -> tu}n thủ quy tắc biểu diễn hằng số nguyên) • Ví dụ Ký tự cần biểu diễn Cách 1 Cách 2 Chữ c|i A ‘A’ 65, 0x41, 0101 Số 1 ‘1’ 49, 0x31, 061 Dấu nh|y đơn ‘\’’ 39, 0x27, 047 Ký tự tab ‘\t’ 9, 0x09, 011 23 6.2.5. Hằng số • Biểu diễn hằng x}u (chuỗi) ký tự: – Hằng xâu kí tự được biểu diễn bởi dãy các kí tự thành phần có trong xâu đó và được đặt trong cặp dấu nháy kép. • Ví dụ: – “ngon ngu lap trinh C” – “Tin hoc dai cuong” – “Dai hoc Bach Khoa Ha Noi” 24 7 6.2.6. Biến • Định nghĩa: – Biến (variable) l{ đại lượng m{ gi| trị có thể thay đổi trong chương trình. • Biến phải thuộc một kiểu dữ liệu n{o đó. • Biến được sử dụng để lưu trữ dữ liệu, phục vụ cho xử lý tính to|n trong chương trình. • Biến phải được đặt tên theo qui tắc đặt tên. • Chú ý: – Biến được cấp ph|t vùng nhớ trong bộ nhớ chính, còn hằng thì không. 25 Ví dụ 1. Minh họa sử dụng biến #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(); } 26 Ví dụ 2 #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 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ả. • 2 loại h{m: – H{m có sẵn trong thư viện – H{m do người lập trình định nghĩa (viết ra) 28 8 6.2.7. Hàm • Ví dụ h{m có sẵn trong thư việ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 của x Sin(x) sin(0)=0 cos(x) Cos của x Cos(x) cos(0)=1 29 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 hạng (operand) theo một 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 biệt thức delta b*b – 4*a*c - a, b, c, 4 l{ c|c to|n hạng - C|c to|n tử (phép to|n): *, - 30 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 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 31 6.2.9. C}u lệnh • Có 2 loại nhóm câu lệnh – 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ụ: • Lệnh gán: delta = 100; • Lệnh xuất ra màn hình: printf(« Hello World »); – 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 { } 32 9 6.2.10. Chú thích • Chú thích (comment): – Lời mô tả, giải 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à « */ » 33 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++ 34 Ví dụ #include void main(){ // Khai bao cac bien int a, b; int tong, hieu, tich; // Nhap vao tu ban phim 2 so nguyen printf(“\n Nhap vao so nguyen thu nhat: ”); scanf(“%d”,&a); printf(“\n Nhap vao so nguyen thu hai: “); scanf(“%d”,&b); 35 Ví dụ // Tinh tong, hieu, tich cua 2 so do tong = a+b; hieu = a – b;tich = a*b; // Hien thi cac gia tri ra man hinh printf(“\n Tong cua 2 so vua nhap la %d”, tong); printf(“\n Hieu cua 2 so vua nhap la %d”, hieu); printf(“\n Tich cua 2 so vua nhap la %d”, tich); // Doi nguoi dung an phim bat ki getch(); } 36 10 37 • Gồm 6 phần có thứ tự như sau: Phần 1: Khai b|o tệp tiêu đề: #include Phần 2: Định nghĩa kiểu dữ liệu mới: typedef ... Phần 3: Khai b|o c|c h{m nguyên mẫu 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 6.3. Cấu trúc cơ bản của chương trình C 38 • Phần 1: Khai b|o tệp tiêu đề: – Thông b|o cho chương trình dịch biết l{ chương trình có sử dụng những thư viện n{o. – VD: #include // thao tác vào ra #include // h{m của DOS • Phần 2: Định nghĩa c|c kiểu dữ liệu mới –Định nghĩa c|c kiểu dữ liệu mới (nếu cần) dùng cho cả chương trình. 6.3. Cấu trúc cơ bản của chương trình C 39 • 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; 6.3. Cấu trúc cơ bản của chương trình C 40 • Phần 5: Hàm main( ) – Khi thực hiện, chương trình sẽ bắt đầ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. 6.3. Cấu trúc cơ bản của chương trình C 11 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++ 41 42 • 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. • 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 được định nghĩa thì Link editor kết hợp c|c h{m n{y với h{m main() để tạo ra tệp có thể thực thi được • Trong MS-DOS là file .exe 6.4. Biên dịch chương trình C 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++ 43 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 phiên bản – Phiên bản lựa chọn: Turbo C++ 3.0 44 12 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++ 3.0 – Enter 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). 45 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. 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] 46 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õ Enter v{ nhập v{o đường dẫn mới, sau đó ấn phím Esc để trở về. • Dùng các phím  và  để di chuyển hộp s|ng đến phần Start Installation v{ ấn Enter. Chương trình sẽ tự động thực hiện v{ ho{n tất qu| trình c{i đặt cho bạn. • Lưu ý: Bạn có thể copy to{n bộ thư mục đ~ c{i đặ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 6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0 • Giao diện sử dụng của chương trình 48 13 6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0 49 Video: Setup TurboC 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), sau đó chọn mục New để mở cửa sổ 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 • 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 51 Video: Sử dụng TurboC

Các file đính kèm theo tài liệu này:

  • pdf06_tong_quan_ve_ngon_ngu_c_5732.pdf
Tài liệu liên quan