|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2011, 23:44 | #1 |
Регистрация: 22.12.2011
Сообщений: 3
|
Задача для знатоков
дан ряд из 1000 (условно) членов, значения 0 или 1
можно ли сделать такую программку (ее действия): y=sin (sin(x)), 0<x<1000 (целые значения), если у>0 то z=1, иначе z=0. Почленное сравнение с исходным рядом - если полное совпадение, то ответ найден, иначе создание нового алгоритма у=sin (sin(x)+sin(x^2)) y=sin (sin(x)+sin(x^2)+sin(x^3)) ... y=sin (sin(x)+sin(x^2)+sin(x^3)+...+sin(x ^100)) Т.е. сложность заключается в дописывании в формулу нового элемента sin(x^a), в текстовом режиме дописать можно без проблем, но как тогда объяснить машине что текст - это алгоритм действий? Возможно ли создание программы, которая будет изменять свою внутреннюю часть или менять сторонний алгоритм выстраивания двузначного ряда, это и есть вопрос уважаемые знатоки!!!) |
23.12.2011, 00:36 | #2 |
Регистрация: 22.12.2011
Сообщений: 3
|
добавлю
не обращайте внимание на саму формулу, она не соответствует решаемой задаче, лишь простой пример, здесь главное - возможно ли создание алгоритма изменяющего другой алгоритм..
|
23.12.2011, 01:17 | #3 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Код:
|
23.12.2011, 01:21 | #4 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Вообще, если так интересно гугли "рефлексия с++" С++ позволяет более элегантно и проще реализовывать "эффект рефлексии" - паттерны "стратегия", функторы, указатели на функции. Грубо говоря, если условие равно 1 - запустить вот эту функцию. Если условие равно 2 - запустить вот эту функцию. Или - запустить функцию, адрес которой хранится в массиве под индексом, являющимся результатом какого либо выражения. и тд, и тп. Задачу заявленную в сабже можно решить времени компиляции (то есть, результат вычислений будит известен ещё до начала запуска программы) Последний раз редактировалось _Bers; 23.12.2011 в 01:27. |
|
23.12.2011, 23:16 | #5 |
Регистрация: 22.12.2011
Сообщений: 3
|
скорее всего это рефлексия, важен принцип именно программного построения нового алгоритма, по которому строится новый ряд и сравнивается с исходным
(т.к. исходный ряд может состоять из триллиона членов, предполагается принципиально не отличный, но более сложный подход в формировании нового алгоритма) |
23.12.2011, 23:19 | #6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Известно, что не существует задач, которых нельзя было бы решить без рефлексии.
Однако, если так сильно хочется порефлексировать - есть смысл смотреть в сторону других языком программирования. Например - си шарп какой нибудь. Либо, в сторону специализированных библиотек, которые предоставляют подобные услуги (я сам таких не ведаю, ибо мне ни разу ещё подобное не надобилось) |
24.12.2011, 00:32 | #7 |
C++
Форумчанин
Регистрация: 27.03.2011
Сообщений: 803
|
Если я правильно понял задачу, то список (list) из полиморфных функторов поможет решить проблему. Можем обсудить через Skype.
Ищете информацию по C++?
cplusplus.com |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача для C++ | Елжан | Помощь студентам | 2 | 12.11.2011 12:10 |
Пустяк для знатоков ассемблера | a.lebedev | Помощь студентам | 0 | 30.05.2010 22:33 |
Три вопрoca на засыпку для знатоков Си | ds.Dante | Общие вопросы C/C++ | 8 | 25.01.2010 16:06 |
Нужна помощь от знатоков excel :) | VaDDok | Microsoft Office Excel | 7 | 19.03.2009 19:38 |