![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Вячеслав Л. |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Как надо написать в var'e, когда необходимо выделить некоторое количество ячеек для массива?
Код var a:array[1..?] of integer; ... write('kakoe koli4estvo simvolov bydet v massive'); readln(n); for i:=1 to n do {zapolnenie masiva lyubym sposobom} Если место ? написать n, вылетает ошибка, тогда что должно быть место вопросительного занка? Нельзя же просто писать максимальную цифру от фонаря, типа 9999? -------------------- Само знание есть сила
|
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Насчет динамических массивов: Нет, ты нашел совсем не то. Слав, я тебе от души советую: научись придавать значение каждому слову в том, что читаешь. Я с чего начал? С того, что есть два способа, причем один из них доступен практически во всех компиляторах (ТР, например), и этот метод называется динамической памятью, а второй есть только в продвинутых компиляторах (FPC, например, который ты скачал - да?), и он называется динамические массивы (dynamic array). То, что ты привел - это работа с динамической памятью. Ошибиться довольно легко, потому что в сети масса недоразумений по этому поводу.я нашел немного, Если ты теперь действительно являешься счастливым обладателем FPC, и тебе не нужна совместимость с ТР, то я рекомендую работать именно с динамическими массивами. Повторяю: это НЕ ТО, что ты нашел. Я расскажу сейчас именно про динамические масивы. Ну просто array of написать не получится. TarasBer, внимательнее читай тему перед ответом, пожалуйста.Итак, в FPC ты имеешь полное право написать так: a: array of integer; Размер такого массива не определен (то есть равен нулю, грубо говоря, если не считать описывающей массив структуры) до использования SetLength. После этого массив будет иметь столько элементом, сколько назначено, причем отсчет начинается с нуля. Освободить память можно посредством назначения нулевой длины. Например: SetLength(a,10); Процедура SetLength имеет такое же название, как аналогичная процедура для типа String. Конечно, и действие ее аналогично, но нельзя забывать и о различиях - название одинаковое, но вещи разные. Этого средства (dynamic arrays) достаточно для огромного количества нужд. Поэтому лчень может статься, что в ближайшее время тебе не понадобится работа с динамической памятью. Если же все же возникнет нужда - скажи, объясним )). ой, блин, просрочил паркинг - этот мессадж мне стоил доллар.. )))))))) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 18:09 |