Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Васус
1 / 1 / 0
Регистрация: 09.10.2011
Сообщений: 82
1

проверка кода на правильность

17.10.2011, 20:28. Просмотров 2194. Ответов 7
Метки нет (Все метки)

Используя оператор цикла while с условием и постусловием, решить следующие задачу: найти сумму ряда с точностью е = 10-4, общий член которого
An=1/((3n-2)(3n+1)). Проверьте пожалуйста на правильность код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream.h>
#include<conio.h>
#include<math.h>
 int main()
{   clrscr();
 
    double e=0.0001;
    double sum, an;
    int n=1;
    do
{
 an=1;
    for (int i=1; i<=n; i++)
      { an*=(1/(((3*i-2)*(3*i-1))));
       }
       sum+=an;
       ++n;
  }
       while (an>=e);
       cout<<"sum="<<sum<<endl;
       getch();
       return 0;
              }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2011, 20:28
Ответы с готовыми решениями:

Проверка кода на правильность
В общем, выполняю работу, перед проверкой хочется спросить у вас всё ли...

Проверка на правильность кода
// C++ 6.6 I.12.cpp : Defines the entry point for the console application. //...

Правильность кода
Решал вот эту функцию, которая прикреплена ниже, дошел до такого кода:...

Проверка e-mail на правильность.
как проверить e-Mail на правельность ? Если он неправельный то вывести...

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

7
Сыроежка
Заблокирован
17.10.2011, 20:32 2
Сразу же могу сказать, что данное выражение будет неточным, так как у вас выполняется целочисленная арифметика, когда при делении одного целого числа на другое дробная часть отбрасывается.

C++
1
 an*=(1/(((3*i-2)*(3*i-1))));
Поэтому вам его нужно по крайней мере переписать как

C++
1
 an*=(1.0/(((3*i-2)*(3*i-1))));
0
Васус
1 / 1 / 0
Регистрация: 09.10.2011
Сообщений: 82
17.10.2011, 20:42  [ТС] 3
Спасибо. Исправил. Программа выполняет то, ради чего она была написана?
0
Сыроежка
Заблокирован
17.10.2011, 20:51 4
Цитата Сообщение от Васус Посмотреть сообщение
Спасибо. Исправил. Программа выполняет то, ради чего она была написана?
Я не вижу инициализации переменной sum. Наверное она должна быть инициализирована 0?
0
Васус
1 / 1 / 0
Регистрация: 09.10.2011
Сообщений: 82
17.10.2011, 20:55  [ТС] 5
А зачем?
0
Сыроежка
Заблокирован
17.10.2011, 21:06 6
Цитата Сообщение от Васус Посмотреть сообщение
А зачем?
У вас есть предложение в программе

C++
1
sum+=an;
Но так как sum не была инициализирована, то в памяти, которая ей выделена, может храниться всякий "мусор", который остался от предыдущего выполнения какой-нибудь другой программы.
0
Васус
1 / 1 / 0
Регистрация: 09.10.2011
Сообщений: 82
17.10.2011, 21:16  [ТС] 7
Инициализировал. Изменился ответ.
0
Сыроежка
Заблокирован
17.10.2011, 21:19 8
Цитата Сообщение от Васус Посмотреть сообщение
Инициализировал. Изменился ответ.
Я вот только этого не понимаю. Если вы ищите сумму ряда, то почему вы вычисляете произведение?

C++
1
2
3
4
an=1;
for (int i=1; i<=n; i++)
{ an*=(1/(((3*i-2)*(3*i-1))));
}
0
17.10.2011, 21:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 21:19

Правильность и рациональность кода
Всем привет! Вот уже прошло 24 часа с момента начала моего обучения С++ :). До...

Проверьте правильность кода
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; int main() {...

Проверьте правильность кода
Здравствуйте. Задали рассчитать площадь треугольника по заданным параметрам:...


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

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

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