Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2008, 16:36   #1
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию Задачка

Задачка: Создать динамически загружаемую библиотеку, содержащую реализацию рекурсивной функции вычисляющей сумму корней квадратных из натуральных чисел от 1 до n . Вызвать эту функцию из другого проекта.
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 24.09.2008, 17:35   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Динамически загружаемая DLL:
Код:
type
  TComplех = record 
    Re, Im: real;
  end;
  TComplexFunc = function (х, у: TComplex): TComplex;
  stdcall;

procedure TfmExample.bbRunClick(Sender: TObject);
var
 x,y,z:TComplex;
 AddC, SubC, MulC, DivC: TComplexFunc;
 Handle: LongWord;

procedure OutPut(Operation: Char);
...//тело процедуры OutPut oстается без изменений
end; //OutPut
begin //bbRunClick
//Загружаем библиотеку CMPLX.DLL
Handle := LoadLibrary('Cmplx.dll');
if Handle = 0 then
begin
ShowMessage('Не найдена библиотека CMPLX.DLL');
end;
{Определяем адреса функций. Три первые значения вызываем по
индексу, четвертую - по имени. При вызове по индексу младшее слово PChar должно содержать индекс, поэтому выполняем приведение типов:}
&Add := GetProcAddress(Handle, PChar(LongInt(1)));
&Add := GetProcAddress(Handle, PChar(LongInt(2)));
&Add := GetProcAddress(Handle, PChar(LongInt(3)));
&DicC := GetProcAddress(Handle, 'DivC');
x.re :=Random;
x.im :=Random;
y.re :=Random;
y.im :=Random;
Output('+');
Output('-');
Output('*');
Output('/');
mmOutput.Lines.Add(' ');
//освобождаем библиотеку
FreeLibrary(Handle)
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 24.09.2008, 17:53   #3
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

Напишите пожалуйста программу, рекурсивной функции вычисляющей сумму корней квадратных из натуральных чисел от 1 до n. Чёт не догоняю вообще после 4 пары башка не варит плиззз я знаю что маленькая програмка =(
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вот это задачка!!! Лёха Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2008 10:54
Задачка для ума 3 ZORRO2005 Microsoft Office Excel 14 23.04.2008 12:35