Программа не выводит отрицательные числа и нули. Delphi
Калькулятор не выводит на дисплей отрицательные числа при нажатии на кнопку "Not", он просто оставляет дисплей пустым. А вот при сложении и вычитании выводит. Хотя мне надо чтоб и так и так выводил. Вот в этих функциях где то ошибка, что ему не нравится я не понимаю. Главная при сложении и вычитании выводит, а при использовании "Not" не хочет.
Калькулятор не выводит на дисплей отрицательные числа при нажатии на кнопку "Not", он просто оставляет дисплей пустым. А вот при сложении и вычитании выводит. Хотя мне надо чтоб и так и так выводил. Вот в этих функциях где то ошибка, что ему не нравится я не понимаю. Главная при сложении и вычитании выводит, а при использовании "Not" не хочет.
Код:
function CharToInt(Ch:char):integer;
begin //преобразование цифровой литеры в число
case Ch of
'0'..'9': Result:= Ord(Ch) - Ord('0');
'A'..'F': Result:= Ord(Ch) - Ord('A') + 10;
else Result:= 0;
end;
end;
function IntToChar(N:integer):char;
begin //преобразование числа в цифровую литеру
case N of
0..9 : Result:= char(Ord('0') + N);
10..15 : Result:= char(Ord('A') + N - 10);
else Result:= '0';
end;
end;
function StringToInt(const S: string; Radix: integer): integer;
var i: integer; //преобразуем цифровую строку S в число
neg : boolean;
begin
Result := 0;
neg := false;
if (Length(S)>0) and (S[1]='-') then neg := true;
for i := 1 to Length(S) do
Result := Result * Radix + CharToInt(S[i]);
if neg then Result := -Result;
end;
function IntToString(N, Radix: integer): string;
var neg, zig : boolean;
begin //преобразуем число N в строку цифр
neg:= N<0;
zig:=N=0;
N := abs(N);
while abs(N) > 0 do begin
Result := IntToChar(N mod Radix) + Result;
N := N div Radix;
end;
if neg then Result := '-'+Result;
if zig then Result := '0';
end;