Запишите в переменную S сумму первых после десятичной точки трех цифр вещественного числа Y - PascalABC.NET
Формулировка задачи:
Уважаемые господа! Помогите советом:
В вещественной переменной Y записано некоторое неотрицательное число, не превосходящее 30000. Запишите в переменную S сумму первых после десятичной точки трех цифр числа Y. Можно использовать дополнительные переменные любых типов.
Решение задачи: «Запишите в переменную S сумму первых после десятичной точки трех цифр вещественного числа Y»
textual
Листинг программы
var y:real; s:string; i,p,sum:byte; begin repeat write('Введите вещественное число с дробной частью y='); readln(y); until frac(y)<>0; s:=floattostr(y); p:=pos('.',s); while length(s)-p<3 do s:=s+'0'; sum:=0; for i:=p+1 to p+3 do sum:=sum+strtoint(s[i]); write(sum) end.
Объяснение кода листинга программы
- В первой строке объявляются три переменные:
y
типа real (вещественное число),s
типа string (строка) и две булевые переменныеi
иp
типа byte (для цикла и обработки строки). Значения переменных не присваиваются. - Затем используется цикл repeat-until для ввода числа от пользователя до тех пор, пока его дробная часть не станет равной нулю.
- Во время каждой итерации цикла переменная
s
присваивается строковое представление числаy
, а переменнаяp
получает позицию десятичной точки в этой строке. - Если длина строки
s
меньше трех символов после десятичной точки, то к строке добавляются нули до тех пор, пока длина не достигнет требуемого значения. - Затем в цикле for перебираются символы с позиции
p+1
доp+3
в строкеs
и к переменнойsum
прибавляется их числовое значение, полученное с помощью функции strtoint. - Наконец, значение переменной
sum
выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д