1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Рэнэ |
10.06.2007 7:12
Сообщение
#1
|
|
Гость |
Написать программу, которая выводит на экран графики динамики изменения максимального, минимального и среднего курсов
доллара за заданное количество дней. Показать градацию осей. Исходные данные сформировать в текстовом файле. Построение графика оформить в виде процедур. Параметры процедуры: массив дат, количество дней, массивы максимальных, минимальных и средних значений курса доллара. Изображение должно занимать большую часть. Программа не должна опираться на конкретные значения экрана. Даже не знаю с чего начать, хоть подкиньте какую-нибудь похожую программу... так сказать для примера |
![]() ![]() |
| Рэнэ |
11.06.2007 3:16
Сообщение
#2
|
|
Гость |
Построение графика оформить в виде процедуры.
Параметры процедуры: - массив дат(я так понимаю, что это массив значений Х) - количество дней (количество х) - масив максимального, минимального и среднего значений курса доллара (масивы знчений Y) Как они должны быть записаны здесь? И как потом используя их построить график (Procedure Vivod)? Цитата Program Grafic; Uses Crt, Graph; Var x, y : integer; St : String[4]; A, Mx, Mx01, Mx09, Msx, My, My09, My005, Msy : Integer; F1: Text; {-------Выход из графического режима----------} PROCEDURE grafika_off; BEGIN closegraph; ReadKey; 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; Begin Assign (F1, 'c:\Vivod.txt'); Reset (F1); While Not EOF (F1) do begin Readln (F1,x, y); LineTo(round(Mx01+Msx*x),round(My09-Msy*y)); 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<=10 Do Begin Str (x, 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; readln; End; {-------Основная программа----------} BEGIN grafika_on; VivodGraph; grafika_off; END. Сообщение отредактировано: Рэнэ - 11.06.2007 13:45 |
Рэнэ График курса доллара 10.06.2007 7:12
volvo Если тебя устроит построение столбчатой диаграммы ... 10.06.2007 9:28
Рэнэ Чуток переделала свой график... опять таки за искл... 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![]() ![]() |
|
Текстовая версия | 8.12.2025 14:47 |