Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.65/20: Рейтинг темы: голосов - 20, средняя оценка - 4.65
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
1

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

18.11.2011, 18:31. Просмотров 3905. Ответов 33
Метки нет (Все метки)

Всем привет, вот такой вопрос
почему при выделении памяти динамически её не хватает при больших н?
просто задание есть с графиком, выделил под нее память динамически, а она больше n=3 не строит
как быть тогда?

помогите пожалуйста...)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 18:31
Ответы с готовыми решениями:

Вычислить значения функции в указанных точках и найти максимальные и минимальные из этих значений
Собственно задача есть. Писал такое: // ConsoleApplication2.cpp: определяет точку входа для...

Найти среднее арифметическое значений заданной функции в указанных точках, используя обращение к функции
Ребят, помогите пожалуйста! Найти среднее арифметическое значений функции f(x) в точках а, b,...

Вычисления значений функции в указанных точках разбиения промежутка ее задания
Всем привет! Нужно написать программку на вычисление функции, но не знаю с чего начать, только...

получить машинные результатный сравнить их со значениями соответствующей функции
помогите написать программу! данные ниже выражения представляют собой формулы приближенного...

Найти значения функции в заданных точках и сравнить с истинными значениями функции
Доброго времени суток друзья. линейная интерполюция , интерполюция сплайнами , глобальная...

33
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 12:41 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 секунды
Может это решит вашу проблему
1
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 12:51  [ТС] 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, помоги пожалуйста...
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 12:56 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 Посмотреть сообщение
а нет вот так:
Нет, наверное
1
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 13:03  [ТС] 24
go,
почему?...
for (int i=-n;i<=(n+1);++i)
{
delete razn [i+n];//удаляю элементы указатели
}
delete x_arg;//удаляем указатель на массив

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


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

тоже до функции писать?
0
20.11.2011, 13:03
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 13:13 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;//удаляем указатель на массив
разные указатели, вы про массив указателей забыли
0
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 13:36  [ТС] 26
все равно не понял...( уже начинаю нервничать так как мучаюсь с этой программой чуть больше месяца)

Добавлено через 19 минут
у меня что...new double *[n+n+2] будет являться массивом указателей??
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 13:40 27
Цитата Сообщение от anton-mix Посмотреть сообщение
у меня что...new double *[n+n+2] будет являться массивом указателей??
Цитата Сообщение от anton-mix Посмотреть сообщение
у меня что...new double *[n+n+2] будет являться массивом указателей??
да, теперь для каждого нужно выделить память по элементы
0
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 13:45  [ТС] 28
т.е. еще чтоли куда нужно 2*n+2 писать?
а как его тогда удалить?? тоже в цикл добавить к delete razn [i+n]?
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 14:00 29
Цитата Сообщение от anton-mix Посмотреть сообщение
а как его тогда удалить??
можете не удалять, утечки памяти не будет, как только выйдете из функции он сам удалится

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

Добавлено через 3 минуты
в 87 и 94 строку?
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 14:15 31
Цитата Сообщение от anton-mix Посмотреть сообщение
в 87 и 94 строку?
нет, только 92-ую корректируете
и прочитайте о массивах что-нибудь
1
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 14:28  [ТС] 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; //кол-во элементов
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2011, 14:31 33
Послушайте
arr2 это ваш razn
arr1 это x_arg
1
anton-mix
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 68
20.11.2011, 17:24  [ТС] 34
значит вот это неправильно написано
Narr1=2*n+1;
razn[i+Narr1] = new double [n+n+2+k];

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

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

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

Добавлено через 2 часа 22 минуты
откликнитесь кто-нибудь...
0
20.11.2011, 17:24
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2011, 17:24

Найти приближение функции, заданной в точках, многочленом, значения которого совпадают со значениями функции
1. Нужно чтобы на графике этой функции plot(5*x^2+2*x-4). На оси х были корни через которые...

Вычислить значения функции в указанных точках разбиения промежутка ее задания
Помогите решить для вычисления значений функции в указанных точках разбиения промежутка ее...

Вычислить значения суммы ряда и сравнить со значениями заданной функции
Даны две действительные квадратные матрицы порядка n. Получить для каждой матрицы ...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

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