Vận dụng quy luật lượng chất vào việc giải một số bài toán trong Toán-Tin (phần 4)

· Toán-Tin

2. Tin học

Ví dụ 2. Tính

S = 1 + 2 + 3 + ... + n

GV: Các em thấy nếu n = 1 thì sao ?

HS: Thì S = 1 (Kết quả hay chất mới của S)

GV: Các em thấy nếu n tăng lên bằng 2 thì sao? (sự thay đổi về lượng trong n dẫn tới sự thay đổi về chất trong S)

HS: Thì S = 1+ 2 = 3

GV: Các em còn thấy điều gì nữa tại điểm nút n = 2 ? Có mối liên hệ gì với S tại thời điểm n =1 ?

HS: S hiện tại bằng S trước đó cộng với một lượng bằng 2

Shiện tại = Squá khứ + 2

GV: Các em thấy nếu n tăng lên bằng 3 thì sao ? (sự thay đổi về lượng trong n dẫn tới sự thay đổi về chất trong S)

HS: Thì S = (1 + 2) + 3 = 6

GV: Các em còn thấy điều gì nữa tại điểm nút n = 3? Có mối liên hệ gì với S tại thời điểm n = 2?

HS: S hiện tại bằng S trước đó cộng với một lượng bằng 3

Shiện tại = Squá khứ + 3

GV: Vậy ta có thể mô tả lại quá trình thay đổi này như sau:

Khi:

n=1 dẫn tới S = 1

n=2 dẫn tới S:=S+2

n=3 dẫn tới S:=S+3

n=4 dẫn tới S:=S+4

…….

n=n dẫn tới S:=S+n

GV:

Như vậy ta thấy có sự lặp lại trong khi n thay đổi.

Ở mỗi bước lặp giá trị của S lại được cộng với một lượng bằng n tại thời điểm đó (sự thay đổi về lượng dẫn tới sự thay đổi về chất).

Cho đến khi n = n (điểm nút) thì cho ta kết quả của bài toán (chất mới của S) trên.

GV: Các em nghĩ đến câu lệnh gì khi các em thấy xuất hiện sự lặp lại như vậy cho đến khi một điều kiện nào đó xảy ra?

HS: Câu lệnh for…to…do và câu lệnh while….do thưa thầy.

GV: Tốt lắm! Các em có thể lên bảng viết chương trình cho thầy được không?

HS:

Chương trình Pascal sử dụng câu lệnh for…to….do

Program Tinh_S;

Uses  Crt;

Var i,S:Integer;

Begin

Write(‘Nhap n =’);

{Nhập giá trị n từ bàn phím của máy tính}

Readln(n);

S:=0;

{Sự thay đổi giá trị của i dẫn tới sự thay đổi giá trị của S. Cho biến i chạy từ một đến n thì thực hiện công việc S:=S+i}

For i:=1 to n do S:=S+i;

{Đưa kết quả của S ra màn hình}

Write(‘Ket qua S =’,S);

Readln;

End.

Chương trình Pascal sử dụng câu lệnh while-do

Program Tinh_S;

Uses  Crt;

Var i,S:Integer;

Begin

Write(‘Nhap n =’);

{Nhập giá trị n từ bàn phím của máy tính}

Readln(n);

S:=0;i:=1;

{Sự thay đổi giá trị của i dẫn tới sự thay đổi giá trị của S. Trong khi i còn nhỏ hơn hoặc bằng n thì thực hiện công việc S:=S+i, sau đó cho i tăng lên cho đến khi nào bằng n thì ta thu được kết quả cần tìm}

While i<=n do

Begin

S:=S+i;

i:=i+1;

End;

Write(‘Ket qua S =’,S);

Readln;

End.

 

 

 

 

 

 

 

 

 

 

 

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: