Bài 7. Câu lệnh lặp
Chia sẻ bởi Nguyễn Thị Thanh Vân |
Ngày 24/10/2018 |
60
Chia sẻ tài liệu: Bài 7. Câu lệnh lặp thuộc Tin học 8
Nội dung tài liệu:
Tập thể lớp Tin 8
Kính chào quý thầy cô!
Câu lệnh lặp
Bài 7
Đối với từng đoạn chương trình Pascal sau đây, hãy cho biết lệnh writeln in ra màn hình giá trị của i, j và k là bao nhiêu?
Đoạn CT 3:
j:= 3 ; k:= 2 ;
for i:=1 to 6 do
if i mod 2 = 0 then
begin
j:= j + 1 ;
k:= k + j ;
end;
write(`j= `, j ,`; k= `,k);
Đoạn CT 2:
j:= 3 ; k:= 2 ;
for i:=1 to 6 do
begin
j:= j + 1 ;
k:= k + j ;
end ;
write(`j= `, j ,`; k= `,k);
Đoạn CT 1:
j:= 3 ; k:= 2 ;
for i:=1 to 6 do
j:= j + 1 ;
k:= k + j ;
write(`j= `, j ,`; k= `,k) ;
i = 6 ; j = 9 ; k = 11
i = 6 ; j = 9 ; k = 41
i = 6 ; j = 6 ; k = 17
Các câu lệnh Pascal sau đây có hợp lệ không, vì sao?
For i : = 100 to 1 do writeln(‘A’) ;
For i : = 1.5 to 10.5 do writeln(‘A’) ;
For i = 1 to 10 do writeln(‘A’) ;
For i : = 1 to 10 do ; writeln(‘A’) ;
Var x : real ; begin for x :=1 to 10 do writeln(‘A’) ; end.
Trong câu lệnh lặp for i:=1 to 10 do begin … end;
Câu lệnh ghép được thực hiện bao nhiêu lần?
A. Không lần nào B. 1 lần
C. 2 lần D. 10 lần
Sau khi thực hiện đoạn CT Pasacl sau:
For i:=0 to 10 do
Begin
……………..
End;
Giá trị của i là bao nhiêu?
A. 0 B. 10 C. 11 D. Không xác định
Giá trị biến đếm của vòng lặp sau khi thoát khỏi vòng lặp là tùy thuộc vào mỗi chương trình dịch. Người lập trình có thể sử dụng lại biến này bằng cách khởi tạo lại giá trị cho nó nhưng không nên sử dụng giá trị của nó ngay sau vòng lặp.
Sau khi thực hiện đoạn CT Pascal:
x:=1;
For i:=1 to m do
Begin
y:= x ;
x:= y – 1 ;
End;
Chúng ta sẽ nhận được kết quả nào dưới đây?
A. x = x – m ; B. x = i – x ;
C. x:= x – i ; D. i = 0 và x = y – 1 ;
Trong lệnh lặp for … to … do của Pascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào?
A. +1 B. +1 hoặc -1
C. Một giá trị bất kì D. Một giá trị khác 0.
Bổ sung kiến thức:
Ta đã biết sau mỗi vòng lặp của lệnh lặp for … to … do biến đếm được tăng lên 1.
Ngoài lệnh trên, Pascal còn có câu lệnh lặp dạng:
For:= downto do ;
Trong đó, sau mỗi vòng lặp biến đếm lại giảm đi 1.
Hãy mô tả thuật toán để tính tổng sau đây:
Thuật toán:
Bước 1: A 0, i 1 .
Bước 2: A
Bước 3: i i + 1.
Bước 4: Nếu i ≤ n, quay lại bước 2.
Bước 5: Ghi kết quả A và kết thúc thuật toán.
Em hãy viết chương trình tính tổng các số nguyên liên tiếp từ n đến m với n, m là các số nguyên dương nhập vào từ bàn phím .
Gợi ý :
Tìm input,output ?
Khai báo các biến nào? Kiểu dữ liệu gì?
- Nhập vào từ bàn phím giá trị cho biến nào?
Tìm thuật toán của chương trình?
- Sử dụng các câu lệnh gì để viết chương trình?
Hướng dẫn:
- Input: n, m ; Output : Tổng S
- Khai báo biến : n, m, S, i kiểu Word
- Nhập giá trị vào từ bàn phím cho biến n và m
- Thuật toán : Cho biến đếm i chạy từ n đến m ,n: Nếu I <= m thì tổng S:= S + i
- Sử dụng câu lệnh Write, Readln, For..to..do
Trả lời:
Program tinh_tong;
Uses crt;
Var m, n, i: integer;
S: longint;
Begin
write (‘Nhap n = ‘); readln(n);
write (‘Nhap m = ‘); readln(m);
S:=0;
For i:= n to m do
S:= S + i;
Writeln (‘Tong cua S = ’,s);
Readln
End.
Viết chương trình tính tổng các số chẵn, lẻ từ 1 đến n với n nhập từ bàn phím.
Viết chương trình để tìm tất cả các số Py-ta-go trong khoảng (1 ; 32000).
BT 7.6 , 7.11 , 7.12 , 7.13 SBT tr. 60-62.
program so_chanle;
uses crt;
var x,y,i,s,s1 : integer;
begin
clrscr;
write(`Nhap x = `);readln(x);
write(`Nhap y = `);readln(y);
for i:=x to y do
if i mod 2 = 0 then
s:=s+i;
write(`Tong cac so chan tu `,x,` den `,y,` la `,s);
writeln;
for i:=x to y do
if i mod 2 <> 0 then
s1:=s1+i;
write(`Tong cac so le tu `,x,` den `,y,` la `,s1);
readln
end.
Tổng các số chẵn, lẻ từ 1 đến n, với n nhập từ bàn phím.
program so_pytago;
uses crt;
var n,k,i : integer;
begin
clrscr;
write(`Nhap n = `) ; readln(n);
if n <= 2 then
writeln(`So nhap vao khong hop le, n <= 2`)
else
begin
i:= 0;
for k:=3 to n do
if k*k = (k-2)*(k-2) + (k-1)*(k-1) then
begin
i:= i+1;
writeln( `(‘ , k-2 , `,‘ , k-1, `,‘ , k , ‘)‘ ) ;
end;
writeln( `trong khoang (1,‘ ,n, ‘) co ‘ ,i, ` so Pytago‘ );
end;
readln
end.
2. Tìm tất cả các số Py-ta-go trong khoảng (1 ; 32000).
Kính chào quý thầy cô!
Câu lệnh lặp
Bài 7
Đối với từng đoạn chương trình Pascal sau đây, hãy cho biết lệnh writeln in ra màn hình giá trị của i, j và k là bao nhiêu?
Đoạn CT 3:
j:= 3 ; k:= 2 ;
for i:=1 to 6 do
if i mod 2 = 0 then
begin
j:= j + 1 ;
k:= k + j ;
end;
write(`j= `, j ,`; k= `,k);
Đoạn CT 2:
j:= 3 ; k:= 2 ;
for i:=1 to 6 do
begin
j:= j + 1 ;
k:= k + j ;
end ;
write(`j= `, j ,`; k= `,k);
Đoạn CT 1:
j:= 3 ; k:= 2 ;
for i:=1 to 6 do
j:= j + 1 ;
k:= k + j ;
write(`j= `, j ,`; k= `,k) ;
i = 6 ; j = 9 ; k = 11
i = 6 ; j = 9 ; k = 41
i = 6 ; j = 6 ; k = 17
Các câu lệnh Pascal sau đây có hợp lệ không, vì sao?
For i : = 100 to 1 do writeln(‘A’) ;
For i : = 1.5 to 10.5 do writeln(‘A’) ;
For i = 1 to 10 do writeln(‘A’) ;
For i : = 1 to 10 do ; writeln(‘A’) ;
Var x : real ; begin for x :=1 to 10 do writeln(‘A’) ; end.
Trong câu lệnh lặp for i:=1 to 10 do begin … end;
Câu lệnh ghép được thực hiện bao nhiêu lần?
A. Không lần nào B. 1 lần
C. 2 lần D. 10 lần
Sau khi thực hiện đoạn CT Pasacl sau:
For i:=0 to 10 do
Begin
……………..
End;
Giá trị của i là bao nhiêu?
A. 0 B. 10 C. 11 D. Không xác định
Giá trị biến đếm của vòng lặp sau khi thoát khỏi vòng lặp là tùy thuộc vào mỗi chương trình dịch. Người lập trình có thể sử dụng lại biến này bằng cách khởi tạo lại giá trị cho nó nhưng không nên sử dụng giá trị của nó ngay sau vòng lặp.
Sau khi thực hiện đoạn CT Pascal:
x:=1;
For i:=1 to m do
Begin
y:= x ;
x:= y – 1 ;
End;
Chúng ta sẽ nhận được kết quả nào dưới đây?
A. x = x – m ; B. x = i – x ;
C. x:= x – i ; D. i = 0 và x = y – 1 ;
Trong lệnh lặp for … to … do của Pascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào?
A. +1 B. +1 hoặc -1
C. Một giá trị bất kì D. Một giá trị khác 0.
Bổ sung kiến thức:
Ta đã biết sau mỗi vòng lặp của lệnh lặp for … to … do biến đếm được tăng lên 1.
Ngoài lệnh trên, Pascal còn có câu lệnh lặp dạng:
For
Trong đó, sau mỗi vòng lặp biến đếm lại giảm đi 1.
Hãy mô tả thuật toán để tính tổng sau đây:
Thuật toán:
Bước 1: A 0, i 1 .
Bước 2: A
Bước 3: i i + 1.
Bước 4: Nếu i ≤ n, quay lại bước 2.
Bước 5: Ghi kết quả A và kết thúc thuật toán.
Em hãy viết chương trình tính tổng các số nguyên liên tiếp từ n đến m với n, m là các số nguyên dương nhập vào từ bàn phím .
Gợi ý :
Tìm input,output ?
Khai báo các biến nào? Kiểu dữ liệu gì?
- Nhập vào từ bàn phím giá trị cho biến nào?
Tìm thuật toán của chương trình?
- Sử dụng các câu lệnh gì để viết chương trình?
Hướng dẫn:
- Input: n, m ; Output : Tổng S
- Khai báo biến : n, m, S, i kiểu Word
- Nhập giá trị vào từ bàn phím cho biến n và m
- Thuật toán : Cho biến đếm i chạy từ n đến m ,n: Nếu I <= m thì tổng S:= S + i
- Sử dụng câu lệnh Write, Readln, For..to..do
Trả lời:
Program tinh_tong;
Uses crt;
Var m, n, i: integer;
S: longint;
Begin
write (‘Nhap n = ‘); readln(n);
write (‘Nhap m = ‘); readln(m);
S:=0;
For i:= n to m do
S:= S + i;
Writeln (‘Tong cua S = ’,s);
Readln
End.
Viết chương trình tính tổng các số chẵn, lẻ từ 1 đến n với n nhập từ bàn phím.
Viết chương trình để tìm tất cả các số Py-ta-go trong khoảng (1 ; 32000).
BT 7.6 , 7.11 , 7.12 , 7.13 SBT tr. 60-62.
program so_chanle;
uses crt;
var x,y,i,s,s1 : integer;
begin
clrscr;
write(`Nhap x = `);readln(x);
write(`Nhap y = `);readln(y);
for i:=x to y do
if i mod 2 = 0 then
s:=s+i;
write(`Tong cac so chan tu `,x,` den `,y,` la `,s);
writeln;
for i:=x to y do
if i mod 2 <> 0 then
s1:=s1+i;
write(`Tong cac so le tu `,x,` den `,y,` la `,s1);
readln
end.
Tổng các số chẵn, lẻ từ 1 đến n, với n nhập từ bàn phím.
program so_pytago;
uses crt;
var n,k,i : integer;
begin
clrscr;
write(`Nhap n = `) ; readln(n);
if n <= 2 then
writeln(`So nhap vao khong hop le, n <= 2`)
else
begin
i:= 0;
for k:=3 to n do
if k*k = (k-2)*(k-2) + (k-1)*(k-1) then
begin
i:= i+1;
writeln( `(‘ , k-2 , `,‘ , k-1, `,‘ , k , ‘)‘ ) ;
end;
writeln( `trong khoang (1,‘ ,n, ‘) co ‘ ,i, ` so Pytago‘ );
end;
readln
end.
2. Tìm tất cả các số Py-ta-go trong khoảng (1 ; 32000).
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Thị Thanh Vân
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)