TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

         Практическое задание N 1. 51

            Модифицировать программу "молекулы газа в поле тяготения":

            1.  Изменить направление поля тяготения (в правый нижний угол). 

            2.  Точки ярких цветов направьте к правой границе экрана,  точки темных цветов - к левой границе.

            3.  Для одной из точек (например,  с номером 100) отслеживать ее движение в виде ломаной линии.

            4.  Смещать сто раз через один цикл (Repeat. . . Until) нижнюю границу на один пиксел вверх,  затем вниз  и т. д. ,  моделируя изменение "объема сосуда с молекулами".  Добавить оператор,  контролирующий и изменяющий координаты точек,  выходящих за границу.

{------------------------------------------------------------------

            Фрагмент N 7   программы   "пчелиный рой"

( рисование массива пикселов,  хаотично перемещающихся около движущейся точки).

------------------------------------------------------------------}

for k:=1 to N do begin  X[k]:= random(Gx);

                        Y[k]:= random(Gy);

                        P[k]:= random(16)   end;

i:=1;   

Repeat

       if i < Gx then  i:= i + 3;                        { смещение "центра" роя }

     for k:= 1 to N do begin

            dx:= -25 + random(51);

            dy:= -25 + random(51);   PutPixel(X[k], Y[k], 0);

 

             if (X[k]+dx > 0) and (X[k]+dx < Gx)  { контроль выхода пикселов } 

               then begin                                                       { за границу экрана }

         if (X[k]+dx < Gx-i)  then dx:= dx+5   { контроль выхода "центра" }

               else dx:= dx-5;  X[k]:= X[k]+dx        { за границу экрана }

                      end;       

 

                    if (Y[k]+dy > 0) and (Y[k]+dy < Gy) { контроль выхода пикселов }

               then begin                                                      { за границу экрана }

        if (Y[k]+dy<Gy div 2) then dy:= dy+5 { контроль выхода "центра" }

              else dy:= dy-5;  Y[k]:= Y[k]+dy        { за границу экрана }

                     end;

         PutPixel(X[k], Y[k], P[k]) 

    end

Until KeyPressed;    

{-----------------------------------------------------------------}

            Эта программа - усложненный вариант фрагмента N6.  Случайные смещения координат точек dx, dy сначала задаются равномерно из диапазона  25. . . 25.  Затем анализируется местоположение каждой точки относительно полюса с координатами Gx-i,  Gy div 2.  Смещения координат корректируются так,  чтобы точки "тяготели" к "центру".  "Центр" перемещается из-за изменения параметра "i",  чем моделируется перемещение роя.

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz