Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
1,27 MB
Nội dung
BÀI CÁC KHÁI NIỆM CƠ BẢN TRONG C++ Giảng viên: Nguyễn Văn Đồng– Khoa Công nghệ thông tin – ĐH Thủy Lợi Email: nvdong@tlu.edu.vn 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 Đầ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 TỐ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=0 Đọc số N i=0 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 TỐ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 tố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Ử LOGIC Tốn tử (Xem mục 3.2 giáo trình) Chức Ví dụ && Trả kết True toán hạng True ( (5 == 5) && (3 > 6) ) // trả false ( true && false ) || Trả kết True toán hạng True ( (5 == 5) || (3 > 6) ) // trả true ( true || false ) ! Chuyển đổi giá trị từ True thành False ngược lại !(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ả Ví dụ == So sánh == (b=2) == != Khác ( != 2) // trả true < Nhỏ ( < 5) // trả false > Lớn ( > 2) // trả true = +2) // trả true // trả false // trả false 45 TOÁN TỬ BIT Tốn tử & Mơ tả AND | OR ^ XOR ~ NOT Ví dụ 0&0=0 1&0=0 0|0=0 1|0=1 0&1=0 1&1=1 0|1=1 1|1=1 >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 Toá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 TỐ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 TOÁ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