Помощь - Поиск - Пользователи - Календарь
Полная версия: Как распечатать результат?
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
-Александр-
Здравствуйте! Если не сложно, ответьте, пожалуйста, как я могу распечатать результат выполнения графической программы? Файл результатов пробовал создавать, различные комбинации клавиш, даже фоткать экран монитора пробовал, но ничего не работает...                                                                                 

А вот и сама прога:
PROGRAM GRAPHEXP;
USES GRAPH, CRT;
VAR GA, GM, ERROR: INTEGER;
X, Y: REAL;
A, MX, MX03, MX09, MSX,
MY, MY09, MY005, MSY : INTEGER;
ST : STRING[4];
FUNCTION WRF(X: REAL): REAL;
VAR S, A : REAL;
I : INTEGER;
BEGIN A := X; S := 0; I := 1;
WHILE ABS(A) >= 1E-5 DO BEGIN
S := S + A; I := I + 1;
A := A * X * X * SQR(2*I-3)/((2*I-1)* (2*I-2));
END;
WRF := S;
END;
BEGIN
GA := DETECT; { - тип драйвера и адаптера }
GM := DETECT; { - режим работы адаптера }
{ Инициализация графического режима: }
INITGRAPH( GA, GM, 'C:\PASCAL7\BGI');
ERROR := GRAPHRESULT;
{ Анализ успешности установки графического режима: }
IF ERROR <> GROK THEN
BEGIN
WRITELN('ОШИБКА ! ГРАФИЧЕСКИЙ ДРАЙВЕР НЕ НАЙДЕН', #10#13,
GRAPHERRORMSG(ERROR) ); HALT;
END; { Определение используемых значений: }
MX := GetMaxX; MX03 := Round (0.3 * MX);
MX09 := Round (0.9 * MX);
MY := GetMaxY; MY09 := Round (0.9 * MY);
MY005 := Round (0.05 * MY);
SetColor(12); { - розовый }
{------------ Рисование осей ---------------------}
Line( 5, MY09, MX-10, MY09); { -- X -- }
Line(MX03, MY005 , MX03, MY-9); { -- Y -- }
{------------ Рисование стрелок ------------------}
Line(5, MY09, 15, MY09-3 ); { /-- X -- }
Line(5, MY09, 15, MY09+3); { \-- X -- }
Line(MX-20, MY09-3, MX-10, MY09); { -- X --\ }
Line(MX-20, MY09+3, MX-10, MY09 ); { -- X --/ }
Line(MX03, MY005, MX03 - 3, MY005 + 10); { / -- Y --}
Line(MX03, MY005, MX03 + 3, MY005 + 10); { \ -- Y --}
{----------- Надписи по осям X и Y ----------------}
SetTextStyle(0, 0, 2); SetColor(14); { - желтый }
OutTextXY (MX03 - 40, MY005, ' Y ');
OutTextXY (MX - 40, MY09 - 25, ' X ');
SetTextStyle(0, 0, 1); SetColor(12); { - розовый }
{ --------------------- Разметка оси Y ------------------- }
MSY := ROUND(MY09 / 5); { - масштаб по оси Y }
Y := -0.5; { - начальное значение Y }
While Y <= 4.501 do
Begin
STR(Y: 4: 1, ST); { - строка для надписи по Y }
A := ROUND (MY09 - MSY * Y) ; { - ордината в пикселях }
Line ( MX03 + 3, A, MX03 - 3, A ); { - черточки по оси Y }
OUTTEXTXY ( MX03 - 40, A - 3 , ST);
Y := Y + 0.5; { - изменение значения Y }
End;
{ ------------ Разметка оси X ------------------ }
MSX := ROUND( MX09 / 2 ); { - масштаб по оси X }
X := -0.6; { - начальное значение X }
While X <= 1.401 do
Begin
STR(X : 4 : 1, ST); { - строка для надписи по X }
A := Round( MX03 + MSX * X ); { - абсцисса в пикселях }
Line( A, MY09 + 3, A, MY09 - 3); { - черточки по оси X }
OUTTEXTXY(A, MY09 + 15, ST);
X := X + 0.2; { - изменение значения X }
End;
SETCOLOR(2); { - зеленый }

{ Начало рисования кривой }
X := -0.9; Y := WRF (X); { - начальные значения }
{ Переход в начальную точку кривой: }
MOVETO (Round (MX03 + MSX * X ),
Round (MY09 - MSY * Y ));
SETLINESTYLE(0,0,3); { - толщина линий }
While X <= 0.9 do
Begin
X := X + 0.1; { - изменение значения X }
IF ABS(X) < 1E-5 THEN X := 0; { - уточнение значения X }
Y := WRF(X); { - текущее значение функции ARCSIN }
LINETO (Round (MX03 + MSX * X ), { - рисование отрезка линии }
Round (MY09 - MSY * Y ));
End;
SETCOLOR(15); { - белый }
SETTEXTSTYLE(1, 0, 4);
OUTTEXTXY(ROUND(0.2 * MX), ROUND(0.4 * MY),
'GRAPHIC IN TURBO PASCAL');
SETTEXTSTYLE(1, 0, 2);
OUTTEXTXY(ROUND(0.5 * MX), ROUND(0.5 * MY), 'Y = ARCSIN(X)');
SETCOLOR(9); SETTEXTSTYLE(0, 0, 2);
OUTTEXTXY(ROUND(0.5 * MX), ROUND(0.85 * MY), 'GRAFIKA');
{ READLN; }WHILE NOT KeyPressed DO;
CloseGraph;
End.
Ozzя
1. Запускаете программу. Нажимаете alt+enter, переводя ее в оконный режим. Далее alt+printscreen, забрасывая ее в буфер обмена (copy). В paint'е делаете paste. и печатаете.
2. Записываете результат в графический файл любого формата (pcx, bmp).
Примеры есть здесь на сайте. И печатаете тем же paINTЭОМ
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.