Tin học trẻ Bến Tre 2009 - Bài 2
Để đánh mã số cho từng quyển sách trong thư viện trường, cán bộ thư viện dùng 5 ký tự, trong đó hai ký đầu là các chữ cái in hoa (A..Z), 3 ký tự sau là các chữ số (Lưu ý mã số sách k có 3 ký tự cuối là 000). Tuy nhiên trong quá trình đánh mã cho các quyển sách, cán bộ thư viện ghi nhầm một số quyển sách có mã k phù hợp với quy luật trên.
Yêu cầu:Hãy viết chương trình giúp cán bộ thư viện tìm ra những mã số sách nhầm lẫn
Dữ liệu:cho từ file văn bản có tên MASO.INP gồm nhiều dòng, mỗi dòng là một mã số của một quyển sách.
Kết quả:Ghi ra file MASO.OUT trong đó ghi ra các mã số k phù hợp vơi quy luật, mỗi mã số 1 dòng
VD:
MASO.INP MASO.OUT
SU201 HOA01
LY105 VA000
HOA01 T1001
VA000
DI11
T1001
Lời giải tham khảo
Program MASO;
Var F: text;
a: array[1..100] of string;
c, s, o: array[1..100] of longint;
i, j, k: longint;
BEGIN
Assign(F,'MASO.INP');
Reset(F);
While not EOF(F) do
Begin
k:= k+ 1;
Readln(F,a[k]);
End;
Close(f);
Assign(F,'MASO.OUT');
Rewrite(F);
For i:= 1 to k do
Begin
c[i]:= 0; s[i]:= 0;
For j:= 1 to length(a[i]) do
Begin
If a[i][j] in ['A'.. 'Z'] then
c[i]:= c[i]+ 1
else
s[i]:= s[i]+ 1;
If a[i][j]= '0' then
o[i]:= o[i]+ 1;
End;
End;
For i:= 1 to k do
If (c[i]<> 2) or (s[i]<> 3) or (o[i]= 3) then
Writeln(F,a[i]);
Close(F);
End.
No comments:
Post a Comment
Cảm ơn bạn đã nhận xét