Написать программу ** языке паскаль Дана непустая последовательность символов. Требуется...

0 голосов
51 просмотров

Написать программу на языке паскаль
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности:
3.1. Знаки операций отношения;
3.2. Вычислить количество элементов в созданных множествах


Информатика (48 баллов) | 51 просмотров
0

а, всё, увидел. сейчас напишу.

0

ну скажи что сделал плизззз

0

10 минут....

0

погодь, так на него уже ранее решение дали. ты же два раза размещала вопрос. на первом уже ответ написали

0

так там не то чт мне нужно

0

а условии 3.1 - знаки операций И отношения?

0

ну это =', '<>', '<=', '<', '>=', '>'

0

ок. ща напишу

0

сегодня на работе времени особенно не было отладить программу, не совсем корректно себя ведёт. завтра дома до ума доведу и скину решение. С праздником тебя, кстати.

0

спасибо)

Дан 1 ответ
0 голосов
Правильный ответ

Фух. допилил программку. лови решение:

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);<br> if a[i] = '>' then inc(sum2);
if a[i] = '>=' then inc(sum3);
if a[i] = '<=' then inc(sum4);<br> 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);<br> writeln('<> - ', sum5);
writeln(':= - ', sum6);

end.

(1.7k баллов)