Рекурсия. Построить синтаксический анализатор для понятия вещественное число (паскаль)

Гость Гость
15.01.2012
Рекурсия. Построить синтаксический анализатор для понятия вещественное число (паскаль) или Хотя бы объяснить смысл задания
ссылка на картинку
http://cs10227.vkontakte.ru/u13405876/111195150/z_ccf725ba.jpg
Дополнено (1). можете поделиться, может пойму
Дополнено (2). спасибо, хоть что то)

Гость Гость
15.01.2012
Это я сам не понимаю, хотя код синтаксического анализатора у меня есть.
Только на C#.

Если руководствуясь на здравом смысле, то
 тебе нужно написать процедуру, которая переводит
 вещественное число заданное строкой, например "-12, 56"
То есть "-12, 56" имеет тип string
  перевести в тип в Паскале уже не помню какой тип вроде real называется.

 Те есть должна быть процедура

 real Parse(string s)
 begin
  тело процедуры
 end

где Parse("34") от строки "34" даст число типа real со значение 34

Как-то так.

Гость Гость
15.01.2012
Причем я такие процедуры никогда не писал,
они уже встроены в C# имеют вид
float. Parse(string s)

У меня анализатор арифметических выражений вида "cos(2, 56/56)+ln(exp(34+78. "

ADR-007 ADR-007
16.01.2012
Не розумію де тут можно вставити рекурсію…
є функа StrToFloat(String):Real;

вот написав аналог:

function ParceNum(var P: PChar):Integer;
var
 PStart:PChar;
begin
 PStart:=P;
 Result:=0;
 while (P^<>#0) and (P^ in ['0'.'9']) do
 begin
   Inc(Result, (Ord(P^) - Ord('0'. * Power(10, P-PStart. ;
   Inc(P);
 end;
end;

function MyStrToFloat(const Value: string):Real;
var
 ASing:Boolean; //true = +; false = -
 P:PChar;
 PStart:=PChar;
const
 Sing: array [Boolean] of integer = (-1, 1);
begin
 P:=PChar(Value);
 if P^='-' then Inc(P);
 Result:=ParceNum(P);
 if P^='.' then
 begin
   PStart:=P;
   Inc(P);
   Result:=Result+ParceNum(P)/(P-PStart);
 end;
 if P^='E' then
 begin
   Inc(P);
   ASing:=P^<>'-';
   if P^='-' then Inc(P);
   Result:=Result*Power(10, ParceNum(P)*Sing[ASing]);
 end;
 Result:=Result * Sing[Value[1]<>'-'];
end;

Добавить комментарий | Похожие обсуждения

Вопросы и ответы по Вконтакте
Вопросы и ответы

Популярные вопросы и ответы о социальной сети www.vkontakte.ru (vk.com)