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

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

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

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

26.10.2011, 16:09. Просмотров 1587. Ответов 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 (C++):

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

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

Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X - C++
Три подобных темы есть, все без ответа. Условия: "Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень ...

Квадратный корень введенного числа. - C++
Здравствуйте. Мне задали задачку: Написать программу, выводящую на экран корень квадратный введенного числа, до тех пор, пока не будет...

найти квадратный корень из числа a с указанной точностью ε при помощи формулы Герона - C++
Ввести с клавиатуры вещественные положительные числа a и ε. Необходимо найти квадратный корень из числа a с указанной точностью ε при...

Вычислить квадратный корень из произвольного числа - C++
Вычислить квадратный корень из произвольного числа, используя метод Ньютона (yn=(yn-1+a/yn-1)/2, y0=1).

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
x1Mike7x
216 / 129 / 6
Регистрация: 06.11.2010
Сообщений: 234
26.10.2011, 16:22 #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  [ТС] #3
Там как то черз While надо не используя sqrt

Добавлено через 45 секунд
Но всё равно спасибо, что отзвался)
x1Mike7x
216 / 129 / 6
Регистрация: 06.11.2010
Сообщений: 234
26.10.2011, 17:06 #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  [ТС] #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 секунды
подскажите в чем ошибки пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 18:23
Привет! Вот еще темы с ответами:

Вычислить квадратный корень из заданного целого числа, используя только побитовые операции - C++
Существует простой способ вычисления квадратного корня: квадратный корень из целого числа равен количеству последовательных целых чисел...

Цикл: Для числа N вычислить значение следующего выражения: sqrt((1) + sqrt((2) + ... + sqrt(2 * N))) - C++
Как это решить? sqrt((1)+sqrt((2)+..+sqrt(2n)))

Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ - C++
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ Добавлено через...

Вычислить корень квадратный - C++
Помогите пожалуйста написать 2 программы:1 вычислить корень квадратный от (sin(x)+cos(x)); 2 Поменять местами значения переменных х и у с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.10.2011, 18:23
Ответ Создать тему
Опции темы

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