Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Оператор цикла с параметром
Если число повторений тела цикла заранее известно, то применяется оператор цикла с параметром. Общий вид оператора цикла с параметром:
FOR P:=NV TO KV DO A
Или FOR P:=NV DOWNTO KV DO A,
Где P –параметр цикла; NV и KV – выражения, задающие начальное и конечное значение параметра цикла соответственно; А – простой или составной оператор.
Тип параметра цикла обязательно должен совпадать с типом начального и конечного значений цикла. Из рассмотренных стандартных скалярных типов в качестве параметра цикла нельзя использовать переменные вещественного типа.
Выполнение оператора цикла начинается с проверки условия P<=KV для цикла TO (P>=KV для цикла DOWNTO). Если оно не справедливо, то оператор A не выполняется, а управление передается следующему оператору. Если же условие P<=KV истинно, то выполняется оператор A, а затем параметру цикла присваивается следующее значение P:=SUCC(P) (для цикла TO) или предыдущее значение P:=PRED(P) (для цикла DOWNTO). Далее весь процесс повторяется. Если параметр цикла целого типа, то это означает его увеличение (соответственно уменьшение) на единицу при каждом новом выполнении расположенного в цикле оператора.
Рассмотрим примеры операторов цикла с параметрами, при условии, что раздел переменных имеет следующий вид:
VAR S, I:INTEGER; SIM:CHAR; L:BOOLEAN;
1) S:=0; FOR I:=5 TO 7 DO S:=S+1;
2) S:=0; FOR I:=10 DOWNTO 6 DO S:=S+1;
3) S:=0; FOR SIM:=’A’TO ‘D’ DO S:=S+1;
4) S:=0; FOR L:=FALSE TO TRUE DO S:=S+1;
В примере 1 после окончания работы оператора цикла значение переменной S=3, в примере 2-значение S=5, в примере 3-значение S=4, а в примере 4-значение S=2.
Если в цикле необходимо выполнить несколько операторов, то пользуются составным оператором:
FOR K:=10 TO 13 DO
BEGIN
L:=K*K; WRITELN(‘L= ’,L:3)
END;
Для оператора цикла с параметром существуют некоторые ограничения:
значение параметра цикла, начального и конечного значений параметра цикла изменять внутри цикла нельзя. Следует помнить, что при выходе из цикла значение параметра цикла не определено.
Итак, оператор цикла с параметром позволяет осуществить последовательный перебор значений параметра в любом из двух направлений, но с приращением, равным единице соответствующего типа данных.
Пример
Из чисел от 10 до 99 вывести те, сумма цифр которых равна n(0<n<=18).
Обозначим K-это просматриваемое число; P1-это первая цифра числа K; P2- это вторая цифра числа K; S-это сумма цифр данного числа K. Число K будем выписывать только в том случае, когда сумма P1 и P2 будет равна S.
PROGRAM RT;
VAR K, N,P1,P2,S:INTEGER;
BEGIN
WRITELN(‘введите целое число’);
READLN(N);{вводим целое число}
FOR K:=10 TO 99 DO
BEGIN
P1:=K DIV 10;{выделяем первую цифру}
P2:=K MOD 10;{выделяем вторую цифру}
S:=P1+P2;{находим сумму цифр}
IF S=N THEN WRITELN(K);
END;
READLN;
END.
Пример
Дано натуральное число n (n<=9999). Определить, является ли оно палиндромом (перевертышем”), c учетом четырех цифр. Например, палиндромами являются числа: 2222, 6116, 0440.
Обозначим: N-вводимое число; M-дубликат числа N; A-перевертыш числа N; I-переменная цикла
PROGRAM PP;
VAR N, M,A, I:INTEGER;
BEGIN
WRITELN(‘Введите целое число, не большее 9999’);
READLN(N);
M:=N;A:=0;
{создание перевертыша}
FOR I:=1 TO 4 DO {так как число четырехзначное}
BEGIN
A:=A*10+M MOD 10;
M:=M DIV 10;
END;
IF A=N THEN WRITELN(‘да!’) ELSE WRITELN(‘нет!!!’)
READLN;
END.
Задачи для самостоятельного решения
1. Сколько раз будут выполнены операторы из тела циклов в следующих фрагментах программ:
FOR K:=-1 TO 1 DO…
FOR K:=10 TO 20 DO…
FOR K:=20 TO 10 DO…
2. Определить значение переменной S после выполнения следующих операторов:
S:=0; N:=10;
FOR I:=2 TO N DO S:=S+100 DIV I
3. Cоставить программу возведения натурального числа в квадрат, используя следующую закономерность:
12=1
22=1+3
32=1+3+5
42=1+3+5+7
…
n2=1+3+5+7+9+…+2n-1
4. Определить количество трехзначных, натуральных чисел, сумма цифр которых равна заданному числу N.
5. Квадрат трехзначного числа оканчивается тремя цифрами, которые как раз исоставляют это число. Написать программу поиска таких чисел. Ответ:376,625.
6. Найти сумму целых положительных чисел из промежутка от A до B, кратных 4(значения переменных A и B вводятся с клавиатуры).
7. В трехзначном числе зачеркнули первую цифру. Когда полученное двузначное число умножили на 7, то получили данное число. Найти это число. Ответ: 350.
8. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенная в n-ю степень, равна самому числу(например, 153=13+53+33). Получить все числа Армстронга, состоящие из трех и четырех цифр.
В том случае, если шаг просмотра отличен от единицы или заранее не известно количество повторений тела цикла, необходимо применять один из двух других видов оператора цикла: с предусловием или с постусловием.
Оператор цикла с предусловием
имеет вид:
WHILE B DO A
Где B - выражение логического типа; A-простой или составной оператор.
Выполнение оператора начинается с вычисления значения выражения B. Если оно имеет
значение TRUE то выполняется оператор A. Затем выполнение оператора цикла повторяется до тех пор, пока значение выражения B не станет равным FALSE. Как только получится значение FALSE, управление передается оператору, следующему за оператором цикла, а оператор A внутри цикла не выполняется. Если выражение логического типа было ложно при первом входе в цикл, то оператор A не выполняется ни разу. Очевидно, что один из операторов, находящихся внутри цикла, должен влиять на выполнение условия, поскольку иначе цикл будет повторяться бесконечно. Например:
PROGRAM TEST;
VAR K:INTEGER;
BEGIN
K:=0;
WHILE K<=10 DO
BEGIN
K:=K+2; WRITE(K:3)
END
END.
В результате отпечатаются четные числа от 2 до 12. Заметим, что сначала отпечатается число 12, а затем проверится условие K<=10 и осуществится выход из цикла. Результат печати имеет вид
2
Пример
Дано натуральное число n. Подсчитать количество цифр данного числа.
Подсчет начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз(тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т. д., пока число не станет равным нулю.
PROGRAM TT;
VAR M, N:LONGINT; K:INTEGER;
BEGIN
WRITELN(‘Введите целое число’);
READLN(N); M:=N;
K:=0;
WHILE M<>0 DO
BEGIN
INC(K);{или K:=K+1;}
M:=M DIV 10;
END;
WRITELN(‘В числе ’,n,’ – ‘,k:3,’ цифр!’);
END.
Задачи для самостоятельного решения:
1. Какое значение примет переменная F после выполнения следующих операторов:
а) I:=1; F:=2; WHILE I<6 DO I:=I+1;F:=F*I;
б) I:=1; F:=2; WHILE I<6 DO BEGIN I:=I+1;F:=F*I END;
2. Дана последовательность операторов:
A:=1;B:=1;
WHILE A+B<8 DO BEGIN A:=A+1; B:=B+2 END;
S:=A+B
Сколько раз будет повторен цикл, и какими будут значения переменных A, B и S после завершения этой последовательности операторов?
3. Найти сумму цифр числа.
5. Найти первую цифру числа.
6. Поменять порядок числа на обратный.
7. Приписать по 1 в начало и в конец записи числа n. Например, было n=3456, стало n=134561.
Оператор цикла с постусловием
: Он напоминает оператор цикла с предусловием, но условие вычисляется и проверяется после выполнения операторов, составляющих тело цикла. Общий вид оператора цикла с постусловием
REPEAT A1; A2; …AN
UNTIL B
ГДЕ A1, A2,…AN-операторы тела цикла; B-выражение логического типа.
Оператор цикла с постусловием начинается с выполнения операторов внутри цикла. Затем вычисляется выражение B, и если получается истинное значение, то осуществляется выход из цикла. Если же значение выражения ложно, то выполнение операторов A1,A2,…,AN повторяется, а затем снова вычисляется выражение B.
Отметим, что в отличие от цикла с предусловием выход из цикла с постусловием осуществляется при истинности выражения B.
Пример
Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.
Обозначим через X, K-соответствующую цену и количество товара, а через P-заданную предельную сумму, через S - общую стоимость покупки. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму P.
PROGRAM HH;
VAR X, K,P, S:INTEGER;
BEGIN
WRITELN(‘Предельная сумма = ’); READLN(P);
S:=0;
REPEAT
WRITELN(‘Введите цену товара и его количество’);
READLN(X, K);
S:=S+X*K;
WRITELN(‘Стоимость покупки равна ’,S);
UNTIL S>P;
WRITELN(‘Суммарная стоимость покупки превысила предельную сумму’);
END.
Алгоритм Евклида – это алгоритм нахождения наибольшего общего делителя (НОД) двух целых неотрицательных чисел.
Алгоритм Евклида нахождения НОД основан на следующих свойствах этой величины. Пусть X и Y одновременно не равные нулю целые неотрицательные числа и пусть X>=Y, тогда если Y=0, то НОД(X, Y)=X, а если Y<>0,то для чисел X, Y,R, где R-остаток от деления X на Y выполняется равенство НОД(X, Y)=НОД(Y, R).
Например, пусть X=48, Y=18, найдем их наибольший общий делитель.
X | Y | Результаты | |
48 | 18 | ||
48 MOD 8=12 | 18 | X>Y | НОД(48,18)=НОД(12,18) |
12 | 18 MOD 12=6 | X<Y | НОД(12,18)=НОД(12,6) |
12 MOD 6=0 | 6 | X>Y | НОД(12,6)=НОД(0,6) |
0 | 6 | X=0 | НОД(0,6)=6 |
Таким образом, НОД(48,18)=6
Пример
Написать программу нахождения наибольшего общего делителя (НОД) двух неотрицательных чисел.
PROGRAM NOD;
VAR X, Y:INTEGER;
BEGIN
WRITELN(‘Введите два числа’)ж
READLN(X, Y);
REPEAT
IF X>Y THEN X:=X MOD Y
ELSE Y:=Y MOD X;
UNTIL(X=0)OR(Y=0);{До тех пор, пока одно из чисел не станет равно нулю}
WRITELN(‘НОД= ’,X+Y);{одно из чисел обязательно равно нулю}
READLN;
END.
Задачи для самостоятельного решения
1. Числа Фибоначчи(fn) определяются формулами: f0=f1=1; fn=fn-1+fn+1 при n=2,3…
а) составить программу определения f40;
б) составить программу поиска первого числа Фибоначчи, большего m;
2. Составить программу, проверяющую, является ли заданное натуральное число совершенным, то есть равным сумме своих положительных делителей, кроме самого этого числа.
Рабата с окнами. Метод пошагового выполнения программ
Итак, каждый файл располагается в своем окне. Окно — ограниченная область экрана, которую можно передвигать, увеличивать, закрывать и открывать. Можно открывать любое количество окон, но активным является только одно окно, в котором находится курсор. Активное окно располагается сверху. Чтобы сделать окно с номером N активным, необходимо нажать комбинацию клавиш <ALT>+N и номер окна.
Все команды для работы с окнами находятся в секции WINDOWS главного меню. При открытии нескольких файлов, они загружаются в окна, которые накладываются одно на другое. Чтобы перейти из одного окна в другое, необходимо воспользоваться комбинацией клавиш <ALT>+N, где N номер окна.
Чтобы посмотреть список открытых окон, можно воспользоваться комбинацией клавиш <ALT> и 0 или командой LIST меню WINDOWS.
. Для закрытия окна можно воспользоваться командой CLOSE OLL меню WINDOWS (или комбинацией клавиш <ALT>+<FЗ>). Для закрытия всех о нужно выбрать команду CLOSE ALL меню WINDOWS.
Задание
1. Вывести на экран список открытых окон.
2. Перейти в окно под номером 3.,
3. Закройте окна под номерами 1,2.
Изменение размеров окна. При выборе команды SIZE/MOVE ограничивающие линии окна меняют цвет. В это время можно с помощью клавиш <SHIFT> и стрелок управления курсором изменять размеры окна, без нажатия клавиши <SHIFT> можно изменять положение окна на экране. После выбора нужного размера и положения закрепите выбор нажатием клавиши <ЕNTER>. Выбор команды ZOOM увеличивает размеры активного окна до максимального.
При составлении программ нередко возникает ситуация, когда работа программы не соответствует ожидаемому. В этом случае требуется проследить ее выполнение по шагам. В среде Турбо Паскаль есть такая возможность. Для выполнения программы в режиме пошаговой работы требуется выполнить команду STEP OVER меню RUN или нажать функциональную клавишу <F8>.
Примечание. Прежде чем проводить пошаговую отладку программы, необходимо убедиться, что опция OPTINS/DEBUGGER/INTEGRATED активизирована.
Чтобы проследить за выполнением программы нужно знать, как изменяются значения переменных. Активизируем окно WATCHES, выполнив команду WATCH меню DEBUG. Чтобы ввести в окно WATCHES какую-либо переменную, воспользуемся комбинацией клавиш <CTRL>+<F7> (или выполним команду ADD WATCH меню DEBUG), после чего откроется диалоговое окно ADD WATCH и попросит ввести имя переменной, значения которой вы хотите проследить.
Примечание. Чтобы облегчить процесс ввода переменных, можно перед нажатием комбинации клавиш <CTRL>+<F7> установить курсор на имя переменной, которую вы хотите ввести.
Для удаления переменной войдите в окно WATCHES, далее с помощью клавиш управления курсором выберите необходимую переменную, а затем нажмите клавишу <DELETE>.
Иногда в процессе отладки возникает необходимость пошаговой отладки не всей программы, а лишь ее части. В этом случае можно воспользоваться командой меню RUN(или нажатием клавиши <F4>), предварительно установив курсор на так называемую строку останова (строка, до которой хотим выполнить программу). Программа будет выполнена до этой строки, а далее вы сможете выполнять программу в пошаговом режиме либо снова воспользоваться командой GO TO CURSOR и выполнить программу до вновь выбранной строки останова.
Во-вторых, вы можете установить в некоторой строке (или нескольких строках) так называемую точку останова. Программа будет выполняться до тех пор, пока не достигнет точки останова, и вы сможете управлять дальнейшим выполнением программы. Чтобы установить точку останова, переместите курсор в нужную строку и нажмите комбинацию клавиш <CTRL>+<F8> (или выполните команду АDD BREAKPOINT меню DEBUG), соответствующая строка будет отмечена подсветкой. После повторного нажатия <CTRL>+<F8> точка прерывания снимается.
Какими свойствами обладает точка останова?
Активизируем команду BREAKPOINT меню DEBUG. Появится таблица с указанием имени файла, номера строки, в которой установлена точка останова, здесь же можно указать условие, выполнение которого будет приводить к прерыванию работы программы, или количество проходов контрольной точки (после выполнения которых произойдет останов).
Установим точку останова на строке:
S:=P1+P2;{находим сумму цифр}
нажмем клавишу EDIT и в строке CONDITION (от английского — обстоятельства, условие) введем выражение S=N. Запустите программу. При каких значениях P1 и P2 программа приостановила свою работу?
Верните все в исходное положение и измените значение в строке PAS COUNT на значение, равное 35. Запустите программу. При каких значениях P1 и P2 программа приостановила работу сейчас?
Запустите программу, установив одновременно и условие, и число проходов контрольной точки, после которой должен произойти останов. При каких значениях P1 и P2 программа приостановила свою работу сейчас? Как вы думаете, почему это произошло?
Использование графики и звука в языке Turbo Pascal
Прежде чем приступить к созданию графических программ на Turbo Pascal, необходимо ознакомиться с богатейшими графическими возможностями этого языка, сосредоточенными в стандартных библиотеках (модулях) GRAPH и CRT (название CRT происходит от Cathode-Ray Tube — электронно-лучевая трубка). Эти библиотеки содержат разнообразные константы, переменные, процедуры и функции, рассчитанные на работу с монитором в текстовом и графическом режимах.
При работе в текстовом режиме экран монитора разбивается на строки, строки — на позиции, в каждую из которых можно поместить один символ. Положение символа на экране задается двумя координатами — (вертикальной Х и горизонтальной Y), где Х — это номер позиции в строке, а Y - номер строки. Чаще всего на экране в текстовом режиме размещается 25 строк по 80 позиций.
При работе в графическом режиме весь экран разбивается на отдельные точки — пиксели. Положение пикселя также задается двумя координатами — Х и Y. Координата Х увеличивается слева направо, а координата Y — сверху вниз.
Количество пикселей на экране зависит от типа графического адаптера и для распространенного адаптера VGA составляет 640х480.
Подключение библиотек CRT и GRAPH к программе осуществляется с помощью ключевого слова Uses (англ. uses — использует):
Uses Crt, Graph;
В системе программирования Turbo Pascal имеется хорошо развитая встроенная служба помощи, позволяющая получать подробное описание стандартных подпрограмм с примерами их применения. Поэтому ниже приведены только названия, описание параметров и назначение наиболее употребительных процедур и функций,
Библиотека CRT
Библиотека (модуль) CRT содержит константы, переменные, процедуры и функции, обеспечивающие управление текстовым режимом работы монитора и звуковым генератором.
Процедуры
CIrScr . Очищает экран или окно и помещает курсор в верхний левый угол
Delay(D: Word)
Приостанавливает работу программы на указанное число D миллисекунд. Практически время задержки зависит от тактовой частоты процессора.
GotoXY(X, Y: Byte) Перемещает курсор в позицию Х строки Y экрана.
NoSound Выключает источник звука.
Sound(F: Word) Запускает источник звука с частотой F (Гц).
TextBackGround(Color: Byte) Устанавливает цвет фона.
TextColor(Color: Byte) Устанавливает цвет символов.
Window(Xl, Yl, X2, Y2: Byte)
Определяет текстовое окно на экране. XI, Yl — координаты левого верхнего угла окна, X2, Y2 — правого нижнего угла окна.
Функции
KeyPressed: Boolean
Анализирует нажатие клавиши. Результат TRUE, если на клавиатуре нажата клавиша (кроме Alt, Ctrl и т. п.), и FALSE в противном случае. Не задерживает исполнение программы.
ReadKey: Char
Читает символ с клавиатуры без эхоповтора на экране. Приостанавливает исполнение программы до нажатия на любую клавишу, кроме Alt, Ctrl и т. п.
8.2. Библиотека GRAPH
Библиотека (модуль) Graph содержит константы, процедуры и функции для управления графическим режимом работы монитора.
Константы цвета
Black = 0; {Черный} DarkGray =8; {Темно - серый}
Blue = 1; {Синий} LightBlue =9; {Ярко-синий}
Green = 2; {Зеленый LightGreen =10; {Ярко-зеленый}
Cyan = 3 ;{Голубой} LightCyan = 11; {Ярко-голубой}
Red = 4; {Красный} LightRed = 12; {Розовый}
Magenta = 5; {Фиолетовый} LightMagenta = 13; {Малиновый}
Brown = 6; {Коричневый} Yellow = 14; {Желтый}
LightGray = 7; {Светло-серый} White =15. {Белый}
Константы типов и толщины линий
SolidLn = 0; {Сплошная} DashedLn= 3; {Пунктирная}
DottedLn =1; {Точечная} NormWidth =1; {Нормальная •толщина}
CenterLn =2{штрихпунктирная} ThickWidth = 3; {Тройная толщина}
Константы шаблона штриховки
EmptyFill = 0; {Заполнение сплошной заливкой цвета фона}
SolidFill =1; {Сплошная заливка текущим цветом}
LineFill =2; {Горизонтальная штриховка}
LtSlashFill =3; {/// штриховка}
SlashFill = 4; {/// штриховка толстыми линиями}
BkSlashFill = 5; {\\\ штриховка толстыми линиями}
LtBkSlashFill = 6; {\\\ штриховка}
HatchFill = 7; {Заполнение прямой клеткой}
XHatchFill = 8; {Заполнение косой клеткой}
InterleaveFill = 9; {Заполнение частой сеткой}
WideDotFill =10; {Заполнение редкими точками}
CloseDotFill =11; {Заполнение частыми точками}
UserFill = 12. {Тип задается пользователем}
Процедуры рисования геометрических объектов
Arc (Х, Y: Integer; Ul, U2, R: Word)
Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y - координаты центра дуги; Ul - угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо; U2 - угол до конечной точки дуги, отсчитываемый так же, как Ul; R — радиус дуги.
Ваг( X1, Y1, X2, Y2: Integer)
Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). XI, Yl, X2, Y2 - координаты левого верхнего и правого нижнего углов прямоугольника.
Bar3D(Xl, Yl, X2, Y2: Integer; Glubina: Word; Top: Boolean) Строит параллелепипед, используя текущий стиль и цвет. XI, Yl, X2, Y2 — координаты левого верхнего и правого нижнего углов передней грани; Glubina — ширина боковой грани (отсчитывается по горизонтали); Top — признак включения верхней грани (если True — верхняя грань вычерчивается, False — не вычерчивается). Circle(X, Y: Integer; R: Word)
Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).
ClearDevice Очищает графический экран, закрашивает его в цвет фона
ClearViewPort Очищает выделенное графическое окно, закрашивает его в черный цвет
CloseGraph Закрывает графический режим, т. е. освобождает память, распределен под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
Ellipse(X, Y: Integer; Ш, U2, XR, YR: Word) Рисует дугу эллипса текущим цветом. X, Y - координаты центра эллипса; U1, U2 — углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR - горизонтальная и вертикальная полуоси эллипса.
FillEllipse(X, Y: Integer; XR, YR: Word) Рисует заштрихованный эллипс, используя X, Y как центр и XR YR как горизонтальную и вертикальную полуоси эллипса.
FillPoly(N: Word; Var PolyPoints) Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints.
InitGraph(Var Driver, Mode: Integer; Path: String) Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т. е. равна ), считается, что драйвер находится в текущем каталоге.
Line(Xl, Yl, X2, Y2: Integer) Рисует линию от точки XI, Yl до точки X2, Y2.
LineTo(X, Y: Integer) Рисует линию от текущего указателя к точке X, Y.
MoveTo(X, Y: Integer) Смещает текущий указатель к точке X, Y.
OutTextXY(X, Y: Integer; TextString: String) Выводит текст в заданное место экрана.
PieSlice(X, Y: Integer; Ul, U2, Radius: Word) Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y - координаты центра сектора круга; U1 и U2 - начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius — радиус сектора.
PutPixel(X, Y: Integer; Color: Word) Выводит точку цветом Color с координатами X, Y.
Rectangle(Xl, Yl, X2, Y2)
Рисует контур прямоугольника, используя текущий цвет и тип линии. XI, Yl — координаты левого верхнего угла прямоугольника, X2, Y2 — координаты правого нижнего угла прямоугольника.
Sector(X, Y: Integer; Ul, U2, XR, YR: Word) Рисует и штрихует сектор эллипса радиусами XR, YR с центром X, Y от начального угла U1 к конечному углу U2.
SetBkColor(Color: Word)
Устанавливает цвет фона.
SetColor(Color: Word) Устанавливает основной цвет рисования.
SetFillStyle(Pattern, Color: Word) Устанавливает образец штриховки и цвет.
SetLineStyle(LineStile, Pattern, Thickness: Word) Устанавливает толщину и стиль линии.
SetTextStyle(Font, Direction, CharSize: Word) Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
SetViewPort(Xl, Yl, X2, Y2: Integer; ClipOn: Boolean) Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет «отсечку» элементов изображения, не умещающихся в окне.
Функции
GetMaxX и GetMaxY
Возвращают значения максимальных координат экрана в текущем режиме работы соответственно по горизонтали и вертикали.
GraphResult
Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от —1 до —14).
Для работы необходимо наличие в текущем каталоге библиотечного файла Graph. tpu, драйвера видеорежима Egavga. bgi (или другого в зависимости от типа монитора) и файлов шрифтов (*.chr).
Для краткости некоторые программы не содержат действий по выдаче сообщений о возможных ошибках графики, хотя они очень важны.
Переменные и циклы в графике
Хорошо при изучении основных алгоритмических конструкций с учениками 7-8-ых классов использовать графику. Это всегда вызывает интерес и много эмоций. Очень важно с самого начала научить пользоваться переменными. Можно давать такие задания:
а) б)

Позиционируем левый верхний угол рисунка координатами X, Y. Все неизвестные размеры должны вычисляться через известные и X, Y. Меняя значения входных параметров, можно переносить изображение по экрану и изменять размеры. Так на практике можно убедить детей в удобстве использования переменных. Рисунки могут придумать и сами ученики, нужно только попросить их об этом. Они не должны быть слишком сложными, в духе примитивной живописи, понятной детям. При изучении цикла с параметром можно начать с построения букв из шариков. Таких букв из горизонтальных и вертикальных линий можно придумать очень много. Таким образом, можно освоить и “пощупать” работу оператора цикла. Вырабатывать навыки использования вложенных циклов можно, строя на экране различные орнаменты, в частности, узоры чувашской вышивки. При этом мы как бы держим наш фрагмент за его верхний левый уголок, организуем его копирование по строке, после чего и строку размножаем. В дальнейшем, можно познакомить ребят с понятием генератора случайных чисел и научить ”сажать деревья” так, как они растут в дикой природе, то еть случайным образом. Для знакомства с различными типами заливок в Турбо Паскале и циклами одновременно, можно построить объемную столбиковую диаграмму.
PROGRAM DIAG;
USES CRT, GRAPH;
VAR I, GD, GM, X1,X2,Y1,Y2:INTEGER;
D3:WORD;
BEGIN
REPEAT
RANDOMIZE;
GD:=DETECT;
INITGRAPH(GD, GM,’’);
X1:=130;
Y1:=300;
D3:=20;
FOR I:=0 TO 19 DO
BEGIN
SETFILLSTYLE(RANDOM(11),RANDOM(15));
BAR3D(X1+I*D3,Y1,X1+I*D3+D3,Y1-random(200),D3,TRUE);
END;
DELAY(2000)
UNTIL KEYPRESSED;
CLOSEGRAPH;
END.
а) б)

в) г)

д) е)

Пример
Изобразить на экране сосновую посадку, посаженную стройными рядами.
PROGRAM ELKA;
USES GRAPH;
CONST N=8;M=6;
VAR X, Y,GD, GM, I,J, K,A:INTEGER;
BEGIN
GD:=DETECT;
INITGRAPH(GD, GM,’’);
X:=100;Y:=100;A:=5;
FOR K:=1 TO M DO
BEGIN
X:=100;
FOR J:=1 TO N DO
BEGIN
SETCOLOR(10);
FOR I:=0 TO 2 DO
BEGIN
LINE(X-A, Y+A+A*2*I, X,Y+I*A*2);
LINE(X+A, Y+A+A*2*I, X,Y+I*A*2);
END;
SETCOLOR(4);
LINE(X, Y,X, Y+A*8);
X:=X+50
END;
Y:=Y+60
END;
END.
Процедуры и функции
Подпрограмма – это повторяющая группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих местах программы обеспечивается лишь обращение к ней по имени.
Использование подпрограмм позволяет, во-первых, сократить объем программы, во-вторых, улучшает структуру программы с точки зрения ее читаемости и наглядности, в-третьих, уменьшает вероятность ошибок и облегчает процесс отладки.
В языке турбо Паскаль механизм подпрограмм реализован в виде процедур и функций, которые вводятся в программе с помощью своего описания, но их структура такая же, как и структура программы. Они различаются назначением и способом их использования.
Процедуры.
Процедуры предназначены для выполнения некоторой последовательности PROCEDURE, за которым следует имя процедуры, а в круглых скобках — список формальных параметров, в конце ставим точку с запятой. После заголовка могут идти те же разделы, что и в программе. Таким образом, общий вид будет следующим:
PROCEDURE <имя> [(<список формальных параметров>)]:
{эта часть заголовка может отсутствовать}
<описательная часть>
BEGIN
<тело процедуры>
END;
Результат выполнения процедуры — это одно или несколько значений. Оно (или они) передается в основную программу как значение ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования.
Фактические параметры — это параметры, которые передаются процедуре при обращении к ней.
• Число и тип формальных и фактических параметров должны совпадать с точностью до их следования.
Формальные параметры — это переменные, фиктивно присутствующие в процедуре и определяющие тип и место подстановки фактических параметров, над которыми производятся действия. Все формальные параметры делятся на два вида: параметры-переменные и параметры-значения.
Параметры-переменные — это те формальные параметры, перед которыми стоит служебное слово VAR. Они передаются по ссылке (передается адрес фактического параметра) тогда, когда необходимо передать некоторые новые значения в точку вызова процедуры из программы, то есть когда нужно, чтобы изменения в теле процедуры значений формальных параметров приводило к изменению соответствующих фактических параметров, таким образом, они и получают новое значение.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


