Cách tính các biến của lệnh for..do trong pascal 14/07/2021 Bởi Kinsley Cách tính các biến của lệnh for..do trong pascal
Cách tính giá trị của các biến trong câu lệnh của for…do không theo 1 cách tính cụ thể, cũng chỉ có thể lấy ra giấy nháp và tính Với một số bài có thể tính được giá trị: VD: S:=0; for i:=1 to 5 do S:=S+2; thì ta thấy S tăng thêm 2 đơn vị 5 lần `=>` S=0+5*2=10 Nhưng một số bài lại không như vậy S:=0; for i:=1 to 5 do S:=S+i; Ta chỉ có thể lấy S:=0+1+2+3+4+5 Và có một số bài phức tạp hơn thế nữa S:=0; j:=0; for i:=1 to 5 do begin j:=j*2+i; S:=S+j; end; ta không thể tính theo 1 công thức nào được mà phải làm ra giấy: S=0; j=0; i=1; j=j*2+i=0*2+1=1; S=S+j=0+1=1 i=2; j=j*2+i=1*2+2=4; S=S+j=1+4=5 i=3; j=j*2+i=4*2+3=11; S=S+j=5+11=16 i=4; j=j*2+i=11*2+4=26; S=S+j=16+26=42 i=5; j=j*2+i=26*2+5=57; S=S+j=42+57=99 Như vậy ta chỉ có thể tùy trường hợp để tính, cái nào có thể không cần nháp thì tính theo công thức Bình luận
Cách tính giá trị của các biến trong câu lệnh của for…do không theo 1 cách tính cụ thể, cũng chỉ có thể lấy ra giấy nháp và tính
Với một số bài có thể tính được giá trị:
VD: S:=0; for i:=1 to 5 do S:=S+2;
thì ta thấy S tăng thêm 2 đơn vị 5 lần `=>` S=0+5*2=10
Nhưng một số bài lại không như vậy
S:=0; for i:=1 to 5 do S:=S+i;
Ta chỉ có thể lấy S:=0+1+2+3+4+5
Và có một số bài phức tạp hơn thế nữa
S:=0; j:=0;
for i:=1 to 5 do
begin
j:=j*2+i;
S:=S+j;
end;
ta không thể tính theo 1 công thức nào được mà phải làm ra giấy:
S=0; j=0;
i=1; j=j*2+i=0*2+1=1; S=S+j=0+1=1
i=2; j=j*2+i=1*2+2=4; S=S+j=1+4=5
i=3; j=j*2+i=4*2+3=11; S=S+j=5+11=16
i=4; j=j*2+i=11*2+4=26; S=S+j=16+26=42
i=5; j=j*2+i=26*2+5=57; S=S+j=42+57=99
Như vậy ta chỉ có thể tùy trường hợp để tính, cái nào có thể không cần nháp thì tính theo công thức
Tính lấy giá trị cuối trừ giá trị đầu +1