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

Вычислить значения элементов последовательности. - C++

Восстановить пароль Регистрация
 
sniperni
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 46
23.12.2011, 13:56     Вычислить значения элементов последовательности. #1
У меня вот такая замудрёная задача!!!!
7. Вычислить значения элементов последовательности
z/3, (z-1)/4, (z-2)/5, (z-3)/6, … . Отпечатать каждое третье значение.
Вычисления закончить, когда очередной элемент будет отличаться от предыдущего на величину, не превышающую заданную величину d.
Сначала написал по своему:
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
#include <iostream >
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i, j, k = 1;
    double *rez, raz = 0, d, z;
 
    rez = new double[k];
 
    cout << "Введите значение переменной z:";
    cin >> z;
 
    cout << "Задайте значение величины d:";
    cin >> d;
 
    rez[k - 1] = 0;
 
    for (i = 3; raz <= d; i++) {
        j = i - 3;
        rez[k] = (z - j) / i;
        raz = rez[k] - rez[k - 1];
 
        if (raz < 0)
            raz = -raz;
 
        if (k == 1 || k % 3 == 0) {
            cout << (double)rez[k] << "\t" << k <<
                "-ый результат!\n";
            k++;
        } else
            k++;
    }
 
    delete[]rez;
    getch();
}
выдавала только одно значение или вообще ничего!!!! Препод подсказал, что надо вроде как использовать 3 переменные для результатов и выводить только третью.... я написал что-то вроде этого..... ничего не получается!!!!!! Может поможете, подскажите что не так??? Буду премного благодарен!!!! ПЛИЗ!!!

Вот текст проги:
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
45
46
47
48
49
50
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int i, j, t;
    double rez1, rez2, rez3, raz = 0, d, z;
 
    cout << "Введите значение переменной z:";
    cin >> z;
    cout << "Задайте значение величины d:";
    cin >> d;
 
    raz = d + 1;
 
    for (i = 3; raz > d; i++) {
        j = i - 3;
        for (t = 0; t < 3; t++) {
            if (t = 0) {
                rez1 = (z - j) / i;
                raz = 0 - rez1;
                if (raz < 0)
                    raz = -raz;
                break;
            } else if (t = 1) {
                rez2 = (z - j) / i;
                raz = rez2 - rez1;
                if (raz < 0)
                    raz = -raz;
                break;
            } else {
                rez3 = (z - j) / i;
                raz = rez3 - rez2;
                if (raz < 0)
                    raz = -raz;
                cout << (double)rez3 << "\t" <<
                    "-ый результат!\n";
                break;
            }
        }
    }
 
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 13:56     Вычислить значения элементов последовательности.
Посмотрите здесь:

Вычислить произведение отрицательных элементов и произведение положительных элементов последовательности C++
C++ Вычислить значения элементов последовательности
C++ C++ Вычислить число различных элементов последовательности( предположить, что последовательность неубывающая)
C++ Дано одномерный массив В, состоящий из 12 элементов. Вычислить произведение элементов массива, не равны нулю, значения которых наход. в пределах А и С
Вычислить сумму последовательности из N элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
23.12.2011, 14:15     Вычислить значения элементов последовательности. #2
Цитата Сообщение от sniperni Посмотреть сообщение
Вычислить значения элементов последовательности
z/3, (z-1)/4, (z-2)/5, (z-3)/6, … . Отпечатать каждое третье значение.
Вычисления закончить, когда очередной элемент будет отличаться от предыдущего на величину, не превышающую заданную величину d.
- это называется вычислить сумму ряда с точностью d
Вот Вам сходное задание Написать программу для нахождения значения функции с помощью ряда Тейлора
подправьте под ваши нужды
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.12.2011, 14:29     Вычислить значения элементов последовательности. #3
Ща проверю код....
Очень интересно, у тебя k = 1, ты заводишь массив на k элементов rez = new double[k]; А далее в программе ты увеличиваешь k yf 1. Т.е. потом обращаешься к элементу rez[1] потом rez[2], а у тебя массив всего лишь на 1!!!! элемент, ты не можешь записывать в массив на 1!!! элемент второй третий четвертый и т.д.

Добавлено через 6 минут
Либо заводи массив, размер которого будет с избытком, но это плохо. Либо вообще откажись от массива и каждый элемент последовательности сразу выводи на экран.
sniperni
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 46
23.12.2011, 16:24  [ТС]     Вычислить значения элементов последовательности. #4
Про массив ищ одного элемента я заметил..... только вот задача и состоит в том,чтобы выводить каждый третий результат!!!
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.12.2011, 16:47     Вычислить значения элементов последовательности. #5
Цитата Сообщение от sniperni Посмотреть сообщение
Вычисления закончить, когда очередной элемент будет отличаться от предыдущего на величину, не превышающую заданную величину d.
Отличаться от предыдущего выведенного элемента, или предыдущего элемента последовательности?

Добавлено через 15 минут
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
#include <iostream>
#include <stdlib.h>
 
double abs( double x )
{
   return (x < 0 ? -x: x);
}
 
void main( void )
{
  int z;
  double d;
  cout << "Insert z: ";
  cin >> z;
  cout << "Insert d: ";
  cin >> d;
  // Предыдущий и третий элементы
  double prev = (z-1)/4, cur = (z - 2)/5;
  int i = 1;
  cout << "Result:";
  do
  {
    prev = (z - i) / (3 + i); // Предыдущий
    i++;
    cur = (z - i) / (3 + i) ; // Текущий
    i += 2;
 
    cout << " " << cur;
  }
  while (abs(cur - prev) > d)
  cout << "\n";
  system("pause");
}
Т.е. есть у нас:
a1 a2 a3 a4 a5 a6 a7 a8
Я значло счиатю a2, затем a3, вывожу a3, затем считается a5, затем a6, выводится a6 и т.д.
Yandex
Объявления
23.12.2011, 16:47     Вычислить значения элементов последовательности.
Ответ Создать тему
Опции темы

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