Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Обучающая и тестирующая программа по здаче экзамена ПДД на Turbo Pascal ...
Диплом - база данных поставщиков на Delphi (MS Sql Server)+ Пояснительна...
База данных склада на Delphi + Схема БД

Программа выбора наилучших альтернатив с использованием методов оптимизации





Программа выбора наилучших альтернатив с использованием методов оптимизации

Процедура выбора наилучшей альтернативы
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,k,j,n,idxMax : integer;
max,z:real;
str : string;
begin
if stringgrid1.Cells[1,1]='' then
begin
showmessage('Введите данные');
exit;
end;
max := -99999999;
idxMax := 1;
for j := 1 to StringGrid1.RowCount-1 do
begin
z:=0;
for i := 1 to StringGrid1.ColCount-1 do
z := z + StrToFloat(stringgrid3.cells[i,1])*(StrToFloat(stringgrid1.cells[i,j]) - StrToFloat(stringgrid2.cells[i,1]));

if z>max then
begin
max := z;
idxMax := j;
end;

end;

if max >=0 then
label4.Caption := 'A' +IntToStr(idxMax)
else
label4.Caption := 'нет'
end;




изменение размеров массива (добавление крнитериев) при изменении полей Edit2
procedure TForm1.Change_size(Sender: TObject);
var i:integer;
begin
if Edit1.Text='' then exit;
Stringgrid1.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid1.Cells[i,0]:='k'+inttostr(i);
end;
Stringgrid2.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid2.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid3.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid3.Cells[i,0]:='k'+inttostr(i);
end;

end;




Блок схема




изменение размеров массива (добавление альтернатив) при изменении поля Edit1
procedure TForm1.Change_size2(Sender: TObject);
var i:integer;
begin
if Edit2.Text='' then exit;
Stringgrid1.RowCount:=strtoint(Edit2.Text)+1;
for i:=1 to strtoint(Edit2.Text)+1 do
begin
Stringgrid1.Cells[0,i]:='a'+inttostr(i);
end;
end;




Подготовка массива с учетом значений по умолчанию

procedure TForm1.CCreate__(Sender: TObject);
var i:integer;
begin
Stringgrid1.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit2.Text)+1 do
begin
Stringgrid1.Cells[0,i]:='a'+inttostr(i);
end;

Stringgrid1.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid1.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid2.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid2.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid3.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid3.Cells[i,0]:='k'+inttostr(i);
end;
end;





Закрытие программы

procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;





Сохранение результатов

procedure TForm1.N4Click(Sender: TObject);
var s:tstrings;
begin
s:=tstringlist.Create;
s.Add(label4.Caption);
if label4.Caption<>'' then
s.SaveToFile('result.txt')
else
showmessage('Now results');

end;





Исходный текст

Unit1.pas

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Buttons, Menus, ComCtrls, ExtDlgs;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
StringGrid2: TStringGrid;
Label2: TLabel;
Label3: TLabel;
StringGrid3: TStringGrid;
BitBtn1: TBitBtn;
Label4: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
StatusBar1: TStatusBar;
N4: TMenuItem;
procedure Change_size(Sender: TObject);
procedure Change_size2(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure CCreate__(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const n=100;
s=100;

var
Form1: TForm1;
X: array[1..s] of real;
A: array[1..n] of real;

implementation

{$R *.dfm}

procedure TForm1.Change_size(Sender: TObject);
var i:integer;
begin
if Edit1.Text='' then exit;
Stringgrid1.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid1.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid2.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid2.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid3.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid3.Cells[i,0]:='k'+inttostr(i);
end;

end;

procedure TForm1.Change_size2(Sender: TObject);
var i:integer;
begin
if Edit2.Text='' then exit;
Stringgrid1.RowCount:=strtoint(Edit2.Text)+1;
for i:=1 to strtoint(Edit2.Text)+1 do
begin
Stringgrid1.Cells[0,i]:='a'+inttostr(i);
end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var i,k,j,n,idxMax : integer;
max,z:real;
str : string;
begin
if stringgrid1.Cells[1,1]='' then
begin
showmessage('Введите данные');
exit;
end;
max := -99999999;
idxMax := 1;
for j := 1 to StringGrid1.RowCount-1 do
begin
z:=0;
for i := 1 to StringGrid1.ColCount-1 do
z := z + StrToFloat(stringgrid3.cells[i,1])*(StrToFloat(stringgrid1.cells[i,j]) - StrToFloat(stringgrid2.cells[i,1]));

if z>max then
begin
max := z;
idxMax := j;
end;

end;

if max >=0 then
label4.Caption := 'Наилучшей альтернативой является: A' +IntToStr(idxMax)
else
label4.Caption := 'Наилучшей альтернативы НЕТ'
end;

procedure TForm1.CCreate__(Sender: TObject);
var i:integer;
begin
Stringgrid1.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit2.Text)+1 do
begin
Stringgrid1.Cells[0,i]:='a'+inttostr(i);
end;

Stringgrid1.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid1.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid2.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid2.Cells[i,0]:='k'+inttostr(i);
end;

Stringgrid3.ColCount:=strtoint(Edit1.Text)+1;
for i:=1 to strtoint(Edit1.Text)+1 do
begin
Stringgrid3.Cells[i,0]:='k'+inttostr(i);
end;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.N4Click(Sender: TObject);
var s:tstrings;
begin
s:=tstringlist.Create;
s.Add(label4.Caption);
if label4.Caption<>'' then
s.SaveToFile('result.txt')
else
showmessage('Нет результата');

end;

end.





Unit1.dfm
object Form1: TForm1
Left = 307
Top = 82
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = #1042#1099#1073#1086#1088' '#1085#1072#1080#1083#1091#1095#1096#1080#1093' '#1072#1083#1100#1090#1077#1088#1085#1072#1090#1080#1074' '#1089' '#1080#1089#1087#1086#1083#1100#1079#1086#1074#1072#1085#1080#1077#1084' '#1084#1077#1090#1086#1076#1086#1074' '#1086#1087#1090#1080#1084#1080#1079#1072#1094#1080#1080
ClientHeight = 438
ClientWidth = 507
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Menu = MainMenu1
OldCreateOrder = False
OnCreate = CCreate__
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 32
Width = 152
Height = 13
Caption = #1040#1083#1100#1090#1077#1088#1085#1072#1090#1080#1074#1099'/'#1050#1088#1080#1090#1077#1088#1080#1080':'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label2: TLabel
Left = 8
Top = 224
Width = 238
Height = 13
Caption = #1074#1077#1082#1090#1086#1088' '#1087#1086#1088#1086#1075#1086#1074#1099#1093' '#1079#1085#1072#1095#1077#1085#1080#1081' '#1082#1088#1080#1090#1077#1088#1080#1077#1074':'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label3: TLabel
Left = 8
Top = 312
Width = 173
Height = 13
Caption = #1074#1077#1082#1090#1086#1088' '#1074#1072#1078#1085#1086#1089#1090#1080' '#1082#1088#1080#1090#1077#1088#1080#1077#1074':'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label4: TLabel
Left = 8
Top = 400
Width = 5
Height = 16
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object StringGrid1: TStringGrid
Left = 8
Top = 48
Width = 481
Height = 169
ColCount = 3
RowCount = 3
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing]
TabOrder = 0
end
object Edit1: TEdit
Left = 72
Top = 8
Width = 49
Height = 21
TabOrder = 1
Text = '2'
OnChange = Change_size
end
object Edit2: TEdit
Left = 8
Top = 8
Width = 49
Height = 21
TabOrder = 2
Text = '2'
OnChange = Change_size2
end
object StringGrid2: TStringGrid
Left = 8
Top = 240
Width = 481
Height = 65
ColCount = 3
RowCount = 2
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing]
TabOrder = 3
end
object StringGrid3: TStringGrid
Left = 8
Top = 328
Width = 481
Height = 65
ColCount = 3
RowCount = 2
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing]
TabOrder = 4
ColWidths = (
64
64
64)
end
object BitBtn1: TBitBtn
Left = 240
Top = 8
Width = 129
Height = 25
Caption = #1056#1072#1089#1089#1095#1080#1090#1072#1090#1100
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Verdana'
Font.Style = [fsBold, fsUnderline]
ParentFont = False
TabOrder = 5
OnClick = BitBtn1Click
end
object StatusBar1: TStatusBar
Left = 0
Top = 419
Width = 507
Height = 19
Panels = <>
end
object MainMenu1: TMainMenu
Left = 360
Top = 24
object N1: TMenuItem
Caption = #1060#1072#1081#1083
object N4: TMenuItem
Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1088#1077#1079#1091#1083#1100#1090#1072#1090#1099
OnClick = N4Click
end
object N3: TMenuItem
Caption = '-'
end
object N2: TMenuItem
Caption = #1042#1099#1093#1086#1076
OnClick = N2Click
end
end
end
end



Опубликовал Kest November 26 2009 10:35:41 · 0 Комментариев · 7461 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Info
AUTOWEB
Архив значков
Нестандартные при...
AlnComponents
CoolDev TipsSyste...
Delphi 2006 - Спр...
около 291 статьи ...
Учебник по создан...
Упорядоченный дин...
Win-Prolog 3.618
De Knop
Заставка. Изображ...
Паскаль и Дельфи....
C# Учебный курс
DAlarm
DelphiXIsoDemo1
С. Г. Горнаков - ...
Программирование ...
БД студентов

Топ загрузок
Приложение Клие... 100795
Delphi 7 Enterp... 98041
Converter AMR<-... 20299
GPSS World Stud... 17061
Borland C++Buil... 14250
Borland Delphi ... 10377
Turbo Pascal fo... 7393
Калькулятор [Ис... 6084
Visual Studio 2... 5236
Microsoft SQL S... 3674
Случайные статьи
Окно редактора кол...
Объяснение решения
Структура книги
Разработка скрипто...
Дубликат водительс...
Что способен обнар...
Средство поиска
ПРЕОБРАЗОВАНИЕ АРИ...
Американская рулет...
Фотограф Киев
Fall Control Super...
Invalid numeric fo...
От людей нужно ожи...
Вскрытие корпуса
Формат изображений...
Раскрутка, путем р...
Тестирование
Преобразование иде...
Женская консультац...
Копирование и прис...
Слот-автоматы
Использование ext/...
Добавление и удале...
Элементы управлени...
Батареи для ноутбу...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?