Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
97
Dung lượng
1,42 MB
Nội dung
Chương Ngơn ngữ lập trình C, khái niệm Học phần: LẬP TRÌNH CƠ BẢN Tài liệu tham khảo Kỹ thuật lập trình C: sở nâng cao, Phạm Văn Ất, Nhà xuất KHKT – Chương 2, The C programming language 2nd Edition, Brian Kernighan and Dennis Ritchie, Prentice Hall Software Series – Chương Các khái niệm ngơn ngữ lập trình C Nội dung Giới thiệu ngơn ngữ lập trình C Cấu trúc chương trình Hàm main Các kiểu liệu Biến, biểu thức Các phép toán Phát biểu include Xuất liệu thiết bị chuẩn: hàm putchar, printf Nhập liệu từ thiết bị chuẩn: hàm getchar, scanf Môi trường Dev C Các khái niệm ngơn ngữ lập trình C Bắt đầu C BPCL – Martin Richards B – Ken Thompson C – Dennis Ritchie Các khái niệm ngôn ngữ lập trình C Lịch sử C C Unix có chung nguồn gốc C ban đầu xây dựng cài đặt hệ điều hành Unix máy tính PDP-11 Dennis Ritchie tác giả C (1971) Năm 1973 Unix viết lại C BCPL (giữa năm-60s) hay B (1970, cắt gọn BCPL) tiền thân C (khơng có A) BCPL B ngôn ngữ không định kiểu, C ngôn ngữ định kiểu Các khái niệm ngơn ngữ lập trình C Lịch sử C Năm 1978 - Kernighan & Ritchie (1st edition) công bố phiên chuẩn C "K&R C“ Năm 1983, Viện tiêu chuẩn quốc gia Mỹ American National Standards Institute (ANSI) thành thập ủy ban để làm rõ chuẩn hóa ngơn ngữ Năm1988, ANSI C cơng bố phiên Năm 1990, ISO thông qua ANSI C không thay đổi – chuẩn quốc tế Điều mang đến lợi ích lớn tính khả chuyển Xem http://cm.bell-labs.com/cm/cs/who/dmr/chist.html Các khái niệm ngôn ngữ lập trình C Đặc điểm C C có 32 từ khóa Những từ khóa kết hợp với cú pháp C hình thành ngơn ngữ C Các quy tắc áp dụng cho chương trình C • Tất từ khóa chữ thường • Ðoạn mã chương trình C có phân biệt chữ thường, chữ hoa, while khác DO WHILE •Từ khóa khơng thể dùng đặt tên biến (variable name) tên hàm main() { /* This is a sample Program*/ int i,j; i=100; j=200; : } (function name) Các khái niệm ngơn ngữ lập trình C Định danh Tên biến (variables), hàm (functions), nhãn (labels) đối tượng khác người dùng định nghĩa gọi định danh Ví dụ định danh arena s_count marks40 class_one Ví dụ định danh sai 1sttest oh!god start end Không hợp lệ ! Các định danh có chiều dài theo quy ước, số ký tự biến nhận diện trình biên dịch thay đổi theo trình biên dịch Các định danh C có phân biệt chữ hoa chữ thường Các khái niệm ngôn ngữ lập trình C Các nguyên tắc đặt tên định danh Tên biến phải bắt đầu ký tự alphabet Theo sau ký tự đầu ký tự chữ, số … Nên tránh đặt tên biến trùng tên từ khố Tên biến nên mơ tả ý nghĩa Tránh dùng ký tự gây lầm lẫn Nên áp dụng quy ước đặt tên biến chuẩn lập trình Các khái niệm ngơn ngữ lập trình C Định danh 10 Các khái niệm ngôn ngữ lập trình C getchar( ) Dùng đọc liệu nhập, ký tự từ bàn phím Các ký tự đặt vùng đệm đến người dùng gõ phím enter Hàm getchar( ) khơng có đối số, phải có cặp dấu ngoặc ( ) 83 Các khái niệm ngơn ngữ lập trình C Ví dụ hàm getchar() /*Program to demonstrate the use of getchar()*/ #include int main() { char letter; printf(“\nPlease enter any character:“); letter = getchar(); printf(“\nThe character entered by you is %c“, letter); return 0; } 84 Các khái niệm ngơn ngữ lập trình C putchar( ) Hàm xuất ký tự ‘C’ Có đối số Đối số hàm putchar( ) là: Một ký tự đơn Một mã định dạng Một biến ký tự 85 Các khái niệm ngơn ngữ lập trình C Các tùy chọn chức putchar( ) Tham số Biến ký tự Hàm putchar(c) Chức Hiển thị nội dung biến ký tự c Hằng ký tự putchar(‘A’) Hằng ký tự A Hằng số putchar(‘5’) Hằng số Mã định dạng putchar(‘\t’) Chèn ký tự khoảng trắng Mã định dạng putchar(‘\n’) Chèn ký tự xuống dòng 86 Các khái niệm ngơn ngữ lập trình C putchar( ) /* This program demonstrates the use of constants and escape sequences in putchar()*/ Ví dụ #include int main(){ putchar(‘H’); putchar(‘\n’); putchar(‘\t’); putchar(‘E’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘L’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘L’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘O’); return 0; } 87 Các khái niệm ngơn ngữ lập trình C Các chuẩn ngơn ngữ C (tự đọc) ANSI C ISO C Vào khoảng cuối thập niên 1970, C bắt đầu thay vai trị BASIC ngơn ngữ lập trình cho microcomputer Suốt thập niên 1980 chấp thuận dùng IBM PC, phổ biến bắt đầu tăng cách lớn lao Trong thời kỳ, Bjarne Stroustrup đồng nghiệp Bell Labs bắt tay cho thêm vào C cấu trúc ngơn ngữ lập trình hướng đối tượng Ngơn ngữ họ tạo gọi C++ trở thành ngơn ngữ lập trình ứng dụng phổ biến hệ điều hành Microsoft Windows; C phổ biến giới UNIX Một ngôn ngữ khác phát triển khoảng thời gian Objective-C, mở rộng lập trình hướng đối tượng cho C Dù khơng phổ biến C++, dùng để phát triển ứng dụng Cocoa Mac OS X Trong năm1983, Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) thành lập hội đồng X3J11 để hoàn tất tiêu chuẩn dặc tả C Sau q trình khó khăn lâu dài, tiêu chuẩn hồn tất vào 1989 cơng nhận "Programming Language C" ANSI X3.159-1989 Phiên ngôn ngữ thường nhắc đến ANSI C Trong năm1990, Tiêu chuẩn ANSI C (với vài chi tiết nhỏ điều chỉnh) tiêu chuẩn hóa Tổ chức Quốc tế Tiêu chuẩn hóa (ISO) ISO/IEC 9899:1990 Một điểm mạnh trình tiêu chuẩn hoá ANSI C làm cho K&R C trở thành tập nó; tiếp nhận nhiều chức khơng thức K&R C hệ Xa hơn, hội đồng tiêu chuẩn làm cho ANSI C bao gồm thêm nhiều chức mới, nguyên mẫu hàm (mượn từ C++), khả tiền xử lý mạnh Ngày nay, ANSI C hỗ trợ hầu hết trình dịch Hầu hết mã C ngày viết dựa ttrên ANSI C Mọi chương trình viết chuẩn C đảm bảo việc thực thi xác cho phép dùng C Mặc dù vậy, nhiều chương trình viết dịch số với số trình dịch lý sau: Dùng thư viện không chuẩn, cho GUI Một số trình dịch khơng hồn tồn theo chuẩn ANSI C hay chuẩn tiếp sau chế độ làm việc chúng Phụ thuộc vào kích thước số kiểu liệu endian (Chẳng hạn, số kích thước kiểu int nhiều hay hơn—4, hay 16 byte— khác.) 88 Các khái niệm ngơn ngữ lập trình C Các chuẩn ngơn ngữ C (tiếp) (Tự đọc) C99 Sau q trình chuẩn hóa ANSI, đặc tả ngôn ngữ C tương đối giữ nguyên thời gian, C++ tiếp tục thâm nhập (Đúng ra, có tu số tạo phiên C 1995, phiên đồng thuận.) Cho đến cuối thập niên 1990 tiêu chuẩn phát hành ISO 9899:1999 Tiêu chuẩn thường mệnh danh "C99" Nó tiếp thu ANSI C tháng năm 2000 Những chức C99 bao gồm: Các hàm inline Các biến khai báo chỗ (như C++) Nhiều kiểu liệu đưa vào bao gồm kiểu long long int (để giảm khó khăn việc chuyển hệ từ 32-bit sang 64-bit), kiểu boolean kiểu complex để dùng cho số phức Các mảng có chiều dài thay đổi Hỗ trợ cho dòng lệnh giải bắt đầu với // C++ nhiều ngôn ngữ khác Nhiều hàm thư viện snprintf() Nhiều tập tin tiêu đề stdint.h Điều thú vị việc hỗ trợ cho chuẩn C99 kết pha trộn Trong GCC nhiều trình dịch khác hỗ trợ hầu hết chức C99, trình dịch Microsoft Borland lại không tuân theo hai công ty dường khơng thích thú để thêm vào hỗ trợ 89 Các khái niệm ngơn ngữ lập trình C Mơi trường lập trình Dev C++ Link download: www.bloodshed.net/devcpp.html Dev-C++ mơi trường phát triển tích hợp tự (IDE) phân phối hình thức giấy phép Cơng cộng GNU hỗ trợ việc lập trình C/C++ Dự án phát triển Dev-C++ lưu trữ SourceForge Dev-C++ nguyên phát triển lập trình viên có tên Colin Laplace chạy hệ điều hành Microsoft Windows Bloodshed Dev-C++ Môi trường Phát triển Tích hợp (IDE) có hỗ trợ đầy đủ tính cho ngơn ngữ lập trình C/C++ Nó sử dụng trình MinGW GCC (Bộ trình dịch GNU) làm trình biên dịch Dev-C++ dùng kết hợp với Cygwin hay trình dịch tảng GCC khác Dev-C++ nói chung chương trình chạy Windows Tuy nhiên có phiên cho Linux, giai đoạn alpha chưa cập nhật vòng năm qua 90 Các khái niệm ngôn ngữ lập trình C Phần mềm PC^2 http://www.ecs.csus.edu/pc2/ PC2 is the Programming Contest Control System developed at California State University, Sacramento (CSUS) in support of Computer Programming Contest activities of the ACM, and in particular the ACM International Collegiate Programming Contest (ICPC) and its Regional Contests around the world PC^2 cho phép chấm tự động chương trình viết C/C++ PC^2 dùng để chấm thi Olympic Tin học nội dung tập thể (ACM) Có thể truy cập vào website PTN Công nghệ phần mềm địa selab.lqdtu.edu.vn để thực hành với PC^2 luyện tập toán lập trình C/C++ 91 Các khái niệm ngơn ngữ lập trình C Tóm tắt nội dung Sự đời ngơn ngữ lập trình C ý nghĩa sử dụng Các kiểu liệu C Biến, biểu thức Các phép toán Cấu trúc chương trình Hàm main Khai báo biến Phát biểu include Xuất liệu thiết bị chuẩn: hàm putchar, printf Nhập liệu từ thiết bị chuẩn: hàm getchar, scanf 92 Các khái niệm ngôn ngữ lập trình C BÀI TẬP Bài 1: Hãy dùng câu lệnh printf() để : a) Xuất giá trị biến số nguyên sum b)Xuất chuỗi văn "Welcome", dòng c) Xuất biến ký tự letter d)Xuất biến số thực discount e) Xuất biến số thực dump có vị trí phần thập phân Dùng câu lệnh scanf() thực hiện: a) Ðọc giá trị thập phân từ bàn phím vào biến số nguyên sum b) Ðọc giá trị số thực vào biến discount_rate Bài 2: Viết chương trình xuất giá trị ASCII ký tự ‘A’ ‘b’ 93 Các khái niệm ngơn ngữ lập trình C BÀI TẬP Bài 3: Xét chương trình sau: #include void main() { int breadth; float length, height; scanf(“%d%f%6.2f”, breadth, &length, height); printf(“%d %f %e”, &breadth, length, height); } Sửa lỗi chương trình 94 Các khái niệm ngơn ngữ lập trình C BÀI TẬP Bài Viết chương trình nhập vào name, basic, daper (phần trăm D.A), bonper (phần trăm lợi tức) loandet (tiền vay bị khấu trừ) cho nhân viên Tính lương sau: salary = basic + basic * daper/100 + bonper * basic/100 - loandet Bảng liệu: name basic daper bonper loandet MARK 2500 55 33.33 250.00 Tính salary xuất kết đầu đề sau (Lương in gần dấu đôla ($)): Name Basic Salary Bài Viết chương trình yêu cầu nhập vào tên, họ bạn sau xuất tên, họ theo dạng họ, tên 95 Các khái niệm ngơn ngữ lập trình C Câu hỏi ôn tập 96 Các kiểu liệu C Cách khai báo biến C Các từ khóa Quy tắc định danh Các phép toán C, độ ưu tiên Các hàm nhập xuất, ưu nhược điểm nhập xuất có đệm Đọc thêm tham số hàm main() Các khái niệm ngôn ngữ lập trình C HỎI VÀ ĐÁP ... áp dụng quy ước đặt tên biến chuẩn lập trình Các khái niệm ngơn ngữ lập trình C Định danh 10 Các khái niệm ngôn ngữ lập trình C Từ khóa Từ khóa: Tất ngôn ngữ dành số từ định cho mục đích riêng... phải Các khái niệm ngôn ngữ lập trình C Độ ưu tiên tốn tử (tt.) 50 Các khái niệm ngôn ngữ lập trình C Độ ưu tiên tốn tử so sánh Độ ưu tiên toán tử so sánh (quan hệ) ln tính từ trái sang phải 51 Các. .. vị trí nhớ 17 Các khái niệm ngôn ngữ lập trình C Khai báo • [=] Ví dụ: int a = 3; int b; int a=3, b=4; char c = ‘A’; 18 Các khái niệm ngơn ngữ lập trình C Hằng