IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Записать выражение.
___ALex___
сообщение 29.04.2003 20:40
Сообщение #21


Бывалый
***

Группа: Пользователи
Сообщений: 282

Репутация: -  0  +


to reill
Тебе ещё надо?
P.S. только щас увидел этот твой пост :-/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
reill
сообщение 30.04.2003 4:33
Сообщение #22


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Да надо.... Я её решел в след раз здавать, когда разберусь.... Так что жду....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
___ALex___
сообщение 30.04.2003 15:54
Сообщение #23


Бывалый
***

Группа: Пользователи
Сообщений: 282

Репутация: -  0  +


to reill
Итак начнём!Много писать не хочется, но посмотрим как уж выйдет в конце.
Когда я увидел условие этой задачи я подумал что тут что-то с рекурсией замешано...
Но решил эту задачу итерационно. В рекурсии тут не вижу смысла - медленней будет так как
каждое промежуточное состояние(значение локальных переменных подпрограммы)
как известно сохраняется в стеке(при "погружении в глубь")
потом восстанавливается(при "всплытии")
Так ближе к делу:
сама идея решения естественна - обычный перебор.
Вот как это делается:
в основной проге - всё примитивно - там идёт перебор всех комбинаций
типа "++++++++", "+++++++-", "+++++++*", "+++++++/", "++++++-+", "++++++--" и тд
всего 65536 таких вариантов!
(из них только 15 будут равны сотне!)
(Это же 64K!Размер сегмента в реальном режиме работы проца...чистое совпадение)
вот идёт перебор и соответственно нужно иметь подпрограммку вычисляющую значение
таких комбинаций, то есть "+-*+-*/*" есть 1+2-3*4+5-6*7/8*9 = -17,5
это делает функция Calc, то есть Calc('+-*+-*/*') = -17,5
(Реализацию Calc не знаю даже как описывать...очень долго получится...возможно ты напишешь
свою реализацию такой подпрограммки - главно что общая идея решения уже должна быть ясна)
"if Calc(S) = 100 then WriteLn(S);"
и если значение комбинации равно сотне - выводим эту комбинацию на консоль
Вот в общем и всё!
P.S. Спрашивай если захочешь ещё что-нибудь узнать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 30.07.2025 3:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"