1. Trang chủ
  2. » Giáo án - Bài giảng

Tin học cơ sở 4 Biến và các kiểu dữ liệu

41 452 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 41
Dung lượng 883 KB

Nội dung

Tin học sở Biến Các Kiểu Dữ Liệu Cơ Bản Lệnh xuất liệu – printf Xuất liệu hình: printf("%i - %i = %i\n", a, b, a - b); – Các ký tự in nguyên văn – Các ký tự định dạng thay giá trị biểu thức tương ứng: – %i: ký tự định dạng số nguyên kiểu int – %lf: ký tự định dạng số thực kiểu double – Các ký tự điều khiển: \n – xuống dòng; \t – dấu tab; \\ – dấu \; \“– dấu “ – Thư viện: stdio.h Lê Nguyên Khôi Lệnh nhâp ̣ liệu – scanf Nhâp ̣ liệu từ hình: scanf("%i %i", &a, &b); – Trong chuỗi định dạng có ký tự định dạng khoảng trắng – Dữ liệu phải nhập vào biến – Trước tên biến phải ghi dấu & - toán tử địa Nếu toán tử địa chỉ, giá trị biến không cập nhật – Thư viện: stdio.h Lê Nguyên Khôi Ví dụ Khai báo biến số nguyên, “a” “b” Nhập số nguyên vào a b #include #include int int main(void) main(void) {{ int int a, a, b; b; printf(“Nhap printf(“Nhap 22 so so nguyen: nguyen: "); "); scanf("%i scanf("%i %i", %i", &a, &a, &b); &b); printf("%i printf("%i %i %i == %i\n", %i\n", a, a, b, b, aa b); b); Viết biểu thức “a”, “b” “a-b” theo định } } dạng %i Lê Nguyên Khôi return return 0; 0; Nhap Nhap 22 so so nguyen: nguyen: 21 21 17 17 21 21 17 17 == 44 Nội dung • • • • Các kiểu liệu dựng sẵn Hằng biến Các phép toán Các kiểu DL khác Lê Nguyên Khôi Biến • Biến lưu giá trị thuộc kiểu DL • Để sử dụng biến: đặt tên hợp lệ -> khai báo biến • Biến đượ c lưu nhớ dãy liên tục ô nhớ • Mỗi biến có ba thuộc tính: – Tên – Kiểu – Giá trị • Phaỉ khai bao ́ biên ́ trướ c sử dung ̣ Lê Nguyên Khôi Khai báo biến • Cú pháp: ; int i, j, k; double length, width; • Khởi tạo giá trị khai báo: = ; int i = 7; double length = 7.0; • Giá trị i sau khai báo sau: int i; Lê Nguyên Khôi Tên biến • Dùng để định danh biến • Bắt đầu chữ cái, tiếp đến chữ cái, chữ số dấu gạch chân • Không trùng với từ khóa C/C++ • C phân biệt chữ thường chữ hoa • Tên biến nên gợi nghĩa ngắn gọn • Ví dụ: i, k53, X, nchars, numberOfChars, number_of_chars Lê Nguyên Khôi Quy tắc đặ t tên • Dễ đọ c, dễ hiểu • Không nên bắt đầ u dấu gạch chân (_) • Dùng chữ in hoa cho ký tự đầ u từ: – CountWord • Dùng toàn chữ thườ ng từ cách dấu gạch chân: – word_count • Đảm bảo tính quán Lê Nguyên Khôi Từ khóa C Lê Nguyên Khôi 10 Phép gán (tiếp) • Biến thay đổ i giá trị thông qua phép gán trình chạy chươ ng trình y = x + 5; x = x + 3; • Thực tính toán biểu thức bên phải gán giá trị cho biến x = + y; • Biến phải đượ c gán giá trị trướ c sử dụng; –Nếu không sao? Lê Nguyên Khôi 27 Các toán tử gán • x += 10 tương đương với x = x + 10 Tương tự -= *= /= %= • Có thể gán nhiều biến giá trị câu lệnh a = b = 10; • ++ tăng lên 1: x++; tương đương x=x+1; • giam ̉ : x ; tương đương x=x-1; Lê Nguyên Khôi 28 ++ -• ++: tăng giá trị lên • : giảm giá trị xuống • Có thể đặ t trướ c sau biến x = y++; x = ++y; // ví dụ y = x = y++; // đâu ̀ tiên gan ́ y cho x, sau tăng y // vây, ̣ y = x = // ví dụ y = x = ++y; // đâu ̀ tiên tăng y, sau gan ́ y cho x // vây, ̣ y = x = Lê Nguyên Khôi 29 Chuyên ̉ đôỉ kiêu ̉ DL ban ̉ • Có thể gan ́ giá trị kiêu ̉ liêu ̣ ̀ cho biên ́ thuôc ̣ kiêu ̉ liêu ̣ khac ́ = = • Có thể lam ̀ mât́ độ chinh ́ xac ́ double d = double t = int x = d; int y = t; DBL_MAX; 3.24; printf("%i ", x); printf("%i ", y); x=? y=3 • Sử dung ̣ môṭ cach ́ cân ̉ thân ̣ !!! Lê Nguyên Khôi 30 Chuyên ̉ đôỉ kiêu ̉ DL ban ̉ • Chuyển kiểu liệu cách chủ động = (int) < biến double> = (double) • Ví dụ: int a = 4, b = 5; double d = (double) a / b; Lê Nguyên Khôi 31 Các phép toán số học Toán tử Sử dụng Ý nghĩa + - TH1 + TH2 TH1 - TH2 Cộng Trừ * / TH1 * TH2 TH1 / TH2 % (modulus) TH1 % TH2 Nhân Chia (lấy phần nguyên chia số nguyên) Lấy phần dư Lê Nguyên Khôi 32 Ví dụ toán tử chia “/” • Trình biên dịch dựa vào kiểu toán hạng để định phép chia tương ứng “i”, “j” kiểu int, “/” phép chia lấy nguyên  k nhận giá trị “f”, “g” kiểu double, “/” phép chia số thực  h nhận giá trị 1.25 Phép chia nguyên, “h” có kiểu double Kết 1.00000 Lê Nguyên Khôi int int main(void) main(void) {{ int ii == 5, int 5, double double ff == 5.0, 5.0, kk hh hh }} == == == ii ff ii // // // jj gg == == 4, 4, 4.0, 4.0, k; k; h; h; j; j; g; g; j; j; return return 0; 0; 33 Các toán tử so sánh Toán tử Sử dụng Trả true (đúng) > TH1 > TH2 TH1 lớn TH2 >= TH1 >= TH2 TH1 lớn TH2 < TH1 < TH2 = equality == != Bitwise operators &^| Logical operators && || Conditional ?: Assignment = += -= *= /= %= &= ^= |= = >>>= Lê Nguyên Khôi 37 Tính giá trị biểu thức • Trong biểu thứ, phép toán có độ ưu tiên cao thực trước • Nếu mức ưu tiên thực từ trái qua phải • Ví dụ: ‘*’ thực trướ c ‘+’ • Nên sử dụng cặp dấu () – x + y * Lê Nguyên Khôi -> x + (y * 2) 38 Kiêu ̉ enum • Môṭ cach ́ khac ́ dung ̀ để khai bao ́ enum {,< giá trị 2>,…} enum THANG {MOT, HAI, BA, …} enum NGAY {THU2, THU3, THU4, …} • Sử dụng enum không quan tâm tới giá trị kiểu: – Chỉ cần biết tên thứ tuần, tên tháng năm không cần biết giá trị enum THANG {MOT, HAI, BA, …} enum NGAY {THU2, THU3, THU4, …} enum MON_HOC {TOAN, LY, HOA, VAN, …} Lê Nguyên Khôi 39 Kích thướ c - sizeof(Obj) • Cho biết kích thước đối tượng theo đơn vị byte #include #include int int main(void) main(void) {{ long long big; big; printf("\"big\" printf("\"big\" su su dung dung %u %u bytes\n", bytes\n", sizeof(big)); sizeof(big)); printf("short printf("short su su dung dung %u %u bytes\n", bytes\n", sizeof(short)); sizeof(short)); printf("double printf("double su su dung dung %u %u bytes\n", bytes\n", sizeof(double)); sizeof(double)); }} return return 0; 0; "big" "big" su su dung dung 44 bytes bytes short short su su dung dung 22 bytes bytes double double su su dung dung 88 bytes bytes 40 Tổng kết • • • • • Các kiểu liệu dựng sẵn Biến Các toán tử Kiểu logic & enum Cách đặt tên biến, hằng, … Lê Nguyên Khôi 41 [...]... Lê Nguyên Khôi 11 Các kiểu DL cơ bản • Các kiểu số nguyên • Các kiểu số thực Lê Nguyên Khôi 12 Các kiểu số nguyên #bytes Định dạng Giá trị nhỏ nhất Giá trị lớn nhất char 1 %c CHAR_MIN CHAR_MAX unsigned char 1 %c 0 UCHAR_MAX short 2 %hi SHRT_MIN SHRT_MAX unsigned short 2 %hu 0 USHRT_MAX int 4 %i INT_MIN INT_MAX unsigned int 4 %u 0 UINT_MAX long 4 %li LONG_MIN LONG_MAX unsigned long 4 %lu 0 ULONG_MAX... -32768, -32768, maximum maximum int int == 32767 32767 maximum maximum unsigned unsigned == 65535 65535 maximum maximum long long int int == 2 147 483 647 2 147 483 647 maximum maximum unsigned unsigned long long == 42 949 67295 42 949 67295 Lê Nguyên Khôi 14 Ví dụ sử dụng kiểu char In ra mã ASCII của ký tự #include #include #include #include int int main() main() {{ char... g=%.2le \t \t h=%.4lg\n", h=%.4lg\n", f, f, g, g, h); h); return return 0; 0; }} f=3. 141 600 f=3. 141 600 f=3. 141 600e+00 f=3. 141 600e+00 f=3. 141 6 f=3. 141 6 f= f= 3. 14 3. 14 Lê Nguyên Khôi g=0.000012 g=0.000012 g=1.200000e-05 g=1.200000e-05 g=1.2e-05 g=1.2e-05 g=1.20e-05 g=1.20e-05 h=5000000000.000000 h=5000000000.000000 h=5.000000e+09 h=5.000000e+09 h=5e+09 h=5e+09 h=5e+09 h=5e+09 18 Kiểu boolean và void • Trong... kiểu boolean (logic) – Sử dụng kiểu int để thay thế: • 0 ⇔ false (sai), tất cả các giá trị khác ⇔ true (đúng) • void: – Hàm không trả lại bất kỳ giá trị nào – Được dùng để khai báo kiểu trả lại của các Hàm mà không có giá trị trả lại hoặc ta không quan tâm đến giá trị trả lại Lê Nguyên Khôi 19 Biểu diễn các giá trị của biến 0 Số nguyên 0 int 3. 141 59 Số PI double 1 .41 4 Căn bậc hai của 2 double 1 .41 4F... kiêu ̉ dữ liêu ̣ khac ́ = = • Có thể lam ̀ mât́ độ chinh ́ xac ́ double d = double t = int x = d; int y = t; DBL_MAX; 3. 24; printf("%i ", x); printf("%i ", y); x=? y=3 • Sử dung ̣ môṭ cach ́ cân ̉ thân ̣ !!! Lê Nguyên Khôi 30 Chuyên ̉ đôỉ kiêu ̉ DL cơ ban ̉ • Chuyển kiểu dữ liệu một cách chủ động = (int) < biến double>... == == 3. 141 592653590L 3. 141 592653590L 77 00 CHU_NHAT; CHU_NHAT; USE_API; USE_API; Lưu ý: không có “=” và “;” Không thay thế “PI” Lê Nguyên Khôi 25 Phép gán • Gán giá trị mới cho các biến -> thay đổ i trạng thái chươ ng trình • Cú pháp: = ; i = 0; • Nếu giá trị biểu thức không cùng kiểu thì có thể đổi kiểu tự động • Chúng ta có thể gán giá trị khởi tạo khi khai báo các biến: char... minimum minimum char char == -128, -128, maximum maximum char char == 127 127 Sau 'a' la 'b' Sau 'a' la 'b' Ky Ky tu tu in in hoa hoa 'M' 'M' 15 Số nguyên trong các cơ số khác • Các hệ cơ số có thể thực hiện được: cơ số 8 (octal), cơ số 10 (decimal), cơ số 16 (hexadecimal) Số 0: số octal 0x: số hexadecimal #include #include int int main(void) main(void) {{ int int dec dec == 20, 20, oct... NGAY_TRONG_TUAN == 5; 5; }} return return 0; 0; Lê Nguyên Khôi 23 Khai báo hằng: Cách 2 #define tên XâuThayThế #define TOC_DO_ANH_SANG 1079252 848 .8 Khác với cách 1 như thế nào? Cách 1: const doule TOC_DO_ANH_SANG = 1079252 848 .8; const doule TOC_DO_ANH_SANG = 1.079e+9; Lê Nguyên Khôi 24 Ví dụ Tìm từ “PI”, thay bằng 3. 141 5 #include #include #define #define #define #define #define... dụ: int a = 4, b = 5; double d = (double) a / b; Lê Nguyên Khôi 31 Các phép toán số học Toán tử Sử dụng Ý nghĩa + - TH1 + TH2 TH1 - TH2 Cộng Trừ * / TH1 * TH2 TH1 / TH2 % (modulus) TH1 % TH2 Nhân Chia (lấy phần nguyên nếu chia 2 số nguyên) Lấy phần dư Lê Nguyên Khôi 32 Ví dụ về toán tử chia “/” • Trình biên dịch dựa vào kiểu của các toán hạng để quyết định phép chia tương ứng “i”, “j” kiểu int, “/”... nguyên  k nhận giá trị 1 “f”, “g” kiểu double, “/” là phép chia số thực  h nhận giá trị 1.25 Phép chia nguyên, bất kể “h” có kiểu double Kết quả là 1.00000 Lê Nguyên Khôi int int main(void) main(void) {{ int ii == 5, int 5, double double ff == 5.0, 5.0, kk hh hh }} == == == ii ff ii // // // jj gg == == 4, 4, 4. 0, 4. 0, k; k; h; h; j; j; g; g; j; j; return return 0; 0; 33 Các toán tử so sánh Toán tử Sử

Ngày đăng: 03/04/2016, 21:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN