Bài giảng cung cấp cho người học các kiến thức: Thuật toán và phương pháp biểu diễn thuật toán; Sử dụng Dev-C++; Cấu trúc chương trình C++; Các khái niệm cơ bản trong C++,....Mời các bạn cùng tham khảo nội dung chi tiết.
BÀI CÁC KHÁI NIỆM CƠ BẢN TRONG C++ Giảng viên: Nguyễn Quỳnh Diệp– Khoa CNTT – ĐH Thủy Lợi Email: diepnq@tlu.edu.vn Bài giảng: goo.gl/BhqmYZ NỘI DUNG Thuật toán phương pháp biểu diễn thuật toán Sử dụng Dev-C++ Cấu trúc chương trình C++ Các khái niệm C++ Định danh phép gán Dữ liệu Biểu thức, khối lệnh Toán tử Hàm thư viện C++ THUẬT TOÁN Thuật toán: tập hữu hạn thị (bước) thực thi chuyển thông tin đầu vào thành thông tin đầu Tại cần thuật tốn? Máy tính giải vấn đề có hướng dẫn giải rõ ràng Các đặc trưng: Tính hữu hạn Tínhđúng Đầu vào, đầu Tính hiệu quả: dựa khối lượng tính tốn, khơng gian thời gian Tính tổng quát: áp dụng cho trường hợp THUẬT TỐN Ví dụ: Thuật tốn để giải phương trình bậc : ax + b = c (a,b,c số thực): Đầu vào: hệ số a, b, c Đầu ra: nghiệm phương trình Các bước thuật giải: Cho giá trị a, b, c Nếu a = • Nếu b = c “phương trình có vơ số nghiệm” • Nếu b ≠ c “phương trình vơ nghiệm” Nếu a ≠ •Phương trình có nghiệm x = (c-b)/a PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN Bằng ngôn ngữ tự nhiên: Liệt kê lời bước thuật tốn Đơn giản, khơng cần kiến thức tảng Dài dòng Bằng mã giả: Là mơ tả ngắn gọn, giúp người hiểu dễ dàng Độc lập với môi trường phát triển *Ví dụ: giải phương trình bậc a*x2 + b*x + c =0 PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN Yêu cầu nhập giá trị a, b, c if a = then if b= then if c = then xuất kết quả: phương trình vơ số nghiệm else xuất kết quả: phương trình vơ nghiệm else xuất kết quả: phương trình có nghiệm –c/b 10 else 11 Tính giá trị delta = b2 – 4*a*c 12 If delta>0 then 13 X1 = (-b-sqrt(delta))/(2*a) 14 X2 = (-b+sqrt(delta))/(2*a) 15 xuất kết quả: phương trình có nghiệm x1 b 16 else 17 if delta = then 18 xuất kết quả: Phương trình có nghiệm kép –b/(2*a) 19 else 10 xuất kết quả: phương trình vơ nghiệm PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN Bằng lưu đồ: - sử dụng khối để biểu diễn thuật toán Kiểm tra điều kiện Begin Bắt đầu thuật toán Vào liệu Sai B Đúng A End Kết thúc thuật toán Tùy vào trạng thái B hay sai mà rẽ nhánh thích hợp Thực công việc A PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN Ví dụ: Lưu đồ tính tổng N số nguyên với thuật toán khác nhau? Begin Đầu vào: số nguyên N Đầu ra: tổng N số Begin Đọc số N S= Đọc số N i= S = N*(N+1)/2 S= S+ i i = i+ i >N Sai In S Đúng In S End End PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN Bằng ngơn ngữ lập trình • Được thiết kế chuẩn hóa để truyền thị cho máy tính • Mơ tả đầy đủ rõ ràng thuật toán BÀI TẬP Bài 1:Xây dựng thuật toán tính tổng số chẵn tổng số lẻ dãy gồm n số nguyên nhập Bài 2: Xây dựng thuật tốn tìm giá trị lớn dãy số ngun có N số 10 TỐN TỬ SỐ HỌC Tốn tử ngơi – tăng/giảm tiền tố: tăng giảm giá trị trước sử dụng giá trị tốn hạng Ví dụ: a = 10; b = 5; c = a * ++b; // c= ? Tốn tử ngơi – tăng/giảm hậu tố: tăng giảm giá trị sau sử dụng giá trị tốn hạng Ví dụ: a = 10; b = 5; c = a * b++; // c= ? 42 TỐN TỬ LOGIC Tốn tử (Xem mục 3.2 giáo trình) Chức && Trả kết True toán hạng True || Trả kết True toán hạng True ! Chuyển đổi giá trị từ True thành False ngược lại Ví dụ ( (5 == 5) && (3 > 6) ) // trả false ( true && false ) ( (5 == 5) || (3 > 6) ) // trả true ( true || false ) !(5 == 5) !(6 3) ? a : b // ? (a>b) ? a : b // ? 44 TỐN TỬ QUAN HỆ Tốn tử (Xem mục 3.2 giáo trình) Mơ tả == So sánh != Ví dụ Khác == (b=2) == ( != 2) // trả false // trả false // trả true < Nhỏ ( < 5) // trả false > Lớn ( > 2) // trả true = +2) // trả true 45 TOÁN TỬ BIT Tốn tử Mơ tả Ví dụ AND 0&0=0 1&0=0 | OR ^ XOR ~ NOT 0|0=0 1|0=1 0^0=0 1^0=1 ~0 = ~1 = & 0&1=0 1&1=1 0|1=1 1|1=1 0^ 1=1 1^1=0 >1 = 0100 46 ĐỘ ƯU TIÊN CỦA TỐN TỬ Tốn tử STT Mô tả ++ () Tăng, giảm hậu tố, dấu ngoặc ++ ~ ! Tăng, giảm tiền tố, NOT bit, phủ định Tốn tử STT Mơ tả ^ XOR 10 | OR 11 && Toán tử logic AND */ Nhân, chia 12 || Toán tử logic OR +- Cộng, trừ 13 = *= /= %= += -= Toán tử gán > Dịch bit sang trái, Dịch bít sang phải < > = So sánh == != So sánh bằng, khác & AND bít 47 Tính giá trị biến sau? int a= 10; int b = ++a + 10; // b=? int a =10; int b = 10 + a++; // b=? int a= 10, b=5; b= ((a*3 > 27) && (b+5 && < 8) (4 > && true) (3 >= || false) (true || false) ? : 5 / 14 % / -2 -5 % 2; 49 CÁC HÀM TOÁN HỌC (Xem mục 2.5.1 giáo trình) Thêm khai báo #include phần tiền xử lý Hàm lượng giác: Hàm Mơ tả cos (x) Tính cosin góc x đo radian sin (x) Tính sin góc x đo radian tan (x) Tính tag góc x đo radian acos (x) Tính acos trả giá trị radian asin(x) Tính asin trả giá trị radian atan(x) Tính actag trả giá trị radian 50 CÁC HÀM TỐN HỌC Ví dụ: /* cos example */ #include #include using namespace std; /* cos */ #define PI 3.14159265 int main () { double param, result; param = 60.0; result = cos ( param * PI / 180.0 ); cout