Другие языки программирования и технологии

Пожалуйста, помогите доделать лабу!

Тебе нужно создать три файла:
1) Модуль с функцией вывода, ты там чего-то сильно нагородил, и код пропал. Немного подправил:

// file: myproc.pas

unit myproc;

interface

procedure ShowLowAlphas(txt: string);

implementation

procedure ShowLowAlphas(txt: string);
var
i: integer;
c: char;
ca: array ['a'..'z'] of integer;
begin
for c := 'a' to 'z' do
ca[c] := 0;
for i := 1 to length(txt) do
if txt[ i] in ['a'..'z'] then
inc(ca[txt[ i]);
for c := 'a' to 'z' do
while ca[c] > 0 do begin
write(c);
dec(ca[c]);
end;
end;

end.

2) Файл для DLL, там будет функция, ищущая решение

// file: myfunc.pas

library myfunc;

type
TSolFunc = function(x: double): double;

function Sign(x: double): integer;
begin
if x < 0 then
Sign := -1
else if x > 0 then
Sign := 1
else
Sign := 0;
end;

function FindSolution(xl, xr, e: double; f: TSolFunc): double;
var
dx, xm, fxm: double;
begin
dx := xr - xl;
xm := dx / 2;
fxm := f(xm);

while abs(fxm) > e do begin
dx := dx / 2;
xm := xl + dx;
fxm := f(xm);
if sign(f(xl)) <> sign(fxm) then
xr := xm
else
xl := xm;
end;
FindSolution := xm;
end;

exports
FindSolution;

begin
end.

3) Собственно, третий файл в котором будет программа использующая эти модули:

uses
myproc;

type
TSolFunc = function(x: double): double;

function FindSolution(xl, xr, e: double; f: TSolFunc): double; external 'myfunc.dll';

function f(x: double): double;
begin
f := exp(x) - 10 * x;
end;

var
t: string;

begin
write('text? ');
readln(t);
ShowLowAlphas(t);
writeln;
writeln('solution: ', FindSolution(2, 6, 0.0001, @f):0:3);
readln;
end.

Все! Отправляю в Гугл. Запросы:
1) delphi создание и использование модулей
2) delphi создание и использование dll
Михаил Терешенок
Михаил Терешенок
85 286
Лучший ответ
Код не читабельный (некоторые символы не отображаются, т. к. являются служебными для сайта) .
Воспользуйтесь программой для форматирования текста, например, TagSymReplacer.narod.ru