Нахождение кратчайшего пути
Рефераты >> Программирование и компьютеры >> Нахождение кратчайшего пути

2. Новые педагогические и информационные технологии Е.С.Полат, Москва, «Akademia» 1999 г.

3. Кузнецов О.П., Адельсон-Вельский Г.М. Дискретная математика для инженера. – М.: Энергоатомиздат, 1988.

4. Кук Д., Бейз Г. Компьютерная математика. – М.: Наука, 1990.

5. Нефедов В.Н., Осипова В.А. Курс дискретной математики. – М.: Издательство МАИ, 1992.

6. Оре О. Теория графов. – М.: Наука, 1980.

7. Исмагилов Р.С., Калинкин А.В. Матеpиалы к пpактическим занятиям по куpсу: Дискpетная математика по теме: Алгоpитмы на гpафах. - М.: МГТУ, 1995

8. Смольяков Э.Р. Введение в теоpию гpафов. М.: МГТУ, 1992

9. Hечепуpенко М.И. Алгоpитмы и пpогpаммы pешения задач на гpафах и сетях. - Hовосибиpск: Hаука, 1990

10. Романовский И.В. Алгоpитмы pешения экстpемальных задач. - М.: Hаука, 1977

11. Писсанецки С. Технология разреженных матриц. - М.: Мир, 1988

12. Севастьянов Б.А. Вероятностные модели. - М.: Наука, 1992

13. Бочаров П.П., Печинкин А.В. Теория вероятностей. - М.: Изд-во РУДН, 1994

ПРИЛОЖЕНИЕ

Текст программы определения кратчайшего пути в графе

Модуль управления интерфейсом программы:

unit MainUnit;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls,PaintingGraph, ComCtrls, ToolWin, ImgList, Menus,

ActnList, ExtCtrls;

const

crMyCursor = 5;

type

TForm1 = class(TForm)

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

ImageList1: TImageList;

ImageList2: TImageList;

LoadMenu: TPopupMenu;

ControlBar1: TControlBar;

ToolBar3: TToolBar;

OpenButton: TToolButton;

SaveButton: TToolButton;

ToolButton15: TToolButton;

ClearButton: TToolButton;

UpdateButton: TToolButton;

HelpButton: TToolButton;

ToolButton26: TToolButton;

RemovePointButton: TToolButton;

ToolButton28: TToolButton;

ToolButton32: TToolButton;

SettingButton: TToolButton;

ControlBar2: TControlBar;

AlgoritmToolBar: TToolBar;

KommiTool: TToolButton;

ToolButton: TToolButton;

NotFarButton: TToolButton;

MinLengthButton: TToolButton;

ToolButton5: TToolButton;

MovePointButton: TToolButton;

ActionList1: TActionList;

AShowGrig: TAction;

ASnapToGrid: TAction;

ASave: TAction;

ALoad: TAction;

ADelete: TAction;

GridToolBar: TToolBar;

Clock: TLabel;

Timer1: TTimer;

ShowGridButton: TToolButton;

AutoLengthButton: TToolButton;

SnapToGridButton: TToolButton;

PaintBox1: TPaintBox;

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormCreate(Sender: TObject);

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure FormPaint(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure ClearButtonClick(Sender: TObject);

procedure KommiToolButtonClick(Sender: TObject);

procedure PaintingToolButtonClick(Sender: TObject);

procedure SnapToGridButtonClick(Sender: TObject);

procedure HelpButtonClick(Sender: TObject);

procedure AutoLengthButtonClick(Sender: TObject);

procedure SettingButtonClick(Sender: TObject);

procedure NotFarButtonClick(Sender: TObject);

procedure MinLengthButtonClick(Sender: TObject);

procedure MovePointButtonClick(Sender: TObject);

procedure RemovePointButtonClick(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure ALoadExecute(Sender: TObject);

procedure AShowGrigExecute(Sender: TObject);

procedure ASaveExecute(Sender: TObject);

procedure PaintBox1Paint(Sender: TObject);

procedure UpdateButtonClick(Sender: TObject);

procedure EilerButtonClick(Sender: TObject);

procedure ClockClick(Sender: TObject);

private

procedure MyPopupHandler(Sender: TObject);

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses IO,Data,Commercial,DrawingObject,Setting,NotFar,MinLength, Eiler,

SplashScreen;

{$R *.DFM}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if Button=mbLeft then begin

MyIO.FormMouseDown( X, Y);

if (MyIO.State=msMove)then

if MyIO.FirstPointActive then

Cursor := crMyCursor

else begin

Repaint;

Cursor := crDefault;

end;

end

else

MyIO.MakeLine(X, Y);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Screen.Cursors[crMyCursor] := LoadCursor(HInstance, 'Shar');

MyIO:=TIO.Create(PaintBox1.Canvas);

MyData:=TData.Create;

MyDraw:=TDrawingObject.Create(PaintBox1.Canvas);

SaveDialog1.InitialDir:=ExtractFilePath(Application.ExeName)+'Grafs';

OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName)+'Grafs';

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

MyIO.DrawLine(x,y);

end;

procedure TForm1.FormPaint(Sender: TObject);

begin

PaintBox1Paint(Sender);

end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if (Key=vk_Escape) then

begin

MyData.Remove(MyData.Dimension);

MyDraw.Remove(MyData.Dimension);

Repaint;

end;

end;

procedure TForm1.MyPopupHandler(Sender: TObject);

var s:string;

begin

with Sender as TMenuItem do begin

s:=Caption;

MyData.Load(s);

System.Delete(s,length(s)-4,5);

MyDraw.Load(s+'.pos');

end;

Repaint;

end;

procedure TForm1.ClearButtonClick(Sender: TObject);

begin

MyData.Clear;

MyDraw.Clear;

Repaint;

end;

procedure TForm1.KommiToolButtonClick(Sender: TObject);

begin

If MyData.Dimension<2 then Exit;

MyCommercial:=TCommercial.Create;

MyCommercial.Make;

MyCommercial.Free;

end;

procedure TForm1.EilerButtonClick(Sender: TObject);

begin

If MyData.Dimension<2 then Exit;

EilerC:=TEiler.Create;

EilerC.Make;

EilerC.Free;

MyIO.DrawAll;

RePaint;

end;

procedure TForm1.PaintingToolButtonClick(Sender: TObject);

begin

If MyData.Dimension<2 then Exit;

MyPaint:=TPaintingGraphClass.Create;

MyPaint.Make;

RePaint;

MyPaint.Free;

end;

procedure TForm1.SnapToGridButtonClick(Sender: TObject);

begin

MyIO.FSnapToGrid:=SnapToGridButton.Down;

end;

procedure TForm1.HelpButtonClick(Sender: TObject);

begin

Application.HelpContext(10);

end;

procedure TForm1.AutoLengthButtonClick(Sender: TObject);

begin

MyIo.AutoLength:=AutoLengthButton.Down;

end;

procedure TForm1.SettingButtonClick(Sender: TObject);

begin

SettingForm.Show;

end;

procedure TForm1.NotFarButtonClick(Sender: TObject);


Страница: