Решение примеров

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Решение примеров

Сообщение skord » 14.11.2004 (Вс) 7:03

Привет всем! У меня вопрос: как можно вычислить выражение записанное в строковую переменную. Т.е у меня есть
Код: Выделить всё
st="5+10"

и мне нужно посчитать. Может у кого-нибудь есть подобный исходник, а то когда сам писал не *** не получается :( . Заранее спасибо

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 14.11.2004 (Вс) 8:27

Анализировать, если действий не очень много, то делается это вполне не сложно.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.11.2004 (Вс) 10:11

А если действий больше, то несколько сложнее :)
Я, помнится, писал... Ага...
http://bbs.vbstreets.ru/download.php?id=300
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 14.11.2004 (Вс) 10:46

Самое интересное начинается когда стреочки встречаются, хотя в принципе решаеемо.

НО, нужн всё по действиям разбивать ... как в школе помнишь циферки расставляли какое первое действие какое второе .... так и тута:)
отделяешь циферки от значков собираешь формулы и анализируешь посимвольно:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 14.11.2004 (Вс) 11:52

Большое всем спасибо за помощь!

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 14.11.2004 (Вс) 12:11

GSerg тебе отдельное спасибо за исходник. Вот только я в нем один баг нашел: если попытаться вычислить что-то вроде 20-5-5-5-5-5-5-5-5 то результат будет равен ПЯТИ!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.11.2004 (Вс) 13:01

Чё-то конфликт версий, как я погляжу... Я ж апдейтил его, и видимо не залил...
Хотя мой выдаёт вообще... гы... ща потестим.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.11.2004 (Вс) 13:15

Уууу...

Вот прошу же - тестите, а то у меня это плохо получается. Вот теперь придётся всё нафиг переписывать...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 14.11.2004 (Вс) 14:30

Ты же писал что-то про апдейт этого сорса. Потерял что-ли?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.11.2004 (Вс) 15:39

Апдейтил я его у себя. У меня он вообще выдаёт 20 :) Но я вижу почему. Придётся всё переписывать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.11.2004 (Пн) 11:14

Я делал тот, который без багов, но он считал только элементарную арифметику (сложение, вычитание, умножение, деление, скобки). Без багов был он потому, что любое выражение сводил к двум аргументам и операции между ними :) Все остальное "рекурсировал" и приводил к двум аргументам. Если найду, выложу.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.11.2004 (Пн) 13:24

а не проще ли VBScript Runtime использовать в таких целях. Там есть функция EVAL, в которую просто подставляешь свое выражение и все.
это так, мысли вслух, вдруг кому пригодится :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList  
cron