![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DivMod [D6]
valua © (2007-03-23 15:38:00)Господа , прошу прощения за элементарный вопрос , но ...
Функция DivMod(Div:Integer,Del:Word,var:Result,Remainder:Word)
var Del,Remainder:Words;
Result,Div:Integer;
.....
определяю переменные в соответствии с типами функции.
пишу ->
DivMod(X,Del,Result,Remainder)
выдает ошибку на Remainder.
Господа как правильно описать типы , что не так .
Всем спасибо .
valua (2007-03-26 10:51:00) [1]Господа , прошу прощения за свой вопрос . Пятница - действительно не мой день .
Ошибка в том , что
DivMod(ix1, Div, Result, Remainder);
Div - выходит за границы предела значения типа Word - 65500 .
Вот и весь глюк .
Если число Div > 65500 , надо писать свою функцию .
RASkov (2007-03-23 17:54:00) [2]> Если пишу Result:Word! , дает ошибку ->
> Identifier redeclaried : "result" .
В каждой функции переменная Result обявлена неявно, и в нее записывается результат функции.
Desdechado (2007-03-23 17:48:00) [3]Почитай хоть про типы данных, что ли.
Не каждой число подойдет для запихивания в любой тип данных.
valua (2007-03-23 17:43:00) [4]Если пишу Result:Word! , дает ошибку ->
Identifier redeclaried : "result" .
Если пишу d := 1000000; (d:Word;) - дает еще и ошибку на эту строку ,
кто знает как правильно определить типы , и как правильно записать (мне надо делить на 1000000 , 10000 и т.д.) .
Всем спасибо .
var X:Real;
str:String;
ix1:Integer;
Remainder:Word;
Resullt:Word;
begin
str := FloatToStr(int(X));
ix1 := StrToInt(str);
DivMod(ix1,1000000,Result,Remainder);
Попробуйте на практике , все написано как в справочнике .
Если убираю Resullt:Word; - дает ошибку .
Правильный Вася (2007-03-23 17:21:00) [5]> Del:Word,
> 1000000
не сходицца
Elen (2007-03-23 16:37:00) [6]
> Resullt:Integer;
Вместо этого пиши Result:Word!
Loginov Dmitry (2007-03-23 16:30:00) [7]См [1]
Сергей М. (2007-03-23 16:29:00) [8]Удалено модератором
valua (2007-03-23 16:21:00) [9]Спасибо , сегодня явно не мой день , но теперь другая ошибка (надо
сделать) :
var X:Real;
ix1:Integer;
Remainder:Word;
Resullt:Integer;
begin
str := FloatToStr(int(X));
ix1 := StrToInt(str);
DivMod(ix1,1000000,Result,Remainder);
выдает ошибку на Result ->
constant expression violates subrange bounds
Elen (2007-03-23 15:53:00) [10]
> Функция DivMod(Div:Integer,Del:Word,var:Result,Remainder: Word)
>
> var Del,Remainder: Word s;
Разницу видишь?