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

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

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

 
 Ответить  Открыть новую тему 
> анализ текстового файла, выбрать и преобразовать слова в числа
сообщение
Сообщение #1


Гость






Доброе время суток! Задача: Сост программу обеспечивающую ввод текста вида "Мама на рынке купила три килограмма бананов по цене тридцать пять рублей за килограмм... " ну и т.д в файл, а затем анализируя текст вывести сумму всех покупок (т.е сколько денег мама потратила) так вот преобразовать слова в цифры понятно как, а вот как сделать так что бы пр-ма складывала в два массива рубли к рублям а килограммы к килограммам не понятно, сделал это на Си препод не принял... только на Паскале (((
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Исходник на С можно посмотреть? (можно в приват, выкладывание его здесь нарушит правила)...

Я не думаю, что будут большие отличия в программе, написанной на Паскале от программы на С...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(volvo @ 27.06.2007 2:04) *

Исходник на С можно посмотреть? (можно в приват, выкладывание его здесь нарушит правила)...

Я не думаю, что будут большие отличия в программе, написанной на Паскале от программы на С...

Если это необходимо то могу сбросить в течении трех дней, дело в том что живу я в Уфе и исходник на домашней машинке, я же сейчас нахожусь в Самаре на сессии (заочник ), сдавать завтра. Препод когда давал задание не уточнял на чем именно собирать программку((( А набирать заново...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну вот и мне не очень интересно переизобрести уже изобретенный кем-то велосипед. Одно дело - поправить синтаксис рабочей программы, а другое - написать работающую программу с нуля...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Да мне в принципе и не нужна программа целиком, просто я не знаю как средствами Паскаль можно сделать так
что-бы программа встретив ключевое слово проверила предыдущие слова и если это цифры (а я их заранее ввел в массивы ) то в зависимости от ключевого слова записала его в тот или иной массив. Да в принципе хотя бы не со словами а с цифрами (не один, два... а 1, 2 и т.д) а доделать я думаю что смогу.

Добавлено через 19 мин.
Т.е например в FoxPro насколько я помню можно писать так:
...
find :'Какой-то текст' if found do ... и далее можно привинтить условие для отбора данных, а вот как это в Паскаль не понятно.
И еще одна задача, я ее сделал все вроде правильно но при запуске она просто вылетает. В чем дело не пойму... (файлик прикрепил)


Прикрепленные файлы
Прикрепленный файл  База_материалов.pas ( 12.94 килобайт ) Кол-во скачиваний: 269
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата
Т.е например в FoxPro насколько я помню можно писать так

речь же была про С, правда?
ну, если уж на то пошло, в паскале можно писать так:
if pos('какая-то строка', 'какая-то другая строка')<>0 then

Цитата
Если это необходимо то могу сбросить в течении трех дней, дело в том что живу я в Уфе и исходник на домашней машинке

а как ты ее пытался сдавать???

Добавлено через 15 мин.
по поводу второй: после каких твоих действий вылетает?
и какой компилятор... проверила в Делфи и TP7, ошибки разные, но компилироваться не хочет ни там, ни там.
в TP был какой-то странный глюк. откомпилировалось.
какая ошибка была по мнению делфи - выяснила.
жду ответов...

Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Ну на счет Фокса это я просто к примеру...
На счет первой задачи то я решил поступить примерно так:
Считал текст в Массив строк с таким условием что последнее букво сочетание 'руб', т.е в каждой строке по одному кг и одному руб, теперь каждую строку я разбиваю на слова (тоже в массив по признаку пробела) и теперь в цикле обхожу все ячейки до pos('кг.') и если в этом интервале есть ячейка соответствующая цифре то суммирую их в отдельное значение (т.е я заранее задал соответствие например val (триста, 300, 0 )) а затем уже записываю значение этой переменной в еще один массив и потом уже от pos('кг.') и до ('руб.') делаю тоже самое с рублями. Вобщем вот такой огород...
Ходил к аспирантам на кафедре они бьются об заклад что препод и сам не знает как это сделать и что на паскаль это сделать не очень просто, сидели над этим минут 20 но ни к чему не пришли сказали только что я на првильном пути) Но все таки сложновато все. Может есть способ попроще? Да сам код что-то не идет, цикл на цикле сидит и массивом погоняет)))
А первую задачу сделал, экзамен сдал (отл). Но задачку все таки интересно добить)))
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


рассказ про код - это интересно, конечно...
но почему ты его не выкладываешь?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Поскольку тут образовалось чисто теоретическое обсуждение достоинств кода, которого никто не видел - то и я расскажу чисто теоретически, как проще всего решить эту задачу...

На форуме есть специальная тема - "Разбиение строки на слова", идешь туда, берешь любой код, который тебе нравится и в котором ты сможешь разобраться (я бы посоветовал либо мой, либо представленный klem4), разбиваешь введенное предложение на слова, а потом делаешь следующее:

1) описываешь 3 массива записей - число/строка: сотни (900, 800, ... 100), десятки (90, 80, ..., 10) и единицы (19, 18, 17, ..., 11, 9, ..., 1) - в каждом из которых ставишь в соответствие соответствующему числу строку...

2) проходишь по массиву слов, на которые разделилось твое предложение, в поисках слова "кг." (ну, или "килограмм", ты должен решить для себя, как именно ты будешь вводить это слово). И от найденного слова "кг." идешь к началу предложения и суммируешь все числа, соответствующие словам из массива единиц, десятков и сотен (именно в таком порядке !!!), до тех пор, пока очередное слово не будет НЕсоответствующим ни одному из значений массивов.

То же самое проделываешь и с "руб."

И наконец - перемножаешь полученное число килограмм на стоимость одного кг.

Все, задача решена - и никакого нагромождения циклов, и я не вижу причины, чтоб этот алгоритм не работал...

Добавлено:
Можно все три массива (сотни/десятки/единицы) объединить в один, но при поиске в нем слов надо не забывать, что просматриваться он должен от конца к началу (!!!)

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 23.04.2024 15:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name