Đề thi HSG Tin 9 trường THCS Gia Vân 2017-2018
Gửi bởi: Nguyễn Minh Lệ 27 tháng 7 2021 lúc 17:59:18 | Được cập nhật: 7 giờ trước (2:53:58) | IP: 113.165.74.10 Kiểu file: DOC | Lượt xem: 228 | Lượt Download: 0 | File size: 0.054784 Mb
Nội dung tài liệu
Tải xuống
Link tài liệu:
Các tài liệu liên quan
- Đề thi học kì 2 Tin 9 trường THCS Nguyễn Chí Thanh năm 2021-2022
- Đề thi học kì 1 Tin 9 trường THPT Phan Châu Trinh năm 2021-2022
- Đề thi học kì 2 Tin 9 trường PTDTBT - THCS Liên xã La Êê- Chơ Chun năm 2021-2022
- Đề thi học kì 1 Tin 9 trường THCS Đông Hưng A năm 2021-2022
- Đề thi học kì 1 Tin 9 trường THCS Đức Lân năm 2021-2022
- Đề thi học kì 2 Tin 9 trường THCS Nhơn Bình năm 2019-2020
- Đề thi giữa kì 1 Tin 9 trường THCS Thị trấn Thới Lai năm 2020-2021
- Đề thi giữa kì 1 Tin 9 trường THCS Thị trấn Thới Lai năm 2020-2021
- Đề thi giữa kì 1 Tin 7 trường THCS Phú Xuân năm 2020-2021
- Đề thi học kì 2 Tin 9 trường THCS Bắc Lệnh năm 2020-2021
Có thể bạn quan tâm
Thông tin tài liệu
TRƯỜNG THCS GIA VÂN
ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 9 THCS
NĂM HỌC 2017-2018
Môn: TIN HỌC
Thời gian làm bài :150 phút (không kể thời gian giao đề)
Đề thi gồm 03 câu, trong 01 trang
Tổng quan đề thi:
TÊN CHƯƠNG TRÌNH
BÀI 1
BÀI 2
BÀI 3
XET_TAMGIAC.PAS
TINHTONG.PAS
DEMPHANTUX.PAS
Lưu ý:
Thí sinh bắt buộc phải viêt tên chương trình như trên (ví dụ: program giai_bl;).
Nêu ý tưởng, thuật toán và viết chương trình pascal cho các yêu cầu sau:
BÀI 1. GIẢI VÀ BIỆN LUẬN (7 điểm)
Viết chương trình nhập vào 3 số nguyên a, b, c. Kiểm tra xem 3 số đó có thỏa mãn:
- Là 3 cạnh của 1 tam giác thường
- Là 3 cạnh của 1 tam giác cân
- Là 3 cạnh của 1 tam giác đều
- Không là 3 cạnh của 1 tam giác
BÀI 2. TÍNH TỔNG (7 điểm)
Viết chương trình tính tổng S=-1+2-3+…….+(-1) n.n, với n là số nguyên dương
được nhập từ bàn phím.
BÀI 3. ĐẾM PHẦN TỬ CÓ GIÁ TRỊ X XUẤT HIỆN TRONG MẢNG (6 điểm)
Viết chương trình nhập vào một dãy các số nguyên và nhập giá trị x, rồi đếm
xem trong dãy có mặt bao nhiêu số x ?
HẾT
Họ và tên thí sinh :....................................................... Số báo danh ........................................
Họ và tên, chữ ký: Giám thị 1:................................................................................................
Giám thị 2:..........................................................................................
TRƯỜNG THCS GIA VÂN
HƯỚNG DẪN CHẤM
ĐỀ THI HỌC SINH GIỎI LỚP 9
Năm học 2017 - 2018
MÔN: TIN HỌC
( Hướng dẫn này gồm 3 trang)
I. Đáp án và thang điểm
- Ý tưởng thuật toán đúng cho 02 điểm.
- Thuật toán đúng cho 02 điểm.
- Viết chương trình đúng cho 03 điểm.
- Riêng câu 3 viết chương trình đúng cho 02 điểm
- Chương trình Pascal chấm từ trên xuống. Đúng đến đâu cho điểm đến đó. Tùy từng trường
hợp thống nhất cho điểm.
II. Tóm tắt ý tưởng, thuật toán, chương trình nguồn.
Bài 1.
- Ý tưởng thuật toán.
Xét các trường hợp của a, b và c:
- Nếu a>0 và b>0 và c>0 và (a+b>c) và (b+c>a) và (a+b>c) thì kết luận phương trình có vô số
nghiệm
- Nếu a=0 và b 0 thì kết luận phương trình vô nghiệm
- Nếu a 0 thì kết luận phương trình có nghiệm x=-b/a
- Thuật toán.
- Bước 1: Nhập a và nhập b
- Bước 2: Kiểm tra các trường hợp của a và b
+ Nếu a=0 và b=0 thì kết luận phương trình có vô số nghiệm
+ Nếu a=0 và b 0 thì kết luận phương trình vô nghiệm
+ Nếu a 0 thì kết luận phương trình có nghiệm x=-b/a
- Bước 3: Đưa ra kết luận rồi kết thúc.
- Chương trình nguồn.
Program Xet_Tamgiac;
Var a,b,c:integer;
Begin
write('nhap a,b,c:');
readln(a,b,c);
if (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+b>c) then
if (a=b) and (b=c) then writeln('la tam giac deu')
else
if (a=b) or (b=c) or (a=c) then writeln('la tam giac can')
else writeln('la tam giac thuong')
else writeln('khong la 3 canh cua tam giac');
readln;
End.
Bài 2.
- Ý tưởng thuật toán.
Tạo một biến boolean bl được gán giá trị là true
Dựa vào biến bl để kiểm tra xem số a vừa nhập
+ Nếu a<=1 thì bl=false
+ Ngược lại nếu a<4 thì bl=true
+ Ngược lại cho một biến i chạy từ 2 đến căn bậc 2 của a. Trong khi chạy thì kiểm tra xem a
có chia hết cho i hay không? Nếu a chia hết cho i thì bl=false
+ Kiểm tra bl.
- Nếu bl = true thì kết luận số a là số nguyên tố, ngược lại thì kết luận số a không
phải là số nguyên tố
- Thuật toán.
+ Bước 1: Nhập số nguyên a
+ Bước 2: bl←True
+ Bước 3:
- Buớc 3.1: Nếu a<=1 thì bl=false
- Bước 3.2: Ngược lại nếu a<4 thì bl=true
- Bước 3.3: Ngược lại i ←2
- Bước 3.4: Nếu a chia i mà dư =0 thì bl←False
- Bước 3.5: i←i+1
- Bước 3.6: Nếu i> Trunc(sqrt(a)) thì tới bước 4, ngược lại thì quay lại bước 3.4
+ Bước 4: Kiểm tra bl
- Nếu bl=true thì kết luận a là số nguyên tố, ngược lại thì kết luận a không phải là số
nguyên tố.
+ Bước 5: Đưa ra kết luận và kết thúc.
- Chương trình nguồn.
Program TINHTONG;
Var s,i,n:integer;
Begin
write('nhap n:');
readln(n);
s:=0;
for i:=1 to n do
if (i mod 2)=0 then s:=s+i
else s:=s-i;
writeln('tong s=',s);
readln;
End.
Bài 3.
- Ý tưởng thuật toán.
+ Gán một biến dem=0
+ Nhập số lượng phần tử của mảng
+ Cho một biến chạy từ đầu mảng đến cuối mảng. Khi chạy đến đâu thì nhập giá trị đến đó,
kiểm tra giá trị vừa nhập vào có phải là số nguyên tố hay không. Nếu giá trị vừa nhập là số nguyên
tố thì tăng biến “dem” lên một đơn vị.
+ In mảng vừa nhập ra màn hình
+ In biến “dem” ra màn hình
- Thuật toán.
+ Bước 1: Nhập số lượng phần tử n
+ Bước 2: dem ←0;
+ Bước 3:
- Bước 3.1: i←1
- Bước 3.2: Kiểm tra i với n. Nếu i<= n thì
+ Nhập giá trị cho phẩn tử a[i]
+ Kiểm tra a[i]:
. Bước 3.2.1: bl←True
. Bước 3.2.2:
- Buớc 3.2.2.1: Nếu a[i]<=1 thì bl=false
- Bước 3.2.2.2: Ngược lại nếu a[i]<4 thì bl=true
- Bước 3.2.2.3: Ngược lại j ←2
- Bước 3.2.2.4: Nếu a[i] chia j mà dư =0 thì bl←False
- Bước 3.2.2.5: j←j+1
- Bước 3.2.2.6: Nếu j > Trunc(sqrt(a[i])) thì tới bước 4, ngược
lại thì quay lại bước 3.2.2.4
. Bước 4: Kiểm tra bl
- Nếu bl=true thì dem← dem+1
+ Bước 4: In ra mảng vừa nhập, in đếm và kết thúc
- Chương trình nguồn.
Program NguyenTo;
Uses
Crt;
var a:array [1..1000] of integer;
i,j,n,dem:integer;
bl:boolean;
begin
dem:=0;
write('nhap n'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
for i:=1 to n do
begin
if a[i]<=1 then bl:=false
else if a[i]<4 then bl:=true
else for j:=2 to trunc(sqrt(a[i])) do
if a[i] mod j = 0 then bl:=false;
if bl=true then dem:=dem+1;
end;
for i:=1 to n do write(a[i]);
writeln;
write('mang da cho co so phan tu nguyen to la',dem);
readln
end.