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

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

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

> динамические структуры данных, указатели+массив..
сообщение
Сообщение #1


Человек
*****

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

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


Добрый день, помогите разобраться с указателями..
необходимо.Компонентам массива целых присваиваются сдвинутые на 65 значения индекса, печатается массив целых. Переменной-указателю на символьный массив присваивается адрес массива целых. Снова распечатывается массив, но по адресам значений. Вместо последовательности чисел будет напечатана последовательность ASCII символов от А до z с пробелами.
собственно есть текст проги, но мне он не ясен помогите пожалуйста..
а вот текст..
Program ReInterpretation;	
Uses Crt;
Type
A = Array [0..99] of char;
Var
X : Array [0..49] of integer;
pA : ^A;
i : integer;
Begin
ClrScr;
for i := 0 to 49 do begin
X[i] := 65+i;
write(X[i], ' ');
End;

pA := @X;

writeln;

for i := 0 to 99 do
write(pA^[i],' ');

readln;
read;
End.

заранее благодарен...



Добавлено через 2 мин.
вроде все стало ясно... прошу прощение что побеспокоил..


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






program Primer1;
const
SizeOfReal = 6; {Длина переменной типа REAL}
N = 100;
M = 200;
var
i, j: integer;
PtrStr: array [1..N] of pointer;
s: real;
type
RealPoint = ^real;
{-----------------}
Function AddrR(i,j: word): RealPoint;
// По индексу в массиве указателей i и индексу элемента внутри i-го массива
// выдает адрес вещественной переменной
begin
AddrR := RealPoint(
// "собираем" адрес из сегмента : смещения, где
ptr(
seg(PtrStr[i]^), // сегмент = сегменту области памяти, на которую
// указывает ptrstr[i]
ofs(PtrStr[i]^)+(j-1)*SizeOfReal // смещение = смещению этой же
// области памяти + количеству байт, предшествующих
// элементу с заданным индексом (j)
)
)
end; {AddrR}
{-----------------}
Function GetR(i,j: integer): real;
// Выдает значение вещественной переменной по индексу массива - контейнера
// и номеру элемента в этом массиве
begin
GetR := AddrR(i,j)^
// для того, чтобы получить значение самой переменной достаточно
// просто разыменовать указатель, поскольку он уже приведен к типу
// "указатель на Real" в функции
end; {GetR}
{-----------------}
Procedure PutR(i,j: integer; x: real);
// Помещает в позицию J массива-контейнера I значение X
begin
AddrR(i,j)^ := x
end; {PutR}
{-----------------}

begin {Main}

// Выделяем память для N массивов-контейнеров (каждый - на M элементов типа Real)
for i := 1 to N do begin
GetMem (PtrStr[i], M*SizeOfReal);
// и заполняем их случайными значениями...
for j := 1 to M do PutR(i, j, Random)
end;

// Ну, дальше я думаю все понятно?
s := 0;
for i := 1 to N do
for j := 1 to M do
s := s + GetR(i,j);
WriteLn(s / (N * M): 12:10);
end. {Main}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Человек
*****

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

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


спасибо, буду разбираться...

оффтоп но перед этим отдохну... погодка чудная


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
compiler   динамические структуры данных   19.05.2007 22:05
compiler   собственно задача из <<той же серии>>.…   19.05.2007 23:09
volvo   Что именно здесь непонятно? Почему в процедуре печ…   19.05.2007 23:13
compiler   Что именно здесь непонятно? Почему в процедуре печ…   19.05.2007 23:16
volvo   Здесь: http://www.klax.tula.ru/~zet/themes/pointe…   19.05.2007 23:24
compiler   Здесь:оттуда const р: ^real = NIL; begin if р = …   20.05.2007 2:14
volvo   У тебя 2 символа p - в кириллице (в описании и в I…   20.05.2007 2:24
compiler   Поменяй на латинские...спасибо... вечно попадаюсь …   20.05.2007 2:26
compiler   а вот еще одна задача оттуда... program Primer1; c…   20.05.2007 20:32
volvo   Свят-свят-свят... Что с тобой? Как это "не ко…   20.05.2007 20:38
compiler   теперь работает(но с предупреждением)... volvo, не…   20.05.2007 20:43
volvo   program Primer1; const SizeOfReal = 6; {Дли…   20.05.2007 21:12
compiler   спасибо, буду разбираться... [i]оффтоп [size=1]но…   20.05.2007 21:31
compiler   еще вот вопрос по CSEG( Возвращает значение, хран…   20.05.2007 23:08
volvo   Ты компилируешь в FPC? Тогда ничего не поможет:   20.05.2007 23:25
compiler   спасибо...   20.05.2007 23:29
compiler   вот есть еще такая программка... по ней пару вопро…   22.05.2007 20:11
volvo   Абсолютно никакой - Addr(X) и @X возвращают адрес …   22.05.2007 20:38
compiler   Это ты о чем? о виртуальной памяти... при создании…   22.05.2007 21:25
volvo   А что, твоя программа сама управляет виртуальной п…   22.05.2007 21:32
compiler   А что, твоя программа сама управляет виртуальной п…   22.05.2007 21:38
compiler   и еще пару вопросов... по GETMEM (Р, SIZE), в чем …   22.05.2007 22:04
volvo   Ты все время путаешь TP и FPC... Что для FPC (под …   22.05.2007 22:23
compiler   Ты все время путаешь TP и FPC... так получается...…   24.05.2007 21:21
compiler   и еще вопрос: в чем разница процедур NEW-DISPOSE и…   25.05.2007 22:14


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

 





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