2 bác trên đều có sự nhầm lẫn
- readln đúng là để nhập dữ liệu, nhưng cú pháp dạng đó là : readln(<tên biến cần nhập giá trị>);
còn readln trước end. là câu lệnh để người sử dụng chương trình có thể xem lại toàn bộ những gì mình đã làm với chương trình và chương trình đem lại cho mình. câu lệnh trước end đó có nghĩa là: nếu nhấn enter chương trình mới tiếp tục, chưa nhấn thì chương trình sẽ dừng lại ngang đó, mà nó được đưa vào gần cuối chương trình thì khi nhấn enter chương trình sẽ kết thúc, lệnh này không chỉ đưa vào gần cuối chương trình mà có thể đưa vào bất kì phần nào của phần chính của chương trình
- câu lệnh ghép: sau phần then và else của câu lệnh if...then...else, bạn muốn nó thực hiện nhiều việc cùng lúc thì đo là lúc bạn nghĩ đến câu lệnh ghép, ngoài ra sau phần do của câu lệnh for ...to... do, for...downt...do, while....do.....,..... bạn cũng có thể sử dụng câu lệnh ghép nếu bạn muốn nó thực hiện nhiều lệnh cùng lúc, thực chất chương trình chính (begin....end
.) cũng là một khối lệnh. Cau lệnh ghép có cú pháp:
begin
//các câu lệnh
end
;
NHớ là dấu ; không phải dấu . nhé
- for to do: là câu lệnh vòng lặp có xác định trước số lần lặp,
cú pháp: for <biến>:=<đầu> to <cuối> do <công việc>;
số lần lặp : <cuối>-<đầu>+1
còn while<điều kiện> do <câu lênh> mới là câu lệnh lặp có điều kiện anh trà nhé

Còn về vấn đề khi nào thì sử dụng, bạn nên hiểu rõ cách thức hoạt động của từng câu lệnh, rồi tùy vào thuật toán, giải thuật mà đưa vào. Nếu từng câu lệnh bạn làm nhiều bài tập liên quan đến nó, bạn sẽ sử dụng nó như một phản xạ tự nhiên