Nhận làm đồ án VĐK các loại ( 8051, AVR, PIC) Tư vấn - Hướng dẫn - lập trình
Hiển thị các bài đăng có nhãn Lập trình C. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Lập trình C. Hiển thị tất cả bài đăng

Thứ Năm, 19 tháng 3, 2015

Biểu thức toán tử Ngôn ngữ C

GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C

Chào các bạn, chúng ta lại cùng nhau tiếp tục loạt bài 2 với ngôn ngữ lập trình C. Trong bài 2 này chúng ta sẽ cùng tìm hiểu về biểu thứctoán tử trong C. Ý nghĩa và cơ chế hoạt động của từng loại.
III. Biểu thức trong C
Là sự kết hợp giữa toán hạng và phép toán trong C để diễn đạt 1 công thức toán học nào đó.
v Toán hạng ở đây là : Hằng, biến, mảng, hàm, …
v Phép toán ở đây có 4 loại chính :
·        Phép toán số học
·        Phép toán thao tác bít
·        Phép toán quan hệ, phép toán logic
·        Phép tăng, giảm, gán, rút gọn
Chú ý : Một biểu thức thì sẽ có một giá trị nói chung và cái gì có giá trị đều được xem là biểu thức. Như vậy hằng, biến, phần tử mảng và hàm cũng được xem là biểu thức …
Sau đây chúng ta sẽ đi vào tìm hiểu các biểu thức trong C
3.1. Phép toán số học :
+   –  *  /  %

Biểu thức dùng trong trường hợp này tính được ra kết quả là giá trị số


3.2. Phép toán thao tác bít :
&(and),  | (or),  ^ (xor),  ~ (đảo), >>(shift right),  << (shift left)
Tác động lên các bít của toán hạng. Cho phép xử lí từng bít của số nguyên.
Ta có bảng chân lí :


Ví dụ :


3.3. Phép toán quan hệ và phép toán logic
Hai phép toán này sẽ cho ta giá trị đúng hoặc sai (True or False) đúng là 1 và sai là 0
3.3.1. Phép toán quan hệ
·        >       Lớn hơn
·        >=    Lớn hơn hoặc bằng
·        <       Nhỏ hơn
·        <=    Nhỏ hơn hoặc bằng
·        ==      Có bằng nhau không
·        !=       Có khác nhau không
Chú ý : Thứ tự ưu tiên từ trên xuống của các phép quan hệ.
VD : 3>7    => giá trị logic là false (sai) => giá trị nguyên trong C là 0.
         8>=8  => giá trị logic là true (đúng) => giá trị nguyên trong C là 1.
3.3.2. Phép toán logic :
&&  (and),  ||  (or),  !  (not)
Ta có bảng chân lí :


VD :

v Chú ý :
·        Phép toán quan hệ và logic thường được sử dụng để thiết lập điều kiện rẽ nhánh If và kết thúc chu trình trong toán tử For, while hay do – while.
·        Ta có bảng mức độ ưu tiên thực hiện của các phép toán



Thứ tự ưu tiên phép toán được thực hiện từ trên xuống. Với nhứng phép toán ngang bằng thì thứ tự thực hiện theo chiều mũi tên có thể là từ trong ra ngoài hoặc từ ngoài vào trong.

3.4. Phép tăng, giảm, gán, rút gọn …
·        Phép tăng : ++n , n++;
·        Phép giảm : --n, n--;
·        Phép gán : =;
·        Phép rút gọn hay còn gọi là phép gộp : += ; -= ; *=; &=, |=; ^=; ~=; >>=; <<=;

Như vậy chúng ta đã đi xong phần biểu thức với các phép toán chính trong C. Tiếp theo ta sẽ cùng nhau tìm hiểu về một số toán tử thông dụng không thể thiếu trong các chương trình lập trình C.
IV. Toán tử điều khiển trong C
v Nhảy không điều kiện
v Rẽ nhánh : If, switch, …
v Tổ chức chu trình : For, while, do – while …
v Một số toán tử bổ trợ : break, continue …
4.1. Toán tử If
Thuộc loại rẽ nhánh có 2 dạng với toán tử If, ta có sơ đồ biểu diễn chi tiết cách thức hoạt động của 2 dạng này :
·        Dạng 1 :Chỉ dùng If


·        Dạng 2 : Dùng If – else




v Chú ý :
·        Toán tửIfIf – elselà một câu lệnh đơn
·        If có thể lồng nhau và else sẽ tương ứng với If gần nó nhất
·        Nên dùng else để loại trừ trường hợp
4.2. Toán tử switch
Cũng thuộc loại rẽ nhánh và có thể xét nhiều trường hợp. Cũng tương tự như If, switchcũng có 2 dạng :
v Dạng 1 : Không có lệnh default

v Dạng 2 : Có lệnh default

v Một số chú ý với toán tửswitch
·        Toán tử switch là một câu lệnh đơn và có thể được lồng với nhau
·        Các giá trị trong mỗi trường hợp case phải khác nhau
·        Switch sẽ nhảy đến case tương ứng và thực hiện cho đến khi nào gặp break hoặc cuối switch sẽ kết thúc.
4.3. Toán tử FOR


Từ sơ đồ trên ta dễ dàng thấy được cách thức hoạt động của vòng lặp FOR
v Chú ý :
·        Toán tử For cũng là một câu lệnh đơn và có thể lồng nhau
·        Nếu không có điều kiện lặp thì vòng lặp For luôn xem nó là đúng, do đó muốn thoát khỏi vòng lặp For phải dùng Break, goto, return … viết trong thân chu trình.
·        Vòng lặp For cũng có thể không có cả phần khởi đầu.
·        Không được thêm ; ngay sau lệnh For nếu chưa hiểu cách sử dụng. Việc thêm như vậy tương đương câu lệnh rỗng.
·        Nếu có nhiều thành phần trong mỗi phần ( khởi đầu, Đ/K lặp, Bước nhảy) thì được cách nhau bằng dấu ,
4.4. Toán tử while

v Chú ý :
·        Toán tửwhile là một câu lệnh đơn và có thể lồng nhau
·        Toán tử while có thể không thực hiện lần nào do điều kiện lặp ngay từ đầu đã không thỏa mãn
·        Thêm ; sau lệnh while() tương đương với lệnh rỗng, dù điều kiện có đúng hay không
·        While có thể bị lặp vô tận
4.5. Toán tử do – while

v Chú ý :
·        Toán tử do – while là một câu lệnh đơn và có thể lồng nhau
·        Toán tử do – while sẽ được thực hiện ít nhất 1 lần do điều kiện lặp được kiểm tra ở cuối
·        Toán tử do – while có thể bị lặp vô tận.
4.6. Một số toán tử bổ trợ
v Lệnh break dùng để thoát khỏi chu trình
v Continue dùng để bắt đầu 1 vòng mới của chu trình bên trong nhất chứa nó
v Goto : goto  nhãn ; Khi gặp toán tử này máy sẽ nhảy tới câu lệnh có nhãn viết sau từ khóa goto, chú ý : gotonhãn cần nằm trong 1 hàm. Trong một hàm cho phép goto nhảy từ ngoài vào trong 1 khối lệnh nhưng điều ngược lại không hợp lệ.
Như vậy chúng ta vừa trải qua bài viết số 2 với nội dung về biểu thức và toán tử trong C. Trong bài 3 tiếp theo, tôi sẽ giới thiệu đến các bạn Con trỏ và mảng trong C. Cám ơn các bạn đã đón xem!
Mọi ý kiến thắc mắc các bạn có thể gửi qua địa chỉ gmail, hoặc số điện thoại cung cấp từ trang chủ của Blog hoặc comment trực tiếp phía dưới.

Nếu copy bài mong bạn đọc để lại nguồn, xin cảm ơn !





Giới thiệu Ngôn ngữ C

GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C


Chào các bạn, ngôn ngữ C là một ngôn ngữ thuật giải, tức là tự nó có thể diễn tả thuật giải cần thực hiện. Nó có rất nhiều ưu điểm hơn hẳn so với các ngôn ngữ trước đó. Ngày nay có rất nhiều loại ngôn ngữ lập trình được sử dụng như : C++, C#.... Nhưng cơ bản nó vẫn bắt nguồn từ ngôn ngữ C. Vì tính tiện dụng cũng như dễ dàng lập trình của nó mà ngôn ngữ C được sử dụng một phần vào các ứng dụng lập trình cho VĐK. Trong loạt bài giới thiệu về ngôn ngữ C này, tôi xin phép chỉ đi vào những vấn đề cơ bản nhất của ngôn ngữ C để phục vụ cho việc lập trình nhúng cho VĐK. Rất hi vọng các bạn sau khi tham khảo bài đọc có thể hiểu được một cách tổng quan về ngôn ngữ C cũng như cách sử dụng cơ bản của nó với VĐK. Để có thể sử dụng nhúng ngôn ngữ C trên một số các phần mềm lập trình cho VĐK : 8051, PIC, AVR…v.v.. mời các bạn có thể chuyển qua các bài TAB hướng dẫn khác kết hợp. Xin chân thành cảm ơn!
I.     Giới thiệu về ngôn ngữ C
v Cha đẻ ngôn ngữ Clà Dennis Ritchie tại Bell Telephone năm 1972, tiền thân của ngôn ngữ B, KenThompson, cũng tại Bell Telephone. Đây là ngôn ngữ lập trình có cấu trúc và phân biệt chữ Hoa - thường (case sensitive).

v Một số ưu điểm của C:
·        Rất mạnh và linh động có khả năng thể hiện bất cứ ý tưởng nào
·        Được sử dụng rông rãi bởi các nhà lập trình chuyên nghiệp
·        Có tính khả chuyển, ít thay đổi trên các hệ thống máy tính khác nhau
·        Rõ ràng, cô đọng
·        Lập trình đơn thể, tái sử dụng thông qua hàm.


v Môi trường lập trình Borlan C++ 3.1 for DOS , Visual C++ 6.0, win 32 Console Application.


II.            Đặc điểm ngôn ngữ C

2.1. Các kí tự được sử dụng trong C
Ngôn ngữ C được xây dựng trên bộ kí tự gồm :
·        26chữ cái Latinh hoa và thường : A, B, C, …, Z, a, b, c, …, z.
·        Bộ chữ số thập phân : 0, 1, 2, …, 9
·        Các kí hiệu toán học : +   -  * /  =  <>  (  )
·        Các kí tự đặc biệt : . ,  : ;  [ ]  %  \  #  $  ‘
·        Kí tự gạch nối và khoảng trắng
2.2. Từ khóa trong C
Là các từ có 1 ý nghĩa xác định. Nó có thể dùng để diễn đạt các phát biểu như khai báo các kiểu dữ liệu, viết các toán tử và câu lệnh.
Tôi sẽ chia ra thành các nhóm từ khóa như sau :
v Nhóm từ khóa khai báo kiểu dữ liệu
·        Kiểu số nguyên : Char, int, short, unsigned, long…
·        Kiểu số thực : float , double …
·        Kiểu rỗng : void
·        Kiểu hằng : const
·        Kiểu rời rạc : enum
·        Kiều cấu trúc : struct, union
·        Khai báo biến : static, extern, volatille …
v Nhóm từ khóa dành cho phát biểu
·        Dạng chọn : if, if – else , switch – case – default
·        Dạng lặp : for, while, do – while
·        Dạng điều khiển : Break, continue, return, goto, …
2.3. Tên trong C
Dùng để xác định các đối tượng khác nhau trong chương trình như : Hằng, biến, mảng, hàm … Cần chú ý trong C phân biệt chữ hoa và chữ thường.
Quy tắc đặt tên trong C
·        Không bắt đầu bằng số
·        Không chứa kí tự đặc biệt và khoảng trắng.
2.4. Khái niệm kiểu dữ liệu
Là tập hợp các giá trị mà biến có thể nhận được thuộc kiểu dữ liệu đó :
Các kiểu dữ liệu :
v Kiểu số nguyên :
·      Kiểu số nguyên có dấu :
n bit có dấu : -2n-1 … + 2n-1 – 1 


·      Kiểu số nguyên không dấu :
n bit không dấu : 0 … 2n-1


v Kiểu số thực : 


v Chú ý :
·      Kiểu Boolean trong C chưa được định nghĩa rõ ràng và thường coi là dạng số nguyên.
Trong C, một số nguyên có giá trị bằng 0 sẽ được hiểu là False (sai), còn các số nguyên khác 0 sẽ được hiểu là True (đúng), thường ta lấy là 1.
Với kết quả tính là True thì luôn có giá trị nguyên là 1
·      Trong C kiểu Char thực chất là một kiểu kí tự, tuy nhiên trong C cũng cho phép dùng kiểu kí tự này như là 1 số nguyên ( Đây là 1 đặc tính mềm hay linh hoạt với ngôn ngữ C )
Do đó trong biểu thức số học thì char là kiểu nguyên còn trong biểu thức kí tự thì char lại là kí tự và kí tự kiểu char được biểu diễn thông qua bảng mã ASCII.
2.5. Đặc điểm lệnh trong C.
Là một chỉ thị trực tiếp, hoàn chỉnh nhằm ra lệnh cho máy tính thực hiện một số tác vụ nhất định nào đó. Để tiện theo dõi tôi chia ra làm các trường lệnh sau :
·      Lệnh đơn giản là những lệnh đơn không chứa các lệnh khác: gán, gọi hàm, …
·      Lệnh cấu trúc: Rẽ nhánh, vòng lặp, khối lệnh đặt trong {} …
·      Giữa các câu lệnh ngăn cách với nhau bằng dấu “;”
·      Bên trong khối lệnh có thể thêm nhiều khối lệnh khác nữa
·      Rộng ra thân hàm cũng là 1 khối lệnh
2.6. Biến, Hằng trong C
2.6.1 Biến :
Là đại lượng có thể thay đổi được giá trị.
Cách khai báo :
v C1 : Kiểu dữ liệu biến      Tên biến (giá trị nếu có);


v C2 : Khai báo thông qua sử dụng từ khóa typedef.
Typedef        int      a;
 a                   x, y, z ; 
Chú ý : Cần chú ý tới kích thước kiểu dữ liệu khi khai báo cho biến để tránh lãng phí.
2.6.2. Hằng
Là đại lượng không thay đổi giá trị
Ngoài lập trình C trên turboC hay Cfree việc định nghĩa hằng được thực hiện bằng từ khóa : const
Cú pháp:              Const         kiểu dữ liệu         tên hằng = giá trị;

Trong lập trình C cho VĐK hằng được định nghĩa qua từ khóa define vì từ khóa Const không tươn thích cho một số phần mềm lập trình biên dịch. (Bản chất define là một kiểu định nghĩa nhãn thay thế không phải hằng) . Tuy nhiên ta có thể tạm sử dụng trong trường hợp này.
Cú pháp:               #define             tên hằng           giá trị

Chú ý :
v Tên hằng thường được viết hoa để phân biệt với biến
v Hằng được chia làm 2 loại hằng thường và hằng kí hiệu :
·        Hằng thường :
Cú pháp : <kiểu dữ liệu>     tên hằng = giá trị;


·        Hằng kí hiệu :
Cú pháp : #define     tên hằng   giá trị


Hằng kí tự, hay hằng xâu kí tự cũng thường được dùng :
VD1 :           #define         M        ‘a’     => 1byte
Ở đây là hằng kí tự : chỉ kí tự a có giá trị nguyên là 97
‘a’ được sử dụng trong biểu thức số học

VD2 :          #define          M        “a”    => 2 byte
Đây là hằng xâu kí tự. Chiếm 2 byte bộ nhớ.

Như vậy trong bài viết đầu tiên này tôi đã giới thiệu đến các bạn một số đặc điểm cơ bản của ngôn ngữ C. Trong bài thứ 2 tôi sẽ đi tiếp sang biểu thức và các toán tử trong C. Cám ơn các bạn đã đón xem!
Mọi ý kiến thắc mắc các bạn có thể gửi qua địa chỉ gmail, hoặc số điện thoại cung cấp từ trang chủ của Blog hoặc comment trực tiếp phía dưới.
Nếu copy bài mong bạn đọc để lại nguồn, xin cảm ơn !







Mọi thắc mắc vui lòng liên hệ qua:
Facebook: Rid HaUI
Gmail: dienturid@gmail.com

Next previous home