Localize file www.TrSek.com/cover/neznamy/cislo_uctu.pas
{ CISLO_UCTU.PAS                                                    }
{ Program na zistenie ci cislo bankoveho uctu je spravne.           }
{                                                                   }
{ Author: Neznamy                                                   }
{ Date  : 27.00.2010                           http://www.trsek.com }

program cislo_uctu;
var PredCislie: String; Ucet: String;

{ samotna funkcia na zistenie spravnosti cisla uctu }
function KontrolaModulo (PredCislie: String; Ucet: String): Boolean;
var
    Kod: String;
    I, J, K: Byte;
    Sucet: Word;
    Prefix, Account: Boolean;
begin
    Kod := '6,3,7,9,10,5,8,4,2,1';
    Result := False;
    Prefix := False;
    Account := False;

    { Kontrola predèíslia }
    Sucet := 0;
    For I := 0 to 5 do
        begin
         J := StrToInt(MidStr(PredCislie, I + 1, 1));
         K := StrToInt(Field(',', Kod, 5 + I));
         Sucet := Sucet + (J * K);
         end;
         If Sucet Mod 11 = 0 then Prefix := True;

    { Kontrola èísla úètu }
    Sucet := 0;
    For I := 0 to 9 do
        begin
         J := StrToInt(MidStr(Ucet, I + 1, 1));
         K := StrToInt(Field(',', Kod, I + 1));
         Sucet := Sucet + (J * K);
         end;
         If Sucet Mod 11 = 0 then Account := True;

    If (Prefix = True) and (Account = True) then Result := True;
end;

begin
  writeln('Program zisti ci je cislo uctu spravne (existujuce)');
  write('Zadaj predcislie uctu : ');
  readln( PredCislie );

  write('     Zadaj cislo uctu : ');
  readln( ucet );
  
  { kontrola }
  Write('Ucet ', PredCislie, '-', ucet,' ');
  if( KontrolaModulo(PredCislie, Ucet))then
      Writeln('je spravny')
  else
      Writeln('nesplna podmienky na modulo');

  readln;
end.


Copyrigth by Zdeno Sekerak 2007, http://www.trsek.com