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

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

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

> график функции в турбо паскале
-jesika-
сообщение 8.10.2005 15:04
Сообщение #1


Гость






<...>
Надо построить график функции котангенса. График должен отображать результаты расчетов, которые записаны на диске. Масштаб разметки осей кординат должен отвечать реальным результатам расчетов. Основную часть экрана должны занимать те четверти, в которых находится график.

Сообщение отредактировано: volvo - 8.10.2005 15:21
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
volvo
сообщение 8.10.2005 15:19
Сообщение #2


Гость






-jesika-, во-первых, тебе уже давали ссылку не программу, которая чертит практически любой график (достаточно просто поменять функцию на свою):
Построение любого графика

Во-вторых, для того, чтобы построить график y = F(x), нужно КАК МИНИМУМ знать, в каких пределах изменяется x, чего из задания не видно...

Далее, каким именно образом результаты
Цитата
записаны на диске
? Это, кстати, тоже надо знать, чтобы отобразить их на графике. Здесь телепатов нету, давайте задание полностью.
 К началу страницы 
+ Ответить 
-jesika-
сообщение 9.10.2005 21:06
Сообщение #3


Гость






вот дополнение к заданиеюможет ето поможет понять его
Диапазон значений [Pi/50,49*Pi/50]
График должен быть начерчен линиэй вида _ . . _ . . _ . . _


Алгоритм построения функции:
1. протабулировать функц. На заданном интервале с целью определения макс и мин значения;
2. построить график функции за предварительно подсчитанными значений координат точек функции.
3. сделать разметку осей через некоторые промежутки табулирования Х и У.
 К началу страницы 
+ Ответить 
volvo
сообщение 10.10.2005 16:38
Сообщение #4


Гость






Ну, вот тебе набросок, попробуй разобраться, как он работает... Разметку осей сделай сама.
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;

var
grDriver, grMode, ErrCode: Integer;
i: integer;
x, _max, _min: real;
scale_x, scale_y: real;

f: text;

begin
assign(f, 'cotan.txt');
rewrite(f);

_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);

scale_y := (getmaxy / 2) / max(abs(_min), abs(_max));
scale_x := getmaxx / (3 * 49 * Every * Pi / (50 * Every));

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" содержатся результаты вычисления котангенса...
 К началу страницы 
+ Ответить 

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

 



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