русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

В случайных местах


Дата добавления: 2014-11-27; просмотров: 702; Нарушение авторских прав


Постановка задачи. Требуется на поле в клеточку вывести определенное число растровых рисунков. Например, на поле 5 х 5 выведите 6 одинаковых рисунков в случайном месте. Примерный вид картинки приведен на рис. 13.

Реализация. В стандартном графическом редакторе Paint нарисуйте два или три небольших рисунка размером, например, 30 на 30 пикселей. Сохраните их в папке «Рисунки», в ней же сохраните проект. Допустим, наш рисунок сохранен в файле ris.bmp.

 

Рис.13. Растровый рисунок на поле

Опишем глобальные переменные.

const n=5;

x0=10;

y0=10;

Type Tpole=array[1..n,1..n] of integer;

var a:TPole;

bit1:TBitmap;

dx,dy:integer;

Напишем процедуру сlear для заполнения массива нулями и процедуру zapoln для заполнения массива m единицами.

procedure clear(var b:TPole);

var i,j:integer;

begin

for i:=1 to n do

for j:=1 to n do

b[i,j]:=0;

end;

procedure zapoln(var b:TPole; m:integer);

// m – число единичек в массиве b

var i,j,k:integer;

begin

for i:=1 to m do

begin

repeat

k:=1+random(n);

j:=1+random(n);

until b[k,j]=0;

b[k,j]:=1;

end;

end;

Процедура copy_ris копирует растровый рисунок в клетку поля, именно в ту клетку, которой соответствует ненулевой элемент массива.

procedure copy_ris;

var i,j,x,y:integer;

begin

for i:=1 to n do

for j:=1 to n do

begin

x:=x0+(j-1)*dx;

y:=y0+(i-1)*dy;

case a[i,j] of

1:Form1.Canvas.Draw(x+6,y+8,bit1);

end;

end;

end;

В процедуре FormCreate создаем растровый рисунок (переменная bit1) и загружаем в выделенную память его двоичное представление из файла. Не забудьте инициировать событие формы OnPaint, а в нем выбрать строку FormCreate.

procedure TForm1.FormCreate(Sender: TObject);

begin

randomize;

bit1:=TBitmap.Create; // Создание переменной bit1,

// присвоение ей адреса в динамической памяти



Bit1.LoadFromFile('ris.bmp'); // Загрузка двоичного

// образа из файла по выделенному адресу

Bit1.Transparent:=true; // Значение true делает область

// вывода рисунка на форму прозрачной

dx:=40;

dy:=40;

DrawPole (n, dx, x0, y0); // Поле состоит из квадратиков

clear(a);

zapoln(a,6);

copy_ris;

end;

 

Задание 1. Нарисуйте второй рисунок, поставьте ему в соответствие элемент массива, равный 2. Также выведите его на поле в случайные клетки.

Задание 2. Проект «Угадай, сколько гепардов» на тренировку памяти. Положите на форму таймер и окно редактора TEdit. Через 3 сек. закрасьте всех гепардов (для этого можно снова вызвать процедуру DrawPole), и программа должна напечатать вопрос «Сколько было гепардов?» Ответ пишите в окне редактора. Организуйте проверку: угадал или не угадал.

 



<== предыдущая лекция | следующая лекция ==>
Построение графиков элементарных функций | Движение двоичного образа по фоновой картинке


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.048 сек.