IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача.Быстрый Фил, Нужен второй алгоритм
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Прошу помоч решить задачу :
Быстрый Фил. Фил работает работает в последнюю смену.После работы ровно в 2-00 утра Фил уезжает домой с автомобильной
стоянки.Его маршрут пролегает по дороге,на которой установлены один или несколько светофоров.Фил всегда удивлялся,что,выбирая определенную
скорость движения по маршруту и не изменяя ее ,он мог иногда доехать к дому без задержки на светофорах,т.е. все светафоры он проезжает
на зеленый свет.Скорость движения в городской черте не должна превосходить 60 миль/час.Однако Фил не любил и тихо ездить.
Минимальная скорость его движения 30 миль/час.Составьте алгоритм-программу,которая находит все целочимленные скорости(в милях/час),с которыми
Фил может двигаться домой без остановки на светофорах,начало движения с автомобильной стоянки ровно в 2-00 утра.В этот момент времени все светофоры сбрасываются в
зеленый свет.
Исходные данные задаются в текст. файле,в котором приводится набор данных для описания режимов работы светофоров.Последнее
число в файле(-1),является признаком конца данных в файле.Первое число n каждого набора чисел : Length-GreenYellowRed (LGYR)
для каждого светофора, где L-положительное действительное число,указывающее место расположения светофора от начала маршрута Фила;
G,Y,R - интервал продолжительности времени в секундах непрерывного цвета светофора зеленого,желтого,красного.Результаты
расчетов допустимых целочисленных скоростей движения Фила сохранить в выходном файле:


Файл исходных данных:
1
5.5 40 8 25

Файл выходных данных : 30,32,33,36,37,38,41,42,43,44,45,48,49,5051,52,53,54,59,60


Файл исходных данных:
3
10.7 10 2 75
12.5 12 5 57
17.93 15 4 67
-1

Файл выходных данных : Должно получится 0 - признак отсутствия такой скорости


Дело в том что мне нужно два алгоритма на эту задачу , один я сделал , а вот до другого не могу додуматься , вот вас решил спросить . Задача в принципе легкая , но загвозка в том что мне нужен еще один алгоритм на эту задачу.
:low:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
один я сделал , а вот до другого не могу додуматься , вот вас решил спросить . Задача в принципе легкая , но загвозка в том что мне нужен еще один алгоритм на эту задачу.

а ты не боишься, что даже если кто-нибудь решит эту задачу, то решение будет совпадать с твоим ;)?

ты бы показал свой вариант. :yes:

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Вот мой вариант (тока немного trunc глючит , но это попровимо) :
uses crt;
var
i,j,n,l,q,Time:integer;
Green,Red,Yellow,Speed,Length:array[1..100]of real;
s:string;
k:real;
c:char;
f1,f2:TEXT;
Sens:boolean;


begin
clrscr;
assign(f1,'next1.txt');
assign(f2,'next2.txt');
reset(f1);
rewrite(f2);
readln(f1,n);
for i:=1 to n do
begin
for j:=1 to 4 do
begin
read(f1,k);
case j of
1: length[i]:=k;
2: Green[i]:=k;
3: Yellow[i]:=k;
4: Red[i]:=k;
end;
end;
readln(f1);
end;
q:=30; l:=0;
while q<=60 do
begin
Sens:=True;
for i:=1 to n do
if Sens=True then
begin
Time:=trunc(Length[i]/(k*1000)*3600);
Time:=Time mod trunc(Green[i]+Red[i]+Yellow[i]);
if (Time>=0)and(Time<=10) then
begin
inc(l);
Speed[l]:=q;
Sens:=False;
end;
end;
inc(q);
end;
for i:=1 to l do
write(Speed[i]:4 :0);
readkey;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артем

Репутация: -  0  +


прошу помочь в решении данной задачи !mol1.gif , потому что представленных выше код, не работает как надо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


А в чём смысл жёлтого сигнала в этой задаче? И где задаётся фаза светофора?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Фаза задается тут:
Цитата(Guilty @ 30.05.2005 4:41) *
... ровно в 2-00 утра.В этот момент времени все светофоры сбрасываются в зеленый свет.

Смысл желтого, думаю - запутать решающего )). Или по-возможности приблизить ситуацию к реальности..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артем

Репутация: -  0  +


Цитата(Lapp @ 31.03.2010 12:45) *

Фаза задается тут:

Смысл желтого, думаю - запутать решающего )). Или по-возможности приблизить ситуацию к реальности..


именно так smile.gif приблизить ситуацию к реальной .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артем

Репутация: -  0  +


аааааа хелп ми плиз cray.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(novaa @ 31.03.2010 8:31) *
представленных выше код, не работает как надо
А что это значит? Как тебе надо?

Вот мой вариант. Его результат на приведенном примере такой же, как у кода выше (то есть не такой, как в ответе примера).
const
m=100;

var
f: text;
i,n,v: integer;
y,r,t: double;
l,g,c: array [1..m] of double;
Yes: boolean;
Comma: string[1];

begin
Assign(f,'in.txt');
ReSet(f);
ReadLn(f,n);
for i:=1 to n do begin
ReadLn(f,l[i],g[i],y,r);
c[i]:=g[i]+y+r
end;
Close(f);
Comma:='';
Assign(f,'out.txt');
ReWrite(f);
for v:=30 to 60 do begin
Yes:=true;
i:=0;
while Yes and (i<n) do begin
Inc(i);
t:=l[i]/v*3600;
Yes:=Yes and (t-Trunc(t/c[i])*c[i]<=g[i])
end;
if Yes then begin
Write(f,Comma,v);
Comma:=','
end
end;
if Length(Comma)=0 then Write(f,0);
Close(f)
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артем

Репутация: -  0  +


Цитата(Lapp @ 1.04.2010 4:14) *

А что это значит? Как тебе надо?

Вот мой вариант. Его результат на приведенном примере такой же, как у кода выше (то есть не такой, как в ответе примера).
const
m=100;

var
f: text;
i,n,v: integer;
y,r,t: double;
l,g,c: array [1..m] of double;
Yes: boolean;
Comma: string[1];

begin
Assign(f,'in.txt');
ReSet(f);
ReadLn(f,n);
for i:=1 to n do begin
ReadLn(f,l[i],g[i],y,r);
c[i]:=g[i]+y+r
end;
Close(f);
Comma:='';
Assign(f,'out.txt');
ReWrite(f);
for v:=30 to 60 do begin
Yes:=true;
i:=0;
while Yes and (i<n) do begin
Inc(i);
t:=l[i]/v*3600;
Yes:=Yes and (t-Trunc(t/c[i])*c[i]<=g[i])
end;
if Yes then begin
Write(f,Comma,v);
Comma:=','
end
end;
if Length(Comma)=0 then Write(f,0);
Close(f)
end.



Там он не выводил те значения которые должны выводится. в обоих случаях он выводил значения от 30 до 60.

АААааааа большое спасибо , работает как надо smile.gif очень благодарен!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(novaa @ 1.04.2010 6:37) *
Там он не выводил те значения которые должны выводится. в обоих случаях он выводил значения от 30 до 60.
Да, похоже на то... видимо, я невнимательно посмотрел в первый раз.
Мой вариант не выводит все числа из примера - например, 41. Похоже, в примере ошибка. Наверное, его набирали вручную (об этом говорит пропущенная запятая), так что ошибки могли быть.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 21:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name