нельзя преобразовать real к integer, все перепробовал, не могу найти ошибку
program delta;
var a,b,c,d,e:integer;
begin
writeln('Введите число');
readln(a);
c:=a;
b := 0;
while a>0 do
begin
a:= a div 10;
inc(b);
end;
d:=c-(c mod 10)-(c div exp(ln(10) * (b-1)))*(exp(ln(10) * (b-1))+(c mod 10)*(exp(ln(10) * (b-1)))+(c div exp(ln(10) * (b-1))));
writeln(d);
end.
SpitefulSpamer:
Потому что функции exp() и ln() - возведение в степень и вычисление логарифма - выдают дробные числа
Да и так переставлять первую и последнюю цифру - это просто бред какой-то, уж извините.
d:=c-(c mod 10)-(c div exp(ln(10) * (b-1)))*(exp(ln(10) * (b-1))+(c mod 10)*(exp(ln(10) * (b-1)))+(c div exp(ln(10) * (b-1)))); - здравствуй ужас!
Тип real приводится к типу integer только путем явного отбрасывания дробной части i := Trunc(r), либо округления i := Round(r)
Ответы
Ответ дал:
0
Ответ:
a по-идее всегда больше 0 (Т.к. integer)
суть задания в том, чтобы переставить у данного числа первую и последнюю цифру местами
сделай по-другому тогда
введи новую переменную
я уже вводил, переставлял, ставит в real, не выходит
прировняй к ней 1 число
потом 2 к 1
и новую ко 2
попробую
типа 3=1 1=2 2=3
не, все равно проблема real к integer
Вас заинтересует
1 год назад
1 год назад
1 год назад
3 года назад
3 года назад
8 лет назад