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

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

За 2005-03-04

Перемещение чисел массива в файле

Как переместить четные числа в начало, а нечетные в конец не изменяя порядка

следования чисел с одинаковой четностью.
есть
12 7 9 6 -5 -6
4 6 -7 23 -24 9

надо
12 6 -6 7 9 -5
4 6 -24 -7 23 9

uses crt;
const n=9;
type mas=array[1..6] of integer;
var
f:file of mas;
i,x,min,max,num_of_max:integer;
a:mas;
begin
clrscr;
randomize;
assign(f,'000.000');
rewrite(f);
for i:=1 to n do
begin
for x:=1 to n do
begin
a[x]:=random(99);
write(a[x]:3);
end;
writeln;
write(f,a);
writeln;
end;
close(f);

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

Re[6]: Программирование на Pascal. Функция MOD и TRUNC для типа данных extended

Здравствуйте, Вадим.

Вы писали 2 марта 2005 г., 22:24:35:

> Hello Максим,

> Wednesday, March 2, 2005, 7:58:38 PM, you wrote:

>>> Штука в том, что mod "не расчитан" на тип extended - он же не
>>> целочисленный. Тут даже говорить об остатке неверно чисто
>>> математически. Но думаю, делу можно помочь, земенив деление сложением
>>> и вычитанием. Рассмотрим такой алгоритм. Пусть есть делимое A и
>>> делитель B. Возьмем число С, присвоим ему стартовое значение B и будем
>>> увеличивать С на число B до тех пор, пока очередная порция С+B не
>>> превзойдет А. Тогда А-С даст нужный остаток.

>>> ..................
>>> var
>>> a,b,c :Extended;
>>> begin
>>> .......................
>>> c := b;
>>> while c+b <= a do
>>> c := c + b;

>>> ..............
>>> Result := a - c; // "воображаемый" результат
>>> end;

М>> Большое спасибо за помощь, Вадим. У вас, да и у других, кто читал мои
М>> письма наверное сложилось неверное
М>> впечатление обо мне из-за небольшой моей неточности: я не собирался
М>> применять функцию mod для нахождения остатка от деления нецелых чисел. Мне
М>> необходимо оперировать с целыми аргументами, которые по длине
М>> превышают все типы данных, и к extended они относятся лишь потому, что
М>> входят в диапазон его допутимых значений, но они целые. Как я говорил
М>> раньше, я проектирую криптосистему на основе RSA, а как известно,
М>> криптостойкость RSA зависит от длины модуля и длины ключей, то есть
М>> чем больше модуль, тем лучше будет криптосистема. И в дальнейшем, у меня
М>> появится необходимиость оперировать с чилами, превышающими по длине
М>> все типы данных в Паскале. Мне подсказали, что для этого необходимо
М>> представлять эти числа в программе с помощью массивов. Не могли бы вы
М>> подробнее рассказать об этом. Заранее спасибо.

> Вопрос, который мне непонятен (сразу говорю, что в криптографии я -
> баран): каким образом Вы храните эти самые "очень большие" числа,
> если они не "вписываются" в имеющиеся типы? Или такие числа должны
> получаться в результате операций над более "простыми" числами? Вопрос
> отнюдь не риторический и вот почему: при использовании массивов само
> число должно быть куда-то записано, чтобы разложить его на разряды и
> значение каждого разряда записывается в i-ый элемент массива, если
> только я правильно понимаю эту идею, а переменную мы для этого числа
> опять-таки не можем - замекнутый. Хотя сама идея правильна.

> Я же возвращаюсь к своему первому по этой теме письму - нельзя ли
> хранить все эти числа в виде строк, например:
> '13762890937893478956903896'
> +
> '6789478324798686'
> Во-первых, это дает практически неограниченную "велечину" числа, а
> во-вторых, к строкам можно применить алгоритм, описанный выше, немного
> его доработав. Платой за это может быть лишь потери скорости
> обработки.

> Если Вам это не покажется бредом, могу привести полный алгоритм.
> Пишите.

Криптография штука очень тяжелая, так что я тоже мало что понимаю в
ней. Да мне много и не надо, я стараюсь как можно тщательнее изучить
алгоритм шифрования RSA, который считается одним из самых надежных, во
всяком случае пока. И его основной "конек" работа с большими числами,
а точнее однонаправленные функции (one-way functions), обрабатывающие
эти числа. Обратные этим функциям очень сложны в выполнении. Например
оновной проблемой по взлому RSA является факторизация (разложение на
простые множители) модуля, длина которого при нормальной реализации
тысячи бит. Конечно же во время выполнения алгоритма для
криптостойкости необходимо оперировать с очень большими числами. Самый
простой пример-это вычисление модуля, который является произведением
двух простых чисел длиной не менее 512 бит. Впрочем, вопрос не в
криптографии. Если у вас будет возиожность и желание, то советую
почитать книгу Б. Шнайера "Основы криптографии", очень интересная
штука. Мне товарищ Grishka передал исходники для работы с длинными
числами, за что ему честь и хвала. Помогите пожалуйста с размещением
чисел в массивах и с операциями над ними.

   Максим 2005-03-04 22:02:27 (#327404)

Re: Global hook

Hello, NEON!

> Т.е. происходит что-то в системе -
> я об этом узнаю первым. Интересуют прежде всего
> системные ошибки.

Хуки здесь вряд ли помогут. Тебе интересуют, скорее всего,
необработанные исключения. Подробно об обработке структурных
исключений см. "Джеффри РИХТЕР.Windows для профессионалов:
создание эффективных Win32 приложений с учетом специфики
64-разрядной версии Windows" (была на http://anatolix.naumen.ru/)

Ну, а по хукам информации навалом - в том числе и для Delphi

   Hagen 2005-03-04 22:01:30 (#327401)

Re[7]: Есть такая WSH

Вы писали

> >> nnCron - планировщик под винду, со своим внутренним языком
> >> программирования, в нем есть возможность записать макрос, как в Ёхеле
> >> только под Вынь :), синтаксис похож на VBS :)
> gu> спасибо за инфу. если можно дай ссылку на архив. заранее спасибо
> Есть дома могу принести и переслать если надо.
Буду благодарен безмерно.

Ты мне все таки скажи, с GetObject("1C77.Application")не получается?

С уважением Gena.

Уж полночь близится, а близости все нет...

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