Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2010, 20:35   #1
TuuuZ
Пользователь
 
Регистрация: 28.12.2009
Сообщений: 27
По умолчанию паскаль. оптимальная выборка

задача, поиск оптимальной выборки объектов при ограничениях
программа списана с учебника Н.Вирта, но не пашет, помогите починить ее
Код:
program selection (input,output);
const n = 10;
type index = 1 ..n;
     object1 = record v,w: integer end ;
var i: index;
a: array [index] of object1;
limw, totv, maxv: integer;
w1, w2, w3: integer;
s, opts: set of index;
z: array [boolean] of char;

procedure try(i: index; tw,av: integer);
var av1: integer;
begin {попытка включения объекта i}
if tw + a[i].w <= limw then
begin s:= s +[i];
if i < n then try(i+1, tw+a[i].w, av) else
if av > maxv then
begin maxv :=av; opts:=s 
end ;
s := s - [i]
end ;
 av1:= av - a[i].v;
if av1 > maxv then
begin if i < n then try (i+1, tw, av1) else 
begin maxv := av1; opts := s
end
end
end {try} ;
begin totv := 0;
for i :=1 to n do
with a[i] do
begin read(w,v); totv:= totv + v 
end ;
read(w1,w2,w3);
z[true] :='*'; z[false]:= ' ';
write('WEIGHT ');
for i:=1 to n do
write (a[i].w: 4);
writeln;
 write('VALUE ');
for i:= 1 to n do
write (a[i].v:4);
writeln;
repeat limw:=w1; maxv := 0; s:=[ ]; opts:= [ ];
try(1,0,totv); write(limw);
for i:=1 to n do write('  ' ,z[i in opts]);
writeln; w1 := w1 + w2
until w1 > w3
end.

Последний раз редактировалось Stilet; 09.08.2010 в 10:55.
TuuuZ вне форума Ответить с цитированием
Старый 06.08.2010, 20:53   #2
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Не понял цели программы, но попробуй процедуру под названием try поменять на другое название, так как try зарезервированное слово в delphi
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 07.08.2010, 12:02   #3
TuuuZ
Пользователь
 
Регистрация: 28.12.2009
Сообщений: 27
По умолчанию

непашет всеравно
TuuuZ вне форума Ответить с цитированием
Старый 07.08.2010, 13:03   #4
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
Вопрос

Не понял зачем так сложно в объявлениях

type index = 1 ..n;
object1 = record v,w: integer end ;
var i: index;
a: array [index] of object1;

Нельзя просто
object1 = record v,w: integer end ;
a: array [1..n] of object1;
baster128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимальная температура железа DRAGGER Компьютерное железо 50 13.02.2012 12:38
Выборка выборка с таблицы с отношением многие-ко-многим 8alig8 БД в Delphi 2 24.06.2010 12:21
Самая оптимальная настройка системы Altera Свободное общение 11 16.08.2009 20:09
выборка из БД xvipx Microsoft Office Excel 13 30.01.2009 12:43