Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Metka: GotoXY(i, j); Write('Д'); delay(10)





until keypressed;

END.

Практическое задание N 1. 37

Задать движение "десантника" только вдоль осей X и Y, либо по диагоналям.

 

Работа с символьными переменными

 

 

Следующие операторы позволяют выводить на экран символы, набираемые на клавиатуре, до нажатия клавиши Enter (код #13):

 

Repeat c:= readKey; Write(c) until c=#13;

 

здесь "с" - переменная типа Char, #13 - код клавиши Enter.

Часто используются клавиши с кодами: #32 - SpaceBar, #27 - Esc.

 

Для запоминания вводимых символов можно использовать операторы:

 

i:=0; repeat i:=i+1; ch[i]:=readKey; write(ch[i]) until ch[i]=#13;

 

Здесь ch[i] - элемент массива ch типа Char.

 

 

Практическое задание N 1. 38

 
 


1. Разделить экран на четыре равные части. 1 2

Создать в первой части окно и ввести с клавиатуры надпись:

Программу разработал "Фамилия". 3 4

Создать окно 4 и скопировать эту надпись в окно 4.

 

2. Аналогично п. 1 создать окно 2, ввести с клавиатуры надпись и скопировать ее в окно 3.

Примечание: копирование заключается в выводе массива символов.

 

3. Создать четыре окна в порядке 1, 2, 3, 4. В центре первого окна ввести с клавиатуры свою фамилию, в других - любые надписи, введенные с клавиатуры в позициях, определяемых функцией Random (без использования массивов).

 

4. Аналогично п. 3 создать четыре окна в порядке 4, 3, 2, 1. Выводить мерцающие символы.

Примечание: Переход в другое окно после нажатия клавиши Esc, окна и надписи должны быть разного цвета.

 

 

Процедуры DelLine;, InsLine; позволяют прокручивать надписи в окне по аналогии с прокруткой текста, не вмещающегося на экране. Процедура Delay(M); - задерживает выполнение программы на M миллисекунд (N и M - тип Word).

Приведем пример операторов, прокручивающих текст в окне:

 

Window(5,5,30,9); TextBackGround(1); Clrscr; TextColor(14);

repeat delay(500); GotoXY(1, 5);

write('Всем большой привет!');

gotoXY(1, 1);

for k:=1 to 5 do begin { прокрутка вверх }

Delay(300); delLine end

until keyPressed;

Практическое задание N 1. 39

 

1. В режиме ТextMode(1); создать в центре экрана окно размером 6 строк и 30 колонок. Вывести в нижней строке окна надпись и сделать прокрутку надписи вверх, меняя яркость символов (нормальная, повышенная, пониженная) и цвет фона (без оператора ClrScr;) после каждой прокрутки.

 

2. Аналогично п. 1 вывести в верхней строке окна надпись, сделать прокрутку надписи вниз.

 

 

Для вывода на экран символа по номеру его кода можно использовать операторы:

C:= chr(N); write(C); где N - номер кода символа (тип Byte), chr - функция преобразования целого типа в символьный. Напомним, что символы, используемые в MS-DOS, имеют коды с номерами от 0 до 255. Некоторые управляющие символы при выводе производят определенные действия, например: #7 - звуковой сигнал, #13 - перевод курсора на новую строку.

 

В рекламных надписях применяется прием "бегающих" символов. Заставить бегать символ по строке можно с помощью следующих операторов:

 

y:=5; Xm:=lo(WindMax)+1;

с:=readKey; { ввод символа с клавиатуры }

Repeat

for i:=1 to Xm-1 do begin { i - номер позиции в строке }

gotoXY(i, y); write(c); { вывести на экран символ }

delay(100); gotoXY(i,y); write('_') end { вывести на экран пробел }

until keyPressed;

 

 

Практическое задание N 1. 40

 

1. Разделить экран по горизонтали на две части. В первой части создать окно и вывести все символы от 0 до 255 с указанием номеров, во втором окне в двух строчках вывести два символа, бегающих в противоположные стороны.

 

2. Разделить экран по вертикали на две части. В первой части создать окно и вывести все символы от 0 до 255 с указанием номеров, во втором окне в двух колонках вывести два символа, бегающих в противоположных направлениях.

 

Примечание: номера символов выбрать из первого окна.

 

 

При выводе "бегающих" символов изображение курсора портит картинку. Избавиться от курсора можно, поместив его в "дальний угол" перед задержкой программы, например: GotoXY(1, 1); delay(100); Можно также изменить размер курсора до нуля с помощью следующих операторов:

 

В разделе описания программы: Uses DOS; Var r: registers;

B разделе выполнения программы: r.ah:=1; r.ch:=$20; intr(16,r);

Приведем пример программы "падающие символы" для цифр от 0 до 9, имеющих кода

 

c номерами от 48 до 57. При нажатии на клавишу с “падающей цифрой”, генерируется другая “падающая цифра” и т. д. до нажатия клавиши ESC.

 

PROGRAM PULL_CH;

Uses CRT, DOS;

var r: registers;

x, y, i, xm, ym: byte;

c: array [41..57] of char; cha:char;

BEGIN

randomize; textMode(3);

xm:=lo(WindMax)+1; ym:=hi(WindMax)+1;

textBackGround(blue); ClrScr; TextColor(14);

r.ah:=1; r.ch:=$20; intr(16,r);

for i:=48 to 57 do begin

c[i]:=chr(i); write(c[i]) end; { вывод символов с позиции (1, 1) }

 

repeat gotoXY(10, 10); Write('ПРИГОТОВЬТЕСЬ -нажмите ENTER'); cha:= readKey

until cha=#13; { вывод надписи }

delay(500); gotoxy(10, 10); clreol; { стирание надписи }

GOTOXY(1, YM); Write('НАЖМИТЕ КЛАВИШУ С ПАДАЮЩИМ СИМВОЛОМ');

Write(' ДЛЯ ОКОНЧАНИЯ -нажмите ESC');

Repeat

i:= random(10)+48; c[i]:=chr(i); { выбор случайной цифры }

x:= i-48+1; for y:= 2 to ym-1 do begin

gotoXY(x,y); write(c[i]); delay(200); { вывод цифры }

gotoXY(x,y); write('_'); { стирание цифры }

if keypressed then cha:=readkey; { при нажатии клавиши - считать цифру }

if cha=#27 then Break;

if cha=c[i] then Break end { досрочный выход из цикла "for... " }

until cha=#27; { выход при нажатии ESC }

TextMode(3) END.

 

Практическое задание N 1. 41

 

1. Создать "падающие символы" для прописных букв латинского алфавита с номерами кодов от 65 до 90.

2. Создать "падающие символы" для строчных букв латинского алфавита с номерами кодов от 97 до 122.

Примечание: введите счетчики правильно и неправильно нажатых клавиш. В конце программы выведите на экран результат работы счетчиков.

 

Рассмотрим последовательность операторов, позволяющих создать на экране "бегущую строку" символов. Введем с клавиатуры надпись с выводом на экран и запомним строку символов в массиве cha.

 

i:=0; repeat i:=i+1; read(cha[i]) until cha[i]=#13; n:=i-1;

 

Ввод надписи заканчивается нажатием клавиши SpaceBar (последним символом надписи должен быть пробел), затем Enter. Число символов в надписи запоминается в переменной "n", символ с кодом #13 не включается.

Принцип создания " бегущей строки " символов заключается в выводе групп симво

 

лов строки с позиции от 1 до "n" (первый символ, два первых символа строки и т. д.) и смещением влево позиции вывода первого символа группы. Затем выводятся группы символов от "n-1" до 1 (строка без первого символа, строка без второго символа и т. д.) без изменения места вывода первого символа группы. После вывода каждой группы символов следует задержка программы, позволяющая "увидеть" группу символов. При выводе каждая новая группа символов затирает предыдущую, причем последний символ (SpaceBar) затирает символы при уменьшении группы выводимых символов. Приведем пример операторов для создания "бегущей строки" символов.

Здесь n1 - номер первого выводимого символа, n2 - номер последнего выводимого символа.

 

Repeat

for i:=1 to 2*n-1 do begin

if i<=n then begin n1:=1; n2:=i; gotoXY(n-i+1,5) end

else begin n1:=i-n+1; n2:=n; gotoXY(1,5) end;

for j:=n1 to n2 do write(cha[j]); { вывод группы символов }

Delay(200); end

until keyPressed;

 

Практическое задание N 1. 42

 

1. Создать "бегущую строку". Строку выводить в окне, размером n+1 (n - число символов).

2. Создать "бегущую строку". Выводить одновременно две надписи одинаковой длины в разных строках одного окна.

Примечание: цвет окна и символов изменять после каждого вывода строки. Режим монитора TextMode(1);

 







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.