Функция, определяющая количество значащих цифр в записи числа - Turbo Pascal
Формулировка задачи:
Напишите функцию, которая имеет один целочисленный параметр и вырабатывает значение, равное числу значащих цифр в записи этого параметр.(Например для параметра -0183 значение функции должно быть равно 3)
Решение задачи: «Функция, определяющая количество значащих цифр в записи числа»
textual
Листинг программы
function TrimLeftZeroes(x: LongInt): Longint; var s: string; k: LongInt; neg: boolean; err: integer; begin str(x, s); neg := s[1] = '-'; if neg then delete(s, 1, 1); while s[1] = '0' do delete(s, 1, 1); k:=length(s); { if neg then s := '-' + s; val(s, k, err);} TrimLeftZeroes := k; end; begin writeln(TrimLeftZeroes(-000001234)); end.
Объяснение кода листинга программы
- Функция
TrimLeftZeroes
принимает один аргумент типаLongInt
и возвращает результат типаLongInt
. - В начале функции объявляются переменные
s
,k
,neg
иerr
. Переменнаяs
типаstring
используется для хранения строкового представления числа, а переменнаяk
типаLongInt
будет хранить длину строкиs
. Переменнаяneg
устанавливается в значениеtrue
, если первая цифра числа равна '-', и вfalse
в противном случае. Переменнаяerr
типаinteger
будет использоваться для обработки ошибок. - С помощью оператора
str(x, s)
числоx
преобразуется в строку и сохраняется в переменнойs
. - Затем проверяется, равно ли значение первой цифры числа '-'. Если это так, то с помощью оператора
delete(s, 1, 1)
удаляется первый символ из строкиs
. - Далее, пока первый символ строки
s
равен '0', с помощью оператораdelete(s, 1, 1)
удаляется первый символ. - После этого вычисляется длина строки
s
с помощью оператораlength(s)
. - Если значение переменной
neg
равноtrue
, то к строкеs
добавляется символ '-'. - В конце функция возвращает значение переменной
k
. - В основной части программы вызывается функция
TrimLeftZeroes
с аргументом-000001234
и результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д