Перевод числа из десятичной системы счисления в шестнадцатеричную.

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 0 до 15 и преобразует его к шестнадцатеричной системе счисления. Напомню, что в шестнадцатеричной системе счисления числа в диапазоне от 0 до 9 соответствуют таким же числам в ...

Textcolor, Window, Textbackground в Pascal.

Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится ...

Тип данных Boolean. Значения True, False в Pascal.

Мы рассмотрели с Вами целый тип данных (integer), вещественный тип (real), символьный (char). В этом уроке мы рассмотрим тип данных, который имеет большое значение в программировании. Логический типBoolean. Одной из особенностей этого типа данных ...

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

Манипулирование строками STRING.

В языке Паскаль при работе с текстами чаще всего используются короткие строки типа STRING. Стандартные процедуры READLN(St), WRITE(St) и WRITELN(St) поддерживают ввод и вывод строк переменной длины ...

Структура программы в Паскаль.

В данной статье описывается структура программы в Pascal, описывается каждый раздел, который может присутствовать в программе.

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