1. Trang chủ
  2. » Công Nghệ Thông Tin

Kết hợp TOán và Tin

21 461 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Kết hợp toán và tin
Tác giả Lê Mạnh Dũng
Trường học Trường Đại Học
Chuyên ngành Toán và Tin học
Thể loại bài viết
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 21
Dung lượng 176 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kết hợp TOán và Tin

Trang 1

Nói với bạn trẻ yêu Toán và Tin học

Lê Mạnh Dũng

Cách đây 30 năm, chúng tôibằng lứa tuổi bạn trẻ bây giờ, mơ ước được cắp sách tới trường học tập nóichung và học toán nói riêng Nói là mơ ước là điều đúng, bởi ngày ấy cả nước tacó chiến tranh, miền Bắc chống chiến tranh phá hoại của giặc Mỹ, miền Nam tiếnhành cuộc chiến tranh giải phóng dân tộc khỏi xâm lược Mỹ và bè lũ tay sai.Tuổi trẻ chúng tôi ngày ấy có hai nhiệm vụ: cầm súng bảo vệ tổ Quốc và học tậpđể sau này xây dựng đất nước Còn ở lại học tập chúng tôi ra sức rèn luyện trítuệ của mình Khi lên đường ra trận, chúng tôi hoàn thành nhiệm vụ của ngườilính Trên đường ra trận ngày ấy, ngoài ba lô, khẩu súng của người lính, chúngtôi còn có những bài thơ hay, những bài toán khó theo bước chân người lính vốnlà học sinh, sinh viên ngày ấy Mấy chục năm qua, nhưng những suy nghĩ về làmtoán ngày ấy, cho đến làm toán, làm tin học của ngày hôm nay, vẫn là nỗi niềmđam mê của chúng tôi, mặc dù chúng tôi bây giờ không còn trẻ nữa! Bài viết

nàychúng tôi muốn gửi đến bạn trẻ lòng nhiệt tình của chúng tôi học toán thời đãqua và học toán cùng với tin học của ngày hôm nay!

Ngày ấy, khi chúng tôi học vềphương trình bậc hai, với thuật giải rõ ràng, tìm được

nghiệm cụ thể, nhưngtrong lòng vẫn chưa hết băn khoăn: kỳ lạ thật, lúc thì có nghiệm hữu

tỷ, lúcthì có nghiệm vô tỷ (chưa căn) Suy nghĩ này dẫn chúng tôi phải nghiên cứu kỹvề biệt số detal của phương trình bậc hai (có nghiệm hữu tỷ khi detal là sốchính phương, có nghiệm vô tỷ thì ngược lại) Những suy nghĩ này về sau giúpích cho chúng tôi rất nhiều trong lập trình một số bài toán

Đúng là làm đi làm lại mộtcông việc như giải phương trình bậc hai với các hệ số đã cho, thật là buồn tẻ.Ngày ấy chúng tôi mơ ước có được máy nào đó thay cho công việc tính toán tẻnhạt của mình Bạn giờ đây có thể tin học hoá bài toán giải phương trình bậc2 này bằng nhiều cách khác nhau: sử dụng các chương trình tin học có sẵn trêncác máy tính, kể cả máy tính bỏ túi, hoặc tự mình viết chương trình bằng mộtngôn ngữ lập trình cụ thể! Nhưng ngày ấy, cách đây hơn 30 năm, cho dù trí tưởngtượng của chúng tôi có phong phú như thế nào, thậm chí có nằm mơ, chúng tôicũng không thể hình dung được tin học của ngày hôm nay! Ngày ấy, làm sao có thểnghĩ đến thuật ngữ: Tin học, vi tính rồi đến xa lộ thông tin như ngày nay!Bạn trẻ bây giờ thật hạnh phúc!

Viết chương trình giải phươngtrình bậc hai, đưa ra các nghiệm thực là điều đơn giản Chỉ cần bạn có kiến thứcsơ cấp về lập trình bằng ngôn ngữ như Pascal chẳng hạn, là bạn có thể viết đượcdễ dàng Nhưng nếu bạn muốn viết chương trình giải phương trình bậc hai, đưa racác nghiệm đúng, kể cả trường hợp chứa căn thức, là điều không dễ dàng nữa!Bạn phải giải quyết hàng loạt vấn đề nảy sinh: như trên đã nói, để tách biệtlúc có nghiệm hữu tỷ, lúc

có nghiệm vô tỷ, bạn phải làm cho máy tính hiểu đượcdetal (r)khinào là số chính phương, khi nào là số không chính phương Muốn vậy bạn phảiviết chương trình con về điều này, chẳng hạn: ta có thể đặt tên thủ tục:

Trang 2

Procedure Can(a:integer; varb, c: integer);

ví dụ:

Khi c = 1 thì a là số chínhphương, suy ra phương trình có nghiệm hữu tỷ

Khi c khác 1 thì a không làsố chính phương, suy ra phương trình có nghiệm vô tỷ

Tiếp theo, bạn phải viếtchương trình con để rút gọn phân số, chẳng hạn thủ tục sau:

Procedure Rutgon(a,b:integer; var c, d : integer);

với ví dụ:

Liên quan đến rút gọn phân số(bạn không thể để phân số dưới dạng chưa tối giản), là việc tìm ước số chunglớn nhất của hai số nguyên, vì vậy bạn lại phải viết chương trình con dạng hàm,chẳng hạn như:

Function UCLN (a, b:interger): interger;

với ví dụ: UCLN (6,4) = 2(a=6; b = 4; UCLN = 2)

Trang 3

Bạn đã được học qua phổthông? Bạn đã gặp giải phương trình bậc ba? Bạn không có được thuật giải tửtế như phương trình bậc hai? Bạn phải mò mẫm dự đián nghiệm bằng các phươngpháp đặc biệt, rồi phân tách chúng thành dạng tích để tìm nghiệm? Bạn tìm

đượcnghiệm hay không, thành công hay thất bại, phụ thuộc rất nhiều vào các hệ số đãcho của bài toán! Bạn may mắn thì thành công, bạn không may mắn thì thất bại!Chả dấu gì bạn, ngày còn học phổ thông, cứ gặp giải phương trình bậc 3 là tôithấy nản lòng rồi, vì tôi đâu có được thuật giải về loại này! Bạn đã gặp bàitoán này chưa: chứng minh rằng:

là nghiệm của phương trình :x3 + 2x2 + 3x + 4 (*)

x chứa nhiều lớp căn thế này,làm bạn nản lòng chăng

Nói tóm lại, đúng là ácmộng nếu bạn không được trang bị tốt về kiến thức giải phương trình bậc 3 màvẫn phải đương đầu với nó!

Sách giáo khoa phổ thôngkhông đề cập đên thuật giải tổng quát phương trình bậc 3, có lẽ

do sự phức tạpcủa thuật giải Bạn có thể tìm thấy thuật giải chúng ở một số sách chuyên khảo.Tiện bài viết này tôi cũng xin nêu tóm tắt thuật giải để bạn đọc tiện theo dõi:

Phương trình bậc 3 tổng quátcó dạng: ax3 + b'x2 + c'x + d' = 0 (a khác 0); a, b', c',d' thuộc R)Chia cả hai vế của phươngtrình trên cho a, được:

x3 + bx2+ cx + d = 0 (1)

(2)

Đặt được phương trìnhbậc 3 khuyết x2: X3 + pX+ q = 0

Ta giải phương trình(2) bằng công thức;

Đặt

Nếu delta>0 (2) có 1nghiệm đơn:

Trang 4

Nếu (2) có 3 nghiệm

Từ các nghiệm của (2) ta suyra các nghiệm của (1)

Dựa vào thuật giải phươngtrình bậc 3 trên, bạn có thể viết được chương trình giải phương trình bậc 3 vớicác nghiệm số thực với tuỳ chọn số chữ số thập phân gần đúng, kể cả căn thứchay dạng lượng giác

Vì bài báo có hạn, nên chúngtôi không thể phân tích hết các bước giải Chỉ xin nêu ra 2 chương trình (phiênbản 1 và phiên bản 2 sau) để bạn đọctham khảo:

Với phiên bản 1, bạn có thểtìm nghiệm dễ dàng một phương trình bậc 3 với các hệ số thực tuỳ chọn, số chữsố thập phân của nghiệm cũng tuỳ chọn

Với phiên bản 2, bạn có thểtìm các nghiệm đúng của phương trình bậc 3 với các hệ số nguyên dưới dạng sốhữu tỷ, căn thức bậc 3 hoặc dạng lượng giác; bạn đọc dễ dạng hiểu được bài toánchúng tôi đã nêu ở (*) và nếu cần, bạn còn có vô vàn bài toán tương tự như thế,bởi sự tuyệt vời của các chương trình Tin học: giải quyết tức thời và hàng loạtcác bài toán trong nháy mắt !

Bạn đọc thân mến! Bằng lòngnhiệt tình suốt 30 năm qua, băngd kết quả của 2 phiên bản 1

và 2, giờ đây tôicó thể ăn ngon ngủ yên mà không gặp ác mộng khi giải phương trình bậc 3nữa, vì tôi đã giải được trọn vẹn bài toán Giải phương trình bậc 3 tổng quát bằng Tin học Tôi nghĩ rằng có niềm tin và lòng ham mê khoa học, nhất định côngsức ta bỏ ra sẽ được đền bù! Chúc các bạn trẻ thành công!

Trang 5

Sau đây là toàn bộ chươngtrình bằng Pascal (phiên bản 1):ProgramGiai_phuong_trinh_bac3; {Phien ban 1}

Trang 6

else

begin

t:=3*sqrt(3)*q/(2*p*sqrt(-P));

Trang 7

Writeln('Vao du lieu a, b, c, d = '); Readln(a, b, c, d);

Writeln('Vao so thap phan can lay ='); Readln(w);

Trang 11

if b mod a=0 then

x1:=x div U(x, y);

y1:=y div U(x, y);

a1:=a div y;

b1:=(b+a1*x) div y;

c1:=(c+b1*x) div y;

End;

ProceduceBac2 (a, b, c: longint);

vari, j, dem, x, y, x1, y1, bs, t, a1, b1, c1: longint;

Trang 12

else if a-b+c=0 then

begin writeln('x= -1'); Bac1 (a, c);inc(dem); endelse

begin

for i:= -abs (c) to abs (c) do

for j:= 1 to abs (a) do

if (a*i*i + b*i*j + c*j*j=0) then

writeln('x = ', xdiv y);

Chia (a, b, c, d, x1,y1, a1, b1, c1);

Trang 13

writeln ('x = -',abs(x1),'/', abs(y1));

Chia (a, b, c, d, x1,y1, a1, b1, c1);

Trang 14

writeln('x= - can (' , bs div 4,' )');

writeln( x= + can (' , bs div 4,' )' );

end;

end;

end else

begin

writeln ('x= (' ,-b,' - can (' , bs,' ):' , 2*a);

writeln ('x= (',-b,' + can (' , bs,'):' , 2*a);

ProceduceBac3 (a, b, c, d: longint);

vari, j, dem, x1, y1, a1, b1, c1, x, y: longint;

Trang 15

writeln ('x=', x div y);

Chia (a, b, c, d, x1, y1, a1, b1,c1);

Trang 16

q2:= 27*a*a*a; write('q1=', q1,' /', q2,'='); Xuli1(q1, q2);

f1:=27*a*ă27*a*a*d*d - b*b*c*c + 4*b*b*b*d - 18*a*b*c*d + 4*a*c*c*c);f2:=729*sqr(a*a*a);

write('Delta=', fi,'/', f2,'='); Xuli1(f1, f2);

Trang 17

write('x= can3(('); Xuli3(q1, 2*q2); write('+ can2('); Rutgon(f1, 4*f2);write('))+ can3(('); Xuli3(q1, 2*q2); write('- can2('); Rutgon(f1, 4*f2);write('))'); Xuli2(b, 3*a);

endelse

begin

write('x= can3(('); Xuli3(q1, 2*q2); write ('+ can2('); Rutgon(f1, 4*f2);write(')) + can3(('); Xuli3(q1, 2*q2); write ('- can2('); Rutgon(f1, 4*f2);write('))');

Trang 18

write(') '); if b<>0 thenXuli2 (b, 3*a);

Trang 19

write('Voi cos', chr(224), ' = ' ); Xuli1(3*q1*p2*1, 2*q2*p1);write(') can2('); Rutgon(1, p1);

Trang 20

writeln(' CHUONGTRINH GIAI PHUONG TRINH BAC 3' );

writeln(' Dangax^3 + bx^2 + cx + d = 0 voi a, b, c, d la cac so nguyen ');write(' Vaodu lieu a, b, c, d = ' ); readln(a, b, c, d);

Trang 21

end;End;readlnEND.

Ngày đăng: 10/09/2012, 15:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w