Tự học lập trình C - Bài 3: Hằng - Biến - Toán tử - B.thức

Tự học lập trình C - Bài 3Hằng - Biến - Toán tử - B.thức, Chào mừng đến với loạt bài hướng dẫn lập trình Pascal cơ bản của ...ở bài học này, chúng ta sẽ tìm hiểu cách khai báo biếnhằng và ... Một biểu thức bao gồm : toán tử (operator) và toán hạng (operand). ... Ví duï: Để giải phương trình bậc hai ta có thể phát biểu điều kiện về các hệ số A, BC như sau
3.1 Khai báo hằng
Hằng là các đại lượng mà giá  trị của nó không thay đổi trong quá trình tính toán.   Nguyên tắc đặt tên hằng theo nguyên tắc đặt tên của C.
+ Khai báo

Cú pháp:
            #define   <tên hằng>   <giá trị>
Diễn giải:
#define: Từ khóa để định nghĩa một biến hằng
<tên hằng>: là tên của hằng mà ta cần định nghĩa
<giá trị>: Giá trị khởi gán cho hằng
Ví dụ:
            #define   MAX   1000
            Lúc này, tất cả các tên MAX trong chương trình xuất hiện sau này đều được thay bằng 1000. Vì vậy, ta thường gọi MAX là tên hằng, nó biểu diễn số 1000.

3.2 Khai báo biến
+ Khai báo
Cú pháp
              <Kiểu dữ liệu> <Danh sách tên biến>;
Diễn giải:
- <Kiểu dữ liệu>: là kiểu dữ liệu muốn khai báo cho biến
- <Danh sách tên biến>: gồm các tên biến có cùng kiểu dữ liệu, mỗi tên biến cách nhau dấu phẩy (,), cuối cùng là dấu chấm phẩy (;).
Ví dụ
int iTuoi; //khai báo biến iTuoi có kiểu int
float fTrongLuong; //khai báo biến fTrongLuong có kiểu float
char cKyTu1, cKyTu2; //khai báo biến cKyTu1, cKyTu2 có kiểu char
+ Vừa khai báo vừa khởi gán giá trị cho biến
Có thể kết hợp việc khai báo với toán tử gán để biến nhận ngay giá trị lúc mới khai báo.
Ví dụ
Khai báo trước, gán giá trị sau

?
1
2
3
4
5
6
7
8
void <span style="height: 13px;" id="oqzf0t_7" class="oqzf0t">main</span>(void)
{
    int a, b, c;
    a = 1;
    b = 2;
    c = 5;
    
}
Vừa khai báo vừa gán giá trị:
?
1
2
3
4
5
void main(void)
{
    int a = 1, b = 2, c = 5;
    
}
+ Phạm vi của biến
Khi lập trình, phải nắm rõ phạm vi của biến. Nếu khai báo và sử dụng không đúng, không rõ ràng sẽ dẫn đến sai sót khó kiểm soát được.
a. Khai báo biến ngoài (biến toàn cục):
Vị trí biến đặt bên ngoài tất cả các hàm, cấu trúc...Các biến toàn cục có ảnh hưởng đến toàn bộ chương trình. Chu trình sống của nó là bắt đầu từ khi chạy chương trình đến lúc kết thúc chương trình.
b. Khai báo biến trong (biến cục bộ):
Vị trí biến đặt bên trong hàm, cấu trúc…. Chỉ ảnh hưởng nội bộ bên trong hàm, cấu trúc đó…. Chu trình sống của nó bắt đầu từ lúc hàm, cấu trúc được gọi thực hiện đến lúc thực hiện xong.
3.3 Biểu thức
Biểu thức là sự phối hợp của những toán tử và toán hạng.
Ví dụ:
a + b
b = 1 + 5 * 2/i
a = 6 % (7 + 1)
x++ * 2/4 + 5 – power(i, 2)
Toán hạng sử dụng trong biểu thức có thể là hằng số, biến, hàm.
3.4 Phép toán
Trong C có 4 nhóm toán tử chính yếu sau đây:
+ Phép toán số học
+ : phép cộng   
– : phép trừ         
* : phép nhân
/ : phép chia
% : phép chia lấy phần dư, được áp dụng trên các toán hạng có kiểu dữ liệu char, int, long
+ 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
== : bằng
!= : khác
@Lưu ý:
- Kết quả của phép toán quan hệ là số nguyên kiểu int, bằng 1 nếu đúng, bằng 0 nếu sai.
- Phép toán quan hệ ngoài toán hạng được sử dụng là kiểu dữ liệu số hoặc kiểu dữ liệu char.
+ Phép toán logic
! : (phép toán Phủ định)
&&: (phép toán Và)
|| : (phép Hoặc)
+ Phép toán trên bit (bitwise)
& : và(AND)
| : hoặc (OR)
^ : hoặc loại trừ (XOR)
>> : dịch phải
<< : dịch trái
~ : đảo
+ Phép gán hợp
Biểu thức gán là biểu thức có dạng:
            v=e
Trong đó v là một biến (hay phần tử mảng ), e là một biểu thức. Giá trị của biểu thức gán là giá trị của e, kiểu của nó là kiểu của v. Nếu đặt dấu ; vào sau biểu thức gán ta sẽ thu được phép toán gán có dạng:
            v=e;
Biểu thức gán có thể sử dụng trong các phép toán và các câu lệnh như các biểu thức khác. Ví dụ như khi ta viết
            a=b=5;
thì điều đó có nghĩa là gán giá trị của biểu thức b=5 cho biến a. Kết qủa là b=5 và a=5.
Hoàn toàn tương tự như :
            a=b=c=d=6; gán 6 cho cả a, b, c và d
            z=(y=2)*(x=6);            { ở đây * là phép toán nhân }
gán 2 cho y, 6 cho x và nhân hai biểu thức lại cho ta z=12.
+ Phép toán tăng giảm

C đưa ra hai phép toán một ngôi để tăng và giảm các biến (nguyên và thực). Toán tử tăng là ++ sẽ cộng 1 vào toán hạng của nó, toán tử giảm là -- sẽ trừ toán hạng đi 1.
Ví dụ 
            n=5
            m=4
            ++n      Cho ta   n=6
            --m       Cho ta   m=3
Ta có thể viết phép toán ++ và -- trước hoặc sau toán hạng: ++n, n++, --n, n--.

Sự khác nhau của ++n và n++ ở chỗ : trong phép n++ thì tăng giá trị của biến n lên 1 sau khi giá trị của nó đã được sử dụng, còn trong phép ++n thì n được tăng trước khi sử dụng. Sự khác nhau giữa n-- và --n cũng như vậy.
+ Toán tử điều kiện
Cú pháp:
<biểu thức đều kiện>?<biểu thức1>:<biểu thức2>
Diễn giải:Nếu biểu thức điều kiện có giá trị đúng thì kết quả là <biểu thức 1>, nếu sai kết quả là <biểu thức 2>

Ví dụ:
            a=2
            b=5
            max=(a>b)? a:b;

kết quả là max = 5

Tự học lập trình C - Bài 2: Cấu trúc chương trình C

Cấu Trúc Của Một Chương Trình C++. Có lẽ một trong những cách tốt nhất để bắt đầu học một ngôn ngữ lập trình là bằng một chương trình
Một chương trình bao gồm một hoặc nhiều hàm, mỗi hàm được người lập trình tổ chức để giải quyết một hoặc một số công việc nào đó của bài toán cần giải quyết. Một chương trình C để có thể thực thi được luôn cần phải có hàm main().
Cấu trúc cơ bản của chương trình như sau:
•    Các #include ( dùng để khai báo sử dụng các hàm chuẩn)
•    Các #define  ( dùng để định nghĩa các hằng )
•    Khai báo các đối tượng dữ liệu ngoài ( biến, mảng, cấu trúc vv..).
•    Khai báo nguyên mẫu các hàm.
•    Hàm main().
•    Định nghĩa các hàm ( hàm main có thể đặt sau hoặc xen vào giữa các hàm khác).

Ví dụ 1.3:
#include <stdio.h>  
//k.báo sử dụng thư viện xuất/nhập chuẩn của C
void main(void)
    {
        double x,y;                      //Khai báo 2 biến x,y 
                                         //kiểu số thực
        printf("\n Nhap x va y");        //xuất dữ liệu ra màn hình
        scanf("%lf%lf",&x,&y);           //nhập dữ liệu từ bàn phím                                         //và lưu vào vùng địa chỉ                                          //cấp cho 2 biến x,y*/
}
@Lưu ý: Một số qui tắc cần nhớ khi viết chương trình:
- Mỗi câu lệnh có thể viết trên một hay nhiều dòng nhưng phải kết thúc bằng dấu (;).
- Trong chương trình, khi ta sử dụng các hàm chuẩn, ở đầu chương trình ta phải khai báo sử dụng, ví dụ: #include "stdio.h".

Tự học lập trình C - Bài 1: Một số khái niệm cơ bản


Tự học lập trình C, Lập trình C là một môn học có tính cô đọng, cấu trúc, tương thích, biên dịch đòi hỏi người lập trình phải có tính  duy cao
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlb-irfI3OxYBPZitmNF_N7ZS6izrHUM-Qt4EhHZPcIj_1PQNiHy7uJqVL13jc5fmHPnbclUFhpMS_tHZc7lS7xe6ckBheV199e_9E_h2CCFLAqC7tInXLXlv21O_LgstALKsVKAQmdzrG/s1600/Lap-Trinh-C-C++.jpg

  
1.1. Bộ ký tự
Mọi ngôn ngữ lập trình đều được xây dựng từ một bộ ký tự nào đó. Ngôn ngữ C được xây dựng trên bộ ký tự sau:
26 chữ cái hoa : A B C .. Z   
26 chữ cái thường : a b c .. z
10 chữ số : 0 1 2 .. 9
Các ký hiệu toán học : + - * / = ( )

Ký tự gạch nối : _
Các ký tự khác : . , : ; [ ]  {} ! \ & % # $ ...
Dấu cách (space) dùng để tách các từ.
@Lưu ýKhi viết chương trình, ta không được sử dụng bất kỳ ký tự nào khác ngoài các ký tự trên.

1.2 Từ khóa
Từ khoá là những từ được sử dụng để khai báo các kiểu dữ liệu, để viết các toán tử và các câu lệnh. Bảng dưới đây liệt kê các từ khoá của TURBO C:
Asmbreakcasecdecl
Charconstcontinuedefault
Dodoubleelseenum
externfarfloatfor
Gotohugeifint
interruptlongnearpascal
registerreturnshortsigned
sizeofstaticstructswitch
tipedefunionunsignedvoid
volatilewhile

@Lưu ý:
- Không được dùng các từ khoá để đặt tên cho các hằng, biến, mảng, hàm,...
- Từ khoá phải được viết bằng chữ thường, ví dụ: viết từ khoá khai báo kiểu nguyên là int chứ không phải là INT.

1.3 Tên
Khái niệm tên rất quan trọng trong quá trình lập trình, nó không những thể hiện rõ ý nghĩa trong chương trình mà còn dùng để xác định các đại lượng khác nhau khi thực hiện chương trình. Tên thường được đặt cho hằng, biến, mảng, con trỏ, nhãn,… Chiều dài tối đa của tên là 32 ký tự.
Tên biến hợp lệ là một chuỗi ký tự liên tục gồm: Ký tự chữ, số và dấu gạch dưới. Ký tự đầu của tên phải là chữ hoặc dấu gạch dưới. Khi đặt tên không được đặt trùng với các từ khóa.
Ví dụ 1.1:
Các tên đúng: delta, a_1, Num_ODD, Case
Các tên sai:
3a_1 (ký tự đầu là số)
num-odd (sử dụng dấu gạch ngang)
int (đặt tên trùng với từ khóa)
del ta (có khoảng trắng)
f(x) (có dấu ngoặc tròn)
Ví dụ 1.2: number khác Number
case khác Case (case là từ khóa, do đó bạn đặt tên là Case vẫn đúng)
@Lưu ý: Trong C, tên phân biệt chữ hoa, chữ thường

1.4 Kiểu dữ liệu
Có 4 kiểu dữ liệu cơ bản trong C là: char, int, float, double.
TT
Kiểu dữ liệu
Kích thước
Miền giá trị
1
2
3
4
5
6
7
8
9
10
11
unsigned char
char
enum
unsigned int
short int
int
unsigned long
long
float
double
long double
1 byte
1 byte
2 bytes
2 bytes
2 bytes
2 bytes
4 bytes
4 bytes
4 bytes
8 bytes
10 bytes
0 đến 255
– 128 đến 127
– 32,768 đến 32,767
0 đến 65,535
– 32,768 đến 32,767
– 32,768 đến 32,767
0 đến 4,294,967,295
– 2,147,483,648 đến 2,147,483,647
3.4 * 10–38 đến 3.4 * 1038
1.7 * 10–308 đến 1.7 * 10308
3.4 * 10–4932 đến 1.1 * 104932

1.5 Lời chú thích
Trong khi lập trình cần phải ghi chú để giải thích các biến, hằng, thao tác xử lý giúp cho chương trình rõ ràng dễ hiểu, dễ nhớ, dễ sửa chữa và để người khác đọc vào dễ hiểu. Trong C có các ghi chú sau: // hoặc /* nội dung ghi chú */

Tóm lại, đối với ghi chú dạng // dùng để ghi chú một hàng và dạng /* …. */ có thể ghi chú một hàng hoặc nhiều hàng.