ĐỀ CƯƠNG ÔN TẬP TIN HỌC 8 – HỌC KỲ II
NĂM HỌC: 2016 – 2017
Câu 1: Cho chương trình sau (bằng Turbo Pascal):
Begin {1}
Write(‘Tong cac so chan nho hon 50 la:’,t ); {2}
While i<50 do {3}
Begin {4}
If i mod 2 =0 then {5}
t:=t + i; {6}
i:=i+1; {7}
end; {8}
Uses crt; {9}
Var i, t:integer; {10}
i:=1; t:=0; {11}
Clrscr; {12}
Readln; {13}
End. {14}
a.) Chương trình trên bị sai về vị trí các dòng {2}, {9}, {10}, {11}, {12}, hãy sắp xếp lại vị trí của các dòng này để được chương trình đúng.
b.) Hãy cho biết công dụng của chương trình trên.
HƯỚNG DẪN TRẢ LỜI:
a.) Sắp xếp vị trí các dòng lệnh:
Uses crt; {9}
Var i, t:integer; {10}
Begin
Clrscr; {12}
i:=1; t:=0; {11}
While i<50 do
Begin
If i mod 2 =0 then
t:=t + i;
i:=i+1;
end;
Write(‘Tong cac so chan nho hon 50 la:’,t ); {2}
Readln;
End.
b.) Dùng để tính tổng các số chẳn có trong dãy số từ 1 đến 49.
Câu 2: Trình bày cú pháp và hoạt động của vòng lặp xác định?
HƯỚNG DẪN TRẢ LỜI:
* Cú pháp:
For := to do ;
* Hoạt động của vòng lặp:
- B1: Biến đếm nhận giá trị đầu
- B2: Chương trình kiểm tra biểu thức điều kiện, nếu biểu thức điều kiện đúng thì thực hiện câu lệnh.
- B3: Biến đếm tự động tăng lên 1 đơn vị và quay lại B2.
- B4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát ra khỏi vòng lặp.
Câu 3: Giả sử có bài toán sau: “Tìm bội số chung nhỏ nhất của hai số nguyên dương”. Dựa vào bài toán này, học sinh hãy xây dựng thuật toán và cho nhận xét về giải thuật của bài toán trên?.
HƯỚNG DẪN TRẢ LỜI:
Thuật toán tìm bội số chung nhỏ nhất của hai số nguyên dương:
Lấy một trong hai số lần lượt nhân với 1, 2, 3,... cho đến khi nào tích số chia hết cho số thứ hai thì tích số chính là BSCNN
Nhận xét:
- Thuật toán cho thấy là trong quá trình tính toán, không thể biết trước được quá trình nhân phải thực hiện lặp lại bao nhiêu lần. Trường hợp này phải sử dụng cấu trúc lặp với số lần lặp không xác định.
- Điều kiện để dừng là tích số chia hết cho số thứ hai.
Câu 4: Bằng ngôn ngữ Pascal, học sinh hãy viết đoạn code chương trình tính tổng các số tự nhiên từ 100 đến 1000?
HƯỚNG DẪN TRẢ LỜI:
Program tinh_tong;
Var i, S: Integer;
Begin
i:= 100;
S:= 0;
While i > 1000 do
Begin
S:= S + i;
i:= i + 1;
End;
Writeln(‘ Tong cac so tu nhien tu 100 den 1000 la: ’,S);
Readln;
End.
Câu 5: Trình bày cú pháp câu lệnh có hoạt động lặp không xác định? Cho biết nguyên lý hoạt động và nhận xét về câu lệnh lặp không xác định?
HƯỚNG DẪN TRẢ LỜI:
* Cú pháp lệnh lặp có hoạt động không xác định:
While do ;
Trong đó:
+ while, do là các từ khóa, Điều kiện trả về 1 trong 2 giá trị đúng hoặc sai.
+ Câu lệnh là thân chương trình và có thể là câu lệnh đơn hoặc câu lệnh ghép.
* Nguyên lý hoạt động của lệnh lặp không xác định:
1. Xác định giá trị của điều kiện.
2. Tuỳ thuộc vào giá trị của điều kiện:
- Nếu điều kiện có giá trị đúng, thực hiện câu lệnh, sau đó quay lại bước 1.
- Nếu điều kiện có giá trị sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
* Nhận xét câu lệnh lặp không xác định:
- Câu lệnh được thực hiện lặp đi lặp lại cho đến khi nhận giá trị sai. Câu lệnh sẽ không được thực hiện lần nào nếu nhận giá trị sai ngay từ khi bắt đầu vào chu trình.
- Trong thân chu trình phải có câu lệnh làm thay đổi giá trị của để tránh xảy ra vòng lặp vô tận.
Câu 6: Bằng ngôn ngữ Pascal, học sinh hãy nhận xét và viết đoạn code chương trình tính tổng
HƯỚNG DẪN TRẢ LỜI:
Nhận xét:
- Trong biểu thức trên, số hạng thứ i của tổng có thể tính được theo công thức S(i) = 1/i (i=1,2,...,n)
- Trường hợp này có thể sử dụng được số lần lặp ð Chọn vòng lặp FOR.
Chương trình:
Var i, n : Integer; S:Real;
Begin
Write('Hay nhap vao so nguyen n=');
Readln(n);
S:=0;
For i:=1 to n do
S:= S + 1 / i;
Writeln( ' Tong S =', S : 6 : 2 );
Readln;
End.
Câu 7: Cấu trúc rẻ nhánh có mấy dạng? Hãy vẽ sơ đồ các dạng cấu trúc rẻ nhánh?
HƯỚNG DẪN TRẢ LỜI:
Dạng thiếu:
IF THEN ;
Dạng đầy đủ:
IF THEN ELSE ;
Câu 8: Cấu trúc khai báo kiểu mảng trong pascal và nêu các lợi ích của việc sử dụng biến mảng trong chương trình?
HƯỚNG DẪN TRẢ LỜI:
Tên mảng : array[.. ] of ;
- Trong đó, chỉ số đầu và chỉ số cuối là hai số nguyên hoặc biểu thức nguyên thoả mãn chỉ số đầu ≤ chỉ số cuối và kiểu dữ liệu có thể là số nguyên (integer) hoặc số thực (real).
- Lợi ích: Sử dụng các biến mảng và câu lệnh lặp giúp cho việc viết chương trình được ngắn gọn và dễ dàng hơn.
Câu 9: Cho S và i là biến nguyên. Khi chạy đoạn chương trình :
S:=0;
for i:=1 to 5 do S := S+i;
writeln(S);
Kết quả in lên màn hình S là bao nhiêu?
HƯỚNG DẪN TRẢ LỜI:
i:=1 thì S:= 0+1=1;
i:=2 thì S:=1+2=3;
i:=3 thì S:=3+3=6;
i:=4 thì S:=6+4=10;
i:=5 thì S:=10+5=15;
i:=6 lớn hơn giá trị cuối nên thoát vòng lặp.
Vậy kết quả in lên màn hình S:=15.
Câu 10: Tìm giá trị của S trong đọan chương trình dưới đây:
S := 2;
For i := 1 to 5 do S := S + i;
HƯỚNG DẪN TRẢ LỜI:
i:=1 thì S:=2+1=3;
i:=2 thì S:=3+2=5;
i:=3 thì S:=5+3=8;
i:=4 thì S:=8+4=12;
i:=5 thì S:=12+5=17;
i:=6 thì thoát khỏi vòng lặp.
Vậy giá trị của S:=17.
Tài liệu đính kèm: