Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

Ещё одна простенькая задачка для всех.   Найти похожие ветки 

 
PaRL   (2002-04-23 18:28) [0]

Путник треть пути бежал со скоростью 7 км/ч. Треть времени после этого он шёл со скоростью 4 км/ч. Всё оставшееся время он шёл со средней скоростью. Найти среднюю скорость.


 
handra   (2002-04-23 18:34) [1]

5,(09) км/ч


 
Johnmen   (2002-04-23 18:48) [2]

5.5 км/ч.


 
ДимаНко   (2002-04-23 20:06) [3]

почему так ?


 
Dimaiv   (2002-04-23 20:10) [4]

а так.


 
Doom   (2002-04-23 20:55) [5]


> Dimaiv © (23.04.02 20:10)

А вот и не так



> Johnmen © (23.04.02 18:48)

Однозначно неправильно


 
MBo   (2002-04-23 20:56) [6]

2*sqrt(7)~~5.29 км/ч


 
Doom   (2002-04-23 21:03) [7]


> MBo © (23.04.02 20:56)

Страная у тебя формула для средней скорости


 
Лёша   (2002-04-23 22:07) [8]

Надо полагать, весь прикол в том, что треть пути и треть времени разные понятия. Иначе задача действительно простенькая.


 
VICTOR_   (2002-04-23 22:49) [9]

Обозначим все расстояние через x
Обозначим все время через y
Тогда средняя скорость равна x/y

2/3*x = 4*(1/3)*(y-(1/3)*x/7) + (x/y)*(2/3)*(y-(1/3)*x/7)

Далее сводится к
x^2 + 2*x*y - 42*y^2 = 0
Осюда надо найти
X/Y

Далее задача из курса высшей(школьной???) математики.


 
VICTOR_   (2002-04-23 23:11) [10]

Ответ
~5.56 км/ч


 
MBo   (2002-04-24 07:34) [11]

>Doom
>Страная у тебя формула для средней скорости

расшифрую: s-весь путь t- все время z - время последнего участка

s=s/3+4t/3+zs/t
t=s/21+t/3+z

2s=4t+3zs/t
2t=s/7+3z

3z=2t-s/7 в первое =>
2s=4t+2s-s^2/(7t)
4t=s^2/(7t)
(s/t)^2=28
Vср=s/t=2sqrt(7)


 
Alx2   (2002-04-24 08:33) [12]

Mbo прав :)

Вот решение:
s = 2*sqrt(7)*t, t3 = -2/21*t*(-7+sqrt(7)), s1 = 2/3*sqrt(7)*t, t1 = 2/21*sqrt(7)*t, s3 = 4/3*t*(sqrt(7)-1), us = 2*sqrt(7), t2 = 1/3*t, s2 = 4/3*t

Где s - общий путь. t - затраченное время, us - средняя скорость,
s1 - длина первого участка пути, s2 - 2-го, s3 - 3-го.
t1 - время прохождения 1-го участка, t2 - 2-го, t3 - 3-го.

Или, после подсчета:
{s2 = 0.2519763153*s, us = 5.291502622, t3 = 0.7836911005e-1*s, t = 0.1889822365*s, t1 = 0.4761904762e-1*s, t2 = 0.6299407883e-1*s, s1 = 0.3333333333*s, s3 = 0.4146903513*s}


 
MBo   (2002-04-24 08:41) [13]

Самая простая задачка из этой серии -
мужик шел в гору со скоростью 4 км/ч, с горы 6 км/ч
найти среднюю скорость
Очень многих вводит в ступор ;)


 
Alx2   (2002-04-24 08:52) [14]

>MBo © (24.04.02 08:41)
t = 5/24*s, us = 24/5=4.8, t2 = 1/12*s, t1 = 1/8*s
t - время похода,
t1 - вермя в гору
t2 - с горы
s - путь по склону вверх + путь по склону вниз


 
MBo   (2002-04-24 09:03) [15]

>Alx2
да я не сомневался, что ты-то смикитишь - просто занятный пример привел ;)
программных задачек кидать или работу парализует? ;)


 
Alx2   (2002-04-24 09:32) [16]

Кидай.
Разве что перекуры парализует :)


 
MBo   (2002-04-24 09:39) [17]

простенький аналог заставки Геометрический вальс (mistify)(на форме или на paintbox c align=alclient во избежание проблем с invalidate)


 
VICTOR_   (2002-04-24 10:41) [18]

>MBo
>Alx2
Решение аналогичное, только в моей формуле:
Треть времени после этого
я считал от оставшегося, а не от всего времени.
В условии задачи тогда надо писать
Треть общего времени после этого
Тогда ответ
sqrt(43)-1
~5.56


 
Alx2   (2002-04-24 10:57) [19]

>MBo © (24.04.02 09:39)

Опять-таки "на вскидку".

Timer1.Interval = 20;
Form2.WindowState = wsMaximized;

Местами кратковременные помаргивания: регионы для обновления сичтать не стал.



unit Unit2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, AppEvnts;

type
TForm2 = class(TForm)
ApplicationEvents1: TApplicationEvents; // Добавить с вкладки "Additional"
Timer1: TTimer;
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure GetLine(k: double; var x1, y1, x2, y2: Integer);
{ Private declarations }
public
{ Public declarations }
NeedRepainting : Boolean;
procedure OnEraseBK(Var Msg : TMessage); message wm_erasebkgnd;
end;

var
Form2: TForm2;

implementation

{$R *.DFM}
Const Counter : integer = 0;
Procedure TForm2.GetLine(k : double; Var x1,y1,x2,y2 : Integer);
Var A1,A2 : Double;
begin
A1 := Width / 2;
A2 := Height /2 ;
x1 := Round(A1*Sin(k/100+5*abs(sin(k/252)))+A1);
y1 := Round(A2*Cos(k/170)+A2);
x2 := Round(A1*Sin(k/120)+A1);
y2 := Round(A2*Cos(k/120+5*abs(cos(k/242)))+A2)
end;
procedure TForm2.FormPaint(Sender: TObject);
procedure Plot(k : Double; Col : TColor);
Var
x1,y1,x2,y2 : integer;
begin
GetLine(k,x1,y1,x2,y2);
With Canvas do
Begin
Pen.Color := Col;
MoveTo(x1,y1);
LineTo(x2,y2);
End;
end;
Var k : integer;
begin
Plot(Counter-1,Color);
for k := Counter to Counter + 100 do
Plot(k,(round(127*sin(k/10)+128) shl 8)+(round(127*sin(k/90)+128) shl 16)+(round(127*cos(k/120)+128)));
NeedRepainting := False;
end;


procedure TForm2.Timer1Timer(Sender: TObject);
begin
Inc(Counter);
Invalidate;
end;

procedure TForm2.OnEraseBK(var Msg: TMessage);
begin
if NeedRepainting then inherited
else
Msg.Result := 0;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
NeedRepainting := True;
end;

end.



 
Alx2   (2002-04-24 11:02) [20]

Вот это ненадо :)
ApplicationEvents1: TApplicationEvents;
Просто сначала на OnIdle хотел посадить...


 
Alx2   (2002-04-24 11:07) [21]

В первом варианте сильно тормознул :(
Вот исправленный вариант:

Timer1.Interval = 20;
Form2.WindowState = wsMaximized;



unit Unit2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, AppEvnts;

type
TForm2 = class(TForm)
Timer1: TTimer;
procedure FormPaint(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
procedure GetLine(k: double; var x1, y1, x2, y2: Integer);
{ Private declarations }
public
{ Public declarations }
NeedRepainting : Boolean;
procedure OnEraseBK(Var Msg : TMessage); message wm_erasebkgnd;
end;

var
Form2: TForm2;

implementation

{$R *.DFM}
Const Counter : integer = 0;
Procedure TForm2.GetLine(k : double; Var x1,y1,x2,y2 : Integer);
Var A1,A2 : Double;
begin
A1 := Width / 2;
A2 := Height /2 ;
x1 := Round(A1*Sin(k/100+5*abs(sin(k/252)))+A1);
y1 := Round(A2*Cos(k/170)+A2);
x2 := Round(A1*Sin(k/120)+A1);
y2 := Round(A2*Cos(k/120+5*abs(cos(k/242)))+A2)
end;
procedure TForm2.FormPaint(Sender: TObject);
procedure Plot(k : Double; Col : TColor);
Var
x1,y1,x2,y2 : integer;
begin
GetLine(k,x1,y1,x2,y2);
With Canvas do
Begin
Pen.Color := Col;
MoveTo(x1,y1);
LineTo(x2,y2);
End;
end;
Var k : integer;
begin
Plot(Counter-1,Color);
k := Counter; // Исправления здесь!
Plot(k+100,(round(127*sin(k/10)+128) shl 8)+(round(127*sin(k/90)+128) shl 16)+(round(127*cos(k/120)+128)));
NeedRepainting := False;
end;


procedure TForm2.OnEraseBK(var Msg: TMessage);
begin
if NeedRepainting then inherited
else
Msg.Result := 0;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
NeedRepainting := True;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
Inc(Counter);
Invalidate;

end;

end.




 
Alx2   (2002-04-24 12:13) [22]

Да, забыл еще, что Form2.Color = clBlack


 
MBo   (2002-04-24 13:08) [23]

симпатично.
моя халтура

type
TForm1 = class(TForm)
Timer1: TTimer;
PaintBox1: TPaintBox;
procedure Timer1Timer(Sender: TObject);
procedure PaintBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
a,olda,aa,oldaa:array[0..3] of tpoint;
b,oldb,bb,oldbb:array[0..3] of tpoint;
va,vb:array[0..3] of tpoint;
first:boolean;


implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;

procedure checkborder(var q,vq:integer;const brd:integer);
begin
if q>=brd then begin
q:=2*brd-q; vq:=-vq; end;
if q<0 then begin
q:=-q; vq:=-vq; end;
end;

begin
with paintbox1 do begin
for i:=0 to 3 do begin
a[i].x:=a[i].x+va[i].x;
checkborder(a[i].x,va[i].x,clientwidth);
a[i].y:=a[i].y+va[i].y;
checkborder(a[i].y,va[i].y,clientheight);
aa[i].x:=aa[i].x+va[i].x;
checkborder(aa[i].x,va[i].x,clientwidth);
aa[i].y:=aa[i].y+va[i].y;
checkborder(aa[i].y,va[i].y,clientheight);
b[i].x:=b[i].x+vb[i].x;
checkborder(b[i].x,vb[i].x,clientwidth);
b[i].y:=b[i].y+vb[i].y;
checkborder(b[i].y,vb[i].y,clientheight);
bb[i].x:=bb[i].x+vb[i].x;
checkborder(bb[i].x,vb[i].x,clientwidth);
bb[i].y:=bb[i].y+vb[i].y;
checkborder(bb[i].y,vb[i].y,clientheight);
end;
canvas.pen.color:=clLime;
if not first then begin canvas.Polygon(olda); canvas.Polygon(oldaa); end;
canvas.Polygon(a); canvas.Polygon(aa);
olda:=a; oldaa:=aa;
canvas.pen.color:=clRed;
if not first then begin canvas.Polygon(oldb); canvas.Polygon(oldbb); end;
canvas.Polygon(b); canvas.Polygon(bb);
oldb:=b; oldbb:=bb;
first:=false;
end;
end;

procedure TForm1.PaintBox1Click(Sender: TObject);
var i:integer;
begin
with paintbox1 do begin
if not Timer1.Enabled then begin
randomize;
for i:=0 to 3 do begin
a[i].x:=random(clientwidth-5);
a[i].y:=random(clientheight-5);
aa[i].x:=a[i].x+5;
aa[i].y:=a[i].y+5;
va[i].x:=(1+random(5))*(2*random(2)-1);
va[i].y:=(1+random(5))*(2*random(2)-1);
b[i].x:=random(clientwidth-5);
b[i].y:=random(clientheight-5);
bb[i].x:=b[i].x+5;
bb[i].y:=b[i].y+5;
vb[i].x:=(1+random(5))*(2*random(2)-1);
vb[i].y:=(1+random(5))*(2*random(2)-1);
end;
canvas.Brush.color:=clBlack;
canvas.brush.style:=bsSolid;
canvas.fillrect(getclientrect);
canvas.brush.style:=bsClear;
canvas.Pen.Mode:=pmXor;
first:=true;
end;
Timer1.Enabled:=not Timer1.Enabled;
end;
end;


 
MBo   (2002-04-24 13:12) [24]

>VICTOR_
Согласен, что условие можно истолковать по разному.
стоило сформулировать так

после этого треть общего времени


 
Alx2   (2002-04-24 13:26) [25]

>MBo © (24.04.02 13:08)
Практически копия.
Только помаргивает :(


 
PaRL   (2002-04-25 16:10) [26]

На самом деле конечная формула такова:
Vср = sqrt(V1*V2)

PS Это при поступлении в техникум.


 
MBo   (2002-04-25 16:13) [27]

>На самом деле Vср = sqrt(V1*V2)

Дык оно и сказано ;)



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.007 c
6-7158
tovSuhov
2002-03-21 10:47
2002.06.03
gethostbyaddr возвращает ошибку...


6-7140
masik
2002-03-22 10:06
2002.06.03
Тормозит обмен данными м у TidServerSocket и TidClientSocket


3-6930
khan
2002-05-14 06:34
2002.06.03
Колесо мыши в DBGRID


4-7266
DNT
2002-04-01 17:24
2002.06.03
Диалог выбора иконки


1-7095
antonyo
2002-05-22 11:42
2002.06.03
Как прописать функцию открытия файла?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский