10.05.2017, 21:07 | #1 (permalink) |
Новичок
Регистрация: 10.05.2017
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Программа не выводит отрицательные числа и нули. Delphi
Код:
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; |
10.05.2017, 21:07 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Подскажу вам, что проблему можно решить прочитав схожие темы Программа считывает двузначное число и выводит через пробел каждую цифру отдельно ребят, есть ли программа которая выводит красивый звуковой спектр на раб.стол???? Программа выводит результат бесконечное число раз. Не ясна причина Собственные числа на Delphi |
10.05.2017, 21:57 | #2 (permalink) |
Радиоинженер
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,300
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
|
Что-то не то с кодировкой. Русские буквы в виде кракозябриков.
Тут только функции, а где сама программа? Думаю проблема не в программе, а в формате вывода на экран. |
10.05.2017, 23:20 | #5 (permalink) |
Новичок
Регистрация: 10.05.2017
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Так ведь в Калькуляторе Windows это возможно же
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
10.05.2017, 23:41 | #9 (permalink) |
Новичок
Регистрация: 10.05.2017
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ладно, пофиг на этот Not, тогда вопрос таков как сделать так что бы при вводе одного числа и по нажатию на кнопку ROR или ROL производился циклический сдвиг вправо или влево в зависимости какая кнопка нажата. Только не надо мне писать операторы побитовых сдвигов.
|
10.05.2017, 23:43 | #10 (permalink) |
Радиоинженер
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,300
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
|
Да калькулятор Windows значительно сложней чем кажется. Обратите внимание на то, что кнопки A, B, C, D, E, F недоступны в режиме "Dec", а в Вашем их использование даже при суммировании вызывает ошибку деления на ноль.
Если речь про любую другую систему счисления, кроме двоичной, то никак - это не имеет смысла. Последний раз редактировалось Николай_С; 10.05.2017 в 23:48 |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|