Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БИЛЕТЫ кроме 36.doc
Скачиваний:
5
Добавлен:
08.09.2019
Размер:
1.9 Mб
Скачать

3. Решите задачу линейного программирования графическим методом.

f=2x1+x2→min,

x1, x2 0,

2x1+3x2 6,

2x1+x2 4,

x1 1,

x1-x2 -1,

2x1+x2 1.

1) 2*x1 + 3*x2 = 6

x1

x2

0

2

3

0

2) 2*x1 + x2 = 4

x1

x2

0

4

2

0

3) x1 = 1

4) x1 – x2 = -1

x1

x2

0

1

-1

0

5) 2*x1 + x2 = 1

x1

x2

0

1

0.5

0

Построим графики всех функций и найдем область, которую они ограничивают.

grad: (0,0) : (2,1).

Точка находится на пересечении 1 и 3 уравнений.

Решим систему:

2*x1 + x2 = 1

x2 = 0

x1 = 0.5

x2 = 0

f(max) = 2*0.5 + 0 = 1.

Проверим на Maple.

> with(plots);

> inequal({2*x1+3*x2<=6, 2*x1+x2<=4, x1<=1, x1-x2>=-1, 2*x1+x2>=1, x1>=0, x2>=0}, x1=-5..5, x2=-5..5, optionsfeasible=(color=blue),optionsexcluded=(color=white));

> with(simplex);

> minimize(2*x1+x2, {2*x1+3*x2<=6, 2*x1+x2<=4, x1<=1, x1-x2>=-1, 2*x1+x2>=1}, NONNEGATIVE);

Билет №20

1. Описание процедур и функции языка программирования Pascal.

В языке Паскаль существуют понятия процедуры и функции. Процедуры и функции можно определить как замкнутые программные единицы, реализующие некоторый алгоритм.

Описание и вызов процедур и функций

Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, переменных. Исполняемая часть содержит собственно операторы процедур.

Формат описания процедуры имеет вид:

procedure имя процедуры (формальные параметры);

раздел описаний процедуры

begin

исполняемая часть процедуры

end;

Формат описания функции:

function имя функции (формальные параметры):тип результата;

раздел описаний функции

begin

исполняемая часть функции

end;

Формальные параметры в заголовке процедур и функций записываются в виде:

var имя параметра: имя типа

и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать (об этом далее). Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type.Список формальных параметров может отсутствовать.

Вызов процедуры производится оператором, имеющим следующий формат:

имя процедуры(список фактических параметров);

Рассмотрим использование процедуры на примере программы поиска максимума из двух целых чисел.

var x,y,m,n: integer;

procedure MaxNumber(a,b: integer; var max: integer);

begin

if a>b then max:=a else max:=b;

end;

begin

write('Введите x,y ');

readln(x,y);

MaxNumber(x,y,m);

MaxNumber(2,x+y,n);

writeln('m=',m,'n=',n);

end.

Аналогичную задачу, но уже с использованием функций, можно решить так:

var x,y,m,n: integer;

function MaxNumber(a,b: integer): integer;

var max: integer;

begin

if a>b then max:=a else max:=b;

MaxNumber := max;

end;

begin

write('Введите x,y ');

readln(x,y);

m := MaxNumber(x,y);

n := MaxNumber(2,x+y);

writeln('m=',m,'n=',n);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]