Задается строка символов. Написать подпрограмму, которая определяет, яв-ляется ли заданная строка правильной записью действительного числа в плавающем формате, и показывает место и причину первой ошибки — Pascal(Паскаль)

uses crt;
var
   a:string;
   b:set of char;
   d,c,i:integer;
begin
     clrscr;
     write('Vvedite 4islo '); readln(a);
     b:=['0'..'9'];
     if a[1] in b then c:=c+1 else writeln(a[1],' ne yavlyaetsya 4islom 1 mesto');
     if a[2]='.' then c:=c+1 else writeln('net znaka "."');
     for i:=3 to length(a) do
     if a[i]='E'then d:=i;
     for i:=3 to d-1 do
     if a[i] in b then c:=c+1 else writeln(a[i], ' ne yavlyaetsya 4islom ', i, ' mesto ');
     if d<4 then
        begin
             c:=c-1; writeln('net pokazatelya stepeni')
        end
     else if (a[d+1]<>'-') and (a[d+1]<>'+') then
          begin
          writeln('posle E otsutstvuet znak');
          c:=c-1;
          end
     else if a[d+2] in b then c:=c+2 else writeln('net 4isla stepeni');
     if d>3 then
     for i:=d+2 to length(a) do
     if a[i] in b then c:=c+1 else writeln(a[i], ' ne yavlyaetsya 4islom ', i, ' mesto ');
     if c=length(a) then writeln('4islo pravelno');
     readkey;
end.

Leave a Comment

20 − 18 =