|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
|
Рекурсивный расчёт математического выражения со скобками (рекурсивную функцию оформить в виде потока)10.01.2016, 00:35. Показов 3159. Ответов 16
Метки нет (Все метки)
Помогите пожалуйста решить данную задачу:
Рекурсивный расчет математического выражения со скобками, рекурсивная функция оформляется в виде потока. Добавлено через 1 час 35 минут up!
0
|
|
| 10.01.2016, 00:35 | |
|
Ответы с готовыми решениями:
16
Как рекурсивную функцию вычисления выражения оформить в виде потока? Рекурсивный расчет математического выражения со скобками Рекурсивный расчет математического выражения со скобками, в чем ошибка? |
|
4 / 4 / 6
Регистрация: 14.10.2015
Сообщений: 26
|
|
| 10.01.2016, 00:52 | |
|
Fighter215, юзайте поиск. Рекурсивный расчет математического выражения со скобками
0
|
|
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
|
| 10.01.2016, 00:56 [ТС] | |
|
GoldenSpice, юзал, тему видел, но такой вариант мне не подходит. Далее нужно реализовать сервер/клиент, а парсинг через cin.get не прокатит там.
0
|
|
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 10.01.2016, 01:23 | ||
|
Например, в качестве него может выступать и канал связи между двумя процессами.
0
|
||
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
|
| 10.01.2016, 20:36 [ТС] | |
|
nonedark2008, я не мастак в c++, поэтому и прошу помощи.
Операционная система: Windows Задание 1: Рекурсивный расчет математического выражения со скобками, рекурсивная функция оформляется в виде потока Задание 2: Вычисление математического выражения со скобками. Клиент шлет на сервер выражение через консоль. Сервер выдает ответ. Протокол взаимодействия TCP; Добавлено через 38 минут up! Добавлено через 16 минут up!!
0
|
|
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|||||
| 10.01.2016, 21:02 | |||||
|
Клиент подключается к серверу через сокет, передает строку с выражением и ждет результата. Сервер ждет подключения от клиента. Как только подключение есть, он создает поток для этого подключения, который ждет выражение от клиента, вычисляет его и возращает результат. Написать сервер чуть сложнее первого задания, а клиент и того проще. На форуме помогают либо по мелочам, либо при интересной задаче.
1
|
|||||
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
|
| 10.01.2016, 21:05 [ТС] | |
|
nonedark2008, как это сделать в теория я понимаю. А вот с практикой одни проблемы.
0
|
|
| 10.01.2016, 21:14 | ||
|
Не по теме:
Сомнительно что кто-то из жалости сделает за тебя всю твою работу. Тебе нужно либо сделать/найти решение самостоятельно, задавая конкретные вопросы тут на форуме, либо заказать программу за вознаграждение.
0
|
||
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
|||||||||||
| 10.01.2016, 21:30 [ТС] | |||||||||||
|
nonedark2008, не все гонятся за вознаграждением. Люди уже ни раз помогали за спасибо. Тем более, что данная задача вроде не из сложных (хоть я и не могу её решить).
Добавлено через 13 минут Клиент
Сервер
Все, что у меня есть на данные момент по 2-й задаче. Выражение на сервере принимаю, а вот как запустить обработку его через expr - не знаю.
0
|
|||||||||||
| 10.01.2016, 21:36 | ||
|
Не по теме:
Форум предназначен, чтобы одни люди учились у других, это не какой-то облачный сервис по выдаче готовых решений. Тем более, судя по твоим старым постам, ты уже должен уметь работать с сокетами с далекого 2013 года. Ты вроде бы должен знать Си, а для решения этой задачи чего-то особенного не требуется. Для работы с потоками есть куча примеров на этом форуме, воспользуйся поиском. Расчет мат выражения за тебя уже поискал GoldenSpice. Так что у тебя уже все есть. А на объяснение этого я потратил даже больше времени, чем необходимо для решения твоих двух задач =/
0
|
||
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
|
| 10.01.2016, 21:41 [ТС] | |
|
nonedark2008, для тебя это просто, для меня - нет.
Я уже говорил, что этот самый расчет я не могу впихнуть в сервер, т.к. не понимаю как это сделать. В расчетах идет считывание через cin.get, я же имею полученную строку c выражением в переменной recvbuf. У вас есть время на обсуждение данной темы (на которое вы по вашем же словам потратили больше времени, чем надо на решение 2 задач) и просмотр моего профиля, но нет времени помочь в решении данных задач. PS: Не все способны учиться на теории, иногда нужно увидеть практическое решение, дабы научиться решать подобное.
0
|
|
|
Комп_Оратор)
|
||||
| 10.01.2016, 21:41 | ||||
|
Тут же программисты == умные люди. Это значит, что на понт не разведёшь. Поэтому и:
0
|
||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 10.01.2016, 21:44 | ||
Сообщение было отмечено Fighter215 как решение
РешениеТебе нужно в него впихнуть полученную строку, например ist = istringstream(recvbuf); Далее идет твое r = expr();. После этого полученный результат нужно отправить обратно. Переменная r занимает sizeof(float) байт, отправляешь их через send обратно клиенту. Клиент получает массив sizeof(float) байт и преобразует его обратно во float любым способом.
1
|
||
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
||||||
| 10.01.2016, 21:50 [ТС] | ||||||
|
nonedark2008, огромное спасибо вам. Теперь одной проблемой меньше.
PS: там ещё была одна опечатка, где вместо ist использовался cin. Теперь все работает. Но с 1-й задачей всё равно не до конца понимаю. Имя данный код, как запихнуть функцию в поток. Кликните здесь для просмотра всего текста
0
|
||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
| 10.01.2016, 22:15 | |
|
Fighter215, тут сложнее.
У тебя уже есть заголовок <thread>, правда он пойдет только для C++11. Для потоков есть простое описание правда на англ, думаю можно нагуглить что-то схожее на русском. Можно создать отдельную функцию, которая будет принимать копию строки, создаст для нее istringstream, а затем вызовет функцию expr, в которую его передаст. Чтобы не делать istringstream глобальным, передавай его по указателю во все функции expr, factor, number. А сама программа, считав строку, создаст поток для "отдельной функции", в которую переедаст строку и указатель/ссылку на переменную, куда нужно положить результат. Запустив поток, нужно подождать его завершения, после чего вывести результат.
0
|
|
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 50
|
||||||||||||
| 10.01.2016, 22:55 [ТС] | ||||||||||||
|
nonedark2008, вот вроде как понял суть, но никак не могу понять, как это реализовать.
Если я сделаю процедуру
0
|
||||||||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||||||||||
| 10.01.2016, 23:03 | ||||||||||||
|
Можно сделать так:
1
|
||||||||||||
| 10.01.2016, 23:03 | |
|
Помогаю со студенческими работами здесь
17
Вычисление математического ожидания оформить в виде процедуры
Оформить вычисление числа как функцию потока Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|