Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2013, 15:40   #1
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию Найти точку пересечения.

Здравствуйте,уважаемые.уравнение.со бственно,в комментариях кода все описано.
проблема в переменной f,не знаю,как ее декларировать.поможете?

Код:
#include <stdio.h>
#include <math.h>
 
/* ishhem tochku peresechenija funkcii f = f(x) s nulem na intervale( a, b) tak,chtoby otklonenie ot tochnogo reshenija ne bylo bol'she dopustimogo znachenija */
double popolam_interval(double a, double b,  double dopustimoe)
 
{
    while (0.5*(b - a) > dopustimoe)
    {
        double centr = 0.5*(a + b);
        if (f(a)*f(centr) > 0.0)
            a = centr;
        else
            b = centr;
    }
 
    return 0.5*(a + b);
}
 
/* delenie popolam intervala ishhet reshenie uravnenija  f(x) = 0 */
double f(double x)
{
    return sin(x) - 0.5;
}
 
int main(void)
{
    double dopustimoe;
    int status;
 
    printf("programma dlya reshenija uravnenija sin(x) = 0.5 na intervale (0, 1). Resultat ne budet otlichat'sya ot tochnogo reshenija na bolshe,chem ukazano dopustimoe znachenie.\n");
    printf("Vvedite dopustimoe znachenie(maloe polozhitelnoe chislo, napr. 1e-8): ");
    status = scanf("%f", &dopustimoe);
    if (status != 1 || dopustimoe <= 0.0)
    {
        printf("nepravilnoe znachenie dopustimogo\n");
        return 1;
    }
 
    printf("resultat raven: x = %.8f\n", popolam_interval(0.0, 1.0, dopustimoe));
 
    return 0;
}
Помогите ,пожалуйста.
ezhidudek вне форума Ответить с цитированием
Старый 07.03.2013, 15:58   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Некоторые люди практически не в состоянии читать транслит.
Определение f перенесите выше определения popolam_interval (т.к. в теле popolam_interval вызывается f, а в этот момент f означает неизвестно что). Или отдельно напишите в начале заголовок, объявление f:
Код:
double f(double x);
(Это означает: "компилятор, имей в виду: увидишь дальше f - это значит вот такая функция, компилируй спокойно, тело будет позже")
Abstraction вне форума Ответить с цитированием
Старый 07.03.2013, 19:04   #3
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
(Это означает: "компилятор, имей в виду: увидишь дальше f - это значит вот такая функция, компилируй спокойно, тело будет позже")
помогло,но препод ответил,что есть ошибка при загрузке числа из консоли,мол,додумайтесь сами..в чем проблема?
ezhidudek вне форума Ответить с цитированием
Старый 07.03.2013, 19:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Спроси у него где. Я лично проблемного места в получении данных не вижу.
P.S. Единственное к чему бы я придрялся кроме транслита так это к описанию реализации функции f() после функции popolam_interval(), но если компилятор не против такого дизордера то не страшно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.03.2013, 20:14   #5
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Stilet,спрашивал,ответ получил тот,о котором писал.ошибка при чтении числа из консоли...сказал,что нужно додуматься.
ezhidudek вне форума Ответить с цитированием
Старый 07.03.2013, 20:21   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
scanf("%lf", &dopustimoe);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.03.2013, 20:28   #7
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

BDA,бинго,спасибо!
ezhidudek вне форума Ответить с цитированием
Старый 07.03.2013, 20:32   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Хм... BDA прав. Действительно для scanf() double и float отличны в плане задачи параметров.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти точки пересечения граффиков. Para La Musica Microsoft Office Excel 3 03.01.2011 00:28
отметить точку пересечения двух линий диаграммы vAdiM_Kubski Microsoft Office Excel 0 05.05.2010 22:02
Найти точку пересечения биссектрис error404 Фриланс 10 20.02.2010 21:02
C. Найти пересечения линий. Sekmegalife Помощь студентам 1 19.10.2009 08:34