![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Denny61 |
![]()
Сообщение
#1
|
Гость ![]() |
Доброе время суток! Задача: Сост программу обеспечивающую ввод текста вида "Мама на рынке купила три килограмма бананов по цене тридцать пять рублей за килограмм... " ну и т.д в файл, а затем анализируя текст вывести сумму всех покупок (т.е сколько денег мама потратила) так вот преобразовать слова в цифры понятно как, а вот как сделать так что бы пр-ма складывала в два массива рубли к рублям а килограммы к килограммам не понятно, сделал это на Си препод не принял... только на Паскале (((
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Поскольку тут образовалось чисто теоретическое обсуждение достоинств кода, которого никто не видел - то и я расскажу чисто теоретически, как проще всего решить эту задачу...
На форуме есть специальная тема - "Разбиение строки на слова", идешь туда, берешь любой код, который тебе нравится и в котором ты сможешь разобраться (я бы посоветовал либо мой, либо представленный klem4), разбиваешь введенное предложение на слова, а потом делаешь следующее: 1) описываешь 3 массива записей - число/строка: сотни (900, 800, ... 100), десятки (90, 80, ..., 10) и единицы (19, 18, 17, ..., 11, 9, ..., 1) - в каждом из которых ставишь в соответствие соответствующему числу строку... 2) проходишь по массиву слов, на которые разделилось твое предложение, в поисках слова "кг." (ну, или "килограмм", ты должен решить для себя, как именно ты будешь вводить это слово). И от найденного слова "кг." идешь к началу предложения и суммируешь все числа, соответствующие словам из массива единиц, десятков и сотен (именно в таком порядке !!!), до тех пор, пока очередное слово не будет НЕсоответствующим ни одному из значений массивов. То же самое проделываешь и с "руб." И наконец - перемножаешь полученное число килограмм на стоимость одного кг. Все, задача решена - и никакого нагромождения циклов, и я не вижу причины, чтоб этот алгоритм не работал... Добавлено: Можно все три массива (сотни/десятки/единицы) объединить в один, но при поиске в нем слов надо не забывать, что просматриваться он должен от конца к началу (!!!) Сообщение отредактировано: volvo - 27.06.2007 21:33 |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 21:52 |