Практическое задание N 1. 34
1. Вывести на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом "dx" по оси "х", в каждой строке "у" , начиная с позиции (1, Ym) c направлением вверх, вправо.
2. Вывести на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом " dx<0 " по оси " х ", в каждой стороке " у " , начиная с позиции: (Xm-f, Ym) c направлением вверх, влево.
3/4. Модифицировать программы п. 1/2, выводя надписи в окнах разного цвета, с различным цветом символов. Размер окна определяется по оси "х" количеством символов в надписи плюс 2, по оси "у" размер равен 3 строчкам. После оператора GotoXY(x, y); следует оператор Window(x, y, xx, yy); и т. д.
5. В режимах N=1 и N=3 вывести на экран окна разного цвета с уменьшающимся размером (окно в окне). В первой позиции окон выводить номер окна. Использовать оператор цикла с условием ограничения размеров наименьшего окна, например: (x2-x1=2) or (y2-y1=0).
6. В режимах N=1 и N=3 вывести на экран окна разного цвета с координатами, определяемыми функцией Random с ограничением по размеру экрана, например: x1:=Random(Xm-1)+1; x2:=x1+Random(Xm-x1); Окна выводятся в операторе цикла с условием: до нажатия любой клавиши.
Приведем пример операторов для создание окон.
При регулярном размещении нескольких рядов одинаковых окон на экране можно использовать двойной цикл для раздельного изменения номера строки и столбца:
textmode(258); xm:= lo(windmax); ym:= hi(windmax);{ размеры экрана }
Nx:= 4; Ny:= 4;{ Nx, Ny - число окон }
hx:= xm div Nx; hy:= ym div Ny;{ hx, hy - размер окна по X и по Y}
for i:= 0 to Nx-1 do{ чередование столбцов }
for j:= 0 to Ny-1 do begin{ наращивание строк }
x1:= 1+hx*i; x2:=x1+hx-1;
y1:= 1+hy*j; y2:=y1+hy-1;
window(x1, y1, x2, y2); TextBackGroung(i+j); ClrScr;
end;
Используя операторы MOD и DIV можно создать несколько
рядов одинаковых окон (карточек) на экране в одном цикле:
Randomize;
N:= Nx*Ny; Nc:= 3;{ Nc-число цветов в колонке}
for i:= 0 to N-1 do begin
x1:= 1+hx*(i MOD Nx); x2:= x1+hx-1;{чередование столбцов}
y1:= 1+hy*(i DIV Nx); y2:= y1+hy-1;{наращивание строк}
window(x1, y1, x2, y2);
j:= 1+(i mod Nx); {номер столбца с карточкой}
c[i+1]:= 1+(j-1)*Nc+random(Nc); {номер цвета карточки}
TextColor(c[i+1]);
for k:= 1 to hx*hy do write('_');{ заполнение окна символами }
end;
Здесь каждое окно (карточка) заполняется символами разного цвета, причем номер цвета выбирается случайно из трех значений, различных для каждой колонки. При заполнении последним символом происходит прокрутка окна.
Приведем пример операторов для создания "всплывающего" в центре экрана окна с надписью.
x1:= xm div 2; y1:= ym div 2; { центр окна }
a:= 15;{ 2*a- размер окна }
for i:= 0 to a do begin Window(x1-i, y1-i, x1+i, y1+i);
TextBackGround(5); ClrScr;
if i-4 > 0 then begin GotoXY(i-3, i);{ вывод надписи }
TextColor(14); Write('ФАМИЛИЯ') end;{ в координатах окна }
delay(50);
end;
Здесь при достаточно большом размере окна (i > 4) выводится надпись примерно в центре окна.
Дата добавления: 2016-06-29; просмотров: 1377;