дешифровки: Const sh = '_.,'; Var St : String; i : Integer; Function DeCode(S : String; Tabl : String; k : Integer) : String; Var j,n : Integer; Begin For j:=1 to Length(S) do Begin n:=Pos(S[j],sh); If n>0 then Begin n:=n+k; While n>Length(sh) do n:=n-Length(sh); While n<=0 do n:=n+Length(sh); S[j]:=sh[n]; end end; DeCode:=S; end; Begin St:='ЗЫФЙГФШРЦ . ШД'; Writeln(Decode(St,sh,-6)); //For i:=-10 to 10 do Writeln(Decode(St,sh,i)); end.
var
Ch, Mes, MaxCh: Integer;
begin
Write ('Введите число (1-31):');
ReadLn (Ch);
if (Ch < 1) or (Ch > 31) then begin
WriteLn ('Введено некорректное число');
Exit;
end;
Write ('Введите месяц (1-12): ');
ReadLn (Mes);
if (Mes < 1) or (Mes > 12) then begin
WriteLn ('Введен некорректный месяц');
Exit;
end;
case Mes of
1, 3, 5, 7, 8, 10, 12: MaxCh := 31;
4, 6, 9, 11: MaxCh := 30;
2: MaxCh := 28;
end;
if Ch <= MaxCh then
WriteLn ('Дата правильная')
else
WriteLn ('Дата неправильная!');
end.
// в программе не учитывается то, что в високосном году февраль имеет 29 дней
дешифровки:
Const sh = '_.,';
Var
St : String;
i : Integer;
Function DeCode(S : String; Tabl : String; k : Integer) : String;
Var j,n : Integer;
Begin
For j:=1 to Length(S) do
Begin
n:=Pos(S[j],sh);
If n>0 then
Begin
n:=n+k;
While n>Length(sh) do n:=n-Length(sh);
While n<=0 do n:=n+Length(sh);
S[j]:=sh[n];
end
end;
DeCode:=S;
end;
Begin
St:='ЗЫФЙГФШРЦ . ШД';
Writeln(Decode(St,sh,-6));
//For i:=-10 to 10 do Writeln(Decode(St,sh,i));
end.