0 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 9

Не могу найти ошибку в цикле [очень просто для знающего человека]

01.10.2020, 13:47. Показов 355. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Мне рассчитать сумму по формуле с заданной точностью (eps).

Я написал код:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(){
    double result,x,eps,n,fak,step,k; 
        
        
        printf("Введите точность: \n");
        scanf("%le",&eps);
        printf("Введите число x от -1 до 1: \n");
        scanf("%lf",&x);
        printf("Вы ввели числа:\n");
        printf("eps =  %lf\n", eps);
        printf("x =  %lf\n", x);
        n=1;
        k=0;
        fak=1;
        result=0;
            if ((x>-1) & (x<1))
            {
                do
                {
                    step = pow((x/2),k+n);
                        if (k>0)
                        {
                        fak=fak*k;
                        }
                    result=result+(((pow((-1),k))*(step))/fak);
                    k++;
                    n++;
                    printf("Промежуточный результат %lf\n", result);
                }
                while (result < eps);
                printf("Результат %lf\n", result);
            }
            else 
            {
                printf ("Вы ввели число x не из диапазона. Запустите программу снова.");
            }
    
    
}
Но когда я ввожу eps и x, цикл выполняется единожды и выводится результат, который меньше точности.
Где ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2020, 13:47
Ответы с готовыми решениями:

Меню. Наверное несложно для знающего человека
Есть меню (top). Как сделать, чтобы текущий пункт меню подсвечивался определенным светом?

Есть работа для человека хорошо знающего C++
Доброго дня всем пользователям форума. Есть работа для человека хорошо знающего с++, нужна оболочка для экзе файла, которая будет...

Книга по Visual C++ для человека нормально знающего Borland Builder C++ 5.0
Какую посоветуете книгу купить по Visual C++ для человека нормально знающего Borland Builder C++ 5.0 сечас решил научится писать на...

12
 Аватар для FFPowerMan
2145 / 1225 / 507
Регистрация: 11.10.2018
Сообщений: 6,186
01.10.2020, 13:56
Цитата Сообщение от P1lan Посмотреть сообщение
Мне рассчитать сумму по формуле с заданной точностью (eps).
- не совсем понял, там же n указано. Так до n или до eps?
0
0 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 9
01.10.2020, 13:59  [ТС]
Оно считает до eps и автоматически подставляет нужное n
0
Модератор
 Аватар для long399
2874 / 1820 / 932
Регистрация: 16.10.2013
Сообщений: 5,218
Записей в блоге: 15
01.10.2020, 14:00
так лучше?

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(){
    double result,x,eps,n,fak,step,k,prev; 
        
        
        printf("Введите точность: \n");
        scanf("%le",&eps);
        printf("Введите число x от -1 до 1: \n");
        scanf("%lf",&x);
        printf("Вы ввели числа:\n");
        printf("eps =  %lf\n", eps);
        printf("x =  %lf\n", x);
        n=1;
        k=0;
        fak=1;
        result=0;
            if ((x>-1) & (x<1))
            {
                do
                {
                    prev = result;
                    step = pow((x/2),k+n);
                        if (k>0)
                        {
                        fak=fak*k;
                        }
                    result=result+(((pow((-1),k))*(step))/fak);
                    k++;
                    n++;
                    printf("Промежуточный результат %lf\n", result);
                }
                while (fabs(prev-result) > eps);
                printf("Результат %lf\n", result);
            }
            else 
            {
                printf ("Вы ввели число x не из диапазона. Запустите программу снова.");
            }
    
    
}
0
 Аватар для FFPowerMan
2145 / 1225 / 507
Регистрация: 11.10.2018
Сообщений: 6,186
01.10.2020, 14:01
Цитата Сообщение от P1lan Посмотреть сообщение
C++
1
n=1;
- ты же сам написал n = 1 и бурагозишь еще что-то.
0
0 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 9
01.10.2020, 14:06  [ТС]
Да, но в цикле n++;
0
 Аватар для FFPowerMan
2145 / 1225 / 507
Регистрация: 11.10.2018
Сообщений: 6,186
01.10.2020, 14:08
n не должно прибавляться, счиатай либо до eps, либо n членов(определенное кол-во членов).
Где глаза потерял? Смотри свою формулу.
0
0 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 9
01.10.2020, 14:13  [ТС]
Цитата Сообщение от long399 Посмотреть сообщение
так лучше?

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(){
    double result,x,eps,n,fak,step,k,prev; 
        
        
        printf("Введите точность: \n");
        scanf("%le",&eps);
        printf("Введите число x от -1 до 1: \n");
        scanf("%lf",&x);
        printf("Вы ввели числа:\n");
        printf("eps =  %lf\n", eps);
        printf("x =  %lf\n", x);
        n=1;
        k=0;
        fak=1;
        result=0;
            if ((x>-1) & (x<1))
            {
                do
                {
                    prev = result;
                    step = pow((x/2),k+n);
                        if (k>0)
                        {
                        fak=fak*k;
                        }
                    result=result+(((pow((-1),k))*(step))/fak);
                    k++;
                    n++;
                    printf("Промежуточный результат %lf\n", result);
                }
                while (fabs(prev-result) > eps);
                printf("Результат %lf\n", result);
            }
            else 
            {
                printf ("Вы ввели число x не из диапазона. Запустите программу снова.");
            }
    
    
}
long399, лучше, но всё равно выдает что то не то..

[QUOTE=FFPowerMan;14878968]
Добавлено через 2 минуты
n есть в самой формуле)
Если Сумма меньше eps
То весь ряд считается сначала при n=n+1;
И когда result будет больше eps то цикл прекратиться
0
 Аватар для FFPowerMan
2145 / 1225 / 507
Регистрация: 11.10.2018
Сообщений: 6,186
01.10.2020, 14:18
Еще раз прочитай 7 сообщение.
0
0 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 9
01.10.2020, 14:21  [ТС]
Цитата Сообщение от FFPowerMan Посмотреть сообщение
Еще раз прочитай 7 сообщение.
Да, мне нужно считать до eps
Но задать n я тоже должен.. Оно же есть в формуле.. Немного не понимаю..
0
 Аватар для FFPowerMan
2145 / 1225 / 507
Регистрация: 11.10.2018
Сообщений: 6,186
01.10.2020, 14:44
Ты ввел n - ты по определению должен посчитать n членов. Тогда вариант с eps отлетает - это 2-ой вариант расчета.
Иди к преподавателю, если сам не допетриваешь.
0
0 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 9
01.10.2020, 14:52  [ТС]
Цитата Сообщение от FFPowerMan Посмотреть сообщение
Ты ввел n - ты по определению должен посчитать n членов. Тогда вариант с eps отлетает - это 2-ой вариант расчета.
Иди к преподавателю, если сам не допетриваешь.
Если я не ввожу n, то откуда программа его узнает? Сама подставит?
Ведь он есть в самой формуле

UPD: все, разобрался)
0
 Аватар для FFPowerMan
2145 / 1225 / 507
Регистрация: 11.10.2018
Сообщений: 6,186
01.10.2020, 14:54
Так я тебе говорю - сходи к преподавателю. Спроси как считать: n членов или до члена, который меньше eps? 2 этих способа не совместимы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.10.2020, 14:54
Помогаю со студенческими работами здесь

Посоветуйте книгу по Visual C++ для человека нормально знающего Borland Builder C++ 5.0
Какую посоветуете книгу купить по Visual C++ для человека нормально знающего Borland Builder C++ 5.0 сечас решил научится писать на...

не могу найти ошибку в цикле(
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls,...

Ребят, не могу найти ошибку в цикле, тыкните пальцем
Вот мой скромный код. Вычислить с точностью до е=0.0001. Выдаёт OverFlow Public Function factorial(n) Dim i factorial =...

Ищем человека знающего С#
Для создания эмулятора сервера ммо игры Подробности в скайп: danila24ru

Нужен совет от знающего человека
Здравствуйте, нужна помощь в сборке. Дело в том, что мой ЦП слишком сильно нагружается, при запуске всех нужных мне программ, выдает 100%...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru