Page 1 of 1

Некоторые вопросы

Posted: 12.05.2008 23:22
by Scripts Writer
Возможно это мелочи, но всё же:
1. В стелсе отсутствуют сокращения &&,|| ?
2. В стелсе отсутствуют многострочные комментарии? (/* ... */)
3. В стелсе отсутствует динамическое выделение памяти на элементы массива по мере их пополнения?

Posted: 13.05.2008 12:38
by Vano
Мне кажется вы путаете Паскаль с Си.
1. && = and ; || = or - другого и не требуется.
2. Используете {...}
3. Паскаль скрипт не умеет работать с указателями, соответственно и динамический массив не получится создать. Только статическое выделение памяти.

Posted: 13.05.2008 13:18
by CFA
по первым двум пунктам +1, а насчет третьего - динамические массивы есть.

получение размера массива - getArrayLenth(array)
изменение размера массива - setArrayLength(array, length)
setArrayLength(arr, getArrayLength(arr) + 1) - увеличить массив на один элемент.
инициализация массива -

Code: Select all

var arr : array of integer;
begin
    arr := [1, 2, 3, 4, 5];
end.
Но такая инициализация рабает только с простыми типами, типа integer, string. если элемент массива запись, то надо создать функцию, которая возвращает соответствующую запись -

Code: Select all

type rec = record
  x, y : integer;
end;

function makeRec(x, y : integer) : rec;
begin
  result.x := x;
  result.y := y;
end;

var arr : array of rec;
begin
  arr := [ makeRec(1,2), makeRec(2,3) ];
end.