Запишите в переменную S сумму первых после десятичной точки трех цифр вещественного числа Y - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Уважаемые господа! Помогите советом: В вещественной переменной Y записано некоторое неотрицательное число, не превосходящее 30000. Запишите в переменную S сумму первых после десятичной точки трех цифр числа Y. Можно использовать дополнительные переменные любых типов.

Решение задачи: «Запишите в переменную S сумму первых после десятичной точки трех цифр вещественного числа Y»

textual
Листинг программы
  1. var y:real;
  2.     s:string;
  3.     i,p,sum:byte;
  4. begin
  5. repeat
  6. write('Введите вещественное число с дробной частью y=');
  7. readln(y);
  8. until frac(y)<>0;
  9. s:=floattostr(y);
  10. p:=pos('.',s);
  11. while length(s)-p<3 do s:=s+'0';
  12. sum:=0;
  13. for i:=p+1 to p+3 do
  14. sum:=sum+strtoint(s[i]);
  15. write(sum)
  16. end.

Объяснение кода листинга программы

  1. В первой строке объявляются три переменные: y типа real (вещественное число), s типа string (строка) и две булевые переменные i и p типа byte (для цикла и обработки строки). Значения переменных не присваиваются.
  2. Затем используется цикл repeat-until для ввода числа от пользователя до тех пор, пока его дробная часть не станет равной нулю.
  3. Во время каждой итерации цикла переменная s присваивается строковое представление числа y, а переменная p получает позицию десятичной точки в этой строке.
  4. Если длина строки s меньше трех символов после десятичной точки, то к строке добавляются нули до тех пор, пока длина не достигнет требуемого значения.
  5. Затем в цикле for перебираются символы с позиции p+1 до p+3 в строке s и к переменной sum прибавляется их числовое значение, полученное с помощью функции strtoint.
  6. Наконец, значение переменной sum выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы