CÂU LỆNH IF pptx

22 394 0
CÂU LỆNH IF pptx

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CÂU LỆNH IF 8.1.1. Câu lệnh IF dạng 1: 8.1.1.1. Cú pháp, lưu đồ và ý nghĩa: Cú pháp : IF Ðiềukiện THEN LệnhP ; Ðiềukiện là một biểu thức lôgic cho kết qủa TRUE (đúng) hay FALSE (sai). LệnhP có thể là một lệnh đơn giản hoặc một lệnhcấu trúc. Nếu LệnhP là một lệnh ghép, tức là gồm nhiều lệnh, thì nhớ là các lệnh này phải được đặt trong khối: begin và end . Ý nghĩa: Tùy theo Ðiềukiện là đúng hay sai mà quyết định có làm LệnhP hay không. Nếu Ðiềukiện là đúng thì làm LệnhP rồi chuyển sang lệnh kế tiếp ở phía dưới. Nếu Ðiềukiện là sai thì không làm LệnhP mà chuyển ngay sang lệnh kế tiếp. Sơ đồ?cú pháp của lệnh IF được vẽ trong hình 8.1. 8.1.1.2. Các ví dụ : Ví dụ 8.1: Nhập vào hai số a và b, tìm và in lên màn hình số lớn nhất của hai số đó. Ta dùng một biến phụ đặt tên là Max để chứa gía trị lớn nhất phải tìm. Thuật toán gồm hai bước: Bước 1: Gán số thứ nhất vào Max, tức là: Max:=a; Bước 2: Kiểm tra nếu Max nhỏ hơn số thứ hai thì gán số thứ hai vào Max: If Max < b then Max:=b; Bước 3: In gía trị Max lên màn hình. Giải thích: Sau bước 1, biến Max có gía trị bằng a. Sang bước 2, có thể xảy ra hai tình huống : * Hoặc là Max < b , tức b là số lớn nhất, khi đó gía trị lớn nhất b được gởi vào biến Max * Hoặc là Max >= b, tức gía trị của Max là lớn nhất rồi nên không phải làm gì nữa. Chương trình cụ thể như sau: PROGRAM VIDU81; { Tim Max của hai so } Var a, b, max : Real; Begin Write(‘ Nhap a va b :’); Readln(a,b); Max :=a ; If Max < b then Max:=b ; Writeln(‘ So lon nhat la: ‘ , Max:6:2); Readln; End. Chạy<VD81.EXE> Chép file nguồn <VD81.PAS> Nhận xét: Việc tìm số nhỏ nhất của hai số a, b cũng tương tự, ta dùng biến phụ Min chứa gía trị nhỏ nhất, và thực hiện các lệnh sau: Min:=a; If Min > b then Min:=b; Có thể mở rộng thuật toán trên để tìm số lớn nhất trong ba số hoặc nhiều hơn. Ðầu tiên ta tìm số lớn nhất của hai số a và b, ký hiệu là Max, sau đó tìm số lớn nhất của hai số Max và c, cũng vẫn ký hiệu là Max. Dưới đây là các lệnh chính để tìm số lớn nhất trong ba số a, b, c : Max:=a; If Max < b then Max:=b; { Max là số lớn nhất của a và b } If Max < c then Max:=c; { Max là số lớn nhất của a, b và c } Ví dụ 8.2: Nhập vào họ tên và điểm trung bình (DTB) của một sinh viên. Hãy phân loại sinh viên theo DTB như sau: Loại là Kém nếu DTB<5, là Tbình nếu 5  DTB<7, là Khá nếu 7  DTB<9, là Giỏi nếu DTB  9. In họ tên, điểm trung bình và phân loại sinh viên. Trong chương trình, ta dùng một biến phụ đặt tên là Loai để lưu trữ phân loại của sinh viên. Vì có năm loại cầ? lưu trữ là các chuỗi ‘Kem’, ‘Tbinh’, ‘Kha’, ‘Gioi’, nên biến Loai phải có kiểu dữ liệu là kiểu chuỗi. PROGRAM VIDU82; { Phân loại sinh viên } Var Ho_ten: String[18]; DTB: Real; Loai: String[6]; Begin Write(‘ Nhap ho va ten :’); Readln(Ho_ten); Write(‘ Nhap điem trung binh :’); Readln(DTB); { phân loại theo DTB } If DTB< 5 then Loai:=‘Kem’; If (DTB>= 5) and (DTB<7) then Loai:=‘Tbinh’; If (DTB >= 7) and (DTB< 9) then Loai:=‘Kha’; If DTB >= 9 then Loai:=‘Gioi’; Writeln(Ho_ten, #32 , DTB:4:1 , #32 , Loai); { #32 là ký tự trắng } Readln; End. Chạy<VD82.EXE> Chép file nguồn <VD82.PAS> Ví dụ 8.3: Nhập vào ba hệ số A, B, C, (A  0) rồi giải và biện luận phương trình bậc hai: Ax 2 + Bx + C = 0 Việc đầu tiên là phải tính Delta : Delta = B 2 - 4AC Sau đó biện luận theo Delta: Nếu Delta<0 : phương trình vô nghiệm Nếu Delta=0 : phương trình có nghiệm kép : Nếu Delta > 0: phương trình có hai nghiệm : Chương trình cụ thể như sau: PROGRAM VIDU83; { Giải phương trình bậc 2 } Var A, B, C, Delta, X1, X2 : Real; Begin Repeat Write( ‘ Nhap he so A khac khong :’); Readln(A); Until A<>0; Write( ‘ Nhap cac he so B, C: ‘); Readln(B, C); Delta:=B*B - 4*A* C; If Delta < 0 then Writeln( ‘ Ptrinh vô nghiệm! ‘); If Delta = 0 then begin X1:=-B/(2*A); Writeln(‘ Có ng. kép X1=X2= ‘ , X1:8:2); end; If Delta > 0 then begin X1 := (-B+ Sqrt(Delta) ) / (2*A); X2 := (-B - Sqrt(Delta) ) / (2*A); Writeln(‘ Có hai nghiệm : ’); Writeln(‘X1= ‘ , X1:8:2); Writeln(‘X2= ‘ , X2:8:2); end; Readln; End. Chạy<VD83.EXE> Chép file nguồn <VD83.PAS> Trong chương trình có ba lệnh IF xét riêng từng trường hợp Delta âm, bằng không hoặc dương. Chú ý rằng khi Delta=0 thì phải làm hai lệnh: X1:=-B/(2*A); Writeln(‘ Có ng. kép X1=X2= ‘ , X1:8:2); nên hai lệnh này phải được đặt giữa hai từ khóa begin và end để tạo thành một câu lệnh ghép. Tương tự, khi Delta>0 thì phải làm năm lệnh, và do đó cả năm lệnh cũng phải để trong khối begin và end. Chương trình có sử dụng lệnh Repeat Until (sẽ trình bày ở phần sau) để buộc người dùng phải nhập hệ số A 0, nếu nhập A=0 thì phải nhập lại cho đến khi A 0 mới cho làm tiếp các lệnh ở phía dưới. 8.1.2. Câu lệnh IF dạng 2: [...]... nhat la: ‘ , Min:6:2); Readln; End Chạy Chép file nguồn 8.1.3 Câu lệnh IF lồng nhau : Trong câu lệnh IF, nếu LệnhP hoặc LệnhQ, hoặc cả hai, lại là câu lệnh IF thì ta có cấu trúc IF lồng nhau Chẳng hạn dưới đây là hai câu lệnh IF ELSE lồng nhau : IF Ðiềukiện1 THEN If Ðiềukiện2 then LệnhP else LệnhQ ELSE LệnhR ; Ví dụ 8.5: Nhập vào họ tên một chủ hộ, chỉ số điện kế tháng trước (chiso1)... pháp : IF Ðiềukiện THEN LệnhP ELSE LệnhQ ; Chú ý : Trước từ khóa ELSE không có dấu chấm phẩy LệnhP và LệnhQ có thể là một lệnh ghép, tức là gồm nhiều lệnh được đặt trong khối begin và end Ý nghĩa của lệnh: Tùy theo Ðiềukiện là đúng hay sai mà quyết định làm một trong hai lệnh: LệnhP hoặc LệnhQ Nếu Ðiềukiện là đúng thì làm LệnhP, không làm LệnhQ, mà chuyển ngay sang thực hiện lệnh kế tiếp ở sau LệnhQ... không làm LệnhP mà làm LệnhQ rồi chuyển sang lệnh kế tiếp ở sau LệnhQ Ví dụ 8.4: Ðể tìm số lớn nhất của hai số a và b, dùng lệnh: If a: Trong câu lệnh IF lồng nhau, cách xác định từ khóa ELSE nào đi với từ khóa IF nào là như sau: xét ngược từ dưới lên, ELSE luôn đi với IF gần nhất ở phía trên nó mà chưa có ELSE để bắt cặp ... tên thứ ba: ‘); Readln(T3); Writeln(‘ Các tên được sắp thứ tự là:’); IF T1 . <VD83.PAS> 8.1.3. Câu lệnh IF lồng nhau : Trong câu lệnh IF, nếu LệnhP hoặc LệnhQ, hoặc cả hai, lại là câu lệnh IF thì ta có cấu trúc IF lồng nhau. Chẳng hạn dưới đây là hai câu lệnh IF ELSE lồng. các lệnh ở phía dưới. 8.1.2. Câu lệnh IF dạng 2: Cú pháp : IF Ðiềukiện THEN LệnhP ELSE LệnhQ ; Chú ý : Trước từ khóa ELSE không có dấu chấm phẩy. LệnhP và LệnhQ có thể là một lệnh. CÂU LỆNH IF 8.1.1. Câu lệnh IF dạng 1: 8.1.1.1. Cú pháp, lưu đồ và ý nghĩa: Cú pháp : IF Ðiềukiện THEN LệnhP ; Ðiềukiện là một biểu thức lôgic

Ngày đăng: 19/06/2014, 09:20

Từ khóa liên quan

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

Tài liệu liên quan