Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по Визуальному програмированию.doc
Скачиваний:
57
Добавлен:
01.05.2015
Размер:
545.79 Кб
Скачать

4.2 Задание к лабораторной работе

 

4.2.1 Создать звездное небо, звезды мерцают. Включение эффекта «Мерцание» создается с помощью кнопок:  таймер запускается и отключается. При срабатывании прерывания от таймера будет происходить мерцание. Звезды расположены в таблице в местах, которые при сквозном подсчете являются квадратом некоторого числа. Условием этого является:       if frac(sqrt(k))=0. Цвет неба – черный, а звезды – белые.

План разработки программы:

1)       Разместить на форме экземпляры компонентов DrawGrid, Timer и три кнопки в соответствии с рисунком 4.1.

2)       Выделить объект DrawGrid 1, установить свойства

DefaultColWidth – 3;

DefaultRowHeight 3;

DefaultDrawing  - false;

GridLineWidth 0;

ColCount175;

RowCount105;

BorderStyle BsNone.

3)       Выделить компонент Timer   и установить значение свойства interval равным 100;

4)       Активизировать кнопку start и в обработчик  события записать команду:

    timer1.Enabled:=true;

происходит включение таймера – звезды мерцают.

5)       Активизировать кнопку stop и в обработчик  события записать команду:

               timer1.Enabled:=false;

происходит отключение таймера, звезды перестают мерцать.

6)       Активизировать кнопку «Закрыть» и в обработчик события OnClick вставить строку:

               close;

7)       Активизировать  таймер и в обработчик события записать следующие команды:

DrawGrid1.Canvas.Brush.Color:=clBlack; {макаем кисть в черную краску}

for i:=0 to 174 do

   for j:=0 to 104 do

       begin

   area:= DrawGrid1.CellRect(j,i); {выделяем ячейку}

   drawGrid1.Canvas.FillRect(area);{закрашиваем небо}

        end;

        k:=-1;

        DrawGrid1.Canvas.Brush.Color:=clWhite;

                  for i:=0 to 174 do

        for j:=0 to 104 do

              begin

              inc(k);

              if frac(sqrt(k))=0 then   {условие того, что ячейка

                                                     является звездочкой}

                         begin

                               area:= DrawGrid1.CellRect(j,i);

                                                        {присваивается области area

                                                           положение текущей ячейки}   

         drawGrid1.Canvas.FillRect(area);{закрашиваем звездочку

                                                                        белым цветом}

         end;

         end;

Примечание: при вызове функции  CellRect, определяющей прямоугольник этой ячейки, сначала указывается  индекс столбца, а затем – индекс строки. Закрашивание всегда происходит текущим цветом кисти. Кисть - Canvas.Brush.Color.

 

 

Рисунок. 4.1

 

4.2.2 В целочисленной матрице А(5,5) поменять местами второй и четвертый столбец. Решить двумя способами: используя свойство Cells и свойство Rows.

 

План разработки программы:

1)       со страницы Additional поместить два компонента StringGrid  и со страницы Standard поместить три компонента Button в соответствии с рисунком 4.2;

2)       задать свойствам компонентов StringGrid следующие значения

ColCount - 5;

RowCount - 5;

FixedCols – 0;.

FixedRows – 0;

Options – goEditing – true;

3)   для компонентов Button1, Button2, Button3 задать значения свойства Caption так, как показано на рисунке;

4)   активизировать кнопку Start1.З задача будет решаться при помощи свойства Cells. Создать  следующий обработчик события  OnClick

var i,j:integer;

begin

 for j:=0 to 4 do

        if (j<>1)and (j<>3) then

          for i:=0 to 4 do

            StringGrid2.Cells[j,i]:=StringGrid1.Cells[j,i];

         for i:=0 to 4 do

            begin

              StringGrid2.Cells[1,i]:=StringGrid1.Cells[3,i];

              StringGrid2.Cells[3,i]:=StringGrid1.Cells[1,i];

            end;

end;

5)       активизировать кнопку Start2. З задача будет решаться при помощи свойства Cols. Создать  следующий обработчик события  OnClick:

begin

 stringgrid2.Cols[0]:=stringgrid1.Cols[0];

 stringgrid2.Cols[1]:=stringgrid1.Cols[3];

 stringgrid2.Cols[2]:=stringgrid1.Cols[2];

 stringgrid2.Cols[3]:=stringgrid1.Cols[1];

 stringgrid2.Cols[4]:=stringgrid1.Cols[4];

end;

6)       активизировать кнопку Clear для очистки второй таблицы. Создать  следующий обработчик события  OnClick:

var i,j:integer;

begin

    for i:=0 to 4 do

      for j:=0 to 4 do

      StringGrid2.Cells[j,i]:=' ';

7)       активизировать кнопку Close, как в предыдущих заданиях.

8)       сохранить проект в папке StringGrid: File – Save All. Запустить проект на выполнение.

 

 

Рисунок 4.2