![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 156
|
![]()
Помогите, кто может!!проблема состоит в том, что нужно создать программу с неизвестным количеством элементов в массиве.Я пробывал сделать через процедуру, но не получается!! код удалил поэтому прошу помогите,Без предоставления кода!!Прошу не считать лентяем!
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
![]()
Дык динамические массивы никто не отменял...
При работе с ними можно программно менять число элементов.
Программирую по необходимости
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) непонятно, что у Вас подразумевается под "неизвестное количество элементов в массиве"? Динамические массивы?
2) тут всё зависит от того, для какого Паскаля нужен код. если для TurboPascal - то там настоящих динамических массивов НЕ БЫЛО. значит нужно или использовать обычные статические заведомо бОльшего размера, чем может быть задан пользователем, либо использовать хакерские штучки по выделению и доступу к памяти через указатели, либо использовать динамические связанные списки... если же FPC/Delphi, то да. тут всё просто - есть нормальные динамические массивы var Имя : array of ТипЭлемента; 3) зря Вы стесняетесь код свой выкладывать. Хоть было бы понятно, что именно Вы хотите сделать и что не получается.. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 156
|
![]()
требуется сделать в обычном турбо паскале=>нет динамических массивов.Создание массива заведомо большего размера это трата большого количества памяти,что в данном случае не желательно.Я хочу получить границы массива в процедуре или в самой программе а после использовать в программе или процедуре соответственно.Код я не выложил потому что я не сохранил его и мне придется его восстанавливать по памяти и я подумал что может кто-нибудь делал так как я предлагаюю
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
по поводу траты памяти Вы не совсем правы.
сегмент данных в программе EXE под MS DOS выделяется 64 кб. Даже если Вы опишете одну переменную типа byte.. в этом способе хуже другое. По той же причине все переменные не могут занимать БОЛЕЕ 64 кб. т.е. var X[1..50000] of Integer; уже не может быть скомпилировано - будет ошибка, что структура слишком велика... попробуйте "хакерский" вариант. он заключается в следующем трюке: Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 156
|
![]()
Большое спасибо я читал про этот вариант, но подумал сделать через процедуру(т.к. этот вариант "хакерский" в лабе его использовать не рекомендуется)Попробую восстановить код и доработать.Большое спасибо.
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
|
![]() |
![]() |
![]() |
#7 | |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]() Цитата:
Он читает зарезервированные операционкой отделы памяти и меняет их чтоль? Почему под словом хакер и хакерский, у некоторых людей ассоциации прямо скажем не приятные(мягко скажем)?
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 156
|
![]()
Смысл не в том хакерский или нет у меня нет никаких ассоциаций я просто говорю что такой вариант в лабе не желателен
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
|
![]() |
![]() |
![]() |
#9 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]()
Ладно извините, но я не про вас конкретно говорил! )
и так если вам не желательно использовать статик массив заранее большего размера и способ описанный Serge_Bliznykov тоже вам не походит, Может быть вы опишите задание? И тогда уже что-то думать!
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 156
|
![]()
я все сделал используя статический массив большого размера.но все равно спасибо
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процедуры массивы | 1gorb | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 22.12.2010 22:01 |
Массивы и процедуры | Кэйт | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 19.04.2010 19:58 |
C++ массивы, стоки, процедуры. | daniil2010 | Помощь студентам | 1 | 18.04.2010 15:16 |
Двумерные массивы и процедуры | F(r)an!k | Фриланс | 12 | 30.03.2010 17:46 |
Pascal. Массивы, процедуры. | midletarket | Помощь студентам | 14 | 31.05.2009 22:24 |