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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2008, 17:19   #1
Arhangel_bes
Пользователь
 
Аватар для Arhangel_bes
 
Регистрация: 09.10.2008
Сообщений: 23
По умолчанию произвольный выбор из констант

У меня такой вопрос: Можно организовать произвольный выбор из констант?
т.е.
const
variant1='variant1.db';
variant2='variant2.db';
...
variant6='variant6.db';

т.е. произвольный выбор файла с вариантом через random?
Или посоветуйте как это можно сделать по другому.

Последний раз редактировалось Arhangel_bes; 12.10.2008 в 17:28.
Arhangel_bes вне форума Ответить с цитированием
Старый 12.10.2008, 17:31   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

А константы обязательно? Я бы сделал так:

Код:
'variant'+inttostr(1+random(n))+'.db'
или так:

Код:
var
  m: array[1..n]of string=('variant1.db','variant2.db',...);
  s: string;
begin
  s:=m[1+random(n)];
end.

Последний раз редактировалось Kostia; 12.10.2008 в 17:35.
Kostia вне форума Ответить с цитированием
Старый 12.10.2008, 17:50   #3
Arhangel_bes
Пользователь
 
Аватар для Arhangel_bes
 
Регистрация: 09.10.2008
Сообщений: 23
По умолчанию

Не получается, пишет ошибку 'Cannot initialize local variables'!
Arhangel_bes вне форума Ответить с цитированием
Старый 12.10.2008, 18:00   #4
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

'Cannot initialize local variables' = 'Невозможно инициализировать локальную переменную' - это значит что ее нужно сделать глобальной
Kostia вне форума Ответить с цитированием
Старый 12.10.2008, 18:18   #5
Arhangel_bes
Пользователь
 
Аватар для Arhangel_bes
 
Регистрация: 09.10.2008
Сообщений: 23
По умолчанию

выводит только первый вариант

Последний раз редактировалось Arhangel_bes; 12.10.2008 в 18:28.
Arhangel_bes вне форума Ответить с цитированием
Старый 12.10.2008, 18:48   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Небольшая поправочка:
Код:
var
  m: array[1..n]of string;
  i: integer;
  s: string;
begin
for i:=1 to n do
m[i]:='variant'+IntToStr(i)+'.db';
s:=m[1+random(n)];
end.
mihali4 вне форума Ответить с цитированием
Старый 12.10.2008, 19:17   #7
Arhangel_bes
Пользователь
 
Аватар для Arhangel_bes
 
Регистрация: 09.10.2008
Сообщений: 23
По умолчанию

всё равно выводит только 'variant1.db'!
Arhangel_bes вне форума Ответить с цитированием
Старый 12.10.2008, 19:25   #8
Arhangel_bes
Пользователь
 
Аватар для Arhangel_bes
 
Регистрация: 09.10.2008
Сообщений: 23
По умолчанию

Вот код получившейся у меня программы. Правильно?
var
variant: array[1..3]of string;
str:string;
n:integer;
begin
for n:=1 to 3 do
variant[n]:='Voprosy'+IntToStr(n)+'.db';
str:=variant[1+random(3)];
end.
Arhangel_bes вне форума Ответить с цитированием
Старый 12.10.2008, 19:29   #9
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

randomize в самом начале программы написать не забыл?
Kostia вне форума Ответить с цитированием
Старый 12.10.2008, 19:29   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Я бы еще после BEGIN вставил бы RANDOMIZE...
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с дипломной работой HAMMAN Помощь студентам 3 16.05.2008 12:38