Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 95 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
95
Dung lượng
2,39 MB
Nội dung
Đại học quốc gia hà nội khoa công nghệ giáo trình tin học sở phần lập trình ngôn ngữ C vũ bá hà nội tháng năm 2003 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin học sở II - Ngôn ngữ C Bạn đọc mạng Đại học Quốc gia Hà Nội phép đọc, in download tài liệu từ thư viện điện tử Khoa Công nghệ sử dụng không phép sử dụng với mục đích vụ lợi Bản quyền thuộc nhóm tác giả thực chương trình Tin học sở Đây phiên đầu tiên, nhiều sai sót Chung tơi mong nhận ý kiến đóng góp bạn đọc Các ý kiến gửi theo địa dkquoc@vnu.edu.vn dkquoc@ỵahoo.com Cảm ơn bạn đọc đóng góp để hồn thiện giáo trình Thay mặt tác giả Đào Kiến Quốc CuuDuongThanCong.com https://fb.com/tailieudientucntt Gi¸o trình tin học sở II - Ngụn ng C MÔC LÔC I Mở ĐầU .4 I.1 Bảng chữ cái, tên từ khoá I.2.Các bước lập trình giải tốn II BIếN, HằNG VÀ CÁC KIểU Dữ LIệU TRONG C II.1.Biến II.2 Hằng 10 II.3 Các kiểu liệu chuẩn đơn giản C 11 II.4 Biểu thức phép toán .13 III CHƯƠNG TRÌNH C .26 III.1.Cấu trúc chương trình 27 III.2.Câu lệnh dòng thích 31 III.3.Nhập xuất liệu .33 IV - CÁC CấU TRÚC ĐIềU KHIểN CHƯƠNG TRÌNH 41 IV Cấu trúc 41 IV.2.Cấu trúc rẽ nhánh 42 IV.3.Cấu trúc switch 46 IV.4.Cấu trúc while 48 IV.5.Cấu trúc while 53 IV.6.Cấu trúc for 57 IV.7.Câu lệnh continue break 63 V - MảNG VÀ CON TRỏ 65 V.1 Khái niệm Mảng .65 V.2 Mảng chiều 65 V.3 - Mảng chiều 74 V.4 - Con trỏ mảng 79 VI – CÁC VấN Đề CƠ BảN Về HÀM 88 VI.1 - Nguyên mẫu (prototype) hàm 88 VI.2 - Định nghĩa hàm 89 VI.3 - Lời gọi hàm truyền tham số 90 TÀI LIệU THAM KHảO .95 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin học së II - Ngôn ngữ C I Mở đầu C ngơn ngữ lập trình thiết kế Dennis Ritchie phòng thí nghiệm Bell Telephone năm 1972 Nó viết với mục tiêu xây dựng hệ điều hành UNIX Vì ban đầu khơng hướng tới tiện dụng cho người lập trình C phát triển từ ngơn ngữ lập trình có tên B (B ngơn ngữ lập trình viết Ken Thompson Bell Labs, tên ngôn ngữ lấy theo tên Bell Labs) C ngôn ngữ mạnh mềm dẻo, linh hoạt, nhanh chóng trở thành ngôn ngữ phổ biến không phạm vi Bell, C lập trình viên sử dụng viết nhiều loại ứng dụng mức độ khác Cũng dùng nhiều nơi nên xuất đặc điểm khác nhau, phiên phát triển không thống Để giải vấn đề này, năm 1983 Viện tiêu chuẩn Mỹ (ANSI) thành lập chuẩn cho C có tên ANSI C (ANSI standard C) Nói chung chương trình dịch C ngày tuân theo chuẩn ngoại trừ số khác biệt nhỏ Hiện có nhiều ngơn ngữ lập trình bậc cao C, Pascal, BASIC, ngơn ngữ có điểm mạnh riêng phù hợp cho số lĩnh vực đó, C khơng ngoại lệ, C phổ biến có đặc điểm sau: • C ngơn ngữ mạnh mềm dẻo Có thể nói hạn chế C phụ thuộc vào người lập trình, tức với C bạn làm tất điều theo ý tưởng bạn C dùng cho dự án từ nhỏ tới lớn như: Hệ điều hành, Đồ hoạ, Chương trình dịch, • C dễ chuyển đổi sang hệ hệ thống khác (tính khả chuyển), tức chương trình C viết hệ thống dễ dàng dịch lại chạy hệ thống khác • C ngơn ngữ đọng, số lượng từ khố khơng nhiều • C ngơn ngữ lập trình cấu trúc Mã lệnh chương trình C viết thành hàm, hàm sử dụng lại ứng dụng khác Với đặc điểm C ngôn ngữ tốt cho việc học lập trình, sau tiếp cận với lập trình hướng đối tượng, ngơn ngữ lập trình lựa chọn cho lập trình hướng đối tượng C++, kiến thức C có ích cho bạn C++ ngơn ngữ phát triển từ C bổ sung đặc tính hướng đối tượng I.1 Bảng chữ cái, tên từ khoá Bảng chữ cái: Mọi ngơn ngữ lập trình xây dựng từ kí tự quy tắc để xây dựng từ, câu lệnh cấu trúc chương trình Ngơn ngữ lập trình C sử dụng ký tự ASCII (American Standard Code for Informations Interchange) Theo chuẩn này, kí tự gồm có 256 kí tự là: • CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin học sở II - Ngôn ngữ C - Các chữ cái: A, ,Z, a, ,z Các chữ số: 0, ,9 Các dấu phép toán số học: +,-,*,/, Các dấu ngoặc: (, ), [, ], Các ký tự khác Mỗi kí tự có tương ứng số gọi mã, có 128 kí tự đầu (có mã từ tới 127) kí tự cố định 128 kí tự lại (có mã từ 128 tới 255) kí tự mở rộng, tức thay đổi tuỳ theo ngôn ngữ quốc gia sử dụng Từ khoá tên: Tên xâu (dãy) kí tự, ngơn ngữ lập trình nói chung yêu cầu tên phải tuân theo ràng buộc định • Với C tên xâu kí tự gồm - chữ - chữ số - dấu gạch nối Tên phải bắt đầu chữ dấu gạch dưới, độ dài không 32 kí tự, khơng trùng với từ khố ngơn ngữ Và C phân biệt chữ hoa chữ thường nên tên chữ hoa XY xy khác Mỗi ngơn ngữ có riêng tập từ với ý nghĩa đặc biệt từ khố, chúng dùng với mục đích định trước tên kiểu liệu, tên toán tử, Sau số từ khoá C asm auto break case char const continue default double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while I.2.Các bước lập trình giải tốn Để giải dù mức bước phải phát biểu toán, tức phải hiểu tốn u cầu tìm thuật giải, cài đặt thuật tốn sau có chương trình bạn phải chạy để kiểm nghiệm tính đắn Như để giải tốn chương trình theo bước sau: Xác định đối tng ca chng trỡnh CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin häc c¬ së II - Ngơn ngữ C Xác định phương pháp thuật giải Viết chương trình (lập trình) Chạy chương trình kiểm tra kết Để có chương trình cần phải viết lệnh (lập trình) ngơn ngữ lập trình đó, C chẳng hạn, máy tính khơng chạy trực tiếp chương trình viết ngơn ngữ lập trình bậc cao (gọi chương trình nguồn), thực chương trình dạng mã máy (chương trình đích) Vì sau có chương trình nguồn, cần thực chuyển chương trình nguồn thành chương trình đích, cơng việc cần đến trình biên dịch (compiler) liên kết (linker) Như ta thấy chu trình phát triển chương trình sau: Soạn thảo chương trình nguồn Chúng ta sử dụng trình soạn thảo văn chuẩn (ASCII) để soạn thảo chương trình, sau ghi vào file chương trình nguồn (ngầm định với phần mở rộng C) Do C hầu hết ngôn ngữ lập trình phổ biến sử dụng bảng chữ ASCII nên bạn sử dụng hệ soạn thảo văn chuẩn để viết chương trình, nhiên hầu hết trình biên dịch C mơi trường MS-DOS WINDOWS có tích hợp trình soạn thảo bạn nên sử dụng trình soạn thảo tích hợp thuận lợi Biên dịch chương trình nguồn Hiện có nhiều chương trình dịch cho C như: Turbo C, BC, Microsoft C, mục đích bước chuyển chương trình nguồn thành chương trình mã đối tượng (object) Sau bước (nếu thành cơng) thu file chương trình đối tượng (có phần mở rộng OBJ) Liên kết chương trình Sau bước biên dịch hồn thành ta có chương trình đối tượng, chưa phải chương trình chạy máy tính, bước phải sử dụng trình liên kết để liên kết hàm thư viện với chương trình đối tượng để tạo chương trình đích Bạn sử dụng trình liên kết độc lập đó, với trình biên dịch C mơi trường DOS hay WINDOWS có sẵn trình liên kết Chạy kiểm tra kết chương trình Khi có chương trình đích, cần phải kiểm tra tính đắn bạn chạy chương trình với liệu mẫu kiểm tra kết có dự kiến hay khơng, có sai sót phải xác định nguyên nhân gây lỗi quay lại bước để hiệu chỉnh lặp lại trình chương trình giải tốn mong đợi CuuDuongThanCong.com https://fb.com/tailieudientucntt Gi¸o trình tin học sở II - Ngụn ng C Hình – Các bước phát triển chương trình Hiện có nhiều chương trình dịch cho C hầu hết (trên DOS Windows) tích hợp trình soạn thảo, biên dịch, liên kết - gọi mơi trường tích hợp Trong giáo trình sử dụng BC (Borland C) turbo C làm mơi trường lập trình CuuDuongThanCong.com https://fb.com/tailieudientucntt Gi¸o trình tin học sở II - Ngụn ng C II Biến, kiểu liệu C II.1.Biến ¾ Khái niệm Biến đại lượng có giá trị thuộc kiểu liệu mà chấp nhận ngôn ngữ (xem phần kiểu liệu), giá trị biến thay đổi thời gian tồn biến (hay ta nói vòng đời biến) Các thành phần chương trình lưu nhớ biến không ngoại lệ Tức biến cấp phát vùng nhớ để lưu giữ giá trị thuộc kiểu liệu xác định Vì theo khía cạnh nói biến tên đại diện cho nhớ máy tính, chương trình truy xuất nhớ (lấy ghi giá trị) thơng qua tên biến Một biến nói chung phải có đặc trưng sau: - Tên biến - Kiểu liệu: kiểu biến - Giá trị lưu giữ (giá trị biến) ( nhiên sau thấy C có biến kiểu void, ban đầu coi biến không kiểu dần quan niệm tên kiểu kiểu khơng xác định) ¾ Tên biến Trong C ngơn ngữ lập trình khác biến phải có tên, tên biến hay nói chung tên (gồm tên biến, tên hằng, tên hàm, từ khố) xâu kí tự phải tn theo quy định ngơn ngữ là: Tên chứa kí tự chữ (‘a’ , ,’z’; ‘A’, ,’Z’); chữ số( ‘0’, ,’9’) kí tự gạch (_), số kí tự khơng q 32 • • Kí tự tên phải chữ kí tự gạch Trong tên phân biệt chữ hoa chữ thường Tức hai xâu kí tự khác loại chữ hoa chữ thường hai tên khác nhau, ví dụ với xâu kí tự “AB” “Ab” hai tên hoàn toàn phân biệt • Các từ khố ngơn ngữ khơng dùng làm tên biến, tên hằng, hay tên hàm Hay nói khác đi, chương trình bạn phải dùng đến tên, tên bạn đặt theo ý tưởng bạn khơng trùng với từ khố • ¾ Ví dụ tên hợp lệ khơng hợp lệ Tên biến hợp lệ / không hợp lệ Percent hp l CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin học c¬ së II - Ngơn ngữ C y2x5 fg7h hợp lệ ho_ten hợp lệ _1990_tax hợp lệ A hợp lệ ngay-sinh khơng hợp lệ có kí tự -(dấu trừ) double khơng hợp lệ trùng với từ khố 9winter khơng hợp lệ kí tự số ¾ Câu lệnh định nghĩa biến Trong ngôn ngữ lập trình có cấu trúc nói chung C nói riêng, biến phải định nghĩa trước sử dụng Câu lệnh định nghĩa biến báo cho chương trình dịch biết thơng tin tên, kiểu liệu giá trị khởi đầu biến Cú pháp khai báo biến : [ = ] [, [ = , ]; đó: • tên kiểu liệu tồn tại, tên kiểu liệu chuẩn kiểu liệu định nghĩa người lập trình • , tên biến cần khai báo, tên phải tuân theo quy tắc tên ngôn ngữ • , giá trị khởi đầu cho biến tương ứng , Các thành phần tuỳ chọn, có giá trị phải phù hợp với kiểu biến Trên dòng lệnh định nghĩa khai báo nhiều biến kiểu, với tên , , biến cách dấu phẩy (,) dòng khai báo kết thúc dấu chấm phẩy (;) Ví dụ: int a = 4, b = 6; float x =4.5,y,z; unsigned u ; char c =’A’; Khi gặp lệnh định nghĩa biến, chương trình dịch cấp phát vùng nhớ có kích thước phù hợp với kiểu liệu biến, có thành phần khởi đầu gán giá trị khởi u vo vựng nh ú CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin häc c¬ së II - Ngơn ngữ C II.2 Hằng Khái niệm Hằng đại lượng có giá trị thuộc kiểu liệu định, giá trị thay đổi thời gian tồn Có hai loại khơng có tên (chúng ta gọi thường) giá trị cụ thể tức thời : 8, hay 9.5 ‘d’ Loại thứ hai có tên ( gọi ký hiệu) Các ký hiệu phải định nghĩa trước sử dụng, tên đặt theo quy tắc tên Sau khơng có điều đặc biệt gọi chung Định nghĩa Các định nghĩa từ khoá const với cú pháp sau: const = ; const = ; Trong dạng thứ hai, chương trình dịch tự động ấn định kiểu kiểu ngầm định, với BC hay TC int chương trình dịch tự động chuyển kiểu kiểu int Ví dụ: const int a = 5; // định nghĩa a kiểu nguyên, có giá trị const float x = 4; // x kiểu thực, có giá trị 4.0 const d = 7; // d kiểu int, giá trị const c = ‘1’; // c kiểu int giá trị = 49 const char * s = “Ngon ngu C”;// s trỏ, trỏ tới xâu “Ngo ngu C” Các số C ngầm hiểu hệ 10, bạn viết hệ 16 cú pháp, giá trị số hệ 16 bắt đầu 0x, ví dụ 0x24, 0xA1 số hệ bắt đầu số 0, ví dụ 025, 057 Các kí tự viết cặp dấu ‘’ ví dụ ‘a’, ‘2’ giá trị C hiểu số nguyên có giá trị mã kí tự; ‘a’ có giá trị 97, ‘B’ có giá trị 66 Các xâu kí tự dãy kí tự viết cặp “”, ví dụ “Ngon ngu C”, “a” (xâu kí tự giới thiệu phần sau) Chú ý: Các biến, định nghĩa ngồi hàm, hàm khối lệnh Với C chuẩn định nghĩa biến, khối dòng định nghĩa phải dòng khối, tức trước tất lệnh khác khối, C++ bạn đặt dòng định nghĩa vị trí 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin h c sở II - Ngụn ng C - C c chữ c i: A, ,Z, a, ,z C c chữ số: 0, ,9 C c dấu phép toán số h c: +,-,*,/, C c dấu ngo c: (, ), [, ], C c. .. b c cao (gọi chương trình ngu n), th c chương trình dạng mã máy (chương trình đích) Vì sau c chương trình ngu n, c n th c chuyển chương trình ngu n thành chương trình đích, c ng vi c cần đến trình... CuuDuongThanCong.com https://fb.com/tailieudientucntt Giáo trình tin h c c¬ së II - Ngơn ngữ C Hình – C c bư c phát triển chương trình Hiện c nhiều chương trình dịch cho C hầu hết (trên DOS Windows) tích