mở đầu Giới thiệu: Lập trình là việc một người sử dụng các ngôn ngữ lập trình, các đoạn mã hay các tiện ích có sẵn để tạo ra một phần mềm máy tính, trò chơi, trang web, ứng dụng,. Điều này giúp người dùng đơn giản hóa việc thực hiện mệnh lệnh với laptop, hay dễ dàng tương tác với nhau thông qua các thiết bị điện tử. Lịch sử phát triển ngôn ngữ lập trình C. C là ngôn ngữ lập trình được thiết kế bởi Dennis Ritchie tại phòng thí nghiệm Bell Telephone năm 1972.
Nó được viết với mục tiêu chính là xây dựng hệ điều hành UNIX. Vì thế ban đầu nó không hướng tới sự tiện dụng cho người lập trình. C được phát triển từ một ngôn ngữ lập trình có tên là B (B là ngôn ngữ lập trình được viết bởi Ken Thompson tại Bell Labs, và tên ngôn ngữ lấy theo tên của Bell Labs). C là ngôn ngữ mạnh và mềm dẻo, linh hoạt, nó nhanh chóng trở thành ngôn ngữ phổ biến không chỉ trong phạm vi của Bell, C được các lập trình viên sử dụng viết nhiều loại ứng dụng ở các mức độ khác nhau.
Cũng vì nó được dùng nhiều nơi nên xuất hiện những đặc điểm khác nhau, các phiên bản phát triển không thống nhất. Để giải quyết vấn đề này, năm 1983 Viện tiêu chuẩn Mỹ (ANSI) đã thành lập một chuẩn cho C và có tên ANSI C (ANSI standard C). Nói chung các chương trình dịch C ngày nay đều tuân theo chuẩn này ngoại trừ 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à ngôn ngữ mạnh và mềm dẻo.
Có thể nói rằng sự hạn chế của C chỉ phụ thuộc vào người lập trình, tức là với C bạn có thể làm tất cả những điều theo ý tưởng của bạn. C được dùng cho những 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 là một chương trình C được viết trên hệ thống này có thể dễ dàng dịch lại chạy được trên hệ thống khác ● C là ngôn ngữ cô đọng, số lượng từ khoá không nhiều. ● C là ngôn ngữ lập trình cấu trúc.
Mã lệnh của chương trình C được viết thành các hàm, các hàm này có thể sử dụng lại trong các ứng dụng khác. Với các đặc điểm trên C là ngôn ngữ tốt cho việc học lập trình, hơn nữa sau này chúng ta còn có thể tiếp cận với lập trình hướng đối tượ ng, và một trong 11 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. Một số khái niệm dùng trong ngôn ngữ lập trình C. 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,. • Các kí tự trắng: ENTER, BACKSPACE, khoảng trắng. • Các kí tự đặc biệt khác: + - * / ^ | # $ & % ( ) [ ] _ = ~ ‘ “.
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ệ được bắt đầu bằng một kí tự chữ cái hoặc dấu gạch nối (underscore), tiếp theo sau là dãy các kí tự chữ hoặc số hoặc dấu gạch nối, và không phép 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. Chú ý: • Mọi danh hiệu phải được khai báo trước khi sử dụng.
TRÌNH BIÊN DỊCH sẽ báo lỗi undefined symbol trong quá trình biên dịch chương trình nếu vi phạm nguyên tắc này. • “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. Từ khóa (keyword) 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 Mã bài: MĐ 13 - P1 - 01 Giới thiệu: C là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nó giống với ngôn ngữ Assembler hơn hầu hết các ngôn ngữ bậc cao. Hơn thế, C đôi khi được đánh giá như là "có khả năng di động", cho thấy sự khác nhau quan trọng giữa nó với ngôn ngữ bậc thấp như là Assembler, đó là việc mã C có thể được dịch và thi hành trong hầu hết các máy tính, hơn hẳn các ngôn ngữ hiện tại trong khi đó thì Assembler chỉ có thể chạy trong một số máy tính đặc biệt.
Vì lý do này C được xem là ngôn ngữ bậc trung. Mục tiêu - 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: Sử dụng phương pháp giảng giảng dạy tích cực (diễn giảng, vấn đáp, dạy học theo vấn đề, thao tác mẫu, uốn nắn và sửa sai tại chỗ cho người học); yêu cầu người học nhớ các giá trị đại lượng, đơn vị của các đại lượng. Các bước quy trình thực hiện.
- Đố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ầ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 - Nội dung: 13 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. - Phương phá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) Nội dung chính 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.
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 14 Về mặc định, chương trình C sẽ được viết và lưu giữ lại với một file có đuôi file là. Ví dụ như check_id. Đuôi file là dòng ký tự giúp chúng ta biết file đó thuộc loại file gì. Trong C thì mặc định đuôi file là c như trên.
Dịch, chạy chương trình 1. Giai đoạn tiền xử lý – Preprocessor Giai đoạn này sẽ thực hiện: Nhận mã nguồ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ý Ví dụ: chỉ thị #include cho phép ghép thêm mã chương trình của một tệp tiêu để vào mã nguồn cần dịch. Các hằng số được định nghĩa bằng #define sẽ được thay thế bằng giá trị cụ thể tại mỗi nơi sử dụng trong chương trình. 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ý.
Công đoạn dịch Assembly 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 đó. Giai đoạn Linker Trong giai đoạn này mã máy của một chương trình dịch từ nhiều nguồn (file .c hoặc file thư viện .lib) được liên kết lại với nhau để tạo thành 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. Chính vì vậy mà các lỗi liên quan đến việc gọi hàm hay sử dụng biến tổng thể mà không tồn tại sẽ bị phát hiện. Kể cả lỗi viết chương trình chính không có hàm main() cũng được phát hiện trong 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. Sử dụng menu Help 1. 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 hàm Các biến Các lệnh và biểu thức 15 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 <stdio.h> 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 tiếp theo /*.*/ là dòng comment được bỏ qua bởi bộ biên dịch compiler và được dùng để thêm các chú thích cho chương trình. Đây được gọi là phần comment của chương trình. 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.
Câu lệnh nhập, xuất dữ liệu 1. Xuất dữ liệu lên màn hình Xuất dữ liệu ra màn hình: • Trong “C/C++”, dùng hàm printf(.) khai báo trong tập tin tiêu đề <stdio.h> (xem tài liệu) • Trong “C++”, dùng đối tượng cout và toán tử << khai báo trong <iostream.h> như sau: trong đó: BT1, BT2,. là các biểu thức hợp lệ (kiểu char, int, float, double, char*). Đưa dữ liệu vào từ bàn phím • Trong “C/C++”, ta dùng hàm scanf(…) khai báo trong tập tin tiêu đề <stdio.