GotoXY в Pascal.

Процедура GotoXY используется в Pascal для перевода курсора в нужную позицию на экране. Для этой процедуры указываются координаты. После указания процедуры GotoXY в коде программы сообщение будет выводиться на экран в тех координатах, которые мы ...

Div, Mod, сложение, вычитание в Pascal.

Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».

Умножение, деление, сложение, вычитание вещественных чисел в Pascal.

С вещественными числами можно производить операции умножения, сложения, вычитания, а также операцию деления. Причем операция деления отличается от операции Div. Деление вещественных чисел - это обычное математическое деление, в результате которого ...

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

Тип данных Boolean.

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

Примеры использования различных операторов цикла.

Примеры использования различных операторов цикла.

В предыдущем примере мы начали строить систему координат с помощью процедуры SetViewPort. Дополним предыдущий пример тем, что построим на осях координат единицы измерения и пронумеруем их.

 Построение системы координат с помощью процедуры SetViewPort.




Program Graphika27;
Uses Graph;
var  i,ch:integer;
chi:string;
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;
setviewport(getmaxx div 2, getmaxy div 2, getmaxx, getmaxy,clipoff);
setcolor(5);
setlinestyle(0,0,3);
line(-300,0,300,0);
line(0,-300,0,300);
line(300,0,270,-10);
line(300,0,270,10);
line(0,-300,-10,-270);
line(0,-300,10,-270);
i:=-250;
repeat
begin
line(i,10,i,-10);
i:=i+50;
end;
until i=300;
i:=-250;
repeat
begin
line(-10,i,10,i);
i:=i+50;
end;
until i=300;
ch:=-5;
i:=-250;
settextstyle(7,0,2);
setcolor(yellow);
repeat
begin
str(ch,chi);
outtextxy(i,20,chi);
ch:=ch+1;
i:=i+50;
end;
until ch=6;
ch:=5;
i:=-250;
repeat
begin
str(ch,chi);
outtextxy(20,i,chi);
ch:=ch-1;
i:=i+50;
if ch=0 then
begin
ch:=ch-1;
i:=i+50;
end;
end;
until ch=-6;
readln;
closegraph
end.



В строке №3 записываем несколько переменных. Одна из этих переменных «i» будет использоваться для цикла.

В строке №30 этой переменной мы присваиваем первоначальное значение равное – 250.

В строке №31 начинается цикл Repeat . . Until. В этом цикле будут выполняться 2 операции (строка №33 – рисование линии и строка №34 – операция присваивания), поэтому обе операции необходимо заключить в операторные скобки begin . . end (строка №32 - №35). Напомню, что операторные скобки необходимо использовать каждый раз, когда в цикле выполняется более одной операции.

Строка №33. Рисуем линию. В качестве координаты X указываем значение переменой «i». Первоначально, переменная «i» равна -250. Таким образом, строится линия с координатами        (-250,10,-250,-10).

Строка №34. Присваиваем переменной «i» новое значение, которое на 50 пикселей больше предыдущего. После этого будет построена линия с координатами (-200,10,-200,-10). Цикл будет продолжаться до тех пор, пока переменной «i» не будет присвоено значение в 300 пикселей (строка №36). Таким образом, будет построено несколько линий, которые будут пересекать ось X с интервалом в 50 пикселей.

В строке №37 - №43 также строим линии, которые теперь будут пересекать ось Y.
На рис. снизу представлен предварительный результат действия циклов.

Postroenie sistemih koordinat s pomothjyu procedurih SetViewPort

Теперь для каждой из этих линий поставим в соответствие число от  -5 до 5.

В строке №3 указываем переменную для хранения этих чисел «ch»

В строке №44 присваиваем переменной «ch» первоначальное значение, равное  -5.

В строке №45 переменной «i», которая используется для определения шага цикла, присваиваем значение   -250.

Строка №46. Устанавливаем шрифт, направление и величину символов выводимого текста. Здесь необходимо учесть, что если вы собираетесь выводить текст за пределами окна, установленного процедурой SetViewPort, то следует выбирать шрифт, отличный от шрифта DefoltFont (т.е. того, который стоит по умолчанию). Если вы будете использовать этот шрифт, а текст не поместится в окно, то он просто не выведется на экран.

В строке №47 устанавливаем цвет для выводимых символов.

Строка №48. Начало цикла. В цикле будет выполнено 4 операции (строка №50 - №54).

Строка №50. Переводим числовое значение переменной «ch» в строковое значение и записываем это строковое значение в переменную «chi» (не забудьте объявить эту переменную в разделе Var – строка №4).  Первоначальное значение переменной «ch» равно  числу  -5. С помощью процедуры Str это число будет преобразовано в символ   -5.

Строка №51. Выводим на экран текст. В качестве координаты X указываем значение переменной «i», а в качестве текста указываем значение переменной «chi». Первоначальное значение переменной «i» равно  -250, а первоначальное значение переменной «chi» является символ   -5. Таким образом, с помощью процедуры OutTextXY, на экран выведется символ  -5 с координатами (-250,20).

В строке №52 увеличиваем переменную «ch» на единицу, а встроке №53 увеличиваем переменную «i» на 50 пикселей. После этого, на экран выведется уже символ  -4 в координатах  (-200,20). Цикл будет повторяться до тех пор, пока переменной «ch» не будет присвоено значение, равное 6.   Таким образом, на экран выведется 11 чисел от -5 до 5 (включая 0) с интервалом в 50 пикселей. Эти числа будут выводиться под осью X.
На рис. снизу представлено действие этого цикла.

Postroenie sistemih koordinat s pomothjyu procedurih SetViewPort.

Способом, описанным выше, рисуем цифры для оси Y (строка №56 - №70). Здесь нам нужно исключить из цикла цифру 0, так как она уже нарисована. Для этого в строках №64 - №68 записываем условие. Если переменной «ch» будет присвоено значение, равное 0, то оно должно быть уменьшено на единицу, а координата вывода цифры должна быть увеличена на 50 пикселей.

Postroenie sistemih koordinat s pomothjyu procedurih SetViewPort..Postroenie sistemih koordinat s pomothjyu procedurih SetViewPort...Postroenie sistemih koordinat s pomothjyu procedurih SetViewPort.....

Postroenie sistemih koordinat s pomothjyu procedurih SetViewPort....


Предыдущая статья : Построение системы координат.

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

Следующая статья : Алфавит языка Паскаль.


Комментарии  

 
0 # Захар 04.03.2013 18:25
:zzz а как построить график функции ax+by+c=0
Ответить
 
 
0 # Костя 06.03.2013 13:47
Захар - PutRixel'ом (в скобках пишешь любую функцию, но не забудь округлить)
Ответить
 

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

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

   ГлавнаяПаскальГрафика в ПаскальПроцедура MoveRel и OutText.