![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Guilty |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прошу помоч решить задачу :
Быстрый Фил. Фил работает работает в последнюю смену.После работы ровно в 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: |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата один я сделал , а вот до другого не могу додуматься , вот вас решил спросить . Задача в принципе легкая , но загвозка в том что мне нужен еще один алгоритм на эту задачу. а ты не боишься, что даже если кто-нибудь решит эту задачу, то решение будет совпадать с твоим ;)? ты бы показал свой вариант. :yes: Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Guilty |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот мой вариант (тока немного 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.
|
novaa |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
прошу помочь в решении данной задачи
![]() |
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
А в чём смысл жёлтого сигнала в этой задаче? И где задаётся фаза светофора?
-------------------- |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Фаза задается тут:
... ровно в 2-00 утра.В этот момент времени все светофоры сбрасываются в зеленый свет. Смысл желтого, думаю - запутать решающего )). Или по-возможности приблизить ситуацию к реальности.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
novaa |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
|
novaa |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
аааааа хелп ми плиз
![]() |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
представленных выше код, не работает как надо А что это значит? Как тебе надо?Вот мой вариант. Его результат на приведенном примере такой же, как у кода выше (то есть не такой, как в ответе примера). 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.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
novaa |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
А что это значит? Как тебе надо? Вот мой вариант. Его результат на приведенном примере такой же, как у кода выше (то есть не такой, как в ответе примера). 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. АААааааа большое спасибо , работает как надо ![]() |
Lapp |
![]()
Сообщение
#11
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Там он не выводил те значения которые должны выводится. в обоих случаях он выводил значения от 30 до 60. Да, похоже на то... видимо, я невнимательно посмотрел в первый раз.Мой вариант не выводит все числа из примера - например, 41. Похоже, в примере ошибка. Наверное, его набирали вручную (об этом говорит пропущенная запятая), так что ошибки могли быть. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 9:57 |