- •Тема I Основные понятия языка pascal 7.0
- •1.1. Алфавит и структура программы
- •Алфавит
- •Структура программы
- •I, j : integer;
- •1.2. Структура данных
- •Простые типы данных
- •Структурированные типы данных
- •Указатели
- •Процедурные типы
- •Объекты
- •Преобразование типов данных
- •1.3. Операторы языка
- •Простые операторы
- •Структурированные операторы
- •1.4. Процедуры ввода-вывода
- •Var I, j : integer;
- •Практические задания
- •Тема 2 Производящие функции и ряды
- •Var n, I: integer;
- •Var I, n, f : integer;
- •Var I, n, f, j, r, m : integer;
- •Var I, n, f, j, r, m : integer;
- •Var I, n, f, j : integer;
- •Var I, n, sum : integer;
- •Var I, n, m, к : integer;
- •If flag then
- •Var I, n, m, k, nod : integer;
- •Var I, n, m, k, nod, nok : integer;
- •Var n, r, m : integer;
- •Var n, r, м, к, I : integer;
- •If f then writeln('число', n, ' he палиндром')
- •Var X, y, z:real; I, n : integer;
- •Var X, y, z : real;
- •Var X,y. Z, е : real;
- •I: integer;
- •Var X, y, z, e : real;
- •I: integer;
- •Var X, y, z : real;
- •Практические задания
- •Тема 3 Обработка числовых последовательностей
- •Var n, X, sum, I: integer;
- •Var n, X, к, I: integer;
- •Var n, X, max, I: integer;
- •Var n, X, max, I: integer;
- •Var X, min1, min2 : integer;
- •Var old, new : real;
- •If f then
- •Var old, new : real; к : integer;
- •Var old, new, f : real;
- •Var old, new : real;
- •If f then
- •Var old, new : real;
- •If f then
- •Var poroda : string;
- •I, к, n : integer;
- •Var pol : string;
- •I, к, n : integer;
- •Практические задания
- •Тема 4 Символьные переменные и строки
- •Var I: char;
- •Var I: char;
- •Var I, l : char;
- •Var str: string;
- •If not(str[I] in m) then write(str[I])
- •Var str : string;
- •If not(str[I] in m) then write(str[I]);
- •Var str : string;
- •If (str[I] - '!') then write(V)
- •Var str : string;
- •Var str : string;
- •Тема 5 Обработка строк
- •Var str, wrd : string;
- •I, l : integer;
- •Var s1, str : string;
- •I: integer;
- •Var s1, str: string;
- •Var s1: string;
- •Var s1 : string;
- •Var s1 : string;
- •X : char;
- •Var s1 : string;
- •Var м, к, I, j : integer;
- •Var I, к : integer;
- •Var I, к : integer;
- •Var I, к : integer;
- •Var I, l : integer;
- •1234567890 Ааааааа .
- •Var I, l : integer;
- •If f then writeln('палиндром')
- •1234567890 Ааааааа .
- •Практические задания
- •Тема 6 Одномерные массивы
- •Var mas : array[1..M] of integer;
- •I, max, k, n : integer;
- •Var mas : array[1..M] of integer;
- •I, k, n : integer;
- •Var mas : array[1..M] of integer;
- •I, k, new, n : integer;
- •Var mas : array[1..M] of integer;
- •I, j, k, new, n : integer;
- •Var mas : array[1..M] of real;
- •I, n : integer;
- •Var mas : array[1..M) of real;
- •I: integer;
- •Var mas, num2, num5 : array[1..M] of integer;
- •Практические задания
- •Тема 2 Двумерные массивы
- •Var a : array[1..T, 1..S] of integer;
- •Var а : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of char;
- •Var a : array[1..T, 1..T] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Практические задания
- •Тема 8 Работа с файлами
- •Var f1, f2 : text;
- •X : char;
- •International
- •Var f1, f2 : text;
- •X : char;
- •International
- •Var Fl : text;
- •X: char;
- •International
- •Var f1 : text;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •I: integer;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Тема 9 Процедуры и функции
- •Var I, j : integer;
- •Var n, m : integer;
- •Var I, j : integer;
- •Var n, m : integer;
- •Var I, j : integer;
- •Var I, j : integer;
- •Var s : string;
- •Var I: integer;
- •Var I, j : integer;
- •Var I, j : integer;
- •Var n : longint;
- •Var s : integer;
- •Var n : longint;
- •Var s : integer;
- •Var а, в, d, к, X, y : integer;
- •Var а, в, d, к, X, y : integer;
- •Var а, в : integer;
- •Var к: integer;
- •Var I : integer;
- •Var n : longint;
- •Var s : integer;
- •Var а, в, X, d, y : integer;
- •Var а, в : integer;
- •Var к: integer;
- •Практические задания
- •Тема 10 Работа с текстом. Модуль crt
- •Var I: char;
- •Var I:integer;
- •Var X, I: integer;
- •Var I: integer;
- •Var X, y, I: integer;
- •Var X, y, I: integer;
- •Var X, y, I: integer;
- •Практические задания
- •Тема 11 Графика. Модуль Graph
- •Initgraph(driver, mode,' ');
- •Var driver, mode : integer;
- •Var driver, mode,
- •X, y : integer;
- •Var driver, mode,
- •X, y : integer;
- •Var driver, mode, X, y : integer ;
- •Var driver, mode, X, y : integer;
- •Var driver, mode, X, y : integer;
- •Var driver, mode, X, y, I: integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t, y0 : integer ;
- •Var driver, mode, X, y, I, t, xo : integer;
- •Var driver, mode, X, y, r : integer;
- •Var driver, mode, X, y, x1, y1, r : integer;
- •Var driver, mode, X, y, r, I: integer ;
- •Var driver, mode, X, y, r, rx, ry, lx, ly, I, size : integer;
- •Var driver, mode, X, y, r : integer;
- •Практические задания
- •Тема I 3 Разные задачи
- •Var f1:file of nn;
- •I:integer;
- •Var I:integer;
- •Var I, min,max:integer;
- •Var I,j:integer;
- •Var I,j:integer;
- •In_metr;
- •I,n:integer;
- •Var I:integer;
- •If I in s1 then
- •Приложение Зарезервированные слова borland pascal 7.0
- •Литература
- •Оглавление
- •1.1. Алфавит и структура программы
- •Тема 13 разные задачи
Var а, в : integer;
FUNCTION BILL(Y, X : INTEGER): INTEGER;
Var к: integer;
BEGIN
K:=YDIVX;
IF Y MOD X = 0 THEN BILL := К
ELSE
BEGIN
Y := A-X+Y MOD X;
BILL:= K+BILL(Y, X)+2
END
END;
BEGIN
REPEAT
WRITE('BBEДИTE ДВА НАТУРАЛЬНЫХ ЧИСЛА А>В');
READLN(A, В);
UNTIL A> = В;
WRITELN('KОЛИЧECTBO ОТРЕЗКОВ В ТРАЕКТОРИИ :', BILL(A, В))
END.
Для решения задачи:
- формируем тело программы и описываем переменные;
- создаем описание рекурсивной функции BILL;
- вводим два натуральных числа А и В;
- вызываем функцию BILL для определения количества отрезков;
- завершаем работу программы.
Переменные:
в функции BILL:
X, Y - два натуральных числа (формальные параметры);
К - вспомогательная переменная (локальная переменная);
А - длинная сторона стола (глобальная переменная);
в основной программе:
А, В - два натуральных числа (глобальные переменные).
ВВЕДИТЕ ДВА НАТУРАЛЬНЫХ ЧИСЛА А>В
73
КОЛИЧЕСТВО ОТРЕЗКОВ В ТРАЕКТОРИИ: 9
ВВЕДИТЕ ДВА НАТУРАЛЬНЫХ ЧИСЛА
13 7
КОЛИЧЕСТВО ОТРЕЗКОВ В ТРАЕКТОРИИ: 37
Рис. 9.4. Результат работы PG9_13
Практические задания
1. Написать процедуру, которая упорядочивает массив чисел по указанному ключу: по возрастающей или по убывающей.
2. Написать функцию, которая вычисляет количество вхождений слова "ПРИВЕТ" в текстовую строку.
3. Написать функцию, которая вычисляет количество вхождений слова "ПРИВЕТ" в текстовый файл.
Тема 10 Работа с текстом. Модуль crt
Модуль CRT представляет собой библиотеку функций и процедур, предназначенных для увеличения возможностей текстового ввода-вывода данных. Все описание возможностей данного модуля представлено в табл. 10.1. Для задания одного из текстовых режимов предназначена процедура PROCEDURE TEXTMODE (MODE : WORD );
где Mode - код текстового режима, который может принимать следующие значения:
- BW40 = 0 - черно-белый режим 40 х 25;
- СО40 = 1 - цветной режим 40 х 25;
- BW80 = 2 - черно-белый режим 80 х 25;
- СО80 = 3 - цветной режим 80 х 25;
- MONO = 7 - монохромный для черно-белого адаптера;
- FONT8X8 = 256 - используются для загружаемого шрифта в режиме 80 х 45 или 80 х 50 с адаптерами VGA или EGA.
Какой бы режим не был установлен, координаты верхнего левого угла экрана всегда определяются как XI = 1 и Y1 = 1. Приращение значений по оси X происходит слева направо, а по оси Y - сверху вниз (рис. 10.1). Значение координат нижнего правого угла зависит от режима: либо Х2 = 40 и Y2 = 25, либо Х2 = 80 и Y2 = 25, либо Х2 = 80 и Y2 = 45, либо Х2 = 80 и Y2 = 50. Все программы, рассматриваемые в данной теме, написаны для режима СО40, где МАХХ = 40, MAXY = 25.
Рис. 10.1. Размеры экрана для модуля CRT
Таблица 10.
Функция или процедура |
Назначение |
KeyPressed |
Определяет, была ли нажата клавиша на клавиатуре Function KeyPressed : boolean; |
ReadKey |
Читает значение нажатой клавиши Function ReadKey : char; |
TextBackground |
Определяет цвет фона Procedure TextBackground(Color : byte); |
TextColor |
Определяет цвет выводимых символов Procedure TextColor (Color : byte) ; |
TextMode |
Определяет текстовый режим Procedure TextMode (Mode : Word); |
ClrScr |
Очищает экран и устанавливает курсор в левый верхний угол экрана Procedure ClrScr; |
Window |
Определяет текстовое окно на экране Procedure Window (XI, Yl, X2, Y2 : Byte); |
WhereX |
Возвращает значение горизонтальной координаты Function WhereX : Byte; |
WhereY |
Возвращает значение вертикальной координаты Function WhereY : Byte; |
GotoXY |
Переводит курсор в указанное место Procedure GotoXY(X, Y : Byte); |
DelLine |
Уничтожает всю строку с курсором Procedure DelLine; |
InsLine |
Вставляет строку Procedure InsLine; |
ClrEol |
Стирает часть строки от курсора до правой границы Procedure ClrEol; |
HighVideo |
Устанашшвает повышенную яркость символов Procedure HighVideo; |
Norm Video |
Устанавливает нормальную яркость символов Procedure NormVideo; |
LowVideo |
Устанашшвает пониженную яркость символов Procedure LowVideo; |
AssignCrt |
Связывает текстовый файл с окном CRT Procedure AssignCrt(F : Text); |
Delay |
Вводит задержку в миллисекундах Procedure Delay (T : Word); |
Sound |
Заставляет динамик звучать с нужной частотой Procedure Sound (F : Word); |
NoSound |
Отключает динамик Procedure NoSound; |
Для того чтобы стали доступны указанные в табл. 10.1 функции и процедуры, необходимо явно указать модуль CRT командой USES CRT;
С помощью процедуры TEXTBACKGROUND(COLOR : BYTE); можно устанавливать различные цвета экрана или текстового окна. Допустимые значения переменной Color колеблются от 0 (черный цвет) до 7 (белый цвет).
Для установления цветов символов служит процедура TEXTCOLOR (COLOR : BYTE);
где значение цвета изменяется от 0 до 15, а мерцание символов устанавливается значением 128.
В модуле CRT можно устанавливать цвета фона и цвета символов и с помощью следующих мнемонических констант:
-
BLACK = 0
BLUE = 1
OREEN = 2
CYAN = 3
RED = 4
MAGENTA = 5
BROWN = 6
LIGHTORAY = 7
DARKGRAY = 8
UGHTBLUE = 9
LIGHTGREEN = 10
LIGHTCYAN = 11
LIGHTRED = 12
LIGHTMAGENTA = 13
YELLOW = 14
WHITE = 15
BLINK = 128
Черный
Темно-синий
Темно-зеленый
Бирюзовый
Красный
Фиолетовый
Коричневый
Светло-серый
Темно-серый
Голубой
Салатовый
Светло-бирюзовый
Розовый
Малиновый
Желтый
Белый
Мерцание символа
Процедура TEXTBACKGROUND устанавливает цвет, а CLRSCR очищает экран или текстовое окно и закрашивает его требуемым цветом. Курсор при этом перемещается в левый верхний угол. По умолчанию цвет экрана черный.
Например, для того, чтобы последовательно закрашивать экран во все цвета палитры, нужно организовать следующий цикл:
FOR I := О ТО 15 DO
BEGIN
TEXTBACKGROUND(I);
CLRSCR
END;
Если вы хотите установить текстовое окно и закрашивать его в различны цвета, то это можно сделать, обратившись к процедуре WINDOW:
WIND0W(X1, Y1, Х2, Y2);
FOR I := 1 ТО 15 DO
BEGIN
TEXTBACKGROUND(I);
CLRSCR
END;
где XI, Yl - координаты верхнего левого угла окна, Х2, Y2 - нижнего правого. Сразу после вызова процедуры WINDOW курсор помещается в его левый верхний угол, а само окно заполняется цветом фона. Обратите внимание, что обращение к процедуре WINDOW игнорируется, если какая-либо из координат выходит за границу экрана или нарушается условие (Х2 > XI) AND (Y2 > Yl).
В модуле CRT дополнительные возможности по управлению клавиатурой реализуются функциями READKEY и KEYPRESSED.
Функция READKEY возвращает значение типа CHAR, которое извлекается из буфера клавиатуры в виде кода символа. Если буфер пуст, то функция будет ждать нажатия на любую клавишу. Обратите внимание: эта функция не отображает вводимые символы на экране.
Следует помнить, что при использовании READKEY в буфер помещается расширенный код, т. е. для любой алфавитно-цифровой клавиши он соответствует коду вводимого символа, а при использовании функциональных клавиш <F1>, <F2>, <F10> и <Ins> генерируется двухбайтовая последовательность из #0 и кода клавиши. Кроме того, функция игнорирует нажатие <Shift>, <Ctrl>, <Alt>, <CapsLock>, <NumLock>, <ScrollLock>, <F11> и <F12>, воспринимая их только в комбинации с чем-нибудь еще.
Функция KEYPRESSED возвращает значение TRUE, если буфер клавиатуры не пуст, и FALSE - в противном случае.
Например, для вывода всего буфера (до 16 символов) на экран можно использовать следующую программу:
PROGRAM ONE_10;
USES CRT;