Неправильное восприятие переменной - PascalABC.NET

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

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

Процедура не дописана. Натыкаюсь на проблему в последней строке, появляется ошибка "Ошибка времени выполнения: Попытка деления на нуль." Однако там отсутствует деление на нуль. Если вывести значение trunc`а, то он покажет нормальное число (Да там нуля в принципе быть не может, так как функция не позволяет). Не могу найти решение этой проблемы.

Решение задачи: «Неправильное восприятие переменной»

textual
Листинг программы
procedure modi(var m: integer); 
var k: real; var t,n,g,i: integer; 
begin 
m:= m*m;
t:= m; 
i:= 0; 
while (t>0) do begin 
t:= t div 10; 
i:= i+1; 
end; 
k:= (i-2)/2;
g:= m div trunc(power(10,k));
write(g);
end;
var m:integer;
begin
m:=5;
modi(m);
end.

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

В данном коде реализована процедура modi, которая принимает целочисленный аргумент m и выполняет следующие действия:

  1. Преобразует m в квадрат.
  2. Задает значения нескольких переменных: t, n, g и i.
  3. Переменная t инициализируется значением m, переменные n, g и i получают значение 0.
  4. В цикле while происходит деление t на 10 и увеличение i на 1 до тех пор, пока t больше 0.
  5. Значение переменной k вычисляется как (i-2)/2.
  6. Переменная g получает значение m, разделенное на округленное значение k в степени 10.
  7. Значение переменной g выводится на экран. В основной части программы задается значение переменной m равное 5 и вызывается процедура modi.

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


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

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

11   голосов , оценка 4 из 5
Похожие ответы