§¹i häc quèc gia hµ néi khoa c«ng nghÖgi¸o tr×nh tin häc c¬ së phÇn lËp tr×nh potx

103 286 0
§¹i häc quèc gia hµ néi khoa c«ng nghÖgi¸o tr×nh tin häc c¬ së phÇn lËp tr×nh potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đạ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 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, cị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 Kin Quc 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 cịn 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à: • 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ự cịn 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ừ khố tên: Tên xâu (dãy) kí tự, ngơn ngữ lập trình nói chung 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 q 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 tượng chng trỡnh Giáo trình tin họ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 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 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 Giáo trình tin họ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 vào vùng nhớ ú Giáo trình tin họ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 ngha bt k v trớ no 10 Giáo trình tin häc c¬ së II - Ngơn ngữ C II.3 Các kiểu liệu chuẩn đơn giản C Một mục đích chương trình xử lý, biến đổi thông tin, thông tin cần xử lý phải biểu diễn theo cấu trúc xác định ta gọi kiểu liệu Các kiểu liệu quy định ngôn ngữ lập trình, hay nói khác ngơn ngữ có tập kiểu liệu khác Khơng hồn tồn giống khái niệm kiểu liệu toán học, ngơn ngữ lập trình nói chung kiểu liệu biểu diễn miền giá xác định Chẳng hạn số nguyên hiểu số nguyên từ - ∞ tới +∞, ngơn ngữ lập trình miền giá trị bị giới hạn, giới hạn phụ thuộc vào kích thước vùng nhớ biểu diễn số Vì nói tới kiểu liệu phải đề cập tới thông tin đặc trưng là: - tên kiểu liệu - kích thước vùng nhớ biểu diễn nó,miền giá trị - phép tốn sử dụng Các kiểu liệu đơn giản C kiểu số, thuộc hai nhóm số ngun số thực (số dấu phẩy động) Nhóm kiểu nguyên gồm có: char, unsigned char, int, unsigned int, short, unsigned short, long, unsigned long mô tả bảng sau: tên kiểu (từ khố tên kiểu) kí tự có dấu char kí tự khơng dấu unsigned char số ngun có dấu int số ngun khơng dấu unsigned int số ngun ngắn có dấu short số nguyên ngắn có dấu unsigned short số ngun dài có dấu long số ngun dài khơng dấu unsigned long Kiểu liệu kích thước byte byte byte byte byte byte byte byte miền giá trị từ -128 tới 127 từ tới 255 từ -32768 tới 32767 từ tới 65535 từ -32768 tới 32767 từ tới 65535 từ -2,147,483,648 tới 2,147,438,647 từ tới 4,294,967,295 Khuôn dạng số nguyên: có kiểu số nguyên kí tự (char) chất C chúng số nguyên mà Hệ thống biểu diễn số nguyên dạng dãy bit (số nhị phân) Như biết, bit biểu diễn giá trị Ta thấy với nhóm có bit (2 số nhị phân) lưu giá trị nhỏ bit lớn bit có nghĩa biểu diễn số 0,1,2,3 tức 22 giá trị khác Với số ngun byte (unsigned char) giá trị lưu trữ 0,1, ,255 Tổng quát kiểu liệu có kích thước n bit biểu diễn 2n giá trị khác là: 0,1, (2n 1) 11 Giáo trình tin học sở II - Ngôn ngữ C b Phép cộng trỏ với số nguyên Giả sử p trỏ kiểu T, k số nguyên (p + k) trỏ kiểu T, không tổng quát giả sử p trỏ tới phần tử t p+1 trỏ trỏ tới phần tử kiểu T sau t p+2 trỏ tới phần tử kiểu T sau t phần tử, p -1 trỏ trỏ tới phần tử kiểu T trước t p -2 trỏ tới phần tử kiểu T trước t hai phần tử, tổng quát p+k trỏ tới phần tử cách t khoảng k phần tử kiểu T (nếu k >0 dịch phía địa lớn, k

Ngày đăng: 27/06/2014, 12:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan