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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2014, 09:50   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос Генерация задачек вида 3*5-7

Вобщем стоит задача генерировать задачки вида 3*5-7 , как это реализовать чтобы минимум кода? Можно конечно сделать через Random для каждой цифры, но вот как быть с знаками "*", "-", "+", "/"?

цифры в задачках от 1 до 9
FleXik вне форума Ответить с цитированием
Старый 25.03.2014, 09:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
const q: array[0..3] of Char = ('*','-','+','/');
...
  s:=q[Random(4)];
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.03.2014, 10:00   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Аватар, спасибо большое
FleXik вне форума Ответить с цитированием
Старый 25.03.2014, 10:13   #4
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

код накидал, работает отменно, получилось 5 строк не считая обьявления переменных, есть еще какие-то варианты как упростить код?
FleXik вне форума Ответить с цитированием
Старый 25.03.2014, 10:48   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
const s := '*-+/';
ch := s[Random(4)+1];
Poma][a вне форума Ответить с цитированием
Старый 25.03.2014, 10:58   #6
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Что за маниакальное стремление упростить пятистрочный код? Не понимаю.
XE5 вне форума Ответить с цитированием
Старый 25.03.2014, 11:47   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а откуда там пять строк то?
одна строка - Randomize;
одна - описание константы s с арифметическими знаками
ещё одна - получение требуемого выражения (см. образец в #5).


Цитата:
Сообщение от XE5
Что за маниакальное стремление упростить пятистрочный код? Не понимаю.
угу. Вот с этим согласен!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.03.2014, 13:02   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
s:=Format('%d%s%d%s%d',[Random(9)+1,'*-+/'[Random(4)+1],Random(9)+1,'*-+/'[Random(4)+1],Random(9)+1]);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 25.03.2014 в 13:06.
Аватар вне форума Ответить с цитированием
Старый 25.03.2014, 14:21   #9
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
есть еще какие-то варианты как упростить код?
А в чём смысл упрощения, если не секрет?
bulldog5293 вне форума Ответить с цитированием
Старый 26.03.2014, 03:53   #10
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
а откуда там пять строк то?
я делал так

Код:
const 
   q: array[0..3] of Char = ('*','-','+','/');
var
   a, b, c:integer;
begin
   Randomize; // обязательно
   a:=RandomRange(1, 10);
   b:=RandomRange(1, 10);
   c:=RandomRange(1, 10);
   ShowMessage(IntToStr(a) + q[Random(4)] + IntToStr(b) + q[Random(4)] + IntToStr(c));
end;
но потом посмотрел что много кода и переделал так:
Код:
   ShowMessage(IntToStr(RandomRange(1, 10) + q[Random(4)] + IntToStr(RandomRange(1, 10) + q[Random(4)] + IntToStr(RandomRange(1, 10));

Последний раз редактировалось FleXik; 26.03.2014 в 04:22.
FleXik вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тройка задачек...(с++) АлександрПитерин Помощь студентам 2 10.04.2012 22:46
Пару задачек((( Lexander Паскаль, Turbo Pascal, PascalABC.NET 4 23.12.2011 21:53
Несколько задачек))) Игрек Общие вопросы Delphi 0 05.04.2011 00:13
Несколько простых задачек RuZ Помощь студентам 1 11.02.2008 22:48