Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
КонченыйЛузер Гость
|
Добавлено: Ср Сен 24 2003 17:35 Заголовок сообщения: Помогите в написании программы. |
|
|
Пишу программу которая должна высчитывать арксинус икса при помощи ряда тейлора, внизу будет что-то типа. Мне нужно каким то образом сделать: 1) Увеличить кол-во итераций и что бы при этом выдавало правильное значение(т.е. небыло переполнений и т.п.) 2) Защиту от дурака сделать без использования функции гетс, т.е. допустим ТОЛЬКО ввод цифр, если вводится буква то опять просит ввести... сделать это можно если будет допустим ввод только цифр и разделительной запятой, но как это сделать я не знаю. 3) Нужно сделать что бы программа рисовала график функции на весь экран с масштабируемыми осями координат, при этом оси должны быть нарисованы, имели еденичный отрезок и нуль. --- Помогите кто чем сможет пожалуйста. /* Programma dly vichislenia arcsin(x) pri pomoschi riada Teylora */ /* Podkluchenie standartnih bibliotek */ #include #include #include void main() { /* Obiavlenie peremennih, masisov i ih tipov */ float a,x,x1; int n,z,z1,res,i,w; char szBuf[256]; clrscr(); printf("Eta programma vischitivaet arcsin(x) pri pomoschi riada Teylora !"); getch(); clrscr(); /* Vvod argumenta, kol-va iteracii i tochnost' */ do { printf("Vvedite argument v predelah ot -1-go do 1-go: "); gets(szBuf); res=sscanf(szBuf,"%f",&x); } while (res!=1||x>1||x |
|
Вернуться к началу |
|
|
КонченыйЛузер Гость
|
Добавлено: Ср Сен 24 2003 19:48 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
Первое и второе сделано, помогите ПЛЗ с последним пунктом (п.3) |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Чт Сен 25 2003 15:01 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
Эта задача не на столько интересна чтобы кто-то сделал её за тебя. Если никогда не работал с графикой в борланде, подскажу. Тебе понадобятся ф-и initgraph, line, setcolor -если хочешь, рисовать лучше не через for(...)putpixel, а через putpixel 1 раз а следующие for(...) lineto, outtextxy, clearviewport, closegraph. Не забудь включить графическую библиотеку в линкере, файл egavga.bgi лучше бросить в рабочий каталог. Немного фантазии и всё получится. |
|
Вернуться к началу |
|
|
КонченыйЛузер Гость
|
Добавлено: Чт Сен 25 2003 15:41 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
Я тут надумал всё сделать просто пут пикселем |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Чт Сен 25 2003 16:12 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
конечно, это первое что приходит в голову, но как человек имеющий в этом деле опыт говорю, что проще делать с пом. lineto. Если рисовать слишком крутой график пикселами, то нужно делать очень мелкий шаг, чтобы получить непрерывную линию. Линиями можно рисовать гораздо более крупным шагом, т.е. быстрее и с гарантией непрерывности линии. Путпикселом ставишь только первую точку.
Удачных экспериментов |
|
Вернуться к началу |
|
|
КонченыйЛузер Гость
|
Добавлено: Чт Сен 25 2003 19:10 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
Так график арксинуса не прямой, он изогнут чутка. |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пт Сен 26 2003 08:27 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
а ты его порисуй сперва точками, потом сам поймёшь что к чему (ты о кусочно-линейной апроксимации слыхал ?) |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пт Сен 26 2003 14:31 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
крутой график - в смысле с большим модулем производной |
|
Вернуться к началу |
|
|
КонченыйЛузер Гость
|
Добавлено: Сб Сен 27 2003 11:05 Заголовок сообщения: Re: Помогите в написании программы. |
|
|
Нет не слыхал, поведай. |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пн Сен 29 2003 10:38 Заголовок сообщения: Это же интуитивно понятно ! |
|
|
Пусть функция f(x) хадана на некотором участке x1 |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пн Сен 29 2003 11:41 Заголовок сообщения: @#$%^**() сайт!. |
|
|
пусть ф-я f(x) задана в нескольких точках xn, n=0..N как fn=f(xn), тогда в промежутках между xn и xn+1 значение f(x) можно приближённо определить с пом. линейной апроксимации: f(x) ~ fn + (fn+1 - fn)/(xn+1 - xn)*(x - xn). Делая такую апроксимацию на каждом кусочке xn..xn+1 и получаем кусочно-линейную апроксимацию! Вообще-то лучше использовать апроксимацию сплайнами, она даёт не только функцию непрерывную, но и её первую производную (на счёт второй не уверен). В графических библиотеках бывают функции для сплайн-апроксимации. Но в борланде - нет. Поэтому лучше использовать line, или lineto чтобы не запоминать координаты предыдущей точки. |
|
Вернуться к началу |
|
|
|