Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диссертация_2013_Даулбаева ММ.doc
Скачиваний:
67
Добавлен:
10.03.2016
Размер:
2.34 Mб
Скачать

Продолжение приложения а

  1. for(;;)

  2. {

  3. fprintf(fil,"*********** Начало ДОЛБАНУТОЙ Итерации**********\n");

  4. basper = 0;

  5. Bas();

  6. //void sohran(void);

  7. if(iter>0)

  8. {

  9. //Количество базисных ненулевых переменных <m+n-1

  10. if(basper <m+n-1) sohran();

  11. }

  12. kost(); //****** Вывод общей стоимости******

  13. potenzial(); //*******Подсчет потенциалов********

  14. ch2 = 0;

  15. z = optim();

  16. if(!z) break;

  17. plmi();

  18. iter++;

  19. fprintf(fil,"%d ШАГ ДОСТАВШЕЙ ДО СЪЕХАВШЕЙ КРЫШИ ИТЕРАЦИИ",iter);

  20. }

  21. //************* ПРОВЕРКА************

  22. printf("\n\nOPTIMAL PLAN :\n");

  23. for(i=0;i<m;i++)

  24. {

  25. for(j=0;j<n;j++)

  26. {

  27. printf("%5d",*(matr+i*n+j));

  28. }

  29. printf("\n");

  30. }

  31. fprintf(fil,"optimal PLAN :\n");

  32. for(i=0;i<m;i++)

  33. {

  34. for(j=0;j<n;j++)

  35. {

  36. fprintf(fil,"%5d",*(matr+i*n+j));

  37. }

  38. fprintf(fil,"\n");

  39. }

  40. kost();

  41. //************ВЫВОД общей стоимости***********

  42. fclose(fil);

  43. clrscr();

  44. printf("Отчет о проделанной работе ");

  45. getch();

  46. return;

  47. } // main

Приложение б

Листинг программы:

Программа написана на borland delphi версии 7.0

unit PTransportTask;

interface

uses

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

Dialogs, StdCtrls, Grids, Math, ComCtrls, ExtCtrls, Menus;

const

fFigSize: integer = 10;

type

TFigure = class

public

x,y: integer;

num: integer;

flag: integer;

val: integer;

p: integer;

end;

TLine = class

public

i1, i2: integer;

val: integer;

end;

TData = class

public

Width, Height: integer;

Arr: array [0..99, 0..99] of integer;

Left, Top: array[0..99] of integer;

constructor Create;

procedure Reset;

procedure Assign( data: TData );

procedure AssignLT( data: TData );

function NoNulls: integer;

Продолжение приложения б

function Min: integer;

end;

TEquation = record

p1, p2: integer;

sum: integer;

solved: boolean;

end;

TVar = record

v: integer;

solved: boolean;

end;

TEqSolve = class

public

Eq: array [0..100] of TEquation;

fV: array [0..100] of TVar;

fEqCount, fVarCount, fH: integer;

function GetU( index: integer ): TVar;

function GetV( index: integer ): TVar;

procedure AddEq( p1, p2, s: integer );

constructor Create( h, v_c: integer );

procedure Solve;

property U[index: integer]: TVar read GetU;

property V[index: integer]: TVar read GetV;

end;

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Button5: TButton;

Button2: TButton;

StringGrid1: TStringGrid;

Button3: TButton;

MainMenu1: TMainMenu;

Afqk1: TMenuItem;

N1: TMenuItem;

Продолжение приложения б

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button7Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

private

{ Private declarations }

public

fData: TData;

fFigures: TList;

fLines: TList;

fMouseState : integer;

fMouseInd: integer;

{ Public declarations }

function Check( data: TData ): boolean;

procedure CalcNorthWest( data: TData; var plan: TData );

procedure CalcMinEl( data: TData; var plan: TData );

procedure CalcPotential( data: TData; var plan, x: TData );

procedure Dump( data: TData; fl: integer );

function CalcSum( data, plan: TData ): integer;