на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Основы программирования на языке Паскаль
p align="left"> {нисходящая гамма}

for k:=3 downto 0 do

for n:=12 downto 1 do

begin

Sound (Round (F[n]*(1 shl k)));

Delay (Temp);

NoSound

end

end.

В следующей программе перемножается матрица на вектор, основу которой составляет ранее рассмотренные Program Prim 29 i Prim 29а. Здесь максимальные размеры матрицы - 1010 элементов типа 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,''); {инициализация графического режима}

if errCode= grOK then

begin { режим открыт и можно работать}

end else

begin {графический режим не удалось открыть, проанализируйте содержание переменной errCode}

end.

Замечание. Две кавычки в initGraph правомочны только тогда, когда графическая программа находится в том же каталоге, что и библиотека Graph. В противном случае в кавычках должен стоять путь - указание, где находится библиотека Graph.

12.2. Процедуры и функции библиотеки Graph

Функции GetMaxX и GetMaxY возвращают значения типа Word, содержащие максимальные координаты, соответственно, X и Y относительно левого верхнего угла в пикселах (точках).

Различные мониторы имеют различную разрешающую способность, например: VGA - 640480 точек, IBM 8514Hi - 1024768 точек.

Функции 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.

Процедура Ваr3D (Х1, Y1, Х2, Y2, Depth, Тор); вычерчивает трехмерное изображение параллелепипеда и закрашивает его переднюю грань. Depth - глубина третьего измерения, Top=true - верхняя грань вычерчивается, false - нет.

Процедура FillPoly (n, Coords); обводит линией и закрашивает замкнутый многоугольник; n - количество вершин, Coords - переменная типа PointType, содержащая координаты вершин (см. DrawPoly).

Процедура FillEllipse (Х, Y, Rx, Ry); обводит линией и заполняет эллипс.

Процедура Sector (Х, Y, Beg А, End А, Rx, Ry); вычерчивает и заполняет эллипсный сектор.

Процедура PieSlice (Х, Y, Beg А, End А, R); вычерчивает и заполняет сектор окружности.

Процедура SetColor (Color); устанавливает текущий цвет для выводимых линий и символов.

Процедура SetbkColor (Color); устанавливает цвет фона окна.

Процедура SetFillStyle (Fill, Color); устанавливает стиль Fill и цвет заполнения Color.

Значения Fill:

заполнение фоном (узор отсутствует);

сплошное заполнение;

заполнение - - - - -;

- « - /////// ;

- « - утолщенными ///////;

- « - утолщенными \\\\\\ ;

- « - \\\\\\ ;

- « - + + + + + +;

- « - ******;

- « - прямоугольной клеточкой;

- « - редкими точками ;

- « - частыми точками ;

- « - узор определяется пользователем.

Процедура FloodPill (Х, Y, Color); заполняет произвольную замкнутую линию (точки соединения должны совпадать, например, концы линий не могут пересекаться) текущим стилем и текущим цветом. X, Y - координаты точки внутри фигуры, Color -- цвет ограничений линии. Если линии разомкнуты или пересекаются и концы «торчат», то цвет «разольется» по всему окну.

Функция ImageSize (X1, Y1, X2, Y2); возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения (например, окна с рисунком).

Процедура GetImage (X1, Y1, X2, Y2, Buf); помещает в память копию прямоугольного фрагмента изображения. Buf -- переменная или участки кучи, куда будет помещена копия видеопамяти с фрагментом изображения. Размер Buf должен быть не меньше значения, возвращаемого функцией ImageSize с теми же координатами X1...Y2.

Процедура PutImage (X, Y, Buf, Mode); выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой GetImage.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.