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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2013, 19:41   #1
temnot
Пользователь
 
Регистрация: 23.09.2013
Сообщений: 13
Сообщение Как написать массив с конечной точкой еще не данной?

Код:
var n:integer; a:array[1..n] of integer;
n:integer;
begin
readln(n);
readln(a);
end;
Думаю условие задачи и все остальное от задачи тут не нужно, ошибки:
can't read or write variables of this type (5 строка)
can't evaluate constant expession (массив в 1 строке)

Вопрос в том, как сделать, чтобы при N=4 массив был 1..4, а не выдавал ошибку?

Последний раз редактировалось Stilet; 24.11.2013 в 19:49.
temnot вне форума Ответить с цитированием
Старый 24.11.2013, 19:46   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Динамические массивы используйте
Код:
var 
  n:integer; a:array of integer;
...
  readln(n);
  SetLength(a,n);

Последний раз редактировалось ZX Spectrum-128; 24.11.2013 в 19:49.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 24.11.2013, 19:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
readln(a);
Массив нельзя так вводить. Вводи в цикле поэлементно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2013, 19:52   #4
temnot
Пользователь
 
Регистрация: 23.09.2013
Сообщений: 13
По умолчанию

Спасибо, сейчас попробую разобраться
temnot вне форума Ответить с цитированием
Старый 24.11.2013, 19:54   #5
temnot
Пользователь
 
Регистрация: 23.09.2013
Сообщений: 13
По умолчанию

А как тогда его прочитать?
for a[i]:=1 to n do
read(a); что-то вроде этого?
temnot вне форума Ответить с цитированием
Старый 24.11.2013, 19:59   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Да, только у динамического с 0 нумерация начинается.
То есть, нет конечно
Код:
for i:=0 to n-1 do
  Readln(a[i]);
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 24.11.2013, 20:00   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Да, только
Код:
for i:=0 to n-1 do read(a[i]);
что-то вроде этого

Динамические массивы - всегда индексы с 0 начинаются.
type_Oleg вне форума Ответить с цитированием
Старый 24.11.2013, 20:02   #8
temnot
Пользователь
 
Регистрация: 23.09.2013
Сообщений: 13
По умолчанию

Спасибо большое за ответы, мой код даже заработал без ошибок! :D
temnot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив,двумерный с плавающей точкой на Си Frost007 Помощь студентам 1 29.04.2013 10:08
написать одз и программу данной картинки shnip Паскаль, Turbo Pascal, PascalABC.NET 0 23.03.2013 23:44
Как написать программу на с+ для решения данной задачи? ming_ruport Общие вопросы C/C++ 1 24.10.2011 16:34
Написать программу, подобную данной Mogby Помощь студентам 13 15.10.2009 15:49
массив. сколько раз меняется знак в данной последовательности чисел BERT Помощь студентам 3 10.03.2009 18:02