Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогите в написании программы.

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
КонченыйЛузер
Гость





СообщениеДобавлено: Ср Сен 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 чтобы не запоминать координаты предыдущей точки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...