Navigace: Hlavní stránka -> PASCAL -> 10 Znaky, texty ->10.08 Ověření správnosti rodného čísla

MENU

10.08 Ověření správnosti rodného čísla

Zadání:
Sestavte program, který ověří správnost rodného čísla.
Řešení:
Program nejdříve zkopíruje koncovku rodného čísla: zjistí pozici lomítka, pokud lomítko v zadaném rodném čísle
existuje, zkopíruje do proměnné c znaky od osmého znaku do konce řetězce, pokud lomítko neexistuje, zkopíruje
znaky od sedmé pozice do konce řetězce.
Poté program pomocí cyklu FOR převede zkopírovanou koncovku rodného čísla ze znaků na číslo do proměnné ci.
Na konci programu se testuje, zda zadané číslo je správné. Rodné číslo je správné, pokud je součet dne, měsíce,
roku a koncovky dělitelný beze zbytku číslem 11.
Např. rodné číslo 681103/2206: 68 + 11 + 03 + 2206 = 2288, 2288 : 11 = 208, rodné číslo je právné.
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var rc,c:string;
    poz,ci,i:integer;

begin

    write('Zadejte rodne cislo: ');
    readln(rc);

    poz:=pos('/',rc);
    if poz=0 then c:=copy(rc,7,length(rc)-6)
             else c:=copy(rc,8,length(rc)-7);

    ci:=0;
    for i:=1 to length(c) do
       ci:=10*ci+ord(c[i])-ord('0');

    if ((ord(rc[1])+ord(rc[3])+ord(rc[5]))*10+ord(rc[2])+ord(rc[4])+ord(rc[6])+
         ci-33*ord('0')) mod 11 = 0
    then writeln('Spravne')
    else writeln('Spatne');

    readln;

end.

program ke stažení