Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Alex_jef
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 4
#1

Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt - C++

26.10.2011, 16:09. Просмотров 1568. Ответов 4
Метки нет (Все метки)

Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt (один из самых простых методов решения этой задачи - деление пополам. Начинаем с отрезка [1;X]. Берем его середину, возводим в квадрат и сравниваем с X. Если результат оказался больше, отбрасываем правую половину отрезка, иначе - левую и повторяем все с начала. Действуем так, пока длина отрезка не станет меньше e)
Подскажите пожалуйста код, алгоритм составил с кодом не получается, а время жмет. Код на С++
Миниатюры
Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 16:09     Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt
Посмотрите здесь:

Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt. C++
C++ Вычислить квадратный корень из заданного целого числа, используя только побитовые операции
Квадратный корень введенного числа. C++
C++ как вычислить корень квадратный
C++ Вычислить корень квадратный
найти квадратный корень из числа a с указанной точностью ε при помощи формулы Герона C++
C++ Вычислить с заданной точностью квадратный корень введенного числа X
C++ Квадратный корень числа
Вставить после числа, являющегося полным квадратом, квадратный корень этого числа C++
Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X C++
C++ Вычислить квадратный корень из произвольного числа
C++ Вычислить квадратный корень заданных чисел

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
x1Mike7x
215 / 128 / 6
Регистрация: 06.11.2010
Сообщений: 234
26.10.2011, 16:22     Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt #2
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
....................
double my_sqrt( double X, double L, double R, double E )
{
    double C = ( R + L ) / 2;
    if ( fabs(C * C - X) < E )
        return C;
    else if ( C * C > X )
        return my_sqrt( X, L, C, E );
    else
        return my_sqrt( X, C, R, E );
}
....................
my_sqrt( X, 0, X, E ); // Вызов в теле функции main
Alex_jef
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 4
26.10.2011, 16:28  [ТС]     Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt #3
Там как то черз While надо не используя sqrt

Добавлено через 45 секунд
Но всё равно спасибо, что отзвался)
x1Mike7x
215 / 128 / 6
Регистрация: 06.11.2010
Сообщений: 234
26.10.2011, 17:06     Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt #4
тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
....................
double my_sqrt( double X, double E )
{
    double L = 0.0, R = X, C = ( R + L ) / 2.0;
    while ( fabs(C * C - X) >= E )
        if ( C * C > X )
            C = ( L + C ) / 2;
        else
            C = ( R + C ) / 2;;
    return C;
}
....................
my_sqrt( X, E ); // Вызов в теле функции main
Alex_jef
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 4
26.10.2011, 18:23  [ТС]     Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt #5
не работает код(

Добавлено через 29 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define e 2.71
 
int main(){
    float left,right, center,x;
    left=0.0;
    right=x;
    center=(right+left)/2;
    printf("Enter x");
    scanf("%f,%f,%f,%f",left,right,center,x);
    while(fabs(center*center-x)>=e);
    
    if
        ((center*center)>x);
       center=(left+center)/2;
       printf("%f",center);
    else
        (center=(right+center)/2);
    printf("%f",center);
    
getch();
    return 0;
    
}
 Комментарий модератора 
Используйте теги форматирования кода!


Добавлено через 44 секунды
подскажите в чем ошибки пожалуйста
Yandex
Объявления
26.10.2011, 18:23     Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru