thansk!
nếu cho n=4
for chạy i= 1 đến 4
vd a1=3, a2=4, a3=1, a4=9
khi for j:=1 thì i đến giá trị gì? khi nào vòng lặp này dừng
b[1]:=?
--------------------------------------------
bó tay?
Ô vậy bạn chưa hiểu rồi, thế này:
i sẽ chạy đến 4
j sẽ chạy đến i
=> j sẽ chạy lần lượt các vị trí i.
Khi for j:=1 to i thì giá trị i sẽ thay đổi lần lượt theo giá trị i của vòng for i:=1 to 4 .
Tại sao giá trị i thay đổi ?
Vì vòng for j:=1 to i(1) nằm trong vòng for i:=1 to 4(2) cho nên khi giá trị i trong vòng (2) tăng lên kéo theo giá trị i của vòng (1) tăng .Do đó ta có thể tính tổng i phần tử đầu tiên của mảng a.
Vòng lặp (1) dùng khi i=4,tức là khi giá trị i bằng số phần tử trong mảng a.
khi i=1, thì j:=1 chạy đến 1
=> b[1]:=b[1]+a[j]; mà giá trị ban đầu b[1]=0 => b[1]:=a[j]=a[1]=3.
khi i=2, thì j:=1 chạy đến 2
=> b[2]:=b[2]+a[j] ( cái này lặp 2 lần) mà giá trị ban đầu b[2]=0 =>b[2]:=b[2]+a[1]+a[2] => b[2]:=7
khi i:=3, thì j:=1 chạy đến 3
=>b[3]:=b[3]+a[j] ( cái này lặp 3 lần) mà giá trị ban đầu b[3]=0 =>b[3]:=b[3]+a[1]+a[2]+a[3] => b[3]:=8
khi i:=4, thì j:=1 chạy đến i
b[4]:=b[4]+a[j] ( cái này lặp 4 lần) mà giá trị ban đầu b[4]=0 =>b[4]:=b[4]+a[1]+a[2]+a[3]+a[4] => b[4]:=17
*Nói tóm lại bạn chỉ cần hiểu thế này:
Vòng for i:=1 to n dùng để điều chỉnh vị trí của i ( i là vị trí của các giá trị phần tử trong mảng a)
Vòng for j:=1 to i dùng để tính tổng i phần tử
Bài viết đã được chỉnh sửa nội dung bởi Zz NTL zZ: 28-05-2016 - 09:49