|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Очень срочно пожалуйста
Уважаемые программисты! Подскажите пожалуйста, если кто знает как на Delphi можно реализовать следующий алгоритм:
Допустим имеется выражение вида : 2а+5+3а+10 Нужно чтобы результат выдавало в виде 5а+15 |
#2
|
|||
|
|||
"Эээмм, ну попробуй так.
var urav,out,temp,temp2:string;//уравнение, вспомогательная строка с операндом i,j,k,p:integer; z:char; const zank=('+','-','*','/'); word=(); // множество букв //-------------------------- //в программе на обребетке строки: k:=0; p:=0; zn:=[]; for i:=1 to length(urav) do if urav[i] in znak then begin temp:=copy(urav,1, i-1); delete(urav, 1,length(temp)+1); try k:=k+strtoint(temp); except for j:=1 to length(temp) do if temp[j] in word then temp2:=copy(temp,1,j-1); p:=p+strtoint(temp2); z:=temp[length(temp)]; end; end; end; out:=inttostr(k)+inttostr(p)+z; //out - готовая строка... z - буква. //Пример тока для обработки уравнения с одной неизвестной!!! //Если сразу виден какой то косяк, то напишите. Я весьма невнимателен и могу мелоч какую нить пропустить. но вроде правильно. не проверял, а писал прям тут, так что сразу надеяться не нужно |