Указатели |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Указатели |
SoulDrinker |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Пусть a1 = 1; а2 = 1.5; ai = a[i/2]a[i/3] + 1 (i = 3, 4, ...). Дано натуральное m. Получить am.
|
volvo |
Сообщение
#2
|
Гость |
SoulDrinker
При чем здесь указатели? |
SoulDrinker |
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
надо через указатели сделать, т.е с использованием динамической памяти
|
SoulDrinker |
Сообщение
#4
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
извини перепутал, устал сильно просто
|
volvo |
Сообщение
#5
|
Гость |
SoulDrinker
Так надо сразу говорить об этом... То есть массив A[i] должен быть в динамической памяти? |
SoulDrinker |
Сообщение
#6
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
да совершенно верно
|
volvo |
Сообщение
#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 - |
SoulDrinker |
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Спосибо огромное
|
xds |
Сообщение
#9
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
В общем случае не совсем верно жёстко связывать понятия "указатель" и "динамическая память". Да, работа с динамической памятью реализуется с использованием указателей. Но если упоминается указатель, то это вовсе не означает, что имеет место операция с динамической памятью. Указатели, например, часто используются при последовательных операциях с массивом - таким образом удаётся освободить процессор от лишней арифметики при косвенной адресации (в частности, в некоторых архитектурах развитие этой идеи привело к интеграции операций инкремента/декремента указателя с режимом косвенной адресации).
Добавлю, что операции с динамической памятью (как и любое другое мощное средсво программирования) стоит применять только там, где их использование действительно оправдано. Выделение блока из кучи - почти всегда цикл (исключение составляет случай, когда менеджер памяти использует стековую модель выделения). Сообщение отредактировано: xds - -------------------- The idiots are winning.
|
Текстовая версия | 11.01.2025 21:45 |