Trả lời cho câu 1:
Note : những cái in đậm là những từ ngữ bắt buộc phải có, còn in nghiêng mà thay thế bằng các biến hoặc giá trị tương ứng
- For...to...do... :
+ Cấu trúc : For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh> ;
Trong đó : <Biến đếm> là các giá trị đã Var (khai báo) nhưng thường là i , j , z .
<Giá trị đầu> và <giá trị cuối> hiểu đơn giản là cho <Biến đếm> "chạy" từ bao nhiêu đến bao nhiêu.. VD : for i:=1 to 10 do thì nó sẽ có 10 vòng lặp "chạy" lần lượt từ 1 đến 10 ..
+ Cách hoạt động : nó sẽ chạy lần lượt vòng lặp từ <giá trị đầu> đến <giá trị cuối> và thực hiện <câu lệnh> tương ứng với mỗi vòng lặp.
VD : For i:=1 to 5 do s:=s+5; vậy...nó sẽ chạy 5 vòng và lần lượt thực hiện lệnh s:=s+5; (tại sao mình không gán s:=0; vì nếu không cho nó giá trị gì nó sẽ mặc định bằng 0 )....cùng xét 5 vòng lặp nhé !!..
Vòng 1: s:=s+5=0+5=5;
Vòng 2: s:=s+5=5+5=10;
Vòng 3: s:=s+5=10+5=15;
Vòng 4: s:=s+5=15+5=20;
Vòng 5: s:=s+5=20+5=25;
=> khi xuất s sau khi thực hiện vòng For...to...do.. như trên thì s=25...
Bài tập For..to..do :
Bài 1 : Nhập n từ bàn phím. Tính tổng các số lẻ từ 1 đến n?
Bài 2 : Nhập n và m từ bán phím. Tính tổng các số lẻ từ n đến m ??
Bài 3 : Nhập n từ bàn phím. Tính tổng các số từ 1 đến n ??
- While...do .. :
+ Cấu trúc : While <điều kiện> do <câu lệnh> ;
Trong đó : <điều kiện> là các phép so sánh > , < , = , >= , <= VD : n>1 , m<=20 , i < n ,....Vân vân ....
<Câu lệnh> giống như ở vòng For ..to..do... ....
+ Cách hoạt động : nó sẽ kiểm tra <câu lệnh> và nếu <câu lệnh> ĐÚNG thì nó mới thực hiện <câu lệnh> và tiếp tục kiểm tra <câu lệnh> nếu ĐÚNG thì thực hiện <câu lệnh> và cứ lặp lại như thế... còn KHÔNG ĐÚNG thì nó sẽ không thực hiện <câu lệnh> nữa và bỏ qua vòng While...do.. để thực hiện câu lệnh tiếp theo hay hiểu CAO SIÊU là break vòng lặp ...Cơ bản là từ vòng While..do.. chúng ta có thể chuyển sang vòng For ..to..do.. và NGƯỢC LẠI.
Ví dụ : từ vòng For i:=1 to 5 do s:=s+5; thì có thể viết lại vòng While...do nó sẽ thành :
i:=1; While (i<=5) do
begin
s:=s+5;
i:=i+1;
end;
Note : phải tăng biến đếm lên để nó còn break (bẻ gãy) vòng lặp nếu không sẽ thành vòng lặp vô hạn đấy !!!!
=> 2 vòng này khá giống nhau Nhưng vòng while...do... sẽ có nhiều tiện lời hơn...xem phần bài tập sẽ biết TIỆN chỗ nào nhé !!!
Bài tập While...do :
Bài 1 : Tính s=1+2+3+4..+n từ bán phím. Tìm số cuối cùng được cộng vào để tổng luôn nhỏ hơn 50,( là tính n đó !!! đầu tiên cho n:=0; sau đó cho tăng dần và đặt điều kiện s<50 cho vòng While ...do... vậy khi vòng While ...do kết thúc chúng tỏ s đã vượt quá 50 và xuất n ra là được)
Bài 2 : Nhập n từ bàn phím . Tính tổng từ 1 đến n (dùng vòng while...do)
- Repeat...until... :
+ Cấu trúc : Repeat <câu lệnh> until <điều kiện> ;
Trong đó : <điều kiện> và <câu lệnh> giống y chang như 2 vòng lặp trên ...
+ Cách hoạt động : Nó sẽ thực hiện <câu lệnh> trước rồi mới kiểm tra <điều kiện> NHƯNG cái vòng lặp này nó ngược lại với While..do nếu <điều kiện> Đúng là nó sẽ bẻ gãy vòng lặp còn Sai thì sẽ quay lại thực hiện <câu lệnh> và cứ tiếp tục lặp lại như thế...
Ví dụ : từ vòng i:=1; While (i<=5) do begin s:=s+5; i:=i+1; end;chúng ta có thể chuyển sang repeat...do.. như sau :
i:=1;
repeat
begin
s:=s+5;
i:=i+1;
end;
until (i>5);
Bài tập Repeat..until :
Bài 1: Nhập n từ bàn phím . Tính tổng các số chẵn từ 1 đến n ??
Bài 2 : Nhập n từ bàn phím . Tính tích từ 1 đến n ??
---------------------------------------------------------------------------------------------------------------------------------------------------
---lời cuối cùng : nếu có gì thắc mắc hãy comment ở dưới, mình sẽ check thông báo thường xuyên, or nếu có facebook hay zalo có thể cho mình xin info chúng ta sẽ dễ dàng trao đổi hơn về vấn đề này---
Bài 2 3 Tối nhé, sắp đi học rồi =)))