<...> Надо построить график функции котангенса. График должен отображать результаты расчетов, которые записаны на диске. Масштаб разметки осей кординат должен отвечать реальным результатам расчетов. Основную часть экрана должны занимать те четверти, в которых находится график.
volvo
8.10.2005 15:19
-jesika-, во-первых, тебе уже давали ссылку не программу, которая чертит практически любой график (достаточно просто поменять функцию на свою): Построение любого графика
Во-вторых, для того, чтобы построить график y = F(x), нужно КАК МИНИМУМ знать, в каких пределах изменяется x, чего из задания не видно...
Далее, каким именно образом результаты
Цитата
записаны на диске
? Это, кстати, тоже надо знать, чтобы отобразить их на графике. Здесь телепатов нету, давайте задание полностью.
-jesika-
9.10.2005 21:06
вот дополнение к заданиеюможет ето поможет понять его Диапазон значений [Pi/50,49*Pi/50] График должен быть начерчен линиэй вида _ . . _ . . _ . . _
Алгоритм построения функции: 1. протабулировать функц. На заданном интервале с целью определения макс и мин значения; 2. построить график функции за предварительно подсчитанными значений координат точек функции. 3. сделать разметку осей через некоторые промежутки табулирования Х и У.
volvo
10.10.2005 16:38
Ну, вот тебе набросок, попробуй разобраться, как он работает... Разметку осей сделай сама.
uses Graph;
const Every = 2;
var Table: array[1 .. 2, 1 .. 49 * Every] of real;
function max(a, b: real): real; begin max := a; if a < b then max := b; end;
function Ctg(x: real): real; begin if Abs(x) < 0.0001 then Ctg := 1000 else Ctg := Cos(x) / Sin(x); end;
_max := -maxint; _min := maxint; for i := 1 to 49 * Every do begin Table[1, i] := (i - 24 * Every) * Pi / (50 * Every); Table[2, i] := Ctg(i * Pi / (50 * Every));
if _max < Table[2, i] then _max := Table[2, i]; if _min > Table[2, i] then _min := Table[2, i]; writeln(f, 'x = ', Table[1, i]:10:4, ' ctg(x) = ', Table[2, i]:10:4) end; close(f);
grDriver := Detect; InitGraph(grDriver, grMode,''); ErrCode := GraphResult; if ErrCode <> grOk then begin Writeln('Graphics error:', GraphErrorMsg(ErrCode)); ReadLn; Halt(101) end;
setcolor(red); line(0, getmaxy div 2, getmaxx, getmaxy div 2); line(getmaxx div 2, 0, getmaxx div 2, getmaxy);
for i := 1 to 49 * Every do begin putpixel((getmaxx div 2) + trunc(Table[1, i] * scale_x), (getmaxy div 2) - trunc(Table[2, i] * scale_y), white); end; readln;
CloseGraph; end.
Если хочешь увеличить плотность точек на графике, увеличивай константу Every (можно попробовать увеличить до 5 .. 10). В файле "COTAN.TXT" содержатся результаты вычисления котангенса...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.