HomeChia sẻ

Làm quen với Pascal và scratch qua thuật toán cộng dồn, nhân dồn

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Cộng dồn, nhân dồn là kĩ thuật đầu tiên các bạn cần phải học trong pascal, C, Scratch hay bất kì một ngôn ngữ lập trình nào khác, đây là thuật toán rất cơ bản và nó được dùng hết sức phổ biến trong suốt chặng đường học lập trình, hãy cùng học tập chia sẻ tìm hiểu về thuật toán cộng dồn, nhân dồn trong pascal và scarch nhé.

Nhắc lại về thuật toán cộng dồn, nhân dồn

Thuật toán cộng dồn:

Khởi động biến lưu "Tổng" = 0;
Lặp lại (có điều kiện để thoát vòng lặp) 
"Tổng" = "Tổng" + "Số hạng";
Tới "Số hạng" tiếp theo;
Kết thúc vòng lặp.

Tương tự ta có thuật toán nhân dồn;

Khởi động biến lưu "Tích" = 1;
Lặp lại (có điều kiện để thoát vòng lặp) 
"Tích" = "Tích" * "Thừa số";
Tới "Thừa số" tiếp theo;
Kết thúc vòng lặp.

Một điều hết sức khác biệt giữa hai thuật toán này đó là khởi động biến lưu, trong khi cộng dồn khởi động “Tổng” = 0 thì nhân dồn lại khởi động “Tích” = 1. Các bạn thử nghĩ xem tại sao lại thế?

Sau đây mình sẽ minh họa thuật toán cộng dồn để tính tổng các số tự nhiên từ 1 đến n trong pascal và scratch, với n được người dùng nhập vào.

Thuật toán cộng dồn trong pascal để tính tổng các số từ 1 đến n

Dữ liệu vào file: Sum.inp Dữ liệu ra file: Sum.out
Chứa số n Chứa tổng S

 

var n,i:word; S:longint;f:text;
begin
{----Doc file ----}
	assign(f,'sum.inp'); reset(f);
	readln(f,n);close(f);
{----Tinh S = 1+ 2 +...+n-----}
   	S:=0;
   	for i:=1 to n do S:=S+i;

{----Ghi file ----}
	assign(f,'sum.out'); rewrite(f);
	write(f,S); close(f);
end.

Do mình muốn rèn luyện cho học sinh ngay từ đầu cách nhập xuất từ file vì vậy hầu hết các code mẫu trong Pascal đều như trên hết các bạn nhé.

Thuật toán cộng dồn trong Scratch cho bài toán trên

Ở đây dòng lệnh “lặp lại trả lời lần” tương tự như dòng lệnh “for i:=1 to n do …” trong Pascal, và có một điều khác nữa là trong Pascal biến i đã tự động tăng dần trong vòng lặp, còn ở đây biến i các bạn phải lập trình cho nó tăng thêm 1 qua mỗi vòng lặp qua dòng lệnh ” Thay đổi i một giá trị là 1″.

Dòng lệnh ” Thay đổi S một giá trị là i” tương ứng với lệnh “S:=S+i” trong Pascal.

Các bạn hãy xem chương trình tính tổng từ 1 đến n bằng phương pháp cộng dồn trong scratch thực hiện như thế nào:

Các bạn thấy chương trình trong Scratch hấp dẫn hơn trong Pascal phải không nào, vì vậy mà theo mình các bạn nên học song song giữa Pascal và Scratch để bổ trợ cho nhau, các bạn sẽ thấy thú vị hơn nhiều

Thuật toán nhân dồn thì hoàn toàn tương tự nên mình không viết lại nữa. Các bạn có thể tìm thấy việc áp dụng thuật toán cộng dồn nhân dồn trong rất nhiều các bài toán khác chẳng hạn:

Xin chào và hẹn gặp lại các bạn trong các bài viết sau: Thuật toán kiểm tra số chính phương

File Word hướng dẫn cộng dồn bằng scratch

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *