Bài giảng Lập trình nâng cao: Ôn tập cung cấp cho người học các kiến thức: Kiểu và biến, phép toán, thứ tự ưu tiên, lệnh rẽ nhánh, hàm và gọi hàm, chương trình, simple calculator. Mời các bạn cùng tham khảo nội dung chi tiết.
Simple Calculator - Ôn tập https://github.com/tqlong/advprogram Nội dung Ôn tập: ● ● ● ● ● Kiểu biến Phép toán, thứ tự ưu tiên Lệnh rẽ nhánh Hàm gọi hàm Chương trình Simple Calculator / 24 Đặt vấn đề Xây dựng chương trình tính phép tốn cộng, trừ, nhân, chia, phần dư chia số nguyên / 24 Các bước thực (phương án) ● ● ● ● Nhập số nguyên kí tự thể phép tốn Lựa chọn phép tốn Tính tốn kết In hình text Cần mơ tả lời bước giải vấn đề / 24 Lập trình ● ● ● Nhập số ngun int kí tự char thể phép tốn std::cin Dùng switch lựa chọn phép tốn, tính tốn kết In hình std::cout Tìm kiếm, tra cứu cách sử dụng ngơn ngữ lập trình thực bước đề / 24 Simple Calculator 0.1 # include < iostream > u sin g n am esp ace std; in t m ain () { in t num 1,num 2; ch ar op; cin > > num > > num > > op; // Đ ặt lệnh sw itch đểởlựa chọn phép toán retu rn 0; } / 24 Simple Calculator 0.1 sw itch (op) { case '+ ': cout < < num + num < < endl; break; case '-': cout < < num - num < < endl; break; case '*': cout < < num * num < < endl; break; case '/': cout < < num / num < < endl; break; case '% ': cout < < num % num < < endl; break; d efau lt: cout < < "Invalid operator" < < endl; } / 24 Kết Sử dụng cửa sổ lệnh Command Prompt Sau dịch chương trình CodeBlocks / 24 Cải tiến Nhập tốn tử phía sau tốn hạng khơng tự nhiên Thay lệnh nhập lệnh cin > > n u m > > op > > n u m 2; / 24 Cải tiến Khi chia lấy phần dư chia cho 0, chương trình báo lỗi Cần kiểm tra trước chia cho case '/': if (num = = 0) cout < < "Invalid divisor" < < endl; else cout < < num / num < < endl; b reak; case '% ': if (num = = 0) cout < < "Invalid divisor" < < endl; else cout < < num % num < < endl; b reak; 10 / 24 Bài tập ● ● ● ● Chương trình cịn lỗi ? Tìm cách sửa lỗi Thêm tính đảo chỗ số Thay đầu vào số thực (float, double) 11 / 24 Nội dung Ôn tập: ● ● ● ● ● Kiểu biến Phép toán, thứ tự ưu tiên Lệnh rẽ nhánh Hàm gọi hàm Chương trình Simple Calculator 0.2 12 / 24 Kỹ thuật khác ● ● ● ● ● Nhập số ngun kí tự thể phép tốn qua tham số dòng lệnh Sử dụng tham số argc, argv hàm main() Chuyển xâu kí tự thành số atoi() Viết hàm tính tốn phép tính số học Gọi hàm 13 / 24 Simple Calculator 0.2 # include < iostream > # include < cstdlib> Lệnh atoichuyểở n xâu kí tự thành sốốnguyển u sin g n am esp ace std; in t arith m etic(in t num 1,in t khaibáo < cstdlib> num 2,ch ar op); in t m ain (in t argc,ch ar* argv[]) { H àm tính tốn sốốhọc Tham sốốargv[0] tển in t num 1,num 2; ch ar op; chưởng trình,argv[1 ] tham sốốthứ nhâố t num = atoi(argv[1 ]); dòng lệnh,argv[2 ] op = argv[2 ][0]; tham sốốthứ ,… num = atoi(argv[3]); Sốốhạng thứ nhâố t cout < < arithm etic(num 1, num 2,op) < < endl; retu rn 0; } tham sốốthứ nhâố t Ký tự đâầ u tiển cu a tham sốốthứ hai Sốốhạng thứ hailà tham sốốthứ ba 14 / 24 Simple Calculator 0.2 in t arith m e tic(in t num 1, in t num 2, ch a r op) H àm có th a m sốố , tra ả vềềkiềảu { in t sw itch (op) { case '+ ': re tu rn num + num 2; case '-': re tu rn num - num 2; case 'x': K h ố n g d ù n g std ::cou t ởảđ ây m d ù n g re tu rn tra ả vềềkềố t qua ả tín h tố n re tu rn num * num 2; case '/': if (num = = 0) { cout < < "Invalid divisor" < < endl; T h ay d âốu * b ằ n g d âố u x d âốu * ký tự đ ặ c b iệt trề n cửảa sốảlệ n h exit(1 ); } e lse re tu rn num / num 2; T h oá t ch ởn g trìn h kh i sốốch ia case '% ': if (num = = 0) { cout < < "Invalid divisor" < < endl; exit(1 ); } e lse re tu rn num % num 2; T h oá t ch ởn g trìn h kh i p h é p to án kh ố n g h ợ p lệ d e fa u lt: cout < < "Invalid operator" < < endl; exit(1); } } 15 / 24 Simple Calculator 0.2 16 / 24 Bài tập ● ● ● Cho phép nhập số hạng số thực Kiểm tra số tham số có hợp lệ Trường hợp dịng lệnh có hai tham số, yêu cầu tính hàm (lượng giác bậc 2) Ví dụ: ○ ○ SimpleCalculator.exe cos 1.5 SimpleCalculator.exe sqrt 5.2 Hãy lựa chọn phương án kỹ thuật giải vấn đề 17 / 24 Tổng kết Ôn tập ● ● ● ● ● ● Nhập liệu từ luồng nhập chuẩn, từ dòng lệnh Kiểu liệu Các phép toán số học, thứ tự phép toán Lệnh rẽ nhánh: if, switch Hàm có tham số kết trả Lời gọi hàm 18 / 24 ... num < < endl; b reak; 10 / 24 Bài tập ● ● ● ● Chương trình cịn lỗi ? Tìm cách sửa lỗi Thêm tính đảo chỗ số Thay đầu vào số thực (float, double) 11 / 24 Nội dung Ôn tập: ● ● ● ● ● Kiểu biến Phép... đề / 24 Lập trình ● ● ● Nhập số nguyên int kí tự char thể phép toán std::cin Dùng switch lựa chọn phép tốn, tính tốn kết In hình std::cout Tìm kiếm, tra cứu cách sử dụng ngơn ngữ lập trình thực...Nội dung Ôn tập: ● ● ● ● ● Kiểu biến Phép toán, thứ tự ưu tiên Lệnh rẽ nhánh Hàm gọi hàm Chương trình Simple Calculator / 24 Đặt vấn đề Xây dựng chương trình tính phép toán cộng,