Giải đề thi HSG tỉnh Nghệ An năm 2011 2012_trúc giải( THPT Nguyễn Đức Mậu)
Chia sẻ bởi Nguyễn Ngọc Trúc |
Ngày 26/04/2019 |
54
Chia sẻ tài liệu: Giải đề thi HSG tỉnh Nghệ An năm 2011 2012_trúc giải( THPT Nguyễn Đức Mậu) thuộc Tin học 11
Nội dung tài liệu:
Giải đề hs giỏi tỉnh Nghệ An môn tin học 2011 2012
GV: Nguyễn Thị Ngọc Trúc. ĐTDĐ: 0927 409 419
Trường : THPT Nguyễn Đức Mậu – Quỳnh Lưu – Nghệ An
Bài 1: Nén xâu
Một xâu kí tự có thể nén lại thành 1 một xâu mới bằng cách nén các kí tự giống nhau đứng cạnh nhau. Ví dụ trong xâu AAAA sẽ nén thành 4A. Hãy lập trình để nén 1 xâu kí tự in hoa theo cách trên.
Dữ liệu: vào từ file văn bản NENXAU.INP một xâu, mà các kí tự là chữ cái in hoa.
Kết quả: ghi vào file văn bản NENXAN.OUT một xâu kí tự sau khi nén.
VD:
Nenxau.inp
Nenxau.out
NNNAAAAFGGH
3N4AF2GH
Giải:
program nenxau;
const fi=`nenxau.inp`;
fo=`nenxau.out`;
var f1,f2:text;
s,st:string;
i,j:byte; d:integer;
a:array[`A`..`Z`] of integer;
ch:char;
procedure OpenFile;
begin
assign(f1,fi);reset(f1);
assign(f2,fo);rewrite(f2);
end;
procedure Closefile;
begin
close(f1);close(f2);
end;
procedure Thuchien;
begin
read(f1,s);
for i:=1 to length(s)do s[i]:=upcase(s[i]);
for i:=1 to length(s) do
begin
CH:=S[I];
a[CH]:=a[CH]+1;
end;
for i:=1 to length(s) do
if s[i]<> s[i+1] then
begin
if a[s[i]]>1 then write(f2,a[s[i]],s[i])else
if a[s[i]]=1 then write(f2,s[i]);
end;
end;
BEGIN
Openfile;
Thuchien;
Closefile;
END.
Bài 2: Số nguyên tố đối xứng
Một số nguyên dương T được gọi là số nguyên tố đối xứng nếu thỏa mãn các yêu cầu sau:
T là một số nguyên tố
T là một số đối xứng (đọc T từ trái qua phải thu được kết quả giống như đọc T từ phải qua trái). Ví dụ 12321 là 1 số đối xứng.
Yêu cầu: cho 2 số nguyên dương A và B, hãy tìm số lượng các số nguyên tố đối xứng T thỏa mãn A ≤ T ≤ B 100000
Dữ liệu: vào từ file văn bản NTDX.INP gồm 1 dòng chứa 2 số nguyên dương A và B cách nhau 1 dấu cách (104 ≤ A < B <105)
Kết quả: ghi vào file văn bản NTDX.INP một số nguyên là số lượng số nguyên tố tìm được.
VD
NTDX.inp
NTDX.out
11111 22222
23
Giải:
program NTDX;
const fi=`NTDX.INP` ;
fo=`NTDX.OUT`;
var f1,f2:text;
{===============================}
procedure OpenFile;
begin
assign(f1,fi);reset(f1);
assign(f2,fo);rewrite(f2);
end;
procedure Closefile;
begin
close(f1);close(f2);
end;
{===========Kiểm tra nguyên tố=====================}
function ktnt(n:LONGINT):boolean;
var kt:boolean; i:LONGINT;
begin
kt:=true;
for i:=2 to n div 2 do
if n mod i =0 then kt:=false;
ktnt:=kt;
end;
{============Kiểm tra tính đối xứng=================}
function ktdx(s:string):boolean;
var kt:boolean;i:longint;
begin
kt:=true;
for i:=1 to length(s) do
if s[i]<>s[length(s)-i+1] then kt:=false;
ktdx:=kt;
end;
{=============================}
procedure Thuchien;
var st:string; a,t,b:LONGINT; d:integer;
BEGIN d:=0;
read(f1,a,b);
for t:=a to b do
begin
if ktnt(t) then
begin
str(t,st);
if ktdx(st) then d:=d+1;
end;
end;
writeln(f2,d);
END;
{=========Than Chuong Trinh===========}
BEGIN
Openfile;
ThucHien;
CloseFile;
END.
Bài 3: DÃY SỐ TƯƠNG
GV: Nguyễn Thị Ngọc Trúc. ĐTDĐ: 0927 409 419
Trường : THPT Nguyễn Đức Mậu – Quỳnh Lưu – Nghệ An
Bài 1: Nén xâu
Một xâu kí tự có thể nén lại thành 1 một xâu mới bằng cách nén các kí tự giống nhau đứng cạnh nhau. Ví dụ trong xâu AAAA sẽ nén thành 4A. Hãy lập trình để nén 1 xâu kí tự in hoa theo cách trên.
Dữ liệu: vào từ file văn bản NENXAU.INP một xâu, mà các kí tự là chữ cái in hoa.
Kết quả: ghi vào file văn bản NENXAN.OUT một xâu kí tự sau khi nén.
VD:
Nenxau.inp
Nenxau.out
NNNAAAAFGGH
3N4AF2GH
Giải:
program nenxau;
const fi=`nenxau.inp`;
fo=`nenxau.out`;
var f1,f2:text;
s,st:string;
i,j:byte; d:integer;
a:array[`A`..`Z`] of integer;
ch:char;
procedure OpenFile;
begin
assign(f1,fi);reset(f1);
assign(f2,fo);rewrite(f2);
end;
procedure Closefile;
begin
close(f1);close(f2);
end;
procedure Thuchien;
begin
read(f1,s);
for i:=1 to length(s)do s[i]:=upcase(s[i]);
for i:=1 to length(s) do
begin
CH:=S[I];
a[CH]:=a[CH]+1;
end;
for i:=1 to length(s) do
if s[i]<> s[i+1] then
begin
if a[s[i]]>1 then write(f2,a[s[i]],s[i])else
if a[s[i]]=1 then write(f2,s[i]);
end;
end;
BEGIN
Openfile;
Thuchien;
Closefile;
END.
Bài 2: Số nguyên tố đối xứng
Một số nguyên dương T được gọi là số nguyên tố đối xứng nếu thỏa mãn các yêu cầu sau:
T là một số nguyên tố
T là một số đối xứng (đọc T từ trái qua phải thu được kết quả giống như đọc T từ phải qua trái). Ví dụ 12321 là 1 số đối xứng.
Yêu cầu: cho 2 số nguyên dương A và B, hãy tìm số lượng các số nguyên tố đối xứng T thỏa mãn A ≤ T ≤ B 100000
Dữ liệu: vào từ file văn bản NTDX.INP gồm 1 dòng chứa 2 số nguyên dương A và B cách nhau 1 dấu cách (104 ≤ A < B <105)
Kết quả: ghi vào file văn bản NTDX.INP một số nguyên là số lượng số nguyên tố tìm được.
VD
NTDX.inp
NTDX.out
11111 22222
23
Giải:
program NTDX;
const fi=`NTDX.INP` ;
fo=`NTDX.OUT`;
var f1,f2:text;
{===============================}
procedure OpenFile;
begin
assign(f1,fi);reset(f1);
assign(f2,fo);rewrite(f2);
end;
procedure Closefile;
begin
close(f1);close(f2);
end;
{===========Kiểm tra nguyên tố=====================}
function ktnt(n:LONGINT):boolean;
var kt:boolean; i:LONGINT;
begin
kt:=true;
for i:=2 to n div 2 do
if n mod i =0 then kt:=false;
ktnt:=kt;
end;
{============Kiểm tra tính đối xứng=================}
function ktdx(s:string):boolean;
var kt:boolean;i:longint;
begin
kt:=true;
for i:=1 to length(s) do
if s[i]<>s[length(s)-i+1] then kt:=false;
ktdx:=kt;
end;
{=============================}
procedure Thuchien;
var st:string; a,t,b:LONGINT; d:integer;
BEGIN d:=0;
read(f1,a,b);
for t:=a to b do
begin
if ktnt(t) then
begin
str(t,st);
if ktdx(st) then d:=d+1;
end;
end;
writeln(f2,d);
END;
{=========Than Chuong Trinh===========}
BEGIN
Openfile;
ThucHien;
CloseFile;
END.
Bài 3: DÃY SỐ TƯƠNG
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Ngọc Trúc
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)