Вверх ↑
Этот топик читают: Гость
Ответов: 1821
Рейтинг: 168
#1: 2012-01-10 23:31:42 ЛС | профиль | цитата
Подскажите пожалуйста, почему данный код для Math не работает?

#pas
...
function Factorial(n: integer): Longint; //This function for calculating of factorial
var
f: LongInt;
i: Integer;
begin
f := 1;
for i := 2 to n do
f := f * i;
Result := f;
end;

procedure THIMath._work_doOperation44;{fact}
begin
Res := Factorial(ToInteger(ReadReal(_Data,_data_Op1,_prop_Op1)));
_hi_OnEvent(_event_onResult,Res);
end;
...
Код вычисляет факториал числа, компилятор выдаёт ошибку: D:\x install\HiAsm\Elements\delphi\code\hiMath.pas(781) Error: Incompatible types: 'TData' and 'Real'
карма: 5

0
Ответов: 3889
Рейтинг: 362
#2: 2012-01-10 23:45:47 ЛС | профиль | цитата
sаmakacd, Видимо, ReadReal выдаёт (угадайте, - что) Real, а ToInteger ожидает TData.
карма: 1

1
Голосовали:sаmakacd
Ответов: 5446
Рейтинг: 323
#3: 2012-01-10 23:51:20 ЛС | профиль | цитата
sаmakacd, тебе же чистым русским английским языком говорят - несовместимые типы TData и Real. Т.е. ты где-то вместо TData подсовываешь Real, или наоборот.
Единственным местом, где у тебя фигурирует Real - выход функции ReadReal. Значит, функция ToInteger хочет на вход TData. Проверим себя: найдём описание функции ToInteger - оно в файле Functions.pas:
 function ToInteger(const Data:PData):integer;
PData - это просто указатель на TData, так что гипотеза оказалась верной.

На вопрос "а как правильно" - ответь сам, ответов минимум два.

карма: 1

1
Голосовали:sаmakacd
Ответов: 16884
Рейтинг: 1239
#4: 2012-01-11 00:06:56 ЛС | профиль | цитата
sаmakacd,
code_26512.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1code_26512.txt [840B] [264]
Голосовали:sаmakacd
Ответов: 8921
Рейтинг: 823
#5: 2012-01-11 00:24:44 ЛС | профиль | цитата
sаmakacd, а вот в картинках для не грамотных
Факториал.jpg
карма: 19

0
файлы: 1Факториал.jpg [136.3KB] [657]
Ответов: 67
Рейтинг: 5
#6: 2012-01-11 00:36:11 ЛС | профиль | цитата
Леонид, опция с картинки из будущего? Странно, но у меня нет в Math такой опции, заканчивается ...floor,ceil
карма: 1

0
Ответов: 3889
Рейтинг: 362
#7: 2012-01-11 01:17:33 ЛС | профиль | цитата
10755, машина времени - SVN.
карма: 1

0
Ответов: 67
Рейтинг: 5
#8: 2012-01-11 01:21:22 ЛС | профиль | цитата
1nd1g0 писал(а):
SVN
по правому включателю мышки пишет Not, с надписью не поспоришь [offtop]а Леонид молчит, наверное, плохо о нас думает![/offtop]
карма: 1

0
Ответов: 3889
Рейтинг: 362
#9: 2012-01-11 01:27:27 ЛС | профиль | цитата
10755, придёт мастер и починит машину
карма: 1

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#10: 2012-01-11 01:30:10 ЛС | профиль | цитата
1nd1g0 писал(а):
машина времени - SVN

Пардонсе, а кто его туда затолкал Я точно не делал факториал для Math
карма: 22

0
Ответов: 67
Рейтинг: 5
#11: 2012-01-11 01:33:27 ЛС | профиль | цитата
nesco писал(а):
Пардонсе, а кто его туда затолкал
а там и нет такого функционала
Это Леонид мудрствует
карма: 1

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#12: 2012-01-11 01:34:37 ЛС | профиль | цитата
10755 писал(а):
а там и нет такого функционала

Ну, я это 1nd1g0 написал, хотел спросить -- где он его взял.
Может это тонкий намек... -- а не добавить ли наме его
карма: 22

0
Ответов: 67
Рейтинг: 5
#13: 2012-01-11 01:37:45 ЛС | профиль | цитата
nesco писал(а):
Может это тонкий намек... -- а не добавить ли нам его
Желание есть - можно и добавить, уже хуже не будет согласно
nesco писал(а):
В настоящем пакете больше не будет ничего добавляться, объединяться и переделываться, только будут корректироваться обнаруженные баги. Пакет приобретает статус замороженного, так же, как сейчас сам Hiasm 4
пакет на плаву пока живы участвующие
карма: 1

0
Ответов: 3889
Рейтинг: 362
#14: 2012-01-11 01:55:38 ЛС | профиль | цитата
10755 писал(а):
Желание есть - можно и добавить, уже хуже не будет

Хотелось бы практическую пользу, кроме общеобразовательной, уточнить, конечно.
карма: 1

0
Ответов: 67
Рейтинг: 5
#15: 2012-01-11 01:58:21 ЛС | профиль | цитата
1nd1g0 писал(а):
Хотелось бы практическую пользу
снежинки рожать
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)