Пояснения к лабораторной работе

Неспециализированные пояснения к применению функций и процедур.

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

И процедура, и функция складываются из заголовка, раздела описаний и делаемого блока. Их описания должны пребывать по окончании вторых операторов описаний главной (вызывающей) программы, перед ее делаемым блоком. В отличие от главной программы, функции и заголовки процедуры необходимы, и имеют вид:

PROCEDURE (); – для процедуры и

FUNCTION ():; – для функции.

Перечень доводов это, по существу, перечень входных параметров.

Раздел описаний процедуры либо функции строится как раздел описаний главной программы, с учетом того, что все обрисованные переменные существуют лишь на протяжении исполнения процедуры (функции) в виде локальных переменных и никак не связаны с переменными вызывающей программы.

направляться иметь в виду, что в случае, если во внешней программе переменная обрисована, а в процедуре – нет, ее применение в теле процедуры свидетельствует работу с переменной внешней программы (так именуемые глобальные переменные).

Делаемый блок (что должен быть заключен в скобки Begin .. End) заканчивается знаком ;, а не точкой. В функции, в отличие от процедуры, в делаемом блоке имени функции непременно должно быть присвоено значение, которое и будет являться ее значением. Такое присваивание может видеться пара раз, конечным значением будет итог последнего присваивания. В выражений тела функции ее имя видеться не должно, в случае, если это не особая рекурсивная функция.

Обращение (вызов) процедуры выполняется написанием имени процедуры в форме отдельного оператора. Обращение к функции выполняется лишь в выражения, входящего в состав оператора, подобно обращению к стандартным (встроенным) функциям Турбо-Паскаля.

Механизм параметров

В перечень параметров включаются данные для работы процедуры/функции (входные параметры) и, в случае, если нужно, указания, куда поместить результаты работы процедуры (выходные параметры).

Существует два метода передачи данных через перечень параметров из вызывающей программы в процедуру. Первый метод содержится в том, что процедуре передается некое данное в виде его значения, к примеру, в случае, если данное числового типа, передается само число. Второй метод содержится в том, что передается не значение данного, а адрес ячейки, где это данное находится (говорят, что передается имя переменной). Так, параметры смогут передаваться по значению и по имени. В каких случаях какой метод направляться применять? В большинстве случаев входные параметры передаются в процедуру по значению, а выходные – в любой момент по имени.

Имеется кое-какие особенности при передаче массивов (и других составных данных громадного размера) в качестве фактических параметров. Кроме того в случае, если массив представляет собой входные эти и не изменяется в ходе исполнения процедуры, его в большинстве случаев передают по имени, поскольку это требует передачи лишь адреса начала массива, а не копии всего массива, как это потребовалось бы при передаче массива по значению. Помимо этого, массив главной программы (фактический параметр) и массив в перечне формальных параметров должны иметь одинаковый тип – т.е. обязан употребляться одинаковый явный описатель.

Напомним, что в то время, когда параметры передаются по имени, они занимают в памяти по 4 байта. Подробнее об этом наблюдай лабораторную работу № 9.

Примеры написания перечней формальных и фактических параметров:

..(A,B,C:real;VAR X1,X2:real;VAR N:integer); – формальные,

..(0.762,Alfa,C[3]-1.2,X,Y,Num); соответствующие фактические.

Для передачи массива в процедуру:

TYPE

Vect = array[1..10] of real;

Mas5x8 = array[1..5,1..8] of integer;

. . .

VAR

C1,C2: Vect;

A: Mas5x8;

Metod: Integer;

. . .

PROCEDURE GetMatr(M:integer; Var X,Y:Vect;

Var Z:Mas5x8;…);

VAR A1,C1:integer;

. . .

Begin

End;

FUNCTION MinValueMatr( Var Z:Mas5x8; M,N:integer)

:Integer;

VAR MinZ, I, j :integer;

Begin

MinValueMatr:= MinZ;

End;

BEGIN

. . .

GetMatr(0, C2, C1, A,…); {обращение к процедуре}

. . .

If MinValueMatr(A,5,7) div 2 3 then {обращение к функции}

. . .

END.

Разбор контрольного варианта

Задание

Таблица 24. Эти к заданию 31 варианта

№ вар. Программа Процедуры (Функции) M N Файл с данными
Прямоугольный массив заполнить числами из файла, начиная с 33 числа. Посредством функции в исходном массиве сделать элементы последнего столбца равными сумме всех четных элементов соответствующей строки. 1)Исходный и полученный массивы печатать процедурой. 2)Выстроить функцию, которая возвращает сумму четных по значению элементов заказанной строки прямоугольного массива. DATI.BIN

Таблица идентификаторов

Составляется как для главной программы, так и для каждой подпрограммы пользователя.

Таблица 25. Идентификаторы программы 31 варианта

Имя Тип Р-р (байт) Назначение
Главная программа
KorrMass Имя программы Обработка массива
Massiv Описатель типа Описатель целочисл. массивов
Stroka Описатель типа Описатель строчка до 30 знаков
M Целое Количество строчков массива
N Целое Количество столбцов массива
i Целое Номер текущей строки массива
j Целое Номер текущего столбца массива
Fin Бинарный файл прямого доступа Файл с исходн. целыми числами
Fout Последовательный символьный файл Файл с результатами работы
Ouest1 Инициализирован-ная строчок Запрос числа строчков массива
Ouest2 Инициализирован-ная строчок Запрос числа столбцов массива
A Целочисленный массив Обрабатываемый массив
InpMN Имя процедуры Ввод размеров массива
PrintMas Имя процедуры Вывод массива в файл протокола
DATI.BIN Строчок – константа Имя комплекта данных с числами
Umnik_7.res Строчок – константа Имя комплекта данных с протоколом
Sum Имя функции Суммирование четных значений
InpMN –-Процедура ввода размеров массива
Txt Строчок Формальный параметр – строчок запроса
Kol Адрес целочисленной переменной Формальный параметр – имя переменной для результата ввода
MaxK Целое Формальный параметр – предельное вероятное значение
PrintMas–- Процедура вывода массива в файл протокола (распечатки массива)
Txt Строчок Формальный параметр – текст заголовка
Mas Адрес массива Формальный параметр – имя выводимого массива
NStr Целое Формальный параметр – число строчков массива
NKol Целое Формальный параметр – число столбцов массива
i Целое Номер строчка
j Целое Номер столбца
Sum – Функция вычисления суммы четных элементов заданной строки массива
Mas Адрес массива Формальный параметр – имя исходного массива
N Целое Формальный параметр – число столбцов массива
St Целое Формальный параметр – номер обрабатываемой строки
J Целое Номер элемента
S Целое Сумма
Odd Стандартная логическая функция Проверка нечетности довода

Пояснения к лабораторной работе

Блок-схема метода

Текст программы.

PROGRAM KorrMas;

{ Лабораторная работа N 7 Вариант N 31

Обработка массива

А.Я.Умненькая, ст. гр. Я-007 }

TYPE

Massiv = array[1..13,1..10] of integer;

Stroka = string[30];

CONST Quest1: Stroka=’Задайте число строчков массива’;

Quest2: не=’Задайте число столбцов массива’;

VAR A :Massiv;

M,N,I,j : integer;

Fin : file of integer;

Fout : file of text;

{ Процедура ввода размеров массива }

PROCEDURE InpMN(Txt:Stroka; MaxK:integer;

Var Kol:integer);

Begin

WriteLn; WriteLn(Txt);

Repeat

Readln(Kol);

If KolMaxKol then

Writeln(‘Возможно не более ‘,MaxK,’задайте опять’);

until Kol

End;

{ Процедура вывода массива в файл протокола }

PROCEDURE PrintMas(Txt: string; Var Mas: Massiv;

NStr,NKol: integer);

VAR i,j : integer;

Begin

Writeln(Fout,Txt);

For i:= 1 to NStr do

begin

For j:= 1 to Nkol do Write(Fout,Mas[I,j]:7);

WriteLn(Fout);

end;

End;

{ Функция вычисления суммы четных элементов заданной строки массива }

FUNCTION Sum(Var Mas: Massiv; N,St: integer)

:integer;

VAR j,S : integer;

Begin

S:=0;

For j:=1 to N do

If not Odd(Mas[St,j]) then S:=S+Mas[St,j];

Sum:=S;

End;

BEGIN { Главная программа }

InpMn(Quest1,13,M);

InpMn(Quest2,10,N);

Assign(Fout,’Umnik7.res’);

ReWrite(Fout);

WriteLn(Fout,’Сумма четных элем. в последний столбец’);

Assign(Fin,’D:\LAB1\DATI.BIN’);

ReSet(Fin);

Seek(Fin,32);

for i:=1 to M do

for j:=1 to N do Read(Fin,A[I,j]);

Close(Fin);

PrintMas (‘ Исходный массив’, A,M,N);

for I:=1 to M do A[I,N]:=Sum(A,N,I);

PrintMas (‘ Обработанный массив’, A,M,N);

Close(Fout);

END.

Содержимое комплекта данных UMNIK7.RES:

Сумма четных элем. в последний столбец

Исходный массив

9 8 0 -7 0 -5 7 -5 5

6 9 9 2 -2 -8 3 -8 -9

8 -4 -4 1 3 6 4 0 -5

4 1 -2 4 2 1 -2 -6 -5

-1 5 0 9 4 -3 -6 -691 885

-709 800 382 -396 -140 -841 923 368 -686

737 624 169 -610 458 -188 -423 126 355

Обработанный массив

9 8 0 -7 0 -5 7 -5 8

6 9 9 2 -2 -8 3 -8 -10

8 -4 -4 1 3 6 4 0 10

4 1 -2 4 2 1 -2 -6 0

-1 5 0 9 4 -3 -6 -691 -2

-709 800 382 -396 -140 -841 923 368 328

737 624 169 -610 458 -188 -423 126 410

Варианты заданий

Таблица 26. Варианты заданий лабораторной работы №7

№ вар. Программа Процедуры (Функции) M N Файл с данными
В прямоугольном массиве посредством функции отыскать элемент, у которого самая солидная сумма соседей. Отысканный его индексы и элемент напечатать. Исходные числа из файла просматривать, начиная с 27 числа. 1) Распечатать исходный массив посредством процедуры. 2) Выстроить функцию, которая для произвольного внутреннего элемента передаваемого ей массива находит сумму всех соседних (8 штук). DATF.TXT
В прямоугольном массиве посредством процедуры убрать все строки, у которых оба финиша – с четными значениями. Данные из файла просматривать, начиная с 44 числа. 1) Печатать двумерный массив до и по окончании корректировки посредством процедуры. 2) Выстроить процедуру, которая удаляет (со сдвигом вверх всех нижележащих строчков) заказанную строчок передаваемого ей прямоугольного массива DATI.TXT
В прямоугольном массиве посредством процедуры сделать все строки упорядоченными по убыванию. Исходные числа из файла просматривать, начиная с К-го числа, где К вводить с клавиатуры. 1) Печатать массив до и по окончании сортировки посредством процедуры. 2) Выстроить процедуру, которая в заказанной строчке передаваемого ей прямоугольного массива упорядочивает элементы по возрастанию способом обмена. DATI.BIN
Квадратный массив заполнить данными из файла, начиная с 21 числа. Посредством функции в исходном массиве поменять элементы основной диагонали с большими значениями в строчке. 1) Исходный и полученный массивы печатать процедурой. 2) Выстроить функцию, которая возвращает номер большого элемента заказанной строки прямоугольного массива. DATF.TXT
Одномерный символьный массив длиной 300 элементов заполнить знаками из файла, начиная В первую очередь. Посредством процедуры заполнить новый одномерный символьный массив знаками из исходного массива без повторения знаков. 1) Выстроить процедуру, которая в исходном массиве заменяет пробелом все вхождения первого встретившегося знака (не пробела) и возвращает данный стертый знак в вызывающую программу. 2) Печатать любой массив посредством процедуры. SIMBOL. TXT
В квадратном массиве, применяя процедуру сортировки, сделать все строки упорядоченными по возрастанию. Исходные числа из файла просматривать, начиная с 20 числа. 1) Печатать массив до и по окончании сортировки посредством процедуры. 2) Выстроить процедуру, которая в заказанной строчке передаваемого ей квадратного массива упорядочивает элементы по возрастанию способом выбора. DATF.TXT
Прочесть в одномерный строковый массив (строчка по 80 знаков, количество строчков не более 50), текст разработанной Паскаль-программы. Применяя функцию, подсчитать количество операторов в тексте программы. Перед каждым end обязан находиться знак ‘;’. 1) Составить печати количества и процедуру подсчёта групп операторов (заключенных в скобки begin ..end) в исходном массиве строчков. 2) Составить функцию, возвра-щающую количество знаков ‘;’ в строчке. *.PAS
В прямоугольном массиве, отыскав посредством процедуры место минимального элемента, удалить столбец и строку, проходящие через него. Исходные числа из файла просматривать, начиная с 99 числа. 1) Печатать массив до и по окончании корректировки посредством процедуры. 2) Выстроить процедуру, которая находит в передаваемом массиве номер столбца и номер строки самого мелкого элемента. DATI.BIN
Заполнить одномерный массив из М элементов. После этого посредством процедуры заполнить одномерный целочисленный массив длиной 10 элементов, в котором i-й элемент показывает, сколько чисел исходного массива лежит в диапазоне от (i–1)*10 до i*10. Исходные числа из файла просматривать, начиная с 6 числа. 1) Исходный и полученный массивы печатать процедурой. 2) Выстроить процедуру, которая подсчитывает, сколько чисел в передаваемом ей одномерном целочисленном массиве попадает в заказанный диапазон. 100.. 200 DATI.BIN
Одномерный массив строчков длиной по 80 знаков заполнить из файла. Применяя функцию, отыскать, какая русская буква (не различая прописные и строчные) видится чаще. К функции обращаться, передавая ей строчную и прописную буквы и символьную строчок массива. 1) Распечатать исходный массив процедурой. 2) Составить функцию, возвра-щающую суммарное количество вхождений двух заданных знаков в заданной строчке длиной 80 знаков. RUS.TXT
Прямоугольный символьный массив размером 10×30 заполнить из файла начиная с 29 знака. Посредством процедуры заполнить два одномерных массива длиной 10 элементов любой. В первом массиве – самые частые знаки, а во втором – их количество в каждой строке исходного массива. Взят-ные массивы кроме этого распечатать. 1) Исходный массив печатать процедурой. 2) Выстроить процедуру, которая в заказанной строчке произвольного символьного массива (размерами до 10х30) находит, какой знак видится значительно чаще и какое количество раз. SIMBOL. TXT
Заполнить исходную квадратную матрицу А числами из файла, начиная с 39-го числа. Применяя процедуры, вычислить матрицу С=А*В, где В – транспонированная матрица А. 1) Печатать все массивы посредством процедуры. 2) Выстроить процедуру транспонирования квадратной матрицы (размерами до 7х7). 3) Выстроить процедуру, перемножения двух квадратных матриц размерами до 7х7 (см. пояснения к 5 лабораторной). DATF.TXT
Прочесть в одномерный строковый массив (строчка по 80 знаков), количество строчков не более 50, текст разработанной Паскаль-программы. Применяя функцию, подсчитать количество управляющих операторов в данной программе. Распечатать количество и название операторов каждого вида. Перед подсчетом перевести все латинские знаки в прописные. 1) Составить процедуру печати двух массивов в форме: наименование оператора – количество вхождений. В процедуру передать строчный массив числовой количеств и – названий. 2) Составить функцию, возвра-щающую количество вхождений заданной строки в массиве из 50 строчков по 80 знаков. (Функцию применять для строчков: ‘if’, ‘goto’, ‘for’, ‘case’, ‘while’, ‘repeat’.) *.PAS
Применяя процедуру заполнить одномерный целочисленный массив длиной 15 элементов, в котором любой элемент показывает, сколько в исходном одномерном символьном массиве знаков а, б и т.д. до п. Исходный массив заполнять из файла, пропустив 10 знаков 1) Исходный массив печатать процедурой. 2) Выстроить процедуру, которая подсчитывает, сколько раз в передаваемом ей одномерном символьном массиве длиной N элементов видится заказан-ный знак. SIMBOL. TXT
В прямоугольном массиве посредством функции отыскать элемент, у которого самая маленькая сумма соседних вместе с ним. Полученный элемент напечатать. Исходные числа из файла просматривать, начиная с 29 числа. 1) Печатать исходный массив посредством процедуры. 2) Выстроить функцию, которая для произвольного внутреннего элемента передаваемого ей массива (размерами до 11×7), находит сумму элемента и всех соседних с ним (всего 9 штук). DATF.BIN
Прямоугольный символьный массив размером 20×30 заполнить знаками из файла, пропустив 49 знаков. Посредством процедуры в массиве отыскать и заменить на ‘*’ элемент с самой маленькой суммой кодов соседних знаков. 1) Выстроить процедуру, которая для заказанного внутреннего элемента массива подсчитывает сумму кодов восьми соседних элементов. 2) Печатать любой массив посредством процедуры. SIMBOL. TXT
Прямоугольный массив заполнить из файла каждым третьим числом. Применяя логическую функцию распечатать для каждой строки исходного массива фразу четных чисел больше либо четных чисел не больше. 1) Распечатать исходный массив процедурой. 2) Составить функцию, возвра-щающую значение TRUE, в случае, если в заданной строчке массива больше четных чисел и FALSE в другом случае. DATI.BIN
В прямоугольном массиве посредством процедуры сделать все строки упорядоченными по возрастанию. Исходные числа из файла просматривать, начиная с К-го числа, где К 1) Печатать массив до и по окончании сортировки посредством процедуры. 2) Выстроить процедуру, которая в заказанной строчке передаваемого ей прямоугольного массива упорядочивает элементы по убыванию способом выбора. DATF.TXT
Массив из M строчков и пяти столбцов частично (первые три столбца) заполнить числами из файла, начиная с 33-го числа файла. Разглядывая первые три числа в каждой строке матрицы в качестве коэффициентов при нулевой, первой и второй степени Х, заполнить четвертый и пятый элементы значениями корней уравнения посредством процедуры. 1) Выстроить процедуру, вычис-ляющую вещественные корни квадратного уравнения по трем передаваемым ей коэффициентам (в случае, если отсутствует один либо оба вещественных корня, процедура обязана возвращать значения корней, равные нулю). 2) Заполненный массив распе-чатать процедурой. DATF.BIN
Посредством процедуры в исходном массиве сделать все строки упорядоченными по возрастанию. Перед обращением к процедуре копировать строчок в одномерный массив, по окончании – копировать обратно. Исходный массив заполнить числами из файла, начиная с 18-го. 1) Печатать массив до и по окончании сортировки посредством процедуры. 2) Выстроить процедуру, которая в одномерном целочисленном массиве упорядочивает элементы по возрастанию способом выбора. DATI.BIN
Прямоугольный массив заполнить числами из файла, начиная с четвертого числа. Посредством функции в исходном массиве сделать элементы первой строки равными большому элементу соответствующего столбца. 1) Исходный и полученный массивы печатать процедурой. 2) Выстроить функцию, которая возвращает большое значение в заказанном столбце прямоугольного массива. DATI.TXT
В квадратном массиве, применяя процедуру сортировки, сделать все столбцы упорядоченными по возрастанию (перед обращением к процедуре копировать столбец в одномерный массив, по окончании – копировать обратно). Исходные числа из файла просматривать, начиная с 18-го. 1) Печатать двумерный массив до и по окончании сортировки посредством процедуры. 2) Выстроить процедуру, которая в одномерном вещественном массиве упорядочивает элементы по убыванию способом выбора. DATF.BIN
Одномерный символьный массив длиной 300 элементов заполнить из файла, начиная В первую очередь, и распечатать по 60 знаков в строчке. Посредством процедур сосчитать и распечатать, сколько трех-, шести- и девяти- символьных слов в массиве. 1) Выстроить процедуру, которая в передаваемом ей исходном массиве заменяет все разделители (знаки: ‘ ‘, ‘.’,’,’,’-‘,'(‘,’)’,») на единый – точку. 2) Выстроить процедуру, которая в передаваемом ей массиве определяет количество слов заданной длины (слово – знаки между двумя точками.) SIMBOL. TXT
В прямоугольном массиве, применяя процедуру, сделать все столбцы упорядоченными по возрастанию. Исходные числа из файла просматривать, начиная с 12-го. 1) Печатать массив до и по окончании сортировки посредством процедуры. 2) Выстроить процедуру, которая в заказанном столбце произвольного прямоугольного массива упорядочивает элементы по возрастанию способом обмена. DATI.BIN
Одномерный символьный массив длиной 300 элементов заполнить из файла и распечатать по 60 знаков в строчке. Посредством функции заполнить два массива из 26 элементов, соответственно числом и буквой ее повторений (перед этим все знаки массива сделать прописными). Упорядочить массив букв по убыванию повторений способом пересчета. Распечатать оба массива. 1) Распечатать исходный массив процедурой. 2) Составить функцию, возвра-щающую количество вхождений заданного знака в строчке. LAT.TXT
Применяя процедуры, по исходным квадратным массивам (матрицам) А и В вычислить матрицу С=А*В+А. Исходные числа из файла просматривать, начиная с 18-го. 1) Печатать все массивы посредством процедуры. 2) Выстроить две процедуры, каковые для двух квадратных матриц (размерами до 7х7) вычисляют третью матрицу той же размерности: первая – сумму, вторая – произведение. DATF.TXT
Одномерный символьный массив заполнить из числового файла, разглядывая его как символьный (пропуская финиши строчков). Применяя функцию, заполнить два числа: и массива цифр их повторений. Пересортировать массив цифр по возрастанию числа повторений способом выбора. Распечатать оба массива до и по окончании сортировки. 1) Распечатать исходный массив процедурой. 2) Составить процедуру их массивов повторений и печати цифр. 3) Составить функцию, возвращающую количество вхождений заданного знака в символьном массиве. DATF.TXT
В прямоугольном вещественном массиве размером 9×7 заполнить первые пять столбцов числами, прочтёнными из файла (просматривать начиная с 28 числа). Посредством данной процедуры в исходном массиве заполнить последний столбец 1) Выстроить процедуру, которая в заказанной строчке прямоугольного массива 9х7 элементов находит самую громадную по модулю разность двух элементов (не обязательно соседних) среди первых шести элементов и заносит определённое значение в седьмой элемент строчка массива. 2) Заполненный массив распечатать процедурой DATF.BIN
Прочесть в одномерный массив строчков (длиной по 74 знака) первые 73 знака каждой строки файла DATF.TXT. Применяя функцию, заполнить строчный массив и выходной (элементы – строчка длиной восемь знаков) отдельными словами – изображениями чисел. 1) Составить строковую функцию, выбирающую из строчка первое слово – первую подстроку между пробелами, заменяя при выборе в исходной строчке выбранные знаки пробелами. 2) Печать выходного массива по пять слов в строчке выполнить посредством процедуры. DATF.TXT
Одномерный массив длиной M элементов из файла, начиная с 106 числа. Применяя процедуру, заполнить целый одномерный массив длиной десять элементов, в котором любой элемент будет равен суммарному количеству цифр каждого значения (от нуля до девяти) во всех числах прочтённого массива. Распечатать данный массив. 1) Исходный массив печатать процедурой. 2) Выстроить процедуру, которая подсчитывает, сколько цифр каждого значения (от нуля до девяти) видится в передаваемом ей целом числе. Применять операцию вычисления остатка от целочисленного деления на десять (целые числа содержат меньше шести цифр). 100.. DATI.TXT
Прямоугольный массив заполнить числами из файла, начиная с 33-го. Посредством функции в исходном массиве сделать элементы последнего столбца, равными сумме всех элементов соответствующей строки. 1) Исходный и полученный массивы печатать процедурой. 2) Выстроить функцию, которая возвращает сумму четных по значению элементов заказанной строки прямоугольного массива. DATI.BIN

Лабораторная работа N 8

Графика на Паскале

Задачи лабораторной работы

Вопросы, изучаемые в работе

  • использование процедур и Изучение строения, функций, раздела Graph, применяемого при выводе на экран информации в графической форме.
  • Работа с цветом.
  • Проектирование размещения графических объектов на экране.

Задание (общее ко всем вариантам)

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

Неспециализированные пояснения

Графический режим экрана

Дабы применять графику в программах на Турбо-Паскале нужно обучиться планировать размещение на экране выводимой информации (т.е. разобраться в методе вывода графических объектов на экран) и мочь подключать и применять стандартные функции и графические процедуры Турбо-Паскаля. Разглядим последовательно обе эти неприятности.

Для начала направляться твердо усвоить, что экран дисплея может употребляться либо в текстовом либо в графическом режиме, но лишь не в обоих в один момент. Стандартное состояние экрана при работе в Турбо-Паскале (вычисленном на ОС DOS) – в текстовый режим. Наряду с этим никакой графический вывод на экран неосуществим, попытки вызова процедур графики приведут к останову и ошибке программы. По окончании инициализации графики, ненужными будут обращения к процедурам вывода на экран текстовой информации (посредством Write и WriteLn), действительно, без прерываний выполнения и всяких сообщений программы.

Перевод дисплея в графический режим (инициализация графики) позволяет получить доступ к любой точке экрана. Наряду с этим совокупность координат экрана начинается в левом верхнем углу с точки, имеющей координаты 0,0. Ось Х направлена слева направо, ось У – сверху вниз. Любая точка экрана имеет две координаты Х и У и какой-то цвет из допустимой палитры. Такая точка именуется пикселем. В зависимости от состава аппаратных средств ПЭВМ, на экране максимально может помещаться либо 350 (для EGA-адаптера), либо 480 (для VGA-адаптера) строчков по 640 пикселов в каждой строке. Палитра в большинстве случаев содержит 16 цветов.

03-2. Пояснение к лабораторной работе № 3


Интересные записи:

Понравилась статья? Поделиться с друзьями: