Transcript tại đây

Program ptb2;
Uses crt;
var a,b,c ,delta : real;
Begin
clrscr;
Write('nhap vao 3 he so a, b, c:');
readln(a,b,c);
delta := b*b - 4*a*c;
Write(delta:10:2);
readln
End.
Với yêu cầu phức tạp
hơn chẳng hạn như: Cho
biết một phương trình bậc
2 có nghiệm hay vô
nghiệm ?
Tính và hiển thị ra màn hình hệ số
Quantrình
sát, cho
delta của phương
bậc biết
2 khikết
quảsốthực
biết các hệ
a, b,hiện
c của
chương trình tương ứng
với các bộ dữ liệu Input
sau ?
Bộ dữ liệu
a
b
c
1
2
5
2
9.00
2
1
2
1
0.00
3
2
3
4
-23.00
delta
Sử dụng các cấu
trúc điều khiển.
Xét ví dụ:
Cho phương trình ax2 + bx +Tac =0
thấy(a0).
kết luận nghiệm của phương
Viết chương trình thông báo ra
mànchỉ
hình
trình
trên
nghiệm
hay vô nghiệm
Em
hãy
cho
biết phương
trình khi biết
trình
phụphương
thuộc vào
giá
trị có
của
Ta
thấy
nếu
delta
không
lớn
hơn
hoặc
các hệ số a, b, c.
có nào
nghiệm
delta. Vậy giá trị delta như thế
thì hay không có
bằng
0
thì
delta
chỉ
có
thể
làdùng
nhỏ để
hơnmô
0
Trong
lập
trình,
cấu
trúc
Input: 3 số a, b, c
nghiệm
khi biết hệ số a, b, c
phương trình có ngiệm hoặc
phương
( hoặc
lại nếu
delta...không
hơn
tả ngược
các mệnh
đề
thì ...”nhỏ
hoặc
Output: “Phuong trinh co nghiem”trình
hoặc
“ Phuong
trinh
vo?“nếu
nghiem”
trong
các trường hợp sau ?
không
có nghiệm
0 thì“nếu
delta...chỉ
lớn hơn
bằng
thìcó
... thể
nếulàkhông
thì hoặc
...” gọi
là
Thuật toán:
0 ). Do đó 2 mệnh
đề này
có thể biểu diễn
cấu trúc
rẽ nhánh.
Cách 1: Bước 1: bắt đầu
lại thành một mệnh đề như sau ?
Bước 2: Nhập vào 3 số a, b, c (a0)
Bước 3: delta  (b2-4ac)
Bước 4: Nếu delta  0 thì Phương trình có nghiệm
a
bBướcc5: Nếudelta
luận nghiệm
delta < 0 thìKết
Phương
trình vô nghiệm
Có hai nghiệm phân biệt x1, x2
2
5Bước26: Kết thúc9.00
Có một nghiệm kép x1 = x2
1
2
1
Cách 2: Bước 1: Bắt đầu 0.00
2
3Bước42: Nhập vào
3 số a, b,Không
c (a0)có nghiệm
-23.00
Bước 3: delta  (b2-4ac)
Bước
4: cóNếu
delta  0 thì Phương trình có nghiệm
Nếu ( delta  0) thì phương
trình
nghiệm
Nếu (delta  0) thì phương trình có nghiệm
Nếu không thì Phương trình vô nghiệm
Nếu không thì phương trình vô nghiệm
Bước
5:
Kết
thúc
Nếu ( delta < 0) thì phương trình vô nghiệm
+ Dạng thiếu:
Cấu trúc rẽ nhánh dạng thiếu là cấu trúc dùng để mô tả mệnh đề:
Nếu ... thì ...
Ví dụ: Nếu ( delta  0) thì phương trình có nghiệm
+ Dạng đủ:
Cấu trúc rẽ nhánh dạng đủ là cấu trúc dùng để mô tả mệnh đề:
Nếu ... thì ...
Nếu không thì ...
Ví dụ:
Nếu (delta  0 thì phương trình có nghiệm
Nếu không thì phương trình vô nghiệm
a. Câu lệnh if-then dạng thiếu
Cú pháp: If < điều kiện > then < câu lệnh>;
Hoạt động: Nếu điều kiện đúng thì thực hiện câu lệnh
Ví dụ:
If( delta >= 0) then write(‘PT co nghiem’);
If( delta < 0) then write(‘PT vo nghiem’);
Bước 1: Bắt đầu
Begin
Bước 2: Nhập vào 3 số a, b, c (a0)
Write(‘Nhap vao 3 so a, b, c:’); Readln(a, b, c);
Bước 3: delta  (b2-4ac)
delta := b*b-4*a*c ;
Bước 4:
Nếu delta  0 thì Phương trình có nghiệm
If( delta >= 0) then write(‘PT co nghiem’);
Bước 5:
Nếu delta < 0 thì Phương trình vô nghiệm
If( delta < 0) then write(‘PT vo nghiem’);
Bước 6: Kết thúc
End.
b. Câu lệnh if-then dạng đủ
Cú pháp: If < điều kiện > then < câu lệnh 1>
else <câu lệnh 2>;
Chú ý: Sau câu lệnh 1 (trước else) không được có dấu ;
Hoạt động: Nếu điều kiện đúng thì thực hiện câu lệnh 1,
điều kiện sai thì thực hiện câu lệnh 2
Ví dụ:
If( delta >= 0) then write(‘PT co nghiem’)
else write(‘PT vo nghiem’);
Bước 1: Bắt đầu
Begin
Bước 2: Nhập vào 3 số a, b, c (a0)
Write(‘Nhap vao 3 so a, b, c:’); Readln(a, b, c);
Bước 3: delta  (b2-4ac)
delta := b*b-4*a*c ;
Bước 4:
Nếu delta  0 thì Phương trình có nghiệm
If( delta >= 0) then write(‘PT co nghiem’)
Nếu không thì Phương trình vô nghiệm
else write(‘PT vo nghiem’);
Bước 5: Kết thúc
End.
Bài toán: Cho phương trình ax2+ bx + c =0 (a0). Viết chương trình thông báo ra màn
hình phương trình trên có nghiệm hay vô nghiệm khi biết các hệ số a, b, c.
Input: 3 số a, b, c
Output: “PT co nghiem” hoặc “ PT vo nghiem”
CHƯƠNG TRÌNH HOÀN THIỆN CỦA BÀI TOÁN
Program vidu;
Uses crt;
Program vidu;
ax 2
Uses crt;
Var a, b, c, delta : real;
Var a, b, c, delta : real;
Begin
Begin
Clrscr;
Clrscr;
Write(‘Nhap vao 3 so a, b, c:’); Readln(a, b, c);
Write(‘Nhap vao 3 so a, b, c:’); Readln(a, b, c);
delta := b*b-4*a*c ;
delta := b*b-4*a*c ;
If( delta >= 0) then write(‘PT co nghiem’);
If( delta >= 0) then write(‘PT co nghiem’)
If( delta < 0) then write(‘PT vo nghiem’);
else write(‘PT vo nghiem’);
Readln
Readln
End.
End.
Đề 1: Viết chương trình nhập vào 2 số nguyên
không âm a và b. sau đó hiển thị ra màn hình 2 số đó
theo thứ tự tăng dần.
Số nhỏ viết trước, số lớn viết sau
Program de1;
Uses crt;
Var a, b: word;
Begin
Clrscr;
Write(‘Nhap vao 2 so a, b:’); Readln(a, b);
If( a < b) then write(a ,’ ‘, b);
If( a >=b ) then write(b , ‘ ‘, a);
Readln
End.
Program de1;
Uses crt;
Var a, b: word;
Begin
Clrscr;
Write(‘Nhap vao 2 so a, b:’); Readln(a, b);
If( a < b) then write(a ,’ ‘, b)
else write(b , ‘ ‘, a);
Readln
End.
Đề 2: Viết chương trình thực hiện phép chia a cho b
với a và b là 2 số thực nhập vào từ bàn phím.
Phép chia a/b chỉ thực thiện được khi b <>0
Program de2;
Uses crt;
Var a, b: real;
Begin
Clrscr;
Write(‘Nhap vao 2 so a, b:’); Readln(a, b);
If( b <> 0 ) then write(‘Ket qua la:’, a/b:10:2);
If( b =0 ) then write(‘Khong chia duoc vi b = 0’);
Readln
End.
Program de2;
Uses crt;
Var a, b: real;
Begin
Clrscr;
Write(‘Nhap vao 2 so a, b:’); Readln(a, b);
If( b <> 0 ) then write(‘Ket qua la:’, a/b:10:2)
else write(‘Khong chia duoc vi b = 0’);
Readln
End.
Rẽ nhánh dạng thiếu
If < điều kiện > then < câu lệnh>;
Ñieàu kieän
Ñ
Caâu leänh
S
Rẽ nhánh dạng đủ
If < điều kiện > then < câu lệnh 1>
Else <câu lệnh 2>;
Caâu leänh 2
S
Ñ
Ñieàu kieän
Caâu leänh 1
Đề 3: Viết chương trình tìm giá trị lớn nhất trong 3
số nguyên a, b, c được nhập vào từ bàn phím.
Tìm giá trị lớn nhất trong 2 số a và b gọi là max
Kết quả là giá trị lớn nhất trong 2 số max và c
Program de3;
Var
a, b, c , max1, max2: integer;
Begin
Write(‘Nhap vao 2 so a, b,c :’); Readln(a, b,c);
If( a > b ) then max1 := a
else max1 := b;
If(max1>c) then max2 := max1
Else max2:=c;
Write(‘GTLN la :’, max2 );
End.
Program de3;
Var
a, b, c, max: integer;
Begin
Write(‘Nhap vao 2 so a, b,c :’); Readln(a, b,c);
If( a > b ) then max := a
else max := b;
If(max < c) then max :=c;
Write(‘GTLN la :’, max );
End.