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

Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
18.11.2011, 18:31     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #1
Всем привет, вот такой вопрос
почему при выделении памяти динамически её не хватает при больших н?
просто задание есть с графиком, выделил под нее память динамически, а она больше n=3 не строит
как быть тогда?

помогите пожалуйста...)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 18:31     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j))
Посмотрите здесь:

C++ Найти среднее арифметическое значений функции f(x) в точках a, b, (a+b)/2 используя обращение к функции
Вычисление значения заданной функции в точках х1 до х2 с шагом dx C++
получить машинные результатный сравнить их со значениями соответствующей функции C++
C++ Даны два массива. Найти среднее арифметическое элементов каждого и сравнить эти значения
Найти все трехзначные парные числа, которые являются точными квадратами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 12:41     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #21
anton-mix, n не забывайте добавлять, чтобы индексация массива начиналось с нуля
Я вижу, Вы торопитесь
Мой вам совет, создайте один раз глобальный (будет виден во всех функциях) массив (можно несколько), и пользуйтесь
C
1
2
3
4
5
6
7
8
9
10
11
int arr1 [1000];
int Narr1=0; // кол-во элементов в arr1
 
// Когда понадобиться arr1 заполняйте увеличивая Narr1
for (i=-n,Narr1=n+n+2;i<=Narr1;i++0
  arr1[i+n]=0230; 
 
// когда не нужен просто
Narr1=0;
 
// когда снова понадобится просто опять заполняйте как раньше
Добавлено через 53 секунды
Может это решит вашу проблему
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 12:51  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #22
а нет вот так:

C++
1
2
3
4
5
for (int i=-n;i<=(n+1);++i)
{
delete [] razn;
}
delete [] x_arg;
Добавлено через 1 минуту
вот последнее мое сообщение наверное так будет

Добавлено через 1 минуту
через глобальные не знаю как...

Добавлено через 2 минуты
и я не тороплюсь...((

Добавлено через 2 минуты
go, помоги пожалуйста...
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 12:56     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #23
Цитата Сообщение от anton-mix Посмотреть сообщение
через глобальные не знаю как...
напишите 22-ой строчкой
C
1
2
3
4
5
int arr1 [1000];
int Narr1=0; // кол-во элементов в arr1
int arr2 [1000];
int Narr2=0; //кол-во строк
int Marr2=0; //кол-во элементов
Я видел у вас два массива, двумерный и одномерный, объявите их глобально

Добавлено через 1 минуту
нужен одномерный массив из 100 элементов
C
1
2
Narr1=100;
// Все у вас arr1 из 100 элементов
Добавлено через 29 секунд
Цитата Сообщение от anton-mix Посмотреть сообщение
а нет вот так:
Нет, наверное
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 13:03  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #24
go,
почему?...
for (int i=-n;i<=(n+1);++i)
{
delete razn [i+n];//удаляю элементы указатели
}
delete x_arg;//удаляем указатель на массив

Добавлено через 6 минут
а это


Narr1=100;
// Все у вас arr1 из 100 элементов

тоже до функции писать?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 13:13     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #25
Цитата Сообщение от anton-mix Посмотреть сообщение
Narr1=100;
// Все у вас arr1 из 100 элементов
В функции, когда понадобился arr1

как только не нужен Narr1=0;
кстати, я поторопился, вам подойдет локальный (так как вы указатели не возвращаете)
просто объявили функцию, открыли фигурную скобку, и объявили
C++
1
2
3
4
5
6
7
8
9
double F (double x, int n) //функция подсчета приближенного значения функции в точке.
 
 
//                      построение таблицы разностей
 
{double arr1[1000];
Narr1=0;
 
// дальше как я говорил
Учтите, если у вас больше 1000 элементов, и указывайте большее число

Добавлено через 28 секунд
Цитата Сообщение от anton-mix Посмотреть сообщение
for (int i=-n;i<=(n+1);++i)
{
delete razn [i+n];//удаляю элементы указатели
}
delete x_arg;//удаляем указатель на массив
разные указатели, вы про массив указателей забыли
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 13:36  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #26
все равно не понял...( уже начинаю нервничать так как мучаюсь с этой программой чуть больше месяца)

Добавлено через 19 минут
у меня что...new double *[n+n+2] будет являться массивом указателей??
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 13:40     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #27
Цитата Сообщение от anton-mix Посмотреть сообщение
у меня что...new double *[n+n+2] будет являться массивом указателей??
Цитата Сообщение от anton-mix Посмотреть сообщение
у меня что...new double *[n+n+2] будет являться массивом указателей??
да, теперь для каждого нужно выделить память по элементы
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 13:45  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #28
т.е. еще чтоли куда нужно 2*n+2 писать?
а как его тогда удалить?? тоже в цикл добавить к delete razn [i+n]?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 14:00     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #29
Цитата Сообщение от anton-mix Посмотреть сообщение
а как его тогда удалить??
можете не удалять, утечки памяти не будет, как только выйдете из функции он сам удалится

Цитата Сообщение от anton-mix Посмотреть сообщение
т.е. еще чтоли куда нужно 2*n+2 писать?
C
1
Narr1=2*n+1;
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 14:06  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #30
go, и это в какой цикл вписывать?

Добавлено через 3 минуты
в 87 и 94 строку?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 14:15     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #31
Цитата Сообщение от anton-mix Посмотреть сообщение
в 87 и 94 строку?
нет, только 92-ую корректируете
и прочитайте о массивах что-нибудь
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 14:28  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #32
C++
1
2
3
4
5
6
7
8
9
10
11
double ** razn= new double *[n+n+2];    //создание динамического массива для таблицы конечных разностей
    // [n+n+2]столько у нас строк в таблице
    int k=0;
    for (int i=-n;i<=(n+1);++i)
    {
        [B]Narr1=2*n+1;
        razn[i+Narr1] = new double [n+n+2+k];[/B]
        --k;// выделяем память для каждой строки определенное кол столбцов [n+n+1+k] 
        //к- уменьшает число столбцов в строчке на 1, т.к.
        //таблица разностей имеет диагональный вид
    }
Добавлено через 57 секунд
вот так? а о массивах обязательно прочту

Добавлено через 9 минут
а с этим что делать?
int arr2 [1000];
int Narr2=0; //кол-во строк
int Marr2=0; //кол-во элементов
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 14:31     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #33
Послушайте
arr2 это ваш razn
arr1 это x_arg
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2011, 17:24     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j))
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 17:24  [ТС]     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j)) #34
значит вот это неправильно написано
Narr1=2*n+1;
razn[i+Narr1] = new double [n+n+2+k];

Добавлено через 12 минут
go, не понял...
нужно к razn[i+n] в скобках прибавить Narr1?

Добавлено через 12 минут
или что?

Добавлено через 2 минуты
помоги пожалуйста...не лезет в голову...

Добавлено через 2 часа 22 минуты
откликнитесь кто-нибудь...
Yandex
Объявления
20.11.2011, 17:24     Найти значения функции F(x) в указанных точках x(j) и сравнить с точными значениями f(x(j))-F(x(j))
Ответ Создать тему
Опции темы

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