TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

Практическое задание 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) выводится надпись примерно в центре окна. 

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz