Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.03.2012, 11:32
megaprogrammer megaprogrammer вне форума
Прохожий
 
Регистрация: 08.02.2012
Сообщения: 16
Репутация: 10
Печаль Помогите разобраться с процедурой

Пожалуйста кто знает помогите написать процедуру или натолкните хотя бы на мысль. Хочу пример, который вводится в TEdit, решить в другой Edit. Пример (2+2 или другой более сложный) string. Я новичок и не могу допереть что делать.
Ответить с цитированием
  #2  
Старый 14.03.2012, 11:46
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию

даю наводку.
надо читать содержимое строки и разбирать ее на составляющие: число1, число2, ...., числоn и знаки между ними.
Посмотри работу со строками, конкретно функцию Pos - она тут будет использоваться больше всего. С функциями IntToStr и StrToInt, думаю, ты знаком.
Если надо, могу выложить паскалевский исходник программки, которая эмулировала броски d&d кубиков d4, d6, d8, d10, d20 в разных их количествах и выдавала конечный результат.задание брала из вводимой с клавиатуры строки. так будет довольно просто поймать мысль.

Последний раз редактировалось nixel, 14.03.2012 в 11:49.
Ответить с цитированием
  #3  
Старый 14.03.2012, 12:05
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Почитай вот эту статейку на Википедии, тут все хорошо расписано. Если влом самому писать алгоритм - то в сети можно найти много реализаций.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #4  
Старый 14.03.2012, 13:24
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от nixel
даю наводку.
надо читать содержимое строки и разбирать ее на составляющие: число1, число2, ...., числоn и знаки между ними.
Посмотри работу со строками, конкретно функцию Pos - она тут будет использоваться больше всего. С функциями IntToStr и StrToInt, думаю, ты знаком.
Если надо, могу выложить паскалевский исходник программки, которая эмулировала броски d&d кубиков d4, d6, d8, d10, d20 в разных их количествах и выдавала конечный результат.задание брала из вводимой с клавиатуры строки. так будет довольно просто поймать мысль.
Наводка довольно таки тухлая, в данном случае здесь важны не методы работы со строками, а сам алгоритм, в котором эти методы будут использоваться.
Автору же предлагаю изучить работу с грамматиками, рег. выражениями, разборы цепочек символов, и.т.д. ну и глянуть ссылку данную выше...
Ответить с цитированием
  #5  
Старый 14.03.2012, 13:28
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию

Цитата:
Сообщение от Pilot_Red
Наводка довольно таки тухлая, в данном случае здесь важны не методы работы со строками, а сам алгоритм, в котором эти методы будут использоваться.
Автору же предлагаю изучить работу с грамматиками, рег. выражениями, разборы цепочек символов, и.т.д. ну и глянуть ссылку данную выше...
это зависит от сложности вводимого примера. если нужно просто сделать действия над двумя/тремя числами, то хватит обычного посимвольного разбора. если что-то серьезнее, то да, уже надо применять более сложные алгоритмы

Последний раз редактировалось nixel, 14.03.2012 в 13:55.
Ответить с цитированием
  #6  
Старый 14.03.2012, 14:10
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

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

Цитата:
новичок и не могу допереть
наверно нужна книга

Последний раз редактировалось Pyro, 14.03.2012 в 14:30.
Ответить с цитированием
  #7  
Старый 14.03.2012, 21:10
icsander icsander вне форума
Новичок
 
Регистрация: 17.04.2011
Сообщения: 87
Репутация: 10
По умолчанию

Модуль из RxLib содержит все необходимое для матем. вычислений ( GetFormulaValue(const Formula: string): Extended )
Вложения
Тип файла: zip rxParsing.zip (3.2 Кбайт, 1 просмотров)
Ответить с цитированием
  #8  
Старый 15.03.2012, 20:11
megaprogrammer megaprogrammer вне форума
Прохожий
 
Регистрация: 08.02.2012
Сообщения: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от nixel
даю наводку.
надо читать содержимое строки и разбирать ее на составляющие: число1, число2, ...., числоn и знаки между ними.
Посмотри работу со строками, конкретно функцию Pos - она тут будет использоваться больше всего. С функциями IntToStr и StrToInt, думаю, ты знаком.
Если надо, могу выложить паскалевский исходник программки, которая эмулировала броски d&d кубиков d4, d6, d8, d10, d20 в разных их количествах и выдавала конечный результат.задание брала из вводимой с клавиатуры строки. так будет довольно просто поймать мысль.
Функции IntToStr и StrToInt знаю, с функцией Pos не знаком.
Ответить с цитированием
  #9  
Старый 15.03.2012, 20:13
megaprogrammer megaprogrammer вне форума
Прохожий
 
Регистрация: 08.02.2012
Сообщения: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от Pyro
я решал такую тупо, зная только массивы и посимвольный обход строки в цикле:
в два-три массива:
сначала считал все числа, потом все операции(их должно быть на 1 меньше чем чисел), в третий проход – расставил приоритеты у операций(что-то вроде: кол-во не закрытых скобок * приоритет самой), потом их совершил в порядке убывания приоритета(по очереди укорачивая массивы на 1). получилось вполне себе складно, единственная проблемка была с минусами перед цифрами напр:
-2-2*-2, можно решать по разному, например минусы брать в тот массив где числа, как операцию не брать


наверно нужна книга
Книга есть, но в ней ничего подобного. Попробую электронные книги скинуть, может там че найду.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025