Номера мобильных телефонов могут выглядеть по-разному: 8-111-1111111 +7 111 1111111 +71111111111 8(111)111-1111 и т. д. Написать программу, приводящую номер к виду +7 111 111 11 11 — Pascal(Паскаль)

Var
 s, s1, s2, s3: String;
 i, opr1: Integer;
Begin
 ReadLn(s);
 opr1 := 0;
 s1 := '';
 SetLength(s1, Length(s));
 For i := 1 To Length(s) Do
  If (Ord(s[i]) = 43) Or ((Ord(s[i]) > 47) And (Ord(s[i]) < 58)) Then
   Begin
    Inc(opr1);
    s1[opr1] := s[i];
   End;
 SetLength(s1, opr1);
 SetLength(s2, 12);
 SetLength(s3, 16);
 If (Length(s1) = 11) Then
  Begin
   s2[1] := '+';
   s2[2] := '7';
   For i := 2 To Length(s1) Do
    s2[i+1] := s1[i];
  End;
 If (Length(s1) = 12) Then
  For i := 1 To Length(s1) Do
   s2[i] := s1[i];
For i := 1 To 2 Do
 s3[i] := s2[i];
s3[3] := ' ';
For i := 4 To 6 Do
 s3[i] := s2[i-1];
s3[7] := ' ';
For i := 8 To 10 Do
 s3[i] := s2[i-2];
s3[11] := ' ';
For i := 12 To 13 Do
 s3[i] := s2[i-3];
s3[14] := ' ';
For i := 15 To 16 Do
 s3[i] := s2[i-4];
 WriteLn(s);
 WriteLn(Length(s1));
 WriteLn(s1);
 WriteLn(Length(s2));
 WriteLn(s2);
 WriteLn(Length(s3));
 WriteLn(s3);
 ReadLn;
End.

Leave a Comment

13 − = 5