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

> Правила раздела!

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

 
 Ответить  Открыть новую тему 
> массивы и желательно не очень размерные, ищу ответ на вопрос
сообщение
Сообщение #1


Гость






Люди, люди, человеки!!! расскожите как задовать массив [1..k].
тоесть с неопределённым верхним пределом??!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Так что именно?
Цитата(Airon @ 16.02.05 15:28)
как задовать массив [1..k]

или все-таки с
Цитата(Airon @ 16.02.05 15:28)
неопределённым верхним пределом?


Это совершенно разные вещи. Массив [1 .. k] задается элементарно:
Код
const k = 10;
Var
 a: array[1 .. k] of integer;

А вот динамические массивы встроенными средствами Турбо Паскаля не создать... Хотя можно воспользоваться тем, что написано в ФАКе: FAQ: Динамические массивы
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

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

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


Есть два способа:
1. TList - список;
2. M: array of integer; массив неопределенного размера
setlength(M,128) - установить (выделить памяти для массива) размер массива 128 элементов.


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


Гость






hiv
Во избежании откликов типа "у меня не работает", все-таки надо бы уточнять, что
Цитата
2. M: array of integer; массив неопределенного размера
setlength(M,128) - установить (выделить памяти для массива) размер массива 128 элементов.

имеет место только в Delphi...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

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

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


Приношу свои извенения volvo!
Тогда остается только список.


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


Ищущий истину
******

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

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


списков тоже нет в турбо паскале ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Знаток
****

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

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


Нет в стандартных средствах, но реализовать просто.

Смотрите FAQ


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Ищущий истину
******

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

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


Динамические массивы тоже не сложно реализовать ;) смотрите FAQ. smile.gif
Дело именно в наличии их как стандартных..


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

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

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


Если длина массива изменяется относительно редко(или вообще не изменяется) и ненакладно при каждом изминении копировать весь массив, то целесообразно использовать такую конструкцию

Код

var i,size:byte;
type TMyArray=array [0..0] of ArrayType;
var  MyArray:^TMyArray;
begin
size:=5;
getmem(MyArray, size*sizeof(integer));

MyArray^[0]:=1;
MyArray^[size-1]:=2;
for i:=0 to size-1 do writeln(MyArray^[i]);
freemem(MyArray, size*sizeof(ArrayType) );
end.


недостаток - воизбежание ошибок неообходимо в качестве индекса массива брать только переменные.

Сообщение отредактировано: Digitalator -


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Ну хорошо, может еще кто-нибудь предложит этот же алгоритм? Я ссылки для красоты по-Вашему даю? Ходить по ним не пробовали никогда? Иногда это бывает полезно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

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

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


Вы сцылку на фак имеете ввиду? право признюсь - дествительно фак никогда не читал за ненадобностью. Однако сейчас посмотрел, вот только кроме списков и афигенных модулей ничего там не заметил... я слепой?


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Ищущий истину
******

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

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


Цитата
кроме списков и афигенных модулей ничего там не заметил... я слепой?

да.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

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

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


Цитата(Oleg_Z @ 19.02.05 4:56)
да.


Если не трудно ткните носом smile.gif не вижу (наверно все-таки слепой) там ни одной конструкции хоть издали похожей на это:

Код

var i,size:byte;
type TMyArray=array [0..0] of ArrayType;
var  MyArray:^TMyArray;
begin
size:=5;
getmem(MyArray, size*sizeof(integer));

MyArray^[0]:=1;
MyArray^[size-1]:=2;
for i:=0 to size-1 do writeln(MyArray^[i]);
freemem(MyArray, size*sizeof(ArrayType) );
end.


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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