Bộ lệnh phù hợp với phương pháp lập trình có cấu trúc
Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu dữ liệu mới.
Linh động về cú pháp, ít từ khóa.
Ngôn ngữ mạnh và mềm dẻo, được dùng để viết OS, chương
trình điều khiển, soạn thảo văn bản, đồ hoạ, bảng tính và các
chương trình dịch cho các ngôn ngữ khác .
Giới thiệu
45 trang |
Chia sẻ: thuychi16 | Lượt xem: 930 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Ngôn ngữ lập trình C/C++ - Chương 1: Giới thiệu ngôn ngữ lập trình C/C++, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bộ lệnh phù hợp với phương pháp lập trình có cấu trúc
Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu dữ liệu mới.
Linh động về cú pháp, ít từ khóa.
Ngôn ngữ mạnh và mềm dẻo, được dùng để viết OS, chương
trình điều khiển, soạn thảo văn bản, đồ hoạ, bảng tính và các
chương trình dịch cho các ngôn ngữ khác .
Giới thiệu
Nhược điểm:
Cú pháp: lạ và khó học.
Một số ký hiệu có nhiều nghĩa khác nhau. Ví dụ: dấu “*” là toán
tử nhân, là khai báo con trỏ, là toán tử thay thế, Việc sử dụng
đúng nghĩa các toán tử phụ thuộc vào ngữ cảnh sử dụng.
Việc truy nhập tự do vào dữ liệu, việc trộn lẫn các kiểu dữ liệu
làm cho chương trình có phần bất ổn.
Giới thiệu
Ví dụ: Xuất ra màn hình dòng chữ: “Xin chao cac ban”
Giới thiệu
#include
int main()
{
printf("Xin chao cac ban!");
return 0;
}
#include
void main()
{
printf("Xin chao cac ban!");
}
Hoặc
Lệnh:
Lệnh thực hiện một chức năng nào đó (khai báo, gán,
xuất, nhập, ) ,kết thúc bằng dấu chấm phẩy (;)
Khối lệnh
Khối lệnh gồm nhiều lệnh và được đặt trong cặp dấu
ngoặc { }
Các khái niệm cơ bản
Chú thích: để chương trình dễ đọc và dễ hiểu hơn, trình
biên dịch sẽ bỏ qua nội dung chú thích khi biên dịch
chương trình.
Ký hiệu:
//: chú thích một dòng
/* và */: chú thích nhiều dòng
Các khái niệm cơ bản
Chữ cái: A, B, ..., Z và a, b, ..., z
Chữ số: 0, 1, ..., 9
Các ký hiệu toán học: +, -, *, /, =, (, ),...
Ký hiệu gạch nối: _
Các ký hiệu đặc biệt: . , ; [] {} ? ! \ & | % # ...
Không được dùng các ký hiệu như: α, φ, Ω, π, hoặc tiếng
việt có dấu: â, ă, ô
Tập ký tự trong ngôn ngữ C/C++
Từ khóa
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 bool catch class
delete friend inline new namespace
operator private protected public template
this throw try
Biến để lưu trữ giá trị do người dùng nhập vào hoặc các
giá trị tạm thời trong quá trình tính toán.
Mỗi biến có tên và kiểu dữ liệu tương ứng.
PHẢI khai báo BIẾN trước khi sử dụng
Biến
Kiểu cơ sở: Tích hợp sẵn trong ngôn ngữ
Số nguyên
Số thực
Logic
Mảng
Chuỗi
Kiểu người dùng định nghĩa
Kiểu dữ liệu
Kiểu số nguyên
Kiểu dữ liệu
STT TÊN KIỂU GHI CHÚ KÍCH THƯỚC
1 char
Ký tự 1 byte
Số nguyên 1 byte
2
unsigned char Số nguyên dương 1 byte
3
short Sô ́ nguyên 2 bytes
4
unsigned short Số nguyên dương 2 bytes
5
int Sô ́ nguyên 4 bytes
6
unsigned int Số nguyên dương 4 bytes
7
long Sô ́ nguyên 4 bytes
8
unsigned long Sô ́ nguyên dương 4 bytes
Kiểu số thực
Kiểu logic
Kiểu dữ liệu
STT TÊN KIỂU GHI CHÚ KÍCH THƯỚC
1 float 4 bytes
2 double 8 bytes
3 long double 8 bytes
STT TÊN KIỂU GHI CHÚ KÍCH THƯỚC
1 bool Gồm 2 giá trị: true hoặc false
Quy tắc đặt tên biến, tên hằng, tên hàm,
Bắt đầu bằng một ký tự.
Các ký tự trong tên biến chỉ có thể là các ký tự chữ, số hoặc dấu
gạch dưới (_)
Không được trùng với các từ khoá.
Không được trùng với phạm vi khai báo.
Dễ hiểu, súc tích và gợi nhớ.
Phân biệt chữ hoa và thường
Quy tắc đặt tên
Cú pháp: tênbiến;
Ví dụ:
int a; //Khai báo biến để lưu số nguyên tên a
float c; //Khai báo biến để lưu số thực tên c
Khai báo nhiều biến cùng kiểu
tênbiến1, tênbiến2, tênbiến3;
Ví dụ:
int a, x, y;
Khai báo biến
Cú pháp: tênbiến = giá trị;
Ví dụ:
int a = 5;
float b = 5.4, c = 9.2;
char ch = ‘n’;
Gán giá trị cho biến
Hằng là đại lượng không thay đổi giá trị trong quá trình thi
hành chương trình
Định nghĩa hằng: Dùng toán tử #define
Cú pháp: #define
Ví dụ: #define MAX 100
Tên hằng số dùng chữ in HOA
Định nghĩa hằng số
Khai báo biến có giá trị hằng số dùng từ khoá const
Cú pháp:
const = ;
Ví dụ: const int MAX = 100;
Định nghĩa hằng số
Hằng số: là các giá trị xác định, một hằng số có thể là
Số nguyên (có kiểu dữ liệu int, hay long int)
Số thực (có kiểu dữ liệu là float, double, long double).
Hằng ký tự: đặt trong dấu nháy đơn.
Ví dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 trong
bảng mã ASCII
Các loại hằng
Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấu
nháy kép " ".
Ví dụ: “Lap trinh C"
Chú ý: Một hằng chuỗi được kết thúc bằng ký tự null (\0)
Các loại hằng
Các phép toán
Stt Phép toán Ý nghĩa Ghi chú
Phép toán sô ́ học
1 + Cộng
2 - Trừ
3 * Nhân
4 / Chia
Đối với 2 số nguyên thì kết quả là
chia lấy phần nguyên
5 % Chia lấy phần dư Chỉ áp dụng cho 2 số nguyên
Stt Phép toán Ý nghĩa Ghi chú
Phép toán so sánh
1 > Lớn hơn
Kết quả của phép toán so
sánh là giá trị True hoặc
False
2 < Nhỏ hơn
3 >= Lớn hơn hoặc bằng
4 <= Nhỏ hơn hoặc bằng
5 = = Bằng nhau
6 != Khác nhau
Các phép toán
Phép toán logic
! NOT
&& AND
|| OR
Toán tử tăng giảm
++ Tăng 1 Nếu toán tử tăng giảm đặt trước thì
tăng giảm trước rồi tính biểu thức
hoặc ngược lại.-- Giảm 1
Các phép toán
Ví dụ:
int x = 5, y = 11;
int z = ++x + y++;
Kết quả: x=6; y=12; z=17
Các phép toán
Phép toán thao tác trên bit
1 & AND
2 | OR
3 ^ XOR
4 << Dịch trái
5 >> Dịch phải
6 ~ Lấy phần bù theo bit
Các phép toán
Toán tử điều kiện
(ĐK)?:
Ví dụ:
int n;
(n%2==0)? n ++ : n --;
nếu n = 10 thì giá trị n = 11
nếu n = 21 thì giá trị n = 20
Các phép toán
Thứ tự ưu tiên của các phép toán
Toán tử
Độ
ưu tiên
Trình tự kết hợp
() [] -> 1 Từ trái qua phải
! ~ ++ -- - + * & sizeof 2 Từ phải qua trái
* / % 3 Từ trái qua phải
+ - 4 Từ trái qua phải
> 5 Từ trái qua phải
= > 6 Từ trái qua phải
== != 7 Từ trái qua phải
Thứ tự ưu tiên của các phép toán
Toán tử
Độ
ưu tiên
Trình tự kết hợp
& 8 Từ trái qua phải
| 9 Từ trái qua phải
^ 10 Từ trái qua phải
&& 11 Từ trái qua phải
|| 12 Từ trái qua phải
? : 13 Từ phải qua trái
= += -= *= /= %= 14 Từ phải qua trái
Không khai báo biến khi sử dụng
Lưu giá trị vào biến không cùng kiểu.
Sử dụng giá trị của phép chia không chính xác. Lỗi thường xuất hiện
trong các biểu thức có nhiều toán hạng, khó phát hiện.
Ví dụ: 3.2 + 2/3 + 1.5 thì sẽ cho kết quả sẽ bằng 4.7 thay vì kết quả
đúng phải bằng 5.36666666666667
Sử dụng biểu thức chứa nhiều loại dữ liệu và không biết chắc kiểu
dữ liệu kết quả.
Các lỗi thường gặp
Thư viện:
Hàm nhập: scanf(“chuỗi định dạng”, &tên biến);
Ví dụ: int x;
scanf(“%d”, &x);
Hàm nhập và xuất trong C
Hàm xuất:
Xuất hằng chuỗi: printf(“hằng chuỗi”);
Ví dụ: printf(“Ngon ngu lap trinh C”);
Xuất giá trị của biến: printf(“chuỗi định dạng”, đối số 1, đối số 2);
Ví dụ: int a=5;
float b=2.7;
printf(“Gia tri cua bien a=%d, b=%f“, a, b);
Hàm nhập và xuất trong C
Ví dụ:
#include
void main ()
{
float giatri ;
printf ( “Nhap mot so thuoc [1..10]: “) ;
scanf ( “%f”, &giatri) ;
if (giatri >5)
printf ( “So vua nhap lon hon 5. \n”) ;
printf ( “%f la so ban nhap. “ , giatri);
}
Stt Kiểu Ghi Chú Định Dạng
Kiểu liên tục (sô ́ thực)
1 float %f
2 double %lf
3 long double %lf
Chuỗi định dạng
Chuỗi định dạng
Stt Kiểu Ghi chú Định Dạng
Kiểu rời rạc (sô ́ nguyên)
1 char
Ký tự %c
Sô ́ nguyên %d
2 unsigned char Số nguyên dương %d
3 int Số nguyên %d
4 unsigned int Số nguyên dương %u
5 long Số nguyên %ld
6 unsigned long Sô ́ nguyên dương %lu
7 char * Chuỗi %s
Xuất ký tự đặc biệt
Ký tự Ý nghĩa Ví dụ
\’ Xuất dấu nháy đơn printf(“ \’ ”); Kết quả: ‘
\” Xuất dấu nháy đôi printf(“ \” ”); Kết quả: “
\\ Xuất dấu chéo ngược “\” pritnf(“ \\ ”); Kết quả: \
\0 Ký tự Null Dùng để gán ký tự kết thúc của chuỗi
\a Alert : Tiếng bip
Xuất ký tự đặc biệt
Ký tự Ý nghĩa Ví dụ
\t Tab vào một đoạn ký tự trắng printf(“xyz\tzyx”);
\b Xuất lùi về sau print("xyz\t\bzyx”);
\n hoặc endl Xuống dòng printf(“xyz\nzyx”);
\r Về đầu dòng printf("xyz\rzyx”);
Mỗi lệnh trên một dòng, mỗi lệnh kết thúc bằng chấm
phẩy (;).
Nếu lệnh quá dài thì có thể viết thành nhiều dòng sao cho
mỗi lệnh phải được quan sát trọn vẹn trong cửa sổ lệnh.
Không nên đặt nhiều lệnh trên cùng một dòng.
Nên chú thích cho từng lệnh và khối lệnh
Cách viết chương trình
1. Cho biết kết quả của những lệnh sau:
int a, b;
b=a++ + ++a + --a;
printf("a=%d, b=%d“,a,b);
Với a = 2 Kết quả:?
Với a = 9 Kết quả:?
Bài tập
2. Cho biết kết quả của những lệnh sau:
int a, b;
b= --a + --a;
--b;
printf(“a=%d, b=%d” , a, b);
Với a = 19 Kết quả:?
Với a = 10 Kết quả:?
Bài tập
3. Cho biết kết quả của những lệnh sau:
int a, b;
b=a%2 + a/2 + --a;
printf("a=%d, b=%d“,a,b);
Với a = 17 Kết quả: ?
Với a = 3 Kết quả: ?
Bài tập
4. Cho biết kết quả của những lệnh sau:
int a, b;
b=a/3 + a--;
printf("a=%d, b=%d“,a,b);
Với a = 8 Kết quả: ?
Với a =21 Kết quả: ?
Bài tập
4. Cho biết kết quả của những lệnh sau:
int a, b;
b=a/3 + a--;
printf("a=%d, b=%d“,a,b);
Với a = 8 Kết quả: ?
Với a =21 Kết quả: ?
Bài tập
using
class
Tien$
default
yahoo.com
5. Các định danh nào sau đây là
không hợp lệ?
Main
Tinh Tong
Tinh-Tong
Tinh_Tong
x_Mu_2
2_Mu_2
Bài tập
6. Cho biết những chỗ sai và sửa lại cho đúng
int n = -100;
uint i = -100;
int = 2.9;
long m = 2, p = 4;
int 2k;
float y = y * 2;
char ch = “b”;
Bài tập
7. Viết chương trình in ra màn hình thông tin cá nhân theo mẫu sau:
Ho ten:
Lop:
Thong tin lien lac:
Dia chi:
So dien thoai:
Bài tập
8. Mô tả giải thuật bằng mã giả, lưu đồ và viết các chương
trình sau:
Viết chương trình nhập vào giờ phút và giây, đổi ra giây
và xuất kết quả ra màn hình.
Viết chương trình nhập vào 3 số nguyên a, b và c, tính
giá trị trung bình cộng của 3 số trên và xuất kết quả ra
màn hình.
Bài tập*