1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giao trinh ngon ngu c vu ba duy coltech

95 3 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 95
Dung lượng 1,54 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 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 b 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 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 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ế b i Dennis Ritchie t i 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 b i Ken Thompson t i 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 b n phát triển không thống nh t Để 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ó r t 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 b i 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 c đ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ữ cô đọ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ừ khố 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ố nh t 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 tn theo ràng buộc nh t đị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 toá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 ca 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 qu Để 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 b 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 b t kỳ hệ so n th o văn b 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ó r t 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 qu có dự kiến hay khơng, có sai sót ph i xác định ngun 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 b i ngơn ngữ (xem phần kiểu liệu), giá trị biến thay đổi th i gian tồn t i 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ị t i 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 b i 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 hồn tồ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 c 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 b i 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 b i 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 t định, giá trị thay đổi th i gian tồn t i 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 đ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 b i 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ố ngun 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 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 Giáo trình tin học sở II - Ngụn ngữ C p = &luong; *p = 650000 Khi trỏ trỏ tới vùng nhớ ví dụ p trỏ tới luong truy xu t *p giá trị vùng nhớ p trỏ tới tức *p ⇔ luong Với trỏ trỏ tới trỏ khác chẳng h n ví dụ sau: int a = 10; int *pa; int **ppa; pa = &a; // p trỏ tới a ppa = &pa; // ppa trỏ tới pa có: *ppa ⇔ pa ⇔ &a; **ppa ⇔ *pa ⇔ a; • Các phép toán trỏ (địa ) a Phép so sánh hai trỏ Trên trỏ tồn t i phép so sánh (= =, !=, =) hai trỏ hai trỏ trỏ tới đối tượng (có giá trị nhau), ngược l i khác Con trỏ trỏ tới vùng nhớ có địa nhỏ tr nh hn 81 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 m t 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: 23/12/2022, 11:02

w