Chương 1 giới thiệu ngôn ngữ lập trình C/C+ với những nội dung chính sau: các khái niệm cơ bản, tập ký tự trong ngôn ngữ C/C++, từ khóa, biến, kiểu dữ liệu, quy tắc đặt tên, khai báo biến,...và nhiều nội dung liên quan khác.
Trang 2 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
Trang 3 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
Trang 4 Ví dụ: Xuất ra màn hình dòng chữ: “Xin chao cac ban”
Trang 6 Chú thích: để chương trình dễ đọc và dễ hiểu hơn, trình
Trang 7 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++
Trang 8Từ khóa
Trang 9 Biến để lưu trữ giá trị do người dùng nhập vào hoặc cácgiá 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
Trang 10 Kiểu cơ sở: Tích hợp sẵn trong ngôn ngữ
Trang 114 unsigned short Số nguyên dương 2 bytes 5
6 unsigned int Số nguyên dương 4 bytes 7
8 unsigned long Số nguyên dương 4 bytes
Trang 121 bool Gồm 2 giá trị: true hoặc false
Trang 13Quy 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
Trang 14 Cú pháp: <Kiểu dữ liệu> 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
<Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3;
Ví dụ:
int a, x, y;
Trang 15 Cú pháp: <Kiểu dữ liệu> tênbiến = giá trị;
Trang 16 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 <tên_hằng> <giá_trị_hằng>
Ví dụ: #define MAX 100
Định nghĩa hằng số
Trang 17 Khai báo biến có giá trị hằng số dùng từ khoá const
Cú pháp:
const <kiểu_dữ_liệu> <tên_biến> = <giá_trị>;
Ví dụ: const int MAX = 100;
Định nghĩa hằng số
Trang 18 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
Trang 19 Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấunháy kép " ".
Ví dụ: “Lap trinh C"
Trang 20Các phép toán
Phép toán số học
4 / Chia Đối với 2 số nguyên thì kết quả là
chia lấy phần nguyên
Trang 21Stt Phép toán Ý nghĩa Ghi chú
Trang 22Phép toán logic
&& 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
Trang 24Phép toán thao tác trên bit
Trang 25 Toán tử điều kiện
(ĐK) ? <kết quả khi ĐK đúng> : <Kết quả khi ĐK sai>
Trang 26Thứ tự ưu tiên của các phép toán
ưu tiên Trình tự kết hợp
! ~ ++ - + * & sizeof 2 Từ phải qua trái
<< >> 5 Từ trái qua phải
< <= >= > 6 Từ trái qua phải
Trang 27Thứ tự ưu tiên của các phép toán
ưu tiên Trình tự kết hợp
= += -= *= /= %= 14 Từ phải qua trái
Trang 28 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ả.
Trang 29 Thư viện: <stdio.h>
Hàm nhập: scanf(“chuỗi định dạng”, &tên biến);
Ví dụ: int x;
scanf(“%d”, &x);
Trang 30 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);
Trang 31printf ( “Nhap mot so thuoc [1 10]: “) ;
scanf ( “%f”, & giatri ) ;
printf ( “So vua nhap lon hon 5 \n”) ;
printf ( “%f la so ban nhap “ , giatri );
}
Trang 33Stt Kiểu Ghi chú Định Dạng
Kiểu rời rạc (số nguyên)
Trang 34Xuất ký tự đặc biệt
\’ 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
Trang 35Xuất ký tự đặc biệt
\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”);
Trang 36Mỗi lệnh trên một dòng, mỗi lệnh kết thúc bằng chấmphẩy (;).
Nếu lệnh quá dài thì có thể viết thành nhiều dòng sao chomỗ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
Trang 371 Cho biết kết quả của những lệnh sau:
Trang 382 Cho biết kết quả của những lệnh sau:
Trang 393 Cho biết kết quả của những lệnh sau:
Trang 404 Cho biết kết quả của những lệnh sau:
Trang 414 Cho biết kết quả của những lệnh sau:
Trang 436 Cho biết những chỗ sai và sửa lại cho đúng
Trang 447 Viết chương trình in ra màn hình thông tin cá nhân theo mẫu sau:
Trang 458 Mô tả giải thuật bằng mã giả, lưu đồ và viết các chươngtrì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ả ramàn hình