Использование program, begin…end, write, readln, Uses Crt, Clrscr.

В этом уроке мы напишем самую простую программу, состоящую всего из пяти строк. Эта программа будет выводить сообщение на экран. Для написания программы нам необходимо знать как работают операторы Write, Readln, а также понять для чего нужны ...

Оператор выбора Case Of в Pascal.

Помимо условного оператора If в языке программирования Pascal существует оператор выбора Case of. Рассмотрим его применение на примере программы, которая выводит на экран то или иное сообщение, в зависимости от введенного числа.

Тип данных Char. Функции Ord, Chr.

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

Циклы и массивы

Тип данных Integer.

Тип INTEGER (целый). Этот тип представляет множество целых чисел диапазона от -32768 до 32767. В памяти ЭВМ  под целое число отводится два байта (16 бит).

Массив символов.

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

Процедура SetLineStyle устанавливает толщину и тип линии. Эта процедура влияет на все линии, которые заданы процедурами Line, LineTo, Rectangle, DrawPoly, Arc, Circle и др.

 Рисование различных типов линий.




Program Graphika9;
Uses Graph;
var i,s:integer;
Procedure Graphinterface;
Var  gd, gm, error:Integer;
s:String;
Begin
gd:=detect;
s:=' ';
Initgraph(gd,gm,s);
error:=GraphResult;
if error<>GrOk then
begin
writeln(GraphErrorMsg(Error));
Halt(error)
end
end;
begin
Graphinterface;
s:=100;
for i:=0 to 3 do
begin
setlinestyle (i,0,1);
line (s,20,s,300);
s:=s+50;
end;
readln;
closegraph;
end.



В строке №3 записываем 2 переменные. Переменную «i» будем использовать в качестве счетчика цикла. Переменную «s» для изменения координат выводимых линий по оси X.

Строка №4 - №17. Процедура для запуска графического режима.

Строка №20. Присваиваем переменной «s» значение 100. Как мы уже сказали, эта переменная будет использоваться в качестве координаты X для вывода линии на экран. В строке №24 мы записываем процедуру Line и указываем для нее координаты. Как видно, координатами вывода линии будут координаты (100,20,100,300).

Строка №21. Записываем цикл. Переменная «i» в цикле будет менять свое значение от 0 до 3.

Строка №23.Здесь записывается процедура SetLineStyle. Эта процедура устанавливает тип и толщину линии. В скобках указываются 3 параметра этой линии. Первый параметр определяет тип линии и  может принимать значения  от 0 до 4. В таблице представлены различные типы линий и соответствующие им константы.

Grafika v Pascal,tipih liniyj

 В нашем примере первому параметру, определяющему тип линии, соответствует переменная «i». (строка №23). Благодаря циклу, тип линии будет меняться, принимая значения от 0 до 3. Я намеренно не включил в цикл значение 4, которое определяет пользовательский тип линии. Об этом поговорим позже.
Второй параметр в процедуре SetLineStyle описывает образец линии. Об этом параметре мы также поговорим позже. На данном этапе следует сказать, что этот параметр всегда принимает значение 0, если первый параметр принимает значение от 0 до 3. В нашем случае первый параметр процедуры SetLineStyle задается переменной «i», которая может принимать значения только 0, 1, 2 и 3. Поэтому второй параметр будет равен 0.
Третий параметр в процедуре SetLineStyle задает толщину линии и может принимать только 2 значения: либо 1, либо 3.

Grafika v Pascal,tolthina liniyj

Из таблицы видно, что если третий параметр в процедуре SetLineStyle равен 1, то будет рисоваться линия в один пиксел, если равен 3, то – в три пиксела.
Вместо числовых констант можно записывать название того или иного параметра. Например, в нашей программе строку №23 можно записать так: «setlinestyle (i,0,Normwidth);».

Строка №24. Задаем линию.

Строка №25. В переменную «s» записываем новое значение, которое больше старого значения на 50 пикселей.
Благодаря тому, что строки №23, №24 и №25 находятся в цикле, на экран будет выведено 4 линии разных типов. Координаты по оси Y этих линий будут одинаковыми, а координата по оси X будет увеличиваться на 50 пикселей при выводе на экран следующей линии.

setlinestyle

setlinestyle.


В нашем примере мы рассмотрели 4 типа линий, однако, как уже было сказано, существует 5-ый тип, который задается пользователем. При этом пользователь должен задать образец линии, который записывается во 2-ом параметре. Образец задается с помощью 4-х шестнадцатеричных чисел (от 0 до F). Если вы помните, то каждое шестнадцатеричное число кодируется 4-мя двоичными битами. На рис. показано соответствие между шестнадцатеричным числом и двоичным числом.

Grafika v Pascal,tipih liniyj,poljzovateljskiyj tip

Там где бит, имеет значение 1, в линии ставится штрих, а там где – 0, не ставится.
Например, зададим в качестве 2-го параметра 4 шестнадцатеричных числа F 5 F 5. Запишем эти числа в двоичном коде, согласно таблице сверху : 1111 0101 1111 0101.
На рис. снизу представлен увеличенный фрагмент линии, заданный с помощью пользовательских параметров.

Grafika v Pascal,tipih liniyj,poljzovateljskiyj tip.

В этой линии штрихи определяются цифрой 1, а пропуски – цифрой 0. Сначало идет 4 штриха, затем 1 пропуск, затем 1 штрих, затем один пропуск, затем 5 штрихов (дальше все повторяется). Т.е. эта линия соответствует параметру F 5 F 5.


Теперь изменим предыдущую программу.




Program Graphika10;
Uses Graph;
var i,s:integer;
Procedure Graphinterface;
Var  gd, gm, error:Integer;
s:String;
Begin
gd:=detect;
s:=' ';
Initgraph(gd,gm,s);
error:=GraphResult;
if error<>GrOk then
begin
writeln(GraphErrorMsg(Error));
Halt(error)
end
end;
begin
Graphinterface;
s:=100;
for i:=0 to 4 do
begin
setlinestyle (i,$f5f5,3);
line (s,20,s,300);
s:=s+50;
end;
readln;
closegraph;
end.



В строке №21 переменная «i» в цикле будет менять значение от 0 до 4.

В строке №23 запишем процедуру SetLineStyle и параметры для нее. В качестве второго параметра укажем значение «F5F5». Перед указанием этого параметра ставится знак доллара $. В качестве 3-го параметра укажем значение 3 (т.е. жирная линия).

setlinestyle..

setlinestyle...


Предыдущая статья : Процедура ClearDevice, SetBkColor.

Оглавление : Уроки Паскаль. Графика.

Следующая статья : Процедуры Rectangle и Bar.


Комментарии  

 
+1 # nurbeksoft 16.03.2013 13:39
мне кажется что qbasic легче...
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальГрафика в ПаскальФункции GetmaxX и GetmaxY.