IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Построение линейной диаграммы (данные из файла), Как изминить процедуру построения линии
Vini
сообщение 4.12.2005 12:43
Сообщение #1


Гость






Доброе время суток.
Помогите люди добрые
Составить (очень желательно изминить имеющуюся) программу, которая прочитает данные из файла и интерпретирует их в виде линейной диаграммы.
Нужно как-то изминить процедуру построения линии , чтоб координата конца 1 линии была координатой начала 2 линии, и т.д. (5 значений в файле, 4 линии)
Ниже имеется измученная мной прога,


Program lineynay;
Uses Crt,Graph;
Const x=50; y=450;
{
х и у - горизонтальная и вертикальная
графические координаты левого нижнего угла диаграммы
}
var
x1 ,x2, grdr, grmd, st,i:integer;
f:text;
s1,s2,s3,s4,s5:integer;

Procedure Lin(c,k:integer; s:string; var xl,x2:integer);

{
данная процедура для каждой категории строит линию
в диаграмме и добавляет соответствующую запись в легенду;
с - цвет текущей линии,
k - число, относящееся к текущей линии,
s - переменная, содержащая текст записи, которая заносится в легенду;
x1 - горизонтальная координата правой границы предыдущей линии,
x2 - верхняя граница текущей записи в легенде
}
begin
SetColor( c ); {цвет линии}

Line(x1+30,y-k*20,x2+50,y-1); {линия 1=20 пикселям}

x1:=x1+50; {смещение начала следующей линии в диаграммы}
SetColor(15); {цвет легенды}
OuttextXY(x2,460,s); {надпись легенды}
x2:=x2+50; {смещение след надписи легеды}
end;

begin
ClrScr; {чистим экран}
assign(f,'GRAFIK.TXT'); {связывает f с файлом 'GRAFIK.TXT'}
reset(f); {открывает для чтения файл f}
while not eof(f) do {делать пока не конец файла}
Begin readln(f,s1,s2,s3,s4,s5);end;
{считывает из f во вспомогательные переменные}
close(f);
grdr:=detect; {автоопределение графического адаптера}
InitGraph(grdr, grmd,'');{иницыализация графики}
x1:=x-30; {координаты первого столбца по х}
x2:=55; {координаты первой легенды по у}
Line(x,y,x+325,y) ;{горизонтальная линия}
Line(x,100,x,y); {вертикальная линия}
OuttextXY(x-20,y,'0');
Line(x-3,y-100,x+3,y-100);
OuttextXY(x-20,y-100,'5');
Line(x-3,y-200,x+3,y-200);
OuttextXY(x-20,y-200,'10');
Line(x-3,y-300,x+3,y-300);
OuttextXY(x-20,y-300,'15');

{построение графика по данным из файла}
Lin(yellow, s1, 'A1', x1, x2);
Lin(magenta, s2, 'A2', x1, x2);
Lin(green, s3, 'A3', x1, x2);
Lin(lightred, s4, 'A4', x1, x2);
Lin(6, s5, 'A5', x1, x2);

SetTextStyle(defaultfont, horizdir, 2);
SetColor(cyan);
OuttextXY(100,30 , 'Деловая графика');
Readln;
Closegraph
End.


Сообщение отредактировано: volvo - 6.11.2006 17:49
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"