Доброе время суток. У меня к вам большая просьба, никак не могу решить эту задачу. Мы с другом поспорили, что я смогу решить эту задачу к среде. Помогите, пожалуйста, на вас последняя надежда. Вот эта задача: Найти натуральное число из интервала от 1 до n с максимальной суммой делителей.Надо решить лиш с помощью циклов. Если будут вопросы по задаче, пишите. marshal90@mail.ru
Доброе время суток, Дмитрий! const n=100; function KolDelitel(doN: Integer; var CH:Integer):Integer; var i,j:Integer;max,chis:Integer; a:array[1..n]of integer; begin for i:=1 to don do for j:=1 to i do if i mod j=0 then inc(a[i]); max:=a[1]; for i:=2 to don do if a[i]>max then begin max:=a[i]; chis:=i end; CH:=chis; {Chislo v intervale [1..n] u kotoroqo bolshe vseqo deliteley} KolDelitel:=max; {Kolichestvo yevo eliteley} end; var Chislo,Kol:Integer; begin Kol:=Koldelitel(n,Chislo); WriteLn(Chislo); WriteLn(Kol); readln end. Ответ отправлен: 05.10.2003, 14:29 Отправитель: Cybernetic Creature
Вопрос № 316
Всем привет! Вот такая штука: у меня 2 процедуры(pr), обе полностью assembler, в обе приходят по 2 значения(x,y), но в первую(pr1) VARом, чтобы измениться и вернуться, а во вторую(pr2) простыми значениями. Т.к. я вызываю первую из второй при помощи CALL, надо в стек загонять поинтеры, а у меня чего то мозг сломался - не знаю как добыть в АСМ-вставке поитер от значения. См. Приложение.
Приветствую Вас, KODer! НЕ надо слать один и тот же вопрос два раза. У вас и первая процедура неправильно работает
Ответ отправлен: 07.10.2003, 09:35 Отправитель: Cybernetic Creature Отвечает Jact M Anchorite
Приветствую Вас, KODer! Поинтеры можно получить следующим образом: mov di, offset x2 mov si, offset y2 (вместо les и lds в pr2) Сегментные регистры перегружать не надо, так как все переменные хранятся в data segment. А вообще, честно говоря, код бредовый :) Интересно, что же должна в целом делать программа... Даже если ты запихаешь в стек параметры, то при выполнении call засунет в стек адрес возврата и ничего хорошего из этого не получится. :) Вообще, такие процедуры пишутся в TASM-е (MASM-e, etc) и вызываются как extern. P.S. Не мудри лишний раз с les и lds. С уважением, Jact & ViRUS.
Ответ отправлен: 08.10.2003, 06:42 Отправитель: Jact M Anchorite Отвечает Boriss
Приветствую Вас, KODer! Это был вопрос 994! Повторяю: ВОТ как нужнол делать, с учетом содержимого стека. Ессно, здесь учтено, что вызов NEAR Убедись, что к x1 прибавлется содержимое y1.
Приложение: Ответ отправлен: 08.10.2003, 12:56 Отправитель: Boriss Отвечает _vt
Приветствую Вас, KODer! Чем тебя не устроил мой ответ в рассылке по Дельфи???
*** E-Man - we are waiting for you ***
Ответ отправлен: 06.10.2003, 19:22 Отправитель: _vt
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.