Для любопытных. Графические программы с применением массивов.
Рассмотрите приведенный ниже пример.
Задача. Нарисовать олимпийский флаг. Обеспечьте в программе ввод радиуса колец (R) и расположение флага на экране, задавая координаты его верхнего правого угла (Х, Y). Для хранения цветов колец использовать массив.
Program Flag;
Uses
Graph;
Var
...
U, V, X, Y, R, A, B, L, i : integer;
Palitra : array [1..5] of integer;
Begin
write('R=');
readln (R);
write('X=');
readln (X);
write('Y=');
readln (Y);
...{Инициализация графического режима}
Palitra [1] := LightBlue;
Palitra [2] := Black;
Palitra [3] := Red; {Задание цветов колец}
Palitra [4] := Yellow;
Palitra [5] := Green;
A := 7*R;
B := 5*R; {Вычисление размера флага}
L := 2*R-round(R/4); {Вычисление расстояния между кольцами}
SetFillStyle(1, 15);
Bar (X, Y, X+A, Y+B); {Рисование белого флага}
SetLineStyle(0, 1, 3);
U := X+Round (1.75*R); {Координаты первого верхнего кольца}
V := Y+L;
for i := 1 to 5 do {Рисование пяти колец}
begin
if i=4
Then
Begin
U := X+Round(2.65*R); {Координаты первого нижнего кольца}
V := Y+3*R;
End;
SetColor(Pal[i]); {Задание цвета i-го кольца}
Circle(U, V, R); {Рисование кольца}
U := U+L; {Расположение следующего кольца}
end;
readln;
CloseGraph;
End.
Выберите самостоятельно задачу из ниже предложенного перечня:
1. Нарисовать радугу в нижней части экрана.
2. Вывести разноцветные концентрические кольца с центром в середине экрана. Обеспечить диалоговый ввод последовательности меняющихся цветов колец и контроль выхода за границы экрана.
3. Модифицировать задачу 2 для рисования разноцветных неконцентрических колец, цвета которых вводятся в диалоге.
4. Нарисовать шахматную доску. Расставить шашечную позицию, которая запрашивается с экрана. Расположение шашки задается парой чисел: номером клетки по вертикали и по горизонтали.
5. Нарисовать схему расположения городов, которые отмечаются на экране кружочками. Координаты городов предварительно вводятся с клавиатуры.
6. Модифицировать предыдущую задачу, предполагая, что размер кружка зависит от численности населения города.
7. Изобразить на экране движение шара по биллиардному столу с лузами. Расположить лузы по краям биллиардного стола, задав их координаты в диалоге. Движение шара прекращается при попадании его в лузу.
8. Получить мультфильм "Круги на воде", используя концентрические окружности. Центры окружностей должны быть совмещены с центром экрана. Иллюзия движения создается последовательной сменой цветов всех окружностей, начиная с внутренней и кончая внешней. Обеспечить ввод максимального и минимального радиусов в диалоге, а также количество волн и последовательность сменяющихся цветов.
9. Промоделировать работу светофора без учета дорожной обстановки. Обеспечить ввод временных интервалов смены цветов. Для обеспечения временной задержки используйте процедуру Delay.
10. Нарисовать поле размером 10х10 для игры в "Морской бой". На нем с помощью датчика случайных чисел расставить 10 однопалубных кораблей, чтобы они не соприкасались друг с другом. Изобразить позицию на экране компьютера.
Дата добавления: 2015-05-16; просмотров: 1179;