10.04.2017

Mã số sách

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