Иван Томилин
Заказчик Иван Томилин ivan9095 | FL.RU

Иван Томилин

На сайте 12 лет и 11 месяцев (заходил 11 лет 10 месяцев 19 дней назад)
0
111
Рейтинг
111
Все (1)       Заказы (1)        Вакансии (0)       Конкурсы (0)
Разместить заказ
12 Апреля 2013
По договоренности
Нужно написать программу на прологе. вот текст задания
В высотном здании (150 этажей) багдадского банка возник пожар. Огонь распространяется со скоростью 1 этаж в минуту. В здании имеется лифт, который движется со скоростью 10 этажей в минуту и застревает, если проходит через этаж, захваченный огнем. В момент начала пожара лифт стоит на первом этаже и там же находится знаменитый багдадский вор, желающий вынести из банка как можно больше золотых монет. Он знает номера этажей, на которых хранятся монеты, и точные их количества на каждом таком этаже. Для поиска монет на этаже и переноса
их в лифт ему требуется две минуты. Напишите программу, моделирующую поведение багдадского вора для получения максимально возможного количества монет. Номер этажа, где начался пожар, задается. Также предусмотрите возможность изменить параметров здания, скорости пожара и скорости лифта, чтобы вор мог пользоваться программой в разных зданиях.

есть код на паскале:
program pojar;
uses crt;

type int = integer;
mass = array [1..150] of int;
masss = array [1..150] of real;
const n = 150;

var i,j, bank,m,nn : int;
h, l : real;
floor,kk : mass;
paid : masss;

function sbor(m,nn:real):real;
begin
sbor:=abs(m-nn)*0.1+1.5;
end;

function rasst (l, m : real) : real;
begin
if m<l then rasst:=l-m else rasst:=0;
end;

procedure table;
var k,kkk:real;
begin
for i:=2 to n do
if sbor(i,nn)<rasst(l,i) then
paid[i]:=floor[i]/sbor(i,nn)
else paid[i]:=0;
end;

function getmax:integer;
var k:integer; max:real;
begin
k:=1;
max:=0;
for i:=1 to n do
if paid[i]>max then begin max:=paid[i]; k:=i;
end;
getmax:=k;
end;

procedure vor(var l:real; var nn:int);
begin
table;
m:=getmax;
if floor[m]=0 then exit;
bank:=floor[m]+bank;
writeln('zabrali ',floor[m],' monet s ',m,' etaja');
floor[m]:=0;
l:=l-sbor(m,nn);
nn:=m;
vor(l,nn);
end;

begin
nn:=1;
m:=1;
clrscr;
writeln('vvod monet');
randomize;
floor[1]:=0;
for i:=2 to n do floor[i]:=random(999)+11;
writeln('vvedite etaj na4ala pojara');
readln(l);
vor(l,nn);
writeln('sobrano ',bank,'...');
end.

Прошло времени с момента публикации: 11 лет 10 месяцев 23 дня 3 часа 56 минут
Раздел: Программирование
Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».