Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2004-04-08

Re[4]: RoundEx [Delphi -> C++Builder]

-=[Дрова!]=-
8 апреля 2004 г. /четверг 10:25:01/ Feniks |E-Mail: <mailto:feni***@b*****.ua>|
в мессаге <<RoundEx [Delphi -> C++Builder]>> накрапал:
[B~E~G~I~N~>
Feniks> Здравствуйте, Havoc.
Feniks> Вы писали 8 апреля 2004 г. в 2:02:44:
B>>> double RoundEx( double X,N)
B>>> { double ScaledFractPart, Temp;
B>>> ScaledFractPart = Frac(X) * N;
~~~< Message on address 0x00000000 cannot be read (written) >[E|.|N|.|D|.>

Ну, если так, то конечно... В смысле про INT и FRAC - я не вкурил эти функции
:-(

Про modF:

[ BCB HELLp >

Prototype

double modf(double x, double *ipart);

long double modfl(long double x, long double *ipart);

Description

Splits a double or long double into integer and fractional parts.

modf breaks the double x into two parts: the integer and the fraction. modf stores
the integer in ipart and returns the fraction.

modfl is the long double version; it takes long double arguments and returns
a long double result.

Return Value

modf and modfl return the fractional part of x.

   -=BorMaN=- 2004-04-08 13:01:19 (#121017)

Re[3]: VBA

Тема: Re[2]: VBA
> S> Тема: VBA
> >> Народ если у кого есть инфа по VBA, поделитесь, очень надо.
> Мне надо разобраться как на нем писать проги для Access.

Есть неплохой справочник по Access http://hayder.boom.ru/ . Если не получится
скачать, напишите - пришлю тот, что есть у меня

   2004-04-08 11:39:54 (#120968)

Re[3]: RoundEx [Delphi -> C++Builder]

Здравствуйте, Havoc.

Вы писали 8 апреля 2004 г. в 2:02:44:

B>> double RoundEx( double X,N)
B>> { double ScaledFractPart, Temp;
B>> ScaledFractPart = Frac(X) * N;
B>> Temp = Frac(ScaledFractPart);
B>> ScaledFractPart = Int(ScaledFractPart);
B>> if (Temp >= 0.5) {ScaledFractPart = ScaledFractPart + 1;};
B>> if (Temp <= -0.5) {ScaledFractPart = ScaledFractPart - 1;};
B>> RoundEx = Int(X) + ScaledFractPart / N;
B>> return RoundEx; //***
B>> }

Борман, если б так все было просто, я тогда и сам так написал :-).
Неа... не работает твое творение. Не находит функции Frac и Int.

H> Ну незнаю как насчет BCB, но в синтаксис Си это не укладывается.
H> (Если то, что предложил БорМаН работает - плз. скажите)
H> на самом деле все намного проще:

H> double RoundEx(double X,double N)
H> {
H> double ScaledFractPart, Temp;
H> ScaledFractPart = X * N;
H> Temp = modf(ScaledFractPart,&ScaledFractPart);
H> if (Temp >= 0.5) ScaledFractPart = ScaledFractPart + 1;
H> if (Temp <= -0.5) ScaledFractPart = ScaledFractPart - 1;
H> return ScaledFractPart;
H> };

Havoc, можешь дать комментарии к modf ? И почему ты другие строки
по выкидывал ?

Цитирую из хелпа по Frac и Int:
FRAC
Returns the fractional part of a real number.

Unit
System

Category
arithmetic routines

function Frac(X: Extended): Extended;

Description

The Frac function returns the fractional part of the argument X.
X is a real-type expression. The result is the fractional part of X; that is,
Frac(X) = X - Int(X).
INT
Returns the integer part of a real number.

Unit
System

Category
arithmetic routines

function Int(X: Extended): Extended;

Description

Int returns the integer part of X; that is, X rounded toward zero. X is a real-type
expression.
--
С уважением,
Feniks mailto: feni***@b*****.ua
Номер выпуска : 2807
Возраст листа : 199 (дней)
Количество подписчиков : 386
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/120948
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Feniks 2004-04-08 11:28:40 (#120948)

Re: itoa алгоритм работы

Тема: itoa алгоритм работы
> Есть финкция itoa стандатной библиотеки stdlib.h. Так вот,
> непонятно, как она работает? Ассемблер я понимаю, но не понимаю по
> какому алгоритму она работает? Пожалуйста, кто волокет в этом
> деле, напишите мне алгоритм преобразования,с пояснениями вот для
> этого примера:

А зачем так? Разбираться в "этом" - пишите сами :))
http://www.Kalashnikoff.ru/Assembler/ , или в "классике" - книге Зубкова - все
алгоритмы прописаны оптимально!
(есть они и в электронном виде:

http://subscribe.ru/archive/comp.soft.prog.dorenews/200008/07143135.html
http://asmlib.narod.ru/images/
http://prog.dax.ru/downloads/zubkov/get.phtml
)

   2004-04-08 08:56:44 (#120835)

Re: TGLArrayf4 что это???

> объясните пожалуйста что есть TGLArrayf4 для ColorLetter.
> вот строчка
> {цвет букв ---}
> ColorLetter : TGLArrayf4;

http://forum.ducat.kz/index.php?s=94c500197434f9351c82d9aedc8fb214&showtopic=1885
http://opengl.gamedev.ru/articles/?id=114

Sad Spirit
--
Номер выпуска : 2805
Возраст листа : 199 (дней)
Количество подписчиков : 386
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/120768
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   "Sad Spirit" 2004-04-08 07:02:27 (#120768)

Re[3]: RegLoadKey - error 1314

Прив Yurij!
Monday, April 5, 2004, 7:28:39 AM, от Вас получено:
Y> Здравствуйте, Емельянов.

Y> Вы писали 5 апреля 2004 г., 8:55:14: Вобще-то, я просто забыл об
Y> этом упомянуть, файл "excel.reg" вовсе не текстовый. Я его
Y> экспортировал из реестра. А насчёт того, что RegLoadKey можно
Y> использовать только для тех двух ключей, это точно. Видно я через
Y> строчку справочник читал.

Здрасте приплыли! А и блокнотом не смотрел? Глянь, в контекстном меню
пункт изменить! Экспорт из реестра идет в формат онлитекст!

   2004-04-08 04:16:35 (#120723)

Re: itoa алгоритм работы

Прив Виктор!
Thursday, April 8, 2004, 1:23:17 AM, от Вас получено:
В> Здравствуйте, comp,

В> Есть целое,без знака 4-х байтное число, любое, которое надо
В> преобразовать(типа unsigned long b=0xf0ffffff) Есть массив из 10
В> элементов размером 1 байт(типа char a[9]), куда надо записать
В> результат.

В общем все просто, я как то даже писал прогу на Асме именно на это.
Байт 30 выходит.

1. Берешь символ последовательно делишь это целое на 10 пока не
получишь меньше 10

2. остаток запоминай каждый раз в буфере.

3. Затем к каждому значению прибавляешь ASCII нуля.

4. Результат помещаешь в массив Char.

   2004-04-08 04:16:22 (#120722)

Re[2]: RoundEx [Delphi -> C++Builder]

Доброго времени суток, -=BorMaN=-.

Wednesday, April 7, 2004, 8:34:43 PM:

B> double RoundEx( double X,N)
B> { double ScaledFractPart, Temp;
B> ScaledFractPart = Frac(X) * N;
B> Temp = Frac(ScaledFractPart);
B> ScaledFractPart = Int(ScaledFractPart);
B> if (Temp >= 0.5) {ScaledFractPart = ScaledFractPart + 1;};
B> if (Temp <= -0.5) {ScaledFractPart = ScaledFractPart - 1;};
B> RoundEx = Int(X) + ScaledFractPart / N;
B> return RoundEx; //***
B> }

Ну незнаю как насчет BCB, но в синтаксис Си это не укладывается.
(Если то, что предложил БорМаН работает - плз. скажите)
на самом деле все намного проще:

double RoundEx(double X,double N)
{
double ScaledFractPart, Temp;
ScaledFractPart = X * N;
Temp = modf(ScaledFractPart,&ScaledFractPart);
if (Temp >= 0.5) ScaledFractPart = ScaledFractPart + 1;
if (Temp <= -0.5) ScaledFractPart = ScaledFractPart - 1;
return ScaledFractPart;
};

--
С бестами и регардами
Havoc
mailto:hav***@i*****.ru
Номер выпуска : 2802
Возраст листа : 199 (дней)
Количество подписчиков :
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/120718
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Havoc 2004-04-08 03:00:47 (#120718)

Re[2]: RegLoadKey - error 1314

Здравствуйте, Емельянов.

Вы писали 5 апреля 2004 г., 8:55:14:

ЕА> Функции RegLoadKey/RegSaveKey не имеют никакого отношения к загрузке
ЕА> reg-файлов, создаваемых редактором реестра. Они работают в паре и
ЕА> предназначены для сохранения и загрузки данных в ключи
ЕА> HKEY_USER и HKEY_LOCAL_MACHINE, потому как
ЕА> обычные функции для этого не годятся.
ЕА> А формат файла используется вообще не текстовый а двоичный.
ЕА> Кстати, на Win NT процесс должен иметь
ЕА> привилегию SE_RESTORE_NAME.

ЕА> Если уж так нужно загрузить текстовый reg-файл,
ЕА> у тебя два пути:
ЕА> 1. использовать ShellExecute, как предложил "monah"
ЕА> 2. разобрать reg-файл самому (например, можно
ЕА> попробовать воспользоваться TIniFile, если
ЕА> пишешь на Delphi)
Вобще-то, я просто забыл об этом упомянуть, файл "excel.reg" вовсе не
текстовый. Я его экспортировал из реестра.
А насчёт того, что RegLoadKey можно использовать только для тех двух
ключей, это точно. Видно я через строчку справочник читал.

   2004-04-08 02:15:41 (#120694)

Re: itoa алгоритм работы

Здравствуйте !

Смотрим в XTOA.C :

char * __cdecl _itoa (
int val,
char *buf,
int radix
)
{
if (radix == 10 && val < 0)
xtoa((unsigned long)val, buf, radix, 1);
else
xtoa((unsigned long)(unsigned int)val, buf, radix, 0);
return buf;
}

static void __cdecl xtoa (
unsigned long val,
char *buf,
unsigned radix,
int is_neg
)
{
char *p; /* pointer to traverse string */
char *firstdig; /* pointer to first digit */
char temp; /* temp char */
unsigned digval; /* value of digit */

p = buf;

if (is_neg) {
/* negative, so output '-' and negate */
*p++ = '-';
val = (unsigned long)(-(long)val);
}

firstdig = p; /* save pointer to first digit */

do {
digval = (unsigned) (val % radix);
val /= radix; /* get next digit */

/* convert to ascii and store */
if (digval > 9)
*p++ = (char) (digval - 10 + 'a'); /* a letter */
else
*p++ = (char) (digval + '0'); /* a digit */
} while (val > 0);

/* We now have the digit of the number in the buffer, but in reverse
order. Thus we reverse them now. */

*p-- = '\0'; /* terminate string; p points to last digit
*/

do {
temp = *p;
*p = *firstdig;
*firstdig = temp; /* swap *p and *firstdig */
--p;
++firstdig; /* advance to next two digits */
} while (firstdig < p); /* repeat until halfway */
}

Оно ?

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru

З.Ы. Читайте исходники, товарищи !
Читайте классику !
Номер выпуска : 2800
Возраст листа : 199 (дней)
Количество подписчиков :
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/120677
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-04-08 01:57:30 (#120677)

itoa алгоритм работы

Здравствуйте, comp,

Есть финкция itoa стандатной библиотеки stdlib.h. Так вот,
непонятно, как она работает? Ассемблер я понимаю, но не понимаю по
какому алгоритму она работает? Пожалуйста, кто волокет в этом
деле, напишите мне алгоритм преобразования,с пояснениями вот для
этого примера:

Есть целое,без знака 4-х байтное число, любое, которое надо
преобразовать(типа unsigned long b=0xf0ffffff)
Есть массив из 10 элементов размером 1 байт(типа char a[9]), куда
надо записать результат.
Сделать надо на чистом ассемблере,т.е. без библиотек,модулей...
Мне главное алгоритм, на ассемблер я сам переведу.
Приветствуются любые подсказки, которые помогут сдвинуть дело "с
мертвой точки". И еще, желательно заменить все умножения и деления
в алгоритме, на другие операции (сложение, вычетания,
циклический сдвиг регистра...) .
Это мне нужно для PIC16F84A,для отображения на LCD содержимого
памяти в десятичном формате.

   Виктор 2004-04-08 00:21:31 (#120636)