Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

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

Only for requests.
Post Reply
Scripts Writer
Novice
Novice
Posts: 130
Joined: 06.05.2008 18:03

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

Post by Scripts Writer »

Возможно это мелочи, но всё же:
1. В стелсе отсутствуют сокращения &&,|| ?
2. В стелсе отсутствуют многострочные комментарии? (/* ... */)
3. В стелсе отсутствует динамическое выделение памяти на элементы массива по мере их пополнения?
Vano
Neophyte
Neophyte
Posts: 24
Joined: 31.01.2008 23:26

Post by Vano »

Мне кажется вы путаете Паскаль с Си.
1. && = and ; || = or - другого и не требуется.
2. Используете {...}
3. Паскаль скрипт не умеет работать с указателями, соответственно и динамический массив не получится создать. Только статическое выделение памяти.
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Post 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.
Post Reply