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

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

За 2005-04-11

Футкция - так?

...::: Приветствую, Всех :::...

Думаю, думаю, но логически понять так и не могу.
В итоге правильно получается что функция решает факториал так:

Index = 5
1) Result := Index*MulNumber(Index-1)
| | |
20 5 4
2) Result := Index*MulNumber(Index-1)
| | |
60 3 20
3) Result := Index*MulNumber(Index-1)
| | |
120 2 60
4) Result := Index*MulNumber(Index-1)
| | |
120 1 120
Только так я понял как она решает ( и понял зачем в конце стоит
Result:=1 ) факториал, но как цифры "скачут" в первом 1) не ясно.

Ведь если Result := Index*MulNumber(Index-1) то это с логической точки
зрения будет выглядеть так:

Result := Index * MulNumber(index-1)
| | | | | |
1) 0 <- 5 * 4 ( index-1 ) =4
2) 20 <- 4 * 3 ( index-1 ) =3
3) 12 <- 3 * 2 ( index-1 ) =2
4) 2 <- 2 * 1 ( index-1 ) =1


Но ведь эта какая-то ерунда!

Правильно ли я понял то как функция вызывает саму себя (рекурсия)?

index=5

...
? 5 ? 5-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 4-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 3-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 2-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 1-1
Result:=Index*MulNumber(index-1);

Если это правильно, то что происходит дальше?

...::: by GENEMI :::...

Номер выпуска : 4317
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349122
Получить правила : 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

   2005-04-11 23:48:22 (#349122)

Re[5]: bit битность?

...::: Приветствую, Шматко А.А. :::...

ШАА> and eax, not 000000ffh
ШАА> or eax, 000000ffh

ШАА> Если так себе это представлять, то конечно может возникнуть впечатление,
что

ШАА> с байтовыми операндами процессор будет тормозить

И долго надо учить ассемблер чтобы в этом разбираться?

= = = = = = = = = = = = = = = = = = = =
...::: by GENEMI :::...

Номер выпуска : 4316
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349119
Получить правила : 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

   2005-04-11 23:41:11 (#349119)

Re[4]: Еще по БИТам

...::: Приветствую, Denis Kravtsoff :::...

DK> Программа ничего не переводит, до тех пор пока не надо обмениваться
DK> данными с пользователем. Вот если ты ввёл в программе число
DK> 158498418, она его считывает из поля ввода (кстати, в виде строки),
DK> переводит из строки в, положим, integer и дальше процессор с ним
DK> совершенно свободно работает (ессно, на уровне битов, но это уже не
DK> твоя забота, а тех кто занимается схемотехникой ;) ).
DK> Тут главное понять, что само число при переводе в различные системы
DK> счисления не меняется. Меняется лишь форма его представления для
DK> пользователя, а в памяти так и хранятся битик за битиком.

А какая тогда "деталь" компьютера переводит биты в понятные нам
файлы? Как это у компьютера получается???

= = = = = = = = = = = = = = = = = = = =
...::: by GENEMI :::...

Номер выпуска : 4315
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349118
Получить правила : 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

   2005-04-11 23:41:08 (#349118)

Re[2]: bit битность?

..::: Приветствую, Rooslan S. Khayrov :::...

>> В большинстве случаев в миникомпьютерах используется
>> архитектура RISC и UNIX и они играют роль серверов,
>> к которым подключаются десятки и сотни терминалов или
>> микрокомпьютеров.

RSK> Что? Это цитата?
RSK> Откуда, если не секрет?
Из урока информатики
RSK> Этот ответ на мой пост или на пост Eugene?
Для всех.

= = = = = = = = = = = = = = = = = = = =
...::: by GENEMI :::...

Номер выпуска : 4314
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349117
Получить правила : 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

   2005-04-11 23:41:04 (#349117)

Re[4]: bit битность?

...::: Приветствую, Denis Kravtsoff :::...

DK> сам процессор тактов на
DK> приведение не тратит

А как тогда?

= = = = = = = = = = = = = = = = = = = =
...::: by GENEMI :::...

Номер выпуска : 4313
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349116
Получить правила : 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

   2005-04-11 23:40:31 (#349116)

Re: Локальная база данных

Vladimir V.Petrov пишет:

>Hello, Oleg!
>
> >> 3. без инсталляции
>
> OP> FireBird.
>
>Возможно соответствовать этому пункту? Тогда расскажи как?
>Остальное, да - соответствует...
>
>
>
Пиши в личку, остальным, думаю, не интересно. Желательно напиши все
интересующие вопросы, постараюсь ответить.

   Oleg Ponomarev 2005-04-11 22:06:23 (#349051)

Re[2]: bit битность?

Привет Rooslan S. Khayrov,

Вы мне письмо написали 9 апреля 2005 г. (суббота), а я Вам отвечу вот что:

RSK> Приветствую вас, Eugene the Monster!

RSK> 09.04.2005 16:19 вы писали:

>> D> Чем больше разрядность, тем производительнее процессор.
>> Не факт - вспомни RISC процессоры

RSK> Можете пояснить связь между рарзрядностью процессора, его
RSK> производительностью и архитектурой RISC? С утверждением самим согласен,
RSK> производительность процессора напрямую не зависит от его разрядности, но
RSK> почему в качестве опровергающего примера RISC?

Пример может не удачный, но я считаю что специализированный процессор
будет более производительный в своей области, чем универсальный
с более высокой разрядностью.

>> Производительность падает тогда, когда процессору приходится работать
>> с числами, разрядность которых ниже чем разрядность процессора (тип
>> BYTE для 32-разрядных (тип Integer) процессоров), т.к. процессору
>> приходится тратить такт (может меньше, но всё-равно тратить) для
>> доведения типа Byte до типа Integer

RSK> Э-э... Откуда дровишки? Что, у нас (предполагаем IA-32, конечно) теперь
RSK> вот такая, например, инструкция:
RSK> mov al, BYTE PTR[edx]
RSK> работает медленнее, чем
RSK> mov eax, DWORD PTR[edx] ?

Кто ж говорит про ASM инструкции?
Вопрос вот в чем:
var
a: byte;
b, c: integer;
....
Что быстрее:
b:=a;
или
b:=c;

Я не говорю про оптимизацию и про другие штучки - простое неявное
приведение типов:

xor ax,ax //или mov ah, 0
mov al, a

против:

mov ax, c

Конечно сегодня процессоры делают несколько инструкций за такт и
большие потери во времени не наблюдаются!!!

Афоризм напоследок: Счастье - это не когда у тебя все есть а когда у тебя чего-то
нет, и Боже упаси!
Winamp глаголит: Da Buzz - Wonder Where You Are
11 апреля 2005 г. 20:01:09

Просто студент
Eugene mailto:rav***@o*****.ru

Номер выпуска : 4311
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349026
Получить правила : 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

   2005-04-11 21:09:13 (#349026)

Re: Delphi 2005

Привет GENEMI,

Вы мне письмо написали 11 апреля 2005 г. (понедельник), а я Вам отвечу вот что:

G> После установки запускаю этот Delphi о он выдает сообщение об ошибке:

G> "Класс не зарегистрирован ClassID:
G> {3FB717AF-9D21-3016-871A-DF817ABDDD51}"

G> Что мне делать? OC: Windows XP SP2

Это уже не в этот форум.
Совет переустанови "этот Delphi"

Афоризм напоследок: Отсутствие богатства - это еще не бедность. Бедность - это
жажда богатства.
Winamp глаголит: G.TIMOFEEV - DUSHA HMEL'NAIA
11 апреля 2005 г. 20:36:31

Просто студент
Eugene mailto:rav***@o*****.ru

Номер выпуска : 4310
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349025
Получить правила : 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

   2005-04-11 21:09:06 (#349025)

Re[4]: bit битность?

Привет GENEMI,

Вы мне письмо написали 10 апреля 2005 г. (воскресенье), а я Вам отвечу вот что:

EtM>> Для компьютеров и другой электронно-вычислительной техники удобна
EtM>> двоичная система счисления, но она не удобна для человека - числа
EtM>> записываются в очень длинном формате: для этого
EtM>> используют 8-ричную (раньше давным-давно) или 16-ричную (в настоящий
EtM>> момент). Почему их? - потому что из 2-чной в 8- и/или 16-ричную
EtM>> системы перевести намного быстрее чем в 10-чную. (если интересно пиши
EtM>> - объясню как)

G> Конечно интересно! Объясните.

Есть такая таблица:
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
A - 1010
B - 1011
C - 1100
D - 1101
E - 1110
F - 1111

16 - 2
AB38h (в 16-ричной) = (см. таблица A=1010 и т.п.) 1010 1011 0011 1000
(в 2-чной) = 1010101100111000b

Аналогично обратно 2 - 16
00011001101011010101b = (бьешь по 4 цифры, т.к. 16=2^4) =
0001 1001 1010 1101 0101 = (см. ту же таблицу 1001=9) =
19AD5h

Запись типа XXXh - озночает, что число XXX записано в 16-ричной
системе

В восьмеричной всё точно так же, только используешь числа 0-7, а
2-чное число бьешь по 3 цифры (8=2*2*2=2^3)

2 - 10
76543210 - разряд чисел
10101110b = 1*2^7+0*2^6+1*2^5+0*2^4+1*2^3+1*2^2+1*2^1+0*2^0=
= 128+0+32+0+8+4+2+0=174

10 - 2
Это не помню, но суть в том, что 10-чное число делит на 2 - основание
двоичной системы - до тех пор пока не получится число, которой на 2 не
делится (например 1). Число записывается так сначало то, что не
делится, потом, начиная с последнего, все остатки:
174
174/2=87(0) - в скобках остатки
87/2=43(1)
43/2=21(1)
21/2=10(1)
10/2=5(0)
5/2=2(1)
2/2=1(0)

174=10101110b

Таким образом можно переводить не только в 2-чную, а любую систему
(хоть в 6-ричную)

Афоризм напоследок: Решил бросить пить. Утром следующего дня осознал: недобросил...
Winamp глаголит: Бригада - Игорь Корнелюк - Город которого нет (Бандитский Питербург)
11 апреля 2005 г. 20:12:34

Просто студент
Eugene mailto:rav***@o*****.ru

Номер выпуска : 4309
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349024
Получить правила : 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

   2005-04-11 21:08:55 (#349024)

Re: Функция - как?

Привет GENEMI,

Вы мне письмо написали 9 апреля 2005 г. (суббота), а я Вам отвечу вот что:

G> function TForm1.MulNumber(index: Integer): Integer;
G> begin

G> if Index=1 then
G> begin
G> Result:=1;
G> exit;

G> end;
G> Result:=Index*MulNumber(index-1);

G> end;

G> Вот если эту функцию вызвать ( MulNumber(5) ) то она возвратит
G> факториал числа 5 - 120, но почему ведь перед выходом ( exit; ) стоит
G> присвоение ( Result:=1; ) и ведь это значит что функция должна
G> возвратить число 1, но почему получается иначе?

По идеи надо писать так:

if Index<=1 then
begin
Result:=1;
exit;
end;

А то при вводе 0 или отрицательного функция уйдет в себя, да и про то,
что 0!=1 забыли

Афоризм напоследок: Столько дел, что и работой занятся некогда...
Winamp глаголит: Billy More - Up And Down(Don't Fall In Lov With Me)
11 апреля 2005 г. 19:57:53

Просто студент
Eugene mailto:rav***@o*****.ru

Номер выпуска : 4308
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349023
Получить правила : 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

   2005-04-11 21:08:21 (#349023)

Re: Delphi 2005

Приветствую

> "Класс не зарегистрирован ClassID:
{3FB717AF-9D21-3016-871A-DF817ABDDD51}"
> Что мне делать? OC: Windows XP SP2

Возможно в реестр не добавлены reg файлы которые есть в поставке Delphi?
Посмотри архив с Delphi.
С уважением, Lakmus
ICQ - 241479153
www.nvkz.net/lakmus

Номер выпуска : 4307
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/348994
Получить правила : 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

   2005-04-11 20:17:50 (#348994)

Re: Локальная база данных

Hello, Oleg!

>> 3. без инсталляции

OP> FireBird.

Возможно соответствовать этому пункту? Тогда расскажи как?
Остальное, да - соответствует...

   "Vladimir V.Petrov" 2005-04-11 20:17:41 (#348993)

Re[4]: Функция - как?

...::: Приветствую, Шматко А.А. :::...

<cut>
ШАА> Этот код функционально аналогичен приведённому тобой.
ШАА> Теперь Ok?

Все равно ни как не уловлю смысл :(

Хотя я подозреваю что когда функция вызывает саму себя -
MulNumer(Index-1) то результат который хранится в result переходит
как-то в нее снова.

Но так вроде бы все понятно, но я все равно не пойму как 1-ца влияет
на результат, ведь после нее следует exit и функция завершает свою
работу и ни каких больше умножений на 1-цу дальше нет.

Но мне кажется что у функции есть какие-то как бы скрытые переменные в
которые она записывает результат предыдущего результата.
Ведь как я знаю при выходе из функции она опустошает все свои
локальные переменные, "но тут мне в создание приходит одно понятие":
Ведь когда функция ВЫЗЫВАЕТ САМУ СЕБЯ она не завершает свою работу и
следовательно не опустошает свои локальные переменные (это я про
result ведь как я знаю она идентична названию функции), но мне эта
часть понятна .

Некоторые говорят что единица участвует в умножение, я понял бы это если б
код был такой:
if Index = 1 then
RESULT := 1*Index;
exit;
end;
...

тогда вроде бы понятно, но ведь как происходит последнее умножение на 1-цу если
там нет ни каких операторов? :(

Или при присвоение значения в RESULT он уже автоматически помнит
команду INDEX*MulNumber , т.е. умножение INDEX
на саму функцию.
Такое чувство что функция имеет какие-то скрытое значение, то какое я
наверное и не пойму :(

= = = = = = = = = = = = = = = = = = = =
...::: by GENEMI :::...

Номер выпуска : 4305
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/348888
Получить правила : 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

   2005-04-11 17:27:28 (#348888)

Re: Локальная база данных

Емельянов Алексей пишет:

>Здравствуйте.
>
>Через некоторое время потребуется переводить программу с BDE на
>какую-либо другую систему доступа к локальным базам.
>
>В связи с этим хотелось бы понять, что использовать.
>Требуется следующее:
>
>1. поддержка SQL (точнее SELECT,INSERT,UPDATE,DELETE; управление
> структурой базы средствами SQL не обязательно),
> нужны составные индексы и транзакции
>2. надежность
>3. без инсталляции и хранения данных в реестре (программу
> предполагается иногда запускать с флэшки)
>4. легковесность (одна - две динамические библиотеки)
>5. желательно, чтобы таблицы и индексы хранились в небольшом
> количестве файлов; в идеале один - два
>6. желательно Open Source (GPL, MPL или нечто подобное, допускающее
> использование в коммерческих приложениях)
>
>Идеально подошло бы использование MS Access через
>ODBC или ADO, но требуется инстлляция.
>
>Посоветуете что-нибудь?
>
>Заранее спасибо.
>
>
FireBird.

   Oleg Ponomarev 2005-04-11 14:31:08 (#348784)
  • 1
  • 2