Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
0 / 0 / 1
Регистрация: 27.12.2011
Сообщений: 24

С++ Функция приближённого вычисления квадратного корня

01.03.2012, 22:51. Показов 5376. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать функцию приближённого вычисления квадратного корня по формуле https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{n}=x/2+a/2*x, https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{1}=1, https://www.cyberforum.ru/cgi-bin/latex.cgi?x \rightarrow \sqrt{a}.
Вот попробовал написать но что-то функция не работает, подскажите в чём проблема плиз

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
 
using namespace std;
 
int funk(int b)
{
    float x;
    x=sqrt(b)/2+b/2*sqrt(b);
}
 
int main()
{
    funk(455);
    cout << x << endl;
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2012, 22:51
Ответы с готовыми решениями:

Функция приближенного вычисления квадратного корня
Помогите решить задачу: Написать функцию приближённого вычисления квадратного корня по формуле xn =xn -1/2+a/2xn -1, x1 =1, x1 --&gt;...

Функция приближённого вычисления квад- ратного корня по формуле
Здравствуйте помогите пожалуйста с заданием :&quot;Напишите функцию приближённого вычисления квад- ратного корня по формуле...

Нестандартная функция квадратного корня
Всем привет. Кто может подсказать как иначе можно найти квадрат ? #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...

13
136 / 107 / 61
Регистрация: 05.02.2012
Сообщений: 241
01.03.2012, 23:00
Функция должна возвращать значение.

Добавлено через 1 минуту
И если честно не понятно, в функции вычисления квадратного корня ты дважды используешь библиотечную функцию нахождения квадратного корня.
0
15 / 15 / 5
Регистрация: 22.12.2008
Сообщений: 69
01.03.2012, 23:00
Цитата Сообщение от Jgo Gankster Посмотреть сообщение
Написать функцию приближённого вычисления квадратного корня по формуле https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{n}=x/2+a/2*x, https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{1}=1, https://www.cyberforum.ru/cgi-bin/latex.cgi?x \rightarrow \sqrt{a}.
Вот попробовал написать но что-то функция не работает, подскажите в чём проблема плиз

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
 
using namespace std;
 
int funk(int b)
{
    float x;
    x=sqrt(b)/2+b/2*sqrt(b);
}
 
int main()
{
    funk(455);
    cout << x << endl;
    return 0;
}
Не правильная работа с переменными. Твоя функция ничего не возвращала.
Можно так написать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
 
using namespace std;
float x;
 
float funk(int b)
{
    return sqrt(b)/2+b/2*sqrt(b);
}
 
int main()
{
    x = funk(455);
    cout << x << endl;
    return 0;
}
или так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
 
using namespace std;
 
float funk(int b)
{
    float x;
    x=sqrt(b)/2+b/2*sqrt(b);
    return x;
}
 
int main()
{
    cout << funk(455) << endl;
    return 0;
}
1
0 / 0 / 1
Регистрация: 27.12.2011
Сообщений: 24
01.03.2012, 23:10  [ТС]
почему-то считает не правильно, даже если в сокращённом виде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    float x;
    int b=9;
    x=sqrt(b)/2+b/2*sqrt(b);
    cout << x << endl;
    return 0;
}
при b= 9 выдаёт x=13,5
при b=1 выдаёт х=0,5
0
15 / 15 / 5
Регистрация: 22.12.2008
Сообщений: 69
01.03.2012, 23:32
Цитата Сообщение от Jgo Gankster Посмотреть сообщение
почему-то считает не правильно, даже если в сокращённом виде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    float x;
    int b=9;
    x=sqrt(b)/2+b/2*sqrt(b);
    cout << x << endl;
    return 0;
}
при b= 9 выдаёт x=13,5
при b=1 выдаёт х=0,5
Попробуй b тоже float cделать.
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,306
01.03.2012, 23:55
Господа, а Вас не смущает то, что формула итерационная?
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
double mySqr (double x)
{
   double y1 , y2;
 
   y2 = x;
   do
   {
      y1 = y2;
      y2 = (y1 + x/y1)/2;
   }while (fabs(y1 - y2) > 0.001);
   return y2;
}
int main(int argc, char* argv[])
{
 
   cout << mySqr(12.) << ' ' << sqrt(12.) << endl;
 
   system("pause");
   return 0;
}
1
0 / 0 / 1
Регистрация: 27.12.2011
Сообщений: 24
02.03.2012, 00:01  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
Господа, а Вас не смущает то, что формула итерационная?
Что значит итерационная формула?
0
Программист
33 / 33 / 8
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
02.03.2012, 00:09
Это значит что вычисления происходят до тех пор, пока результат не будет иметь погрешность меньше эпсилон(в примере который вам привели это 0.001).
1
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,306
02.03.2012, 00:14
Это значит, что формула выполняется за несколько итераций (шагов). Сначала вычисляется формула с начальным аргументом, который задается функцией, получаем первое значение функции. Дальше вычисляем формулу с полученным значение в качестве аргумента, получаем второе значение, и т.д. И так повторяем до тех пор, пока разность значений между соседними итерациями не станет меньше некоторого порога.
1
Заблокирован
02.03.2012, 00:29
Итерация в широком смысле слова — термин, обозначающий повторение какого-либо действия, явления или процесса.

итерационная функция в противоположность рекурсивной выполняет прямой или поступательный порядок действий.
0
0 / 0 / 1
Регистрация: 27.12.2011
Сообщений: 24
02.03.2012, 00:41  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
double mySqr (double x)
{
   double y1 , y2;
 
   y2 = x;
   do
   {
      y1 = y2;
      y2 = (y1 + x/y1)/2;
   }while (fabs(y1 - y2) > 0.001);
   return y2;
}
int main(int argc, char* argv[])
{
 
   cout << mySqr(12.) << ' ' << sqrt(12.) << endl;
 
   system("pause");
   return 0;
}
А зачем в 18 строчке вот эти обозначения (int argc, char* argv[])? Ведь они нигде не используются
0
Программист
33 / 33 / 8
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
02.03.2012, 00:51
Можешь их и убрать, они нужны для запуска программы с некими начальными параметрами(это делается через командную строку)

int argc - число переданных программе аргументов(вычисляется автоматически);
char* argv[] - массив строк, которые являются аргументами, иными словами - параметрами, с которыми запускается программа(эти параметры задаются в командной строке так(пример): "D:\my_programm.exe Hello World").
1
0 / 0 / 1
Регистрация: 27.12.2011
Сообщений: 24
02.03.2012, 02:15  [ТС]
Что такое fabs в 15 строке?

Добавлено через 5 минут
Кстати с командой system("pause") в строке 23 прога не запускается, выдаёт ошибку:


без этой строки прога нормально запускается и работает
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,306
02.03.2012, 03:21
fabs возвращает модуль вещественного числа.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2012, 03:21
Помогаю со студенческими работами здесь

Прототип и тело функции. Алгоритм вычисления квадратного корня
В книге написано: &quot;Если в программе используется функция sqrt, ну это я к примеру, значит для нее должен быть предоставлен прототип. Это...

Программа для вычисления квадратного корня. Ошибка компиляции в аргументе функции
Всем привет, программа для вычисления квадратного корня. Не компилируется из за вызова функции вычисления кв корня. Ругается на аргументы. ...

В чем причина глюка вычисления квадратного корня вычитанием нечётных чисел?
Нашёл метод вычисления квадратного корня вычитанием нечётных чисел. Написал программу для вычисления целой части квадратного корня из...

Придумать алгоритм вычисления квадратного корня, не использую функции возведения в степень
Необходимо придумать алгоритм, вычисления квадратного корня, не использую функции возведения в степень и соответственно саму функцию...

Функция для приближённого вычисления Log x по основанию 2 с помощью многочлена наилучшего приближения
Привет всем, помогите написать программы),или если возможно дайте пожалуйста ссылки на похожие задачи!!!!!! 1)Написать и...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru