Головна

лістинг підпрограми | Практична робота № 20 | Завдання для самостійного виконання | Знаходження індексу в масиві випадкових чисел | Практична робота № 23 | лістинг підпрограм | Практична робота № 25 | Interface | графіка | Практична робота № 27 |

© um.co.ua - учбові матеріали та реферати

лістинг підпрограми

  1. V. Підпрограми.
  2. лістинг
  3. Лістинг 1. Відкриття текстового файлу
  4. Лістинг 1.1. Програма для перевірки внутрішнього уявлення чисел в комп'ютері
  5. Лістинг 1.2. Програма для перевірки зберігання чисел у вигляді двійкового коду
  6. Лістинг 4. Програма, що ілюструє використання локальних змінних.
  7. Лістинг 6. Передача параметрів.

procedure TForm1.FormCreate (Sender: TObject);

var i, j: Integer;

Begin

Randomize;

for i: = 1 to size do{Ініціалізація масиву пікселів}

for i: = 1 to size do

Points [i, j]: = 1 + Random (csize); {Мінімально можливе значення елемента масиву дорівнює 1}

end;

procedure TForm1.Timer1Timer (Sender: TObject);

var i, j: Integer;

c, l, r, u, d: Integer;

newPoints: array [1..size, 1..size] of Integer;

Begin

{Обчислити, якого кольору буде клітка на наступному кроці}

for i: = 1 to size do

for j: = 1 to size do

Begin

c: = Points [i, j] + 1; {Обчислюється «наступний колір» і запам'ятовується у змінній з}

if c> csize then c: = 1; {Після останнього кольору йде перший}

{Обчислюються індекси для клітин, що примикають до даної зверху, знизу, зліва і справа. Краї візерунка як би «склеєні» один з одним}

u: = i - 1;

if u = 0 then u: = size;

d: = i + 1;

if d> size then d: = 1;

l: = j - 1;

if l = 0 then l: = size;

r: = j + 1;

if r> size then r: = 1;

newPoints [i, j]: = Points [i, j]; {Якщо серед «сусідів» колір відсутній, то клітина залишається без змін}

{Якщо хоча б один з «сусідів» має такий колір, клітина перефарбовується}

if (Points [u, j] = c) or (Points [d, j] = c) or (Points [i, l] = c) or (Points [i, r] = c)

then newPoints [i, j]: = c;

end;

c: = 320 div size; {Вибирається розмір клітини так, щоб візерунок займав, по можливості, всю область малювання}

{Оновлюється візерунок на екрані}

for i: = 1 to size do

for j: = 1 to size do

Begin

Points [i, j]: = newPoints [i, j];

{Налаштувати колір контуру прямокутника і колір зафарбовування}

PaintBox1.Canvas.Pen.Color: = Colors [Points [i, j]];

PaintBox1.Canvas.Brush.Color: = Colors [Points [i, j]];

{Виконати малювання}

PaintBox1.Canvas.Rectangle (c * (i - 1), c * (j - 1), c * i - 1, c * j - 1);

{Параметри методу Rectangle підібрані так, щоб між клітинами залишався невеликий зазор. Щоб клітини розташовувалися впритул один до одного, замінити (c * (i - 1), c * (j - 1), c * i - 1, c * j - 1) на (c * (i - 1), c * (j - 1), c * i, c * j}




Практична робота № 28 | переміщення малюнка