Please enable JavaScript.
Coggle requires JavaScript to display documents.
C and C++ Programming (Ngôn ngữ lập trình C (Các cú pháp cơ bản(syntax)…
C and C++ Programming
Ngôn ngữ lập trình C
Hàm(function), biến(variable),
một số kiểu dữ liệu hay dùng
1 chương trình C luôn bắt đầu bằng file main.c và hàm main():
stdio.h = standard input/output .header
Khi chạy chương trình:
Muốn chương trình dừng lại, chờ bấm phím bất kỳ mới thoát:
Hàm(function)
Loại trả về giá trị, fx=tên hàm, x = tham số đầu vào = input parameters:
Gọi hàm:
Kết quả:
Loại ko trả về giá trị(kiểu void):
Lúc gọi ra:
Kết quả:
Có thể dùng pointer trong TH này:
Một số kiểu dữ liệu cơ bản
Kiểu mảng(array)
Mảng(array) các số thực(double):
Có thể ko cần số phần tử MAX:
Nhập nhiều phần tử vào mảng:
Kiểu string = xâu ký tự = mảng các char
String là mảng các char(character):
Tự cấp phát 250 khoảng char
Nối(concatenate) 2 string:
strcat - string concatenation
So sánh 2 string theo thứ tự alphabet:
strcpy = copy một string sang 1 string khác:
Các cú pháp cơ bản(syntax)
Input(nhập) dữ liệu từ bàn phím:
&n = địa chỉ(memory's address) của n
Nếu dữ liệu nhập vào là string(xâu ký tự):
In(printf) ra màn hình:
\n là dấu enter ở cuối string
In ra màn hình 1 số nguyên:
Số nguyên chiếm tối thiểu 4 ký tự:
Có thể xài kiểu số nguyên "dài":
In ra màn hình một số thực:
Số này chiếm tối thiểu 6 ký tự, 2 số sau dấu phảy:
Có thể xài kiểu số thực "dài":
Nhập 1 ký tự - char, từ bàn phím-getchar():
Loại bỏ ký tự enter(fix lỗi của C):
Vòng lặp(loop)
vòng lặp while:
Kết quả in ra:
Có thể dùng do..while để nhập dữ liệu liên tục:
Vòng lặp for..loop(xuôi):
Kết quả:
Vòng lặp for..loop( ngược):
Kết quả:
Có thể for..loop dải ký tự(char):
If..else
Mệnh đề if cơ bản:
Thêm mệnh đề else:
Thêm 1 hoặc nhiều else-if:
Có thể dùng biểu thức Ternary:
Ternary = else if - 2 trường hợp
Switch-case
Dùng cho các TH "giá trị rời rạc"
"Nếu x = a thì, x = b thì,..."
Phải có 1 giá trị để kiểm tra
có thể là char, int,...
Lệnh switch-case gồm NHIỀU case và MỘT default:
switch-case hay kết hợp với goto "tên Label":
Con trỏ(pointer) và dữ liệu có cấu trúc
Khai báo 1 struct = "thực thể" = "đối tượng"
struct = kiểu dữ liệu có cấu trúc
Cách 2:Dùng typedef = type definition
Cấp phát bộ nhớ 1 "đối tượng" Employee:
Viết riêng 1 hàm nhập dữ liệu:
Chú ý trường salary:
Cách 1:Ko dùng typedef:
"name" là 1 trường(field) = thuộc tính
Khai báo 1 đối tượng phone1:
Kiểu pointer thì sao:
Gán giá trị các thuộc tính(fields, properties) trong struct:
Chú ý: "ko gán string mà hãy dùng strcpy"
Nếu thay "phone1" bằng "phone" thì sao ?
Có thể nhập giá trị từ bàn phím:
Hiện thông tin từng trường(fields):
Nếu phone1 ko phải là pointer(con trỏ):
Nhân bản 1 đối tượng: phone2 và phone1 giống hệt nhau về nội dung, khác nhau địa chỉ:
Mảng(array) các struct
Định nghĩa kiểu dữ liệu struct Product:
Khai báo con trỏ product trỏ đến phần tử đầu tiên trong mảng:
Và cấp phát bộ nhớ(giả sử mảng có N phần tử):
Duyệt và cấp phát từng phần tử:
Viết riêng 1 hàm nhập mảng product:
Sắp xếp theo alphabet với trường "name":
1.Duyệt kiểu Bubble:
Sắp xếp theo alphabet với trường "name":
2.So sánh 2 phần tử và đổi chỗ:
1 more item...
Con trỏ(Pointer)
Con trỏ là biến chứa địa chỉ
của 1 biến/dữ liệu khác
Nắm chắc 2 khái niệm:
Address(địa chỉ): VD: 0x00007ffeefbff574
Data(dữ liệu): VD: 2,3, "chao ban",...
x là biến chứa địa chỉ 1 số nguyên:
Lúc mới khai báo x = NULL
Muốn x khác NULL => 1.phải cấp phát bộ nhớ:
x = 0x10...440 là địa chỉ dạng Hexa(hệ 16)
Mỗi lần chạy chương trình ra 1 đ/chỉ khác nhau
Muốn x khác NULL => 2.phải gán nó = địa chỉ của 1 biến khác, mà biến này chứa dữ liệu:
Lúc này x chứa địa chỉ của y(0x7ff..574)
Muốn lấy ra dữ liệu tại x: => gọi *x:
1 more item...
Kiểu dữ liệu File trong C
Có 2 loại : nhị phân(binary). VD: .exe
Loại text(văn bản, có thể xem đc): .txt, .c, ...
Loại nhị phân(binary)
Người dùng ko đọc được
Mở 1 file nhị phân:
filePath là đường dẫn chi tiết đến file
Các options(tuỳ chọn):
wb = write binary, mở file mới để ghi, nếu file đã tồn tại, xoá+tạo mới
rb = read binary, mở file nhị phân để đọc
Name: Nguyen Duc Hoang
Youtube:
https://www.youtube.com/c/nguyenduchoang