Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2008, 10:11   #1
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию Записать результат в Мемо в виде стека.

Доброе время суток.
В архиве файл с исходником, где необходимо результат из Edit3 записать в мемо2 в виде стека. Зарание спасибо.
Вложения
Тип файла: rar Стек.rar (9.4 Кб, 13 просмотров)
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 13.09.2008, 19:25   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Проще доработать преобразование в польскую нотацию, добавив разделитель:

Код:
function TForm1.Str2Pol(sh, dv: shstr): shstr;
var
  i: word;
begin
  result:='';
  for i:=1 to length(sh) do
    if (sh[i] in par) then result:=result+dv+sh[i] else begin
      case sh[i] of
        '*','/','(': if (f=nil) then crt(f,sh[i])
                     else incl(f,sh[i]);
                ')': begin
                        while not(f^.data='(') do begin
                         result:=result+dv+f^.data;
                         excl(f);
                       end;
                       excl(f);
                     end;
            '+','-': if (f=nil) then crt(f,sh[i])
                       else
                         if (f^.data='(') then incl(f,sh[i]) else begin
                           while not(f=nil) do begin
                             result:=result+dv+f^.data;
                             excl(f);
                           end;
                           crt(f,sh[i]);
                         end;
      end;
    end;
    while not(f=nil) do begin
      result:=result+dv+f^.data;
      excl(f);
    end;
end;
Для обычных вычислений разделитель не задаем
edit2.Text:=Str2Pol(edit1.Text, '');

а для memo:
memo1.Text:=Str2Pol(edit2.Text, #13#10);
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запомнить результат в виде массива Georgia Помощь студентам 4 22.05.2008 16:14
Неправильный вывод данных из стека С++ Cyberex Общие вопросы C/C++ 3 07.05.2008 16:53
Ошибка переполнения стека из-за использования рекурсий Morrigan13 Помощь студентам 5 02.04.2008 08:04
Заполнение стека inkvizitor Общие вопросы Delphi 5 08.10.2007 17:01