Ngôn ngữ lập trình C/C++ - Tuần 2

8 416 4
Ngôn ngữ lập trình C/C++ - Tuần 2

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

Thông tin tài liệu

1 1 NGÔN NGỮ LẬP TRÌNH C/C++ NguyễnHải Châu Khoa Công nghệ thông tin Trường Đạihọc Công nghệ (Bài giảng tuần2) 2 Nộidung z Kiểudữ liệu z Biểuthức z Câu lệnh 3 Kiểudữ liệu đơngiản 4 Khái niệm z Các ngôn ngữ lập trình (NNLT) đềucó mộtsố kiểudữ liệucơ bản z Các yếutố gắnvớikiểudữ liệu: { Tên kiểu { Số byte trong bộ nhớđểlưutrữ một đơnvị dữ liệuthuộckiểunày { Miềngiátrị củakiểu 5 Mộtsố kiểudữ liệu đơngiản trong C++ ±10 -307 . . ±10 +308 8 bytedouble ±10 -37 . . ±10 +38 4 bytefloat Số thực -2 31 2 31 -14 bytelong - 32768 327672 byteshort 0 2 32 -14 byteunsigned int -2 31 2 31 -14 byteint Số nguyên 0 2551 byteunsigned char -128 1271 bytechar Kí tự MiềngiátrịSố ô nhớTên kiểuLoạidữ liệu 6 Kiểukýtự char c, d; // c, d được phép gán giá trị từ -128 đến127 unsigned char e, f; // e được phép gán giá trị từ 0 đến255 c = 65 ; d = 179; // d có giá trị ngoài miền cho phép e = 179; f = 330; // f có giá trị ngoài miền cho phép cout << c << int(c); // in ra chữ cái 'A' và giá trị số 65 cout << d << int(d); // in ra là kí tự '|' và giá trị số -77 cout << e << int(e); // in ra là kí tự '|' và giá trị số 179 cout << f << int(f); // in ra là kí tự 'J' và giá trị số 74 2 7 Ví dụ: Tính diện tích và chu vi hình tròn #include <iostream.h> #include <iomanip.h> void main() { float r = 2; // r là tên biếndùngđể chứa bán kính cout << "Diện tích = " << setiosflags(ios::showpoint); cout << setprecision(3) << r * r * 3.1416; getchar() ; } 8 Hằng: Khai báo và sử dụng 9 Hằng là gì? z Là các giá trị cốđịnh, được đặttêngọi trong chương trình C/C++ z Giá trị củahằng không thay đổi trong khi chương trình thựchiện 10 Hằng nguyên z Cách viếthằng nguyên (hệ 10): { Kiểu short, int: 3, -7 { Kiểu unsigned: 3, 12345 { Kiểu long, long int: 3L, -7L, 12345L z Hằng nguyên có thể viết ở hệ 16 hoặc8: { Hệ 16: 0xA1 (11 ở hệ 10) { Hệ 8: 013 (11 ở hệ 10) 11 Hằng thực z Hằng thựccóthể viết theo 2 cách z Dạng dấuphảytĩnh: 3.2, -7.1, 3.1416 z Dạng dấuphảy động: {Tổng quát: men hoặc mEn, trong đó m là phần định trị, n là phầnbậc(phầnmũ) {Ví dụ: 3.2 → 3.2e1, 3.2E1; 0.32 → 3.2e-1, 3.2E-1 12 Hằng ký tự z Có hai cách viếthằng ký tự: {Vớicáckýtự có mặtchữ: ‘A’ {Các ký tự không có mặtchữ: Dùng chữ số hệ 8 hoặc 16 để biểudiễnmãcủakýtựđó: ‘\33’, ‘\x1B’ {Mộtsố hằng ký tựđặcbiệtcócáchviết riêng để tiệnlợivàdễ nhớ z Hằng ký tự không có khái niệmrỗng 3 13 Mộtsố hằng ký tựđặcbiệt '\n': biểuthị kí tự xuống dòng (cũng tương đương với endl) '\t' : kí tự tab '\a': kí tự chuông (tức thay vì in kí tự, loa sẽ phát ra mộttiếng 'bíp') '\r' : xuống dòng '\f' : kéo trang '\\' : dấu\ '\?': dấuchấmhỏi? '\'' : dấu nháy đơn' '\"' : dấu nháy kép " '\kkk' : kí tự có mã là kkk trong hệ 8 '\xkk' : kí tự có mã là kk trong hệ 16 14 Hằng xâu ký tự z Là dãy ký tự bấtkỳđặtgiữadấu nháy kép z Ví dụ: {“Dien tu Vien thong” {“Cong nghe thong tin” z Chú ý: {‘A’ là mộthằng ký tự, khác với {“A” là mộthằng xâu ký tự {Xâu ký tự có thể rỗng: “” 15 Tạisaocầncóhằng trong chương trình? z Chương trình dễđọchơn vì các con số được thay bởicáctêngọi có ý nghĩa, ví dụ: 3.1415 được thay bởi Pi z Chương trình dễ sửachữahơn 16 Cách khai báo hằng #define <tên hằng> <giá trị hằng> hoặc const <tên hằng>=<giá trị hằng>; Ví dụ: #define sosinhvien 50 #define MAX 100 const sosinhvien = 50; 17 Biến: Khai báo và sử dụng 18 Khai báo biến z Biếnlàcáctêngọi để lưugiátrị khi chương trình thựchiện z Biến khác hằng ở chỗ giá trị củanócóthể thay đổitrongkhichương trình thựchiện z Có hai cách khai báo biến: {Khai báo không khởitạo {Khai báo có khởitạo 4 19 Khai báo không khởitạo <tên kiểu 1> <tên biến1>; <tên kiểu 2> <tên biến2>; <tên kiểu 3> <tên biến 3>, <tên biến4>; Chú ý: Các biếncócùngkiểucóthể khai báo theo cách 3 20 Ví dụ về khai báo biến không khởitạo void main() { int i, j; // khai báo 2 biến i, j có kiểunguyên float x ; // khai báo biếnthựcx char c, d[100] ;// biếnkítự c, xâu d // chứatối đa 100 kí tự unsigned int u; // biến nguyên không dấuu … } 21 Khai báo có khởitạo <tên kiểu 1> <tên biến1>=<giátrị 1>; <tên kiểu 2> <tên biến2>=<giátrị 2>; <tên kiểu 3> <tên biến3>=<giátrị 3>, <tên biến 4>=<giá trị 4>; Các giá trị khởitạocóthể là hằng, biến hoặcbiểuthức 22 Ví dụ về khai báo biếncókhởitạo const int n = 10 ; void main() { int i = 2, j , k = n + 5; // khai báo i và khởitạo // bằng 2, k bằng 15 float eps = 1.0e-6 ; // khai báo biếnthực // epsilon khởitạobằng 10-6 char c = 'Z'; // khai báo biếnkítự c // và khởitạobằng 'A' char d[100] = "Tin hoc"; // khai báo xâu kí tự d // chứadòngchữ "Tin hoc" … } 23 Ví dụ về tên gọitrongC++ z Tên gọi đúng: i, i1, j, tinhoc, tin_hoc, luu_luong z Tên gọisai: 1i, tin hoc, luu-luong-nuoc z Các tên sau đây là khác nhau: ha_noi, Ha_noi, HA_Noi, HA_NOI, 24 Phạmvi củabiến z Phạmvi củabiếnlànơimàbiếncótác dụng hay tại đógiátrị củabiếncóthể sử dụng được z Chi tiết: sẽ nói trong các bài họcsau 5 25 Gán giá trị cho biến z Sử dụng phép gán để gán giá trị cho biến: <tên biến> = <biểuthức>; Ví dụ: int n, i = 3; // khởitạoi bằng 3 n = 10; // gán cho n giá trị 10 cout << n <<", " << i << endl; // in ra: 10, 3 i = n / 2; // gán lạigiátrị củai bằng n/2 = 5 cout << n <<", " << i << endl; // in ra: 10, 5 26 Mộtsố lưuý về phép gán z Phép gán là một phép toán và nó trả lạigiá trị của<biểuthức> z Do đócóthể thựchiệnnhiều phép gán: <biến 1>=<biến 2>=…=<biểuthức> z Tuy nhiên không nên lạmdụng nhiều phép gán như trên dẫn đếnchương trình khó đọc 27 Phép toán, biểuthứcvàcâulệnh 28 Phép toán z C++ có nhiều phép toán chia thành các loại 1 ngôi, 2 ngôi và thậm chí 3 ngôi z Các thành phầntêngọi tham gia trong phép toán gọilàhạng thứchoặc toán hạng, các kí hiệu phép toán gọi là toán tử z Ví dụ: a+b: a, b là toán hạng, + là toán tử z Số ngôi của phép toán chính là số toán hạng 29 Các phép toán số học z Cộng (+), trừ (-), nhân (*) z Chia (/): {Chia lấyphần nguyên: 5/2 = 2 {Chia thực: 5.0/2.0 = 2.5 z Lấyphầndư (%) {5 % 2 = 1 {4 % 2 = 0 z Đây là các phép toán 2 ngôi z Phép trừ còn là 1 ngôi (khi đảodấu) 30 Các phép toán tự tăng giảm z i++, ++i: Tăng i (biến nguyên) lên 1 đơnvị z i , i: Giảmi (biến nguyên) đi1 đơnvị z Đây là các phép toán 1 ngôi i = 4, j = 8j = i + 5; i = i + 1; j = i++ + 5 ; i = 4, j = 9i = i + 1 ; j = i + 5 ; j = ++i + 5 ; i = 15 , j = 16i = j ; j = j + 1 ; i = j++; // tăng sau i = 16 , j = 16j = j + 1 ; i = j ; i = ++j; // tăng trước KếtquảTương đương Phép toán 6 31 Các phép toán so sánh và logic z Các phép toán so sánh: Bằng nhau (==), khác nhau (!=), lớnhơn(>), lớnhơnhoặc bằng (>=), nhỏ hơn(<), nhỏ hơnhoặc bằng (<=) z Đây là các phép toán 2 ngôi z Các phép toán logic: Và (&&), hoặc (||), phủđịnh (!) 32 Các phép gán z Gán thông thường <biến> = <biểuthức> z Gán có điềukiện: <biến> = <điềukiện>?<biểuthức1>:<biểuthức2> <điềukiện> là mộtbiểuthức logic, <biểuthức1> và <biểuthức2> làcácbiểuthức cùng kiểuvới kiểucủa<biến> Nếu<điềukiện> đúng thì <biến> nhậngiátrị của <biểuthức1> ngượclạinhậngiátrị của<biểu thức2> 33 Ví dụ phép gán có điềukiện x = (3 + 4 < 7) ? 10: 20 // x = 20 vì 3+4<7 là sai x = (3 + 4) ? 10: 20 // x = 10 vì 3+4 khác 0, tức điềukiện đúng x = (a > b) ? a: b // x = số lớnnhất trong 2 số a, b. 34 Cách viếtgọncủaphépgán z Phép gán dạng x = x@a, trong đó@ là một phép toán số học, xử lý bit có thể đượcviếtgọn thành: x @= a z Ví dụ: {x = x + 2 → x += 2 {y = y/2 → y /= 2 35 Biểuthức z Biểuthức là dãy kí hiệukếthợpgiữacác toán hạng, phép toán và cặpdấu () theo một qui tắcnhất định z Các toán hạng có thể là hằng, biến, hàm z Ví dụ các biểuthức {(x +y)*4-2 {(-b + sqrt(delta)) / (2*a) {3 - x + sqrt(y) 36 Thứ tựưutiêncủa các phép toán z C++ qui định trậttự tính toán theo các mức độ ưutiêntừ cao đếnthấpnhư sau: {Các biểuthức trong cặpdấungoặc() {Nếucónhiềucặp ngoặclồng nhau thì cặp trong cùng (sâu nhất) được ưutiêncaohơn {Các phép toán 1 ngôi (tự tăng-giảm, lấy địachỉ, lấynội dung con trỏ, phủđịnh …) {Các phép toán số học. {Các phép toán quan hệ, logic. {Các phép gán. 7 37 Chú ý z Để chương trình rõ ràng, sáng sủa: Với mỗibiểuthức, nên sử dụng dấu ngoặc để chỉđịnh mộtcáchtường minh trậttự tính toán trong biểuthức đó 38 Phép toán chuyển đổikiểu z C++ hỗ trợ chuyển đổikiểutựđộng: char ↔int→long int→float→double z Chuyển đổikiểu không tựđộng: (tên_kiểu)biểu_thức // cú pháp cũ trong C hoặc tên_kiểu(biểu_thức) // cú pháp mới trong C++ 39 Câu lệnh z Một câu lệnh trong C++ đượcthiếtlậptừ các từ khoá và các biểuthức…vàluôn luôn đượckết thúc bằng dấuchấmphẩy z Ví dụ: cin >> x >> y ; x = 3 + x ; y = (x = sqrt(x)) + 1 ; cout << x ; cout << y ; 40 Khốilệnh z Mộtsố câu lệnh đượcgọilàlệnh có cấu trúc, tức bên trong nó lạichứa dãy lệnh khác. z Dãy lệnh này phải đượcbaogiữacặpdấu ngoặc {} và đượcgọilàkhốilệnh. z Ví dụ: if (a==b) { x *= 2; y= y-2; // Font đỏ: Khốilệnh } 41 Thư viện các hàm toán học z #include <math.h> z abs(x), labs(x), fabs(x): trả lạigiátrị tuyệt đốicủa mộtsố nguyên, số nguyên dài và số thực. z pow(x, y): hàm mũ, trả lạigiátrị x lũythừay (xy). z exp(x): hàm mũ, trả lạigiátrị e mũ x (ex). z log(x), log10(x): trả lại lôgarit cơ số e và lôgarit thập phân của x (lnx, logx) . z sqrt(x): trả lạicănbậc2 củax. z atof(s_number): trả lạisố thực ứng vớisố viết dướidạng xâu kí tự s_number. z Hàm lượng giác: sin(x), cos(x), tan(x) 42 Các vấn đề cầnnhớ z Các kiểudữ liệucủaC++ z Hằng và biến z Phép toán (toán tử), biểuthức, toán hạng, độ ưutiêncủa các phép toán z Ngôi của phép toán z Câu lệnh và khốilệnh 8 43 Bài tập z Làm tấtcả các bài tậptừ số 1 đếnsố 20 trong giáo trình (trang 38, 39, 40) z Giờ thực hành: Yêu cầusinhviênchạy các chương trình trong tuần 1 và tuần2 trên máy tính

Ngày đăng: 08/05/2014, 16:34

Tài liệu cùng người dùng

Tài liệu liên quan