Bài giảng Tin học đại cương: Bài 6 - ĐH Bách khoa Hà Nội
lượt xem 10
download
Bài 6 Tổng quan về ngôn ngữ C thuộc bài giảng "Tin học đại cương", cùng nắm kiến thức trong chương này thông qua các các nội dung sau: lịch sử phát triển, các phần tử cơ bản của ngôn ngữ C, cấu trúc cơ bản của chương trình C, biên dịch chương trình C, trình biên dịch Turbo C++.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Tin học đại cương: Bài 6 - ĐH Bách khoa Hà Nội
- TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Nội dung 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ử cơ bản của ngôn ngữ C TIN HỌC ĐẠI CƯƠNG 6.3. Cấu trúc cơ bản của chương trình C Phần 3. Lập trình C 6.4. Biên dịch chương trình C 6.5. Trình biên dịch Turbo C++ Bài 6: Tổng quan về ngôn ngữ C 2 Nội dung 6.1. Lịch sử ph|t triển 6.1. Lịch sử ph|t triển • Ngôn ngữ C ra đời tại phòng thí nghiệm BELL 6.2. C|c phần tử cơ bản của ngôn ngữ C của tập đo{n AT&T (Hoa Kỳ) • Do Brian W. Kernighan và Dennis M. Ritchie 6.3. Cấu trúc cơ bản của chương trình C ph|t triển v{o đầu 1970, hoàn thành 1972 6.4. Biên dịch chương trình C • C dựa trên nền c|c ngôn ngữ BCPL (Basic 6.5. Trình biên dịch Turbo C++ 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 4 1
- 6.1. Lịch sử ph|t triển 6.1. Lịch sử ph|t triển • Đặc điểm của ngôn ngữ lập trình C • 1978: C được giới thiệu trong phiên bản đầu của – Ngôn ngữ lập trình hệ thống cuốn s|ch "The C programming language" – Tính khả chuyển, linh hoạt cao • 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 – Có thế mạnh trong xử lý dữ liệu số, văn bản, cơ nhưng không tương thích nhau. sở dữ liệu • Năm 1989, Viện tiêu chuẩn quốc gia của Hoa Kỳ • C thường được sử dụng để viết các chương (American National Standards Institute - ANSI) đ~ trình hệ thống công bố phiên bản chuẩn hóa của ngôn ngữ C: – Hệ điều hành Unix có 90% mã C, 10% hợp ngữ ANSI C hay C chuẩn hay C89 – 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 Nội dung • Các phiên bản ngôn ngữ C 6.1. Lịch sử ph|t triển – ANSI C: C chuẩn (1989) 6.2. C|c phần tử cơ bản của ngôn ngữ C – Các phiên bản khác thường bổ sung thêm thư 6.3. Cấu trúc cơ bản của chương trình C viện của ANSI C 6.4. Biên dịch chương trình 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 6.5. Trình biên dịch Turbo C++ 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 8 2
- Ví dụ chương trình C đơn giản 6.2.1. Tập ký tự #include • Tập ký tự l{ tập c|c phần tử cơ bản tạo nên #include chương trình void main(){ – Tổ hợp c|c ký tự → từ printf(“Hello World\n”); – Liên kết c|c từ theo cú ph|p → c}u lệnh getch(); – Tổ chức c|c c}u lệnh → chương trình } • Ví dụ: – include, void, main… – printf(“…”), getch(); 9 10 6.2.1. Tập ký tự 6.2.2. Từ khóa • Tập ký tự trong C • Từ khóa (keyword) – 26 chữ c|i hoa: A B C ... X Y Z – Có sẵn trong mỗi ngôn ngữ lập trình – 26 chữ c|i thường:a b c … x y z. – D{nh riêng cho c|c mục đích x|c định – 10 chữ số: 0 1 2 3 4 5 6 7 8 9. • Đặt tên cho kiểu dữ liệu: int, float, double… – C|c kí hiệu to|n học:+ - * / = < > • Mô tả c|c lệnh, c|c cấu trúc lập trình: if, – C|c dấu ngăn c|ch: . ; , : space tab while, case… – C|c dấu ngoặc:( ) [ ] { } • Chú ý: – C|c kí hiệu đặc biệt:_ ? $ & # ^ \ ! ‘ “ ~ .v.v. – 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 11 12 3
- 6.2.2. Từ khóa 6.2.3. Định danh • Một số từ khóa hay dùng trong Turbo C • Đị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 13 14 6.2.3. Định danh 6.2.3. Định danh • Quy tắc đặt tên định danh trong C • Ví dụ – C|c kí tự được sử dụng: chữ c|i, chữ số v{ dấu – Định danh hợp lệ: gạch dưới “_” (underscore) i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1 – Bắt đầu của định danh phải l{ chữ c|i hoặc dấu – Định danh không hợp lệ gạch dưới “_”, không được bắt đầu định danh • 1_a, 3d, 55x (bắt đầu bằng chữ số) bằng chữ số. • so luong, ti le (có dấu c|ch - kí tự không hợp – Định danh do người lập trình đặt không được lệ) trùng với các từ khóa của C • int, char (trùng với từ khóa của ngôn ngữ C) 15 16 4
- 6.2.3. Định danh 6.2.4. C|c kiểu dữ liệu • Một số quy ước (code convention) • Định nghĩa: – Nên sử dụng dấu gạch dưới để ph}n t|ch c|c định danh – Một kiểu dữ liệu l{ một tập hợp c|c gi| trị m{ một gồm nhiều từ – Định danh nên có tính gợi nhớ dữ liệu thuộc kiểu dữ liệu đó có thể nhận được. – Quy ước thường được sử dụng: – Trên một kiểu dữ liệu ta x|c định một số phép • Hằng số dùng chữ c|i hoa to|n đối với c|c dữ liệu thuộc kiểu dữ liệu đó. • C|c biến, h{m, cấu trúc dùng chữ c|i thường • Ví dụ: • Ví dụ Định danh Loại đối tượng – Kiểu dữ liệu int (số nguyên) trong C HANG_SO_1, _CONSTANT_2 Hằng số – Một dữ liệu thuộc kiểu dữ liệu int a, b, i, j, count Biến • L{ một số nguyên nhap_du_lieu, tim_kiem, xu_li Hàm • Nhận gi| trị từ từ - 32,768 (- 215) đến 32,767 (215 - 1) sinh_vien, mat_hang Cấu trúc 17 18 6.2.4. C|c kiểu dữ liệu 6.2.5. Hằng số • Ví dụ (tiếp) • Định nghĩa: – Một số phép to|n được định nghĩa trên kiểu dữ liệu int – Hằng số (constant) l{ đại lượng có gi| trị của C không đổi trong chương trình. Tên phép toán Ký hiệu • Biểu diễn hằng số trong ngôn ngữ C: Đảo dấu - – Hằng số nguyên Cộng + – Hằng số thực Trừ - – Hằng ký tự Nhân * – Hằng chuỗi ký tự Chia lấy phần nguyên / Chia lấy phần dư % So sánh >, =,
- 6.2.5. Hằng số 6.2.5. Hằng số • Biểu diễn hằng số nguyên: trong C, một hằng • Biểu diễn hằng số thực: trong C, một hằng số số nguyên có thể biểu diễn dưới 3 dạng thực có thể biểu diễn dưới 2 dạng – Dạng thập ph}n – Dạng số thực dấu phẩy tĩnh – Dạng thập lục ph}n – Dạng số thực dấu phẩy động – Dạng b|t ph}n • Ví dụ Số thực dấu phẩy tĩnh Số thực dấu phẩy động Gi| trị thập ph}n Gi| trị thập lục ph}n Gi| trị b|t ph}n 3.14159 31.4159 E-1 2007 0x7D7 03727 396 0x18C 0614 123.456 12.3456 E+1 hoặc 1.23456 E+2 21 22 6.2.5. Hằng số 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 hằng x}u (chuỗi) ký tự: biểu diễn theo hai c|ch – Hằng xâu kí tự được biểu diễn bởi dãy các kí tự – Bằng ký hiệu của ký tự đặt giữa hai dấu nh|y đơn thành phần có trong xâu đó và được đặt trong – Bằng số thứ tự của ký tự đó trong bảng m~ ASCII (số cặp dấu nháy kép. nguyên -> tu}n thủ quy tắc biểu diễn hằng số nguyên) • Ví dụ • Ví dụ: – “ngon ngu lap trinh C” Ký tự cần biểu diễn Cách 1 Cách 2 – “Tin hoc dai cuong” Chữ c|i A ‘A’ 65, 0x41, 0101 – “Dai hoc Bach Khoa Ha Noi” Số 1 ‘1’ 49, 0x31, 061 Dấu nh|y đơn ‘\’’ 39, 0x27, 047 Ký tự tab ‘\t’ 9, 0x09, 011 23 24 6
- 6.2.6. Biến Ví dụ 1. Minh họa sử dụng biến • Định nghĩa: #include #include – Biến (variable) l{ đại lượng m{ gi| trị có thể thay #define PI 3.14 đổi trong chương trình. void main(){ • Biến phải thuộc một kiểu dữ liệu n{o đó. float r, s;//Hai biến r, s thuộc kiểu số thực • Biến được sử dụng để lưu trữ dữ liệu, phục printf(“Nhap ban kinh hinh tron:“); vụ cho xử lý tính to|n trong chương trình. scanf(“%f”,&r); s = PI * r * r; • Biến phải được đặt tên theo qui tắc đặt tên. printf(“Dien tich hinh tron %f\n”,s); • Chú ý: getch(); – Biến được cấp ph|t vùng nhớ trong bộ nhớ } chính, còn hằng thì không. 25 26 Ví dụ 2 6.2.7. Hàm #include • Mô tả: #include – H{m (function) l{ một chương trình con có chức void main(){ năng nhận dữ liệu đầu v{o (c|c tham số đầu v{o), float a, b, x; thực hiện một chức năng n{o đó v{ đưa ra c|c kết printf(“Nhap he so a khac 0“);scanf(“%f”,&a); quả. printf(“Nhap he so b, b=“);scanf(“%f”,&b); x = -b/a; • 2 loại h{m: printf(“Nghiem cua phuong trinh %f”,x); – H{m có sẵn trong thư viện getch(); – H{m do người lập trình định nghĩa (viết ra) } 27 28 7
- 6.2.7. Hàm 6.2.8. Biểu thức • Ví dụ h{m có sẵn trong thư viện: • Định nghĩa: – Thư viện stdio.h h{m: scanf, printf, …. – Biểu thức l{ sự ghép nối c|c to|n tử (operator) – Thư viện math.h h{m: pow, sin, cos, sqrt, … 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 Hàm Ý nghĩa Ký hiệu to|n học Ví dụ – C|c to|n tử rất đa dạng: cộng, trừ, nh}n, chia.. pow(x,y) x mũ y xy pow(2,3)=8 • Ví dụ: Biểu thức tính biệt thức delta sin(x) Sin của x Sin(x) sin(0)=0 b*b – 4*a*c - a, b, c, 4 l{ c|c to|n hạng cos(x) Cos của x Cos(x) cos(0)=1 - C|c to|n tử (phép to|n): *, - 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 hoặc một • Có 2 loại nhóm câu lệnh nhóm các thao tác trong giải thuật. – Nhóm các câu lệnh đơn: những câu lệnh không • Chương trình được tạo thành từ dãy các câu chứa câu lệnh khác. lệnh. – Ví dụ: • Cuối mỗi câu lệnh bắt buộc có dấu chấm phẩy • Lệnh gán: delta = 100; ‘;’ để đ|nh dấu kết thúc câu lệnh • 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 { } 31 32 8
- 6.2.10. Chú thích Nội dung • Chú thích (comment): 6.1. Lịch sử ph|t triển – Lời mô tả, giải thích vắn tắt cho một câu lệnh, 6.2. C|c phần tử cơ bản của ngôn ngữ C một đoạn chương trình hoặc cả chương trình 6.3. Cấu trúc cơ bản của chương trình C – Giúp việc đọc và hiểu chương trình dễ dàng hơn 6.4. Biên dịch chương trình C – Chú thích không phải là câu lệnh -> không ảnh hưởng tới chương trình 6.5. Trình biên dịch Turbo C++ • 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 34 Ví dụ Ví dụ #include // Tinh tong, hieu, tich cua 2 so do void main(){ tong = a+b; hieu = a – b;tich = a*b; // Khai bao cac bien // Hien thi cac gia tri ra man hinh int a, b; printf(“\n Tong cua 2 so vua nhap int tong, hieu, tich; la %d”, tong); // Nhap vao tu ban phim 2 so nguyen printf(“\n Hieu cua 2 so vua nhap printf(“\n Nhap vao so nguyen thu la %d”, hieu); nhat: ”); printf(“\n Tich cua 2 so vua nhap scanf(“%d”,&a); la %d”, tich); printf(“\n Nhap vao so nguyen thu // Doi nguoi dung an phim bat ki hai: “); getch(); scanf(“%d”,&b); } 35 36 9
- 6.3. Cấu trúc cơ bản của chương trình C 6.3. Cấu trúc cơ bản của chương trình C • Phần 1: Khai b|o tệp tiêu đề: • Gồm 6 phần có thứ tự như sau: – 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. Phần 1: Khai b|o tệp tiêu đề: #include – VD: #include // thao tác vào ra Phần 2: Định nghĩa kiểu dữ liệu mới: typedef ... #include // h{m của DOS Phần 3: Khai b|o c|c h{m nguyên mẫu • Phần 2: Định nghĩa c|c kiểu dữ liệu mới Phần 4: Khai b|o c|c biến to{n cục – Định nghĩa c|c kiểu dữ liệu mới (nếu cần) Phần 5: H{m main() dùng cho cả chương trình. Phần 6: Nội dung c|c h{m đ~ khai b|o 38 37 6.3. Cấu trúc cơ bản của chương trình C 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: • Phần 5: Hàm main( ) – Giúp cho chương trình dịch biết được những – Khi thực hiện, chương trình sẽ bắt đầu bằng thông tin cơ bản của c|c h{m sử dụng trong việc thực hiện c|c lệnh trong h{m main( ). chương trình. – Trong hàm main( ) có thể có lệnh gọi tới c|c • Phần 4: Khai b|o c|c biến to{n cục hàm khác. – Ví dụ: • Phần 6: Nội dung của c|c h{m đ~ khai b|o int a, b; – C{i đặt (viết m~) cho c|c h{m đ~ khai b|o int tong, hieu, tich; nguyên mẫu ở phần 3. 39 40 10
- Nội dung 6.4. Biên dịch chương trình C • Preprocessor 6.1. Lịch sử ph|t triển – Loại bỏ c|c chú thích 6.2. C|c phần tử cơ bản của ngôn ngữ C – Dịch c|c chị thị tiền xử lý bắt đầu l{ # • C Compiler 6.3. Cấu trúc cơ bản của chương trình C – Biên dịch m~ nguồn th{nh m~ assembly. • Assembler 6.4. Biên dịch chương trình C – Tạo ra m~ object. 6.5. Trình biên dịch Turbo C++ • 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 41 42 Nội dung 6.5.1. Giới thiệu 6.1. Lịch sử ph|t triển • Trình biên dịch (compiler): dịch m~ nguồn 6.2. C|c phần tử cơ bản của ngôn ngữ C (source code) th{nh file thực thi 6.3. Cấu trúc cơ bản của chương trình C • C|c trình biên dịch C phổ biến 6.4. Biên dịch chương trình C – Turbo C++ của hãng Borland – MSC của Microsoft 6.5. Trình biên dịch Turbo C++ – 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 • B3: Chương trình yêu cầu bạn nhập v{o đường dẫn tới thư • B1: Chuẩn bị bộ c{i của Turbo C++ 3.0 (~4 MB) Copy bộ mục chứa c|c file của Turbo C++ 3.0 c{i n{y v{o m|y của bạn, giả sử v{o thư mục C:\TC_Setup. – Enter the SOURCE Path: • B2: Đến thư mục chứa bộ c{i Turbo C++ 3.0 (như giả sử ở – Thông thường chương trình sẽ tự tìm cho bạn, v{ bạn trên là C:\TC_Setup) v{ kích hoạt file INSTALL.EXE để chạy chỉ cần ấn Enter để chuyển sang bước tiếp theo. chương trình c{i đặt. Chương trình c{i đặt sẽ yêu cầu bạn • B4: X|c định thư mục c{i đặt. Thư mục n{y sẽ chứa c|c file chỉ ra ổ đĩa trên đó chứa bộ c{i Turbo C++ 3.0 của Turbo C++ 3.0 để bạn sử dụng sau n{y. – Enter the SOURCE drive to use: – Directories… [C:\TC] – H~y nhập v{o tên ổ đĩa, chẳng hạn C (ta để bộ c{i Turbo – Option…[IDE CMD LIB CLASS BGI HELP EXMPL] C++ 3.0 ở thư mục C:\TC_Setup). 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 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 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), 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 Video: Setup TurboC • Biên dịch chương trình: bấm F9 49 • 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng tin học đại cương - trường ĐH Tôn Đức Thắng
175 p | 1024 | 287
-
Bài giảng Tin học đại cương - Chương 1: Các vấn đề cơ bản về CNTT
167 p | 419 | 31
-
Bài giảng Tin học đại cương: Bài 1 - ĐH Bách khoa Hà Nội
33 p | 263 | 21
-
Bài giảng Tin học đại cương: Bài 4 - ĐH Bách khoa Hà Nội
8 p | 155 | 13
-
Bài giảng Tin học đại cương: Chương 2 - Tin học và công nghệ thông tin
12 p | 183 | 10
-
Bài giảng Tin học đại cương: Bài 3 - ĐH Bách khoa Hà Nội
14 p | 143 | 8
-
Bài giảng Tin học đại cương - Nguyễn Vũ Duy
95 p | 43 | 8
-
Bài giảng Tin học đại cương: Phần 1 - ThS. Phạm Thanh Bình
18 p | 93 | 6
-
Bài giảng Tin học đại cương: Chương 1 - Đại cương về tin học
16 p | 124 | 5
-
Bài giảng Tin học đại cương: Chương 1 - Thông tin
29 p | 150 | 5
-
Bài giảng Tin học đại cương: MS Excel - ThS. Ngô Cao Định
31 p | 11 | 4
-
Bài giảng Tin học đại cương: Tổng quan về máy tính - ThS. Ngô Cao Định
38 p | 15 | 4
-
Bài giảng Tin học đại cương: Biểu diễn và xử lý thông tin - ThS. Ngô Cao Định
56 p | 7 | 3
-
Bài giảng Tin học đại cương: Mạng và Internet - ThS. Ngô Cao Định
55 p | 9 | 3
-
Bài giảng Tin học đại cương: Hệ điều hành - ThS. Ngô Cao Định
86 p | 8 | 2
-
Bài giảng Tin học đại cương: Chương 1 - Trần Quang Hải Bằng (ĐH giao thông Vận tải)
31 p | 80 | 2
-
Bài giảng Tin học đại cương: Bài 13 - Bùi Thị Thu Cúc
10 p | 78 | 2
-
Bài giảng Tin học đại cương: Tổng quan về cơ sở dữ liệu - ThS. Ngô Cao Định
11 p | 7 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn