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

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

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

> График курса доллара, нужна помощь
Рэнэ
сообщение 10.06.2007 7:12
Сообщение #1


Гость






Написать программу, которая выводит на экран графики динамики изменения максимального, минимального и среднего курсов
доллара за заданное количество дней. Показать градацию осей. Исходные данные сформировать в текстовом файле.
Построение графика оформить в виде процедур. Параметры процедуры: массив дат, количество дней, массивы максимальных,
минимальных и средних значений курса доллара.
Изображение должно занимать большую часть. Программа не должна опираться на конкретные значения экрана. mega_chok.gif wink.gif
Даже не знаю с чего начать, хоть подкиньте какую-нибудь похожую программу... так сказать для примера unsure.gif
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Рэнэ
сообщение 13.06.2007 5:28
Сообщение #2


Гость






С процедурами я вроде бы разобралась, но вот сам вывод графика что-то не получается... точки он выводит верно, но вот линии от одной точки до другой выводяться неправильно, но что хуже он рисует от последней выведенной точки линию вниз к оси (но ее быть не должно)... время поджимает, а никак понять не могу в чем тут дело? give_rose.gif

Цитата
Program Grafic;
Uses Crt, Graph;
Const n=20;
Type
MasData = Array[1..n] of Integer;
MasMax = Array[1..35] of Real;
MasMin = Array[1..35] of Real;
MasSred = Array[1..35] of Real;
Var
x: integer;
b: MasData;
d: MasData;
e: MasData;
c : MasMax;
k:MasMin;
l: MasSred;
y:real;
St : String[4];
A,i, Mx, Mx01, Mx09, Msx, My, My09, My005, Msy : Integer;
F1: Text;
{-------Выход из графического режима----------}
PROCEDURE grafika_off;
BEGIN
closegraph;
END;

{-------Переход в графический режим----------}
PROCEDURE grafika_on;
var
Ga, Gm, Error : Integer;
BEGIN
Ga := Detect;
Gm := Detect;
InitGraph (Ga, Gm, 'c:\bp\bgi');
Error := GraphResult;
If Error <> Grok Then
Begin
Writeln('Ошибка!Графический драйвер не найден',#10#13,GraphErrorMSG (Error));
Halt;
End;
End;
{-------Вывод данных из файла----------}
Procedure Vivod(var b: MasData;c: MasMax;d: MasData;k:MasMin;e: MasData;l: MasSred);
Begin
Assign (F1, 'c:\Vivod.txt');
Reset (F1);
While Not EOF (F1) do
begin
For i:=1 to n do
Read(F1,b[i],c[i]);
LineTo(round(Mx01+Msx*b[i]), round(My09-Msy*c[i]),100);
Read(F1,d[i],k[i]);
LineTo(round(Mx01+Msx*d[i]), round(My09-Msy*k[i]),10);
Read(F1,e[i],l[i]);
LineTo(round(Mx01+Msx*e[i]), round(My09-Msy*l[i]),10);
end;
Close (F1);
End;
{-------Определение используемых значений----------}
procedure Opredelenie;
Begin
Mx := GetMaxX;
Mx01 := Round (0.1* Mx);
Mx09 := Round (0.9* Mx);
My := GetMaxY;
My09 := Round (0.9*My);
My005 := Round (0.05* My);
SetColor (12);
end;
{-------Вывод осей координат----------}
procedure osikoord;
begin
Line (20, My09, Mx-10, My09);
Line (Mx01, My005, Mx01, My-9);

{Risovanie strelok}
Line (Mx-20, My09-3, Mx-10, My09);
Line (Mx-20, My09+3, Mx-10, My09);
Line (Mx01, My005, Mx01-3, My005+10);
Line (Mx01, My005, Mx01+3, My005+10);

{Nadpisi po osam X u Y}
SetTextStyle (0, 0, 2);
SetColor(14);
OutTextXY (Mx01-40, My005, ' Y ');
OutTextXY (Mx-40, My09-25, ' X ');
SetTextStyle (0, 0, 1);
SetColor(12);
End;
{-------Разметка осей----------}
procedure Razmetka;
begin
{Разметка оси Y}
Msy := Round (My09 / 40);
y := 1;
While y<=35 Do
Begin
Str (Y, St);
A := Round (My09 - Msy * y);
Line (Mx01+2, A, Mx01-2, A);
OutTextXY (Mx01-40, A-2, St);
y := y+1;
End;

{Разметка оси x}
Msx := Round (Mx09 / 20);
x := 1;
While x<=n Do
Begin
Str (x+1, St);
A := Round (Mx01 + Msx * x);
Line (A, My09+3, A, My09-3 );
OutTextXY (A, My09+5, St);
x := x + 1;
end;
SetColor(2);
end;
{-------Вывод графика----------}
Procedure VivodGraph;
Begin
Opredelenie;
osikoord;
Razmetka;
Vivod(b,c,d,k,e,l);
readln;
End;
{-------Основная программа----------}
BEGIN
grafika_on;
VivodGraph;
grafika_off;
END.


Сообщение отредактировано: Рэнэ - 13.06.2007 12:41
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Рэнэ   График курса доллара   10.06.2007 7:12
volvo   Если тебя устроит построение столбчатой диаграммы ...   10.06.2007 9:28
Рэнэ   Построение графика оформить в виде процедуры. Пара...   11.06.2007 3:16
Рэнэ   Чуток переделала свой график... опять таки за искл...   11.06.2007 13:50
Рэнэ   Параметры процедуры: :norespect: - массив дат - к...   12.06.2007 15:46
volvo   - делать нельзя... Массивы читаются поэлементно......   12.06.2007 15:58
Рэнэ   С процедурами я вроде бы разобралась, но вот сам в...   13.06.2007 5:28
volvo   Файл данных присоедини (именно присоедини, а не ск...   13.06.2007 14:26
Рэнэ   Нужна помощь... До сдачи один день, помогите додел...   13.06.2007 14:27
Рэнэ   Выдает ошибку: Нужен идентефикатор поля, в чем про...   14.06.2007 8:27
Ozzя   p[i].x:=trunc(b[i]); p[i].y:=trunc(c[i]); Ибо ти...   14.06.2007 8:41
Рэнэ   выдает: Недопустимая операция с плавающей запятой....   14.06.2007 9:07
volvo   А тебе говорили уже, что это - "испорченные т...   14.06.2007 9:20
Рэнэ   Извините, пожалуйста :unsure:   14.06.2007 9:28
Ozzя   round выдает значение типа real, и ты пытаешься пр...   14.06.2007 10:06
мисс_граффити   :blink: да? а в хелпе пишут: function Round(...   14.06.2007 10:55
Ozzя   А , с int'ом перепутал Бывает Седина в бороду...   14.06.2007 11:08
volvo   Оззя, правда? С каких пор? :wink: Рэнэ, проблем...   14.06.2007 11:12
Ozzя   Дык, как модератора в разделе поменяли :dry: З...   14.06.2007 11:18
volvo   Потому, что сначала делалось так: PointType = reco...   14.06.2007 11:22
мисс_граффити   вот так вроде работает: Procedure Vivod(var b: Mas...   14.06.2007 11:32


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

 



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