Bài tập luyện tập môn Tin học 8 - Bài 6-8 - Phạm Tuấn Anh

1 Nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước!

2 Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó!

a) Thuật toán 1

Bước 1. S 10, x 0.5.

Bước 2. Nếu S 5.2, chuyển tới bước 4.

Bước 3. S S x và quay lại bước 2.

Bước 4. Thông báo S và kết thúc thuật toán.

b) Thuật toán 2

Bước 1. S 10, n 0.

Bước 2. Nếu S ≥ 10, chuyển tới bước 4.

Bước 3. n n + 3, S S n quay lại bước 2.

Bước 4. Thông báo S và kết thúc thuật toán.

Cho nhận xét của em!

 

doc5 trang | Chia sẻ: xuannguyen98 | Lượt xem: 448 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài tập luyện tập môn Tin học 8 - Bài 6-8 - Phạm Tuấn Anh, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bài 6
Em hãy nêu một vài ví dụ về các hoạt động hằng ngày phụ thuộc vào điều kiện.
Sau mỗi câu lệnh sau đây
if (45 mod 3)=0 then X:=X+1;
if X>10 then X:=X+1; 
giá trị của biến X sẽ là bao nhiêu, nếu trước đó giá trị của X bằng 5?
Có thể nêu rất nhiều vài ví dụ về các hoạt động hằng ngày phụ thuộc vào điều kiện. Dưới đây là một số ví dụ:
Nếu không được cắm điện, máy tính để bàn của em sẽ không hoạt động được.
a) Vì 45 chia hết cho 3, điều kiện được thỏa mãn nên giá trị của X được tăng lên 1, tức bằng 6; b) Điều kiện không được thỏa mãn nên câu lệnh không được thực hiện, tức X giữ nguyên giá trị 5.
Bài 7
Hãy cho biết tác dụng của câu lệnh lặp!
khi thực hiện các hoạt động lặp, kiểm tra một điều kiện. Với lệnh lặp 
for := to do ;
của Pascal, điều kiện cần phải kiểm tra là gì?
Chương trình Pascal sau đây thực hiện hoạt động nào?
var i: integer;
begin
for i:=1 to 1000 do;
end.
Hãy mô tả thuật toán để tính tổng sau đây (n là số tự nhiên được nhập vào từ bàn phím):
A = 
Câu lệnh lặp có tác dụng làm đơn giản và giảm nhẹ công sức của người viết chương trình!
Chúng ta nói rằng khi thực hiện các hoạt động lặp, chương trình kiểm tra một điều kiện. Với lệnh lặp 
for := to do ;
của Pascal, điều kiện cần phải kiểm tra chính là giá trị của biến đếm lớn hơn giá trị cuối. Nếu điều kiện không được thỏa mãn, câu lệnh được tiếp tục thực hiện; ngược lại, chuyển sang câu lệnh tiếp theo trong chương trình.
Tuy có vòng lặp 1000 lần, nhưng chương trình Pascal nói trên không thực hiện bất kì một hoạt động nào. Tuy nhiên đây vẫn là câu lệnh hợp lệ.
Thuật toán tính tổng
A = 
Bước 1. Gán 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.
Bài 8. 
Nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước!
Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó!
a) Thuật toán 1
Bước 1. S ơ 10, x ơ 0.5.
Bước 2. Nếu S Ê 5.2, chuyển tới bước 4.
Bước 3. S ơ S - x và quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
b) Thuật toán 2
Bước 1. S ơ 10, n ơ 0.
Bước 2. Nếu S ≥ 10, chuyển tới bước 4.
Bước 3. n ơ n + 3, S ơ S - n quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
Cho nhận xét của em!
Hãy tìm hiểu các cụm câu lệnh sau đây và cho biết với các câu lệnh đó chương trình thực hiện bao nhiêu vòng lặp? Hãy rút ra nhận xét của em!
S:=0; n:=0;
while S<=10 do
 begin n:=n+1; S:=S+n end;
S:=0; n:=0;
while S<=10 do
 n:=n+1; S:=S+n;
Hãy chỉ ra lỗi trong các câu lệnh sau đây:
X:=10; while X:=10 do X:=X+5;
X:=10; while X=10 do X=X+5;
S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n;
Có thể nêu rất nhiều vài ví dụ về các hoạt động lặp với số lần lặp chưa biết trước. Dưới đây là một số ví dụ:
Tìm một từ nhất định bị gõ sai chính tả trong văn bản và sửa lại cho đúng. Số từ cần phải sửa chưa được biết trước.
Mô tả thuật toán:
Bước 1. Đặt S ơ R (S là bán kính đường tròn sẽ vẽ), n ơ 0, x ơ 0.5. 
Bước 2. Nếu S < 1.2, chuyển tới bước 4.
Bước 3. Vẽ đường tròn bán kính S, S ơ S - x và quay lại bước 2. 
Bước 4. Kết thúc thuật toán.
a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng:
S:=10; x:=0.5;
while S>5.2 do S:=S-x;
writeln(S);
b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng:
S:=10; n:=0;
while S<10 do
 begin n:=n+3; S:=S-n end;
writeln(S);
Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do.
a) Chương trình thực hiện 5 vòng lặp. b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn.
Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while..do thường là câu lệnh ghép.
Bài 9
Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình.
Các khai báo biến mảng sau đây trong Pascal đúng hay sai:
var X: Array[10,13] Of Integer; 
var X: Array[5..10.5] Of Real; 
var X: Array[3.4..4.8] Of Integer; 
var X: Array[10..1] Of Integer; 
var X: Array[4..10] Of Real; 
Câu lệnh khai báo mảng sau đây có được máy tính thực hiện không?
 var N: integer;
 A: array[1..N] of real;
Viết chương trình Pascal sử dụng mảng để nhập từ bàn phím các phần tử của một dãy số. Độ dài của dãy cũng được nhập từ bàn phím.
.
Lợi ích chính của việc sử dụng biến mảng là rút gọn việc viết chương trình, có thể sử dụng câu lệnh lặp để thay nhiều câu lệnh. Ngoài ra chúng ta còn có thể lưu trữ và xử lí nhiều dữ liệu có nội dung liên quan đến nhau một cách hiệu quả.
Đáp án a) Sai. Phải thay dấu phảy bằng hai dấu chấm; b) và c) Sai, vì giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải là số nguyên; d) Sai, vì giá trị đâu của chỉ số mảng phải nhỏ hơn hoặc bằng chỉ số cuối; e) Đúng.
Không. Giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải được xác định trong phần khai báo chương trình.
Chương trình có thể như sau:
uses crt;
var N, i: integer;
 A: array[1..100] of real;
begin
clrscr;
write(’Nhap so phan tu cua mang, n= ’); readln(n);
for i:=1 to n do
 begin
 write(’Nhap gia tri ’,i,’cua mang, a[’,i,’]= ’);
 read(a[i])
 end;
end.

File đính kèm:

  • docBai_1_May_tinh_va_chuong_trinh_may_tinh.doc