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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2019, 18:16   #1
Diyana
Новичок
Джуниор
 
Регистрация: 17.03.2019
Сообщений: 2
По умолчанию Пишет что ожидалось константное выражение что неправильно?

Код:
Var  i,m,k,b:integer; T: array[1..k] of integer;
Begin
   Writeln ('Сколько чисел?'); readln (k);
   Writeln ('Какой диапазон?'); readln (m); readln (b);
   b:=m+abs(b);
   Randomize;
   for i:=1 to k do
   T[i]:=random(m)-b;
   if T[1]>0 then writeln ('Первое положительное')
   else if T[1]<0 then writeln ('Первое отрицательное');
 End.
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Alex11223; 17.03.2019 в 18:27.
Diyana вне форума Ответить с цитированием
Старый 17.03.2019, 18:26   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Написано ж, k — не константное выражение.
Компилятор не знает в момент компиляции какого размера массив вы захотите.
Смотрите про динамические массивы или используйте константу.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.03.2019, 18:41   #3
Diyana
Новичок
Джуниор
 
Регистрация: 17.03.2019
Сообщений: 2
По умолчанию

то есть в k в константах можно закинуть любое значение?
Diyana вне форума Ответить с цитированием
Старый 17.03.2019, 18:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Diyana Посмотреть сообщение
о есть в k в константах можно закинуть любое значение?
Можно закинуть:
Код:
const k=100;
Var  i,m,n,b:integer; T: array[1..k] of integer;
begin
  Writeln ('Сколько чисел?'); readln (n);
...
если Pascal новый, то можно использовать динамические массивы.

НО!!! Зачем Вам вообще массив в данной ситуации?!
Тут вполне можно обойтись совсем без массива.

Как звучит условие задачи?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2019, 19:07   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

На мой взгляд в этом вопросе:
Цитата:
то есть в k в константах можно закинуть любое значение?
ТС предполагается, что константу можно потом изменить, что конечно же не так.
На момент описания статического массива, а такой и описывается в программе, константа должна быть определена. Однажды определённая константа не может быть изменена в последующем.
В том случае, когда необходим массив, а его размер неизвестен, используется динамический массив. Размер динамического массива можно изменять в процессе работы программы (ищите в Сети ...).
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal ABC] В 7-ой строке пишет,что ожидалось имя процедуры или функции,не понимаю как это исправить и что делать! SMOKE SMOKE Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2017 18:57
Пишет ошибку: ожидалось имя процедуры или функции. Что не так? alexameleon Помощь студентам 3 22.11.2015 16:31
C++ в чем проблема? Не могу обратиться к элементам массива A. Пишет "выражение должно иметь тип указателя" Praud Помощь студентам 3 04.05.2014 18:53
Встречено '.', а ожидалось ';' cyberstorm Помощь студентам 1 08.10.2013 15:55
Выражение должно иметь константное значение? Си snqL Общие вопросы C/C++ 6 14.10.2011 22:12