Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 26.12.2008, 22:21   #11 (permalink)
Катуха
Member
 
Регистрация: 17.12.2008
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я пробовала так
Цитата:
begin
if a:='-';getsym
end
else
a:=' ';
term;
Выдает 40 ошибку.
Катуха вне форума   Ответить с цитированием

Старый 26.12.2008, 22:21
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Темы которые подобны вашей уже были на нашем форуме

Запись видеоролика
Запись на CD

Старый 26.12.2008, 22:29   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну-ну. Теперь Вы начинаете ломать процедуру expression. Вот только зачем? Ваша конструкция совсем не соответствует тому, что написано в программе. Впрочем, поиграйтесь.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.12.2008, 22:45   #13 (permalink)
Катуха
Member
 
Регистрация: 17.12.2008
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А как именно называется ваша программа, Vladimir_S?? Я попробую скачать и в ней набрать.
Катуха вне форума   Ответить с цитированием
Старый 26.12.2008, 22:56   #14 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Катуха Посмотреть сообщение
А как именно называется ваша программа, Vladimir_S?? Я попробую скачать и в ней набрать.
Ох, это Free Pascal, причем не последняя версия, а аж 2000 года. Это и вообще-то продукт полусырой, но вот эта оказалась более или менее. Катуха, а Вы не пропустили рекомендацию в моем посте #8? Попробуйте.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.12.2008, 23:16   #15 (permalink)
Катуха
Member
 
Регистрация: 17.12.2008
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Все,программа пошла!!!!!!!! Спасибо большое!!!!!
Надо было сделать от так:
Цитата:
while (p<=length(si)) and (si[p] in [#32, #9]) do
и
Цитата:
a:=#32;
Еще раз спасибо!!!!!
Катуха вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 27.12.2008, 11:24   #16 (permalink)
Катуха
Member
 
Регистрация: 17.12.2008
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Выкладываю окнчательный вариант программы,может кому пригодится:

Цитата:
Progpam OPZ;
const
oper1=['+','-'];
oper2=['*','/'];
symbol=['a'..'z','A'..'Z','0'..'9','.'];
var
sym :char;
so,si :string;
p :word;
procedure getsym;
begin
while (p<=length(si))and(si[p] in [#32, #9]) do
inc(p);
if p>length(si) then
sym:=#0
else
begin
sym:=si[p];
inc(p)
end;
end;
procedure expression;
forward;
procedure get_var;
begin
so:=so+#32;
while sym in symbol do
begin
so:=so+sym;
getsym
end
end;
procedure term;
var a:char;
begin
if sym='(' then
begin
getsym;
expression;
getsym
end
else
get_var;
while sym in oper2 do
begin
a:=sym;
getsym;
term;
so:=so+a
end
end;
procedure expression;
var a:char;
begin
if sym='+' then
getsym
else if sym='-' then
begin
a:='-';getsym
end
else
a:=#32;
term;
if a='-' then so:=so+' (-)';
while sym in oper1 do
begin
a:=sym;
getsym;
term;
so:=so+a
end
end;
begin
si:='-1.2-(-1*3.14+1/(a/b+cab*9))';
so:=#32;
p:=1;
getsym;
expression;
writeln(si);
writeln(so);
readln;
end.
Катуха вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 08:05.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.