1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)

90 6 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

Tiêu đề Giáo Trình Lập Trình Cơ Bản
Tác giả Ken Thompson, Dennis Ritchie
Trường học Trường Cao Đẳng Công Nghiệp Hải Phòng
Chuyên ngành Kỹ thuật lắp ráp, sửa chữa máy tính
Thể loại giáo trình
Thành phố Hải Phòng
Định dạng
Số trang 90
Dung lượng 2,31 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C (6)
    • 1.1. Giới thiệu sơ lược về ngôn ngữ lập trình C (6)
      • 1.1.1. Lịch sử phát triển ngôn ngữ C (6)
      • 1.1.2. Các bước cơ bản khi viết chương trình trên C (7)
    • 1.2. Các phần tử cơ bản của C (8)
      • 1.2.1. Tập ký tự cơ bản (8)
      • 1.2.3. Định danh (Tên) - Identifier (9)
      • 1.2.4. Kiểu dữ liệu (9)
      • 1.2.5. Hằng (10)
      • 1.2.6. Biến (11)
      • 1.2.7. Hàm (12)
      • 1.2.8. Biểu thức (12)
      • 1.2.9. Câu lệnh (12)
      • 1.2.10. Chú thích (13)
    • 1.3. Cấu trúc cơ bản của chương trình C (13)
    • 1.4. Cài đặt và sử dụng turbo C (14)
      • 1.4.1. Cài đặt (14)
      • 1.4.2. Sử dụng môi trường Turbo (15)
  • CHƯƠNG 2: KHỞI ĐẦU VỚI LẬP TRÌNH C (16)
    • 2.1. Một số khai báo cơ bản (16)
      • 2.1.1. Khai báo tệp tiêu đề (16)
      • 2.1.2. Khai báo hằng (16)
      • 2.3.2. Lệnh nhập dữ liệu (27)
      • 2.3.3. Lệnh gán (28)
      • 2.3.4. Các lệnh nhập xuất khác (28)
  • CHƯƠNG 3: CÁC LỆNH CẤU TRÚC (29)
    • 3.1. Lệnh khối (30)
    • 3.2. Lệnh lựa chọn (31)
      • 3.2.1. Lệnh lựa chọn theo điều kiện if (31)
      • 3.2.2. Lệnh switch (34)
    • 3.3. Lệnh lặp (37)
      • 3.3.1. Lệnh for (37)
      • 3.3.2. Lệnh while (39)
      • 3.3.3. Lệnh do … while (41)
  • CHƯƠNG 4: HÀM TRONG C (44)
    • 4.1. Khái niệm về hàm và thư viện (44)
      • 4.1.1. Chương trình con (Subprogram) (44)
      • 4.1.2. Một số đặc tính của hàm trong C (45)
      • 4.1.3. Thư viện hàm chuẩn (45)
    • 4.2. Quy trình xây dựng hàm (46)
      • 4.2.1. Khai báo hàm (46)
      • 4.2.2. Sử dụng hàm (48)
      • 4.2.3. Quy tắc hoạt động của hàm (50)
      • 4.2.4. Tính tổng thể và cục bộ của biến (50)
  • CHƯƠNG 5: DỮ LIỆU KIỂU MẢNG (53)
    • 5.1. Khái niệm và khai báo mảng (54)
      • 5.1.1. Khái niệm về mảng (54)
      • 5.1.2. Khai báo và sử dụng mảng (54)
    • 5.2. Một số bài toán với mảng 1 chiều (56)
      • 5.2.1. Nhập dữ liệu cho mảng (56)
      • 5.2.2. Hiện mảng dữ liệu (57)
      • 5.2.3. Tìm giá trị lớn nhất/nhỏ nhất (Max/Min) (58)
      • 5.2.4. Sắp xếp mảng (59)
      • 5.2.5. Tìm kiếm trong mảng (61)
    • 5.3. Một số bài toán với mảng 2 chiều (62)
      • 5.3.1. Nhập dữ liệu cho mảng 2 chiều (62)
      • 5.3.2. Hiện dữ liệu từ mảng 2 chiều (63)
      • 5.3.3. Các bài toán về ma trận (63)
  • CHƯƠNG 6: XÂU KÝ TỰ (STRING) (65)
    • 6.1. Khái niệm và khai báo xâu (66)
      • 6.1.1. Khái niệm về xâu ký tự (66)
      • 6.1.2. Khai báo và sử dụng biến xâu (66)
    • 6.2. Một số hàm xử lý ký tự và xâu (67)
      • 6.2.1. Hàm xử lý ký tự (67)
      • 6.2.2. Hàm xử lý xâu (68)
    • 6.3. Một số chương trình xử lý dữ liệu kiểu xâu (71)

Nội dung

TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C

Giới thiệu sơ lược về ngôn ngữ lập trình C

1.1.1 Lịch sử phát triển ngôn ngữ C

Ngôn ngữ lập trình C được phát triển bởi Brian W Kernighan và Dennis Ritchie tại phòng thí nghiệm BELL của tập đoàn AT&T (Hoa Kỳ) vào đầu những năm 1970, và hoàn thiện vào năm 1972.

Ngôn ngữ C được phát triển từ các ngôn ngữ BCPL (Basic Combined Programming Language) và B Nhờ vào sự phát triển từ ngôn ngữ B, Brian W Kernighan và Dennis Ritchie đã đặt tên ngôn ngữ mới này là C, thể hiện sự kế thừa từ ngôn ngữ B.

Ngôn ngữ lập trình C nổi bật với đặc điểm mạnh mẽ, khả năng chuyển giao và tính linh hoạt cao, đặc biệt trong việc xử lý các dạng dữ liệu số, văn bản và cơ sở dữ liệu Chính vì vậy, C thường được sử dụng để phát triển các chương trình hệ thống, như hệ điều hành Unix, trong đó 90% mã nguồn được viết bằng C và 10% còn lại bằng hợp ngữ Ngoài ra, C cũng được áp dụng trong các ứng dụng chuyên nghiệp liên quan đến xử lý dữ liệu ở mức thấp, như xử lý văn bản, cơ sở dữ liệu và xử lý ảnh.

W Kernighan và Dennis Ritchie công bố ngôn ngữ C trong lần xuất bản đầu của cuốn sách "The C programming language" (1978) Sau đó người ta đã bổ sung thêm những yếu tố và khả năng mới vào trong ngôn ngữ C (ví dụ như đưa thêm kiểu liệt kê enum, cho phép kiểu dữ liệu trả về bởi hàm là kiểu void, struct hoặc union… và đặc biệt là sự bổ sung các thư viện cho ngôn ngữ Lúc đó đồng thời tồn tại nhiều phiên bản khác nhau của ngôn ngữ C nhưng không tương thích với nhau Điều này gây khó khăn cho việc trao đổi mã nguồn chương trình C viết trên các phiên bản ngôn ngữ C khác nhau (bạn sẽ rất khó đọc và hiểu chương trình của người khác, và khi bạn muốn sửa nó thành chương trình của mình dịch trên bộ dịch của mình thì sẽ tốn rất nhiều công sức) và dẫn đến nhu cầu chuẩn hóa ngôn ngữ C.

Hiện nay, có nhiều phiên bản khác nhau của ngôn ngữ C, mỗi phiên bản được liên kết với một bộ chương trình dịch cụ thể Một số bộ chương trình dịch phổ biến cho ngôn ngữ C bao gồm:

Turbo C++ và Borland C++ của Borland

Inc MSC và VC của Microsoft Corp

GCC của GNU project Free C

1.1.2 Các bước cơ bản khi viết chương trình trên C Để giải bài toán bằng chương trình thực hiện theo các bước sau:

1 Xác định đối tượng của chương trình

2 Xác định phương pháp và thuật giải

3 Viết chương trình (lập trình)

4 Chạy chương trình và kiểm tra kết quả.

Như vậy ta thấy chu trình phát triển một chương trình như sau:

1 Soạn thảo chương trình nguồn

Chúng ta có thể sử dụng trình soạn thảo văn bản ASCII để viết chương trình và lưu trữ nó vào file nguồn với phần mở rộng C.

Ngôn ngữ lập trình C, giống như nhiều ngôn ngữ phổ biến khác, sử dụng bảng chữ cái ASCII, cho phép bạn viết chương trình bằng bất kỳ trình soạn thảo văn bản nào Tuy nhiên, hầu hết các trình biên dịch C trên môi trường MS-DOS hoặc WINDOWS đều tích hợp trình soạn thảo, vì vậy việc sử dụng trình soạn thảo tích hợp này sẽ mang lại sự thuận lợi hơn cho người dùng.

2 Biên dịch chương trình nguồn

Hiện nay, có nhiều chương trình biên dịch cho ngôn ngữ C như Turbo C, BC và Microsoft C Mục tiêu của quá trình này là chuyển đổi mã nguồn thành mã đối tượng Sau khi biên dịch thành công, chúng ta sẽ nhận được file chương trình đối tượng với phần mở rộng OBJ.

Sau khi hoàn thành bước biên dịch, chúng ta có chương trình đối tượng, nhưng chưa thể chạy trên máy tính Để tạo ra chương trình đích, cần sử dụng một trình liên kết để kết nối các hàm thư viện với chương trình đối tượng Bạn có thể chọn trình liên kết độc lập, tuy nhiên, các trình biên dịch C trên môi trường DOS hay WINDOWS đã tích hợp sẵn trình liên kết.

4 Chạy và kiểm tra kết quả chương trình

Sau khi thiết lập chương trình đích, bước tiếp theo là kiểm tra tính chính xác của nó Bạn cần chạy chương trình với các bộ dữ liệu mẫu để xác định xem kết quả có đúng như mong đợi hay không Nếu phát hiện sai sót, hãy tìm hiểu nguyên nhân gây ra lỗi và quay lại bước đầu để thực hiện hiệu chỉnh Quá trình này sẽ được lặp đi lặp lại cho đến khi chương trình giải quyết đúng bài toán đã đề ra.

Các bước phát triển chương trình bao gồm việc sử dụng các chương trình dịch cho C, chủ yếu trên nền DOS hoặc Windows, trong đó tích hợp cả trình soạn thảo, biên dịch và liên kết, gọi là môi trường tích hợp Trong giáo trình này, chúng ta sẽ sử dụng BC (Borland C) hoặc Turbo C làm môi trường lập trình chính.

Các phần tử cơ bản của C

1.2.1 Tập ký tự cơ bản

Tập kí tự sử dụng trong ngôn ngữ lập trình C gồm có:

Các dấu ngăn cách: ; , : space tab

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.

In Turbo C programming, essential keywords include break, case, char, const, continue, default, do, double, else, enum, float, for, goto, if, int, interrupt, long, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, and while These keywords are fundamental for controlling program flow, defining data types, and managing memory, making them crucial for effective coding in Turbo C.

Chú ý: Tất cả các từ khóa trong C đều viết bằng chữ thường.

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…

1.2.3 Định danh (Tên) - Identifier Định danh (Identifier –hoặc còn gọi là Tên) 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.

Khi đặt tên cho định danh trong C, người lập trình cần tuân thủ các quy tắc sau :

1 Các kí tự được sử dụng trong các định danh của ngôn ngữ C chỉ được gồm có: chữ cái, chữ số và dấu gạch dưới “_” (underscore)

2 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ố

3 Định danh do người lập trình đặt không được trùng với từ khóa.

4 Turbo C++ không giới hạn độ dài của định danh, nhưng chỉ 32 kí tự đầu của định danh được chương trình biên dịch sử dụng (khiđịnh danh có độ dài lớn hơn 32 kí tự thì Turbo C++ sẽ tự động cắt bỏ, không xem xét các kí tự cuối bắt đầu từ kí tự thứ 33).

Một số ví dụ về định danh: i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1… Ví dụ về định danh không hợp lệ

1_a, 3d, 55x bắt đầu bằng chữ số so luong, ti le có kí tự không hợp lệ (dấu cách – space) trong tên int, char trùng với từ khóa của ngôn ngữ C

Dữ liệu là các thông tin được lưu trữ và xử lý trong máy tính, bao gồm nhiều dạng khác nhau như chữ viết, con số, hình ảnh và âm thanh Những dạng dữ liệu này được phân loại thành các kiểu dữ liệu khác nhau, phản ánh sự đa dạng trong cách thức mà thông tin được biểu diễn và xử lý.

Kiểu dữ liệu trong C có thể phân loại thành 3 nhóm:

- Kiểu đơn giản (cơ bản/cơ sở) gồm kiểu số nguyên,số thực,ký tự

- Kiểu dữ liệu có cấu trúc gồm kiểu mảng, xâu (chuỗi), struct (bản ghi),tệp.

Kiểu dữ liệu có thể được định nghĩa qua hai điểm chính: đầu tiên, nó là một tập hợp các giá trị mà dữ liệu thuộc kiểu đó có thể nhận được, gọi là dải giá trị hoặc miền giá trị.

Trên mỗi kiểu dữ liệu, chúng ta xác định một tập hợp các phép toán có thể thực hiện trên các dữ liệu thuộc kiểu đó, tạo thành một tập thao tác cho các giá trị tương ứng.

Bảng sau liệt kê các kiểu dữ liệu đơn giản trong C

Trong ngôn ngữ lập trình C, kiểu dữ liệu int đại diện cho số nguyên (integer), cho phép lưu trữ các giá trị trong khoảng từ -32,768 đến 32,767.

1) 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ư

Tên phép toán Kí hiệu Đảo dấu -

So sánh bằng = So sánh lớn hơn >

Trong máy tính, việc phân biệt kiểu dữ liệu là rất quan trọng, vì nó giúp xác định đối tượng mà máy tính đang xử lý, cấu trúc của đối tượng đó, các phép xử lý có thể thực hiện, cũng như cách thức lưu trữ đối tượng một cách hiệu quả.

Hằng (constant) là một giá trị cố định không thay đổi trong chương trình Để chương trình C có thể nhận diện hằng, người lập trình cần hiểu cách biểu diễn hằng trong ngôn ngữ này.

Biểu diễn hằng số nguyên

Trong ngôn ngữ C, một hằng số nguyên có thể được biểu diễn dưới những dạng sau

- Dạng thập phân: đó chính là cách viết giá trị số đó dưới hệ đếm cơ số 10 thông thường.

- Dạng thập lục phân: ta viết giá trị số đó dưới dạng hệ đếm cơ số 16 và thêm tiền tố 0x ở đầu.

- Dạng bát phân: ta viết giá trị số đó dưới dạng hệ đếm cơ số 8 và thêm tiền tố 0 ở đầu.

Giá trị thập phân Giá trị hệ bát phân Giá trị hệ thập lục phân

Biểu diễn hằng số thực

Có 2 cách biểu diễn hằng số thực:

- Dưới dạng số thực dấu phẩy tĩnh.

- Dưới dạng số thực dấu phẩy động.

Số thực dấu phẩy tĩnh Số thực dấu phẩy động

Biểu diễn hằng kí tự

Có 2 cách 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

Số thứ tự của ký tự trong bảng mã ASCII là một số nguyên, và có nhiều cách để biểu diễn số thứ tự này.

Kí tự cần biểu diễn Cách 1 Cách 2

Dấu nháy đơn ‘ ‘\’’ 39 hoặc 047 hoặc 0x27

Dấu nháy kép “ ‘\”’ 34 hoặc 042 hoặc 0x22

Dấu gạch chéo ngược \ ‘\\’ 92 hoặc 0134 hoặc 0x5c

Kí tự NUL ‘\0’ 0 hoặc 00 hoặc 0x0

Kí tự Tab ‘\t’ 9 hoặc 09 hoặc 0x9

Biểu diễn hằng xâu kí tự

Hằng 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

“ngon ngu lap trinh C”, “tin hoc dai cuong”… Để sử dụng, hằng phải được đặt tên Tên hằng đặt theo quy tắc định danh

Biến (variable) là một đặc trưng quan trọng trong các bài toán, đại diện cho một đại lượng có giá trị có thể thay đổi trong chương trình Tại mỗi thời điểm xác định, giá trị của biến được xem như một hằng số.

Trong chương trình, hằng và biến được sử dụng để lưu trữ dữ liệu, và dữ liệu được lưu trữ trong hằng và biến phải thuộc một kiểu dữ liệu cụ thể nào đó.

Biến và hằng cần phải được đặt tên để dễ dàng truy cập khi cần thiết Việc đặt tên cho biến và hằng phải tuân theo quy tắc định danh để đảm bảo tính nhất quán và dễ hiểu.

Trong lập trình chúng ta rất hay phải tính toán giá trị của một số đại lượng thường gặp như sin(x), cos(x), căn bậc hai, lũy thừa, logarithm…

Ngôn ngữ C trang bị cho lập trình viên một công cụ mạnh mẽ để thực hiện các phép toán và tính toán giá trị của các đại lượng trong chương trình, đó chính là các hàm.

Một số hàm toán học hay được sử dụng trong C Ý nghĩa Kí hiệu

Trong toán học, hàm căn bậc hai được biểu diễn bằng sqrt(x), ví dụ như sqrt(16.0) cho kết quả 4.0 Hàm lũy thừa được ký hiệu là pow(x, y), với pow(2, 3) cho kết quả 8 Hàm mũ tự nhiên exp(x) có exp(1.0) bằng 2.718282 Hàm logarithm tự nhiên lnx cho log(2.718282) bằng 1.0, trong khi log10(x) là logarithm cơ số 10, ví dụ log10(100) bằng 2 Hàm sin(x) và cos(x) lần lượt cho giá trị sin(0.0) bằng 0.0 và cos(0.0) bằng 1.0 Hàm tang tgx cho tan(0.0) bằng 0.0 Hàm ceil(x) trả về phần nguyên lớn nhất không nhỏ hơn x, ví dụ ceil(2.5) bằng 3, còn ceil(-2.5) bằng -2 Ngược lại, hàm floor(x) trả về phần nguyên nhỏ nhất không lớn hơn x, với floor(2.5) bằng 2 và floor(-2.5) bằng -3.

Biểu thức là sự ghép nối các toán tử (operator) và các toán hạng (operand) theo một quy tắc xác định.

Cấu trúc cơ bản của chương trình C

Về cơ bản, mọi chương trình viết bằng ngôn ngữ C sẽ có cấu trúc gồm các phần có thứ tự như sau:

Phần 1: Khai báo tệp tiêu đề

Phần 3: Định nghĩa kiểu dữ liệu typedef

Phần 4: Khai báo các nguyên mẫu hàm

Phần 5: Khai báo các biến toàn cục

Phần 6: Định nghĩa các hàm

Phần 7: Định nghĩa hàm main() main()

Phần 8: Định nghĩa các hàm đã khai báo nguyên mẫu

Phần 1: Phần khai báo các tệp tiêu đề Phần này có chức năng 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 (mỗi tệp tiêu đề tương ứng với một thư viện).

Phần 2: Định nghĩa các hằng mới dùng cho cả chương trình

Phần 3: Định nghĩa các kiểu dữ liệu mới dùng cho cả chương trình

Phần 4: Phần khai báo các hàm nguyên mẫu Phần này giúp cho chương trình dịch biết được những thông tin cơ bản (gồm tên hàm, dach sách các tham số và kiểu dữ liệu trả về) của các hàm sử dụng trong chương trình.

Phần 5: Phần khai báo các biến toàn cục.

Phần 6: Định nghĩa các hàm.

Phần 7: Phần định nghĩa hàm main( ) Hàm main( ) là một hàm đặc biệt trong

C Khi thực hiện, chương trình sẽ gọi hàm main( ), hay nói cách khác 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( ) ta mới gọi tới các hàm khác.

Phần 8: Phần định nghĩa các hàm đã khai báo nguyên mẫu Ở phần 3 ta đã khai báo nguyên mẫu (prototype) của các hàm, trong đó chỉ giới thiệu các thông tin cơ bản về hàm như tên hàm, danh sách các tham số và kiểu dữ liệu trả về Nguyên mẫu hàm không cho ta biết cách thức cài đặt và hoạt động của các hàm Ta sẽ làm việc đó ở phần định nghĩa các hàm

Trong các phần trên, thì phần 7 định nghĩa hàm main( ) bắt buộc phải có trong mọi chương trình C Các phần khác có thể có hoặc không.

Cài đặt và sử dụng turbo C

1.4.1 Cài đặt Để sử dụng Turbo C++ 3.0 ta cần phải cài đặt nó lên máy Quá trình cài đặt thực hiện theo các bước sau:

Để bắt đầu cài đặt Turbo C++ 3.0, trước tiên bạn cần chuẩn bị đĩa chứa bộ cài có kích thước khoảng 4 MB Sau đó, hãy sao chép bộ cài này vào máy tính của bạn, ví dụ vào thư mục C:\TC_Setup.

Bước 2: Tìm đến thư mục chứa bộ cài Turbo C++ 3.0 (như giả sử ở trên là C:\

Để cài đặt Turbo C++ 3.0, bạn cần mở file INSTALL.EXE và làm theo hướng dẫn Chương trình sẽ yêu cầu bạn chỉ định ổ đĩa chứa bộ cài Turbo C++ 3.0.

Enter the SOURCE drive to use:

Hãy nhập vào tên ổ đĩa, chẳng hạn C (ta để bộ cài Turbo C++ 3.0 ở thư mục C:\ TC_Setup)

Bước 3: Sau đó chương trình yêu cầu bạn nhập vào đường dẫn tới thư mục chứa các file của Turbo C++ 3.0

Thông thường chương trình sẽ tự tìm cho bạn, và bạn chỉ cần ấn Enter để chuyển sang bước tiếp theo

Bước 4: Ở bước 4, bạn cần xác định thư mục cài đặt Thư mục này sẽ chứa các file của Turbo C++ 3.0 để bạn sử dụng sau này.

Option… [IDE CMD LIB CLASS BGI HELP EXMPL]

Thư mục cài đặt mặc định là \TC trong thư mục gốc của ổ đĩa chứa bộ cài Để thay đổi thư mục cài đặt, hãy sử dụng các phím mũi tên để di chuyển đến phần Directories, nhấn Enter và nhập đường dẫn mới, sau đó nhấn phím Esc để quay lại.

Dùng các phím và để di chuyển hộp sáng đến phần Start Installation và ấn Enter.

1.4.2 Sử dụng môi trường Turbo

Sau khi cài đặt xong, bạn có thể tìm đến thư mục BIN trong thư mục cài đặt và chạy file TC.EXE để khởi động Turbo C++ 3.0.

Sau khi khởi động Turbo C++ 3.0 sẽ xuất hiện màn hình làm việc của Turbo C++ 3.0

Bạn dùng chuột di chuyển đến menu File (hoặc ấn Alt-F), sau đó chọn mục New để mở cửa sổ soạn thảo mới.

Gõ toàn bộ chương trình viết bằng ngôn ngữ C vào cửa sổ soạn thảo Nhấn phím F2 để lưu tệp chương trình nguồn, một cửa sổ sẽ xuất hiện yêu cầu bạn nhập tên mới cho tệp (mặc định là NONAME.CPP) Đặt tên cho tệp và chọn OK để lưu lại.

Để biên dịch chương trình trong Turbo C++ 3.0, bạn cần nhấn phím F9 Nếu có lỗi, phần mềm sẽ thông báo và bạn cần sửa chữa cho đến khi không còn lỗi Khi chương trình biên dịch thành công, Turbo C++ 3.0 sẽ thông báo và bạn có thể nhấn Ctrl-F9 để chạy chương trình đã được biên dịch.

KHỞI ĐẦU VỚI LẬP TRÌNH C

Một số khai báo cơ bản

2.1.1 Khai báo tệp tiêu đề

Trong chương trình C, bao gồm cả hàm main và các hàm do lập trình viên viết, chúng ta có thể sử dụng các thành phần như hàm, hằng và kiểu dữ liệu được định nghĩa trong thư viện C Để sử dụng những thành phần này, cần khai báo thông tin về chúng cho chương trình dịch thông qua tệp tiêu đề, có phần mở rộng là h (header) Cú pháp của một dòng bao hàm tệp tiêu đề rất quan trọng trong việc lập trình C.

Để sử dụng tệp tiêu đề (.H) trong chương trình, bạn cần bao gồm tệp đó bằng cách sử dụng lệnh #include “tên_tệp”, trong đó tên_tệp có thể bao gồm cả đường dẫn đến tệp Mỗi lệnh #include sẽ được viết trên một dòng riêng biệt.

Có 2 cách để khai báo hằng trong C là dùng chỉ thị #define hoặc khai báo với từ khóa const

# define tên_hằng giá_trị

Lưu ý không có dấu chấm phẩy ở cuối dòng chỉ thị

#define MAX_SINH_VIEN 50 // hằng kiểu số nguyên

Dùng từ khóa const để khai báo với cú pháp: const kiểu_dữ_liệu tên_hằng = giá_trị;

Khai báo này giống với khai báo biến có khởi tạo giá trị đầu, tuy nhiên cần lưu ý:

Do từ khóa const được sử dụng, giá trị của đối tượng tên_hằng sẽ không thể thay đổi trong chương trình Mọi lệnh cố gắng thay đổi giá trị của tên_hằng sẽ gây ra lỗi biên dịch.

Trong khai báo biến, lập trình viên có thể khởi tạo giá trị ngay khi khai báo hoặc để trống Tuy nhiên, khi khai báo hằng, giá trị của tất cả các hằng phải được xác định ngay trong lệnh khai báo.

Các khai báo hằng ở ví dụ trước giờ có thể viết lại theo cách khác như sau: const int MAX_SINH_VIEN = 50;

Một biến trước khi sử dụng phải được khai báo Cú pháp khai báo: kiểu_dữ_liệutên_biến;

Ví dụ: float x; // biến kiểu thực float y; // biến kiểu thực double z; // biến kiểu thực int i; // biến kiểu nguyên int j; // biến kiểu nguyên

Nếu các biến thuộc cùng kiểu dữ liệu thì C cho phép khai báo chúng trên cùng một dòng: ki ểu_dữ_liệu danh_sách_tên_biến;

Ví dụ: float x, y; double z; int i, j;

Sau khi khai báo, biến sẽ nhận giá trị theo kiểu dữ liệu đã định Nếu cần, chúng ta có thể khởi tạo giá trị ban đầu cho biến bằng cú pháp: kiểu_dữ_liệu tên_biến = giá_trị_đầu;

Ví dụ: int a = 3; // sau lenh nay bien a se co gia tri bang 3

Một chương trình C bao hàm nhiều hàm Trong đó hàm main() là hàm chính,luôn xuất hiện và chỉ xuất hiện 1 lần Khái niệm về hàm của C như sau:

Hàm main() cũng không có tham số, vì vậy ta có thể gặp cách viết void main() hoặc void main(void) Phần thân của hàm main() gồm:

- Các khai báo hằng,biến,…

- Các chỉ thị thực hiện các thao tác theo nội dung hàm.

Printf(“\n Go vao 1 so nguyen la nam sinh cua ban”); Scanf(“%d”,&n)’

2.2 Các phép toán và biểu thức trong C

Trong ngôn ngữ lập trình C, các phép toán được phân chia thành bốn nhóm cơ bản: phép toán số học, phép toán thao tác trên bit, phép toán quan hệ và phép toán logic.

2.2.1.1 Các phép toán cơ bản

Các phép toán số học ( Arithmetic operators ) gồm có:

Toán Ý nghĩa Kiểu dữ liệu của Ví dụ tử toán hạng

- Phép đổi dấu Số thực hoặc số int a, b; nguyên -12; -a; -25.6;

+ Phép toán cộng Số thực hoặc số float x, y; nguyên 5 + 8; a + x;

- Phép toán trừ Số thực hoặc số 3 – 1.6; a – 5; nguyên

* Phép toán nhân Số thực hoặc số a * b; b * y; nguyên 2.6 * 1.7;

/ Phép toán chia Số thực hoặc số 10.0/3.0; (bằng 3.33…) nguyên 10/3.0; (bằng 3.33…)

/ Phép chia lấy phần Giữa 2 số nguyên 10/3; (bằng 3) nguyên

% Phép chia lấy phần Giữa 2 số nguyên 10%3; (bằng 1) dư

Các phép toán quan hệ ( Comparison operators ) gồm có:

Toán tử Ý nghĩa Ví dụ

So sánh lớn hơn giữa 2 số nguyên hoặc 2 > 3 (có giá trị 0) thực 6 > 4 (có giá trị 1) a > b

So sánh lớn hơn hoặc bằng giữa 2 số 6 4 (có giá trị 1) nguyên hoặc thực x a

So sánh nhỏ hơn giữa 2 số nguyên hoặc 5 3 (có giá trị 0), thực

So sánh nhỏ hơn hoặc bằng giữa 2 số 5 5 (có giá trị 1) nguyên hoặc thực 2 9 (có giá trị 1)

So sánh bằng nhau giữa 2 số nguyên hoặc 3 4 (có giá trị 0) thực a b

So sánh không bằng (so sánh khác) giữa 2 5 6 (có giá trị 1) số nguyên hoặc thực 6 6 (có giá trị 0)

Các phép toán logic ( Logical operators ) gồm có

Toán Ý nghĩa Kiểu dữ liệu của Ví dụ tử toán hạng

&& Phép VÀ LOGIC Hai biểu thức logic 3 = y x = x ia) imax = ib;

- printf("So lon nhat = %d.\n", imax); c Mô tả bằng lưu đồ d Viết chương trình

Kết quả in ra màn hình

Nhap vao so a : 10 Cho chạy lại chương trình và thử lại với:

Quan sát và nhận xét kết quả

Ví dụ 2: Viết chương trình nhập vào 2 số nguyên a, b In ra thông báo "a bằng b" nếu a

= b, ngược lại in ra thông báo "a khác b" a Phác họa lời giải

So sánh a với b, nếu a bằng b thì in ra câu thông báo "a bằng b", ngược lại in ra thông báo "a khác b" b Mô tả quy trình xử lý (giải thuật)

Ngôn ngữ tự nhiên Ngôn ngữ C

- Khai báo 2 biến a, b kiểu số nguyên - int ia, ib;

- Nhập vào giá trị a - printf("Nhap vao so a: ");

- Nhập vào giá trị b scanf("%d", &ia);

- Nếu a = b thì in ra thông báo "a bằng b" - printf("Nhap vao so b: ");

Ngược lại (còn không thì) in ra thông scanf("%d", &ib); báo "a khác b" - if (ia == ib) printf("a bang b\n"); else printf("a khac b\n"); c Mô tả bằng lưu đồ d Viết chương trình

Kết quả in ra màn hình

Nhap vao so a : 10 Cho chạy lại chương trìnhvà thử lại với:

Quan sát và nhận xét kết quả

Khi sử dụng lệnh if…else lồng nhau, cần lưu ý rằng mỗi else sẽ gắn liền với if gần nhất mà không có else Do đó, để tránh hiểu nhầm các lệnh if không có else, bạn nên đặt chúng trong các khối lệnh rõ ràng.

Lệnh switch là một cấu trúc điều kiện linh hoạt và mềm dẻo hơn so với cấu trúc else if, mặc dù nó yêu cầu biểu thức phải có giá trị hằng nguyên cụ thể Trong khi một bài toán có thể được giải quyết bằng lệnh switch, thì việc sử dụng if cũng là một lựa chọn, tùy thuộc vào thuật toán của bài toán.

Cú pháp cấu trúc switch switch (biểu_thức)

{ case giá_trị_1: lệnh_1; [brea k;] case giá_trị_2: lệnh_2; [break;]

… case giá_trị_n: lệnh_n; [break;]

Cơ chế hoạt động của câu lệnh switch bắt đầu bằng việc tính giá trị của biểu_thức và sau đó so sánh với các giá_trị_k (k = 1, 2, …, n) được xác định sau từ khóa case Có hai trường hợp có thể xảy ra.

Trong dãy giá trị giá_trị_1, giá_trị_2, nếu tồn tại giá trị bằng biểu_thức, chỉ số i sẽ được gọi là chỉ số của giá trị đầu tiên thỏa mãn điều kiện này Khi đó, lệnh_i sẽ được thực hiện Nếu sau khi thực hiện lệnh_i có lệnh break, chương trình sẽ chuyển sang lệnh tiếp theo sau cấu trúc switch Ngược lại, nếu không có lệnh break, chương trình sẽ tiếp tục thực hiện các lệnh sau lệnh_i cho đến khi gặp lệnh break đầu tiên hoặc thực hiện xong tất cả các lệnh trong switch Cuối cùng, chương trình sẽ tiếp tục với lệnh tiếp theo sau cấu trúc switch.

Nếu không có giá trị k (k = 1, 2, …n) nào trùng với giá trị của biểu thức trong cấu trúc switch, sẽ có hai trường hợp xảy ra Thứ nhất, nếu có nhãn default, chương trình sẽ thực hiện lệnh n+1 và sau đó tiếp tục với lệnh tiếp theo sau cấu trúc switch Thứ hai, nếu không có nhãn default, chương trình sẽ trực tiếp chuyển sang thực hiện lệnh tiếp theo sau cấu trúc switch.

Sơ đồ: biểu_thức == giá_trị_1 ? 0 biểu_thức == giá_trị_2 ? 0

1 1 1 lệnh_1 lệnh_2 lệnh_n break ? 0 break ? 0 break ? 0

Người dùng được yêu cầu nhập một số nguyên không âm để xác định ngày trong tuần tương ứng Theo quy ước, số chia hết cho 7 sẽ tương ứng với Chủ nhật, số chia 7 dư 1 sẽ là thứ Hai, và tiếp tục như vậy cho đến số chia 7 dư 6 ứng với thứ Bảy.

// khai bao bien int a; do { printf(“\n Nhap mot gia tri so nguyen khong am: “); scanf(“%d”,&a); if(a

Ngày đăng: 28/12/2021, 19:17

HÌNH ẢNH LIÊN QUAN

Bảng sau liệt kê các kiểu dữ liệu đơn giản trong C - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
Bảng sau liệt kê các kiểu dữ liệu đơn giản trong C (Trang 10)
Bảng thứ tự ưu tiên của các phép toán trong C - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
Bảng th ứ tự ưu tiên của các phép toán trong C (Trang 23)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 73)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 75)
BẢNG SAI HỎNG THƯỜNG GẶP - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG SAI HỎNG THƯỜNG GẶP (Trang 76)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 76)
BẢNG SAI HỎNG THƯỜNG GẶP - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG SAI HỎNG THƯỜNG GẶP (Trang 77)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 78)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 80)
BẢNG SAI HỎNG THƯỜNG GẶP STT  Sai lầm Nguyên nhân  Biện pháp phòng tránh - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
ai lầm Nguyên nhân Biện pháp phòng tránh (Trang 81)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 82)
BẢNG TRÌNH TỰ THỰC HIỆN - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
BẢNG TRÌNH TỰ THỰC HIỆN (Trang 84)
BẢNG SAI HỎNG THƯỜNG GẶP STT  Sai lầm Nguyên nhân  Biện pháp phòng tránh - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
ai lầm Nguyên nhân Biện pháp phòng tránh (Trang 85)
BẢNG SAI HỎNG THƯỜNG GẶP Sai lầm Nguyên nhân  Biện pháp phòng tránh - Giáo trình Lập trình cơ bản (Ngành Kỹ thuật lắp ráp, sửa chữa máy tính)
ai lầm Nguyên nhân Biện pháp phòng tránh (Trang 89)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w