1. Trang chủ
  2. » Công Nghệ Thông Tin

C2 kieu du lieu chuan bieu thuc cau lenh

27 770 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 445,5 KB

Nội dung

CHƯƠNG II KIỂU DỮ LIỆU CHUẨN, BIỂU THỨC, CÂU LỆNH VÀ CẤU TRÚC ĐIỀU KHIỂN II.1 Kiểu liệu chuẩn Trong phần này, tìm hiểu số kiểu liệu chuẩn C++ Một biến chương trình số ô nhớ liên tiếp nhớ dùng để lưu trữ liệu (vào, hay kết trung gian) trình hoạt động chương trình gắn với tên NSD khai báo Để sử dụng biến, NSD khai báo: tên biến kiểu liệu chứa biến Nguyên tắc: có liệu kiểu với phép làm toán với Do đó, đề cập đến kiểu liệu chuẩn, ta xét đến yếu tố sau: • Tên kiểu: từ dành riêng để định kiểu liệu • Số byte lưu trữ nhớ: Thông thường số byte phụ thuộc vào trình biên dịch hệ thống máy khác nhau, ta xét đến hệ thống máy PC thông dụng • Miền giá trị kiểu: Quy định đơn vị liệu thuộc kiểu chứa giá trị pham vi NSD cần nhớ đến miền giá trị để khai báo kiểu cho biến cần sử dụng cách thích hợp Dưới bảng tóm tắt kiểu chuẩn thông số sử dụng C++ Kiểu liệu Ký tự Số nguyên có dấu Tên kiểu Kích thước/ precision char bit char16_t 16 bit char32_t Không nhỏ kiểu char16_t Tối thiểu 32 bit wchar_t Có thể biểu diễn cho ký tự hỗ trợ lớn signed char bit signed short int 16 bits signed int Không nhỏ short Tối thiểu 16 bit signed long int Không nhỏ int Tối thiểu 32 bit signed long long int Không nhỏ long Tối thiểu 64 bit unsigned char Số nguyên không dấu unsigned short int unsigned int Tương tự số nguyên có dấu kiểu unsigned long int unsigned long long int Số thực (dấu chấm động) float byte (1.2E-38 -> 3.4E+38), chữ số thập phân double byte (2.3E-308 -> 1.7E+308), 15 chữ số thập phân long double 10 byte (3.4E-4932 -> 1.1E+4932), 19 chữ số thập phân Lô gic bool Rỗng void Không lưu trữ Con trỏ rỗng decltype(nullptr) (Những từ in nghiêng tên kiểu không viết được) Ví dụ 2.1: Sau chương trình minh họa việc dùng biến #include using namespace std; int main () { int a, b; int result; a = 5; b = 2; a = a + 1; result = a - b; cout dừng có biến j tăng 1, từ ta có i = 2, j = khác với kết biểu thức Ví dụ lần nhắc ta ý kiểm soát kỹ việc sử dụng phép toán tự tăng giảm biểu thức câu lệnh d Phép toán thao tác bit Đây phép toán cho phép ta thao tác với bit số nguyên áp dụng kiểu liệu số nguyên: Phép toán Ý nghĩa Kết & Phép AND bit 1&1 = 0, 1&0 = 0&1 = 0&0= | Phép OR bit 0|0 = 0, 1|0 = 0|1 = 1|1= ^ Phép XOR bit 0^0 = 1^1 = 0, 1^0 = 0^1 = Phép dịch phải i >> tương đương phép gán i /=2; ~ Phép đảo bit ~1 = 0, ~0 = Chú ý phép dịch bit trái phải bảo toàn bit dấu (bit cực trái) e Các phép toán gán • Phép gán thông thường: Đây phép gán trình bày mục trước • Phép gán có điều kiện: = () ? a: b ; điều_kiện biểu thức logic, a, b biểu thức kiểu với kiểu biến Phép toán gán giá trị a cho biến điều kiện b ngược lại Ví dụ 2.8: x = (3 + < 7) ? 10: 20 x = (3 + 4) ? 10: 20 x = (a > b) ? a: b // x = 20 + < sai // x = 10 + != 0, tức điều kiện // x = số lớn số a, b Cách viết gọn phép gán: Một phép gán dạng x = x @ a ; viết gọn dạng x @= a @ phép toán số học, xử lý bit Ví dụ: thay cho viết x = x + viết x += 2; x = x/2 ; x = x*2 viết lại x /= 2; x *= 2; Cách viết gọn có nhiều thuận lợi viết đọc chương trình tên biến dài kèm nhiều số … thay phải viết hai lần tên biến câu lệnh phải viết lần, điều tránh viết lặp lại tên biến dễ gây sai sót Ví dụ, thay viết: ngay_quoc_te_lao_dong = ngay_quoc_te_lao_dong + 365; viết gọn bởi: ngay_quoc_te_lao_dong += 365; thay cho viết : Luong[Nhanvien[3][2*i+1]] = Luong[Nhanvien[3][2*i+1]] * 290 ; viết lại bởi: Luong[Nhanvien[3][2*i+1]] *= 290; II.4.2 Biểu thức Biểu thức dãy kí hiệu kết hợp toán hạng, phép toán cặp dấu () theo qui tắc định Các toán hạng hằng, biến, hàm biểu thức Biểu thức cung cấp cách thức để tính giá trị dựa toán hạng toán tử biểu thức Ví dụ: (x + y) * - ; - x + sqrt(y) ; (-b + sqrt(delta))/(2*a); a Thứ tự ưu tiên phép toán Để tính giá trị biểu thức cần có trật tự tính toán cụ thể thống Ví dụ xét biểu thức x = + * + • tính theo trật tự từ trái sang phải, ta có x = ((3+4) * 2) + = 21, • ưu tiên dấu + thực trước dấu *, x = (3 + 4) * (2 + 7) = 63, • ưu tiên dấu * thực trước dấu +, x = + (4 * 2) + = 18 Như biểu thức tính x cho kết khác theo cách hiểu khác Vì cần có cách hiểu thống dựa thứ tự ưu tiên phép toán, tức phép toán ưu tiên tính trước phép toán tính sau C++ qui định trật tự tính toán theo mức độ ưu tiên sau: Các biểu thức cặp dấu ngoặc () Các phép toán (tự tăng, giảm, lấy địa chỉ, lấy nội dung trỏ …) Các phép toán số học Các phép toán quan hệ, logic Các phép gán Nếu có nhiều cặp ngoặc lồng cặp (sâu nhất) tính trước Các phép toán lớp có độ ưu tiên theo thứ tự: lớp nhân (*, /, &&), lớp cộng (+, -, ||) Nếu phép toán có thứ tự ưu tiên chương trình thực từ trái sang phải Các phép gán có độ ưu tiên cuối thực từ phải sang trái Ví dụ theo mức ưu tiên qui định, biểu thức tính x ví dụ tính x = + (4 * 2) + = 18 Phần lớn trường hợp muốn tính toán theo trật tự ta nên sử dụng cụ thể dấu ngoặc (vì biểu thức dấu ngoặc tính trước) Ví dụ: Để tính ∆ = b2 - 4ac ta viết delta = b * b - * a * c ; −b+ ∆ viết : x = -b + sqrt(delta) / 2*a; sai 2a theo mức độ ưu tiên x tính -b + ((sqrt(delta)/2) * a) (thứ tự tính phép toán Để tính nghiệm phương trình bậc 2: x = Phần trình bày câu lệnh cho phép rẽ nhánh Để thống câu lệnh trình bày cú pháp (tức cách viết câu lệnh), cách sử dụng, đặc điểm, ví dụ minh hoạ vài điều cần ý sử dụng lệnh II.5.1 Cấu trúc rẽ nhánh a Câu lệnh if + Ý nghĩa Một câu lệnh if cho phép chương trình thực khối lệnh hay khối lệnh khác phụ thuộc vào điều kiện viết câu lệnh hay sai Nói cách khác câu lệnh if cho phép chương trình rẽ nhánh (chỉ thực nhánh) + Cú pháp • • Kiểu 1: Kiểu 2: if (điều kiện) { khối lệnh; } if (điều kiện) { khối lệnh 1; } else { khối lệnh 2; } Trong cú pháp câu lệnh if có hai dạng: có else else điều kiện biểu thức lôgic, tức có giá trị (khác 0) sai (bằng 0) Khi chương trình thực câu lệnh if, chương trình tính biểu thức điều kiện Nếu điều kiện chương trình tiếp tục thực lệnh khối lệnh 1, ngược lại (điều kiện sai) chương trình thực khối lệnh (nếu có else) không làm (nếu else) + Đặc điểm • Đặc điểm chung câu lệnh có cấu trúc thân chứa câu lệnh khác Điều cho phép câu lệnh if lồng • Nếu nhiều câu lệnh if (có else không else) lồng việc hiểu if else với cần phải ý Qui tắc else với if gần mà chưa ghép cặp với else khác Ví dụ câu lệnh: if (n>0) if (a>b) c = a; else c = b; tương đương với: if (n>0) { if (a>b) c = a; else c = b;} + Ví dụ Ví dụ 2.10: Bằng phép toán gán có điều kiện tìm số lớn max số a, b sau: max = (a > b) ? a: b ; max tính dùng câu lệnh if: if (a > b) max = a; else max = b; Ví dụ 2.11: Tính năm nhuận Năm thứ n nhuận chia hết cho 4, không chia hết cho 100 chia hết 400 Chú ý: số nguyên a chia hết cho b phần dư phép chia 0, tức a%b == #include using namespace std; int main() { int year; cout > year ; if (year%4 == && year%100 !=0 || year%400 == 0) cout > c ; if (a==0){ cout[...]... #include #include // sử dụng lệnh system("cls") using namespace std; int main() { system("cls"); char c1 = 200; unsigned char c2 = 200 ; cout

Ngày đăng: 23/10/2016, 22:45

TỪ KHÓA LIÊN QUAN

w