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

Функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread1034963.html
Сформировать файл из чисел последовательности (–1)^(k)*0.3^(k)/(k + 1). Найти сумму наибольшего и наименьшего из значений компонентов файла
C++ Вывести статистику из массива структур Вот в чём нужно помочь : Создать программу учета сотрудников. О сотруднике необходимо хранить следующие данные: - ФИО - должность - дата рождения. Данные о сотрудниках следует хранить в массиве структур http://www.cyberforum.ru/cpp-beginners/thread1034962.html
C++ Построить массив только из значений, входящих в исходный более одного раза
Задан произвольный массив. Исходная информация записана в файле. Построить массив только из значений, входящих в него более одного раза.
Удалить все символы "*", а символы, не являющиеся "*", удвоить C++
Составить программу, которая вводит строку символов, выполняет ее обработку и затем выво- дит результаты. Удалить все символы "*", а символы, не являющиеся "*", удвоить
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread1034951.html
помогите пожалуйста) в с++ совсем не бум-бум) Одномерный массив B и преобразовать его следующим образом: 1) увеличить каждый элемент массива на максимальный элемент 2) найти индекс и значение последнего минимального элемента массива 3) отсортировать элементы массива по убыванию заранее спасибо всем!!)))
C++ Обработка массивов с использованием подпрограмм Составить программу для решения задачи. Каждый элемент матрицы A(3,3) разделить на произведение ее не- четных отрицательных элементов подробнее

Показать сообщение отдельно
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
11.12.2013, 14:06  [ТС]     Функции
Цитата Сообщение от kazak Посмотреть сообщение
Для начала неплохо было бы, чтобы функция что-то возвращала после выполнения, на то она и функция.))

А вот так вот нельзя, у Вас dihot объявлена как функция, да еще принимающая аж 4 аргумента. Они все должны быть перечислены в круглых скобках.
Я наверно был не прав в прошлом посту.
Должно быть по другому.
если опираться на это:
Кликните здесь для просмотра всего текста


1.3. Метод половинного деления

Метод половинного деления применяется для уточнения корня на выделенном участке , где этот корень является единст- венным . Это один из простых методов нахождения корней не- линейных уравнений . Метод заключается в следующем . Отрезок [ a, b ], на котором существует точка пересечения графика функции f (x) с осью Ох , делят пополам ( рис 1.5.). Полученное значение х1= ( a + b)/2
Рис . 1.5. Геометрическая иллюстрация метода половинного деления принимают в качестве начального приближения , и вычисляют значение функции f (x1), при этом , если f(x 1) ≠ 0, то выбирают тот из подынтервалов [ a, x1 ] или [ x1, b], на концах которого функ- ция f (x) имеет противоположные знаки . На рис . 1.5. этим отрез- ком будет [ a,x 1]. Полученный отрезок переименовывают в [ a, b] и снова делят пополам , затем проводят тот же анализ , что и при первоначаль- ном делении . Деления сужающего отрезка , проверку и выбор повторяют до тех пор , пока длина отрезка , на концах которого функция имеет противоположные знаки , не станет меньше за- данной точности вычислений ε . Проверку условия противопо- ложности знаков функций выполняют посредством неравенства f (a) ⋅ f (x) ≤ 0, а условия остановки вычислений – путем провер- ки неравенства b – а≤ ε .

Рис .1.6. Блок -схема алгоритма метода половинного деления


Функции

Можно также проводить оценку значений функции f (x) после каждой i -й итерации , пока одно из них по модулю не станет меньше заданного числа ε , т.е.  f (xi)  < ε . Блок -схема алгоритма метода половинного деления изобра- жена на рис . 1.6. Здесь сужение отрезка проводится путем за- мены границы a или b на текущее приближенное значение кор- ня х. Метод половинного деления прост и очень надежен . Он схо- дится для любых непрерывных функций . Недостатком метода половинного деления является медлен- ная сходимость вычислительного процесса . Следовательно , метод половинного деления целесообразно применять , когда требуется высокая надежность счета , а ско- рость сходимости несущественна .



Но если я делаю как по теории, то программа "стоит":

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double dihot (double r, double a, double b, double eps) // функция для нахождения корня методом дихотомии
    {
        
        do
            { 
                r=(a+b)/2; //Вычислить значение с (точка разбиения отрезка
                if (f(r)*f(a)>0) //все таки здесь наверно больше нуля.
                a=r; // тогда границу b необходимо перенести в точку с
                else
                b=r; // тогда границу b необходимо перенести в точку с, в противном случае корень находится на отрезке [с, b] и надо переносить точку a). Вычислить значение с для нового отрезка.
            }
        while (abs(b - a) <eps);        
        return r;
    }
А вот так вроде считает:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double dihot (double r, double a, double b, double eps) // функция для нахождения корня методом дихотомии
    {
        
        do
            { 
                r=(a+b)/2; //Вычислить значение с (точка разбиения отрезка
                if (f(r)*f(a)>0) //все таки здесь наверно больше нуля.
                a=r; // тогда границу b необходимо перенести в точку с
                else
                b=r; // тогда границу b необходимо перенести в точку с, в противном случае корень находится на отрезке [с, b] и надо переносить точку a). Вычислить значение с для нового отрезка.
            }
        while (abs(b - a) > eps);       // т.е. если(abs(b - a) < eps) прога висит
        return r;
    }
 
Текущее время: 05:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru