Hướng dẫn giải đề thi Olympic tin học khối 8, 9 Hiệp Hòa – Bắc Giang – Năm 2014- 2015
Sau đây là hướng dẫn giải đề thi Olympic tin học khối 8, 9 Hiệp Hòa – Bắc Giang – Năm 2014- 2015. Đề thi gồm hai phần đó là phần lập trình pascal và bảng tính Excel.
Có thể bạn quan tâm:
- Đề thi Olympic tin học khối 6,7 Hiệp Hòa – Bắc Giang
- Đề thi Olympic tin học khối 8, 9 Hiệp Hòa – Bắc Giang – Năm 2016- 2017
Đề thi Olympic tin học khối 8, 9 Hiệp Hòa – Bắc Giang – Năm 2014- 2015
Yêu cầu chung: Tạo thư mục SBD_… trên ổ đĩa D và lưu các bài làm vào thư mục này. Ví dụ số báo danh của em là Ti912 thì tạo thư mục là SBD_Ti912
Sử dụng ngôn ngữ lập trình Turbo Pascal hoặc Free Pascal viết chương trình giải các bài toán sau:
Bài 1 ( 15 điểm): Lưu với tên là Bai1.pas
Viết chương trình nhập vào một số tự nhiên n từ bàn phím sao cho n < 4 < 1 000 000 và tính tổng Sn với [latex]{S_n} = \frac{{1.2}}{{3.4}} + \frac{{2.3}}{{4.5}} + \frac{{3.4}}{{5.6}} + … + \frac{{n.(n + 1)}}{{(n + 2)(n + 3)}}[/latex]
Bài 2 ( 15 điểm): Lưu với tên là Bai2.pas
Cho 2 số tự nhiên a, b (3 < a < b < 109)
Yêu cầu:
– Kiểm tra xem có bao nhiêu số nguyên tố nằm giữa 2 số tự nhiên a và b.
– Tìm tổng bình phương của các số nguyên tố giữa a và b sau đó tính tích của hai chữ số tận cùng của tổng vừa tìm được với số 28012016.
Dữ liệu vào: Hai số tự nhiên a và b thỏa mãn a < b được nhập từ bàn phím.
Dữ liệu ra: Ghi ra màn hình các thông tin sau:
– Nếu có số nguyên tố giữa a và b thì ghi kết quả như sau:
+ Dòng 1 ghi ra hai số: Số thứ nhất là số các số nguyên tố giữa hai số a và b; số thứ hai là tổng bình phương các số nguyên tố nằm giữa a và b; mỗi số cách nhau ít nhất một khoảng trắng.
+ Dòng 2 ghi ra tích của hai chữ số tận cùng của tổng vừa tìm được với số 28012016
– Nếu không có số nguyên tố nào thì ghi ra thông báo: “Không”.
Bài 3 (20 điểm): Lưu với tên là Bai3.pas
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì phần còn lại vẫn tạo thành một số nguyên tố. Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.
Viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) và đưa ra kết quả là một số siêu nguyên tố có N chữ số cùng số lượng của chúng.
Ví dụ khi chạy chương trình:
Nhap so N: 4
Cac so sieu nguyen to có 4 chu so la: 2333 2339 2393 2399 2939 3119 3137 3733 3739 3793 3797 5939 7193 7331 7333 7393
Tat ca co 16 so_
Bài 4 ( 20 điểm): Lưu với tên là Bai4.xls
Tạo trang tính theo mẫu và dùng công thức điền giá trị vào các ô theo yêu cầu dưới đây:
- Căn cứ vào bảng 1 và bảng 2, điền tên và mã phòng ban của nhân viên vào bảng 3.
- Ở bảng 3: Tính tiền lương của nhân viên, biết rằng lương = hệ số * ngày công * 6500 đồng
- Ở bảng 3: Tính tiền thưởng của nhân viên, biết những ai đi làm 25 ngày/ tháng trở lên sẽ được thưởng 10% lương;
- Ở bảng 3: Tính phụ cấp, biết ban giám đốc hưởng 30% lương, phòng kế hoạch hưởng 20% lương, các phòng ban khác hưởng 10% lương
- Tính tổng cộng
- Hoàn tất bảng 4
—————Hết—————-
HƯỚNG DẪN GIẢI
Bài 1:
Uses Crt; Var n,i:Integer; s:Real; BEGIN ClrScr; Write('Nhap so tu nhien n=');Readln(n); While (n<=5) OR (n>100) do Begin Write('Nhap lai n thoa man 5 < n <=100, n = ');Readln(n); end; s:=0; For i:=1 to n do s:=s+i*(i+1)/((i+2)*(i+3)); Writeln('S= ', S:0:2); readln; end.
Bài 2:
uses crt; var a,b,r,d,m,n,BC:longint; i,j,dem:integer; kt:boolean; S:INT64; begin readln(a,b); clrscr; m:=a;n:=b;dem:=0; S:=0; while b<>0 do begin r:=a mod b; a:=b; b:=r; end; d:=a; for i:= m+1 to n-1 do begin if i>1 then kt:=true else kt:=false; if i> 2 then for j:=2 to Trunc(sqrt(i)) do if (i mod j =0) then kt:=false; if kt then begin S:=S+sqr(i); dem:=dem+1; end; end; if s= 0 then writeln('khong') else begin writeln(dem,' ', S); writeln((s mod 100)*30102014); end; writeln(m,'/',n,'=',(m div d),'/',(n div d)); readln; end.
Bài 3:
Program Bai3; {SuperPrime}; var a,b: array [1..100] of longint; N,i,k,ka,kb,cs: byte; Function Prime(N: longint): boolean; Var i: longint; Begin If (N=0) or (N=1) then Prime:=false Else Begin i:=2; While (N mod i <> 0) and (i <= Sqrt(N)) do Inc(i); If i > Sqrt(N) then Prime:=true Else Prime:=false; End; End; BEGIN Write ('Nhap N: '); Readln (N); ka:=1; a[ka]:=0; For i:=1 to N do Begin Kb:=0; For k:=1 to ka do For cs:=0 to 9 do If Prime(a[k]*10+cs) then Begin Inc(kb); b[kb]:=a[k]*10+cs; end; ka:=kb; For k:=1 to ka do a[k]:=b[k]; end; For k:=1 to ka do Write(a[k]:10); Writeln; Writeln('Co tat ca',ka,'so sieu nguyen to co',N,'chu so.'); Readln; END.