Неспециализированные пояснения к применению функций и процедур.
функции и Процедуры пользователя являются двумя видами подпрограмм, каковые нужно обрисовать в разделе описаний главной программы (либо предварительно поместить в личную библиотеку) и вызывать по имени в нужных местах вызывающей программы.
И процедура, и функция складываются из заголовка, раздела описаний и делаемого блока. Их описания должны пребывать по окончании вторых операторов описаний главной (вызывающей) программы, перед ее делаемым блоком. В отличие от главной программы, функции и заголовки процедуры необходимы, и имеют вид:
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 цветов.