Giáo trình Tin học đại cương - Chương 1: Tổng quan về ngôn ngữ C

Bài tập 2: Hãy cho biết giá trị của các hằng nguyên sau trong chương trình: 0345, 0x168, 06356, 0xAF04  Bài tập 3: Cho biết biểu diễn dưới dạng số thực dấu phẩy tĩnh của các hằng số thực sau:  535.235 E+3  256.89 E-1  10.103 E-5

pdf11 trang | Chia sẻ: huongthu9 | Lượt xem: 624 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giáo trình Tin học đại cương - Chương 1: 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
1Chương 1: Tổng quan về ngôn ngữ C 2 Nội dung chương này  1.1. Lịch sử phát triển ngôn ngữ lập trình C  1.2. Các phần tử cơ bản của ngôn ngữ C  1.3. Cấu trúc cơ bản của một chương trình C  1.4. Biên dịch chương trình viết bằng C  1.5. Bài tập 3 1.1. Lịch sử phát triển ngôn ngữ lập trình C  Ngôn ngữ lập trình C (NNLT 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 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. 4 1.1. Lịch sử phát triển ngôn ngữ lập trình C  Đặc điểm của NNLT C:  Là một ngôn ngữ lập trình hệ thống mạnh, khả chuyển, có tính linh hoạt cao.  Có thế mạnh trong xử lý các dạng dữ liệu số, văn bản, cơ sở dữ liệu.  Thường được sử dụng để viết:  Các chương trình hệ thống như hệ điều hành (VD Unix: 90% viết bằng C, 10% viết bằng hợp ngữ).  Các chương trình ứng dụng chuyên nghiệp có can thiệp tới dữ liệu ở mức thấp như xử lý văn bản, xử lí ảnh 51.1. Lịch sử phát triển ngôn ngữ lập trình C  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 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.1. Lịch sử phát triển ngôn ngữ lập trình C  Tất cả các phiên bản của ngôn ngữ C hiện nay đều tuân theo các mô tả đã được nêu ra trong ANSI C, sự khác biệt nếu có thì chủ yếu ở các thư viện bổ sung.  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 1.2. Các phần tử cơ bản của ngôn ngữ C 8 1.2.1. Tập ký tự  Chương trình C được tạo ra từ các phần tử cơ bản là tập kí tự .  Các kí tự tổ hợp với nhau tạo thành các từ  Các từ liên kết với nhau theo một quy tắc xác định để tạo thành các câu lệnh  Từ các câu lệnh  tổ chức thành chương trình. 91.2.1. Tập ký tự (tiếp) 10 1.2.2. Từ khóa (keyword)  Là những từ có sẵn của ngôn ngữ và được sử dụng dành riêng cho những mục đích xác định.  Các từ khóa trong C được sử dụng để  Đặt tên cho các kiểu dữ liệu: int, float, double, char, struct, union  Mô tả các lệnh, các cấu trúc điều khiển: for, do, while, switch, case, if, else, break, continue 11 1.2.2. Từ khóa (keyword) (tiếp) 12 1.2.3. Định danh / tên (identifier)  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 gồm có biến, hằng, hàm, kiểu dữ liệu ta sẽ làm quen ở những mục tiếp theo.  Có thể được đặt tên:  Bởi ngôn ngữ lập trình (đó chính là các từ khóa)  Hoặc do người lập trình đặt. 13 1.2.3. Định danh / tên (identifier) (tiếp)  Qui tắc đặt tên:  Chỉ được gồm có: 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 từ khóa. 14 1.2.3. Định danh / tên (identifier) (tiếp)  Ví dụ định danh/tên hợp lệ: i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1  Ví dụ về định danh/tên không hợp lệ: 15 1.2.3. Định danh / tên (identifier) (tiếp)  Cách thức đặt định danh/tên:  Hằng số: chữ hoa  Các biến, hàm hay cấu trúc: Bằng chữ thường.  Nếu tên gồm nhiều từ thì ta nên phân cách các từ bằng dấu gạch dưới.  Ví dụ: 16 1.2.4. Các 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ụ: Trong ngôn ngữ C có kiểu dữ liệu int. Một dữ liệu thuộc kiểu dữ liệu int thì:  Là một số nguyên (integer)  Có thể nhận giá trị từ - 32768 (- 215) đến 32767 (215 - 1). 17 1.2.4. Các kiểu dữ liệu (tiếp)  Trên kiểu dữ liệu int ngôn ngữ C định nghĩa các phép toán số học đối với số nguyên như sau:  Đảo dấu: -  Cộng: +  Trừ: -  Nhân: *  Chia lấy phần nguyên: /  Chia lấy phần dư: %  So sánh bằng: = =  So sánh lớn hơn: >  So sánh nhỏ hơn: < 18 1.2.5. Hằng số (constant)  Là đại lượng có giá trị không đổi trong chương trình.  Để giúp chương trình dịch nhận biết hằng ta cần nắm được cách biểu diễn hằng trong một chương trình C. 19 Biểu diễn hằng số nguyên  Dạng thập phân:  Giá trị số dưới hệ đếm cơ số 10 thông thường  Ví dụ: 2007, 396  Dạng thập lục phân:  Giá trị số dưới dạng hệ đếm cơ số 16 và thêm tiền tố 0x  Ví dụ: 0x7D7, 0x18C.  Dạng bát phân:  Giá trị số dưới dạng hệ đếm cơ số 8 và thêm tiền tố 0  Ví dụ: 03727, 0614. 20 Biểu diễn hằng số thực  Dưới dạng số thực dấu phẩy tĩnh: Ví dụ: 3.14159 , 123.456  Dưới dạng số thực dấu phẩy động: Ví dụ: 31.4159 E -1 12.3456 E +1 1.23456 E +2 21 Biểu diễn hằng ký tự  Bằng ký hiệu của ký tự đó đặt giữa 2 dấu nháy đơn ('').  Bằng số thứ tự của ký tự đó trong bảng mã ASCII (và lưu ý số thứ tự của một ký tự trong bảng mã ASCII là một số nguyên nên có một số cách biểu diễn). 22 Biểu diễn hằng ký tự - Ví dụ: 23 Biểu diễn hằng xâu ký tự  Một hằng là 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ụ: "Đại học Bách Khoa", "Tin học đại cương", "Nguyễn Hồng Phương",... 24 1.2.6. Biến (variable)  Là đại lượng mà giá trị có thể thay đổi trong chương trình.  Hằng và biến được sử dụng để lưu trữ dữ liệu, và phải thuộc một kiểu dữ liệu nào đó.  Tên biến và hằng được đặt theo quy tắc đặt tên cho định danh. 25 1.2.7. Hàm (function)  Còn được gọi là chương trình con  Những đoạn chương trình lặp đi lặp lại nhiều lần ở những chỗ khác nhau  Viết thành hàm để khi cần chỉ cần gọi ra chứ không phải viết lại toàn bộ.  Giải quyết một bài toán lớn thì chương trình của ta có thể rất lớn và dài  Chia thành các công việc nhỏ hơn được viết thành các hàm. 26 Một số hàm toán học hay dùng trong C 27 Một số hàm toán học hay dùng trong C (tiếp) 28 1.2.8. 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 đều có dấu chấm phẩy (;) để đánh dấu kết thúc câu lệnh. 29 1.2.8. Câu lệnh (tiếp)  Câu lệnh được chia thành 2 nhóm chính:  Nhóm các câu lệnh đơn:  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:  Chứa câu lệnh khác trong nó.  Ví dụ: lệnh khối, các cấu trúc lệnh rẽ nhánh, cấu trúc lệnh lặp  Lệnh khối là một số các lệnh đơn được nhóm lại với nhau và đặt trong cặp dấu ngoặc nhọn { } 30 1.2.9. 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  Chỉ có tác dụng giúp chương trình viết ra dễ đọc và dễ hiểu hơn  Trình biên dịch sẽ tự động bỏ qua không dịch phần nội dung nằm trong phạm vi của vùng chú thích đó.  2 cách chú thích  Trên 1 dòng: //  Trên nhiều dòng: /* */ 31 1.2.9. Chú thích (tiếp)  Cách 1:  Vùng bắt đầu từ // đến cuối dòng là vùng chú thích.  Ví dụ: a = 5; b = 3; // Khoi tao gia tri cho cac bien nay  Cách 2:  Toàn bộ vùng bắt đầu nằm trong cặp kí hiệu /* */ là vùng chú thích.  Ví dụ: /* Doan chuong trinh sau khai bao 2 bien nguyen va khoi tao gia tri cho 2 bien nguyen nay */ int a, b; a = 5; b = 3; 32 1.3. Cấu trúc cơ bản của một chương trình C  Gồm 6 phần có thứ tự như sau: Phần1: 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 33 1.3. Cấu trúc cơ bản... (tiếp)  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.  Ví dụ: #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. 34 1.3. Cấu trúc cơ bản... (tiếp)  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; 35 1.3. Cấu trúc cơ bản... (tiếp)  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. 36 Ví dụ một chương trình C đơn giản /* Chuong trinh sau se nhap vao tu ban phim 2 so nguyen va hien thi ra man hinh tong, hieu tich cua 2 so nguyen vua nhap vao */ #include #include void main() { // Khai bao cac bien trong chuong trinh int a, b; int tong, hieu, tich; 37 Ví dụ một chương trình C đơn giản (tiếp) // Nhap vao tu ban phim 2 so nguyen printf("\nNhap vao so nguyen thu nhat: "); scanf("%d",&a); printf("\n Nhap vao so nguyen thu hai: "); scanf("%d",&b); // Tinh tong, hieu, tich cua 2 so vua nhap tong = a + b; hieu = a – b; tich = a*b; 38 Ví dụ một chương trình C đơn giản (tiếp) // 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 de ket thuc getch(); } 39 1.4. Biên dịch chương trình viết bằng ngôn ngữ C  Biên dịch chương trình viết bằng ngôn ngữ C  Dùng trình biên dịch Turbo C++ 3.0  Cài đặt Turbo C++ 3.0  Viết chương trình  Sửa đường dẫn tới các thư viện (nếu cần)  Biên dịch  Chạy chương trình 40 1.5. Bài tập  Bài tập 1: Trong các định danh sau, định danh nào là không hợp lệ:  MAX_SINH_VIEN  CHIEU_CAO  ho va ten  1_bien_nao_do  so_thuc_1 41 1.5. Bài tập (tiếp)  Bài tập 2: Hãy cho biết giá trị của các hằng nguyên sau trong chương trình: 0345, 0x168, 06356, 0xAF04 42 1.5. Bài tập (tiếp)  Bài tập 3: Cho biết biểu diễn dưới dạng số thực dấu phẩy tĩnh của các hằng số thực sau:  535.235 E+3  256.89 E-1  10.103 E-5 43 1.5. Bài tập (tiếp)  Bài tập 4: Chạy thử hai chương trình sau xem có chương trình nào có lỗi không? Nếu có lỗi thì hãy xem trình biên dịch báo là lỗi gì?  Chương trình 1: void main() { }  Chương trình 2: #include #include void fct() { } 44 Discussion

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

  • pdfgiao_trinh_tin_hoc_dai_cuong_chuong_1_tong_quan_ve_ngon_ngu.pdf