Ví dụ 1: Để giải phương trình bậc hai: ax2 +bx +c = 0 (a \(\neq\) 0 ) ta phải: tính delta = b* b – 4*a*c
- Nếu tăng <;0 thì phương trình vô nghiệm.
- Nếu delta >= 0 thì phương trình có nghiệm.
- Nếu…thì… (dạng bị thiếu)
- Nếu…thì…khác…(dạng đầy đủ)
- Điều kiện: là một quan hệ hoặc biểu thức logic.
- command: là một câu lệnh pascal.
- Điều kiện: là một quan hệ hoặc biểu thức logic.
- Câu lệnh 1, Câu lệnh 2: Đó là câu lệnh pascal.
- Nhập 3 số a, b, c.
- Tính toán: delta:=b*b-4*a*c.
- Nếu delta<0 thì pt không nghiêm ngặt, ngược lại phương trình có nghiệm.
-
Sử dụng câu lệnh if-then đầy đủ.
Xác định vấn đề:
- Đầu vào: Các hệ số a, b, c được nhập từ bàn phím.
- Đầu ra: Hiển thị nghiệm thực hoặc thông báo “Phương trình tiệm cận”.
- Trong các biểu thức điều kiện, chúng ta sử dụng các phép toán logic như or, and để kết hợp các điều kiện.
- Sử dụng đủ cấu trúc để viết các câu hỏi trên.
-
Biểu thức điều kiện: ((n mod 400 = 0) or (n mod 4 = 0) and (n mod 1000))
Xác định vấn đề:
- Đầu vào: n Nhập từ bàn phím.
- Đầu ra: Hiển thị số ngày trong năm thứ n.
Chương trình nam_nhuan;
sử dụng crt;
var n, sn: số nguyên;
Bắt đầu
clrscr;
ghi(‘tên:’);đọc(n);
if (n mod 400 = 0) hoặc ((n mod 4 = 0) và (n mod 100 0))
then sn:= 366 other sn:= 365;
writeln(‘ vs nam ‘, n,’ la ‘, sn);
Đọc
Kết thúc.
Thời gian thủ tục_ptb2;
sử dụng crt;
var a,b,c: true;
d, x1, x2: đúng;
Bắt đầu
clrscr;
ghi(‘ a, b, c: ‘);
readln(a, b, c);
d:= b*b – 4*a*c;
if d <; 0 then writeln('xong quy trinh.')
Khác
Bắt đầu
x1:= (-b – sqrt(d))/(2*a);
x2:= -b/a-x1;
writeln(‘ x1 = ‘, x1: 8:3,’ x2 = ‘, x2:8:3);
Kết thúc;
Đọc
Kết thúc.
Ví dụ 5:
Tìm số ngày trong n năm, biết rằng năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Ví dụ, năm 2000 và 2004 là năm nhuận có 366 ngày, trong khi năm 1900 và 1945 không phải là năm nhuận và có 365 ngày.
Mô tả:
Hay ta có thể nói: nếu delta < 0 thì phương trình vô nghiệm, ngược lại phương trình có nghiệm.
Ta có các mệnh đề sau:
Cấu trúc này được gọi là cấu trúc rẽ nhánh thiếu và đủ.
Để mô tả cấu trúc rẽ nhánh, Pascal sử dụng câu lệnh if-then. Tương ứng với hai loại mệnh đề thiếu và mệnh đề đủ nêu trên, Pascal có hai loại câu lệnh if-then:
A. Thiếu biểu mẫu
Cú pháp: nếu <điều kiện> thì lệnh >;
Vị trí:
Biểu đồ:
Hình 1. Sơ đồ cấu trúc nhánh bị thiếu
Ý nghĩa: Điều kiện sẽ được đánh giá và kiểm tra. Nếu điều kiện là đúng thì câu lệnh sẽ được thực hiện và nếu điều kiện là sai thì câu lệnh sẽ bị bỏ qua mạnh >.
Ví dụ 2:
nếu gia số <; 0 thì writeln('thủ tục không hợp lệ.');
b. dạng đầy đủ
Cú pháp:
Nếu
Điều kiện> Thì Câu 1 >
Nếu không<;Câu 2 >;
Vị trí:
Biểu đồ:
Hình 2.Sơ đồ cấu trúc nhánh đầy đủ
Ý nghĩa: Điều kiện sẽ được đánh giá và kiểm tra. Nếu điều kiện là đúng thì thực hiện câu lệnh 1, nếu không thì thực hiện câu lệnh 2.
Lưu ý 1: Không có dấu chấm phẩy (;) trước từ khóa else .
Ví dụ 3:
Nếu mod 3 = 0 thì viết (‘a chia het cho 3’)
else write(‘a khong chia het cho 3’);
Trong pascal, câu lệnh ghép có dạng:
Bắt đầu
<Khai báo >;
Kết thúc;
Lưu ý 2: Sau end
phải có dấu chấm phẩy (;)
Ví dụ 4:
if d <; 0 then writeln('xong quy trinh.')
Khác
Bắt đầu
x1:= (-b – sqrt(b*b – 4*a*c))/(2*a);
x2:= -b/a-x1
Kết thúc;
Ví dụ 5. Tìm nghiệm thực của phương trình bậc hai:
ax2 + bx + c = 0 với \(\neq\) 0.
Xây dựng ý tưởng: