thuật toán giải phương trinhg bậc 2 Chú ý: Thuật toán trên không xét các trường hợp a, b, c bằng 0 như code ở dưới, code thì đầy đủ hơn. Show 2. Code pascal giải PT bậc IIProgram GIAI_PHUONG_TRINH_BACII; Uses CRT; {Su dung thu vien CRT} Var a,b,c,D,x,x1,x2: real; Begin Clrscr; {xoa man hình, neu khong USES CRT thi lenh nay se bi bao loi} Writeln('GIAI PHUONG TRINH BAC II: '); Writeln('-------------------------------------------'); Write('Nhap he so a='); readln(a); {Viet thong bao nhap a vaf cho nhap he so a vao tu ban phim } Write('Nhap he so b='); readln(b); {Viet thong bao nhap b vaf cho nhap he so b vao tu ban phim } Write('Nhap he so c='); readln(c); {Viet thong bao nhap c vaf cho nhap he so c vao tu ban phim } If a=0 then If b=0 then If c=0 then Writeln('Phuong trinh co vo so nghiem') {a=0, b=0, c=0 } Else Writeln('Phuong trinh vo nghiem') {a=0, b=0, c<>0} Else Writeln('Phuong trinh co mot nghiem: x=',-c/b: 4: 2) {a=0, b<>0} Else {a <> 0} Begin D:=b*b-4*a*c; If D=0 then Writeln('Phuong trinh co nghiem kep: x=',-b/(2*a): 4: 2) {Delta =0} Else If D<0 then Writeln('Phuong trinh vo nghiem') {Delta <0} Else {Delta >0} Begin x1:=(-b-sqrt(D))/(2*a); x2:=(-b+sqrt(D))/(2*a); Writeln('Phuong trinh co 2 nghiem la x1= ',x1:4:2 ,' va x2= ',x2:4:2); End; End; Readln {Truoc END. thi khong can dau ;} End.3. Xem thêm
4. Videos hướng dẫn
1.1. Rẽ nhánhVí 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
Hoặc 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ó mệnh đề sau:
Cấu trúc này được gọi là cấu trúc rẽ nhánh thiếu và đủ. 1.2. Câu lệnh if-thenĐể mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh if-then. Tương ứng với hai dạng mệnh đề thiếu và đủ nói ở trên, Pascal có hai dạng câu lệnh if-then: a. Dạng thiếuCú pháp: If < Điều kiện > then < Câu lệnh >; Trong đó:
Sơ đồ: Hình 1. Sơ đồ cấu trúc rẽ nhánh dạng thiếu Ý nghĩa: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh được thực hiện, nếu điều kiện sai thì câu lệnh sẽ bị bỏ qua. Ví dụ 2: if Delta < 0 then writeln('Phuong trinh vo nghiem.'); b. Dạng đủCú pháp: If < Điều kiện > then < Câu lệnh 1 > else < Câu lệnh 2 >; Trong đó:
Sơ đồ:
Hình 2. Sơ đồ cấu trúc rẽ nhánh dạng đủ Ý nghĩa: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng thì thực hiện câu lệnh 1, ngược lại thì thực hiện câu lệnh 2. Chú ý 1: Trước từ khóa Else không có dấu chấm phẩy (;). Ví dụ 3: if a mod 3 = 0 then write('a chia het cho 3') else write('a khong chia het cho 3'); 1.3. Câu lệnh ghépTrong Pascal câu lệnh ghép có dạng: Begin < Các câu lệnh >; End; Chú ý 2: Sau END phải có dấu chấm phẩy (;) Ví dụ 4: if D < 0 then writeln('Phuong trinh vo nghiem.') else begin x1:= (-b – sqrt(b*b – 4*a*c))/(2*a); x2:= -b/a-x1 end; 1.4. Một số ví dụVí dụ 5. Tìm nghiệm thực của phương trình bậc hai: ax2 + bx + c = 0 , với a \(\neq\) 0. Xây dựng ý tưởng:
Xác định bài toán:
program Giai_PTB2; uses crt; var a,b,c: real; D, x1, x2: real; begin clrscr; write(' a, b, c: '); readln(a, b, c); D:= b*b – 4*a*c; if D < 0 then writeln('Phuong trinh vo nghiem.') else begin x1:= (-b – sqrt(D))/(2*a); x2:= -b/a – x1; writeln(' x1 = ', x1: 8:3,' x2 = ', x2:8:3); end; readln end. Ví dụ 5: Tìm số ngày của năm N, 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ụ, các năm 2000, 2004 là năm nhuận và có số ngày là 366, các năm 1900, 1945 không phải là năm nhuận và có số ngày là 365. Hướng dẫn:
Xác định bài toán:
program Nam_nhuan; uses crt; var N, SN: integer; begin clrscr; write('Nam: '); readln(N); if (N mod 400 = 0)or((N mod 4 = 0)and( N mod 100 <> 0)) then SN:= 366 else SN:= 365; writeln(' So ngay cua nam ', N,' la ', SN); readln end. 2. Luyện tập Bài 9 Tin học 11Sau khi học xong Bài 9: Cấu trúc rẽ nhánh, các em cần nắm vững các nội dung trọng tâm:
If < Điều kiện > then < Câu lệnh 1 > else < Câu lệnh 2 >;
|