Основы программирования на языке Паскаль
begin
Sound (Round (F[n]*(1 shl k)));
Delay (Temp);
NoSound
end
end.
В следующей программе перемножается матрица на вектор, основу которой составляет ранее рассмотренные Program Prim 29 i Prim 29а. Здесь максимальные размеры матрицы – 10*10 элементов типа byte. Ввод информации производится в окне светло-бирюзо
вого цвета, вывод результатов – в окне малинового цвета, цвет букв – желтый.
Программа в начале работы издает звуки частотой от 130 до 2130 Гц, затем при вводе величины a – частотой 2000 Гц, b – 1500 Гц длительностью n=100 мс. В конце работы программа издает звуки от 2130 до 130 Гц. Программа использует подпрограмму Wind, написанную на основе Prim 52.
Program Prim53; Uses CRT; var i,j,n,m,k,l:integer; a:array[1 50,1 70] of byte; b:array[1 10] of byte;
c:array[1 10] of longint;
cv:byte;
{$i C:\TURBO\ wind.pas}
BEGIN
Clrscr; {очиститьэкран }
cv:=11; {цвет 11, светло-бирюзовый}
wind(1,1,50,7); { открыть окно, обращения к процедуре}
Sound(330); { включить звук, частотой 330 гц } Delay(1000); { задержать на 1000 миллисекунд } NoSound; { выключить звук }
writeln ('ввести количество строк и столбцов');
GotoXY(2,3); l:=4; {l устанавливает курсор по y}
readln(n,m);
for i:=1 to n do
for j:=1 to m do
begin GotoXY(2,l);
writeln(' введите a[',i,',',j,'] элемент матрицы а ');
GotoXY(34,l); { перевести курсор в конец текста:}
{ввести a[i,j] – элемент матрицы'}
ClrEol; { удалить конец строки до границы окна}
readln(a[i,j]); { ввести очередное а в конце текста }
end;
L:=L+1;{}
for j:=1 to m do
begin GotoXY(2,l);
writeln(ввести b[',j,'] элементвектора b');
GotoXY(33,l);
ClrEol;
readln(b[j]); end;
cv:=5; { фиолетовый цвет для нового окна }
wind(20,2,80,18); GotoXY(2,2); l:=3;
for i:=1 to n do { начало перемножения матрицы на векторы }
begin c[i]:=0;
for j:=1 to m do
c[i]:=c[i]+ a[i,j]*b[j]; end;
{ конец перемножения матрицы на вектор }
writeln(' распечатка массива а ');
for i:=1 to n do
begin GotoXY(2,l); l:=l+1; { начатьновуюстроку }
for j:=1 to m do
write(a[i,j]:5); end;
GotoXY(2,l); l:=l+1; writeln('распечатка массива b');
GotoXY(2,l);
for j:=1 to m do
write(' ',b[j]); L:=L+1;
GotoXY(2,L); L:=L+1; writeln('результирующий массив с');
GotoXY(2,L);
for i:=1 to n do
write(' ',c[i]);
readln; END.
12. Графика в Паскале
12.1. Инициализация графического режима
Для вывода графических изображений на экран турбо Паскаль предоставляет пользователю библиотеку Graph. Общий вид программы с использованием Graph имеет следующий вид:
Program имя;
Uses Graph;
var
grDriver, grMode, errCode: integer;
begin
grDriver:= Detect; {определение номера, установленного в системе драйвера}
initGraph (grDriver, grMode,''); {инициализация графического режима}
iferrCode= grOKthen
begin { режим открыт и можно работать}
end else
begin {графический режим не удалось открыть, проанализируйте содержание переменной errCode}
end.
Замечание. Две кавычки в initGraph правомочны только тогда, когда графическая программа находится в том же каталоге, что и библиотека Graph. В противном случае в кавычках должен стоять путь – указание, где находится библиотека Graph.
12.2. Процедуры и функции библиотеки Graph
Функции GetMaxX и GetMaxY возвращают значения типа Word, содержащие максимальные координаты, соответственно, X и Y относительно левого верхнего угла в пикселах (точках).
Различные мониторы имеют различную разрешающую способность, например: VGA - 640´480 точек, IBM 8514Hi - 1024´768 точек.
Функции GetX и GetY возвращают текущие координаты указателя. Процедура SetViewPort (Х1, Y1, Х2, Y2, Clipon); устанавливает прямоугольное окно на графическом экране, X1, Y1 - координаты левого верхнего угла; Х2, Y2 - координаты нижнего правого угла окна.
Если выражение Clipon имеет значение true и элементы изображения не помещаются в окне, то они отсекаются, если – false, то отсечка игнорируется.
Процедура MoveTo (Х, Y); устанавливает новое текущее положение указателя.
Процедура MoveRel (Ox, Dy); устанавливает приращения новых координат указателя относительно старых.
Процедура ClearDevice, очищает графический экран, указатель устанавливается в левый верхний угол, экран заполняется цветом, заданным процедурой SetBkColor.
Процедура PutPixel (Х, Y, Color); выводит на экран точку Color цвета. Процедура LineTo (Х, Y); вычерчивает линию от текущего положения указателя до точки Х, Y.
Процедура SetLineStyle (Туре, Pattern, Thick);
Где Туре – тип линии. Pattern – образец линии. Thick – толщина линии.
Тип линии:
0 – сплошная,
1 – точечная,
2 – штрихпунктирная,
3 – . . . . . . . .
4 – узор линии определяет пользователь параметром pattern.
Thick=l – толщина линии в 1 пиксел.
Thick=2 – толщина линии в 3 пиксела.
Процедура Rectangle (Х1, Y1, Х2, Y2); вычерчивает прямоугольник с использованием текущего цвета и текущего стиля линий.
Процедура DrawPoly (N, Р); вычерчивает произвольную ломаную линию. N - количество точек излома, включая крайние; Р - переменная типа PointType, которая в Graph имеет вид:
type
PointType=record
X, Y: Word
end;
При вычерчивании используются текущий цвет и текущий стиль линий. Процедура Circle (Х, Y, R); вычерчивает окружность с центром X, Y и радиусом R.
Процедура Arc (Х, Y, Beg А, End А, R); вычерчивает дугу окружности Beg А и End А, соответственно, начальный и конечный углы дуги.
Процедура Ellipse (Х, Y, Beg А, End А, RX, RY); вычерчивает дугу эллипса с центром X, Y; Beg А, End А – начальный и конечный угол, RX и RY – горизонтальный и вертикальный радиусы.
Процедура Bar (Х1, Y1, Х2, Y2); заполняет прямоугольную область экрана образцом узора и текущим цветом, которые устанавливаются процедурой SetFillStyle.
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности