Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.05.2012, 12:52
FreeeZee FreeeZee вне форума
Прохожий
 
Регистрация: 27.05.2012
Сообщения: 2
Репутация: 10
По умолчанию Dynamic Link Library (.dll)

Необходимо создать программу с использованием динамической библиотеки. А именно: создать подпрограммы обработки множеств: объединение, вычитание, пересечение, проверка вхождение одного множества в другое.

Само задание, методика разработки и пример программы прикреплены.


Код библиотеки:

Код Delphi
Код:
library Pro;
 
 
uses
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas' {Form1};
 
{$R *.res}
function perese4enie (Mn1, Mn2:Integer):Integer;
begin
  result:=(Mn1*Mn2)
end;
function objedinenie (Mn1, Mn2:Ineger):Integer;
begin
 result:=(Mn1+Mn2)
 end;
 function vichitanie (Mn1, Mn2:Integer):Integer;
 begin
   if RadioButton1.Checked = True then
   result:=(Mn1-Mn2);
   end
   else
   begin
   result:=(Mn2-Mn1);
   end;
 
 function vxoshdenie (Mn1, Mn2:Integer):Integer;
 begin
if RadioGroup1.ItemIndex=0  then
  begin
    if Mn1 <= Mn2 then
      Memo1.Lines.Add('Первое множество включено во второе')
    else
      Memo1.Lines.Add('Первое множество НЕ включено во второе');
  end
else
  begin
    if Mn1 >= Mn2 then
      Memo1.Lines.Add('Второе множество включено в первое')
    else
      Memo1.Lines.Add('Второе множество НЕ включено в первое');
 end;
 end;
 exports perese4enie,vxoshdenie, vichitanie, objedinenie;
 end.

Код самой программы (Форма, кнопки):
Код Delphi

Unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type Integer= set of 1..255;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button4: TButton;
    Memo1: TMemo;
    RadioGroup1: TRadioGroup;
    Button3: TButton;
    procedure PrintSetof(II: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1    : TForm1;
  Mn1, Mn2 : Integer;
  s, result : Integer;
 
function perese4enie (Mn1, Mn2:Integer):Integer; stdcall; external 'Pro.dll';
function objedinenie (Mn1, Mn2:Integer):Integer; stdcall; external 'Pro.dll';
function vichitanie (Mn1, Mn2:Integer):Integer; stdcall; external 'Pro.dll';
function vxoshdenie (Mn1, Mn2:Integer):Integer; stdcall; external 'Pro.dll';
implementation
 
{$R *.dfm}
 
procedure Tform1.PrintSetof(II: Integer);
var
ddd : Integer;
s   : String;
begin
for ddd :=1 to 255 do
  begin
    if ddd in II then
      s := s + '  '+IntToStr(ddd);
  end;
Memo1.Lines.Add(s);
s := '';
Memo1.Lines.Add('-----------------------');
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
for s := 25 to 123 do
  Include(Mn1, s);
for s := 5 to 90 do
  Include(Mn2, s);
Memo1.Lines.Add('Множества 25..123 и 5..90 успешно созданы.');
PrintSetof(Mn1);
PrintSetof(Mn2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add('В пересечении этих множеств:');
PrintSetof(result);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.Add('В объединении этих множеств:');
PrintSetof(result);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0 then
  begin
  Memo1.Lines.Add('В разности 1-ого и 2-ого:');
  PrintSetof(result);
  end
else
  begin
  Memo1.Lines.Add('В разности 2-ого и 1-ого:');
  PrintSetof(result);
  end;
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0  then
  begin
    if Mn1 <= Mn2 then
      Memo1.Lines.Add('Первое множество включено во второе')
    else
      Memo1.Lines.Add('Первое множество НЕ включено во второе');
  end
else
  begin
    if Mn1 >= Mn2 then
      Memo1.Lines.Add('Второе множество включено в первое')
    else
      Memo1.Lines.Add('Второе множество НЕ включено в первое');
  end;
 
end;
end.
Админ: Не забываем про оформление кода!

Помогите исправить ошибки и понять как быть с проверкой вхождения множеств одного в другое, где его надо правильно записать в библиотеке или на кнопке?
Вложения
Тип файла: rar Dll Программа.rar (3.7 Кбайт, 0 просмотров)

Последний раз редактировалось Admin, 27.05.2012 в 13:43.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025