PDA

View Full Version : Tại sao cần lệnh gán khởi tạo giá trị



lehang_gb1
26-12-2009, 21:29
Tại sao cần lệnh gán khởi tạo giá trị

--------------------------------------------------------------------------------

Hầu hết các chương trình đều cần lệnh gán giá trị ban đầu?Các bạn hãy giải thích tại sao

VD: Tính tổng các số từ 1 đến 100
Trong chương trình tại sao cần lệnh gán S:=0 mà bỏ lệnh gán đó kết quả vẫn đúng
Var i,S:integer;
Begin
S:=0;
For i:=1 to 100 do S:=S+i;
write('S=',S);
Readln
End;
Mình có đọc sách thì cần lệnh khởi tạo giá trị ban đầu cho S:=0 vì có thể ở các chương trình trước để lại kết quả S<>0 thì dẫn đến kq bị sai. Nhưng mình có thử thì không cần lệnh gán kq vẫn đúng

QuyNam
26-12-2009, 21:32
lệnh gán s:=0 không cần thiết vì khi khởi động một chương trình pascal thì nó sẽ thiết lập lại các giá trị của biến về 0, kể cả mảng.

lehang_gb1
26-12-2009, 21:37
thế tại sao các chương trình đều cần lệnh gán
ví dụ dùng biến đếm thì dem:=0;
biến tổng thì tong:=0;
hay kiểu xâu biến xâu s:='' {Khởi tạo xâu S là rỗng}

B&W
26-12-2009, 22:31
Nên tạo thói quen tốt là khởi tạo biến trước khi dùng. Đơn giản vì mỗi ngôn ngữ lập trình có qui định riêng của nó.
Pascal có thể cho giá trị mặc định khi khai báo một biến là 0, còn VB, java... có để giá trị mặc định là 0 hay không?
Bạn có chắc là mình sẽ chỉ làm việc trên Pascal không?

songohan2009
26-12-2009, 22:43
Bạn í đang hỏi về Pascal thì đương nhiên là đang làm việc trên Pascal. (:|

Mấy trò khởi gán s := 0 trong các chương trình đơn giản là ko cần thiết.
Mặc định Pascal sẽ khởi gán biến trong chương trình chính bằng 0 với mọi số nguyên và số thực, xâu kí tự sẽ là rỗng. Tuy nhiên, nếu làm việc với chương trình con thì mỗi biến sẽ nhận 1 giá trị random, do đó cần tới việc khởi tạo.
Ngoài ra, nếu làm bài tập mà bắt xử lý lại nhiều lần thì cần khởi tạo để tránh việc sai do kết quả của lần tính trước được cộng vào lần tính tiếp theo.

B&W
26-12-2009, 22:54
Bạn í đang hỏi về Pascal thì đương nhiên là đang làm việc trên Pascal. (:|

Mấy trò khởi gán s := 0 trong các chương trình đơn giản là ko cần thiết.
Mặc định Pascal sẽ khởi gán biến trong chương trình chính bằng 0 với mọi số nguyên và số thực, xâu kí tự sẽ là rỗng. Tuy nhiên, nếu làm việc với chương trình con thì mỗi biến sẽ nhận 1 giá trị random, do đó cần tới việc khởi tạo.
Ngoài ra, nếu làm bài tập mà bắt xử lý lại nhiều lần thì cần khởi tạo để tránh việc sai do kết quả của lần tính trước được cộng vào lần tính tiếp theo.

Coi bộ chú này không hiểu ý ta rồi.

bulong30
26-12-2009, 23:00
Coi bộ chú này không hiểu ý ta rồi.

Nói đúng đấy nhưng ăn nói to tát quá nhỉ?

QuyNam
27-12-2009, 07:47
việc gán chỉ sử dụng khi cần đặt lại giá trị biến sau một quá trình tính toán. Những phép gán mà trước đó biến cần gán ko bị thay đổi giá trị coi như vô nghĩa. mình đồng ý với B&W, nên tạo thói quen trong lập trình.

jiSh@n
27-12-2009, 08:05
Ko chỉ là tạo thói quen. Pascal nó chỉ reset các biến trong main program (chính xác là biến trong stack), còn trong procedure/function (biến trong heap) thì ko, do đó ko khởi tạo biến là no đòn.

songohan2009
27-12-2009, 18:28
Nếu bạn là 1 coder đã làm nhiều bài toán (tham gia nhiều Online Judge) thì bạn sẽ thấy khó chịu khi khởi gán những giá trị ko cần thiết bởi nó làm chương trình thêm cồng kềnh, rối mắt, nhiều lúc Debug nhìn toét mắt. Chả dại j` khi code lại nhét thêm ~10-15 dòng khởi tạo vào. Code càng ngắn (dĩ nhiên là đúng + đủ, ko quá tắt) thì càng khó sai. Còn khi bạn đã là coder chuyên nghiệp rồi thì lúc làm bạn sẽ tự biết cần khởi gán lúc nào. Còn những phép khởi gán như trên chỉ nên cho vào code của n~ cuốn sách hướng dẫn học Tin Học để giúp ng` đọc hiểu thêm.