
23.05.2009, 18:47
|
|
Новичок
Регистрация: 15.05.2009
Сообщений: 11
С нами:
8942183
Репутация:
0
|
|
Определить, является ли заданная строка "правильной записью целого числа" (возможно со знаком). Нужна рекурсивная функция с такими параметрами:
function IsCorrectIntegerValue(val:string):boolean
Пытаюсь сделать рекурсию - не работает. Вот код без рекурсии:
uses crt;
function IsCorrectIntegerValue(val:string):boolean;
var k:byte;
begin
k:=1;
IsCorrectIntegerValue:=true;
while k<=length(val) do
begin
if not(val[1] in ['-','0'..'9'])
or((val[1]='-')and not(val[2] in ['1'..'9']))
or((val[1] in ['0'..'9'])and not(val[k] in ['0'..'9'])) then
begin
IsCorrectIntegerValue:=false;
break;
end
else
k:=k+1;
end;
end;
var s:string;
begin
clrscr;
writeln('Введите число:');
readln(s);
if IsCorrectIntegerValue(s) then writeln('Является!')
else writeln ('Не является!');
readln;
end.
|
|
|