Написать программу на языке паскаль Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности: 3.1. Знаки операций отношения; 3.2. Вы...
Написать программу на языке паскаль
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности:
3.1. Знаки операций отношения;
3.2. Вычислить количество элементов в созданных множествах
Ответ(ы) на вопрос:
Гость
фух. допилил программку. лови решение:
program parser;
var
a : array[1..255] of string;
i, cnt : integer;
sum1, sum2, sum3, sum4, sum5, sum6, sum7 : integer;
ch, last : char;
st : string;
dbl : boolean;
begin
write('Input a string: ');
readln(st);
last := ' ';
cnt := 1;
dbl := false;
for i:=1 to length(st) do
begin
ch := st[i];
if (ch in ['<', '>', ':', '=']) and (last=' ') then begin
if dbl then begin
dbl:= not dbl;
continue;
end;
last := ch;
ch := st[i+1];
if (ch='=') or (ch='>') then begin
a[cnt] := last + ch;
writeln(a[cnt]);
cnt := cnt+1;
dbl := true;
if length(a[cnt-1])=2 then last := ' ';
end
else begin
a[cnt] := last;
writeln(a[cnt]);
cnt := cnt+1;
last := ' ';
end;
end;
end;
sum1 := 0;
sum2 := 0;
sum3 := 0;
sum4 := 0;
sum5 := 0;
sum6 := 0;
sum7 := 0;
for i:=1 to cnt do begin
if a[i] = '<' then inc(sum1);
if a[i] = '>' then inc(sum2);
if a[i] = '>=' then inc(sum3);
if a[i] = '<=' then inc(sum4);
if a[i] = '<>' then inc(sum5);
if a[i] = ':=' then inc(sum6);
if a[i] = '=' then inc(sum7);
end;
writeln('> - ', sum1);
writeln('< - ', sum2);
writeln('= - ', sum7);
writeln('>= - ', sum3);
writeln('<= - ', sum4);
writeln('<> - ', sum5);
writeln(':= - ', sum6);
end.
Не нашли ответ?
Похожие вопросы