Đề thi học sinh giỏi cấp huyện Bảo Thắng
Câu 1 (4,0 điểm). Khởi động chương trình PASCAL, viết chương trình nhập số tự nhiên n sao cho 5 ≤ n ≤100, nếu nhập sai yêu cầu nhập lại khi nào nhập đúng thì tính tổng sn:
- Lưu bài với tên tệp tin: D:\SBDxxx\Cau2_SBDxxx.pas (trong đó xxx là số báo danh của thí sinh).
Program bt;
Uses crt;
Var n, i:integer;
S, a:real;
Begin
Clrscr;
Repeat
Write ('Nhap so n sao cho 5<= n<=100: '); readln(n);
Until (n>=5) and (n<=100);
S:=0;
For i:=1 to n do
begin
a:=(i*(i+1))/((i+2)*(i+3));
s:=s+a;
end;
Write('Tong can tinh la: ', s:2:4);
Readln;
End.
Đề thi học sinh giỏi cấp tỉnh năm 2018
Cho số nguyên dương N (2≤N≤1000).
a. Hãy đếm số lượng số nguyên tố trong đoạn từ 1 đến N.
b. Số nguyên dương a được gọi là số hoàn hảo nếu tổng các ước thực sự của nó
(trừ a) bằng chính nó (Ví dụ: Số 6 là số hoàn hảo vì 6 có 3 ước thực sự là 1, 2, 3 và
1+2+3=6). Tính tổng các số hoàn hảo trong đoạn từ 1 đến N.
Dữ liệu vào: File vào ghi một số nguyên dương N.
Dữ liệu ra: File ra ghi 2 số nguyên dương được viết cách nhau bởi một dấu cách là số lượng số nguyên tố và tổng các số hoàn hảo trong đoạn từ 1 đến N.
program bt;
var f,g:text;
d,i, n:longint;
function ktnt(k:longint):boolean;
var kt:boolean;x:longint;
begin
if k<2 then kt:=False else2>
begin
kt:=true;
for x:=2 to trunc(sqrt(k)) do
begin
if k mod x=0 then
begin
kt:=false;break;
end;
end;
end;
ktnt:=kt;
end; function kthh(x: integer):BOOLEAN;
VAR tam,i:INTEGER;
BEGIN
tam:=0;
FOR i:= 1 TO (x DIV 2) DO
IF x MOD i = 0 THEN tam:=tam+i;
IF tam = x THEN kthh:=TRUE
Else kthh:=False;
END;
begin
assign(f,'demnt.inp');reset(f);
assign(g,'demnt.out');rewrite(g);
readln(f,n);
for i:=1 to n do
begin
{read(f,i);}
if ktnt(i) then d:=d+1;
end;
write(g,d,' ');
for i:=1 to n do
begin
{read(f,i);}
if kthh(i) then write(g, i,' ');
end;
close(f);close(g);
readln;
end.
Bài tập
Lập chương trình PASCAL thực hiện yêu cầu sau:
Nhập từ bàn phím số nguyên n và mảng gồm n số nguyên (n ≤ 100).
a. Tính và in ra màn hình tổng các số nguyên tố có trong mảng;
b. Kiểm tra mảng có đối xứng hay không (Ví dụ mảng đối xứng: 1; 3; 5; 3; 1);
c. Sắp xếp mảng theo thứ tự tăng dần.
- Lưu bài với tên tệp tin: D:\SBDxxx\Cau4_SBDxxx.pas (trong đó xxx là số báo danh của thí sinh).
program Bai_tap;
uses crt;
Type Mang20 = array[1..10] of longint;
var k, n, i: longint;
A: Mang20;
Procedure NhapMang(Var A : Mang20 ;Var N:longint);
Var i: Integer;
Begin
Write( 'So luong phan tu:' ); Readln( N);
For i:=1 to N do
Begin
Write( 'Nhap phan tu thu ', i,': ' ); Readln( A[i] );
End;
End;
Function KtraDoiXung (A:Mang20; N:longint ) : Boolean;
Var Flag:Boolean;
i :Integer;
Begin
KtraDoiXung :=True;
For i :=1 to N do
If(A[i] <> A[N-i +1]) Then
Flag:=False;
KtraDoiXung :=Flag;
End;
Function ktnt(Var A : Mang20; Var N:longint):boolean;
var kt:boolean;x:longint;
begin
if k<2 else="" font="" kt:="false" then="">2>
begin
kt:=true;
for x:=2 to trunc(sqrt(k)) do
begin
if k mod x=0 then
begin
kt:=false;break;
end;
end;
end;
ktnt:=kt;
end;
Function XuatMang(A:Mang20; N:longint ):longint;
Var i ,j,k :Integer;
Begin
For i :=1 to N do
For j :=1 to N do
If ( (i A[j]) ) then
Begin
k := A[i];
A[i] := A[j];
A[j] := k;
End;
For i :=0 to N do
Write( A[i]:2 );
End;
begin
Clrscr;
NhapMang(A, N);
If ( KtraDoiXung(A, N ) ) then
Writeln( ' Mang A doi xung.')
Else
Writeln(' Mang A khong doi xung.');
If ( ktnt(A, N ) ) then
Writeln( ' Cac so nguyen to: ');
Writeln( 'Ket qua sap sep:');
XuatMang(A, N);
Readln;
end.
Xem thêm…