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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2018, 08:28   #1
Kukla19
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 38
По умолчанию Неправильно объявляю массив. Не могу найти ошибку.

Код:
uses crt;

var
s: array [5] of string := (clred,clgreen,clgray,clblack,clblack);
fox: array [10] of integer;
foy: array [10] of integer;

fox,foy,x,y,rx,ry: integer;

begin
end.
Не могу найти ошибку в объявлении массива со словами. Во первых в чужих листингах не раз встречал объявление с ключевым словом VAR, но программа пишет "ожидался тип". Во вторых если так и пишу TYPE выскакивает предупреждение об ошибке "Встречено ':', а ожидалось '='" в 4 строке после s.

Писать начал недавно. Язык PascalABC.NET.
Kukla19 вне форума Ответить с цитированием
Старый 26.09.2018, 08:49   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так может стоит открыть книжку или гугл и узнать, как задаются массивы? Например, что надо указывать два числа, а не одно.
p51x на форуме Ответить с цитированием
Старый 26.09.2018, 09:12   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

s: array [5] of string := (clred,clgreen,clgray,clblack,clbla ck);
s: array [5] of string = ('clred','clgreen','clgray','clblack','clbl ack');
s: array [5] of TColor = (clred,clgreen,clgray,clblack,clbla ck);
или где(как) там объявлены эти идентификаторы cl...

fox: array [10] of integer;
fox,...: integer;
либо одно либо другое
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 26.09.2018 в 09:16.
evg_m вне форума Ответить с цитированием
Старый 26.09.2018, 09:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

там ещё куча ошибок, начиная с неверного указания индексов при объявлении массива и заканчивая повторным определением одинаковых имён.

можно так:
Код:
uses crt;

var
s: array[1..5] of Integer := (Red,Green,LightGray,Black,Black);
fox: array [1..10] of integer;
foy: array [1..10] of integer;

x,y,rx,ry: integer;

begin
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2018, 09:43   #5
Kukla19
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 38
По умолчанию

Ну одинаковые имена это пока заглушки. Это не явные ошибки. Индексы уже поправил, спасибо за то что указали на них.

cl это обычные цвета, они подставляются в setpencolor.
есть функция setpencolor(s[i]), в нее подставляется значение из массива s[i] через for:=1 to n

Или так не будет работать?
Kukla19 вне форума Ответить с цитированием
Старый 26.09.2018, 10:01   #6
Kukla19
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 38
По умолчанию

И еще вопрос: мне компилятор пишет неверное имя clred...

После обьявления массива в скопках задаются значения ячеек массива или это не так?
Kukla19 вне форума Ответить с цитированием
Старый 26.09.2018, 11:06   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Kukla19 Посмотреть сообщение
есть функция setpencolor(s[i]),
эта функция не имеет никакого отношения к CRT
если Вам нужна графика, то Вы подключаете модуль GraphABC
и вот там есть ваши цвета с cl...
и там есть тип Color
массив можно задать так:
Код:
uses GraphABC;
var s: array[1..5] of Color := (clRed,clGreen,clLightGray,clBlack,clBlack);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2018, 12:08   #8
Kukla19
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 38
По умолчанию

Спасибо, все понятно.
Kukla19 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите найти ошибку неправильно выводит номер первого максимального элемента и элем BTS Общие вопросы C/C++ 1 10.04.2015 20:42
freepascal двумерный массив, не могу найти ошибку }|{eka Помощь студентам 3 10.10.2012 20:23
Массив структур. Не могу найти ошибку. Playa-RC Помощь студентам 1 03.12.2011 22:17
Не могу найти ошибку.. одномерный массив, убывающая последовательность Malloperro Помощь студентам 1 23.12.2010 21:15
не могу найти ошибку kaljan775 Общие вопросы C/C++ 2 23.10.2010 17:05