Массив переменной длины

Рейтинг: 0Ответов: 3Опубликовано: 10.05.2011

Всем здравствуйте. Скажите пожалуйста, как в Паскале (самом обычном) сделать массив переменной длины? Т.е. чтобы юзер сам вводил с клавы его длину. В интернете ничего найти не смог, поэтому задаю вопрос тут. И ещё один вопрос: как, используя ТОЛЬКО html и javascript, напечатать длину массива из тела скрипта. Массив называется 'a'. Если не сложно, приведите весь участок кода.

Ответы

▲ 3Принят

как, используя ТОЛЬКО html и javascript, напечатать длину массива из тела скрипта. Массив называется 'a'. Если не сложно, приведите весь участок кода.

Пишете на странице:

<script type="text/javascript">
    var a = [1, 2, 3, 4, 5]; //создали массив из цифр от 1 до 5
    document.write('Длина массива = ');
    document.write(a.length);
</script>
▲ 2

Скажите пожалуйста, как в Паскале (самом обычном) сделать массив переменной длины? Т.е. чтобы юзер сам вводил с клавы его длину. В интернете ничего найти не смог, поэтому задаю вопрос тут

  1. В паскале как и в любом нормальном :-) языке можно использовать указатели. Минусы - в паскале работа с указателями сделана неудобно.
  2. Можно сделать тип массива, размером заведомо больше, чем нужно на практике. И тогда просто используете кусочек от массива. Минусы - серьезный расход лишней памяти. Зато удобно.
  3. Можно использовать "открытые массивы". Но это не классический паскаль уже. Минусы - завязываетесь на тип компилятора и опции компиляции.
▲ 2

Скажите пожалуйста, как в Паскале (самом обычном) сделать массив переменной длины? Т.е. чтобы юзер сам вводил с клавы его длину. В интернете ничего найти не смог, поэтому задаю вопрос тут

a - массив переменной длины

объявление:

var
   a : array of longint;

установка размера n элементов:

SetLength(a, n);

ну и, чтобы вообще весь код был с динамическим захватом памяти:

объявление:

var
   a : array of ^longint;

установка размера n элементов:

SetLength(a, n);

установка значения 10 элемента с номером i:

New(a[i]);
a[i]^ := 10;

не забываем про высвобожение памяти :

Dispose(a[i]);