Đề cương ôn tập học kì II Tin học Lớp 8 - Năm học 2012-2013 - Trường THCS Nguyễn Thị Minh Khai

doc14 trang | Chia sẻ: thuongnguyen92 | Lượt xem: 489 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đề cương ôn tập học kì II Tin học Lớp 8 - Năm học 2012-2013 - Trường THCS Nguyễn Thị Minh Khai, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐỀ CƯƠNG ÔN TẬP HK II- MÔN TIN HỌC 8
NĂM HỌC: 2012-2013
--------------
PHẦN PASCAL: Bài 7: CÂU LỆNH LẶP
Câu 1: Cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hằng ngày
( đánh răng, học bài, nấu ăn, nhặt rau.....)
Câu 2: Hãy cho biết tác dụng của câu lệnh lặp với số lần biết trước.
-Tác dụng : một lệnh thay cho nhiều lệnh với số lần biết trước
- Thuận tiện và hữu ích trong việc tránh phải viết lặp đi lặp lặp lại nhiều lần một lệnh nào đó.
Câu 3: Nêu cú pháp về câu lệnh lặp ?
Trả lời: For := to do ;
Trong đó: For, to, do : là các từ khóa
 Biến đếm là biến kiểu nguyên
 giá trị đầu, giá trị cuối: là các giá trị nguyên
câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần, mỗi lần là một vòng lặp. Số vòng lặp được biết trước và bằng : giá trị cuối - giá trị đầu +1
Câu 4:Khi thực hiện câu lệnh lặp, máy tí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 là gì? 
Trả lời:Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp, biến đếm sẽ tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối. 
Bài tập:
1/ Tính tổng của N số tự nhiên đầu tiên, với N là số tự nhiên được nhập vào từ bàn phím.
( Xem ví dụ 5/59 SGK)
2/Viết chương trình tính N! với N là số tự nhiên nhập từ bàn phím
(Xem ví dụ 6/59+60 SGK)
3/ Các bài tập 4,5 /61
4/Mô tả thuật toán để tính tổng sau ( bài 6/61 SGK)
Hướng dẫn:
5/Bài 1 SGK trang 62 ( viết CT in ra màn hình bảng nhân 1 số từ 1 đến 9)
6) Viết chương trình tính tổng 
Trả lời: Thuật toán:
INPUT: Số tự nhiên n OUTPUT : 
Bước 1: Nhập n
Bước 2: S 0; i 0
Bước 3: i i+1
Bước 4: Nếu i <= n, S S+1/i và quay lại bước 3
Ngược lại (i>n) thông báo kết quả và kết thúc thuật toán
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Câu 1: Nêu một vài ví dụ với lần lặp với số lần chưa biết trước ?
Trả lời:
-Nhập một số hợp lệ, ví dụ số nguyên trong khoảng từ 0 đến 10, vào máy tính. Nếu số nhập vào không hợp lệ thì yêu cầu nhập lại
-Rút tiền dần từ sổ tiết kiệm cho đến khi số dư còn lại ít hơn 50 nghìn đồng.
-Nhập một số từ bàn phím và tính tổng cho đến khi lần đầu tiên nhận được tổng lớn hơn 1000 thì kết thúc. ...( HS tự tìm thêm)
sai
Điều kiện 
Câu 2: Cú pháp While do ;
Trong đó:
đúng
Điều kiện thường là một phép so sánh
Câu lệnh
Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép
Câu lệnh lặp này được thực hiện như sau:
+)Kiểm tra điều kiện
+)Nếu điều kiện sai, câu lệnh sẽ bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1
Câu 3:
Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần biết trước và câu lệnh lặp với số lần chưa biết trước ?
Trả lời:Sự khác biệt:
a) Câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa được xác định trước. 
b) Lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực
 c) Lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thoả mãn, câu lệnh mới được thực hiện.
Bài tập:
-Bài 3,4,5 / Trang 71 SGK
- Bài 1( SGK/72) Viết chương trình sử dụng lệnh lặp While...do để tính trung bình n số thực x1,; x2;.....xn các số n và x1,; x2;.....xn được nhập vào từ bàn phím.
- Bài 2:(SGK/73) 
Viết chương trình nhập một số tự nhiên n được nhập từ bàn phím , và in ra màn hình số đó có phải là số nguyên tố không ?
BÀI 9: LÀM VIỆC VỚI DÃY SỐ
Câu 1: Dữ liệu kiểu mảng là gì?
Trả lời:Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu.
Câu 2: Cách khai báo mảng trong Pascal ?
 Var Tên mảng : array[.. ] of 
Trong đó:
 Chỉ số đầu ≤ chỉ số cuối : và là hai số nguyên
 Kiểu dữ liệu: có thể là integer hoặc real, byte,longint
 Array và of : là các từ khóa
Câu 3: 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 ?
Trả lời:
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, tiết kiệm được thời gian. (Có thể sử dụng 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à sử lí nhiều dữ liệu có nội dung liên quan đến nhau một cách hiệu quả)
Câu 4:2,3,4,5/79 SGK
Hướng dẫn:
2/ Các khai báo biến mảng sau đấy trong Pascal đúng hay sai ?
sai, vì có dấu , cần thay bằng dấu ..
sai, chỉ số đầu ,cuối phải là số nguyên
sai
sai, vì chỉ số đầu lớn hơn số cuối
đúng
3/ Phát biểu đó đúng
4/ sai , vì gtln và gtnn của chỉ số mảng phải được xác định trong phần khai báo chương trình.
5/ Cho học sinh tiến hành hoạt động nhóm viết chương trình
Program nhapdayso;
Var i,n: integer;
 A: array[1..100] of real;
Begin
Writeln(‘Nhap so phan tu cua day so n= ’,n)
For i:=1 to n do begin
 Write( ’ a[’,i,’]= ’); readln(a[i]);
 End; Readln; End.
Bài tập 1/(SGK trang 80) Viết chương trình nhập điểm của các bạn trong lớp. Sau đó in ra màn hình số bạn đạt giỏi, khá, trung bình, yếu.
Bài tập 2/(SGK trang 81) Nhập hai loại điểm Toán và ngữ văn, sau đó in ra màn hình điểm TB của mỗi bạn trong lớp.
Bài tập 3/(SGK trang 78) Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số lớn nhất.
ĐỀ THI HỌC KÌ 2 NĂM HỌC 2011-2012
ĐỀ 1
TRẮC NGHIỆM:
1/ Các khai báo biến mảng M sau đây, khai báo nào đúng ?
a) M: array(1:100) of byte
b) M: array [1;100] of byte
c) M: array[1,100] of byte
d) M: array [ 1..100 ] of byte
2/Các câu lệnh Pascal sau, câu nào viết đúng :
a) For i:=10 to 1 do x:=x+1
b) For i:=1 to 10 do x:=x+1
c) For i:=10 do 1 to x:=x+1
d) For i:=1 do 10 to x:=x+1
3/ Cho khai báo M:array[1..5] of integer chọn lệnh gán đúng:
a)M[4]:= -6
b) M[6]:= 6
c) M[5] :=“ ten”
d)M[3]:=4.2
4.Khi nào thì câu lệnh For..to..do kết thúc ?
a) Khi biến đếm nhỏ hơn giá trị cuối
b)Khi biến đếm bằng giá trị cuối
c)Khi biến đếm lớn hơn giá trị đầu
d)Khi biến đếm lớn hơn giá trị cuối
5.Trong đoạn lệnh sau : x:=10 ; y:=1 ;While x 5 do y:=y+1 câu đúng trong các câu sau là:
a)Sau chương trình, biến y có giá trị 6
b)Câu lệnh sau do không thực hiện
c) Lệnh y:=y+1 lặp 5 lần 
d) số lần lặp là vô tận
6.Phần mềm Yenka dùng để :
a)Quan sát hình không gian
b)Luyện gõ phím nhanh
c)Tìm hiểu thời gian
d) Học vẽ hình
7/Hoạt động nào sau đây lặp với số lần nhất định và biết trước:
a) Gọi điện thoại cho đến khi có người nhấc máy
b)Học cho đến khi thuộc bài
c)Nhặt từng cọng rau cho tới khi xong
d)Mỗi ngày đánh răng 2 lần
8/Trong phần mềm GEOOGEBRA công cụ dùng để :
a) Vẽ tia đi qua 2 điểm
b)Vẽ đường thẳng đi qua 2 điểm
c)Vẽ đoạn thẳng với kích thước cho trước
d)vẽ đoạn thẳng
9/Khi viết câu lệnh lặp theo cú pháp for I:=X to Y do Write (*) để câu lệnh Write(*) thực hiện ít nhất một lần thì phát biểu nào sau đây sai ?
a) Y chỉ cần bằng X
b) Y phải lớn hơn X
c)A phải lớn hơn Y
d) Y lớn hơn bằng X
10/Sau câu lệnh lặp For i:=2 to 9 do write (‘ Cam Ranh’) chữ Cam Ranh được viết ra màn hình mấy lần 
a) 7 lần
b) 8 lần
c) 9 lần
d) 2 lần
11/Đoạn lệnh sau đây a:=1 ; While a<5 do begin Write(a) ; a:=a+1 ; end; cho kết quả gì ?
a) In ra các số từ 1 đến 4
b)In ra vô hạn số 1
c)In ra tổng từ 1đến 4
d)In ra các số từ 1đến 5
12/ Sau đoạn chương trình Sum:=0 ; while sum < 5 do sum:=sum+1 giá trị của sum bằng bao nhiêu?
a)5
b)10
c)15
d)0
TỰ LUẬN:
Câu 1: Hãy chỉ ra lỗi của các lệnh sau:
a) for i:=100 to 1 do writeln(‘A’)
b)for i:=1.5 to 10.5 do writeln(‘A’)
c)x:=10; while x:=10 do x:=x+5
d)x:=10; while x=20 do x=x+5
Câu 2: Hãy viết lại thuật toán sau bằng ngôn ngữ Pascal:
Bước 1: S
Bước 2: Nếu , chuyển tới bước 4
Bước 3: và quay lại bước 2
Bước 4: Thông báo S và kết thúc thuật toán
Câu 3: Dùng ngôn ngữ Pascal viết chương trình nhập số nguyên N tính và in ra giá trị trung bình các số nguyên liên tiếp từ 1 đến N, in ra các số chẵn nằm trong khoảng từ 1đến N.
ĐÁP ÁN:
1/a) Giá trị đầu lớn hơn giá trị cuối
b)Biến đếm có giá trị số thực 
c)Điều kiện là lệnh gán
d)Câu lệnh sai dấu
2/ Be gin
S:=10; X:=0.5; While S 5.2 do s:=s –x ;
Write(s); end.
3) Var I,N,S : interger;
R : real;
Begin
Write(‘Nhap so nguyen n= ‘); readln(N);
For I:=1 to N do S:=S+I;
R:=S/N; For I:=1 to N –1 do if I mod 2 =0 then Write(I:5); Readln; End.
ĐỀ 2 
Tự luận:
Câu 1: Hãy chỉ ra lỗi của các câu lệnh sau:
for i:=1 to 10 ; do X:=x+1;
While i:=1 do T:=10;
I:=1; while i<10 do sum := sum+i; I:= i+1;
Var A: array[1,20] of Real;
Câu 2: Hãy viết lại thuật toán sau bằng ngôn ngữ Pascal
Bước 1: 1
Bước 2: Nếu i>k, chuyển tới bước 4
Bước 3: và quay lại bước 2
Bước 4: thông báo S và kết thúc thuật toán
Câu 3: Viết chương trình tính tổng . Với n là số nguyên dương nhập từ bàn phím.
Đáp án:
1/ a) thừa dấu ; trước do b)ĐK là lệnh gán
c)Thiếu begin và end trước hai lệnh sau do d) giữa các phần tử là dấu ..
2/ Begin
S:=0; i:=1;
While i<= 100 do
Begin
S:=s+i;
i:=i+1;
end;
Write(s);
end;
3/ var I,N: integer;
 S: real;
Begin
Write(‘ nhap so nguyen n = ‘); readln(N); S:=0;
For i:=1 to N do S:=s+1/i; Writeln(‘ Tong can tim la :’ ,S:6:2); readln; end.
XEM CÁC BÀI : 
-QUAN SÁT HÌNH KG VỚI PHẦN MỀM YENKA; TÌM HIỂU THỜI GIAN VỚI PHẦN MỀM SUNTIMES HỌC VẼ HÌNH VỚI PHẦN MỀM GEOGEBRA ; LUYỆN GÕ PHÍM NHANH VỚI FINGER BREAK OUT
TRẮC NGHIỆM:
1/ Biến A có kiểu mảng, đoạn chương trình For I:=1 to 5 do sum :=sum +A[i] ; cho kết quả gì ?
a) Cộng dồn 5 phần tử của mảng A
b)In ra màn hình 5 phần tử của mảng A
b) Nhập trị cho 5 phần tử trong mảng A
d) In ra màn hình 5 số nguyên đầu tiên
2/Các câu lệnh Pascal sau, câu lệnh nào viết đúng ?
a) For i:=5 do 1 to Write(i)
b)For i:=1 do 5 to Write(i)
c)For i:=5 to 1 do Write(i)
d)For i:=1 to 5 do Write(i)
3. Cho khai báo a:array [1..5] of integer ; chọn lệnh gán đúng:
a) a[5]:=’A’
b)a[3]:=5.1
c)a[4]:= -5
d)a[6]:=5
4.Phần mềm Geogebra dùng để :
a)
5.Khi viết câu lệnh lặp theo cú pháp for I:=A to B do write(*) ; để câu lệnh write(‘*’) thực hiện một lần thì phát biểu nào sau sai?
a) B phải nhỏ hơn A
b) B phải lớn hơn bằng A
c) B chỉ cần bằng A
d) B phải lớn hơn A
6.Trên thanh công cụ chuẩn của phần mềm vẽ hình GEOGEBRA, công cụ . dùng làm gì ?
a)Xóa bỏ tên của điểm được chọn
b)Thêm tên vào một điểm
c)Thêm một điểm mới có tên điểm
d)Xóa bỏ một điểm được chọn
7. Trong đoạn lệnh sau : x:=5; while x <= 3 do y:=y+1; câu đúng trong các câu sau là:
a) câu lệnh sau do không thực hiện
b) lệnh y:=y+1 lặp 5 lần
c) số lần lặp là vô hạn
d)Sau chương trình, biến y có giá trị 3
8. Đoạn lệnh sau max:=a[1];for i:=2 to 100 do if a[i]< max then max:=a[i]; write(max); cho kết quả là:
a)Tổng các phần tử
b) Phần tử lớn nhất
c)Phần tử nhỏ nhất
d)Phần tử trung bình
9.Đoạn chương trình s:=0; for i:=1 to 10 do s:=s+i; write (s); kết quả in trên màn hình là:
a)101
b)55
c)11
d)100
10.Sau khi thực hiện đoạn chương trình for i:=0 to 10 do wrie(‘A’); giá trị của i là:
a) Không xác định
b)0
c)10
d)11
11. Đoạn chương trình sau đây a:=1 ; k:=4 ; whlie a< k do be gin write(a); a:=a+1;end; cho kết quả gì?
a)In ra tổng từ 1 đến 4
b) In ra các số từ 1đến 4
c) In ra các số từ 1đến 3
d) In ra vô hạn số 1
12. Sau đoạn chương trình S:=1;While S<=5 do S:=S+2; giá trị của S bằng bao nhiêu ?
a) 15
b)1
c)7
d)5
Tự luận:
Câu 1: Hãy chỉ ra lỗi của các câu lệnh sau:
for i:=1 to 10 ; do X:=x+1;
While i:=1 do T:=10;
I:=1; while i<10 do sum := sum+i; I:= i+1;
Var A: array[1,20] of Real;
Câu 2: Hãy viết lại thuật toán sau bằng ngôn ngữ Pascal
Bước 1: 1
Bước 2: Nếu i>k, chuyển tới bước 4
Bước 3: và quay lại bước 2
Bước 4: thông báo S và kết thúc thuật toán
Câu 3: Viết chương trình dùng câu lệnh lặp While ... do để tính tổng . Với n là số nguyên dương nhập từ bàn phím.
Đáp án:
1/ a) thừa dấu ; trước do
b)ĐK là lệnh gán
c)Thiếu begin và end trước hai lệnh sau do
d) giữa các phần tử là dấu ..
2/ Begin
S:=0; i:=1;
While i<= 100 do
Begin
S:=s+i;
i:=i+1;
end;
Write(s);
end;
3/ var I,N: integer;
 s: real;
Begin
Write(‘ nhap so nguyen n = ‘); readln(N);
For i:=1 to N do S:=s+1/i;
Write(S:5:1);
readln;
end;
I. Trắc nghiệm Chọn câu đúng:
Câu 1: Trong vòng lặp For := to do ; củaPascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào
+1
-1
Một giá trị bất kỳ
Một giá trị khác không
Câu 2: Câu lệnh pascal nào sau đây là hợp lệ?
For i:=100 to 1 do writeln(‘A’);
For i:= 1 to 10 do writeln(‘A’);
For i:=1.5 to 10.5 do writeln(‘A’);
For i= 1 to 10 do writeln(‘A’);
Câu 3: Lệnh lặp nào sau đây là đúng?
For i:=1 to 10; do x:=x+1;
For i:=10 to 1 do x:=x+1;
For i:=1 to 10 do x:=x+1;
For i=1 to 10 do x:=x+1;
Câu 4: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu
Interger;
Real;
String
Tất cả các kiểu trên đều được
Câu 5: Sau khi thực hiện đoạn chương trình j:= 0; for i:= 1 to 3 do j:=j+2; thì giá trị in ra màn hình của j là?
4
6 
8
10
Câu 6: Để tính tổng S=1+1/2 +1/3 + 1/4  1/n; em chọn đoạn lệnh:
for i:=1 to n do
	if ( i mod 2)=0 then S:=S + 1/i;
for i:=1 to n do
	if ( i mod 2)=0 then S:=S + i 
	Else S:= S + I; 
for i:=1 to n do
	S:=S + 1/i;
for i:=1 to n do
	if ( i mod 2)0 then S:=S + 1/i Else S:=S-1/i;
Câu 7: Để tính tổng S=1+3 + 5 +  + n; em chọn đoạn lệnh:
for i:=1 to n do
	if ( i mod 2)=0 then S:=S + 1/i;
for i:=1 to n do
	if ( i mod 2) 0 then S:=S + i;
for i:=1 to n do
	if ( i mod 2)=0 then S:=S + i 
 else S:= S + I; 
for i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
Câu 8: Vòng lặp while ..do là vòng lặp:
Biết trước số lần lặp
Chưa biết trước số lần lặp
Biết trước số lần lặp nhưng giới hạn là <=100 
Biết trước số lần lặp nhưng giới hạn là >=100 
Câu 9: Đoạn lệnh sau đây So:=1; While so<10 do writeln(so); So:=so+1; Sẽ cho kết quả gì?
In ra các số từ 1 đến 9
In ra các số từ 1 đến 10
Không phương án nào đúng
In vô hạn các số 1, mỗi số trên một dòng
Câu 10: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp
S:=0; n:=0;
While S< =10 do n:=n+1; s:=s+n;
9 lần
10 lần
11 lần
Vô hạn lần
Câu 11: Câu lệnh lặp whiledo có dạng đúng là:
x:=10; While x:=10 do x:=x+5;
x:=10; While x:=10 do x=x+5;
x:=10; While x=10 do x=x+5;
x:=10; While x=10 do x:=x+5;
Câu 12: Lần lượt thực hiện câu lệnh for i:= 1 to 3.5 do writeln(i:3:1); sẽ viết ra màn hình?
Thứ tự của biến đếm, chiếm 3 chỗ và lấy 1 chữ số sau phần thập phân
Viết số 1 rồi viết số 3.5
Chỉ viết số 3.5 mà thôi
Không thực hiện được vì giá trị của biến đếm có kiểu thứ tự là Real
Câu 13: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp
S:=0; n:=0;
While S< =10 do
Begin	n:=n+1;	s:=s+n;	end;
4 lần
6 lần
5 lần
10
Câu 14: Câu lệnh nào sau đây lặp vô hạn lần
s:=5; i:=0;
While i<=s do s:=s + 1;
s:=5; i:=1;
While i<=s do i:=i + 1;
s:=5; i:=1;
While i> s do i:=i + 1;
s:=0; i:=0;
While i<=n do 
	if (i mod2)=1 then S:=S + I else i:=i+1;
Câu 15: Hãy tìm hiểu đoạn chương trình sau đây. Không cần viết chương trình, hãy cho biết lệnh Writeln in ra màn hình giá trị của i, j, k là bao nhiêu?
i:=1; j:=2; k:=3;
Trả lời
While i<=6 do i:=i+1; j:=j+1; k:=k+j;
I=
Space:=’ ’;
J=
Write(I,space,j,space,k);
K=
Câu 16: Hãy tìm hiểu đoạn chương trình sau đây. Không cần viết chương trình, hãy cho biết lệnh Writeln in ra màn hình giá trị của i, j, k là bao nhiêu?
i:=1; j:=2; k:=3;
TRẢ LỜI
While i<=6 do 
I=
Begin i:=i+1; j:=j+1; k:=k+j; end;
J=
Space:=’ ’;
K=
Write(I,space,j,space,k);
Câu 17: Hãy tìm hiểu đoạn chương trình sau đây. Sau khi đoạn chương trình này được thực hiện, giá trị của x bằng bao nhiêu?
X:=0; Tong:=0;
While tong<=20 do
Begin
Writeln(tong); Tong:=tong+1;
End.
X:=tong;
20
21
Không xác định
0
Câu 18: Để tính tổng S=1+1/3 + 1/5 +  +1/ n; em chọn đoạn lệnh:
for i:=1 to n do
	if ( i mod 2)=1 then S:=S + 1/i;
for i:=1 to n do
	if ( i mod 2) =0 then S:=S + 1/i;
for i:=1 to n do
	if ( i mod 2)=0 then S:=S + 1/i 
	else S:= S + 1/; 
for i:=1 to n do
	if ( i mod 2)=0 then S:=S + i;
Câu 19: Để tính tổng S=1+2+3+ 4+ 5 +  + n; em chọn đoạn lệnh:
s:=0; i:=0;
While i<=n do S:=S + 1;
s:=0; i:=0;
While i<=n do If (I mod 2)= 1 Then S:=S + i;
s:=0; i:=0;
While i<=n do 
begin	
	S:=S + i;
	i:=i+1;
End;
s:=0; i:=0;
While i<=n do 
	begin	
	if (i mod2)=1 Then S:=S + i
	Else i:=i+1;
End;
Câu 20: Hãy xác định đúng sai cho những phát biểu dưới đây
Nội dung
Đúng
Sai
Không nên thay đổi giá trị của biến đếm trong câu lệnh lặp For  do, ví dụ câu lệnh lặp sau đây là không nên sử dụng For i:=1 to n do i:=i+2;
Trong câu lệnh lặp for biến đếm:=giá trị đầu to giá trị cuối do câu lệnh;
Nếu giá trị đầu < giá trị cuối thì chương trình dịch sẽ báo lỗi để ta chỉnh sữa lại
Câu lệnh lặp For do rất thuận tiện và hữu ích trong việc tránh phải viết lặp đi lặp lại nhiều lần một câu lệnh nào đó. Chẳng hạn để in ra các số nguyên hơn kém nhau 1 đơn vị từ 1 đến 15 ta chỉ viết 1 câu lệnh sau For i:=1 to 15 do writeln(i:3:1);
Mọi câu lệnh lặp Whiledo đều có thể thay thế một cách thích hợp bởi câu lệnh For..do
II. Tự luận 
Bài 1. Điền vào chỗ trống để được câu đúng:
1. Câu lệnh điều kiện có hai dạng: 	
2. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh:	
3. Câu lệnh lặp với số lần chưa biết trước trong Pascal là: 	
Bài 2. Viết chương trình tính tổng của N số tự nhiên đầu tiên, với N là số tự nhiên được nhập vào từ bàn phím.
program Tinh_tong;
var 	N,i: integer;
	S: longint;
begin
	write(‘Nhap so N = ‘);	readln(N);
	S:= 0;
	for i:= 1 to N do S:= S+i;
	writeln(‘Tong cua’, N, ‘so tư 	nhien dau tien S = ‘, S);
	readln
end.
Bài 3. Ta kí hiệu N! là tích N số tự nhiên đầu tiên. Viết chương trình tính N! = 1.2.3. ... N
program Tinh_Giai_Thua;
var 	N,i:integer;
	P:longint;
begin
	write(‘Nhap so N = ‘);	readln(N);
	P:= 1;
	for i:= 1 to N do P:= P*i;
	writeln( N, ‘! = ‘, P);
	readln
end.
Bài 4. Viết chương trình tính tổng các số lẻ từ 1 đến n.
program tinh_tong;
uses crt;
var S, n, i: integer;
begin
 clrscr;
 write(‘nhap so nguyen n=’); readln(n);
 S:= 0;
 for i:= 1 to n do
 	if i mod 20 then S:= S+i;
 writeln(‘tong S=,’ S);
 readln;
end.
Bài 5. Viết chương trình xuất ra màn hình tổng bình phương những số lẻ từ 1 đến N. Với N là số tự nhiên được nhập vào từ bàn phím. (tương tự như bài 4)
Bài 6. Viết chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không.
Thuật toán:
Bước 1: Nhập số tự nhiên N từ bàn phím.
Bước 2: Nếu N£ 1 thông báo N không phải là số nguyên tố, rồi chuyển đến bước 4.
Bước 3: Nếu N > 1:
3.1. i¬2;
3.2. Trong khi N mod i 0, i¬ i+1;
3.3. Nếu i = N thì thông báo N là số nguyên tố, ngược lại thông báo N không phải là số nguyên tố.
Bước 4: Kết thúc thuật toán.
Uses Crt;
Var n,i:integer;
Begin
 	Clrscr;
 	write('Nhap vao mot so nguyen: '); readln(n);
 	If n<=1 then writeln('N khong la so nguyen to')
 	else
 	begin
 	i:=2;
 	while (n mod i0) do i:=i+1;
 	if i=n then writeln(n,' la so nguyen to!')
 	else writeln(n,' khong phai la so nguyen to!');
 	end;
readln
End.
Bài 7. Viết chương trình xuất ra màn hình những số nguyên tố nhỏ hơn 100. 
Program CAC_SO_NGUYEN_TO;
Var i, t: integer; 
Begin
 Clrscr;
 Writeln(‘Cac so nguyen to nho hon 100:’);
For t:=2 to 100 do
	 Begin
	i:= 2;
 while (t mod i 0) do i:=i+1;
 If i=t then Write(t:5);
 end;
 readln
End.
BGH
Nhóm GV
GV duyệt

File đính kèm:

  • docbo de on tap mon tin 8.doc