Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 21:23   #1
m.a.x.i.m
Пользователь
 
Регистрация: 29.03.2008
Сообщений: 32
По умолчанию как задать массив в программе?

procedure TForm1.Button1Click(Sender: TObject);
var a:array[0..2] of integer;
begin
a:=(4,8,6);//ошибка
end;

уже 2 часа ищу, если задавать массив как канстанту то все хорошо:

const
a: array[0..2] of integer = (1,2,4);

массив большой очень и он не должен быть константой...

Последний раз редактировалось m.a.x.i.m; 11.12.2009 в 21:50.
m.a.x.i.m вне форума Ответить с цитированием
Старый 11.12.2009, 22:21   #2
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию

Не знаю где ты уже 2 часа ищешь.
Я набрал в гугле: Массивы на паскале.
Открыл первую же ссылку и о чудо
Код:
for i:=0 to m do //m=2 в твоем случае
a[i]:=<число>;
ManU вне форума Ответить с цитированием
Старый 11.12.2009, 23:12   #3
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

о чудеса!
а если подумать? как ты в массив таким способом забьешь разные числа?
fbus вне форума Ответить с цитированием
Старый 12.12.2009, 01:17   #4
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию

Цитата:
Сообщение от fbus Посмотреть сообщение
о чудеса!
а если подумать? как ты в массив таким способом забьешь разные числа?
Что за глупый вопрос?
Ну тогда так
Код:
Randomize;
for i:=0 to m do
mas[i]:=Random(<число>);
Если и так не устраивает, то
Код:
for i:=0 to m do
Read(mas[i]);
Доволен?
ManU вне форума Ответить с цитированием
Старый 12.12.2009, 09:07   #5
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Цитата:
Сообщение от m.a.x.i.m Посмотреть сообщение
если задавать массив как канстанту то все хорошо:

const
a: array[0..2] of integer = (1,2,4);

массив большой очень и он не должен быть константой...
Все правильно, нужно делать константу, других вариантов нет. Почему он не должен быть константой?
Armorer вне форума Ответить с цитированием
Старый 12.12.2009, 09:24   #6
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Armorer Посмотреть сообщение
Все правильно, нужно делать константу, других вариантов нет.
Надеюсь это была шутка.
Цитата:
Сообщение от Armorer Посмотреть сообщение
Почему он не должен быть константой?
Да потому что кроме чтения ячейки массива ты ничего не сможешь сделать
Поясняю для одаренных:
1) Записать что-либо в массив будет нельзя;
Следовательно
2) перестановка элементов в массиве не возможна

Последний раз редактировалось ManU; 12.12.2009 в 09:28.
ManU вне форума Ответить с цитированием
Старый 12.12.2009, 09:32   #7
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
Код:
const
a: array[0..2] of integer = (1,2,4);
а задайте его так же только в разделе var и все будет доступно
Код:
var
a: array[0..2] of integer = (1,2,4);
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 12.12.2009, 11:47   #8
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Цитата:
Сообщение от ManU Посмотреть сообщение
Надеюсь это была шутка.

Да потому что кроме чтения ячейки массива ты ничего не сможешь сделать
Поясняю для одаренных:
1) Записать что-либо в массив будет нельзя;
Следовательно
2) перестановка элементов в массиве не возможна
Естественно что в константу изменять нельзя. Она используется для того чтобы поместить в массив определенные значения, на определенном этапе работы программы. Как я уже написал, других вариантов нет (в контексте вопроса ручной ввод и т.п. не рассматриваются).


Код:
var
a: array[0..2] of integer = (1,2,4);
Если сделать так, то массив будет с самого начала забит определенными значениями. Когда массив нужно сначала использовать, а только потом поместить в него значения, то требуется заранее определённая константа.

Пример.
Код:
type
  TypeA = array[0..3] of integer;

const
  ConstA : TypeA = (1,3,4,3);

var
  A : TypeA = (1,2,3,4); // Начальные значения, если нужно

procedure TForm1.FormCreate(Sender: TObject);
begin


  A := ConstA;

end;

Последний раз редактировалось Armorer; 12.12.2009 в 11:53.
Armorer вне форума Ответить с цитированием
Старый 12.12.2009, 11:52   #9
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
Когда массив нужно сначала использовать, а только потом поместить в него значения, то требуется заранее определённая константа.
А пример можно того как его сначала использовать- а потом поместить в него значения7 И для чего можно использовать Пустой массив7
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 12.12.2009, 11:58   #10
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Задача.
Заполнить массив случайными числами, отсортировать. Вывести наибольшее число. Заполнить массив числами (1,3,4,2,3), отсортировать. Вывести наибольшее число. Использовать один массив. Данные вводить программно (без Read, файлов и тп).
Armorer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задать рекурсией? Irdis Фриланс 4 11.02.2010 02:01
Как задать треугольник? Shevali Помощь студентам 4 07.04.2009 01:01
задать массив как константу...нужен совет dead-vip Паскаль, Turbo Pascal, PascalABC.NET 5 21.12.2008 16:07
Как задать множество 1234 Паскаль, Turbo Pascal, PascalABC.NET 7 25.05.2008 16:15
задать массив типа X: array [0..N] of integer -где N переменная читаеться из EditBox Kivin13 Общие вопросы Delphi 22 06.09.2007 09:25