Другие языки программирования и технологии

Delphi, цикл

Здравствуйте!
Задача у меня такая в цикле присвоить переменным p1, p2, p3, p4, p5, p6, p7, p8, p9 значение 0 или знак '-'
Хочу сделать это в цикле, чтобы минимизировать код,

Пробовал так:

for i:= 1 to 9 do
begin
p+'i':= 0; <--- ругается здесь
end;

Но комп ругается

Скажите как это можно осуществить?
Если объявить переменные как ссылки на массив:
var
Pn : array [1..9] of Integer;
P1 : Integer absolute Pn[1];
P2 : Integer absolute Pn[2];
P3 : Integer absolute Pn[3];
P4 : Integer absolute Pn[4];
P5 : Integer absolute Pn[5];
P6 : Integer absolute Pn[6];
P7 : Integer absolute Pn[7];
P8 : Integer absolute Pn[8];
P9 : Integer absolute Pn[9];
i : Byte;

Тогда можно будет обращаться как к массиву, так и к переменным:
for i := 1 to 9 do Pn[ i ] := 0; // Все переменные станут нулевыми
P5 := 123; // Значение массива Pn[5] станет равным 123
Леонид Муравицкий
Леонид Муравицкий
62 868
Лучший ответ
> Но комп ругается

Правильно ругается

> Скажите как это можно осуществить?

Использовать массив. Только вот для его обнуления совсем не обязательно крутить цикл. Достаточно обращения к процедуре

FillChar(A, SizeOf(A), 0);

здесь А - некоторый статический массив.

> А если мне нужно присвоить знак '-' тоесть сделать массив string?

А кто запрещает объявить массив строк и проинициализировать его хоть минусом, хоть какой угодно строкой или строками?
Так нельзя сделать, используй массив.
var mass:array[1..9] of integer;
i:integer;
begin
for i:=1 to 9 do
mass[ i ]:=0;
end.

Как то так в общем виде, за синтаксис не ручаюсь, давно на паскале не писала.
Лёня Дмитренко
Лёня Дмитренко
40 393
кавычки не нужны вокруг i - это точно :)
Олег Шалов
Олег Шалов
14 439
p[ i ]:=0 в массиве
var
p: array [1...9] of integer

и обращаться к нему так p[ i ]

БЛИН! ВОТ ЕДИНСТВЕННЫЙ ПРАВИЛЬНЫЙ ОТВЕТ:
var
p: array [1...9] of integer;
begin
for i:= 1 to 9 do
begin
p[ i ]:= 0;
end;
end;

Пробелы вот тут [ i ] убрать
Та
Таир
1 260