PHẦN CƠ BẢN
Lập trình là quá trình sử dụng ngôn ngữ lập trình và mã nguồn để phát triển phần mềm, trò chơi, trang web và ứng dụng Qua đó, lập trình giúp người dùng thực hiện các lệnh trên laptop một cách đơn giản và tương tác dễ dàng hơn qua các thiết bị điện tử.
1 Lịch sử phát triển ngôn ngữ lập trình C.
C là ngôn ngữ lập trình do Dennis Ritchie phát triển tại phòng thí nghiệm Bell Telephone vào năm 1972, với mục tiêu chính là xây dựng hệ điều hành UNIX Ban đầu, C không được thiết kế để thuận tiện cho người lập trình Ngôn ngữ này được phát triển từ ngôn ngữ B, được tạo ra bởi Ken Thompson tại Bell Labs, và tên gọi của nó cũng xuất phát từ tên của Bell Labs.
Ngôn ngữ C là một ngôn ngữ mạnh mẽ, linh hoạt và phổ biến, được các lập trình viên sử dụng để phát triển nhiều loại ứng dụng khác nhau Sự phổ biến của C dẫn đến sự xuất hiện của nhiều đặc điểm và phiên bản không thống nhất Để khắc phục vấn đề này, năm 1983, Viện tiêu chuẩn Mỹ (ANSI) đã thiết lập tiêu chuẩn ANSI C Hiện nay, hầu hết các trình biên dịch C đều tuân theo tiêu chuẩn này, mặc dù vẫn có một số khác biệt nhỏ.
C được phổ biến bởi nó có các đặc điểm sau:
C là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, cho phép người lập trình thực hiện mọi ý tưởng của mình Hạn chế duy nhất của C phụ thuộc vào khả năng của người sử dụng Ngôn ngữ này được ứng dụng rộng rãi trong các dự án từ quy mô nhỏ đến lớn, bao gồm phát triển hệ điều hành, đồ họa và các chương trình biên dịch.
Ngôn ngữ lập trình C có tính khả chuyển cao, cho phép các chương trình được viết trên một hệ thống có thể dễ dàng dịch và chạy trên hệ thống khác Điều này giúp lập trình viên tiết kiệm thời gian và công sức khi phát triển phần mềm cho nhiều nền tảng khác nhau.
● C là ngôn ngữ cô đọng, số lượng từ khoá không nhiều.
Ngôn ngữ lập trình C là một ngôn ngữ cấu trúc, cho phép viết mã lệnh dưới dạng các hàm Các hàm này có thể được tái sử dụng trong nhiều ứng dụng khác nhau, mang lại tính linh hoạt và hiệu quả cho quá trình lập trình.
Ngôn ngữ C là lựa chọn tuyệt vời cho việc học lập trình nhờ vào các đặc điểm nổi bật của nó Hơn nữa, việc nắm vững C sẽ giúp chúng ta dễ dàng tiếp cận với lập trình hướng đối tượng trong tương lai.
12 những ngôn ngữ lập trình chúng ta lựa chọn đầu tiên cho lập trình hướng đối tượng là Java, Python.
2 Một số khái niệm dùng trong ngôn ngữ lập trình C
2.1 Tập kí tự dùng trong ngôn ngữ C.
NNLT C/C++ chỉ chấp nhận các ký tự sau:
• Các kí tự chữ hoa: A, B, C, , Z
• Các kí tự chữ thường: a, b, c, , z
• Các kí tự trắng: ENTER, BACKSPACE, khoảng trắng.
• Các kí tự đặc biệt khác: + - * / ^ | # $ & % ( ) [ ] _ = ~ ‘ “
2.2 Tên, từ khoá. Độ dài tối đa của 1 danh hiệu (tùy theo chương trình dịch) thường là 31-32 kí tự.
Danh hiệu hợp lệ phải bắt đầu bằng một ký tự chữ cái hoặc dấu gạch nối (underscore) Sau đó, nó có thể bao gồm các ký tự chữ, số hoặc dấu gạch nối, nhưng không được có khoảng trắng ở giữa.
Nên đặt danh hiệu theo các gợi ý sau:
• Đặt tên cho các đối tượng một cách gợi nhớ (Mnemonic).
• Tên hằng được đặt bằng chữ hoa.
Tên biến, tên hàm được đặt như sau: từ đầu tiên bằng chữ thường, các từ còn lại bắt đầu bằng chữ hoa
Tên kiểu dữ liệu do USER định nghĩa được bắt đầu bằng chữ hoa.
Tất cả các danh hiệu cần được khai báo trước khi sử dụng Nếu không tuân thủ nguyên tắc này, TRÌNH BIÊN DỊCH sẽ thông báo lỗi "undefined symbol" trong quá trình biên dịch chương trình.
• “C/C++” phân biệt chữ hoa và chữ thường (Case sensitive).
• Trong cùng một phạm vi (scope), không được đặt trùng danh hiệu
Là từ dành riêng và có ngữ nghĩa xác định do NNLT quy định
Mọi NNLT đều có một bộ từ khóa riêng Ngôn ngữ lập trình “C/C++”
(version 3.1) thể hiện các từ khóa dưới dạng các kí tự màu trắng, các danh hiệu dưới dạng các kí tự màu vàng, số dưới dạng màu xanh lơ,
T ổng quan về ngôn ngữ C
Ngôn ngữ lập trình C là một ngôn ngữ nhỏ gọn, hoạt động gần với phần cứng và tương tự như ngôn ngữ Assembler hơn so với các ngôn ngữ bậc cao khác Đặc biệt, C được coi là "có khả năng di động", cho phép mã C có thể được dịch và thực thi trên hầu hết các máy tính, điều này tạo ra sự khác biệt quan trọng so với Assembler, vốn chỉ có thể chạy trên một số máy tính đặc biệt Vì vậy, C được xem là ngôn ngữ bậc trung.
- Biết cách khởi động và thoát khỏi chương trình;
- Sử dụng được hệ thống trợ giúp từ help file;
- Thực hiện được các thao tác cơ bản như dịch, gỡ rối và chạy chương trình;
- Biết cách đưa dữ liệu vào từ bàn phím và xuất dữ liệu lên màn hình;
- Rèn luyện tính cẩn thận, khoa học
Phương pháp giảng dạy và học tập bài 1
Đối với người dạy, việc áp dụng phương pháp giảng dạy tích cực như diễn giảng, vấn đáp, dạy học theo vấn đề, thao tác mẫu và uốn nắn sửa sai tại chỗ là rất quan trọng Người dạy cũng cần yêu cầu học viên ghi nhớ các giá trị đại lượng và đơn vị của các đại lượng Các bước quy trình thực hiện nên được tuân thủ để đảm bảo hiệu quả trong quá trình giảng dạy.
- Đối với người học: chủ động đọc trước giáo trình trước buổi học, thực hiện thao tác theo hướng dẫn Điều kiện thực hiện bài học
- Phòng học chuyên môn hóa/nhà xưởng: Xưởng chuyên môn
- Trang thiết bị máy móc: Máy chiếu, máy tính và các thiết bị dạy học khác, mô hình thực hành.
Học liệu, dụng cụ, nguyên vật liệu: Giáo trình, tài liệu tham khảo, Máy tính, phầnmềm ứng dụng…
- Các điều kiện khác: Không có
Kiểm tra và đánh giá bài học
Kiến thức: Kiểm tra và đánh giá tất cả nội dung đã nêu trong mục tiêu kiến thức
Kỹ năng: Đánh giá tất cả nội dung đã nêu trong mục tiêu kĩ năng
Năng lực tự chủ và trách nhiệm: Trong quá trình học tập, người học cần:
+ Nghiên cứu bài trước khi đến lớp
+ Chuẩn bị đầy đủ tài liệu học tập
+ Tham gia đầy đủ thời lượng môn học.
+ Nghiêm túc trong quá trình học tập.
Điểm kiểm tra thường xuyên: 1 điểm kiểm tra (hình thức: hỏi miệng)
Kiểm tra định kỳ lý thuyết: không
Kiểm tra định kỳ thực hành: không (hình thức: thực hành)
1.1 Các thao tác cơ bản
1.1.1 Khởi động và thoát khỏi môi trường C Để thoát khỏi phần mềm nhấn tổ hợp phím Alt + X, đóng cửa sổ chương trình: nhấn tổ hợp phím Alt+F3
1.1.2 Mở và lưu file Để mở file đã tạo trước đó:
• Chọn biểu tượng Open, hoặc Ấn tổ hợp phím CTRL+O, hoặc chọn menu File → Open
• Chọn file muốn mở, sau đó chọn nút Open
Mặc định, chương trình C được viết và lưu trữ trong các tệp có đuôi c, chẳng hạn như check_id.c hoặc sample.c Đuôi file này giúp xác định loại tệp, và trong ngôn ngữ lập trình C, đuôi file tiêu chuẩn là c.
1 Giai đoạn tiền xử lý – Preprocessor
Giai đoạn này sẽ thực hiện:
Xóa bỏ tất cả chú thích, comments của chương trình
Chỉ thị tiền xử lý (bắt đầu bằng #) cũng được xử lý
Chỉ thị #include cho phép tích hợp mã từ một tệp tiêu chuẩn vào mã nguồn cần biên dịch Đồng thời, các hằng số được định nghĩa bằng #define sẽ được thay thế bằng giá trị cụ thể mỗi khi chúng được sử dụng trong chương trình.
2 Cộng đoạn dịch Ngôn Ngữ Bậc Cao sang Assembly
Phân tích cú pháp (syntax) của mã nguồn NNBC
Chuyển chúng sang dạng mã Assembly là một ngôn ngữ bậc thấp (hợp ngữ) gần với tập lệnh của bộ vi xử lý.
Dich chương trình => Sang mã máy 0 và 1
Một tệp mã máy (.obj) sinh ra trong hệ thống sau đó.
Trong giai đoạn này, mã máy từ nhiều nguồn khác nhau, bao gồm các file c và thư viện lib, được liên kết lại để tạo thành một chương trình đích duy nhất.
Mã máy của các hàm thư viện gọi trong chương trình cũng được đưa vào chương trình cuối trong giai đoạn này.
Các lỗi liên quan đến việc gọi hàm hoặc sử dụng biến tổng thể không tồn tại sẽ được phát hiện Ngay cả lỗi thiếu hàm main() trong chương trình chính cũng sẽ được phát hiện trong quá trình liên kết.
Kết thúc quá trình tất cả các đối tượng được liên kết lại với nhau thành một chương trình có thể thực thi được (executable hay exe) thống nhất.
1.2 Cấu trúc một chương trình C
Một chương trình C bao gồm những phần sau đây:
Các lệnh tiền xử lý
Các lệnh và biểu thức
Các comment Đầu tiên hãy xem đoạn code đơn giản mà sẽ in ra màn hình hai từ "Hello World":
Hãy xem các phần của chương trình bên trên:
Dòng đầu tiên của chương trình #include là lệnh tiền xử lý, nhắc nhở bộ biên dịch C thêm tệp stdio.h trước khi biên dịch
Dòng tiếp theo int main() là hàm main, nơi chương trình bắt đầu.
Dòng comment trong chương trình, được bộ biên dịch bỏ qua, cho phép lập trình viên thêm chú thích để giải thích mã nguồn.
Dòng tiếp theo printf( ) là một hàm chức năng khác của ngôn ngữ C , in ra thông điệp "Hello, World!" hiển thị trên màn hình.
Dòng tiếp theo return 0; kết thúc hàm chính và trả về giá trị 0
1.3 Câu lệnh nhập, xuất dữ liệu
1.3.1 Xuất dữ liệu lên màn hình
Xuấtdữ liệu ra màn hình:
• Trong “C/C++”, dùng hàm printf( .) khai báo trong tập tin tiêu đề
• Trong “C++”, dùng đối tượng cout và toán tử > khai báo trong
như sau: trong đó: var1, var2, … là các biến hợp lệ (kiểu char, int, float, double, char*)
Lệnh cin >> var yêu cầu đọc các giá trị từ bàn phím cho biến var với các qui ước sau:
Các giá trị số được phân cách bởi các kí tự trắng như SPACE BAR, TAB và ENTER Khi gặp kí tự không hợp lệ như dấu ‘.’ đối với số nguyên hoặc chữ cái đối với số, quá trình đọc từ cin sẽ dừng lại và các kí tự không hợp lệ này sẽ được xử lý trong lần đọc tiếp theo Đối với giá trị kí tự và xâu kí tự, không có khái niệm nhập các giá trị này.
1.4 Một vài chương trình đơn giản
- Dựa trên những gì đã học
1 Khởi động và thoát khỏi môi trường C
5 Cấu trúc một chương trình C
6 Xuất dữ liệu lên màn hình
7 Đưa dữ liệu vào từ bàn phím
H ằng , B iến và M ảng
Trong ngành khoa học máy tính, lập trình hàm là một mô hình lập trình tập trung vào việc tính toán thông qua việc đánh giá các hàm toán học, đồng thời hạn chế việc sử dụng trạng thái và dữ liệu biến đổi Phương pháp này nhấn mạnh ứng dụng của hàm số, trái ngược với lập trình mệnh lệnh, vốn chú trọng vào sự thay đổi trạng thái Lập trình hàm có nguồn gốc từ phép tính lambda, một hệ thống hình thức được phát triển trong những năm 1930 nhằm nghiên cứu định nghĩa và ứng dụng của hàm số cũng như đệ quy Nhiều ngôn ngữ lập trình hàm hiện nay có thể được coi là những cách phát triển từ giải tích lambda.
Sự khác biệt giữa hàm số toán học và hàm trong lập trình mệnh lệnh là hàm mệnh lệnh có thể tạo ra hiệu ứng lề, làm thay đổi giá trị của phép tính trước đó, dẫn đến việc thiếu tính trong suốt tham chiếu Điều này có nghĩa là cùng một biểu thức ngôn ngữ có thể cho ra nhiều giá trị khác nhau tùy thuộc vào trạng thái của chương trình Ngược lại, trong lập trình hàm, giá trị xuất ra chỉ phụ thuộc vào các tham số đầu vào, vì vậy gọi hàm f hai lần với cùng giá trị x sẽ cho ra cùng kết quả f(x) Việc loại bỏ hiệu ứng lề giúp chương trình dễ hiểu hơn và dự đoán được hành vi, là động lực chính cho sự phát triển của lập trình hàm.
- Trình bày được các kiểu dữ liệu và so sánh được phạm vi biểu diễn của các kiểu dữ liệu;
- Vận dụng được các loại biến, hằng biểu thức cho từng chương trình cụ thể;
- Biết, hiểu và so sánh được các lệnh, khối lệnh;
- Viết được các chương trình đơn giản với các hằng, biến và mảng;
- Rèn luyện đức tính làm việc khoa học, khả năng làm việc theo nhóm
Phương pháp giảng dạy và học tập bài 1
Đối với người dạy, việc áp dụng phương pháp giảng dạy tích cực như diễn giảng, vấn đáp, dạy học theo vấn đề, thao tác mẫu và uốn nắn sửa sai tại chỗ là rất quan trọng Đồng thời, giáo viên cần yêu cầu người học ghi nhớ các giá trị đại lượng và đơn vị của chúng Các bước quy trình thực hiện cũng cần được tuân thủ để đảm bảo hiệu quả trong quá trình dạy và học.
- Đối với người học: chủ động đọc trước giáo trình trước buổi học, thực hiện thao tác theo hướng dẫn.
22 Điều kiện thực hiện bài học
- Phòng học chuyên môn hóa/nhà xưởng: Xưởng chuyên môn
- Trang thiết bị máy móc: Máy chiếu, máy tính và các thiết bị dạy học khác, mô hình thực hành
Học liệu, dụng cụ, nguyên vật liệu: Giáo trình, tài liệu tham khảo, Máy tính, phần mềm ứng dụng…
- Các điều kiện khác: Không có
Kiểm tra và đánh giá bài học
Kiến thức: Kiểm tra và đánh giá tất cả nội dung đã nêu trong mục tiêu kiến thức
Kỹ năng: Đánh giá tất cả nội dung đã nêu trong mục tiêu kĩ năng.
Năng lực tự chủ và trách nhiệm: Trong quá trình học tập, người học cần:
+ Nghiên cứu bài trước khi đến lớp
+ Chuẩn bị đầy đủ tài liệu học tập.
+ Tham gia đầy đủ thời lượng môn học.
+ Nghiêm túc trong quá trình học tập.
Điểm kiểm tra thường xuyên: 1 điểm kiểm tra (hình thức: hỏi miệng)
Kiểm tra định kỳ lý thuyết: không có
Kiểm tra định kỳ thực hành: không có (hình thức: thực hành)
Kích thước: 2 bytes và có phạm vi biểu diễn giá trị –32768 32767
Các phép toán áp dụng được trên kiểu int::
• Các phép toán số học: +, -, *, /, %
• Các phép toán so sánh: =, ==, !• Các phép toán dịch chuyển số học: >>, và > N; int S = 0; for (int i = 1; i