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

Найти сумму ряда - C++

Восстановить пароль Регистрация
 
Larc
Сообщений: n/a
20.01.2012, 18:49     Найти сумму ряда #1
Помогите народ по информатике дали задачи 2 на дом я так то не программист по этому плохо понимаю как делать, все мои попытки что либо сделать самому заканчивались безуспешно...
1)Даны действительное число a и натуральное число n
Вычислить: S=1/a+1/a^2+1/a^4+...+1/a^2n-2
2)Задана последовательность из N вещественных чисел, определить сколько среди них чисел меньших K, равных K, больших K.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 18:49     Найти сумму ряда
Посмотрите здесь:

C++ Найти сумму ряда
C++ Найти сумму ряда
Найти сумму ряда C++
Найти сумму ряда C++
Найти сумму ряда C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 19:19     Найти сумму ряда #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Larc Посмотреть сообщение
)Задана последовательность из N вещественных чисел, определить сколько среди них чисел меньших K, равных K, больших K.
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
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iterator>
 
int main()
{
    std::srand(std::time(nullptr));
    int n = 10;
    //std::cin >> n;
    std::vector<double> v;
    v.resize(n);
    std::generate(v.begin(), v.end(), [] { return std::rand() % 21; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<float>(std::cout, " "));
    std::cout << std::endl;
    int k = 5;
    //std::cin >> k;
    std::cout << "less " << std::count_if(v.begin(), v.end(), [k](float num) { return num < k; }) << std::endl;
    std::cout << "equal " << std::count(v.begin(), v.end(), k) << std::endl;
    std::cout << "greater " << std::count_if(v.begin(), v.end(), [k](float num) { return num > k; }) << std::endl;
    return 0;
}
http://liveworkspace.org/code/ae6f07...8c092005bac0bd
TamTam
18 / 18 / 1
Регистрация: 28.12.2011
Сообщений: 176
20.01.2012, 19:38     Найти сумму ряда #3
ну во-первых попытки в студию. во вторых укажи, какой нужен цикл.
Ну и вот тебе алгоритм 1ой задачи:
инициализируй эс, а, эн
задай а (или попроси пользователя его ввести)

напиши эс = 1/a
эн=2
к=эн
цикл
эс = эс+1/a^к
к++
условие выхода:к=2n-2 (меняется в зависимости от цикла)
вывести эс.

Добавлено через 17 минут
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
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
  
int main()
{
    int  S, a, n, k, d;
 
cout << "Vvedi a ";
cin >> a;
 
S=1/a; 
n = 2;
k=n;
d=2n-2;
while(k<=d) 
{
S=S+1/a^к;
k++;
}
 
cout << " " << S << endl;
 
getch();
 
return 0;
 
}
HungryInsect
2 / 2 / 1
Регистрация: 16.01.2012
Сообщений: 6
20.01.2012, 21:19     Найти сумму ряда #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Неправильно.
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
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdlib.h>
#include <clocale>
#include <math.h>
 
using namespace std;
 
main()
{
      setlocale(LC_ALL,"Russian");
      
      int b = 1, n;
      float a, S = 0;
      
      cout << "Ââåäèòå  Г*(äåéñòâèòåëüГ*îå ÷èñëî) = ";
      cin >> a;
      
      do{
      cout << "Ââåäèòå n(Г*Г*ГІГіГ°Г*ëüГ*îå ÷èñëî) = ";
      cin >> n;
      if(n < 0) cout << "ГЋГёГЁГЎГЄГ*! " << n << " Г*ГҐ Г*Г*ГІГіГ°Г*ëüГ*îå ÷èñëî, ïîïðîáóéòå ГҐГ№ГҐ Г°Г*Г§" << endl;
      }
      while(n < 0);
      
      while(b <= 2*n - 2){
              S += (1/pow(a,b));
              b++;
              }
              
      cout << "ÑóììГ* S Г°Г*ГўГ*Г* = " << S << endl;
 
      
      system("PAUSE");      
}
TamTam
18 / 18 / 1
Регистрация: 28.12.2011
Сообщений: 176
21.01.2012, 16:04     Найти сумму ряда #5
хм, и где не правильно? кроме 2n вместо 2*n, конечно..
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
21.01.2012, 16:21     Найти сумму ряда #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Можно еще так считать во второй задаче:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
 
int main()
{
    int arr[] = { 1, 2, 3, -4, 5, 6, 12, 7, 5, 8 }, k = 5;
    std::vector < int > vec( arr, arr + sizeof( arr ) / sizeof( *arr ) );
 
    std::cout << " > " << k << " : " << std::count_if( vec.begin(), vec.end(), std::bind2nd( std::greater < int >(), k ) ) << std::endl;
    std::cout << " < " << k << " : " <<std::count_if( vec.begin(), vec.end(), std::bind2nd( std::less < int >(), k ) ) << std::endl; 
    std::cout << " = " << k << " : " <<std::count( vec.begin(), vec.end(), k ) << std::endl; 
    
    return 0;
}
TamTam
18 / 18 / 1
Регистрация: 28.12.2011
Сообщений: 176
21.01.2012, 18:07     Найти сумму ряда #7
и правда, тут же n = 2;
k=n;
d=2n-2;
while(k<=d)

надо и эн увеличивать.. Прошу прощения у автора . Стыд мне и позор

Но как вариант вводим с консоли эн максимальное, и потом делаем
k=2.
И все путем
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 20:22     Найти сумму ряда
Еще ссылки по теме:

Найти сумму ряда C++
Найти сумму ряда C++
C++ Найти сумму ряда

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

Или воспользуйтесь поиском по форуму:
HungryInsect
2 / 2 / 1
Регистрация: 16.01.2012
Сообщений: 6
21.01.2012, 20:22     Найти сумму ряда #8
a действительное число, а значит это тип float, а значит и S должен быть типа float. Плюс, у вас ошибка в синтаксисе, где вы возводите в степень.

В вашем варианте можно сделать так:
C++
1
2
3
4
5
while(k<=d) 
{
S += 1/(a*a);
k++;
}
Yandex
Объявления
21.01.2012, 20:22     Найти сумму ряда
Ответ Создать тему
Опции темы

Текущее время: 04:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru