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

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

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

> График с файла, Надеюсь последний...))
yakudza_m
сообщение 23.01.2009 23:08
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Макс

Репутация: -  0  +


Привет вам, админы!!!
Ваши проги привели моих однокурсников в шок)))
А преподы, кажется, что-то задумали...(
В общем мне нужен совет по поводу графика функции...

Нужно протабуллировать функцию y=arccos(x) в области [-0.99; 0.99], результаты занести в файл, а потом из этого же файла по результатах построить график...нужно чтоб сам график рисовался точками толщиной в 3 пикселя, тёмно-серым цветом, а подписи к обозначениям длины на осях были в стиле Gothic...фух...вот это загнули...я сам чуть не лишился дара речи от такого...оси примерно такие как в файле, который добавляю...


Прикрепленные файлы
Прикрепленный файл  GRAPHIC.PAS ( 745 байт ) Кол-во скачиваний: 251
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 25.01.2009 23:30
Сообщение #2


Гость






А вот, кстати, и подтверждение, что приведенная функция - именно АркКосинус:

program argcos1;
Uses graph;

function ArcCos(x: real): real;
begin
if Abs(x) < 10E-3 then ArcCos := Pi/2
else ArcCos := ArcTan(Sqrt(1 - Sqr(x)) / x) + Pi * Byte(x < 0)
end;

type
Trecord = record
x: real;
y: real;
end;
Tfile = file of Trecord;

const
eps = 0.01;
scaleX = 250;
scaleY = 100;

var
a:Trecord;
f:Tfile;
grD :integer;
grM :integer;
errC:integer;

dbl: real;
s: string;
begin
assign(f,'file.rec'); rewrite(f);

a.x := -1 + eps;
while a.x < 1 do begin
a.y := arccos(a.x);
write(f, a);
a.x := a.x + eps;
end;
close(f);

initgraph(grd, grm, '');
errc := graphresult;
if errc = grOk then begin
setcolor(lightred);
line(20, 3 * getmaxy div 4, getmaxx - 20, 3 * getmaxy div 4);
line(getmaxx div 2, 20, getmaxx div 2, getmaxy - 20);

settextstyle(gothicfont, horizdir, 1);
settextjustify(centertext, centertext);

dbl := -1;
while dbl <= 1 do begin
str(dbl:4:2, s);
outtextxy((getmaxx div 2) + trunc(dbl * scaleX),
(3 * getmaxy div 4) + 20, s);
dbl := dbl + 0.25;
end;

reset(f);
read(f, a);
setcolor(lightgray);
setlinestyle(solidLn, 0, thickWidth);
moveto((getmaxx div 2) + trunc(scaleX * a.x),
(3 * getmaxy div 4) - trunc(scaleY * a.y));
while not eof(f) do begin
read(f, a);
lineto((getmaxx div 2) + trunc(scaleX * a.x),
(3 * getmaxy div 4) - trunc(scaleY * a.y));
end;
close(f);

readln;
closegraph;
end;
end.
(файлы EGAVGA.BGI и GOTH.CHR из папки \BGI должны быть в одной папке с программой. Можно, конечно, слинковать их с основной программой вот так , но я думаю ЭТОГО твои преподаватели, yakudza_m, тебе точно не простят)...

Добавлено через 5 мин.
Цитата
а причем оси?
А при том, что если в твоем рисунке (в первом) ось OX будет на 8 клеточек выше, то "легким движением руки график превращается... превращается график..." (С) в противоположный. Нет вообще такой кривой: Косинусоида. Есть синусоида, только иногда она сдвигается... Теперь понимаешь, о чем я?
 К началу страницы 
+ Ответить 

Сообщений в этой теме
yakudza_m   График с файла   23.01.2009 23:08
Lapp   Привет вам, админы!!!Почему только адм...   24.01.2009 1:14
yakudza_m   Почему только админам привет??.. А остальным что...   24.01.2009 15:48
amega   помню была такая ситуация и у меня дак как я из...   24.01.2009 12:54
amega   ты можеш выложить табулирование функции (часть к...   24.01.2009 16:45
yakudza_m   ты можеш выложить табулирование функции (часть ко...   24.01.2009 20:54
yakudza_m   program d; Const a:double = 1; b:double = 3; s...   24.01.2009 21:20
volvo   Вот так: Реализация ArcCos   24.01.2009 21:42
amega   береш пишеш функцию аркосинуса сибе в програму fu...   25.01.2009 13:45
yakudza_m   береш пишеш функцию аркосинуса сибе в програму f...   25.01.2009 15:33
volvo   Ошибки синтаксические исправь: Rewrite вместо rewr...   25.01.2009 16:07
amega   примерно вот так тое єт без построение графика pr...   25.01.2009 16:22
amega   volvo ты не могбы подсказать как зделать так чтоб...   25.01.2009 17:57
volvo   Есть такая функция: Trunc, принимает вещественное ...   25.01.2009 19:21
amega   volvo пожуста проверь не ошибся ли ты в функциях ...   25.01.2009 20:07
volvo   Я не имею привычки выкладывать непроверенные вещи....   25.01.2009 21:03
amega   а причем оси? во - первых график Арккосинус - с...   25.01.2009 23:06
volvo   А вот, кстати, и подтверждение, что приведенная фу...   25.01.2009 23:30
amega   болей меней...   25.01.2009 23:54
yakudza_m   ух ты! ну вы жжоте, парни! я даж прозрел о...   27.01.2009 17:34
volvo   Будет, конечно... Чего бы ей не работать? Поменяй ...   27.01.2009 17:46
yakudza_m   а как сделать в программе плавающий центр координа...   30.01.2009 23:17


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

 



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