Bài tập từ luận về cấu trúc rẽ nhánh
Dưới đây là tổng hợp câu lệnh điều kiện trong pascal cùng với bài tập về cấu trúc rẽ nhánh mới nhất từ cơ bản đến nâng cao được onthihsg cập nhập mới nhất mời các bạn tham khảo bài tập câu lệnh if … then … else trong pascal bên dưới nhé. Ví dụ : Để viết chương trình giải phương trình bậc 2, ta phải: Tính r = b2 – 4ac; Sau đó tùy thuộc vào giá trị của r mà ta có tính nghiệm hay không. Trong thực tế : – Nếu r <0 thì phương trình vô nghiệm – Nếu r >=0 thì phương trình có nghiệm – Như vậy tùy thuộc vào giá trị của r mà ta đưa ra vô nghiệm hay có nghiệm. – Hoặc có thể nói : Nếu r< 0 thì phương trình vô nghiệm, ngược lại thì phương trình có nghiệm. => Như vậy ta thấy một số mệnh đề có dạng + Nếu …..thì….. + Nếu …..thì….. ngược lại thì ==> Cấu trúc này được gọi là cấu trúc rẽ nhánh . ==>Các NNLT thường cung cấp các câu lệnh để mô tả các cấu trúc rẽ nhánh như trên . Cú pháp: (1) IF B THEN S; (2) IF B THEN S1 ELSE S2; Sơ đồ thực hiện: Chú ý: Khi sử dụng câu lệnh IF thì đứng trước từ khoá ELSE không được có dấu chấm phẩy (;). Cú pháp: (1) IF B THEN S; (2) IF B THEN S1 ELSE S2;
Trong đó:
Khi gặp lệnh CASE, chương trình sẽ kiểm tra: – Nếu giá trị của biểu thức B nằm trong tập hằng const i thì máy sẽ thực hiện lệnh Si tương ứng. – Ngược lại: + Đối với dạng 1: Không làm gì cả. + Đối với dạng 2: thực hiện lệnh Sn+1. Viết chương trình in ra số lớn hơn trong hai số (được nhập từ bàn phím). 1.Hướng dẫn:
– Hoặc: Nếu a > b thì in a. Ngược lại thì in b. 2.Mã chương trình:
Hoặc:
⇒ Nhận xét: Khi hai số bằng nhau thì mỗi số được xem là số lớn. Hãy sửa chương trình để khắc phục yếu điểm này. Nói chung nên sử dụng lệnh if … then … else vì chương trình sáng sủa, dễ hiểu hơn. Tuy nhiên trong vài trường hợp sử dụng các lệnh if … then rời lại dễ diễn đạt hơn. Hãy xem ví dụ sau: Viết chương trình in ra số lớn nhất trong bốn số nhập từ bàn phím. 1.Hướng dẫn: Nếu a³ b và a³ c và a³ d thì a là số lớn nhất. Tương tự như thế xét các trường hợp còn lại để tìm số lớn nhất. 2.Mã chương trình:
⇒ Nhận xét: Hãy sử dụng cấu trúc if … then … else để giải bài tập trên. Độ khó của bài toán sẽ tăng lên nhiều nếu thêm yêu cầu có thông báo khi hai số, ba số, bốn số bằng nhau. Viết chương trình in ra số lớn nhất trong bốn số nhập từ bàn phím với điều kiện chỉ được dùng hai biến. 1.Hướng dẫn: Sử dụng một biến max và một biến a để chứa số vừa nhập. Cho max bằng số đầu tiên. Sau khi nhập một số thực hiện so sánh nếu số vừa nhập lớn hơn max thì lưu số vừa nhập vào max. Sau khi nhập xong ta có max là số lớn nhất (Giải thuật này gọi là kỹ thuật lính canh cần hiểu rõ để sử dụng sau này). 2.Mã chương trình:
Viết chương trình xét xem một tam giác có là tam giác đều hay không khi biết ba cạnh của tam giác. 1.Hướng dẫn:
2.Mã chương trình:
Viết chương trình xét xem một tam giác có là tam giác cân hay không khi biết ba cạnh của tam giác. 1.Hướng dẫn:
2.Mã chương trình:
Viết chương trình xét xem một tam giác có là tam giác vuông hay không khi biết ba cạnh của tam giác. 1.Hướng dẫn:
2.Mã chương trình:
Viết chương trình giải phương trình ax + b = 0 (Các hệ số a, b được nhập từ bàn phím). 1.Hướng dẫn:
Hoặc:
Hoặc:
Ba bạn An, Bình và Cường cùng tham gia một trò chơi như sau: Mỗi bạn nắm trong tay một đồng xu, mỗi đồng xu có hai trạng thái : sấp và ngửa. Theo hiệu lệnh, cả ba bạn cùng đưa đồng xu của mình ra phía trước. Nếu cả ba đồng xu cùng sấp hoặc cùng ngửa thì chưa phát hiện người thua cuộc (hòa nhau). Nếu một bạn có trạng thái đồng xu khác với hai bạn kia( nghĩa là đồng xu của bạn ấy sấp còn hai người kia ngửa và ngược lại đồng xu của bạn ấy ngửa thì hai người kia sấp) thì bạn đó thắng cuộc. Hãy viết chương trình mô phỏng trò chơi trên. Thuật toán: – Để mô phỏng trạng thái sấp, ngửa của đồng xu ta dùng hàm Random(1) hoặc dùng Random(n) mod 2 với n > 2. – Xét tám trường hợp xãy ra để tìm người thắng cuộc. Cài đặt:
Viết chương trình dịch các ngày trong tuần sang tiếng anh
1.Hướng dẫn:
2.Mã chương trình:
Viết chương trình cho phép tính diện tích các hình: Hình vuông; Hình chữ nhật; Hình tròn; Tam giác; Hình thang. Người dùng chọn hình cần tính diện tích từ bảng chọn, sau đó khai báo các thông số liên quan và nhận được diện tích của hình: MOI BAN CHON HINH CAN TINH DIEN TICH
Muốn tình diện tích tam giác, người dùng gõ 4 và khai báo đường cao, đáy. Chương trình tính và thông diện tích đến người dùng. 1.Hướng dẫn: – Dùng cấu trúc chọn Case chon of với chon có kiểu Char để tạo bảng chọn. – Dùng 3 biến a,b,c để lưu các thông số của hình; Biến S để lưu diện tích của hình. – Thực hiện chung câu thông báo diện tích (Nằm ngoài Case . . . of) để gọn chưong trình. 2.Mã chương trình:
=>> Nhận xét: Với mỗi trường hợp thỏa Case biến chọn of thực hiện một lệnh. Vì thế, muốn thực hiện nhiều lệnh ta cần ghép nhiều lệnh thành một lệnh ghép. Viết chương trình chiều cao (m) của 2 HS, so sánh chiều cao 2 hs đó KQ: hs nào cao hơn, cao hơn bao nhiêu (m), nếu bằng nhau thì chiều cao bao nhiêu ? PROGRAM lenh_IF_1; USES CRT; VAR A,B : real; BEGIN CLRSCR; TEXTCOLOR(14); GOTOXY(25,2); WRITELN(‘ VIET CHUONG TRINH SO SANH CHIEU CAO 2 HS’); TEXTCOLOR(4); GOTOXY(25,4); WRITE(‘NHAP CHIEU CAO CUA A (m) :’); READLN(A); GOTOXY(25,5); WRITE(‘NHAP CHIEU CAO CUA B (m) :’); READLN(B); TEXTCOLOR(15);GOTOXY(25,7); IF A>B THEN WRITELN(‘HS A CAO HON HS B :’,A-B:3:1) ELSE IF A ELSE WRITELN(‘ CHIEU CAO A = CHIEU CAO B :’,A:2:1,’m’); READLN; END. Viết chương trình Nhập 3 số thực, kiểm tra xem 3 số đó có phải là 3 cạnh tam giác hay không? Program ba_canh_tam_giac; Var a,b,c: real; Begin Clrscr; WRITELN(‘ KIEM TRA 3 SỐ NHAP VAO CO PHAI LA 3 CANH TAM GIAC ?); Write(‘nhap ba so a, b và c:’); Readln(a,b,c); If (a+b>c) and (b+c>a) and (c+a>b) then Writeln(‘a,b,c la ba cạnh cua tam giac:’) Else Writeln(‘a,b,c khong la ba canh cua tam giac.’); Readln; End. Bài toán: Một cửa hàng cung cấp dịch vụ bán hàng thanh toán tại nhà. Khách hàng chỉ cần đăng kí số lượng mặt hàng cần mua, nhân viên cửa hàng sẻ giao hàng và nhận tiền thanh toán tại nhà khách hàng. Ngoài giá trị hàng hoá, khách hàng còn phải trả thêm phí dịch vụ. hãy viết chương trình Pascal để tính tiền thanh toán trong trường hợp khách hàng chỉ mua một mặt hàng duy nhất. Phí dịch vụ: 10,000, nếu khách hàng mua số tiền thanh toán > 600,000 đồng thì sẽ miễn phí dịch vụ. Program Tinh_tien; Uses CRT; Var Soluong: integer; Dongia, thanhtien: real; Thongbao: String; Const phi=10000; Begin Clrscr; Thongbao:= ‘Tong so tien phai thanh toan’; {Nhap don gia va so luong hang} Writeln (‘don gia mat hang ’); Readln (dongia); Writeln (‘So luong can mua’); Readln (soluong); Thanhtien:= soluong*dongia; IF Thanhtien <= 600000, thi thanhtien := thanhtien+phi; (*In ra so tien phai tra*) Writeln (thongbao,thanhtien:10:2); Readln; |