62 lines
1.2 KiB
ObjectPascal
62 lines
1.2 KiB
ObjectPascal
//uses StrToIntUnit;
|
|
|
|
procedure TestWrong(const s: string);
|
|
begin
|
|
var i: integer;
|
|
var code := 0;
|
|
try
|
|
i := StrToInt(s);
|
|
except
|
|
code := 1;
|
|
end;
|
|
if code<>1 then
|
|
begin
|
|
writeln;
|
|
writeln(s+' : Должно было произойти исключение')
|
|
end
|
|
else write('OK ');
|
|
end;
|
|
|
|
procedure Test(const s: string);
|
|
begin
|
|
var code := 0;
|
|
try
|
|
var i := StrToInt(s);
|
|
var i1 := integer.Parse(s);
|
|
if i<>i1 then
|
|
code := 2;
|
|
except
|
|
code := 1;
|
|
end;
|
|
if code=1 then
|
|
begin
|
|
writeln;
|
|
writeln(s+' : Ошибка при переводе строки в целое')
|
|
end
|
|
else if code=2 then
|
|
begin
|
|
writeln;
|
|
writeln(s+' : Ошибка - неправильно работает')
|
|
end
|
|
else write('OK ');
|
|
end;
|
|
|
|
begin
|
|
TestWrong('');
|
|
TestWrong(' ');
|
|
TestWrong('+');
|
|
TestWrong(' - ');
|
|
TestWrong(' a1');
|
|
TestWrong(' 1a ');
|
|
TestWrong(' 12+3 ');
|
|
TestWrong(' ++1 ');
|
|
Test(integer.MaxValue.ToString);
|
|
Test(integer.MinValue.ToString);
|
|
var s1 := '2147483648'; // integer.MaxValue + 1
|
|
TestWrong(s1);
|
|
s1 := '-2147483649'; // integer.MinValue - 1
|
|
TestWrong(s1);
|
|
Test(' 1 ');
|
|
Test(' -1 ');
|
|
Test(' -1 ');
|
|
end. |