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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kapitan-kuljok
0 / 0 / 0
Регистрация: 01.02.2009
Сообщений: 44
#1

Нужна помощь с программой - C++

05.02.2012, 15:59. Просмотров 344. Ответов 8
Метки нет (Все метки)

Добрый день!! Помогите пожалуйста с программой, задача состоит в следующем:

Все задания выполняются с использованием классов.
Используя динамические массивы, выполнить задания приведенные ниже.
Из последовательности 2*n элементов получить число
min{ a(1)+a(n+1), a(2)+a(n+2), … , a(n)+a(2n) }

Подскажите пожалуйста, как это должно выглядеть!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6245 / 5848 / 1891
Регистрация: 18.12.2011
Сообщений: 14,981
Завершенные тесты: 1
05.02.2012, 17:06     Нужна помощь с программой #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class posledov
{
int n;
double *a;
public:
posledov(int nn){n=nn;a=new double[n*2];for(int i=0;i<2*n;i++)a[i]=rand();}
~posledov(){delete[] a;}
double GetMin()
{
    double Min=a[0]+a[n];
    for(int i=1;i<n;i++)
         if(a[i]+a[i+n]<Min)Min=a[i]+a[i+n];
     return Min;
}
};
kapitan-kuljok
0 / 0 / 0
Регистрация: 01.02.2009
Сообщений: 44
05.02.2012, 17:12  [ТС]     Нужна помощь с программой #3
Неужели никто не знает, очень нужно!!

Добавлено через 6 минут
Спасибо, но у меня есть вопросы:
для чего нужен вот этот указатель
C++
1
double *a;
и что это за переменная
C++
1
int nn
Сtrl
139 / 129 / 3
Регистрация: 19.07.2011
Сообщений: 184
05.02.2012, 17:31     Нужна помощь с программой #4
Можно еще вот так:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
 
class ArrayMan
{
private:
    int* pData;
    int N;
public:
    void Create(int N)
    {
        pData = new int[this->N = N];
    }
    void Fill(std::istream &stream)
    {
        for (int i = 0; i < N; ++i)
            stream >> pData[i];
    }
    void Calc(void)
    {
        const int n = N/2;
        int* pDataNew = new int[n];     
        for (int i = 0; i < n; ++i)
            pDataNew[i] = pData[i] + pData[n + i];
 
        delete pData;
        pData = pDataNew;
        N = n;
    }
    int Min(void)
    {
        int minIndex = 0;
        for (int i = 1; i < N; ++i)
            if (pData[i] < pData[minIndex])
                minIndex = i;
        return pData[minIndex];
    }
    void Destroy(void)
    {
        delete pData;
        N = 0;
    }
public:
    ArrayMan(int N)
    {
        Create(N);
    }
    ~ArrayMan()
    {
        Destroy();
    }
};
 
int main()
{
    std::cout << "Enter N: ";
    int N;
    std::cin >> N;
    ArrayMan arrMan(N*2);
    std::cout << "Enter 2N integer numbers: ";
    arrMan.Fill(std::cin);  
    std::cin.get();
    arrMan.Calc();
    std::cout << "Result: " << arrMan.Min() << std::endl;
    std::cin.get();
}
kapitan-kuljok
0 / 0 / 0
Регистрация: 01.02.2009
Сообщений: 44
05.02.2012, 17:44  [ТС]     Нужна помощь с программой #5
а можно закоментить, если несложно конечно..
программа не верно работает
zss
Модератор
Эксперт С++
6245 / 5848 / 1891
Регистрация: 18.12.2011
Сообщений: 14,981
Завершенные тесты: 1
05.02.2012, 17:44     Нужна помощь с программой #6
Цитата Сообщение от kapitan-kuljok Посмотреть сообщение
Неужели никто не знает, очень нужно!!

Добавлено через 6 минут
Спасибо, но у меня есть вопросы:
для чего нужен вот этот указатель Код C++
1 double *a;

и что это за переменная Код C++
1 int nn
в массив a надо записать требуемую последовательность из 2*n чисел.
nn - параметр конструктора, задающего n и соответственно размер последовательности 2*n
kapitan-kuljok
0 / 0 / 0
Регистрация: 01.02.2009
Сообщений: 44
05.02.2012, 17:45  [ТС]     Нужна помощь с программой #7
это не минимальный элемент, по идее должна вывести 1
Миниатюры
Нужна помощь с программой  
Сtrl
139 / 129 / 3
Регистрация: 19.07.2011
Сообщений: 184
05.02.2012, 17:49     Нужна помощь с программой #8
Цитата Сообщение от kapitan-kuljok Посмотреть сообщение
это не минимальный элемент, по идее должна вывести 1
Нет, это минимальный элемент, который получился после преобразования массива по указанному вами же алгоритму.
[3][4][4][5][1][2] => [3+5][4+1][4+2] == [8][5][6]
Минимальное, соответственно, пять.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 18:29     Нужна помощь с программой
Еще ссылки по теме:

C++ find_if, нужна помощь
C++ Нужна помощь с ассемблером.
C++ Нужна помощь с комментариями.
C++ Нужна помощь с программой

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

Или воспользуйтесь поиском по форуму:
kapitan-kuljok
0 / 0 / 0
Регистрация: 01.02.2009
Сообщений: 44
05.02.2012, 18:29  [ТС]     Нужна помощь с программой #9
ну да всё правильно, просто конечный массив не выводится на экран, вот и запутался..
Спасибо
Yandex
Объявления
05.02.2012, 18:29     Нужна помощь с программой
Ответ Создать тему
Опции темы

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