close

Вход

Забыли?

вход по аккаунту

?

4 (3)

код для вставкиСкачать
РОСЖЕЛДОР
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
"Ростовский государственный университет путей сообщения"
(ФГБОУ ВПО РГУПС)
Лабораторная работа По дисциплине
"Системное программное обеспечение"
На тему
"Выделение вещественных чисел"
Вариант №13
№4
Выполнил:
Ст-т Лысак В.В.
Гр. АИ-3-026
Проверил:
Пр-ль Жуков В.В.
Г. Ростов-на-Дону
2013 г.
Выделение вещественных чисел
Есть регулярное выражение. Составить КА , распознающий вещественные числа со знаком "." Иметь ввиду, что должна стоять хотя бы одна цифра перед точкой. Могут быть случаи без дробной части.
Граф
Пример
qwerty 12.0 !@#$% 0.25 )(*&^^ +13.55 ASDFGH -99.99
Код программы
VAR ch:char; // Laboratornay_rabota_4
status:integer;
f:text;
st:string;
BEGIN
assign(f,'original.txt');
reset(f);
WHILE NOT eof(f) DO BEGIN
read(f,ch);
CASE status OF
0: begin
if (ch='+') or (ch='-') then begin st:=st+ch; status:=11 ; end;
if (ch>='1') and (ch<='9') then begin st:=st+ch; status:=1; end;
if eof(f) then status:=4 ;
if ((ch>=#0) and (ch<=#42)) or (ch=#44) or (ch=#46) or
(ch=#47) or ((ch>=#58) and (ch<=#255)) then status:=0;
end;
11: begin
if (ch>='0') and (ch<='9') then begin st:=st+ch; status:=1; end;
if ((ch>=#0) and (ch<=#42)) or (ch=#43) or (ch=#45) or (ch=#44) or (ch=#46) or
(ch=#47) or ((ch>=#58) and (ch<=#255)) then begin st:=''; status:=0; end;
end;
1: begin
if ch='.' then begin st:=st+ch; status:=2; end;
if (ch>='0') and (ch<='9') then begin st:=st+ch; status:=1; end;
if eof(f) then status:=4;
if ((ch>=#0) and (ch<=#42)) or (ch=#44) or (ch=#47) or
((ch>=#58) and (ch<=#255)) then begin st:=''; status:=0;end;
end;
2: begin
if (ch>='0') and (ch<='9') then begin st:=st+ch; status:=3; end ;
if eof(f) then status:=4;
if ((ch>=#0) and (ch<=#42)) or (ch=#43) or (ch=#45) or (ch=#44) or (ch=#46) or
(ch=#47) or ((ch>=#58) and (ch<=#255)) then begin writeln(st); st:='';status:=0;end;
end;
3: begin
if (ch>='0') and (ch<='9') then begin st:=st+ch; status:=3; end ;
if ((ch>=#0) and (ch<=#42)) or (ch=#43) or (ch=#45) or (ch=#44) or (ch=#46) or
(ch=#47) or ((ch>=#58) and (ch<=#255)) then begin writeln(st); st:='';status:=0;end;
end;
4: begin write(st);end;
END;END;write(st);close(f);END.
END;END;write(st);close(f);END.
Пример выполнения 
Документ
Категория
Рефераты
Просмотров
6
Размер файла
24 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа