всем привет!
тескт задачи:
объявить массив вещественных чисел м исп дин памяти. Сформировать массив и вывести. найти мин и макс. Переписать все элементы данного массива, находящиеся в найденном промежутке, в другой дин массив, повторяя каждый элемент дважды.
вот полный код задачи:
//codespace.awardspace.com/index.php?id=bbWv5Dc…
проблема у меня возникает при записи в другой массив.
не записывается каждый элемент дважды, что сделать?
20 ноября 2008 в 19:01
спасибо! с этой задачей разобрался
19 ноября 2008 в 22:01
делается тип массива из 1 элемента
type
TMyArray = array [1..1] of Real;
PMyArray = ^TMyArray;
var
n: integer;
mas: PMyArray;
begin
n := 5;
GetMem (mas, sizeOf (Real) * n);
……
работаем
…….
FreeMem (mas, sizeOf (Real) * n);
end.
19 ноября 2008 в 21:03
Надо
> for i:=y to x do
> for j:=1 to m do
> begin
> mas2^[j]:=mas^[i];
> mas2^[j+1]:=mas^[i];
> inc(i);
> end;
заменить на что-то вроде
j: = 1;
for i:=y to x do
begin
mas2^[j] := mas^[i];
mas2^[j + 1] := mas^[i];
j := j + 2;
inc(i);
end;
ЗЫ и обрати внимание на размерности массивов. У тебя они фиксированы – равны 100. А, как я понял условие задачи, надо использовать динамически веделенную под них память. Т.е. вместо new(mas) использовать new(mas, n) (в этом случае mas – это указатель на массив элементов).Как именно это делается в паскале – не помню.