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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 17:10   #1
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
По умолчанию цикл и ПОЧТИ одинаковые названия переменных

Доброго времени суток. У меня есть набор переменных b1..b10 например.
Я хочу организовать цикл где эти значения присываиваются элементам массива.
но код типа
Код:
  Mas[1]:=b1
и тд не удобен(а если не 10 а 100 значений?)
как сделать что-то наподобе
Код:
for i:=0 to 10
Mas[i]:=b['i']
b['i'] конечно не правильно, но как сделать чтобы название по цикл менялось?
Seran4ek вне форума Ответить с цитированием
Старый 09.01.2010, 17:20   #2
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

а сделать массив b, в котором будут храниться эти значение, не подходит?
heart вне форума Ответить с цитированием
Старый 09.01.2010, 17:21   #3
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
По умолчанию

heart
не, это конечно можно
но как сделать без этого? чтобы названия перебирались)
Seran4ek вне форума Ответить с цитированием
Старый 09.01.2010, 17:35   #4
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

если создать указатели на переменные, то может получиться, особенно если переменные объявлены последовательно. Тогда за первой переменной будет стоять вторая и т.п А указатель сделать только на первую переменную, и потом увеличивать его. После первого увеличения он будет указывать, на вторую переменную и т.п И еще переменные лучше объявлять локально, на делфи еще такого не пробывал, щас проверю свою теорию.
heart вне форума Ответить с цитированием
Старый 09.01.2010, 17:39   #5
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
По умолчанию

heart
понятно. тоесть какойто стандартной функции или конструкции позволяющей этого сделать нет) спасибо большое за помощ)
Seran4ek вне форума Ответить с цитированием
Старый 09.01.2010, 17:40   #6
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Seran4ek, не проще сразу так объявить:

Код:
Mas: array[1..100] of integer = (1..100);
Или если у b1 тип string:

Код:
Mas: array[1..2] of string = ('a', 'c');
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 09.01.2010, 17:52   #7
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
По умолчанию

Marsel737
значения переменных высчитываются в ходе выполнения программы)
Seran4ek вне форума Ответить с цитированием
Старый 09.01.2010, 18:02   #8
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Seran4ek, а зачем сначала b1:=значение, а потом M[1]:=b1, может сразу M[1]:=значение ???
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 09.01.2010, 18:03   #9
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
По умолчанию

Marsel737
нет, в моем случае так не эффективно. мне нужен был именно перебор по циклу имен)
Seran4ek вне форума Ответить с цитированием
Старый 09.01.2010, 18:05   #10
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

Код:
var
i:byte;
pL:^char;
Mas: array[1..5] of char;
a1,a2,a3,a4,a5:char;
begin
pL:=@a1; //ставим указатель на первую переменную


  a1:='1';
  a2:='2';
  a3:='3';
  a4:='4';
  a5:='5';

for I:=1 to 5 do begin

  Mas[i]:=pL^;
  inc(pL);  // мона еще попробовать так dec(pL); 
  Memo1.Lines.Add((Mas[i]));

end;

end;
Примерно так, но тут переменные ложаться не рядом, потому выбрасывает всякую чушь. Думаю без асм вставки тут не обойтись.
heart вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Почти работающая программа на С++ S.T.U.D.E.N.T Помощь студентам 0 09.04.2009 10:19
Домены РУ почти даром! Nazgul-91 Свободное общение 2 02.11.2008 01:08
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34