dấu hoặc trong c

Kiểu dữ liệu xác định loại giá trị mà cột dữ liệu đó chứa: dữ liệu nguyên, dữ liệu ký tự, dữ liệu tiền tệ, dữ liệu ngày tháng và thời gian, chuỗi nhị phân, Mỗi cột trong bảng cơ sở dữ liệu được yêu cầu phải có tên và kiểu dữ liệu. Một SQL developer phải quyết định loại dữ liệu nào sẽ được lưu trữ bên trong mỗi cột khi tạo bảng. B1. Chọn Tab Insert -> Symbol -> More Symbol để mở lên cửa sổ danh sách ký tự đặc biệt. Chọn Symbol trong Word. B2. Trong cửa sổ Symbol bạn chọn Font Wingdings kéo xuống cuối cùng bạn sẽ thấy các ký tự như dấu tích, dấu X, dấu tích trong ô vuông, và dấu x trong ô vuông. Chọn ký Thời kỳ 1945-1954 là thời kỳ đầu tiên xây dựng chế độ kinh tế mới ở Việt Nam và là giai đoạn khó khăn nhất, gian khổ nhất vì vừa phải kháng chiến chống giặc, vừa phát triển kinh tế trong điều kiện nghèo nàn, thiếu thốn. Đặc trưng của nền kinh tế Việt Nam thời kỳ này là nền kinh tế nông thôn, quy mô kinh tế rất thấp, tiềm lực yếu kém. Vay Tiền Nhanh Ggads. Biến, hằng giống như những chiếc hộp có tên riêng mà chúng ta có thể để dữ liệu vào và mang ra mỗi khi chúng ta cần sử dụng. Biến khác hằng ở chỗ giá trị lưu trữ trong biến có thể thay đổi trong quá trình thực hiện chương trình; còn giá thị của hằng thì được định nghĩa ngay từ đầu chương trình, không thay đổi trong suốt quá trình thực hiện chương quy tắc đặt tên biến, hằngTên biến, tên hằngChỉ chứa các chữ cái, chữ số và kí tự gạch dưới _ trong bảng mã bắt đầu bằng một chữ cái hoặc kí tự gạch được trùng với các từ khóa trong ngôn ngữ biệt hoa thường. C là ngôn ngữ phân biệt hoa thường, do vậy biến aBc và abc là khác nhau trong sách các từ khóa trong ngôn ngữ C auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Ví dụTên đúng abc, Abc, abc123, _abcTên sai 1abc tên sai do bắt đầu bằng số, [email protected] tên sai do chứa kí tự không được phép, case tên sai do trùng với từ khóa.Khai báo biếnVị trí khai báo Biến thường được khai báo ở đầu chương trình, đầu hàm hoặc khối 2 loại biến theo vị trí khai báoBiến toàn cục biến khai báo ở ngoài các hàm, các khối lệnh. Chu trình sống của chúng từ lúc bắt đầu chương trình tới khi kết thúc chương cục bộ biến khai báo bên trong các hàm, các khối lệnh. Chu trình sống từ khi bắt đầu khối lệnh tới khi khối lệnh được thực hiện pháp khai báo biến ; Biến trong ngôn ngữ C luôn gắn liền với một kiểu dữ liệu.Ví dụint i,j; /* Khai báo biến i,j kiểu số nguyên */ char ch; /* Khai báo biến ch kiểu chữ cái ASCII */ char name[100]; /* Khai báo xâu kí tự tên name với độ dài lớn nhất là 100 kí tự */ i = j = 0; /* Gán giá trị 0 cho 2 biến i,j */ ch = 'A'; /* Gán giá trị chữ cái A in hoa cho biến ch */ Khai báo hằngKhai báo hằng thực hiện ở đầu chương 1 Sử dụng bộ tiền xử lídefine ; Cách 2const = ; Trên thực tế tên hằng thường được viết in chia các kiểu giá trị trong ngôn ngữ CSTTKiểu và miêu tả1Kiểu cơ bản Là các kiểu dữ liệu số học và bao gồm 2 kiểu chính a kiểu số nguyên và b kiểu số thực dấu chấm liệt kê Đây là các kiểu số học và được dùng để định nghĩa các biến mà nó có thể được gán trước một số lượng nhất định giá trị số nguyên qua suốt chương void Kiểu định danh void là kiểu đặc biệt thể hiện rằng không có giá trị phát triển từ cơ bản Bao gồm các kiểu a con trỏ, b kiểu mảng, c kiểu cấu trúc, d kiểu union và e kiểu function hàm.Bảng các kiểu nguyênKiểuKích thước biếnKhoảng giá trịchar1 byte-128 tới 127 hoặc 0 tới 255unsigned char1 byte0 tới 255signed char1 byte-128 tới 127int2 hoặc 4 bytes-32,768 tới 32,767 hoặc -2,147,483,648 tới 2,147,483,647unsigned int2 hoặc 4 bytes0 tới 65,535 hoặc 0 tới 4,294,967,295short2 bytes-32,768 tới 32,767unsigned short2 bytes0 tới 65,535long4 bytes-2,147,483,648 tới 2,147,483,647unsigned long4 bytes0 tới 4,294,967,295Bảng các kiểu số thực dấu phẩy độngKiểuKích thước biếnKhoảng giá trịĐộ chính xácfloat4 tới vị trí thập phândouble8 tới vị trí thập phânlong double10 tới vị trí thập phânMột số kí tự điều khiển\n Xuống dòng\t Tab ngang tạo khoảng trắng giống như khi bạn ấn phím Tab trên bàn phím trong soạn thảo văn bản\r Nhảy về đầu hàng\a Kêu Bip\\ In ra dấu \\" In ra dấu "\' In ra dấu '%% In ra dấu %2. Nhập xuất dữ liệu trong CĐể nhập xuất cơ bản trong C, ta sử dụng 2 hàm tiêu chuẩn, được định nghĩa trong thư viện .Hàm printf để in ra thiết bị xuất tiêu chuẩn màn hình.Hàm scanf để nhận giá trị từ thiết bị nhập tiêu chuẩn bàn phím và lưu vào các dụ về chương trinh nhập một số và in ra số vừa nhậpinclude ; int main { float x; printf" printf"Nhap vao mot so "; scanf"%f",&x; printf"So ban vua nhap la %f", x; return 0; } a In dữ liệu ra màn hìnhCú pháp printf"xâu kí tự…", ;Việc sử dụng đơn giản nhất là in ra một xâu kí tự "Xin chao cac ban!"printf"Xin chao cac ban!"; Vậy bạn muốn in một biến chứa dữ liệu ra màn hinh thì sao?Ví dụ về in biến chứa 1 số nguyên ra màn hìnhint number = 12; printf "So duoc in ra %d",number; Để in giá trị của các biến, số ra màn hình, ta phải sử dụng các đặc tả định dạng bắt đầu với % như trên nhằm đại diện cho các biến, số %d đại diện cho biến số nguyên number. Các đặc tả định dạng này không được in ra màn hình mà được thay thế bởi các biến, các số đằng số đặc tả định dạng cơ bản%d số nguyên hệ 10 có dấu%u số nguyên hệ 10 không dấu%x số nguyên hệ 16%o số nguyên hệ bát phân%s xâu kí tự%c một kí tự đơn%f số chấm động cố định%e số chấm động ký hiệu có số mũl Tiền tố dùng kèm với %d, %x, %o để chỉ số nguyên dài ví dụ %ldChú ýTa có thể sử dụng đặc tả định dạng để in dữ liệu sang kiểu khácVí dụchar ch = "A"; printf "%d\n", ch; /* In ra 65 */ printf "%c\n", ch; /* In ra A */ Để in ra kí tự % ta dùng %%.Định dạng dữ liệu in ra% [-] [fwidth] [.p] trong đó • [fwidth] chiều rộng • [-] căn lề trái • [.p] số kí tự được in raVí dụGiá trịĐặc tả định dạngKết quả42%6d4242%-6d42'z'% Nhập dữ liệu từ bàn phímCú pháp scanf "xâu kí tự…", ;Ví dụ ta muốn nhập một số nguyên vào biến aLưu ý Ở đây &a là con trỏ trỏ tới biến ý khi nhập xâu kí tự chứa dấu cách spaceTrước khi đọc xâu, chúng ta phải làm sạch bộ đệm bàn phím vì có thể quá trình đọc dữ liệu trước còn lưu lại. Trên Windows chúng ta có lệnh fflushstdin; , tuy nhiên nó đã bộc lộ khá nhiều hạn chế, nhất là không thể dùng trên Linux nên tôi không sử dụng ở đây. Chúng ta sẽ dùng đoạn lệnh sau trước lệnh nhập vào một chuỗiint c; while c = getchar != EOF && c != '\n' ; Hoặcscanf "%*[^\n]" ; scanf "%*c" ; Cách 1 Ta dùng lệnhfgets name, 100, stdin; với 100 là độ dài lớn nhất của xâu kí tự bạn muốn nhập vào bạn có thể thay đổi nó và name là tên biến xâu kí tự. Việc đọc này sẽ lưu vào biến name cả kí tự xuống dòng ở cuối xâu khi bạn ấn enter để kết thúc nhập xâu là truyền vào bộ đệm kí tự xuống dòng.Cách 2 Ta dùng lệnhscanf "%[^\n]%*c", name; với name cũng là tên biến xâu kí tự. Đọc cách này sẽ loại bỏ kí tự xuống dòng ở cuối xâu. This entry is part 8 of 69 in the series Học C Không Khó 82 / 100 Trong bài học này, bạn đọc sẽ cùng Lập trình không khó chuyển sang phần kiến thức “toán tử trong C“. Toán tử là các ký hiệu được dùng để thực hiện một phép toán trong ngôn ngữ lập trình. Chúng ta sẽ cùng nhau đi qua từng loại toán tử nhé. Các loại toán tử trong CToán tử số học Arithmetic OperatorsVideo hướng dẫn về toán tử số họcToán tử tăng, giảm Increment and DecrementToán tử gán Assignment OperatorsToán tử quan hệ Relational OperatorsVideo bài họcToán tử logic Logical OperatorsCác toán tử khácTài liệu tham khảo Nội dung cụ thể chúng ta sẽ học trong 3 bài học như sau Bài 8. Toán tử số học Bài 9. Toán tử gán và toán tử tăng, giảm Bài 10. Toán tử logic và toán tử quan hệ Toán tử số học Arithmetic Operators Toán tử số học là một loại toán tử trong C Được sử dụng để thực hiện các phép toán cộng, trừ, nhân, chia,… trên các giá trị số biến và hằng. Đây là các toán tử cần sự tham gia của 2 giá trị số nên được phân loại là các toán tử 2 ngôi. Toán tử Ý nghĩa + phép toán cộng – phép toán trừ * phép toán nhân / phép toán chia % phép toán lấy số dưchỉ áp dụng cho số nguyên Video hướng dẫn về toán tử số học Source code minh họa 12345678910111213141516171819202122232425262728293031 include int main{ int a, b; printf"\nNhap a = "; scanf"%d", &a; // Lưu ý nhập b != 0 printf"\nNhap b = "; scanf"%d", &b; // Phép + int sum = a + b; printf"\n%d + %d = %d", a, b, sum; // Phép - int sub = a - b; printf"\n%d - %d = %d", a, b, sub; // Phép * int mul = a * b; printf"\n%d * %d = %d", a, b, mul; // Phép / float div = a / floatb; // float div = a / b * // float div = floata / b; // float div = floata / b; // do not use printf"\n%d / %d = %f", a, b, div; // Phép % int mod = a % b; printf"\n%d %% %d = %d", a, b, mod;} Kết quả chạy chương trình PS G\c_cources\day_8> .\ a = 8Nhap b = 38 + 3 = 118 - 3 = 58 * 3 = 248 / 3 = % 3 = 2 Toán tử tăng, giảm Increment and Decrement Toán tử tăng, giảm là 1 loại toán tử trong C và là các toán tử 1 ngôi, bao gồm 2 toán tử sau Toán tử ++ Tăng giá trị lên 1 đơn vị Toán tử - Giảm giá trị đi 1 đơn vị Các lưu ý khi sử dụng và khái niệm về tiền tố, hậu tố bạn xem video bài số 9 sau đây. Code minh họa 1234567891011121314151617181920212223242526 include int main{ int a; printf"\nNhap a = "; scanf"%d", &a; // Toán tử ++ ++a; printf"\na++ = %d", a; // // Toán tử - -a; printf"\na- = %d", a; a = 5; printf"\na = %d", a; // Tiền tố và hậu tố a++ và ++a printf"\n++a = %d", ++a; a = 5; printf"\n-a = %d", -a; a = 5; printf"\na++ = %d", a++; a = 5; printf"\na- = %d", a-;} Kết quả của chương trình Nhap a = 5++a = 6-a = 4a++ = 5a- = 5 Toán tử gán Assignment Operators Toán tử gán là toán tử trong ngôn ngữ C được dùng để gán giá trị cho 1 biến trong ngôn ngữ lập trình C. Bao gồm các toán tử sau Toán tử Viết gọn Viết đầy đủ = a = b a = b += a += b a = a+b -= a -= b a = a-b *= a *= b a = a*b /= a /= b a = a/b %= a %= b a = a%b Code minh họa 12345678910111213141516171819 include int main{ int a = 5, c; c = a; // c is 5 printf"c = %d\n", c; c += a; // c is 10 => c = c + a printf"c = %d\n", c; c -= a; // c is 5 => c = c - a printf"c = %d\n", c; c *= a; // c is 25 => c = c * a printf"c = %d\n", c; c /= a; // c is 5 => c = c / a printf"c = %d\n", c; c %= a; // c = 0 => c = c % a printf"c = %d\n", c; // return 0;} Kết quả của chương trình PS G\c_cources\day_9> .\ = 5c = 10c = 5c = 25c = 5c = 0 Toán tử quan hệ Relational Operators Toán tử quan hệ là một loại toán tử trong C được dùng để thực hiện các phép kiểm tra mối quan hệ giữa 2 toán hạng. Nếu quan hệ kiểm tra là đúng thì nó trả về giá trị true và trả về false trong trường hợp ngược lại. Toán tử Ý nghĩa Ví dụ == so sánh bằng 7 == 3 cho kết quả là 0 > so sánh lớn hơn 5 > 1 cho kết quả là 1 = lớn hơn hoặc bằng 8 >= 3 cho kết quả là 1 int main{ int a = 5, b = 5, c = 10; printf"%d == %d is %d \n", a, b, a == b; printf"%d == %d is %d \n", a, c, a == c; printf"%d > %d is %d \n", a, b, a > b; printf"%d > %d is %d \n", a, c, a > c; printf"%d = %d is %d \n", a, b, a >= b; printf"%d >= %d is %d \n", a, c, a >= c; printf"%d g++ .\ -o .\RelationPS G\c_cources\day_10> .\ == 5 is 15 == 10 is 05 > 5 is 05 > 10 is 05 = 5 is 15 >= 10 is 05 int main{ int a = 5; printf"\n%d", a > 0 && a % 2 == 0; // 1 && 0 = 0 printf"\n%d", a % 2 == 0 a % 5 == 0; // 0 1 = 1 printf"\n%d", !a == 5; // Tại sao không dùng & hay ? int b = 5; // dấu printf"\n%d", b == 5 b++ > 0; printf"\nb = %d", b; b = 5; printf"\n%d", b == 5 b++ > 0; printf"\nb = %d", b; // dấu b = 5; printf"\n%d", b != 5 && b++ > 0; printf"\nb = %d", b; b = 5; printf"\n%d", b != 5 & b++ > 0; printf"\nb = %d", b;} Kết quả chạy PS G\c_cources\day_10> .\ = 51b = 60 Các toán tử khác Ngoài các toán tử trên, chúng ta còn có các toán tử khác Toán tử bit Bitwise Operators, nội dung này là phần kiến thức khó. Chúng ta chưa học trong bài này. Toán tử “phảy” Comma Operator Toán tử sizeof sizeof Operator, nội dung này mình đã trình bày trong bài Kiểu dữ liệu trong C Tài liệu tham khảo Các lệnh cơ bản trong lập trình C là những lệnh mà khi mới bắt đầu học lập trình bạn phải học và tìm hiểu thật kỹ về nó. Bởi lẽ, để giải quyết vấn đề mà bạn đặt ra trên máy tính thì bạn cần ra lệnh cho máy tính thực hiện cụ thể yêu cầu mà bạn cần làm, để máy tính thực thi cho ra kết quả tốt nhất. Khi đó bạn cần ra lệnh cho máy tính bằng cách sử dụng các ngôn ngữ lập trình. Ngôn ngữ lập trình C là một trong số những ngôn ngữ lập trình được sử dụng phổ biến hiện nay. Cho nên hôm nay, tôi sẽ tổng hợp lại các lệnh mà bạn cần phải nắm vững khi sử dụng ngôn ngữ lập trình C.>> Xem thêm TÀI LIỆU LẬP TRÌNH CĂN BẢN – ĐƠN GIẢN, DỄ HỌC!Ngôn ngữ lập trình C là gì?Tổng hợp các lệnh cơ bản trong lập trình CNgôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất. C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù nó cũng được dùng cho việc viết các ứng dụng. C là ngôn ngữ lập trình được sử dụng cho nhiều ứng dụng từ các hệ điều hành như Windows và iOS. Ngoài ra, C cũng thường được dùng làm ngôn ngữ giảng dạy trong nhập môn khoa học máy tính mặc dù ngôn ngữ này không được thiết kế dành cho người nhập bạn là người mới bắt đầu học lập trình, bạn có thể xem thêm Cẩm nang học lập trình từ A-Z cho người mới bắt đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục. C được coi là ngôn ngữ lập trình bậc trung middle level. 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ó so với các 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 đây là các lệnh cơ bản trong lập trình C được sử dụng để viết một chương trình C đơn giản. Hãy xem tất cả các phần của một dòng chương trình C đơn giản nhé!Các thành phần của một chương trình C cơ bảnCác thành phần của một chương trình C cơ bản bao gồmCác lệnh tiền xử lýCác hàmCác biếnCác lệnh và biểu thứcCác comment ghi chú về code giúp ích cho công tác bảo trì và nâng cấpĐể tìm hiểu về các thành phần này chúng ta xem xét qua ví dụ một chương trình C đơn giản sau đâyVí dụ một chương trình C đơn giảnChương trình C dưới đây là một chương trình rất đơn giản và cơ bản trong ngôn ngữ lập trình C. Chương trình C này hiển thị dòng chữ “Hello World!” trong cửa sổ đầu ra khi chạy chương trình, thường là hiển thị ra màn hình máy tính.include int main { /* Our first simple C basic program */ printf"Hello World!"; getch; return 0; }Kết quảLưu ý Lập trình C là một ngôn ngữ lập trình phân biệt chữ hoa chữ câu lệnh lập trình C được kết thúc bằng dấu chấm phẩy ; được gọi là dấu kết thúc câu lệnh được sử dụng để in dữ liệu đầu ra trên màn chương trình C được biên dịch bằng cách sử dụng các trình biên dịch C và hiển thị đầu ra khi thực thi chương câu lệnh cơ bản trong lập trình CTừ ví dụ trên chúng ta cùng xem xét các câu lệnh cơ bản trong lập trình C như sauLệnh cơ bảnGiải thíchincludeĐây là một lệnh tiền xử lý bao gồm tệp tiêu đề đầu vào đầu vào tiêu chuẩn từ thư viện C trước khi biên dịch chương trình Cint mainĐây là chức năng chính hàm main của một chương trình C. Khi chương trình thi hành thì hàm main được gọi trước tiên.{Điều này cho biết sự khởi đầu của hàm chính, đánh dấu điểm bắt đầu của hàm/*_some_comments_*/bất cứ điều gì được đưa ra bên trong lệnh “/ * * /” trong bất kỳ chương trình C nào, sẽ không được xem xét để biên dịch và thực “;printf lệnh in dữ liệu ra màn hình, trong trường hợp này sẽ xuất ra dòng chữ “HelloWorld”getch;Đây là lệnh dừng màn hình hiển thị. Nhờ câu lệnh này người dùng mới có thể nhìn thấy dòng chữ “Hello World!” ở trên màn hình hiển thị kết quả khi chạy chương trình ở ví dụ trênreturn 0;Lệnh này chấm dứt chương trình C chức năng chính và trả về 0}Điều này cho biết kết thúc của chức năng chínhCác thành phần cơ bản trong một chương trình viết bằng ngôn ngữ lập trình CMã thông báoKhi một chương trình bắt đầu chạy thì sẽ xuất hiện nhiều mã thông báo khác nhau. Những thông báo đó được lấy từ khóa, mã định danh hay các hằng số. Có thể là các chuỗi ký tự hoặc là ký hiệu. Vậy một trong các lệnh cơ bản trong lập trình C đầu tiên là gì? Bạn hãy xem ví dụ World! \n";Ngoài ra còn có các mã riêng lẻ nhưprintf "Hello, World! \n" ;Dấu chấm phẩyTrong một chương trình được viết bằng ngôn ngữ lập trình C. Thì các câu lệnh được kết thúc bằng dấu chấm phẩy. Mỗi câu lệnh riêng lẻ phải bắt buộc phải kết thúc bằng dấu chấm phẩy. Như vậy nó mới được thể hiện là một sự kết thúc logic thực tế nhất. Bạn có thể xem ví dụ dưới đây printf"hello, world\n";Bình luận – commentsCó thể coi như đây là một nhận xét. Nó giống như các văn bản trong chương trình C. Chúng thường bị trình biên dịch bỏ qua nó. Và nó thường được bắt đầu bằng /* và kết thúc bằng */ hoặc chú thích trên một dòng với cặp ký hiệu //.Như ví dụ sau đây /* Our first simple C basic program */ // Our first simple C basic programTừ khóa – key wordsMỗi một ngôn ngữ đều sử dụng một bộ từ khóa khác nhau để bắt đầu một câu lệnh hay chương trình nào đó. Bạn không được phép sử dụng từ khóa để đặt tên cho biến, hằng, hàm … hay định danh nói ngôn ngữ lập trình C có 32 từ khóa phổ biến sau đâyautoelselongswitchbreakenumregistertypedefcaseexternreturnunioncharfloatshortunsignedconstforsignedvoidcontinuegotosizeofvolatiledefaultifstaticwhiledointstruct_PackedNhững lưu ý khi thực hiện chương trình CNgôn ngữ lập trình C là một chương trình rất phức tạp. Mỗi câu lệnh của lập trình C đều được kết thúc bằng dấu chấm phẩy. Nó còn được gọi là dấu kết thúc mỗi câu lệnh. Trong chương trình C câu lệnh printf được dùng để in đầu ra lên màn hình máy tính. Và tất cả các chương trình C đều được biên dịch bằng các chương trình biên dịch C và nó được hiển thị đầu ra của chương đây là các lệnh cơ bản trong lập trình C. Mong rằng bài viết này sẽ giúp ích cho bạn trong quá trình học viết chương trình C. Ngôn ngữ C rất đa dạng về chức năng của nó. Nhưng bên cạnh đó nó đòi hỏi người dùng phải biết cách sử dụng. Chính xác từng câu lệnh một. Nếu không thì bạn sẽ phá hủy đi một chương trình mà bạn đã phải tốn công viết từ đầu chương trình tới cuối PHÁ VÀ DOWNLOAD KHO TÀI LIỆU HỌC LẬP TRÌNH MIỄN PHÍ TẠI ĐÂY.>> Nếu bạn là người mới bắt đầu học lập trình, tham khảo thêm video Phương pháp học lập trình hiệu quả cho người mới bắt đầu. Học lập trình cho người mới bắt đầu - Cách học lập trình hiệu quả, đúng đắn CodeGym

dấu hoặc trong c