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

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

Войти
Регистрация
Восстановить пароль
 
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
#1

Правило использования функции, которая возвращает массив - C++

18.03.2014, 10:19. Просмотров 169. Ответов 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
const int N=100;
const double A0=1, h=0.01;
 
double *Progonka(double *A, double *B, double *C, double *F, double first, double second)
{
      int i;
      double *y, *alfa, *betta;
      alfa=(double*)malloc((N)*sizeof(double));
      betta=(double*)malloc((N)*sizeof(double));
      y=(double*)malloc((N+1)*sizeof(double));
 
      y[N]=first;
      alfa[0]=0;                        
      betta[0]=second;
 
    for (i=0; i<N; i++) 
    {
        alfa[i]=B[i-1]/(C[i-1]-alfa[i-1]*A[i-1]);
        betta[i]=(A[i-1]*betta[i-1]+F[i-1])/(C[i-1]-alfa[i-1]*A[i-1]);
    }
 
    for (i=N-1; i>=0; i--)
      y[i]=alfa[i]*y[i+1]+betta[i];
 
    return y;
}
int main (void)
{
for (int j=0; j<=N-2; j++ )// вычисление S05
        S05 = Progonka(g22, g22, C_massiv, F_massiv, A0, A0);
}
Правильно ли я вызываю функцию, или может быть что то не правильно делаю, потому что программа сама длинная, и есть подозрение что я что то неправильно делаю. Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 10:19     Правило использования функции, которая возвращает массив
Посмотрите здесь:

Вызов функции, которая возвращает 2 параметра - C++
Видимо я что-то принципиально не понимаю, что же тут не так #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include...

Функция, которая возвращает массив - C++
Здравствуйте. Подскажите, пожалуйста, как правильно написать код - есть функция; она должна вернуть массив, который создается в этой же...

Функция которая возвращает динамический массив - C++
Здравствуйте! у меня такой глупый вопрос. Я все время путаюсь и никак не могу четко сформулировать на него ответ. Помогите мне раз и...

Реализовать функцию, которая принимает массив и возвращает количество простых чисел в нем - C++
Ребят , есть задачи , а в частности нужно с помощью функций и деления по остатку (%) написать несколько программ , а именно : 1)...

Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. - C++
НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ ...

Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++ - C++
Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++

Написать функцию, которая зануляет массив переданный как параметр и возвращает кол-во отрицательных элементов до зануления? - C++
Написать функцию, которая зануляет массив переданный как параметр и возвращает кол-во отрицательных элементов до зануления? Такие дела.:(

Написать функцию, которая по двум заданным одномерным массивам вычисляет двумерный массив и возвращает его максимальный элемент - C++
Написать функцию, которая по двум заданным одномерным массивам (A размера m и B размера n) вычисляет двумерный массив c(ij)=a(i)*b(j) и...

Правильное обьявление функции, что возвращает двумерный массив символов - C++
Есть функция goUP. Как ее объявить так, чтобы она принимала двумерный массив символов и возвращала двумерный массив символов (если можно,...

Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ - C++
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
18.03.2014, 10:26     Правило использования функции, которая возвращает массив #2
У вас S05 нигде не объявляется.

Добавлено через 2 минуты
C++
1
y=(double*)malloc((N+1)*sizeof(double));
Не проще ли так:
C++
1
y = new double[N + 1];
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
18.03.2014, 10:48  [ТС]     Правило использования функции, которая возвращает массив #3
Часть кода я не стал приводить, интересует правильность использования самого синтаксиса. Чтобы действительно в S05 получался результат действия функции прогонки.
Ilot
Модератор
Эксперт С++
1789 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
18.03.2014, 11:23     Правило использования функции, которая возвращает массив #4
Может имеет смысл вынести из функции созднание и возвращение массива? Вы выделили память для y - вопрос: А где она должна освобождаться и кем?
Считаю более предпотительнее создавать массив отдельно от функции, а в нее передавать указатель на этот массив.
Вот тут:
C++
1
        alfa[i]=B[i-1]/(C[i-1]-alfa[i-1]*A[i-1]);
иттерация с i = 0 вызовет alfa[-1]
Аналогично и здесь
C++
1
        betta[i]=(A[i-1]*betta[i-1]+F[i-1])/(C[i-1]-alfa[i-1]*A[i-1]);
И еще используйте префиксный инкремент в цикле.
Yandex
Объявления
18.03.2014, 11:23     Правило использования функции, которая возвращает массив
Ответ Создать тему
Опции темы

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