Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
yourchoice17
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 7
#1

Ввод функции с клавиатуры - C++

12.05.2011, 21:45. Просмотров 2016. Ответов 17
Метки нет (Все метки)

Здравствуйте. Необходима помощь в написании программы на С. Программа поиска минимума и максимума функции методом кого-то. С методом может еще разберусь, проблема - как сделать, чтобы пользователь сам вводил функцию с клавиатуры, и программа с ней работала? Функция может быть нескольких переменных. Помогите пожалуйста, можно на словах, в каком направлении вообще мыслить, или с кодом, кто сможет...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 21:45     Ввод функции с клавиатуры
Посмотрите здесь:

Ввод функции с клавиатуры - C++
Доброго времени суток! Подскажите пожалуйста, как можно осуществить ввод функции одной переменной? Облазил весь и-нет, но так и не...

Ввод функции (аналитического выражения) с клавиатуры - C++
Возникла следующая проблема, преподаватель хочет что-бы в моей программе был ввод функции с клавиатуры, функции типа f(x)=x^2+4*x,...

Реализовать функции, обеспечивающую ввод данных с клавиатуры и их проверку на корректность - C++
1. Реализовать функцию, обеспечивающую ввод данных с клавиатуры и их проверку на корректность; тип и диапазон значений определить...

Ввод с клавиатуры - C++
Столкнулся с проблемой, что не получается переделать считывание текста из файла на ввод с клавиатуры. Помогите пожалуйста. #include...

Ввод с клавиатуры - C++
Напишите программу, которая будет читать целое число от ввода с клавиатуры и печатать последнюю цифру данного числа. (8. Write a program...

Ввод с клавиатуры - C++
Помогите пожалуйста переделать программу, чтобы значения n - вводилось с клавиатуры и определяло количество елементов Х и У( по...

Ввод с клавиатуры - C++
на С++ надо организовать ввод с клавиатуры, при этом я не знаю сколько элементов будет вводится, записывать их в массив. Тоесть когда я...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
12.05.2011, 22:01     Ввод функции с клавиатуры #2
Надо пропарсить строку и перевести ее в дерево, с которым потом работать.
yourchoice17
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 7
13.05.2011, 00:06  [ТС]     Ввод функции с клавиатуры #3
А могли бы вы пояснить на примере, как это сделать..? На С?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 10:14     Ввод функции с клавиатуры #4
yourchoice17, на самом деле задача нетривиальная. Тут в несколько строк не уложишься.
yourchoice17
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 7
13.05.2011, 13:00  [ТС]     Ввод функции с клавиатуры #5
gooseim, я же не говорила, что мне надо решить это в несколько строк.. Мне все равно сколько их будет, мне надо это сделать, как - не знаю, поэтому я и обратилась за помощью..))
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 14:00     Ввод функции с клавиатуры #6
yourchoice17, вы просто говорили про пример, а пример, который писать не в несколько строк у меня нет времени, и думаю у других форумчан тоже.
yourchoice17
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 7
13.05.2011, 15:05  [ТС]     Ввод функции с клавиатуры #7
gooseim, я думаю, если у вас нет времени, это не повод говорить, что его нет у всех на форуме! Или по-вашему, если у меня большая задача, мне вообще не нужно было создавать тему? Мне кажется, неписанное правило форума: можешь помочь - помоги, не можешь, или "нет времени" - твое дело, закрой тему, и не отвечай за всех...
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 17:17     Ввод функции с клавиатуры #8
Цитата Сообщение от yourchoice17 Посмотреть сообщение
Или по-вашему, если у меня большая задача, мне вообще не нужно было создавать тему?
Если хотите получить готовое, то именно так.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,223
Записей в блоге: 1
Завершенные тесты: 1
13.05.2011, 17:58     Ввод функции с клавиатуры #9
А мне кажется, что ТС неверно сформулировал(а) задание, потому как в данной формулировке задача действительно нетревиальная. Возможно суть задания - это использования switch или что-нибудь в этом духе.
yourchoice17, процитируй текст задачи.
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
13.05.2011, 18:18     Ввод функции с клавиатуры #10
Нужно капать в направлении Обратная польская запись, если я правильно понял... Здесь задействован стэк... Можно, конечно, и через деревья...но стэком проще...
Вот есть на форуме, реализация - Си: link

Добавлено через 2 минуты
Вот еще: link 2
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 18:25     Ввод функции с клавиатуры #11
Mиxaил, нет, здесь как раз стек и польская запись не причем. Стек нужен для выполненния выражения, когда известны все данные. В этом случае данные неизвестны, а нужна именно структура. Поэтому только через деревья.
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
13.05.2011, 18:28     Ввод функции с клавиатуры #12
Когда введешь строку, ее можно преобразовать в польскую запись, потом с ней работать...
По - любому, функцию очень сложную не ввести, иначе трудно будет преобразования выполнять, так что... все можно реализовать
yourchoice17
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 7
13.05.2011, 19:59  [ТС]     Ввод функции с клавиатуры #13
Не понимаю, почему меня НИКТО не понимает. Цитирую задачу:"Написать программу поиска минимума и максимума функции методом Хука-Дживса". Допустим, я пользователь и мне нужно найти максимум функции y=3*x+2, а потом функции y=3*x^3+2*z^2+k. Если бы мы искали максимум уравнений какого-то одного вида, можно было бы создать массив из коэффициентов при переменных и дальше с ними работать. Но у них разный вид, и я спрашивала, как мне сделать, чтобы программа искала максимум для конкретно введенной любой функции любого количества аргументов. Готовую программу никого писать не просила, как подумали некоторые. Может быть теперь я объяснила понятнее...

Добавлено через 1 минуту
Ладно. Спасибо всем за ответы.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 20:02     Ввод функции с клавиатуры #14
gooseim, а почему, собственно, обратная польская запись не может служить заменой дерева? Обратная польская представляет собой ни что иное, как обход такого синтаксического дерева в post-order манере, то есть от левого к правому сыну и потом в родительский узел, так что из нее можно и дерево восстановить при желании.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 20:32     Ввод функции с клавиатуры #15
Ma3a, давайте пример.
Есть такое выражение:
(x+2)*(z+1)-y
В постфиксной записи это будет так:
-
*
+
x
2
+
z
1
y
Теперь скажите мне, как узнать из такой записи, что '-' относится к y?
Только путем сложного анализа этого стека.
А в случае с деревом все проще, мы просто проходим по всем узлам и ищем нужный нам y.
Я не говорю, что постфиксная запись плохая, но она неприменима к таким задачам. Для вычисления выражений, например, она подходит, и даже лучше, чем дерево.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 20:43     Ввод функции с клавиатуры #16
gooseim, да, потребуется анализ, чтобы построить дерево, в этом плане дерево несомненно выигрывает(впрочем, на самом деле, дерево выигрывает всегда), но я просто к тому, что обратную польскую для простого арифметического выражения строить все-же полегче, чисто технически в плане кодинга, чем полноценный парсер с полноценным выводом дерева, в случае LL,LR,LALR парсеров дерево получается автоматически, а вот если например что-то более общее типа алгоритма Эрли, то тут придется сильно попотеть, чтобы довести парсинг до дерева.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 20:58     Ввод функции с клавиатуры #17
Цитата Сообщение от Ma3a Посмотреть сообщение
но я просто к тому, что обратную польскую для простого арифметического выражения строить все-же полегче, чисто технически в плане кодинга, чем полноценный парсер с полноценным выводом дерева
Зачем легко строить то, что потом будет ненужно? Лучше сделать сложно, но что бы потом использовать.
Цитата Сообщение от Ma3a Посмотреть сообщение
в случае LL,LR,LALR парсеров дерево получается автоматически, а вот если например что-то более общее типа алгоритма Эрли, то тут придется сильно попотеть, чтобы довести парсинг до дерева.
Мы обсуждаем конкретный случай: формулу. Здесь сложность построения дерева и стека будет примерно одинакова.
Цитата Сообщение от Ma3a Посмотреть сообщение
впрочем, на самом деле, дерево выигрывает всегда
Я бы не сказал. Для построения простого интерпретатора, там, где не требуется оптимизация, стек выигрывает и по скорости, и по ресурсам, и по простоте кода.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 21:03     Ввод функции с клавиатуры
Еще ссылки по теме:

WinAPI Ввод с клавиатуры - C++
Здравствуйте! Пишу курсовую по проге и нужно сделать обязательно ввод с клавиатуры. Вот я создаю новое окошечко case WM_CREATE: {...

Ввод с клавиатуры в массив - C++
Не знаю как сделать, чтобы с клавиатуры я вводил цифры и они сразу записывались в массив.

Ввод симфола с клавиатуры - C++
Здравствуйте. Очень интересует вопрос как можно вводить символы с клавиатуры. Речь идёт о калькуляторе. Пример символов: +, -,*,\,...

Отследить ввод с клавиатуры... - C++
Доброго времени суток! Господа прошу помочь решить такую задачу: в консольном приложении нужно запретить ввод символов и цыфр, только...

Ввод с клавиатуры в конструкторе - C++
Добавьте третий конструктор, который вводит координаты центра и радиус с клавиатуры и присваивает значения itsX, itsY, itsRadius.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 21:03     Ввод функции с клавиатуры #18
gooseim, от конкретной задачи я что-то отдалился в сторону общего, чуть не забылся, вы в данном случае правы, дерево будет единственным выходом применительно к данной задаче, извиняюсь за скоропалительные высказывания.
Yandex
Объявления
13.05.2011, 21:03     Ввод функции с клавиатуры
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru