IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Указатели
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Пусть a1 = 1; а2 = 1.5; ai = a[i/2]a[i/3] + 1 (i = 3, 4, ...). Дано натуральное m. Получить am.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






SoulDrinker
При чем здесь указатели?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


надо через указатели сделать, т.е с использованием динамической памяти
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


извини перепутал, устал сильно просто
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






SoulDrinker
Так надо сразу говорить об этом... То есть массив A[i] должен быть в динамической памяти?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


да совершенно верно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Делаем так:

Код

type
 floatArr = array[1 .. maxint div sizeof(real)] of real;
var
 i, m: integer;
 pArr: ^floatArr;

begin
 write('m = '); readln(m);
 getmem(pArr, m*sizeof(real));
 pArr^[1] := 1; pArr^[2] := 1.5;
 for i := 3 to m do
   pArr^[i] := pArr^[i Div 2] * pArr^[i Div 3] + 1;
 WriteLn('a[', m, '] = ', pArr^[m]:10:4);
 freemem(pArr, m*sizeof(real));
 ReadLn
end.


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Спосибо огромное
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


В общем случае не совсем верно жёстко связывать понятия "указатель" и "динамическая память". Да, работа с динамической памятью реализуется с использованием указателей. Но если упоминается указатель, то это вовсе не означает, что имеет место операция с динамической памятью. Указатели, например, часто используются при последовательных операциях с массивом - таким образом удаётся освободить процессор от лишней арифметики при косвенной адресации (в частности, в некоторых архитектурах развитие этой идеи привело к интеграции операций инкремента/декремента указателя с режимом косвенной адресации).

Добавлю, что операции с динамической памятью (как и любое другое мощное средсво программирования) стоит применять только там, где их использование действительно оправдано. Выделение блока из кучи - почти всегда цикл (исключение составляет случай, когда менеджер памяти использует стековую модель выделения).

Сообщение отредактировано: xds -


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.01.2025 21:45
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name