Восход Луны | страница 48



Глава 18

У Юли все предыдущие работы были сданы, поэтому мне она сдавала первую работу на следующей неделе. Программа у неё работала отлично, я попросила её объяснить несколько свойств объектов, одну процедуру и поставила ей заслуженную пятёрку. По моей просьбе, Юля скинула программу на сетевой диск, а оттуда я взяла её на свой компьютер. Так я поступала со всеми работами, которые люди сдавали первыми, во избежание их дальнейшего размножения. После того, как мне сдали все, кто хотел, я дала новое задание:

– Следующая программа, которую вы должны будете написать, называется «Броуновское движение». Вообще говоря, броуновское движение – это хаотичное движение частиц взвеси в жидкой или газообразной среде под ударами молекул или атомов вещества среды. Таким образом, траектория частицы является ломаной кривой, но причины изменения направления её движения не ясны, так как не видны атомы и молекулы. Но наша программа должна смоделировать хаотическое тепловое движение частиц, образующих вещество, под которым часто неправильно понимают броуновское движение. То есть я должна увидеть кружочки, направление которых задаётся случайным образом, которые отталкиваются друг от друга и от стенок. Удар должен быть абсолютно упругим, т.е. при ударе скорость и направление одной частицы должны переходить к другой и наоборот. Скорости сделайте одинаковыми, это проще, например, задайте шаг молекулы как один пиксель за интервал таймера.

– Ирина Владимировна, а как сделать так, чтобы молекулы отталкивались?

– Наиболее распространённый способ – это следить, чтобы расстояние между двумя молекулами было больше, чем два радиуса. Как только оно становится равно диаметру, происходит столкновение. Как находить расстояние между двумя точками помните?

– Ну так…

– Берёте координаты левых верхних углов, или центров, не суть важно, и извлекаете квадратный корень из суммы квадратов разностей координат. Да, и не забывайте, что везде при задании и изменении направлений вы должны обязательно учитывать, что у точек есть две координаты: х и у.

– А как случайно задать направление?

– Может, мне вам ещё и программу сразу написать? Действительно, зачем я вам тут всё рассказываю, давайте сразу всем пятёрки поставлю. Хоть над чем-нибудь подумайте.


В конце второй пары мне сдавала работу Ксюша. Программа у неё тоже работала прекрасно, но вот когда я посмотрела код программы…

– Эту работу я уже видела. Ксения, как вы можете это прокомментировать?